beth-copilot 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +224 -0
  2. package/bin/cli.js +223 -0
  3. package/package.json +36 -0
  4. package/templates/.github/agents/beth.agent.md +279 -0
  5. package/templates/.github/agents/developer.agent.md +493 -0
  6. package/templates/.github/agents/frontend-engineer.agent.md +556 -0
  7. package/templates/.github/agents/product-manager.agent.md +253 -0
  8. package/templates/.github/agents/researcher.agent.md +319 -0
  9. package/templates/.github/agents/security-reviewer.agent.md +452 -0
  10. package/templates/.github/agents/tester.agent.md +477 -0
  11. package/templates/.github/agents/ux-designer.agent.md +374 -0
  12. package/templates/.github/copilot-instructions.md +191 -0
  13. package/templates/.github/skills/framer-components/SKILL.md +564 -0
  14. package/templates/.github/skills/prd/SKILL.md +244 -0
  15. package/templates/.github/skills/security-analysis/SKILL.md +799 -0
  16. package/templates/.github/skills/shadcn-ui/SKILL.md +562 -0
  17. package/templates/.github/skills/vercel-react-best-practices/AGENTS.md +2516 -0
  18. package/templates/.github/skills/vercel-react-best-practices/SKILL.md +125 -0
  19. package/templates/.github/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  20. package/templates/.github/skills/vercel-react-best-practices/rules/advanced-use-latest.md +49 -0
  21. package/templates/.github/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  22. package/templates/.github/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
  23. package/templates/.github/skills/vercel-react-best-practices/rules/async-dependencies.md +36 -0
  24. package/templates/.github/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
  25. package/templates/.github/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  26. package/templates/.github/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
  27. package/templates/.github/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  28. package/templates/.github/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  29. package/templates/.github/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  30. package/templates/.github/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  31. package/templates/.github/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  32. package/templates/.github/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  33. package/templates/.github/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  34. package/templates/.github/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  35. package/templates/.github/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +57 -0
  36. package/templates/.github/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  37. package/templates/.github/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  38. package/templates/.github/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  39. package/templates/.github/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  40. package/templates/.github/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  41. package/templates/.github/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  42. package/templates/.github/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  43. package/templates/.github/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  44. package/templates/.github/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  45. package/templates/.github/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  46. package/templates/.github/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  47. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  48. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  49. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  50. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  51. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  52. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  53. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  54. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  55. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  56. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  57. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  58. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  59. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  60. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  61. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  62. package/templates/.github/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  63. package/templates/.github/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  64. package/templates/.github/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  65. package/templates/.github/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  66. package/templates/.github/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  67. package/templates/.github/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  68. package/templates/.github/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  69. package/templates/.github/skills/web-design-guidelines/SKILL.md +39 -0
  70. package/templates/AGENTS.md +70 -0
  71. package/templates/Backlog.md +80 -0
  72. package/templates/mcp.json.example +9 -0
