@nexus-framework/cli 0.1.4 → 0.2.1

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 (71) hide show
  1. package/README.md +133 -40
  2. package/dist/cli.js +5 -3
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/adopt.d.ts +4 -2
  5. package/dist/commands/adopt.d.ts.map +1 -1
  6. package/dist/commands/adopt.js +47 -8
  7. package/dist/commands/adopt.js.map +1 -1
  8. package/dist/commands/init.d.ts +1 -0
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +1 -1
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/generators/ai-config.d.ts.map +1 -1
  13. package/dist/generators/ai-config.js +208 -55
  14. package/dist/generators/ai-config.js.map +1 -1
  15. package/dist/generators/docs.d.ts +10 -1
  16. package/dist/generators/docs.d.ts.map +1 -1
  17. package/dist/generators/docs.js +40 -65
  18. package/dist/generators/docs.js.map +1 -1
  19. package/dist/generators/index.d.ts +2 -1
  20. package/dist/generators/index.d.ts.map +1 -1
  21. package/dist/generators/index.js +49 -7
  22. package/dist/generators/index.js.map +1 -1
  23. package/dist/generators/spring-boot.d.ts +12 -0
  24. package/dist/generators/spring-boot.d.ts.map +1 -0
  25. package/dist/generators/spring-boot.js +220 -0
  26. package/dist/generators/spring-boot.js.map +1 -0
  27. package/dist/generators/structure.d.ts +1 -0
  28. package/dist/generators/structure.d.ts.map +1 -1
  29. package/dist/generators/structure.js +90 -24
  30. package/dist/generators/structure.js.map +1 -1
  31. package/dist/prompts/adoption.d.ts +35 -0
  32. package/dist/prompts/adoption.d.ts.map +1 -0
  33. package/dist/prompts/adoption.js +153 -0
  34. package/dist/prompts/adoption.js.map +1 -0
  35. package/dist/prompts/frameworks.d.ts +5 -1
  36. package/dist/prompts/frameworks.d.ts.map +1 -1
  37. package/dist/prompts/frameworks.js +48 -0
  38. package/dist/prompts/frameworks.js.map +1 -1
  39. package/dist/prompts/index.d.ts +2 -1
  40. package/dist/prompts/index.d.ts.map +1 -1
  41. package/dist/prompts/index.js +19 -7
  42. package/dist/prompts/index.js.map +1 -1
  43. package/dist/prompts/persona.d.ts +16 -0
  44. package/dist/prompts/persona.d.ts.map +1 -0
  45. package/dist/prompts/persona.js +79 -0
  46. package/dist/prompts/persona.js.map +1 -0
  47. package/dist/prompts/project-type.d.ts.map +1 -1
  48. package/dist/prompts/project-type.js +6 -1
  49. package/dist/prompts/project-type.js.map +1 -1
  50. package/dist/types/config.d.ts +31 -2
  51. package/dist/types/config.d.ts.map +1 -1
  52. package/dist/types/config.js +7 -1
  53. package/dist/types/config.js.map +1 -1
  54. package/dist/types/index.d.ts +2 -1
  55. package/dist/types/index.d.ts.map +1 -1
  56. package/dist/types/index.js +1 -1
  57. package/dist/types/index.js.map +1 -1
  58. package/dist/utils/file-system.d.ts.map +1 -1
  59. package/dist/utils/file-system.js +4 -2
  60. package/dist/utils/file-system.js.map +1 -1
  61. package/dist/utils/logger.d.ts +2 -2
  62. package/dist/utils/logger.d.ts.map +1 -1
  63. package/dist/utils/logger.js +49 -36
  64. package/dist/utils/logger.js.map +1 -1
  65. package/dist/utils/project-detector.d.ts +20 -4
  66. package/dist/utils/project-detector.d.ts.map +1 -1
  67. package/dist/utils/project-detector.js +156 -27
  68. package/dist/utils/project-detector.js.map +1 -1
  69. package/dist/version.d.ts +1 -1
  70. package/dist/version.js +1 -1
  71. package/package.json +4 -2
package/README.md CHANGED
@@ -2,19 +2,20 @@
2
2
 
3
3
  # 🔮 NEXUS CLI
4
4
 
