Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 0 additions & 15 deletions .github/workflows/linter.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,34 +27,19 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DEFAULT_BRANCH: main
VALIDATE_ALL_CODEBASE: false
VALIDATE_PYTHON_PYLINT: true
VALIDATE_PYTHON_RUFF: true
VALIDATE_JAVASCRIPT_ES: true
VALIDATE_TYPESCRIPT_STANDARD: true
VALIDATE_GO: true
VALIDATE_GO_MODULES: true
VALIDATE_RUST_CLIPPY: true
VALIDATE_JAVA: true
VALIDATE_KOTLIN: true
VALIDATE_BASH: true
VALIDATE_JSON: true
VALIDATE_YAML: true
VALIDATE_XML: true
VALIDATE_ENV: true
VALIDATE_DOCKERFILE_HADOLINT: true
VALIDATE_TERRAFORM_TFLINT: true
VALIDATE_KUBERNETES_KUBECONFORM: true
VALIDATE_ANSIBLE: true
VALIDATE_GITHUB_ACTIONS: true
VALIDATE_GIT_MERGE_CONFLICT_MARKERS: true
VALIDATE_CSS_PRETTIER: true
VALIDATE_GRAPHQL_PRETTIER: true
VALIDATE_HTML_PRETTIER: true
VALIDATE_JAVASCRIPT_PRETTIER: true
VALIDATE_JSON_PRETTIER: true
VALIDATE_JSONC_PRETTIER: true
VALIDATE_JSX_PRETTIER: true
VALIDATE_MARKDOWN_PRETTIER: true
VALIDATE_TYPESCRIPT_PRETTIER: true
VALIDATE_VUE_PRETTIER: true
VALIDATE_YAML_PRETTIER: true
4 changes: 1 addition & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
node_modules/
.env

# Persistent user stats
data/
.npm/
dist/
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
"source.fixAll": "explicit",
"source.organizeImports": "explicit",
"source.sortMembers": "explicit"
}
},
"cSpell.words": ["deepseek", "groq", "openrouter", "Qwen"]
}
25 changes: 24 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
# Change Log

## `v2.0.0` - 29/06/2026

### Added

- Introduced model fallback system to improve reliability and resilience

### Changed

- Migrated entire codebase to TypeScript with Bun runtime
- Reduced size of the base (system) prompt for better efficiency
- Improved context handling for more consistent behavior
- Restructured the project's file and folder organization for a cleaner, more maintainable codebase

### Removed

- Personas system
- Stock cards feature
- DevHub-related information/prompt

### Fixed

- Suppressed ping/mention behavior to prevent unintended user or role tagging

## `v1.1.1` - 17/06/2026

### Changed
Expand All @@ -17,7 +40,7 @@

- Switched vision model to Groq

### Fixed
### Removed

- Removed redundant `clearUserContext` calls
- Removed large instruction block to reduce token usage
Expand Down
14 changes: 7 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 🤝 Contributing to Pawgrammer Bot
# 🤝 Contributing to Rael

Thank you for considering contributing to **Pawgrammer Bot**!
Thank you for considering contributing to **Rael**!
We welcome all kinds of contributions, whether it's fixing bugs, adding new features, improving documentation, or helping with community support.

## 📋 Contribution Guidelines
Expand All @@ -10,8 +10,8 @@ We welcome all kinds of contributions, whether it's fixing bugs, adding new feat
- Fork the repository to your GitHub account.
- Clone your fork locally:
```bash
git clone https://github.com/your-username/pawgrammerbot.git
cd pawgrammerbot
git clone https://github.com/your-username/rael.git
cd rael
```

### 2. Create a Branch
Expand Down Expand Up @@ -68,7 +68,7 @@ All contributors will be recognized in the project and may receive special roles
By contributing to this project, you agree that:

- Your contributions will be licensed under the **DevHub Source-Available License (DSAL)**
- DevHub may use, modify, and distribute your contributions as part of Pawgrammer Bot
- You do not gain any ownership, commercial, or hosting rights to Pawgrammer Bot by contributing
- DevHub may use, modify, and distribute your contributions as part of Rael
- You do not gain any ownership, commercial, or hosting rights to Rael by contributing

_Thank you for taking time to contribute to Pawgrammer Bot ✨_
_Thank you for taking time to contribute to Rael ✨_
83 changes: 19 additions & 64 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<br />
<div align="center">

<img src="./src/assets/icon.png" alt="Quantum Theme" width="200" height="200" />
<img src="./assets/icon.png" alt="Rael" width="200" height="200" />

