@hexidecibel/companion 0.0.1 → 0.1.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 (110) hide show
  1. package/dist/__tests__/task-parser.test.js +29 -29
  2. package/dist/__tests__/task-parser.test.js.map +1 -1
  3. package/dist/anthropic-usage.d.ts.map +1 -1
  4. package/dist/anthropic-usage.js +1 -1
  5. package/dist/anthropic-usage.js.map +1 -1
  6. package/dist/cert-generator.d.ts.map +1 -1
  7. package/dist/cert-generator.js +4 -21
  8. package/dist/cert-generator.js.map +1 -1
  9. package/dist/cli.d.ts +9 -0
  10. package/dist/cli.d.ts.map +1 -0
  11. package/dist/cli.js +413 -0
  12. package/dist/cli.js.map +1 -0
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +1 -7
  15. package/dist/config.js.map +1 -1
  16. package/dist/escalation.d.ts +51 -0
  17. package/dist/escalation.d.ts.map +1 -0
  18. package/dist/escalation.js +198 -0
  19. package/dist/escalation.js.map +1 -0
  20. package/dist/index.js +67 -30
  21. package/dist/index.js.map +1 -1
  22. package/dist/input-injector.d.ts.map +1 -1
  23. package/dist/input-injector.js +9 -5
  24. package/dist/input-injector.js.map +1 -1
  25. package/dist/notification-store.d.ts +35 -0
  26. package/dist/notification-store.d.ts.map +1 -0
  27. package/dist/notification-store.js +272 -0
  28. package/dist/notification-store.js.map +1 -0
  29. package/dist/parser.d.ts +15 -1
  30. package/dist/parser.d.ts.map +1 -1
  31. package/dist/parser.js +106 -61
  32. package/dist/parser.js.map +1 -1
  33. package/dist/push.d.ts +18 -26
  34. package/dist/push.d.ts.map +1 -1
  35. package/dist/push.js +90 -184
  36. package/dist/push.js.map +1 -1
  37. package/dist/qr-server.d.ts.map +1 -1
  38. package/dist/qr-server.js +159 -139
  39. package/dist/qr-server.js.map +1 -1
  40. package/dist/rules-engine.d.ts +20 -0
  41. package/dist/rules-engine.d.ts.map +1 -0
  42. package/dist/rules-engine.js +71 -0
  43. package/dist/rules-engine.js.map +1 -0
  44. package/dist/scaffold/claude-commands.d.ts +18 -0
  45. package/dist/scaffold/claude-commands.d.ts.map +1 -0
  46. package/dist/scaffold/claude-commands.js +352 -0
  47. package/dist/scaffold/claude-commands.js.map +1 -0
  48. package/dist/scaffold/generator.d.ts.map +1 -1
  49. package/dist/scaffold/generator.js +26 -1
  50. package/dist/scaffold/generator.js.map +1 -1
  51. package/dist/scaffold/scorer.d.ts +19 -0
  52. package/dist/scaffold/scorer.d.ts.map +1 -0
  53. package/dist/scaffold/scorer.js +92 -0
  54. package/dist/scaffold/scorer.js.map +1 -0
  55. package/dist/scaffold/templates/go-cli.d.ts +3 -0
  56. package/dist/scaffold/templates/go-cli.d.ts.map +1 -0
  57. package/dist/scaffold/templates/go-cli.js +249 -0
  58. package/dist/scaffold/templates/go-cli.js.map +1 -0
  59. package/dist/scaffold/templates/index.d.ts.map +1 -1
  60. package/dist/scaffold/templates/index.js +8 -2
  61. package/dist/scaffold/templates/index.js.map +1 -1
  62. package/dist/scaffold/templates/nextjs.d.ts +3 -0
  63. package/dist/scaffold/templates/nextjs.d.ts.map +1 -0
  64. package/dist/scaffold/templates/nextjs.js +336 -0
  65. package/dist/scaffold/templates/nextjs.js.map +1 -0
  66. package/dist/scaffold/templates/node-express.d.ts.map +1 -1
  67. package/dist/scaffold/templates/node-express.js +170 -157
  68. package/dist/scaffold/templates/node-express.js.map +1 -1
  69. package/dist/scaffold/templates/python-fastapi.d.ts.map +1 -1
  70. package/dist/scaffold/templates/python-fastapi.js +234 -221
  71. package/dist/scaffold/templates/python-fastapi.js.map +1 -1
  72. package/dist/scaffold/templates/react-mui-website.d.ts.map +1 -1
  73. package/dist/scaffold/templates/react-mui-website.js +337 -324
  74. package/dist/scaffold/templates/react-mui-website.js.map +1 -1
  75. package/dist/scaffold/templates/react-typescript.d.ts.map +1 -1
  76. package/dist/scaffold/templates/react-typescript.js +219 -206
  77. package/dist/scaffold/templates/react-typescript.js.map +1 -1
  78. package/dist/scaffold/templates/typescript-library.d.ts +3 -0
  79. package/dist/scaffold/templates/typescript-library.d.ts.map +1 -0
  80. package/dist/scaffold/templates/typescript-library.js +241 -0
  81. package/dist/scaffold/templates/typescript-library.js.map +1 -0
  82. package/dist/scaffold/types.d.ts +7 -0
  83. package/dist/scaffold/types.d.ts.map +1 -1
  84. package/dist/subagent-watcher.d.ts.map +1 -1
  85. package/dist/subagent-watcher.js +3 -3
  86. package/dist/subagent-watcher.js.map +1 -1
  87. package/dist/tmux-manager.d.ts +37 -0
  88. package/dist/tmux-manager.d.ts.map +1 -1
  89. package/dist/tmux-manager.js +165 -5
  90. package/dist/tmux-manager.js.map +1 -1
  91. package/dist/tool-config.d.ts.map +1 -1
  92. package/dist/tool-config.js +2 -2
  93. package/dist/tool-config.js.map +1 -1
  94. package/dist/types.d.ts +85 -0
  95. package/dist/types.d.ts.map +1 -1
  96. package/dist/types.js +18 -0
  97. package/dist/types.js.map +1 -1
  98. package/dist/watcher.d.ts +7 -0
  99. package/dist/watcher.d.ts.map +1 -1
  100. package/dist/watcher.js +118 -9
  101. package/dist/watcher.js.map +1 -1
  102. package/dist/websocket.d.ts +16 -2
  103. package/dist/websocket.d.ts.map +1 -1
  104. package/dist/websocket.js +758 -117
  105. package/dist/websocket.js.map +1 -1
  106. package/dist/work-group-manager.d.ts +69 -0
  107. package/dist/work-group-manager.d.ts.map +1 -0
  108. package/dist/work-group-manager.js +610 -0
  109. package/dist/work-group-manager.js.map +1 -0
  110. package/package.json +1 -1