5
- ### AI-Native Project Scaffolding
5
+ ### The AI-Native Development Framework
6
6
 
7
- **The open-source CLI by [GDA Africa](https://github.com/GDA-Africa) that generates production-ready, AI-optimized project structures so you ship faster and smarter.**
7
+ **The open-source CLI by [GDA Africa](https://github.com/GDA-Africa) that turns every project into an AI-powered workspacewhere coding agents understand your architecture, remember your decisions, and code with knowledge.**
8
8
 
9
9
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178C6?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
10
10
  [![Node.js](https://img.shields.io/badge/Node.js-20+-339933?style=for-the-badge&logo=node.js&logoColor=white)](https://nodejs.org/)
11
- [![Vitest](https://img.shields.io/badge/Vitest-105_Passing-green?style=for-the-badge&logo=vitest&logoColor=white)](https://vitest.dev/)
11
+ [![Vitest](https://img.shields.io/badge/Vitest-190_Passing-green?style=for-the-badge&logo=vitest&logoColor=white)](https://vitest.dev/)
12
+ [![npm](https://img.shields.io/npm/v/@nexus-framework/cli?style=for-the-badge&logo=npm&logoColor=white&label=npm)](https://www.npmjs.com/package/@nexus-framework/cli)
12
13
  [![License](https://img.shields.io/badge/License-Apache_2.0-blue?style=for-the-badge)](LICENSE)
13
14
  [![PRs Welcome](https://img.shields.io/badge/PRs-Welcome-brightgreen?style=for-the-badge)](https://github.com/GDA-Africa/nexus-cli/pulls)
14
15
 
15
16
  ---
16
17
 
17
- *Where documentation drives development and AI agents are first-class citizens.*
18
+ *Where AI agents don't just write code they understand why.*
18
19
 
19
20
  </div>
20
21
 
@@ -22,20 +23,24 @@
22
23
 
23
24
  ## 🌍 About GDA Africa
24
25
 
25
- **GDA (Glenhalton Digital Agency)** is building the digital infrastructure for Africa's next generation of products and services. NEXUS CLI is GDA's open-source developer toola scaffolding engine that generates intelligent project structures where AI and humans collaborate from day one.
26
+ **GDA (Glenhalton Digital Agency)** is building the digital infrastructure for Africa's next generation of products and services. NEXUS CLI is GDA's open-source developer frameworkthe bridge between human intent and AI execution, giving every project a brain that coding agents can link to, learn from, and build upon.
26
27
 
27
28
  ---
28
29
 
29
30
  ## 🎯 Why NEXUS?
30
31
 
31
- Every new project starts with the same ritual: hours of boilerplate, fragmented configs, and zero documentation. NEXUS eliminates all of that.
32
+ Scaffolding tools generate files. NEXUS generates **understanding**.
33
+
34
+ Every project gets a documentation system AI agents can parse, a knowledge base they learn from, a project brain they check before every task, and a persona that makes them feel like a real teammate — not a generic autocomplete.
32
35
 
33
36
  | Problem | NEXUS Solution |
34
37
  |---|---|
35
- | 🕐 Hours of setup and config guesswork to start a project | **2-minute interactive setup** with strategy-first questions and smart defaults |
36
- | 🤖 AI tools (Cursor, Copilot) have no project-wide context | **8 structured doc files** AI agents can parse, execute, and auto-populate |
37
- | 🧪 Tests and docs are always afterthoughts | **Generated from day one** test infrastructure, CI/CD, and documentation included |
38
- | 🔄 No conventions exist for AI-native development | **The first framework built for the AI era** bridging requirements and code generation |
38
+ | 🤖 AI tools (Cursor, Copilot, Windsurf) have no project-wide context | **NEXUS Knowledge System** AI first structured files AI agents read automatically, covering vision → architecture → implementation |
39
+ | AI agents forget everything between sessions | **Progressive Knowledge Base** append-only memory AI agents scan before tasks and write to after discoveries |
40
+ | 🔄 AI agents don't know what to work on next | **Project Brain** (`index.md`)status matrix, feature backlog, progress log, and "What's Next" priority queue |
41
+ | 😐 AI assistants feel generic and disconnected | **Agent Persona** configurable tone, verbosity, identity. Your AI calls itself "Nexus" and speaks with intent |
42
+ | � Hours of setup and config guesswork | **2-minute interactive setup** — strategy-first questions, 6 frameworks, full toolchain, tests from day one |
43
+ | 📚 Docs and tests are always afterthoughts | **Generated from day one** — tests, CI/CD, ESLint, Prettier, and 8 AI-readable doc files included |
39
44
 
40
45
  ---
41
46
 
@@ -45,22 +50,44 @@ Every new project starts with the same ritual: hours of boilerplate, fragmented
45
50
  <tr>
46
51
  <td width="50%">
47
52
 
48
- ### Core Capabilities
49
- - 🧠 **Strategy-First Setup** — Asks about your goals, not just tech preferences
50
- - 📐 **Complete Scaffolding** — Production-ready structure, not hello world
51
- - 📚 **NEXUS Doc System** — 8 AI-optimized markdown files per project
52
- - 🎯 **Smart Defaults** — Best practices baked in based on your choices
53
- - 🧪 **Test Infrastructure** — Vitest config, example tests, and helpers included
53
+ ### 🧠 AI-Native Intelligence
54
+ - **NEXUS Doc System** — 8 structured AI-readable docs per project
55
+ - **Project Brain** — `index.md` drives what AI agents work on next
56
+ - **Knowledge Base** — append-only memory that persists across sessions
57
+ - **Agent Persona** — tone, verbosity, identity, custom directives
58
+ - **Onboarding Protocol** — AI agents auto-populate docs on first run
59
+ - **Multi-Tool Support** — Cursor, Copilot, Windsurf, Cline, Claude Code
60
+
61
+ </td>
62
+ <td width="50%">
63
+
64
+ ### ⚡ Production-Ready Scaffolding
65
+ - **6 Frameworks** — Next.js, React+Vite, SvelteKit, Nuxt, Astro, Remix
66
+ - **Strategy-First Setup** — asks about goals, not just tech preferences
67
+ - **Full Toolchain** — TypeScript, ESLint, Prettier pre-configured
68
+ - **Test Infrastructure** — Vitest/Jest config, example tests, helpers
69
+ - **CI/CD Templates** — GitHub Actions workflows out of the box
70
+ - **Pattern Support** — PWA, Offline-First, i18n, Theming, Real-time
71
+
72
+ </td>
73
+ </tr>
74
+ <tr>
75
+ <td width="50%">
76
+
77
+ ### 🔧 Lifecycle Commands
78
+ - **`nexus init`** — scaffold a new project with full AI integration
79
+ - **`nexus adopt`** — add NEXUS to any existing codebase
80
+ - **`nexus upgrade`** — regenerate templates, preserve user work
81
+ - **`nexus repair`** — fix missing or corrupted NEXUS files
54
82
 
55
83
  </td>
56
84
  <td width="50%">
57
85
 
58
- ### Production Ready
59
- - **5 Frameworks** — Next.js, React+Vite, SvelteKit, Nuxt, Astro
60
- - 🔧 **Full Toolchain** — TypeScript, ESLint, Prettier pre-configured
61
- - 🚀 **CI/CD Templates** — GitHub Actions workflows out of the box
62
- - 🏗️ **Adopt Existing Projects** — Add NEXUS to any codebase with `nexus adopt`
63
- - 📦 **Strategy Patterns** — PWA, Offline-First, i18n, Theming, Real-time
86
+ ### 🛡️ Smart File Management
87
+ - **YAML Frontmatter Tracking** — knows which docs you've edited
88
+ - **Corruption Detection** — finds empty files, broken JSON, missing metadata
89
+ - **Preserve-or-Replace Logic** — never overwrites your populated docs
90
+ - **Manifest Recovery** — upgrades without re-prompting
64
91
 
65
92
  </td>
66
93
  </tr>
@@ -85,7 +112,7 @@ nexus init my-app
85
112
  You'll be guided through an interactive setup:
86
113
 
87
114
  ```
88
- 🔮 NEXUS CLI v0.1.2 — AI-Native Project Scaffolding
115
+ 🔮 NEXUS CLI v0.2.0 — AI-Native Development Framework
89
116
 
90
117
  ? What are you building? › Web Application
91
118
  ? How will your app handle data? › Cloud First
@@ -95,6 +122,10 @@ You'll be guided through an interactive setup:
95
122
  ? Package manager? › npm
96
123
  ? Initialize a git repository? › Yes
97
124
  ? Install dependencies now? › Yes
125
+ ? 🎭 What vibe should your AI have? › 😊 Friendly
126
+ ? 📏 How detailed should responses be? › ⚖️ Balanced
127
+ ? 🤖 I'm Nexus! What should I call myself? › Nexus
128
+ ? ✨ Custom personality note? › (skip)
98
129
 
99
130
  ✔ Project created successfully!
100
131
 
@@ -110,6 +141,15 @@ npm run dev
110
141
  # → Your app is running at http://localhost:3000
111
142
  ```
112
143
 
144
+ ### What Happens Next
145
+
146
+ Open the project in your AI coding tool (Cursor, Copilot, Windsurf, Cline). The AI agent will:
147
+ 1. **Detect the NEXUS instructions** automatically (`.cursorrules`, `.github/copilot-instructions.md`, etc.)
148
+ 2. **Read `index.md`** — your project brain — to understand status and priorities
149
+ 3. **Scan `knowledge.md`** — the progressive memory — for past decisions and gotchas
150
+ 4. **Check for template docs** — if any have `status: template`, it will auto-populate them by scanning your codebase
151
+ 5. **Start working** from the "What's Next" section — no more "what should I build?"
152
+
113
153
  ---
114
154
 
115
155
  ## 📦 What You Get
@@ -118,19 +158,50 @@ Every generated project includes:
118
158
 
119
159
  | Output | What's Inside |
120
160
  |---|---|
121
- | `src/` | Framework-specific source code and landing page |
122
- | `.nexus/docs/` | 8 AI-optimized documentation files (vision, architecture, API contracts, test strategy, etc.) |
123
- | `.nexus/ai/` | AI agent instructions — Copilot, Cursor, Windsurf, Cline all auto-detect these |
124
- | `tests/` | Vitest config, example tests, and test helpers |
161
+ | `src/` | Framework-specific source code and branded landing page |
162
+ | `.nexus/docs/` | **The NEXUS Doc System** — 8 AI-readable files + project brain + knowledge base |
163
+ | `.nexus/ai/` | Master AI instructions — the single source of truth for agent behavior |
164
+ | Tool configs | `.cursorrules`, `.windsurfrules`, `.clinerules`, `AGENTS.md`, `.github/copilot-instructions.md` each embeds full instructions |
165
+ | `tests/` | Vitest/Jest config, example tests, and test helpers |
125
166
  | `package.json` | Real dependencies, real scripts — `npm run dev` works immediately |
126
167
  | CI/CD | GitHub Actions workflow for lint, test, and build |
127
168
  | Config | TypeScript, ESLint, Prettier, EditorConfig — all pre-configured |
128
169
 
170
+ ### The NEXUS Doc System
171
+
172
+ | # | File | Purpose |
173
+ |---|------|---------|
174
+ | 🧠 | `index.md` | **Project Brain** — status, backlog, progress, what's next |
175
+ | 📚 | `knowledge.md` | **Knowledge Base** — append-only memory of decisions, gotchas, patterns |
176
+ | 1 | `01_vision.md` | Product requirements, user stories, success metrics |
177
+ | 2 | `02_architecture.md` | System design, tech stack, data flow |
178
+ | 3 | `03_data_contracts.md` | Database schemas, validation, relationships |
179
+ | 4 | `04_api_contracts.md` | Endpoints, interfaces, status codes |
180
+ | 5 | `05_business_logic.md` | Rules, algorithms, state machines |
181
+ | 6 | `06_test_strategy.md` | Coverage targets, test types, philosophy |
182
+ | 7 | `07_implementation.md` | Build order, file-by-file plan |
183
+ | 8 | `08_deployment.md` | Infrastructure, CI/CD, environment config |
184
+
185
+ ---
186
+
187
+ ## 🎭 Agent Persona
188
+
189
+ NEXUS lets you configure how AI agents communicate when they're synced with your project.
190
+
191
+ | Option | Choices | Default |
192
+ |--------|---------|---------|
193
+ | **Tone** | 👔 Professional · 😊 Friendly · 🧠 Witty · 🧘 Zen · 🏴‍☠️ Pirate | Friendly |
194
+ | **Verbosity** | ⚡ Concise · ⚖️ Balanced · 📖 Detailed | Balanced |
195
+ | **Identity** | Name the AI uses for itself (persists across upgrades) | Nexus |
196
+ | **Custom directive** | Any freeform personality instruction | — |
197
+
198
+ When an AI agent reads the NEXUS instructions and sees the persona config, it adopts that personality. The user sees "Nexus" in responses — their signal that the agent has read the docs, scanned the knowledge base, and is synced with the project brain.
199
+
129
200
  ---
130
201
 
131
202
  ## 🏗️ Adopt an Existing Project
132
203
 
133
- Already have a project? Add the NEXUS documentation system and AI config without touching your source code.
204
+ Already have a project? Add the NEXUS AI layer without touching your source code.
134
205
 
135
206
  ```bash
136
207
  cd my-existing-app
@@ -152,23 +223,45 @@ After adopting, your AI coding tool will auto-detect the NEXUS docs, scan your c
152
223
  | **SvelteKit** | 2.x | Svelte 5, file-based routing |
153
224
  | **Nuxt** | 3.x | Vue 3, auto-imports |
154
225
  | **Astro** | 5.x | Content-first, island architecture |
226
+ | **Remix** | 2.x | Nested routing, loaders/actions |
155
227
 
156
228
  ---
157
229
 
158
230
  ## 🗺️ Roadmap
159
231
 
160
- - [x] Core CLI with `nexus init` and `nexus adopt`
161
- - [x] Interactive prompt system (project type, data strategy, patterns, frameworks)
162
- - [x] Generator engine (structure, docs, config, tests, CI/CD, landing page, AI config)
163
- - [x] AI-native documentation system (8 structured files + onboarding protocol)
164
- - [x] 5 frontend frameworks supported
165
- - [x] 105 unit tests passing
232
+ ### Shipped
233
+ - [x] Core CLI with `nexus init`, `nexus adopt`, `nexus upgrade`, `nexus repair`
234
+ - [x] Interactive prompt system (7 modules including persona)
235
+ - [x] Generator engine (8 modules: structure, docs, config, tests, CI/CD, landing page, AI config, orchestrator)
236
+ - [x] AI-native documentation system (8 structured files + project brain + knowledge base + onboarding protocol)
237
+ - [x] Agent Persona system (tone, verbosity, identity, custom directives)
238
+ - [x] Multi-tool AI support (Cursor, Copilot, Windsurf, Cline, Claude Code)
239
+ - [x] 6 frontend frameworks supported
240
+ - [x] Smart file strategy (upgrade preserves user work, repair fixes corruption)
241
+ - [x] Progressive knowledge base (append-only, category-tagged, AI-scannable)
242
+ - [x] 190 unit tests passing
166
243
  - [x] Published to npm as `@nexus-framework/cli`
167
- - [ ] End-to-end testing of full `nexus init` flow
244
+ - [x] CI/CD with auto-publish to npm on version bump
245
+
246
+ ### 🔜 Next Up (v0.3.0)
247
+ - [ ] E2E tests — generate a project, run its build, verify all files
248
+ - [ ] Framework-specific template content (not just landing pages)
249
+ - [ ] `nexus add <feature>` — add capabilities to existing NEXUS projects
250
+ - [ ] Improve error messages and edge case handling
251
+
252
+ ### 🗓️ Near-term
253
+ - [ ] Plugin system for custom generators
254
+ - [ ] Template marketplace / community templates
255
+ - [ ] Web-based project configurator
256
+ - [ ] Docker template support
168
257
  - [ ] Strategy pattern generators (PWA service workers, i18n setup, theming engine)
169
- - [ ] `nexus add <feature>` — add capabilities to existing projects
170
- - [ ] `nexus validate` — check projects against NEXUS standards
171
- - [ ] Community templates and plugin system
258
+
259
+ ### 📋 Backlog
260
+ - [ ] `nexus eject` remove NEXUS, keep code
261
+ - [ ] `nexus validate` — check project against NEXUS standards
262
+ - [ ] `nexus migrate` — migrate from CRA, etc.
263
+ - [ ] GitLab CI, Bitbucket Pipelines templates
264
+ - [ ] Pro tier features (paid AI-powered code generation)
172
265
 
173
266
  ---
174
267
 
@@ -179,7 +272,7 @@ We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
179
272
  ```bash
180
273
  git clone https://github.com/GDA-Africa/nexus-cli.git
181
274
  cd nexus-cli && yarn install
182
- yarn lint && yarn test
275
+ yarn lint && yarn test # 190 tests, zero lint errors
183
276
  ```
184
277
 
185
278
  ---
@@ -190,7 +283,7 @@ yarn lint && yarn test
190
283
 
191
284
  **Built with ❤️ by [GDA Africa](https://github.com/GDA-Africa)** — Powering Africa's Digital Future
192
285
 
193
- *NEXUS CLI is the open-source foundation of the NEXUS framework. For questions, ideas, or collaboration, reach out to the GDA engineering team.*
286
+ *NEXUS CLI is the open-source foundation of the NEXUS framework — where AI agents don't just write code, they understand your project. For questions, ideas, or collaboration, reach out to the GDA engineering team.*
194
287
 
195
288
  ---
196
289
 
package/dist/cli.js CHANGED
@@ -18,14 +18,16 @@ program
18
18
  .command('init [project-name]')
19
19
  .description('Initialize a new NEXUS project with interactive setup')
20
20
  .option('--adopt', 'Shorthand: same as `nexus adopt` (add NEXUS to an existing project)')
21
+ .option('--local', 'Configure NEXUS as local-only (not tracked by git)')
21
22
  .action(async (projectName, options) => {
22
- await initCommand(projectName, { adopt: options.adopt ?? false });
23
+ await initCommand(projectName, { adopt: options.adopt ?? false, local: options.local ?? false });
23
24
  });
24
25
  program
25
26
  .command('adopt [path]')
26
27
  .description('Add NEXUS docs & AI config to an existing project (no scaffolding)')
27
- .action(async (targetPath) => {
28
- await adoptCommand(targetPath);
28
+ .option('--force', 'Force adoption even if no project is detected')
29
+ .action(async (targetPath, options) => {
30
+ await adoptCommand(targetPath, options);
29
31
  });
30
32
  program
31
33
  .command('upgrade [path]')
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,8DAA8D,CAAC;KAC3E,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAErC,OAAO;KACJ,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,SAAS,EAAE,qEAAqE,CAAC;KACxF,MAAM,CAAC,KAAK,EAAE,WAA+B,EAAE,OAA4B,EAAE,EAAE;IAC9E,MAAM,WAAW,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,oEAAoE,CAAC;KACjF,MAAM,CAAC,KAAK,EAAE,UAA8B,EAAE,EAAE;IAC/C,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,2EAA2E,CAAC;KACxF,MAAM,CAAC,KAAK,EAAE,UAA8B,EAAE,EAAE;IAC/C,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,wEAAwE,CAAC;KACrF,MAAM,CAAC,KAAK,EAAE,UAA8B,EAAE,EAAE;IAC/C,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEL,yCAAyC;AACzC,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,8DAA8D,CAAC;KAC3E,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAErC,OAAO;KACJ,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,SAAS,EAAE,qEAAqE,CAAC;KACxF,MAAM,CAAC,SAAS,EAAE,oDAAoD,CAAC;KACvE,MAAM,CAAC,KAAK,EAAE,WAA+B,EAAE,OAA6C,EAAE,EAAE;IAC/F,MAAM,WAAW,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;AACnG,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,oEAAoE,CAAC;KACjF,MAAM,CAAC,SAAS,EAAE,+CAA+C,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,UAA8B,EAAE,OAA4B,EAAE,EAAE;IAC7E,MAAM,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,2EAA2E,CAAC;KACxF,MAAM,CAAC,KAAK,EAAE,UAA8B,EAAE,EAAE;IAC/C,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,wEAAwE,CAAC;KACrF,MAAM,CAAC,KAAK,EAAE,UAA8B,EAAE,EAAE;IAC/C,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEL,yCAAyC;AACzC,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -19,7 +19,9 @@
19
19
  * Handler for `nexus adopt [path]`.
20
20
  *
21
21
  * @param targetPath - Optional path to the project to adopt (defaults to cwd)
22
- * @param options - Reserved for future flags (e.g. --force)
22
+ * @param options - Command options (--force to skip project detection)
23
23
  */
24
- export declare function adoptCommand(targetPath?: string, _options?: Record<string, unknown>): Promise<void>;
24
+ export declare function adoptCommand(targetPath?: string, options?: {
25
+ force?: boolean;
26
+ }): Promise<void>;
25
27
  //# sourceMappingURL=adopt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adopt.d.ts","sourceRoot":"","sources":["../../src/commands/adopt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AASH;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,OAAO,CAAC,IAAI,CAAC,CAmDf"}
1
+ {"version":3,"file":"adopt.d.ts","sourceRoot":"","sources":["../../src/commands/adopt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAChC,OAAO,CAAC,IAAI,CAAC,CA0Ff"}
@@ -17,6 +17,7 @@
17
17
  */
18
18
  import path from 'node:path';
19
19
  import { adoptProject } from '../generators/index.js';
20
+ import { promptAdoption } from '../prompts/adoption.js';
20
21
  import { logger } from '../utils/logger.js';
21
22
  import { detectProject } from '../utils/project-detector.js';
22
23
  import { version } from '../version.js';
@@ -24,21 +25,57 @@ import { version } from '../version.js';
24
25
  * Handler for `nexus adopt [path]`.
25
26
  *
26
27
  * @param targetPath - Optional path to the project to adopt (defaults to cwd)
27
- * @param options - Reserved for future flags (e.g. --force)
28
+ * @param options - Command options (--force to skip project detection)
28
29
  */
29
- export async function adoptCommand(targetPath, _options = {}) {
30
+ export async function adoptCommand(targetPath, options = {}) {
30
31
  logger.banner(version);
31
32
  const targetDir = targetPath
32
33
  ? path.resolve(process.cwd(), targetPath)
33
34
  : process.cwd();
34
- // Detect the existing project
35
- const projectInfo = await detectProject(targetDir);
36
- if (!projectInfo.detected) {
35
+ // Detect the existing project (skip if --force)
36
+ const projectInfo = options.force
37
+ ? {
38
+ detected: true,
39
+ signals: {
40
+ hasPackageJson: false,
41
+ hasGit: false,
42
+ hasSrc: false,
43
+ hasTsConfig: false,
44
+ hasNodeModules: false,
45
+ hasGoMod: false,
46
+ hasCargoToml: false,
47
+ hasPyProjectToml: false,
48
+ hasFirebaseJson: false,
49
+ hasPomXml: false,
50
+ hasBuildGradle: false,
51
+ isInsideMonorepo: false,
52
+ monorepoRoot: null,
53
+ },
54
+ name: null,
55
+ description: null,
56
+ framework: null,
57
+ testFramework: null,
58
+ packageManager: null,
59
+ hasNexus: false,
60
+ dependencies: [],
61
+ }
62
+ : await detectProject(targetDir);
63
+ if (!projectInfo.detected && !options.force) {
37
64
  logger.error('No existing project detected in this directory.');
38
65
  logger.newline();
39
- logger.info('The adopt command is for existing projects that already have a package.json.');
40
- logger.info('To create a brand-new project, run:');
66
+ logger.info('NEXUS adopt works with:');
67
+ logger.info(' Node.js projects (package.json)');
68
+ logger.info(' • Spring Boot projects (pom.xml, build.gradle)');
69
+ logger.info(' • Cloud Functions (firebase.json)');
70
+ logger.info(' • Go projects (go.mod)');
71
+ logger.info(' • Rust projects (Cargo.toml)');
72
+ logger.info(' • Python projects (pyproject.toml)');
73
+ logger.info(' • Monorepos (workspace structure)');
74
+ logger.newline();
75
+ logger.info('To force adoption of any directory:');
76
+ logger.nexus(' nexus adopt --force');
41
77
  logger.newline();
78
+ logger.info('To create a brand-new project:');
42
79
  logger.nexus(' nexus init <project-name>');
43
80
  logger.newline();
44
81
  process.exit(1);
@@ -58,8 +95,10 @@ export async function adoptCommand(targetPath, _options = {}) {
58
95
  logger.info(`Detected test framework: ${testFw}`);
59
96
  logger.info(`Detected package manager: ${pm}`);
60
97
  logger.newline();
98
+ // Run pre-adoption interview
99
+ const adoptionContext = await promptAdoption(projectInfo);
61
100
  try {
62
- await adoptProject(targetDir, projectInfo);
101
+ await adoptProject(targetDir, projectInfo, adoptionContext);
63
102
  logger.adoptComplete(displayName);
64
103
  }
65
104
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"adopt.js","sourceRoot":"","sources":["../../src/commands/adopt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAmB,EACnB,WAAoC,EAAE;IAEtC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEvB,MAAM,SAAS,GAAG,UAAU;QAC1B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC;QACzC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAElB,8BAA8B;IAC9B,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IAEnD,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAChE,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;QAC5F,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,CACT,oGAAoG,CACrG,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,IAAI,SAAS,CAAC;IACrD,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,IAAI,MAAM,CAAC;IACnD,MAAM,EAAE,GAAG,WAAW,CAAC,cAAc,IAAI,KAAK,CAAC;IAE/C,MAAM,CAAC,KAAK,CAAC,aAAa,WAAW,+BAA+B,CAAC,CAAC;IACtE,MAAM,CAAC,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,IAAI,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,CAAC,4BAA4B,MAAM,EAAE,CAAC,CAAC;IAClD,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,OAAO,EAAE,CAAC;IAEjB,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3C,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACzC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"adopt.js","sourceRoot":"","sources":["../../src/commands/adopt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAmB,EACnB,UAA+B,EAAE;IAEjC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEvB,MAAM,SAAS,GAAG,UAAU;QAC1B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC;QACzC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAElB,gDAAgD;IAChD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK;QAC/B,CAAC,CAAC;YACE,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,KAAK;gBACrB,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,KAAK;gBAClB,cAAc,EAAE,KAAK;gBACrB,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,KAAK;gBACnB,gBAAgB,EAAE,KAAK;gBACvB,eAAe,EAAE,KAAK;gBACtB,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,KAAK;gBACrB,gBAAgB,EAAE,KAAK;gBACvB,YAAY,EAAE,IAAI;aACnB;YACD,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,IAAI;YACpB,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,EAAE;SACjB;QACH,CAAC,CAAC,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;IAEnC,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAChE,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACtC,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,CACT,oGAAoG,CACrG,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,IAAI,SAAS,CAAC;IACrD,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,IAAI,MAAM,CAAC;IACnD,MAAM,EAAE,GAAG,WAAW,CAAC,cAAc,IAAI,KAAK,CAAC;IAE/C,MAAM,CAAC,KAAK,CAAC,aAAa,WAAW,+BAA+B,CAAC,CAAC;IACtE,MAAM,CAAC,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,IAAI,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,CAAC,4BAA4B,MAAM,EAAE,CAAC,CAAC;IAClD,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,OAAO,EAAE,CAAC;IAEjB,6BAA6B;IAC7B,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IAE1D,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QAC5D,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACzC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -13,6 +13,7 @@
13
13
  /** Options passed from cli.ts */
14
14
  export interface InitOptions {
15
15
  adopt?: boolean;
16
+ local?: boolean;
16
17
  }
17
18
  /**
18
19
  * Handler for the `nexus init` command.
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,iCAAiC;AACjC,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CA2Df"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,iCAAiC;AACjC,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CA2Df"}
@@ -54,7 +54,7 @@ export async function initCommand(projectName, options = {}) {
54
54
  }
55
55
  try {
56
56
  // Run interactive prompts
57
- const config = await runPrompts(projectName);
57
+ const config = await runPrompts(projectName, options.local);
58
58
  logger.newline();
59
59
  logger.nexus(`Creating "${config.displayName}" with ${config.frontendFramework}...`);
60
60
  logger.newline();
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ai-config.d.ts","sourceRoot":"","sources":["../../src/generators/ai-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAO3D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,EAAE,CAcrE"}
1
+ {"version":3,"file":"ai-config.d.ts","sourceRoot":"","sources":["../../src/generators/ai-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAO3D;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,EAAE,CAcrE"}