<p align="center" style="margin-top: 12px;">
<strong><small>CONVERSATION MEETS CAPABILITY</small></strong>
Expand All @@ -15,16 +15,18 @@ Rael is an AI-powered Discord bot built for natural conversation, multi-model fl

> [!NOTE]
>
> ## What's New in v1
> ## What's New in v2
>
> Rael v1 builds on the alpha foundation with the following additions:
> Rael v2 focuses on a leaner, faster, and more reliable experience with a complete internal overhaul.
>
> - Vision support, allowing Rael to read and understand image attachments
> - Model switching, letting users choose which AI model handles their requests
> - Web search, giving Rael access to up to date information beyond its training data
> - Live stock graphs, available directly through chat
> - Token usage tracking with a clean, visual breakdown instead of raw numbers
> The core prefix system and persona functionality from the alpha release remain, refined for consistency.
> - Migrated the entire project to **TypeScript** and **Bun** for improved performance and maintainability
> - Introduced automatic **model fallbacks** to keep requests running even when a provider is unavailable
> - Reworked the conversation context pipeline for more consistent responses
> - Reduced the base system prompt to improve efficiency and lower token usage
> - Restructured the project's file and folder organization for a cleaner, more maintainable codebase
> - Removed personas and stock cards to simplify the overall experience
> - Removed DevHub-specific prompt information, making Rael more general-purpose
> - Added automatic ping suppression to prevent unintended user or role mentions

## Usage

Expand Down Expand Up @@ -53,73 +55,31 @@ Example:
```
$help
$ping
$persona list
$resetai
$usage
```

## Commands Overview

| Command | Aliases | Description |
| --------- | ---------------------------------------- | -------------------------------------------- |
| `ai` | `askai` | Sends a prompt to the AI model |
| `persona` | `personaai`, `mode`, `character` | Manage or view AI personas |
| `model` | `setmodel`, `models` | View or switch the active AI model |
| `resetai` | `aiclear`, `clearai`, `aireset`, `reset` | Clears AI conversation context |
| `stock` | `stocks`, `chart` | Displays a live stock graph |
| `usage` | `tokens`, `tokenusage` | Displays token usage with a visual breakdown |
| `help` | none | Displays available commands and usage |
| `ping` | none | Returns bot latency |

## AI Command Usage

The AI system supports both prefixes:
The AI system supports both prefixes and tagging:

```
,what is event loop in Node.js?
$ai what is event loop in Node.js?
@Rael what is event loop in Node.js?
```

To reset context:

```
$resetctx
or
$resetai
or
$ai reset
$clearctx
```

Resetting clears conversation history and restores default behavior.

## Persona System

The persona system allows users to adjust the AI's behavior and response style.

Available subcommands:

- `$persona list`
Displays all available personas.

- `$persona current` / `status` / `now` / `active`
Shows the currently active persona.

- `$persona set <name>` / `use <name>` / `switch <name>`
Switches to a selected persona.

- `$persona reset` / `clear`
Restores the default persona and clears context.

## Model Switching

Rael supports multiple underlying AI models, allowing users to pick the one that best fits their needs, whether prioritizing speed or depth of response.

- `$model list`
Displays all available models.

- `$model current`
Shows the currently active model.

- `$model set <name>` / `use <name>`
Switches to a selected model.

## Vision

Rael can read and understand images sent as attachments. Send an image along with a message and Rael will analyze the content and respond accordingly.
Expand All @@ -128,16 +88,12 @@ Rael can read and understand images sent as attachments. Send an image along wit

Rael can search the web when you ask it to do so, to provide up to date information when needed, rather than relying solely on its training data.

## Stock Graphs

Rael can pull up live stock charts directly in chat, just ask for it.

## Token Usage Tracking

Users can view their token usage at any time through a clean, image based visual breakdown rather than plain numbers.

```
$stats
$usage
```

## Design Philosophy
Expand All @@ -146,9 +102,8 @@ Rael is designed to:

- Provide fast and reliable access to AI-assisted conversation
- Support multiple models and personas without complicating the interface
- Extend usefulness beyond chat through vision, search, and live data
- Extend usefulness beyond chat and search
- Maintain a minimal and predictable command system
- Present usage and data visually wherever it improves clarity

## License

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
44 changes: 23 additions & 21 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 3 additions & 5 deletions config.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
{
"guildId": "1429026875946172459",
"clientId": "1430219756820103370",
"prefixes": [",", "$"],
"serverConfig": {
"botCommandsChannel": "1429028988109455454",
"rulesChannel": "1429027865957109861"
}
"prefixes": ["$"],
"aiModePrefix": ",",
"devs": ["1411006542916091975", "1243105196477911061"]
}
Loading
Loading