Skip to content

Commit 0aa8e7b

Browse files
committed
feat: upgrade AI tools, fix Windows ESM, add calculate/runCode/fetchPage/searchNews
1 parent 8b6370d commit 0aa8e7b

61 files changed

Lines changed: 1444 additions & 182 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 77 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,95 +1,90 @@
1-
# Pawgrammer Bot
1+
# 🐾 Pawgrammer Bot
22

3-
Pawgrammer is DevHub’s documentation, AI, and reference assistant bot.
4-
It provides access to AI chat, curated knowledge, and utility commands designed to support contributors and users across the platform.
3+
Pawgrammer is DevHub’s **documentation, AI, references, and news bot**.
4+
It helps contributors stay informed, learn faster, and access curated resources, all through simple **prefix commands**.
55

6-
The bot is built around a simple prefix-based interface focused on clarity, consistency, and fast access to information.
6+
## 📖 Usage
77

8-
## Usage
8+
All commands are **prefix-only**.
9+
Use either `++[cmd]` or `?[cmd]` (without brackets).
910

10-
Pawgrammer uses prefix commands. The available prefixes are:
11-
12-
- `.` → AI-first input mode
13-
- `$` → Command-first mode
14-
15-
### AI-first mode (`.`)
16-
17-
The dot prefix sends your message directly to the AI system without requiring a command name.
18-
19-
Example:
20-
. What is a JavaScript promise?
21-
. Explain async/await in simple terms
22-
23-
### Command-first mode (`$`)
24-
25-
Use this for structured commands such as configuration, status checks, or utility actions.
26-
27-
Example:
28-
29-
```
30-
$help
31-
$ping
32-
$persona list
33-
$resetai
34-
```
35-
36-
## Commands Overview
37-
38-
| Command | Aliases | Description |
39-
| --------- | ---------------------------------------- | ------------------------------------- |
40-
| `ai` | `askai` | Sends a prompt to the AI model |
41-
| `persona` | `personaai`, `mode`, `character` | Manage or view AI personas |
42-
| `resetai` | `aiclear`, `clearai`, `aireset`, `reset` | Clears AI conversation context |
43-
| `help` || Displays available commands and usage |
44-
| `ping` || Returns bot latency |
45-
46-
## AI Command Usage
47-
48-
The AI system supports both prefixes:
11+
### Examples
4912

13+
```text
14+
++ai What’s the difference between npm and yarn?
15+
++mdn WeakMap
16+
++news
17+
++dontasktoask
18+
++rules
19+
++org
20+
++persona list
21+
++persona set debugcoach
5022
```
51-
. What is event loop in Node.js?
52-
$ai What is event loop in Node.js?
53-
```
54-
55-
To reset context:
56-
57-
```
58-
$resetai
59-
or
60-
$ai reset
61-
```
62-
63-
Resetting clears conversation history and restores default behavior.
64-
65-
## Persona System
66-
67-
The persona system allows users to adjust the AI’s behavior and response style.
68-
69-
### Available subcommands:
70-
71-
- `$persona list`
72-
Displays all available personas.
73-
74-
- `$persona current` / `status` / `now` / `active`
75-
Shows the currently active persona.
76-
77-
- `$persona set <name>` / `use <name>` / `switch <name>`
78-
Switches to a selected persona.
79-
80-
- `$persona reset` / `clear`
81-
Restores the default persona and clears context.
8223

83-
## Design Philosophy
24+
## 🛠️ Commands Overview
25+
26+
| Command | Description |
27+
| --------------- | ------------------------------------------------------ |
28+
| ai | Ask the AI model |
29+
| persona | List and switch AI personas |
30+
| articles | Latest developer news headlines |
31+
| mdn | Search MDN Web Docs |
32+
| wiki | Search Wikipedia |
33+
| repo | Get information about a GitHub repository |
34+
| user | Get information about a GitHub user |
35+
| ping | Pong! |
36+
| news | Latest developer/tech news headlines |
37+
| askbetter | Guidelines on how to ask a quality question |
38+
| dontasktoask | dontasktoask.com |
39+
| github | GitHub organization link |
40+
| imageofanerror | Asking for text instead of error images |
41+
| imageofcode | Asking for text instead of code images |
42+
| itsnotworking | Asking for more detail than "it is not working" |
43+
| mcve | Minimal Complete Verifiable Example |
44+
| noattempt | User has shown no attempt at solving the problem |
45+
| nocode | User provided no code |
46+
| nodebugging | User has not attempted to debug |
47+
| noerror | User did not provide the error message |
48+
| nohello | Dont just say hello, ask the question |
49+
| noresearch | User has not searched for the answer |
50+
| rules | Sends link to rule channel |
51+
| sask | Short Ask - asking to ask |
52+
| tldr | Too long, didn't read (requesting summary) |
53+
| toomuchcode | User posted an entire project |
54+
| toomuchinfo | Post contains irrelevant information |
55+
| tos | Discord Terms of Service |
56+
| tryit | Try it and see / TIAS |
57+
| unclearquestion | The question makes no sense |
58+
| xyproblem | The XY Problem |
59+
| backseat | Rule against unsolicited advice or "backseat" coding |
60+
| changesubjects | Rule against changing the subject mid-help |
61+
| chatgpt | Policy on AI-generated code (ChatGPT, Claude, etc.) |
62+
| cheat | Rule against asking for help with cheating |
63+
| crypto | Policy on crypto, NFT, and blockchain discussion |
64+
| dm | Rule against asking for DMs for help |
65+
| english | Request to use English for technical support |
66+
| exams | Rule against help with active exams/tests |
67+
| flame | Rule against flaming or toxicity |
68+
| freework | Rule against asking people to code for you for free |
69+
| hacks | Rule against discussing hacking or unauthorized access |
70+
| image | General rule on image usage in chat |
71+
| moveon | Request to end a toxic or circular argument |
72+
| nickpolicy | Rules regarding nicknames (no pings/offensive content) |
73+
| noping | Rule against unnecessarily pinging staff or users |
74+
| scraping | Policy on web scraping and automation |
75+
| selfbot | Strict rule against self-bots |
76+
| spoon | Rule against "spoon-feeding" / asking to be spoon-fed |
77+
| voice | Rules for voice channel behavior |
78+
79+
## 🐾 Philosophy
8480

8581
Pawgrammer is designed to:
8682

87-
- Provide fast and reliable access to AI-assisted information
88-
- Encourage consistent and structured interactions
89-
- Support developer productivity within DevHub
90-
- Maintain a minimal and predictable command system
83+
- Empower contributors with **fast, reliable knowledge**.
84+
- Encourage **community best practices**.
85+
- Keep DevHub’s spaces **welcoming, informed, and fun**.
9186

92-
## License
87+
## 📄 License
9388

9489
Pawgrammer Bot is licensed under DSAL v1.0
95-
See the full license in the [LICENSE](./LICENSE) file
90+
See license in [LICENSE](./LICENSE)

config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"guildId": "1429026875946172459",
33
"clientId": "1430219756820103370",
4-
"prefixes": [".", "$"],
4+
"prefixes": [".", "++"],
55
"serverConfig": {
66
"botCommandsChannel": "1429028988109455454",
77
"rulesChannel": "1429027865957109861"

package-lock.json

Lines changed: 98 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"discord.js": "^14.25.0",
1919
"dotenv": "^17.2.3",
2020
"exa-js": "^2.11.0",
21+
"mathjs": "^15.2.0",
2122
"turndown": "^7.2.2",
2223
"zod": "^3.25.76"
2324
}

0 commit comments

Comments
 (0)