@@ -0,0 +1,352 @@
1
+ "use strict";
2
+ /**
3
+ * Generates CLAUDE.md content and .claude/commands/*.md files
4
+ * tailored to each project template.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.generateClaudeMd = generateClaudeMd;
8
+ exports.generateCommandFiles = generateCommandFiles;
9
+ const STACK_CONFIGS = {
10
+ 'react-typescript': {
11
+ upCmd: 'npm run dev',
12
+ downCmd: 'Stop the Vite dev server (Ctrl+C in terminal)',
13
+ testCmd: 'npm test',
14
+ buildCmd: 'npm run build',
15
+ installCmd: 'npm install',
16
+ devServer: 'Vite dev server',
17
+ language: 'TypeScript',
18
+ },
19
+ 'react-mui-website': {
20
+ upCmd: 'npm run dev',
21
+ downCmd: 'Stop the Vite dev server (Ctrl+C in terminal)',
22
+ testCmd: 'npm test',
23
+ buildCmd: 'npm run build',
24
+ installCmd: 'npm install',
25
+ devServer: 'Vite dev server',
26
+ language: 'TypeScript',
27
+ },
28
+ 'node-express': {
29
+ upCmd: 'npm run dev',
30
+ downCmd: 'Stop the Express server (Ctrl+C in terminal)',
31
+ testCmd: 'npm test',
32
+ buildCmd: 'npm run build',
33
+ installCmd: 'npm install',
34
+ devServer: 'Express dev server with ts-node',
35
+ language: 'TypeScript',
36
+ },
37
+ 'python-fastapi': {
38
+ upCmd: 'uvicorn main:app --reload',
39
+ downCmd: 'Stop the uvicorn server (Ctrl+C in terminal)',
40
+ testCmd: 'pytest',
41
+ installCmd: 'pip install -r requirements.txt',
42
+ devServer: 'uvicorn with hot reload',
43
+ language: 'Python',
44
+ },
45
+ nextjs: {
46
+ upCmd: 'npm run dev',
47
+ downCmd: 'Stop the Next.js dev server (Ctrl+C in terminal)',
48
+ testCmd: 'npm test',
49
+ buildCmd: 'npm run build',
50
+ installCmd: 'npm install',
51
+ devServer: 'Next.js dev server',
52
+ language: 'TypeScript',
53
+ },
54
+ 'go-cli': {
55
+ upCmd: 'go run .',
56
+ downCmd: 'N/A (CLI exits after execution)',
57
+ testCmd: 'go test ./...',
58
+ buildCmd: 'go build -o bin/',
59
+ language: 'Go',
60
+ },
61
+ 'typescript-library': {
62
+ upCmd: 'npm run build -- --watch',
63
+ downCmd: 'Stop the TypeScript watcher (Ctrl+C in terminal)',
64
+ testCmd: 'npm test',
65
+ buildCmd: 'npm run build',
66
+ installCmd: 'npm install',
67
+ language: 'TypeScript',
68
+ },
69
+ };
70
+ const DEFAULT_CONFIG = {
71
+ upCmd: 'npm run dev',
72
+ downCmd: 'Stop the dev server',
73
+ testCmd: 'npm test',
74
+ buildCmd: 'npm run build',
75
+ installCmd: 'npm install',
76
+ language: 'TypeScript',
77
+ };
78
+ function getStackConfig(templateId) {
79
+ return STACK_CONFIGS[templateId] || DEFAULT_CONFIG;
80
+ }
81
+ /**
82
+ * Generate CLAUDE.md content for a project.
83
+ */
84
+ function generateClaudeMd(projectName, description, templateId) {
85
+ const config = getStackConfig(templateId);
86
+ const sections = [];
87
+ sections.push(`# ${projectName}`);
88
+ sections.push('');
89
+ sections.push(description);
90
+ sections.push('');
91
+ // Commands section
92
+ sections.push('## Commands');
93
+ sections.push('');
94
+ if (config.installCmd) {
95
+ sections.push(`- Install: \`${config.installCmd}\``);
96
+ }
97
+ if (config.buildCmd) {
98
+ sections.push(`- Build: \`${config.buildCmd}\``);
99
+ }
100
+ sections.push(`- Dev: \`${config.upCmd}\``);
101
+ sections.push(`- Test: \`${config.testCmd}\``);
102
+ sections.push('');
103
+ // Code style
104
+ sections.push('## Code Style');
105
+ sections.push('');
106
+ sections.push(`- Language: ${config.language}`);
107
+ sections.push('- Use functional patterns where possible');
108
+ sections.push('- Keep functions small and focused');
109
+ sections.push('- Prefer explicit types over `any`');
110
+ sections.push('');
111
+ // Workflow
112
+ sections.push('## Workflow');
113
+ sections.push('');
114
+ sections.push('Use the slash commands for common tasks:');
115
+ sections.push('- `/up` — Start dev server');
116
+ sections.push('- `/down` — Stop services');
117
+ sections.push('- `/test` — Run test suite');
118
+ sections.push('- `/todo` — Capture a task');
119
+ sections.push('- `/plan` — Plan implementation from todo');
120
+ sections.push('- `/work` — Implement planned items');
121
+ sections.push('');
122
+ return sections.join('\n');
123
+ }
124
+ /**
125
+ * Generate .claude/commands/*.md files for a project.
126
+ */
127
+ function generateCommandFiles(projectName, templateId) {
128
+ const config = getStackConfig(templateId);
129
+ const commands = [
130
+ {
131
+ name: 'up',
132
+ path: '.claude/commands/up.md',
133
+ content: generateUpCommand(projectName, config),
134
+ },
135
+ {
136
+ name: 'down',
137
+ path: '.claude/commands/down.md',
138
+ content: generateDownCommand(projectName, config),
139
+ },
140
+ {
141
+ name: 'todo',
142
+ path: '.claude/commands/todo.md',
143
+ content: generateTodoCommand(projectName),
144
+ },
145
+ {
146
+ name: 'plan',
147
+ path: '.claude/commands/plan.md',
148
+ content: generatePlanCommand(projectName),
149
+ },
150
+ {
151
+ name: 'work',
152
+ path: '.claude/commands/work.md',
153
+ content: generateWorkCommand(projectName, config),
154
+ },
155
+ {
156
+ name: 'test',
157
+ path: '.claude/commands/test.md',
158
+ content: generateTestCommand(projectName, config),
159
+ },
160
+ ];
161
+ return commands;
162
+ }
163
+ function generateUpCommand(projectName, config) {
164
+ const lines = [];
165
+ lines.push(`# Start ${projectName}`);
166
+ lines.push('');
167
+ lines.push(`Start the development server/services for ${projectName}.`);
168
+ lines.push('');
169
+ lines.push('## Steps');
170
+ lines.push('');
171
+ if (config.installCmd) {
172
+ lines.push(`1. Install dependencies if needed: \`${config.installCmd}\``);
173
+ lines.push(`2. Start: \`${config.upCmd}\``);
174
+ }
175
+ else {
176
+ lines.push(`1. Start: \`${config.upCmd}\``);
177
+ }
178
+ lines.push('');
179
+ return lines.join('\n');
180
+ }
181
+ function generateDownCommand(projectName, config) {
182
+ const lines = [];
183
+ lines.push(`# Stop ${projectName}`);
184
+ lines.push('');
185
+ lines.push(`Stop running services for ${projectName}.`);
186
+ lines.push('');
187
+ lines.push('## Steps');
188
+ lines.push('');
189
+ lines.push(`1. ${config.downCmd}`);
190
+ lines.push('');
191
+ return lines.join('\n');
192
+ }
193
+ function generateTodoCommand(_projectName) {
194
+ return `# Add Todo Item
195
+
196
+ Quickly capture ideas and tasks to todo.md.
197
+
198
+ ## Usage
199
+
200
+ \`\`\`
201
+ /todo <description>
202
+ \`\`\`
203
+
204
+ ## Instructions
205
+
206
+ 1. The item to add: \`$ARGUMENTS\`
207
+
208
+ 2. Read or create todo.md
209
+
210
+ 3. Add the item as a bullet point:
211
+ - Format: \`- <the text>\`
212
+ - Add under the appropriate section
213
+
214
+ 4. Confirm what was added
215
+
216
+ ## Notes
217
+
218
+ - This is for quick capture - don't overthink it
219
+ - Use \`/plan\` later to process these into detailed plans
220
+ - Use \`/work\` to implement from the plan
221
+ `;
222
+ }
223
+ function generatePlanCommand(_projectName) {
224
+ return `# Plan from Todo
225
+
226
+ Process todo.md items into detailed implementation plans.
227
+
228
+ ## Instructions
229
+
230
+ 1. Read todo.md
231
+
232
+ 2. Read plan.md (if exists)
233
+
234
+ 3. For each unplanned item in todo.md:
235
+ - Ask clarifying questions if needed
236
+ - Understand the scope and requirements
237
+ - Identify which files need changes
238
+
239
+ 4. Write detailed plan to plan.md:
240
+ \`\`\`markdown
241
+ # Implementation Plan
242
+
243
+ ## Item: <title>
244
+ **Status:** planned | in-progress | done
245
+
246
+ ### Requirements
247
+ - <bullet points>
248
+
249
+ ### Files to Modify
250
+ - \`path/to/file\` - <what changes>
251
+
252
+ ### Implementation Steps
253
+ 1. <step>
254
+ 2. <step>
255
+
256
+ ### Tests Needed
257
+ - <test case>
258
+ \`\`\`
259
+
260
+ 5. Mark items as planned in todo.md
261
+
262
+ ## Rules
263
+
264
+ - NO CODING in this phase
265
+ - Ask questions if anything is unclear
266
+ - Keep plans focused and actionable
267
+ `;
268
+ }
269
+ function generateWorkCommand(_projectName, config) {
270
+ const typeCheck = config.language === 'Python'
271
+ ? 'mypy .'
272
+ : config.language === 'Go'
273
+ ? 'go vet ./...'
274
+ : 'npx tsc --noEmit';
275
+ return `# Work on Planned Items
276
+
277
+ Implement items from plan.md using TDD. If multiple items can be parallelized, spawn worker sessions.
278
+
279
+ ## Instructions
280
+
281
+ 1. Read plan.md
282
+
283
+ 2. Find ALL items with **Status: planned** or **Status: in-progress**
284
+
285
+ 3. **If 2+ planned items exist, analyze parallelism:**
286
+
287
+ a. For each item, look at the "Files to Modify" section
288
+ b. Compare file lists between items \u2014 items with NO shared files can run in parallel
289
+ c. Group items into:
290
+ - **Parallel group**: Items with non-overlapping files
291
+ - **Sequential group**: Items that share files with another item
292
+
293
+ d. Present the analysis via AskUserQuestion:
294
+ - Show which items can be parallelized and why
295
+ - Show which items must be sequential and why (list shared files)
296
+ - Options: [Parallelize] [Work sequentially] [Let me choose]
297
+
298
+ e. If user approves parallelization, spawn worker sessions by calling the
299
+ companion daemon API with a \\\`spawn_work_group\\\` message via curl to
300
+ \\\`http://localhost:9877\\\`. Include the token from config, a group name,
301
+ the current session ID, the parent directory, and a workers array with
302
+ each worker's taskSlug, taskDescription, planSection, and files list.
303
+
304
+ f. After spawning, continue working on sequential items (if any) using TDD
305
+ g. When done with sequential items, check worker status and report
306
+
307
+ 4. **If only 1 item, or user chose sequential:** Follow TDD for each item:
308
+
309
+ a. **Write tests first**
310
+ - Create/update test files based on "Tests Needed" section
311
+ - Run tests - they should fail (red)
312
+
313
+ b. **Implement the feature**
314
+ - Follow the "Implementation Steps" from plan
315
+ - Make tests pass (green)
316
+ - Run type check: \`${typeCheck}\`
317
+
318
+ c. **Refactor if needed**
319
+ - Clean up code while keeping tests green
320
+
321
+ d. **Commit**
322
+ - Commit with descriptive message
323
+ - Update plan.md status to "done"
324
+
325
+ 5. When ALL items are done (including parallel workers), merge if needed by
326
+ calling the daemon API with a \\\`merge_work_group\\\` message.
327
+
328
+ ## Rules
329
+
330
+ - Tests first, always
331
+ - Commit after each completed item
332
+ - NO push without explicit approval
333
+ - Ask if stuck or unclear
334
+ - When spawning workers, each worker handles ONE plan item only
335
+ - Workers should not modify files outside their scope
336
+ `;
337
+ }
338
+ function generateTestCommand(_projectName, config) {
339
+ const lines = [];
340
+ lines.push(`# Run Tests`);
341
+ lines.push('');
342
+ lines.push('Run the project test suite.');
343
+ lines.push('');
344
+ lines.push('## Steps');
345
+ lines.push('');
346
+ lines.push(`1. Run: \`${config.testCmd}\``);
347
+ lines.push('2. Report results: pass/fail count, any failures');
348
+ lines.push('3. If tests fail, show the failure details');
349
+ lines.push('');
350
+ return lines.join('\n');
351
+ }
352
+ //# sourceMappingURL=claude-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-commands.js","sourceRoot":"","sources":["../../src/scaffold/claude-commands.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/scaffold/generator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAiB,MAAM,SAAS,CAAC;AAgBzF,KAAK,gBAAgB,GAAG,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAoB7D,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,gBAAgB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA2IzB;AAGD,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAUvE"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/scaffold/generator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAiB1E,KAAK,gBAAgB,GAAG,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAoB7D,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,gBAAgB,GAC5B,OAAO,CAAC,cAAc,CAAC,CAuKzB;AAGD,wBAAsB,eAAe,CACnC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAiBvE"}
@@ -41,6 +41,7 @@ const os = __importStar(require("os"));
41
41
  const child_process_1 = require("child_process");