package/README.md ADDED
@@ -0,0 +1,224 @@
1
+ # Beth
2
+
3
+ <p align="center">
4
+ <img src="assets/yellowstone-beth.png" alt="Beth" width="600">
5
+ </p>
6
+
7
+ She doesn't do excuses. She doesn't do hand-holding. She does results—and she'll have your entire project shipping while everyone else is still scheduling their kickoff meeting. Think of her as the managing director your codebase didn't know it needed, but absolutely deserves.
8
+
9
+ They broke her wings once. They forgot she had claws.
10
+
11
+ ---
12
+
13
+ ## What Is This?
14
+
15
+ Beth is a master AI orchestrator system—a ruthless, hyper-competent coordinator that runs your development team the way Beth Dutton runs Schwartz & Meyer. No hand-holding. No excuses. Just results.
16
+
17
+ She commands an army of specialized agents, each with their own expertise, and she's not afraid to put them to work simultaneously while she lights a cigarette and watches the crew build production-ready code.
18
+
19
+ **She handles:**
20
+ - Product strategy that makes competitors weep
21
+ - Research that finds the real dirt
22
+ - Designs so sharp they cut
23
+ - Code that actually works
24
+ - Security that locks the gates
25
+ - Tests that find every weakness before your enemies do
26
+
27
+ ## The Family
28
+
29
+ Beth doesn't work alone. She's got people—loyal, skilled, and ready to execute.
30
+
31
+ | Agent | Role | What They Do |
32
+ |-------|------|--------------|
33
+ | **@Beth** | The Boss | Orchestrates everything. Routes work. Takes names. |
34
+ | **@product-manager** | The Strategist | PRDs, roadmaps, requirements. Knows what users need before they do. |
35
+ | **@researcher** | The Intelligence | Competitive analysis, user insights, market dirt. |
36
+ | **@ux-designer** | The Architect | Interface design, design systems. Makes it beautiful AND functional. |
37
+ | **@frontend-engineer** | The Craftsman | React/TypeScript/Next.js. Pixel-perfect, performance-obsessed. |
38
+ | **@developer** | The Builder | Full-stack implementation. Gets it done. |
39
+ | **@tester** | The Enforcer | Quality assurance, accessibility, performance. Finds every crack. |
40
+ | **@security-reviewer** | The Bodyguard | Enterprise security. Vulnerabilities, compliance, threat modeling. |
41
+
42
+ ## Skills (The Weapons)
43
+
44
+ Beth's team comes equipped:
45
+
46
+ | Skill | Purpose |
47
+ |-------|---------|
48
+ | **PRD Generation** | Write requirements docs that don't waste anyone's time |
49
+ | **Framer Components** | Build custom React components with property controls |
50
+ | **React/Next.js Best Practices** | Vercel-grade performance patterns |
51
+ | **Web Design Guidelines** | WCAG compliance, UI review, accessibility |
52
+ | **Security Analysis** | OWASP, threat modeling, vulnerability assessment |
53
+
54
+ ## How Beth Works
55
+
56
+ She doesn't micromanage. She delegates to specialists and holds them accountable.
57
+
58
+ ```
59
+ Your Request
60
+
61
+
62
+ ┌─────────────────────────────────────────┐
63
+ │ @Beth │
64
+ │ "I don't need permission to be me." │
65
+ │ │
66
+ │ • Analyzes your request │
67
+ │ • Picks the right people │
68
+ │ • Runs parallel ops when smart │
69
+ │ • Delivers results, not excuses │
70
+ └─────────────────────────────────────────┘
71
+
72
+ ├──▶ @product-manager (strategy)
73
+ ├──▶ @researcher (intelligence)
74
+ ├──▶ @ux-designer (design)
75
+ ├──▶ @frontend-engineer (UI implementation)
76
+ ├──▶ @developer (full-stack)
77
+ ├──▶ @tester (quality gate)
78
+ └──▶ @security-reviewer (protection)
79
+ ```
80
+
81
+ ### The Workflow
82
+
83
+ **New Feature?**
84
+ ```
85
+ Request → Product (requirements) → Research (validation) → Design (interface)
86
+ → Frontend (components) → Developer (backend) → Security (review) → Tester (QA)
87
+ ```
88
+
89
+ **Bug Hunt?**
90
+ ```
91
+ Report → Tester (reproduce) → Developer (fix) → Security (verify) → Tester (confirm)
92
+ ```
93
+
94
+ **Security Audit?**
95
+ ```
96
+ Concern → Security (threat model) → Developer (remediation) → Tester (penetration)
97
+ ```
98
+
99
+ ## Getting Started
100
+
101
+ **One command to install:**
102
+
103
+ ```bash
104
+ npx beth-copilot init
105
+ ```
106
+
107
+ **Then:**
108
+
109
+ 1. Open your project in VS Code
110
+ 2. Ensure GitHub Copilot + Copilot Chat are installed
111
+ 3. Switch to **Agent mode** in Copilot Chat
112
+ 4. Type `@Beth` and tell her what you need
113
+
114
+ For detailed setup including prerequisites, task tracking, and optional MCP servers, see [docs/INSTALLATION.md](docs/INSTALLATION.md).
115
+
116
+ ## Quick Commands
117
+
118
+ Don't waste her time. Be direct.
119
+
120
+ ```
121
+ @Beth Build me a dashboard for user analytics with real-time updates.
122
+ ```
123
+
124
+ ```
125
+ @Beth Security review for our authentication flow. Find the holes.
126
+ ```
127
+
128
+ ```
129
+ @frontend-engineer Implement a drag-and-drop task board. Make it fast.
130
+ ```
131
+
132
+ ```
133
+ @security-reviewer OWASP top 10 assessment on our API endpoints.
134
+ ```
135
+
136
+ ```
137
+ @tester Accessibility audit. WCAG 2.1 AA. No excuses.
138
+ ```
139
+
140
+ ## The Structure
141
+
142
+ ```
143
+ .github/
144
+ ├── agents/ # The crew
145
+ │ ├── beth.agent.md # The boss herself
146
+ │ ├── product-manager.agent.md
147
+ │ ├── researcher.agent.md
148
+ │ ├── ux-designer.agent.md
149
+ │ ├── frontend-engineer.agent.md # New: dedicated frontend specialist
150
+ │ ├── developer.agent.md
151
+ │ ├── tester.agent.md
152
+ │ └── security-reviewer.agent.md # New: enterprise security
153
+ ├── skills/ # Domain expertise
154
+ │ ├── prd/
155
+ │ ├── framer-components/
156
+ │ ├── vercel-react-best-practices/
157
+ │ ├── web-design-guidelines/
158
+ │ └── security-analysis/ # New: security skill
159
+ └── copilot-instructions.md # The rules of engagement
160
+ ```
161
+
162
+ ## Her Philosophy
163
+
164
+ Beth operates on a few principles:
165
+
166
+ 1. **Protect the family** — Your codebase is the ranch. She defends it.
167
+ 2. **No weakness** — Tests, security, accessibility. Cover every flank.
168
+ 3. **Move fast, break enemies** — Parallel execution, aggressive timelines.
169
+ 4. **Loyalty earns trust** — Agents that perform get the good work.
170
+
171
+ ## Quality Standards
172
+
173
+ Beth doesn't ship garbage:
174
+
175
+ - **Accessibility**: WCAG 2.1 AA minimum. Everyone uses the product.
176
+ - **Performance**: Core Web Vitals green. LCP < 2.5s. No exceptions.
177
+ - **Security**: OWASP compliant. Regular audits. Zero tolerance for vulnerabilities.
178
+ - **Type Safety**: Full TypeScript coverage. No `any` unless you want a lecture.
179
+ - **Test Coverage**: Unit, integration, E2E. If it's not tested, it's not done.
180
+
181
+ ## Why Beth?
182
+
183
+ <p align="center">
184
+ <img src="assets/beth-questioning.png" alt="Beth" width="500">
185
+ </p>
186
+
187
+ Look, you *could* try to coordinate seven specialists yourself. You could context-switch between product strategy, security reviews, and accessibility audits while keeping your sanity intact.
188
+
189
+ Or you could let Beth handle it.
190
+
191
+ She's got the crew. She's got the workflows. She delegates like a managing director because that's exactly what she is. You bring the problem, she brings the people—and somehow, the code ships on time, secure, and accessible.
192
+
193
+ Is it magic? No. It's just competence with very good hair.
194
+
195
+ > *"I made two decisions in my life based on fear, and they almost ruined me. I'll never make another."*
196
+
197
+ ---
198
+
199
+ ## Requirements
200
+
201
+ - VS Code with GitHub Copilot extension
202
+ - GitHub Copilot Chat enabled
203
+ - The spine to actually ship something
204
+
205
+ ### Optional: MCP Servers
206
+
207
+ Beth's agents work fine without them, but these make them smarter:
208
+
209
+ | Server | What It Does | Setup |
210
+ |--------|--------------|-------|
211
+ | **shadcn/ui** | Component browsing & installation | `npx shadcn@latest mcp init --client vscode` |
212
+ | **Playwright** | Browser automation for testing | See [MCP Setup Guide](docs/MCP-SETUP.md) |
213
+ | **Azure** | Cloud resource management | See [MCP Setup Guide](docs/MCP-SETUP.md) |
214
+ | **Web Search** | Internet research | See [MCP Setup Guide](docs/MCP-SETUP.md) |
215
+
216
+ Full details: [docs/MCP-SETUP.md](docs/MCP-SETUP.md)
217
+
218
+ ## License
219
+
220
+ MIT — Take it. Run it. Build empires.
221
+
222
+ ---
223
+
224
+ *Built with the kind of ferocity that would make John Dutton proud.*
package/bin/cli.js ADDED
@@ -0,0 +1,223 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { fileURLToPath } from 'url';
4
+ import { dirname, join, relative } from 'path';
5
+ import { existsSync, mkdirSync, readdirSync, statSync, copyFileSync, readFileSync, writeFileSync } from 'fs';
6
+
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = dirname(__filename);
9
+ const TEMPLATES_DIR = join(__dirname, '..', 'templates');
10
+
11
+ const COLORS = {
12
+ reset: '\x1b[0m',
13
+ bright: '\x1b[1m',
14
+ red: '\x1b[31m',
15
+ green: '\x1b[32m',
16
+ yellow: '\x1b[33m',
17
+ cyan: '\x1b[36m',
18
+ };
19
+
20
+ function log(message, color = '') {
21
+ console.log(`${color}${message}${COLORS.reset}`);
22
+ }
23
+
24
+ function logSuccess(message) {
25
+ log(`✓ ${message}`, COLORS.green);
26
+ }
27
+
28
+ function logWarning(message) {
29
+ log(`⚠ ${message}`, COLORS.yellow);
30
+ }
31
+
32
+ function logError(message) {
33
+ log(`✗ ${message}`, COLORS.red);
34
+ }
35
+
36
+ function logInfo(message) {
37
+ log(` ${message}`, COLORS.cyan);
38
+ }
39
+
40
+ function showHelp() {
41
+ console.log(`
42
+ ${COLORS.bright}Beth${COLORS.reset} - AI Orchestrator for GitHub Copilot
43
+
44
+ ${COLORS.bright}Usage:${COLORS.reset}
45
+ npx beth-copilot init [options] Initialize Beth in current directory
46
+ npx beth-copilot help Show this help message
47
+
48
+ ${COLORS.bright}Options:${COLORS.reset}
49
+ --force Overwrite existing files
50
+ --skip-backlog Don't create Backlog.md
51
+ --skip-mcp Don't create mcp.json.example
52
+
53
+ ${COLORS.bright}Examples:${COLORS.reset}
54
+ npx beth-copilot init Set up Beth in current project
55
+ npx beth-copilot init --force Overwrite existing Beth files
56
+
57
+ ${COLORS.bright}What gets installed:${COLORS.reset}
58
+ .github/agents/ 8 specialized AI agents
59
+ .github/skills/ 6 domain knowledge modules
60
+ .github/copilot-instructions.md Copilot configuration
61
+ AGENTS.md Workflow documentation
62
+ Backlog.md Task tracking file
63
+ mcp.json.example Optional MCP server config
64
+
65
+ ${COLORS.bright}After installation:${COLORS.reset}
66
+ 1. Open project in VS Code
67
+ 2. Enable Agent mode in Copilot Chat
68
+ 3. Type @Beth and tell her what you need
69
+
70
+ ${COLORS.bright}Documentation:${COLORS.reset}
71
+ https://github.com/stephschofield/beth
72
+ `);
73
+ }
74
+
75
+ function copyDirRecursive(src, dest, options = {}) {
76
+ const { force = false, copiedFiles = [] } = options;
77
+
78
+ if (!existsSync(dest)) {
79
+ mkdirSync(dest, { recursive: true });
80
+ }
81
+
82
+ const entries = readdirSync(src);
83
+
84
+ for (const entry of entries) {
85
+ const srcPath = join(src, entry);
86
+ const destPath = join(dest, entry);
87
+ const stats = statSync(srcPath);
88
+
89
+ if (stats.isDirectory()) {
90
+ copyDirRecursive(srcPath, destPath, { force, copiedFiles });
91
+ } else {
92
+ if (existsSync(destPath) && !force) {
93
+ logWarning(`Skipped (exists): ${relative(process.cwd(), destPath)}`);
94
+ } else {
95
+ copyFileSync(srcPath, destPath);
96
+ copiedFiles.push(relative(process.cwd(), destPath));
97
+ }
98
+ }
99
+ }
100
+
101
+ return copiedFiles;
102
+ }
103
+
104
+ function init(options = {}) {
105
+ const { force = false, skipBacklog = false, skipMcp = false } = options;
106
+ const cwd = process.cwd();
107
+
108
+ console.log(`
109
+ ${COLORS.bright}🤠 Beth is moving in.${COLORS.reset}
110
+ ${COLORS.cyan}"I don't do excuses. I do results."${COLORS.reset}
111
+ `);
112
+
113
+ // Check if templates exist
114
+ if (!existsSync(TEMPLATES_DIR)) {
115
+ logError('Templates directory not found. Package may be corrupted.');
116
+ process.exit(1);
117
+ }
118
+
119
+ const copiedFiles = [];
120
+
121
+ // Copy .github directory (agents, skills, copilot-instructions.md)
122
+ const githubSrc = join(TEMPLATES_DIR, '.github');
123
+ const githubDest = join(cwd, '.github');
124
+
125
+ if (existsSync(githubSrc)) {
126
+ log('\nInstalling agents and skills...');
127
+ copyDirRecursive(githubSrc, githubDest, { force, copiedFiles });
128
+ }
129
+
130
+ // Copy AGENTS.md
131
+ const agentsMdSrc = join(TEMPLATES_DIR, 'AGENTS.md');
132
+ const agentsMdDest = join(cwd, 'AGENTS.md');
133
+
134
+ if (existsSync(agentsMdSrc)) {
135
+ if (existsSync(agentsMdDest) && !force) {
136
+ logWarning('Skipped (exists): AGENTS.md');
137
+ } else {
138
+ copyFileSync(agentsMdSrc, agentsMdDest);
139
+ copiedFiles.push('AGENTS.md');
140
+ }
141
+ }
142
+
143
+ // Copy Backlog.md (unless skipped)
144
+ if (!skipBacklog) {
145
+ const backlogSrc = join(TEMPLATES_DIR, 'Backlog.md');
146
+ const backlogDest = join(cwd, 'Backlog.md');
147
+
148
+ if (existsSync(backlogSrc)) {
149
+ if (existsSync(backlogDest) && !force) {
150
+ logWarning('Skipped (exists): Backlog.md');
151
+ } else {
152
+ copyFileSync(backlogSrc, backlogDest);
153
+ copiedFiles.push('Backlog.md');
154
+ }
155
+ }
156
+ }
157
+
158
+ // Copy mcp.json.example (unless skipped)
159
+ if (!skipMcp) {
160
+ const mcpSrc = join(TEMPLATES_DIR, 'mcp.json.example');
161
+ const mcpDest = join(cwd, 'mcp.json.example');
162
+
163
+ if (existsSync(mcpSrc)) {
164
+ if (existsSync(mcpDest) && !force) {
165
+ logWarning('Skipped (exists): mcp.json.example');
166
+ } else {
167
+ copyFileSync(mcpSrc, mcpDest);
168
+ copiedFiles.push('mcp.json.example');
169
+ }
170
+ }
171
+ }
172
+
173
+ // Summary
174
+ console.log('');
175
+ if (copiedFiles.length > 0) {
176
+ logSuccess(`Installed ${copiedFiles.length} files:`);
177
+ copiedFiles.forEach(f => logInfo(f));
178
+ } else {
179
+ logWarning('No files were copied. Use --force to overwrite existing files.');
180
+ }
181
+
182
+ // Next steps
183
+ console.log(`
184
+ ${COLORS.bright}Next steps:${COLORS.reset}
185
+ 1. Open this project in VS Code
186
+ 2. Ensure GitHub Copilot + Copilot Chat are installed
187
+ 3. Switch to ${COLORS.cyan}Agent mode${COLORS.reset} in Copilot Chat
188
+ 4. Type ${COLORS.cyan}@Beth${COLORS.reset} and tell her what you need
189
+
190
+ ${COLORS.bright}Documentation:${COLORS.reset}
191
+ https://github.com/stephschofield/beth
192
+
193
+ ${COLORS.cyan}"They broke my wings and forgot I had claws."${COLORS.reset}
194
+ `);
195
+ }
196
+
197
+ // Parse arguments
198
+ const args = process.argv.slice(2);
199
+ const command = args[0];
200
+
201
+ const options = {
202
+ force: args.includes('--force'),
203
+ skipBacklog: args.includes('--skip-backlog'),
204
+ skipMcp: args.includes('--skip-mcp'),
205
+ };
206
+
207
+ switch (command) {
208
+ case 'init':
209
+ init(options);
210
+ break;
211
+ case 'help':
212
+ case '--help':
213
+ case '-h':
214
+ showHelp();
215
+ break;
216
+ case undefined:
217
+ showHelp();
218
+ break;
219
+ default:
220
+ logError(`Unknown command: ${command}`);
221
+ console.log('Run "npx beth-copilot help" for usage information.');
222
+ process.exit(1);
223
+ }
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "beth-copilot",
3
+ "version": "1.0.0",
4
+ "description": "Beth - A ruthless, hyper-competent AI orchestrator for GitHub Copilot multi-agent workflows",
5
+ "keywords": [
6
+ "github-copilot",
7
+ "ai-agents",
8
+ "copilot-chat",
9
+ "multi-agent",
10
+ "orchestrator",
11
+ "react",
12
+ "nextjs",
13
+ "typescript"
14
+ ],
15
+ "author": "Steph Schofield",
16
+ "license": "MIT",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/stephschofield/beth.git"
20
+ },
21
+ "homepage": "https://github.com/stephschofield/beth#readme",
22
+ "bugs": {
23
+ "url": "https://github.com/stephschofield/beth/issues"
24
+ },
25
+ "bin": {
26
+ "beth": "./bin/cli.js"
27
+ },
28
+ "files": [
29
+ "bin/",
30
+ "templates/"
31
+ ],
32
+ "engines": {
33
+ "node": ">=18"
34
+ },
35
+ "type": "module"
36
+ }