brainforge-ai 1.1.0 → 1.2.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.
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2024 BrainForge
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2024 BrainForge
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ⚡ BrainForge
2
2
 
3
- > Transform any idea into a structured, AI-assisted project — with agents, slash commands, a phase roadmap, persistent memory, and a live dashboard.
3
+ > Transform any idea into a structured, AI-assisted project — with agents, slash commands, a phase roadmap, persistent memory, a live dashboard, and **83 Claude Code skills** pre-wired for every task.
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/brainforge-ai.svg)](https://www.npmjs.com/package/brainforge-ai)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)
@@ -37,6 +37,7 @@ It works with any AI tool: **Claude Code**, **GitHub Copilot**, **Gemini CLI**,
37
37
  | No tests | `/write-tests` generates the right tests for your level |
38
38
  | No version history | Automatic git checkpoints |
39
39
  | Lost in files | Live dashboard with auto-reload |
40
+ | AI ignores best practices | 83 skills enforce the right patterns per task |
40
41
 
41
42
  ---
42
43
 
@@ -83,7 +84,7 @@ BrainForge generates the full structure and makes the first git commit automatic
83
84
 
84
85
  Open **Claude Code**, **Cursor**, or any AI tool in the project folder.
85
86
 
86
- The AI reads `AGENTS.md` automatically and knows the rules.
87
+ The AI reads `AGENTS.md` and `CLAUDE.md` automatically, which includes a mandatory skills table telling it exactly which skill file to load for every type of task.
87
88
 
88
89
  ---
89
90
 
@@ -146,6 +147,7 @@ Repeat steps 3–8 for each phase.
146
147
  | Command | Description |
147
148
  |---------|-------------|
148
149
  | `brainforge init` | Initialize BrainForge in the current directory |
150
+ | `brainforge update` | Refresh all agents, commands, and skills to latest version |
149
151
  | `brainforge serve` | Live dashboard on localhost:3000 (auto-reloads) |
150
152
  | `brainforge dashboard` | Open the static HTML dashboard in the browser |
151
153
  | `brainforge update-dashboard` | Refresh dashboard data from project state |
@@ -155,6 +157,222 @@ Repeat steps 3–8 for each phase.
155
157
 
156
158
  ---
157
159
 
160
+ ## Claude Code Skills — 83 Pre-Wired Best-Practice Guides
161
+
162
+ Every project initialized with BrainForge gets **83 skill files** installed in `.claude/skills/`. Claude Code reads these automatically when you trigger a matching task.
163
+
164
+ Every agent and the `CLAUDE.md` instruction file include a mandatory skills table — Claude **must** read the relevant skill before starting any task. No exceptions.
165
+
166
+ ### How it works
167
+
168
+ ```
169
+ You type: /execute-phase 1 (which involves React + TypeScript + API)
170
+
171
+ Coder agent reads its skills table
172
+
173
+ Loads: react-best-practices.md + typescript-patterns.md + api-design.md
174
+
175
+ Codes with enforced best practices for all three technologies
176
+ ```
177
+
178
+ ### Skills by Category
179
+
180
+ #### Core Engineering
181
+ | Skill | What it enforces |
182
+ |-------|-----------------|
183
+ | `software-architecture` | System design, folder structure, module boundaries |
184
+ | `typescript-patterns` | Strict typing, generics, discriminated unions |
185
+ | `ag-clean-code` | SOLID principles, naming conventions, refactoring |
186
+ | `ag-systematic-debugging` | Hypothesis-driven, evidence-first debugging |
187
+ | `error-handling` | Result types, typed errors, retry logic |
188
+ | `environment-config` | `.env` management, secrets, Zod validation |
189
+ | `logging-observability` | Structured logging, tracing, OpenTelemetry |
190
+ | `static-analysis` | ESLint, Semgrep, CodeQL, CVE scanning |
191
+
192
+ #### Frontend & UI
193
+ | Skill | What it enforces |
194
+ |-------|-----------------|
195
+ | `react-best-practices` | Components, hooks, state management patterns |
196
+ | `next-best-practices` | Routing, SSR, caching, server actions |
197
+ | `tailwind-css` | Utility classes, responsive design, dark mode |
198
+ | `ag-tailwind-v4` | Tailwind v4 specifics, new API surface |
199
+ | `web-performance` | Core Web Vitals, bundle size, lazy loading |
200
+ | `accessibility` | WCAG 2.1, ARIA, keyboard navigation |
201
+ | `ag-frontend-design` | Component layout, UX patterns |
202
+ | `ag-web-design-guidelines` | Visual hierarchy, spacing, typography rules |
203
+ | `figma-to-code` | Design handoff, CSS mapping from Figma |
204
+ | `seo-optimization` | Meta tags, schema markup, Open Graph |
205
+ | `internationalization` | i18n, locale detection, date/currency formatting |
206
+ | `svelte-sveltekit` | Svelte 5, SvelteKit routes and actions |
207
+ | `vue-nuxt` | Vue 3, Nuxt 3, Pinia, composables |
208
+ | `angular-development` | Angular 17+, signals, standalone components |
209
+ | `ag-mobile-design` | Mobile UI, React Native, Expo patterns |
210
+
211
+ #### Backend & APIs
212
+ | Skill | What it enforces |
213
+ |-------|-----------------|
214
+ | `api-design` | REST API design, OpenAPI, status codes |
215
+ | `ag-api-patterns` | REST/RPC patterns, versioning, contracts |
216
+ | `ag-nodejs-best-practices` | Node.js streams, modules, async patterns |
217
+ | `ag-python-patterns` | Python packaging, type hints, idioms |
218
+ | `ag-rust-pro` | Rust ownership, lifetimes, async, traits |
219
+ | `graphql-api` | GraphQL schema, Apollo, DataLoader |
220
+ | `websockets-realtime` | WebSockets, SSE, real-time architecture |
221
+ | `event-driven-arch` | Pub/sub, message queues, BullMQ |
222
+ | `rate-limiting` | Throttling, abuse prevention strategies |
223
+ | `file-uploads` | S3, multipart, image processing |
224
+ | `email-service` | Transactional email, Resend, templates |
225
+ | `caching-redis` | Redis, TTL strategies, cache invalidation |
226
+ | `monorepo` | Turborepo, pnpm workspaces, shared packages |
227
+
228
+ #### Database
229
+ | Skill | What it enforces |
230
+ |-------|-----------------|
231
+ | `database-queries` | Queries, migrations, ORM patterns |
232
+ | `ag-database-design` | Schema design, normalization, ER modeling |
233
+ | `postgres-best-practices` | PostgreSQL, indexes, RLS, query optimization |
234
+
235
+ #### Security & Auth
236
+ | Skill | What it enforces |
237
+ |-------|-----------------|
238
+ | `security-review` | Auth, access control, input validation |
239
+ | `authentication-oauth` | JWT, OAuth2, session flows |
240
+ | `better-auth` | Better Auth setup, OAuth providers, 2FA |
241
+ | `ag-vulnerability-scanner` | OWASP Top 10, CVE scanning, threat modeling |
242
+ | `ag-red-team-tactics` | Threat modeling, adversarial testing |
243
+
244
+ #### Testing
245
+ | Skill | What it enforces |
246
+ |-------|-----------------|
247
+ | `test-driven-development` | TDD cycles, test structure, coverage |
248
+ | `ag-tdd-workflow` | Red-green-refactor discipline |
249
+ | `ag-testing-patterns` | Mocks, fixtures, factories, coverage |
250
+ | `webapp-testing` | Browser/UI testing, Playwright |
251
+ | `api-testing` | Integration tests, Supertest patterns |
252
+ | `property-based-testing` | Fuzz testing, generative test cases |
253
+
254
+ #### DevOps & Deployment
255
+ | Skill | What it enforces |
256
+ |-------|-----------------|
257
+ | `docker-devops` | Docker, compose, multi-stage builds |
258
+ | `terraform-infrastructure` | IaC, Terraform, cloud provisioning |
259
+ | `ag-deployment-procedures` | Deployment runbooks, rollback plans |
260
+ | `ag-server-management` | nginx, systemd, server hardening |
261
+ | `vercel-deployment` | Vercel deployment, edge middleware |
262
+ | `netlify-deployment` | Netlify functions, forms, deployment |
263
+ | `cloudflare-workers` | Cloudflare Workers, KV, Wrangler |
264
+ | `github-workflow` | GitHub PRs, code review, CI/CD |
265
+
266
+ #### Cloud Services & SaaS
267
+ | Skill | What it enforces |
268
+ |-------|-----------------|
269
+ | `supabase` | Supabase auth, DB, storage, realtime |
270
+ | `stripe-integration` | Stripe payments, subscriptions, webhooks |
271
+ | `openai-integration` | OpenAI API, embeddings, tool use |
272
+ | `huggingface-ml` | Hugging Face models, inference |
273
+ | `sentry-monitoring` | Error tracking, alerts, performance |
274
+ | `sanity-cms` | Sanity CMS, GROQ queries, schema |
275
+ | `web-scraping` | Firecrawl, Playwright extraction |
276
+ | `connect` | Third-party API integration patterns |
277
+ | `composio-connect` | 1000+ SaaS integrations via Composio |
278
+
279
+ #### Documentation & Process
280
+ | Skill | What it enforces |
281
+ |-------|-----------------|
282
+ | `documentation` | Inline docs, README, JSDoc |
283
+ | `content-writing` | Technical writing, copywriting |
284
+ | `ag-documentation-templates` | Spec templates, ADR format |
285
+ | `changelog` | Changelog format, release notes |
286
+ | `deep-research` | Multi-step research with citations |
287
+ | `prompt-engineering` | AI prompt crafting, optimization |
288
+ | `subagent-development` | Parallel agents, task decomposition |
289
+
290
+ #### Architecture & Planning
291
+ | Skill | What it enforces |
292
+ |-------|-----------------|
293
+ | `ag-architecture` | High-level architecture decisions, ADRs |
294
+ | `ag-app-builder` | Full app scaffolding, feature planning |
295
+ | `ag-plan-writing` | Technical specs, scope documents |
296
+ | `ag-intelligent-routing` | Agent routing, task delegation |
297
+ | `ag-parallel-agents` | Parallel task splitting, fan-out patterns |
298
+ | `ag-brainstorming` | Idea generation, creative problem solving |
299
+
300
+ #### Language & Platform Specific
301
+ | Skill | What it enforces |
302
+ |-------|-----------------|
303
+ | `ag-bash-linux` | Bash scripting, Linux CLI, shell automation |
304
+ | `ag-powershell-windows` | PowerShell scripting, Windows automation |
305
+ | `ag-mcp-builder` | MCP server and tool building |
306
+ | `ag-game-development` | Game loops, physics, entity systems |
307
+ | `ag-geo-fundamentals` | GIS, coordinates, spatial queries |
308
+ | `ag-performance-profiling` | Flame graphs, APM, bottleneck analysis |
309
+ | `code-review` | Code review process and quality gates |
310
+ | `git-workflow` | Git operations, branching, commit conventions |
311
+ | `ag-lint-and-validate` | Linting pipelines, formatting enforcement |
312
+ | `ag-code-review-checklist` | PR checklists, review standards |
313
+ | `ag-behavioral-modes` | Agent persona and mode switching |
314
+
315
+ ---
316
+
317
+ ## 41 Specialized Agents
318
+
319
+ BrainForge installs **41 agent files** in `.brainforge/agents/`. Every agent has a `## Skills — Read BEFORE Starting` section that specifies exactly which skill files to load before starting work.
320
+
321
+ ### Core Workflow Agents
322
+
323
+ | Agent | Role |
324
+ |-------|------|
325
+ | `architect` | System design, folder structure, architecture decisions |
326
+ | `researcher` | Pre-implementation technical research |
327
+ | `planner` | Phase planning and task breakdown |
328
+ | `coder` | Implementation — reads 40+ skills based on task type |
329
+ | `reviewer` | Code review — bugs, security, level-appropriateness |
330
+ | `teacher` | Explain code, prepare for presentations/defenses |
331
+ | `git-agent` | Local commits and checkpoints (never pushes) |
332
+ | `dashboard-agent` | Keep the live dashboard up to date |
333
+
334
+ ### Advanced Agents (brainforge-*)
335
+
336
+ These agents handle complex workflows: atomic code fixes, adversarial reviews, AI framework selection, UI auditing, security verification, and more.
337
+
338
+ | Agent | Role |
339
+ |-------|------|
340
+ | `brainforge-advisor-researcher` | Research gray-area decisions — returns comparison tables |
341
+ | `brainforge-ai-researcher` | AI/LLM framework implementation guidance |
342
+ | `brainforge-assumptions-analyzer` | Extract codebase assumptions with evidence |
343
+ | `brainforge-code-fixer` | Atomic fix application with rollback and verification |
344
+ | `brainforge-code-reviewer` | Adversarial review → structured REVIEW.md |
345
+ | `brainforge-codebase-mapper` | Analyze codebase: tech, arch, quality, concerns |
346
+ | `brainforge-debug-session-manager` | Multi-cycle debug session orchestration |
347
+ | `brainforge-debugger` | Scientific root cause investigation |
348
+ | `brainforge-doc-classifier` | Classify planning docs: ADR/PRD/SPEC/DOC/UNKNOWN |
349
+ | `brainforge-doc-synthesizer` | Merge classified docs, surface conflicts |
350
+ | `brainforge-doc-verifier` | Verify doc claims against live codebase |
351
+ | `brainforge-doc-writer` | Codebase-verified documentation writing |
352
+ | `brainforge-domain-researcher` | AI system domain and eval criteria research |
353
+ | `brainforge-eval-auditor` | Retroactive AI evaluation coverage audit |
354
+ | `brainforge-eval-planner` | AI evaluation strategy design |
355
+ | `brainforge-executor` | Atomic PLAN.md execution with TDD support |
356
+ | `brainforge-framework-selector` | AI/LLM framework selection interview |
357
+ | `brainforge-integration-checker` | Verify cross-phase wiring end-to-end |
358
+ | `brainforge-intel-updater` | Generate structured codebase intel files |
359
+ | `brainforge-nyquist-auditor` | Adversarial test gap closure |
360
+ | `brainforge-pattern-mapper` | Map new files to existing code analogs |
361
+ | `brainforge-phase-researcher` | Pre-planning domain investigation |
362
+ | `brainforge-plan-checker` | 12-dimension plan verification |
363
+ | `brainforge-planner` | Goal-backward phase plan creation |
364
+ | `brainforge-project-researcher` | Ecosystem research before roadmap |
365
+ | `brainforge-research-synthesizer` | Synthesize parallel researcher outputs |
366
+ | `brainforge-roadmapper` | Requirements → phase roadmap |
367
+ | `brainforge-security-auditor` | Threat model mitigation verification |
368
+ | `brainforge-ui-auditor` | 6-pillar frontend implementation audit |
369
+ | `brainforge-ui-checker` | UI-SPEC.md quality gate |
370
+ | `brainforge-ui-researcher` | UI design contract creation |
371
+ | `brainforge-user-profiler` | Analyze developer behavior across 8 dimensions |
372
+ | `brainforge-verifier` | Goal-backward phase completion verification |
373
+
374
+ ---
375
+
158
376
  ## Slash Commands
159
377
 
160
378
  These are prompt files in `.brainforge/commands/` — paste the command name into your AI tool.
@@ -285,39 +503,95 @@ After `brainforge init`, your project contains:
285
503
  phases/
286
504
  phase-01.md ← plan + checklist for phase 1
287
505
  phase-02.md
288
- agents/
289
- architect.md ← Architect agent
290
- researcher.md ← Researcher agent
291
- planner.md ← Planner agent
292
- coder.md ← Coder agent
293
- reviewer.md ← Reviewer agent
294
- teacher.md ← Teacher agent (for students)
295
- git-agent.md ← Git Agent
296
- dashboard-agent.md ← Dashboard Agent
506
+ agents/ ← 41 specialized AI agents
507
+ architect.md
508
+ researcher.md
509
+ planner.md
510
+ coder.md
511
+ reviewer.md
512
+ teacher.md
513
+ git-agent.md
514
+ dashboard-agent.md
515
+ brainforge-advisor-researcher.md
516
+ brainforge-ai-researcher.md
517
+ brainforge-assumptions-analyzer.md
518
+ brainforge-code-fixer.md
519
+ brainforge-code-reviewer.md
520
+ brainforge-codebase-mapper.md
521
+ brainforge-debug-session-manager.md
522
+ brainforge-debugger.md
523
+ brainforge-doc-classifier.md
524
+ brainforge-doc-synthesizer.md
525
+ brainforge-doc-verifier.md
526
+ brainforge-doc-writer.md
527
+ brainforge-domain-researcher.md
528
+ brainforge-eval-auditor.md
529
+ brainforge-eval-planner.md
530
+ brainforge-executor.md
531
+ brainforge-framework-selector.md
532
+ brainforge-integration-checker.md
533
+ brainforge-intel-updater.md
534
+ brainforge-nyquist-auditor.md
535
+ brainforge-pattern-mapper.md
536
+ brainforge-phase-researcher.md
537
+ brainforge-plan-checker.md
538
+ brainforge-planner.md
539
+ brainforge-project-researcher.md
540
+ brainforge-research-synthesizer.md
541
+ brainforge-roadmapper.md
542
+ brainforge-security-auditor.md
543
+ brainforge-ui-auditor.md
544
+ brainforge-ui-checker.md
545
+ brainforge-ui-researcher.md
546
+ brainforge-user-profiler.md
547
+ brainforge-verifier.md
297
548
  commands/
298
- start-project.md ← /start-project
299
- create-roadmap.md ← /create-roadmap
300
- initiate-phase.md ← /initiate-phase
301
- execute-phase.md ← /execute-phase
302
- review-phase.md ← /review-phase
303
- write-tests.md ← /write-tests
304
- humanize-code.md ← /humanize-code
305
- explain-my-code.md ← /explain-my-code
306
- professor-check.md ← /professor-check
307
- checkpoint.md ← /checkpoint
308
- debug-issue.md ← /debug-issue
309
- design-system.md ← /design-system
310
- generate-docs.md ← /generate-docs
311
- generate-report.md ← /generate-report
312
- update-dashboard.md ← /update-dashboard
549
+ start-project.md
550
+ create-roadmap.md
551
+ initiate-phase.md
552
+ execute-phase.md
553
+ review-phase.md
554
+ write-tests.md
555
+ humanize-code.md
556
+ explain-my-code.md
557
+ professor-check.md
558
+ checkpoint.md
559
+ debug-issue.md
560
+ design-system.md
561
+ generate-docs.md
562
+ generate-report.md
563
+ update-dashboard.md
313
564
  dashboard/
314
565
  index.html ← visual dashboard
315
566
  style.css
316
567
  data.json
568
+ .claude/
569
+ skills/ ← 83 Claude Code skill files (auto-loaded by agents)
570
+ software-architecture.md
571
+ typescript-patterns.md
572
+ react-best-practices.md
573
+ next-best-practices.md
574
+ api-design.md
575
+ database-queries.md
576
+ security-review.md
577
+ git-workflow.md
578
+ test-driven-development.md
579
+ code-review.md
580
+ … (83 total)
317
581
  AGENTS.md ← instructions for all AI agents
318
- CLAUDE.md ← Claude Code specific config
319
- GEMINI.md ← Gemini CLI specific config
320
- OPENAI.md ← OpenAI / Codex specific config
582
+ CLAUDE.md ← Claude Code config + mandatory skills table
583
+ GEMINI.md ← Gemini CLI config
584
+ OPENAI.md ← OpenAI / Codex config
585
+ ```
586
+
587
+ ---
588
+
589
+ ## Keeping Skills & Agents Up to Date
590
+
591
+ Run `brainforge update` at any time to refresh all agent files, skill files, and slash commands to the latest version — without touching your project data (project.md, phases/, memory/, decisions.md are never modified).
592
+
593
+ ```bash
594
+ brainforge update
321
595
  ```
322
596
 
323
597
  ---
@@ -328,7 +602,7 @@ BrainForge generates config files for every major AI tool:
328
602
 
329
603
  | File | Tool |
330
604
  |------|------|
331
- | `CLAUDE.md` | Claude Code |
605
+ | `CLAUDE.md` | Claude Code (with full 83-skill mandatory table) |
332
606
  | `GEMINI.md` | Gemini CLI |
333
607
  | `OPENAI.md` | Codex / ChatGPT |
334
608
  | `AGENTS.md` | All tools (universal) |
@@ -377,6 +651,15 @@ npx brainforge-ai init
377
651
  # → /explain-my-code after each phase to understand what was built
378
652
  ```
379
653
 
654
+ ### AI system / LLM feature
655
+ ```bash
656
+ npx brainforge-ai init
657
+ # → brainforge-framework-selector picks your AI framework
658
+ # → brainforge-ai-researcher writes implementation guidance
659
+ # → brainforge-eval-planner designs the evaluation strategy
660
+ # → brainforge-eval-auditor verifies it was actually implemented
661
+ ```
662
+
380
663
  ---
381
664
 
382
665
  ## Requirements
@@ -417,4 +700,4 @@ MIT — free to use, modify, and share.
417
700
 
418
701
  ---
419
702
 
420
- *Built for students and developers who want structure before they start vibing.*
703
+ *Built for students and developers who want structure, best practices, and 83 skill guides — before they start vibing.*
package/dist/cli.js CHANGED
@@ -8,11 +8,14 @@ const dashboard_1 = require("./commands/dashboard");
8
8
  const updateDashboard_1 = require("./commands/updateDashboard");
9
9
  const serve_1 = require("./commands/serve");
10
10
  const help_1 = require("./commands/help");
11
+ const update_1 = require("./commands/update");
12
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
13
+ const pkg = require('../package.json');
11
14
  const program = new commander_1.Command();
12
15
  program
13
16
  .name('brainforge')
14
17
  .description('Transform any idea into a structured, AI-assisted project with agents, phases, memory, and a dashboard.')
15
- .version('1.0.0');
18
+ .version(pkg.version);
16
19
  program
17
20
  .command('init')
18
21
  .description('Initialize BrainForge in the current directory')
@@ -28,8 +31,8 @@ program
28
31
  program
29
32
  .command('dashboard')
30
33
  .description('Open the project dashboard in the browser')
31
- .action(() => {
32
- (0, dashboard_1.dashboardCommand)();
34
+ .action(async () => {
35
+ await (0, dashboard_1.dashboardCommand)();
33
36
  });
34
37
  program
35
38
  .command('update-dashboard')
@@ -44,6 +47,12 @@ program
44
47
  .action(async (opts) => {
45
48
  await (0, serve_1.serveCommand)(parseInt(opts.port, 10));
46
49
  });
50
+ program
51
+ .command('update')
52
+ .description('Update agents, commands, and dashboard to latest templates (preserves your project data)')
53
+ .action(async () => {
54
+ await (0, update_1.updateCommand)();
55
+ });
47
56
  program
48
57
  .command('guide')
49
58
  .description('Show all CLI and slash commands with project status')
@@ -54,7 +63,7 @@ program
54
63
  .command('version')
55
64
  .description('Show version information')
56
65
  .action(() => {
57
- console.log('brainforge-ai v1.0.0');
66
+ console.log(`brainforge-ai v${pkg.version}`);
58
67
  console.log('Node:', process.version);
59
68
  console.log('Platform:', process.platform);
60
69
  });
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA8C;AAC9C,8CAAkD;AAClD,oDAAwD;AACxD,gEAAoE;AACpE,4CAAgD;AAChD,0CAA8C;AAE9C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CACV,yGAAyG,CAC1G;KACA,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAA,kBAAW,GAAE,CAAC;AACtB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAA,sBAAa,GAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,GAAG,EAAE;IACX,IAAA,4BAAgB,GAAE,CAAC;AACrB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,mDAAmD,CAAC;KAChE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAA,wCAAsB,GAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,CAAC;KAC1D,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,IAAA,oBAAY,EAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,GAAG,EAAE;IACX,IAAA,kBAAW,GAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA8C;AAC9C,8CAAkD;AAClD,oDAAwD;AACxD,gEAAoE;AACpE,4CAAgD;AAChD,0CAA8C;AAC9C,8CAAkD;AAClD,8DAA8D;AAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE9D,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CACV,yGAAyG,CAC1G;KACA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAA,kBAAW,GAAE,CAAC;AACtB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAA,sBAAa,GAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAA,4BAAgB,GAAE,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,mDAAmD,CAAC;KAChE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAA,wCAAsB,GAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,CAAC;KAC1D,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,IAAA,oBAAY,EAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,0FAA0F,CAAC;KACvG,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAA,sBAAa,GAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,GAAG,EAAE;IACX,IAAA,kBAAW,GAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare function dashboardCommand(): void;
1
+ export declare function dashboardCommand(): Promise<void>;
2
2
  //# sourceMappingURL=dashboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"AAKA,wBAAgB,gBAAgB,IAAI,IAAI,CAmCvC"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"AAQA,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA6DtD"}
@@ -5,42 +5,62 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.dashboardCommand = dashboardCommand;
7
7
  const path_1 = __importDefault(require("path"));
8
+ const fs_extra_1 = __importDefault(require("fs-extra"));
9
+ const os_1 = __importDefault(require("os"));
8
10
  const child_process_1 = require("child_process");
9
11
  const config_1 = require("../core/config");
12
+ const dashboard_1 = require("../core/dashboard");
10
13
  const logger_1 = require("../utils/logger");
11
- function dashboardCommand() {
14
+ async function dashboardCommand() {
12
15
  const cwd = process.cwd();
13
16
  if (!(0, config_1.configExists)(cwd)) {
14
17
  logger_1.logger.error('BrainForge not initialized. Run: brainforge init');
15
18
  return;
16
19
  }
17
- const dashPath = path_1.default.join((0, config_1.getBrainforgeDir)(cwd), 'dashboard', 'index.html');
18
- const absPath = path_1.default.resolve(dashPath);
20
+ const brainDir = (0, config_1.getBrainforgeDir)(cwd);
21
+ const htmlSource = path_1.default.join(brainDir, 'dashboard', 'index.html');
22
+ const cssSource = path_1.default.join(brainDir, 'dashboard', 'style.css');
23
+ if (!fs_extra_1.default.existsSync(htmlSource)) {
24
+ logger_1.logger.error('Dashboard files not found. Run: brainforge init');
25
+ return;
26
+ }
27
+ // Generate fresh data
28
+ const config = (0, config_1.readConfig)(cwd);
29
+ const data = await (0, dashboard_1.generateDashboardData)(config, cwd);
30
+ // Read HTML and CSS
31
+ let html = fs_extra_1.default.readFileSync(htmlSource, 'utf-8');
32
+ const css = fs_extra_1.default.existsSync(cssSource) ? fs_extra_1.default.readFileSync(cssSource, 'utf-8') : '';
33
+ // Inline CSS so the file is fully self-contained
34
+ html = html.replace('<link rel="stylesheet" href="style.css" />', `<style>\n${css}\n</style>`);
35
+ // Inject data as a global variable before </head>
36
+ const dataScript = `<script>window.__BRAINFORGE_DATA__ = ${JSON.stringify(data)};</script>`;
37
+ html = html.replace('</head>', dataScript + '\n</head>');
38
+ // Write to a temp file so it works on file:// without CORS issues
39
+ const tmpFile = path_1.default.join(os_1.default.tmpdir(), 'brainforge-dashboard.html');
40
+ fs_extra_1.default.writeFileSync(tmpFile, html, 'utf-8');
19
41
  logger_1.logger.title('⚡ BrainForge Dashboard');
20
42
  logger_1.logger.divider();
21
- logger_1.logger.info(`Dashboard: ${absPath}`);
43
+ logger_1.logger.info(`Project: ${config.projectName}`);
44
+ logger_1.logger.info(`Phases: ${config.currentPhase}/${config.totalPhases}`);
22
45
  console.log();
23
- logger_1.logger.info('Open this file in your browser to view the dashboard.');
46
+ logger_1.logger.info('Tip: run brainforge serve for a live-reload version.');
24
47
  console.log();
25
- // Try to open in default browser (best-effort)
26
48
  try {
27
49
  const platform = process.platform;
28
50
  if (platform === 'win32') {
29
- (0, child_process_1.execSync)(`start "" "${absPath}"`, { stdio: 'ignore' });
30
- logger_1.logger.success('Dashboard opened in browser.');
51
+ (0, child_process_1.execSync)(`start "" "${tmpFile}"`, { stdio: 'ignore' });
31
52
  }
32
53
  else if (platform === 'darwin') {
33
- (0, child_process_1.execSync)(`open "${absPath}"`, { stdio: 'ignore' });
34
- logger_1.logger.success('Dashboard opened in browser.');
54
+ (0, child_process_1.execSync)(`open "${tmpFile}"`, { stdio: 'ignore' });
35
55
  }
36
56
  else {
37
- (0, child_process_1.execSync)(`xdg-open "${absPath}"`, { stdio: 'ignore' });
38
- logger_1.logger.success('Dashboard opened in browser.');
57
+ (0, child_process_1.execSync)(`xdg-open "${tmpFile}"`, { stdio: 'ignore' });
39
58
  }
59
+ logger_1.logger.success('Dashboard opened in browser.');
40
60
  }
41
61
  catch {
42
- logger_1.logger.warn('Could not auto-open browser. Open manually:');
43
- console.log(` file://${absPath.replace(/\\/g, '/')}`);
62
+ logger_1.logger.warn('Could not auto-open. Open manually:');
63
+ console.log(` file://${tmpFile.replace(/\\/g, '/')}`);
44
64
  }
45
65
  }
46
66
  //# sourceMappingURL=dashboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":";;;;;AAKA,4CAmCC;AAxCD,gDAAwB;AACxB,iDAAyC;AACzC,2CAAgE;AAChE,4CAAyC;AAEzC,SAAgB,gBAAgB;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,IAAI,CAAC,IAAA,qBAAY,EAAC,GAAG,CAAC,EAAE,CAAC;QACvB,eAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACjE,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,IAAA,yBAAgB,EAAC,GAAG,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEvC,eAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACvC,eAAM,CAAC,OAAO,EAAE,CAAC;IACjB,eAAM,CAAC,IAAI,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,eAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,+CAA+C;IAC/C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,IAAA,wBAAQ,EAAC,aAAa,OAAO,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvD,eAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAA,wBAAQ,EAAC,SAAS,OAAO,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACnD,eAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,IAAA,wBAAQ,EAAC,aAAa,OAAO,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvD,eAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,eAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAyDA,wBAAgB,WAAW,IAAI,IAAI,CAmFlC"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AA0DA,wBAAgB,WAAW,IAAI,IAAI,CAmFlC"}
@@ -12,8 +12,9 @@ const CLI_COMMANDS = [
12
12
  { cmd: 'brainforge serve', desc: 'Live dashboard on localhost:3000 (auto-reloads)' },
13
13
  { cmd: 'brainforge dashboard', desc: 'Open the HTML dashboard in the browser' },
14
14
  { cmd: 'brainforge update-dashboard', desc: 'Refresh dashboard data from project state' },
15
+ { cmd: 'brainforge update', desc: 'Update templates without touching your project data' },
15
16
  { cmd: 'brainforge doctor', desc: 'Health check — verify setup and files' },
16
- { cmd: 'brainforge help', desc: 'Show this help screen' },
17
+ { cmd: 'brainforge guide', desc: 'Show this help screen' },
17
18
  { cmd: 'brainforge version', desc: 'Show version info' },
18
19
  ];
19
20
  const SLASH_COMMANDS = [
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":";;;;;AA0DA,kCAmFC;AA7ID,kDAA0B;AAC1B,2CAA0D;AAC1D,4CAAyC;AAEzC,MAAM,YAAY,GAAG;IACnB,EAAE,GAAG,EAAE,iBAAiB,EAAc,IAAI,EAAE,gDAAgD,EAAE;IAC9F,EAAE,GAAG,EAAE,kBAAkB,EAAa,IAAI,EAAE,iDAAiD,EAAE;IAC/F,EAAE,GAAG,EAAE,sBAAsB,EAAS,IAAI,EAAE,wCAAwC,EAAE;IACtF,EAAE,GAAG,EAAE,6BAA6B,EAAE,IAAI,EAAE,2CAA2C,EAAE;IACzF,EAAE,GAAG,EAAE,mBAAmB,EAAY,IAAI,EAAE,qDAAqD,EAAE;IACnG,EAAE,GAAG,EAAE,mBAAmB,EAAY,IAAI,EAAE,uCAAuC,EAAE;IACrF,EAAE,GAAG,EAAE,kBAAkB,EAAa,IAAI,EAAE,uBAAuB,EAAE;IACrE,EAAE,GAAG,EAAE,oBAAoB,EAAW,IAAI,EAAE,mBAAmB,EAAE;CAClE,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB;QACE,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE;YACR,EAAE,GAAG,EAAE,gBAAgB,EAAI,IAAI,EAAE,4CAA4C,EAAE;YAC/E,EAAE,GAAG,EAAE,iBAAiB,EAAG,IAAI,EAAE,mDAAmD,EAAE;SACvF;KACF;IACD;QACE,KAAK,EAAE,gBAAgB;QACvB,QAAQ,EAAE;YACR,EAAE,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,2CAA2C,EAAE;YAC/E,EAAE,GAAG,EAAE,kBAAkB,EAAG,IAAI,EAAE,yCAAyC,EAAE;YAC7E,EAAE,GAAG,EAAE,iBAAiB,EAAI,IAAI,EAAE,oDAAoD,EAAE;YACxF,EAAE,GAAG,EAAE,aAAa,EAAQ,IAAI,EAAE,+CAA+C,EAAE;SACpF;KACF;IACD;QACE,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE;YACR,EAAE,GAAG,EAAE,cAAc,EAAO,IAAI,EAAE,+CAA+C,EAAE;YACnF,EAAE,GAAG,EAAE,gBAAgB,EAAK,IAAI,EAAE,4CAA4C,EAAE;YAChF,EAAE,GAAG,EAAE,cAAc,EAAO,IAAI,EAAE,iCAAiC,EAAE;SACtE;KACF;IACD;QACE,KAAK,EAAE,eAAe;QACtB,QAAQ,EAAE;YACR,EAAE,GAAG,EAAE,kBAAkB,EAAG,IAAI,EAAE,oDAAoD,EAAE;YACxF,EAAE,GAAG,EAAE,kBAAkB,EAAG,IAAI,EAAE,kDAAkD,EAAE;YACtF,EAAE,GAAG,EAAE,kBAAkB,EAAG,IAAI,EAAE,sCAAsC,EAAE;SAC3E;KACF;IACD;QACE,KAAK,EAAE,oBAAoB;QAC3B,QAAQ,EAAE;YACR,EAAE,GAAG,EAAE,gBAAgB,EAAK,IAAI,EAAE,oCAAoC,EAAE;YACxE,EAAE,GAAG,EAAE,gBAAgB,EAAK,IAAI,EAAE,kCAAkC,EAAE;YACtE,EAAE,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,iCAAiC,EAAE;SACtE;KACF;CACF,CAAC;AAEF,SAAgB,WAAW;IACzB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,WAAW,GAAG,IAAA,qBAAY,EAAC,GAAG,CAAC,CAAC;IAEtC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,wBAAwB;IACxB,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAC7D,CAAC;YACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;gBACzD,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CACjE,CAAC;YACF,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,GAAG;gBAChC,eAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,WAAW,SAAS,CAAC,CACnE,CAAC;YACF,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC;YACrC,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,eAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CACtD,CAAC;QACF,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,eAAe;IACf,eAAM,CAAC,OAAO,EAAE,CAAC;IACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAClD,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,YAAY,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CACT,IAAI,GAAG,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CACtD,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,eAAM,CAAC,OAAO,EAAE,CAAC;IACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAEhG,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CACT,MAAM,GAAG,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CACvD,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,oBAAoB;IACpB,eAAM,CAAC,OAAO,EAAE,CAAC;IACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG;QACZ,gBAAgB;QAChB,iBAAiB;QACjB,mBAAmB;QACnB,kBAAkB;QAClB,cAAc;QACd,iBAAiB;QACjB,aAAa;KACd,CAAC;IACF,OAAO,CAAC,GAAG,CACT,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAC/D,CAAC;IACF,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,YAAY;IACZ,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC;QACtB,eAAK,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAC7D,CAAC;IACF,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,KAAa;IACjD,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;IACzD,OAAO,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AACtE,CAAC"}