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
9 changes: 9 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
DISCORD_TOKEN=your-bot-token-here
DISCORD_APP_ID=your-application-id-here
DISCORD_GUILD_ID=your-test-guild-id-here

# Summary mode: use "llm" to enable OpenAI, or anything else for local summary
SUMMARY_MODE=local

# Only required if SUMMARY_MODE=llm
OPENAI_API_KEY=your-openai-key-if-needed
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# .github/workflows/OmegaBot.yml
name: OmegaBot
name: 🔍 Lint · Typecheck · Format

on:
pull_request:
Expand All @@ -12,7 +12,7 @@ concurrency:

jobs:
lint-typecheck:
name: 🎨 Prettier · ✨ ESLint · 🛠️ TypeScript
name: 🤖 OmegaBot
runs-on: ubuntu-latest

defaults:
Expand All @@ -33,8 +33,11 @@ jobs:
- name: 📦 Install dependencies
run: npm ci

- name: 📦 Install dependencies
run: npm ci
- name: 🧹 ESLint
run: npm run lint

- name: 🧪 TypeScript typecheck
run: npm run typecheck

- name: 🔧 Build App (Vite)
run: npm run build
- name: 🎨 Prettier check
run: npm run format:check
17 changes: 16 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,15 @@ OmegaBot is a modular Discord bot designed to support development projects with
## Features

Current features:

- Slash command system
- Ping command for testing
- Summary command with local summary mode
- Automatic command loading
- Simple and readable project structure

Planned features:

- FAQ storage and quick lookup
- GitHub issues and pull request lookups
- Pull request announcements
Expand All @@ -32,6 +34,7 @@ Planned features:
## Getting Started

### Requirements

- Node 18 or newer
- A Discord bot token
- A development server where you have Manage Server permissions
Expand Down Expand Up @@ -80,8 +83,12 @@ OmegaBot is online

## Project Structure

<details>
<summary>📁 Click to expand file structure</summary>

```
.
├── .env.example
├── .github
│ ├── ISSUE_TEMPLATE
│ │ ├── bug.yml
Expand All @@ -92,7 +99,7 @@ OmegaBot is online
│ │ └── question_discussion.yml
│ ├── pull_request_template.md
│ └── workflows
│ └── FollowTheFlow.yml
│ └── OmegaBot.yml
├── .gitignore
├── .husky
│ ├── pre-commit
Expand All @@ -101,17 +108,22 @@ OmegaBot is online
│ ├── banner.png
│ └── omegabot.png
├── CONTRIBUTORS.md
├── eslint.config.ts
├── LICENSE
├── package-lock.json
├── package.json
├── README.md
├── scripts
│ └── precheck.sh
├── scripts copy
│ └── precheck.sh
├── src
│ ├── bot.ts
│ ├── commands
│ │ ├── general
│ │ │ └── ping.ts
│ │ ├── history
│ │ │ └── history.ts
│ │ └── summary
│ │ └── summary.ts
│ ├── config
Expand All @@ -127,6 +139,9 @@ OmegaBot is online
│ └── summarizer.ts
└── tsconfig.json
```

</details>

---

## Extending OmegaBot
Expand Down
46 changes: 46 additions & 0 deletions eslint.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
// eslint.config.ts
import js from "@eslint/js";
import globals from "globals";
import tseslint from "typescript-eslint";

export default [
// Ignore build output and dependencies
{
ignores: ["dist", "node_modules", "coverage"],
},

// Base JS rules
js.configs.recommended,

// TypeScript base rules (non type-aware: no parserOptions.project)
...tseslint.configs.recommended,

{
files: ["**/*.ts"],

languageOptions: {
ecmaVersion: 2020,
sourceType: "module",
globals: {
...globals.node,
...globals.es2020,
},
},

plugins: {
"@typescript-eslint": tseslint.plugin,
},

rules: {
// Let @typescript-eslint handle unused vars and allow _
"@typescript-eslint/no-unused-vars": [
"warn",
{
argsIgnorePattern: "^_",
varsIgnorePattern: "^_",
},
],
"no-unused-vars": "off",
},
},
];
Loading