42
42
  const util_1 = require("util");
43
43
  const templates_1 = require("./templates");
44
+ const claude_commands_1 = require("./claude-commands");
44
45
  // Expand ~ to home directory
45
46
  function expandPath(p) {
46
47
  if (p.startsWith('~/')) {
@@ -109,6 +110,24 @@ async function scaffoldProject(config, onProgress) {
109
110
  await fs.writeFile(filePath, fileContent, 'utf-8');
110
111
  filesCreated.push(file.path);
111
112
  }
113
+ // Step 2b: Generate CLAUDE.md and .claude/commands/
114
+ onProgress?.({
115
+ step: 'Generating CLAUDE.md and commands',
116
+ progress: 58,
117
+ complete: false,
118
+ });
119
+ const claudeMdContent = (0, claude_commands_1.generateClaudeMd)(variables.projectName, config.description || `A ${template.name} project`, config.stackId);
120
+ const claudeMdPath = path.join(projectPath, 'CLAUDE.md');
121
+ await fs.writeFile(claudeMdPath, claudeMdContent, 'utf-8');
122
+ filesCreated.push('CLAUDE.md');
123
+ const commandFiles = (0, claude_commands_1.generateCommandFiles)(variables.projectName, config.stackId);
124
+ const commandsDir = path.join(projectPath, '.claude', 'commands');
125
+ await fs.mkdir(commandsDir, { recursive: true });
126
+ for (const cmd of commandFiles) {
127
+ const cmdPath = path.join(projectPath, cmd.path);
128
+ await fs.writeFile(cmdPath, cmd.content, 'utf-8');
129
+ filesCreated.push(cmd.path);
130
+ }
112
131
  // Step 3: Initialize git if requested
113
132
  if (config.options.initGit) {
114
133
  onProgress?.({
@@ -200,7 +219,13 @@ async function previewScaffold(config) {
200
219
  return { error: `Unknown template: ${config.stackId}` };
201
220
  }
202
221
  const projectPath = path.join(expandPath(config.location), toValidName(config.name));
203
- const files = template.files.map(f => f.path);
222
+ const files = template.files.map((f) => f.path);
223
+ // Include CLAUDE.md and commands in preview
224
+ files.push('CLAUDE.md');
225
+ const commandFiles = (0, claude_commands_1.generateCommandFiles)(toValidName(config.name), config.stackId);
226
+ for (const cmd of commandFiles) {
227
+ files.push(cmd.path);
228
+ }
204
229
  return { files, projectPath };
205
230
  }
206
231
  //# sourceMappingURL=generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/scaffold/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/scaffold/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { StackTemplate } from './types';
2
+ export interface ScoredTemplate {
3
+ templateId: string;
4
+ score: number;
5
+ matchedKeywords: string[];
6
+ }
7
+ /**
8
+ * Score templates against a user description.
9
+ * Pure function, no I/O.
10
+ *
11
+ * Weights:
12
+ * - useCases substring match: 5
13
+ * - primaryKeywords token match: 3
14
+ * - typeSignals synonym match: 2
15
+ * - secondaryKeywords token match: 1
16
+ * - tags token match: 0.5
17
+ */
18
+ export declare function scoreTemplates(templates: StackTemplate[], description: string): ScoredTemplate[];
19
+ //# sourceMappingURL=scorer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scorer.d.ts","sourceRoot":"","sources":["../../src/scaffold/scorer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAkBD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,EAAE,CAwEhG"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.scoreTemplates = scoreTemplates;
4
+ /**
5
+ * Tokenize a description into lowercase words and bigrams.
6
+ */
7
+ function tokenize(text) {
8
+ const lower = text.toLowerCase();
9
+ const words = lower.match(/[a-z0-9]+/g) || [];
10
+ const tokens = new Set(words);
11
+ // Add bigrams (consecutive word pairs)
12
+ for (let i = 0; i < words.length - 1; i++) {
13
+ tokens.add(`${words[i]} ${words[i + 1]}`);
14
+ }
15
+ return tokens;
16
+ }
17
+ /**
18
+ * Score templates against a user description.
19
+ * Pure function, no I/O.
20
+ *
21
+ * Weights:
22
+ * - useCases substring match: 5
23
+ * - primaryKeywords token match: 3
24
+ * - typeSignals synonym match: 2
25
+ * - secondaryKeywords token match: 1
26
+ * - tags token match: 0.5
27
+ */
28
+ function scoreTemplates(templates, description) {
29
+ if (!description || !description.trim()) {
30
+ return templates.map((t) => ({ templateId: t.id, score: 0, matchedKeywords: [] }));
31
+ }
32
+ const descLower = description.toLowerCase();
33
+ const tokens = tokenize(description);
34
+ const rawScores = [];
35
+ let maxRaw = 0;
36
+ for (const template of templates) {
37
+ let raw = 0;
38
+ const matched = [];
39
+ const scoring = template.scoring;
40
+ if (scoring) {
41
+ // useCases: substring match against full description (weight 5)
42
+ for (const useCase of scoring.useCases) {
43
+ if (descLower.includes(useCase.toLowerCase())) {
44
+ raw += 5;
45
+ matched.push(useCase);
46
+ }
47
+ }
48
+ // primaryKeywords: token match (weight 3)
49
+ for (const kw of scoring.primaryKeywords) {
50
+ if (tokens.has(kw.toLowerCase())) {
51
+ raw += 3;
52
+ matched.push(kw);
53
+ }
54
+ }
55
+ // typeSignals: synonym match (weight 2 * signal value)
56
+ for (const [signal, value] of Object.entries(scoring.typeSignals)) {
57
+ if (tokens.has(signal.toLowerCase())) {
58
+ raw += 2 * value;
59
+ matched.push(signal);
60
+ }
61
+ }
62
+ // secondaryKeywords: token match (weight 1)
63
+ for (const kw of scoring.secondaryKeywords) {
64
+ if (tokens.has(kw.toLowerCase())) {
65
+ raw += 1;
66
+ matched.push(kw);
67
+ }
68
+ }
69
+ }
70
+ // tags: token match (weight 0.5)
71
+ for (const tag of template.tags) {
72
+ if (tokens.has(tag.toLowerCase())) {
73
+ raw += 0.5;
74
+ if (!matched.includes(tag)) {
75
+ matched.push(tag);
76
+ }
77
+ }
78
+ }
79
+ if (raw > maxRaw)
80
+ maxRaw = raw;
81
+ rawScores.push({ templateId: template.id, raw, matchedKeywords: matched });
82
+ }
83
+ // Normalize to 0.0–1.0
84
+ return rawScores
85
+ .map((s) => ({
86
+ templateId: s.templateId,
87
+ score: maxRaw > 0 ? Math.round((s.raw / maxRaw) * 100) / 100 : 0,
88
+ matchedKeywords: s.matchedKeywords,
89
+ }))
90
+ .sort((a, b) => b.score - a.score || a.templateId.localeCompare(b.templateId));
91
+ }
92
+ //# sourceMappingURL=scorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scorer.js","sourceRoot":"","sources":["../../src/scaffold/scorer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { StackTemplate } from '../types';
2
+ export declare const goCliTemplate: StackTemplate;
3
+ //# sourceMappingURL=go-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-cli.d.ts","sourceRoot":"","sources":["../../../src/scaffold/templates/go-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,aAAa,EAAE,aAoP3B,CAAC"}