ridgeline 0.6.0 → 0.7.2

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 (162) hide show
  1. package/README.md +8 -5
  2. package/dist/agents/core/designer.md +131 -0
  3. package/dist/agents/core/refiner.md +28 -1
  4. package/dist/agents/core/researcher.md +30 -11
  5. package/dist/agents/core/specifier.md +16 -0
  6. package/dist/agents/researchers/gaps.md +67 -0
  7. package/dist/agents/specifiers/visual-coherence.md +55 -0
  8. package/dist/cli.js +39 -8
  9. package/dist/cli.js.map +1 -1
  10. package/dist/commands/create.js +16 -1
  11. package/dist/commands/create.js.map +1 -1
  12. package/dist/commands/design.d.ts +8 -0
  13. package/dist/commands/design.js +130 -0
  14. package/dist/commands/design.js.map +1 -0
  15. package/dist/commands/index.d.ts +1 -0
  16. package/dist/commands/index.js +3 -1
  17. package/dist/commands/index.js.map +1 -1
  18. package/dist/commands/plan.js +3 -3
  19. package/dist/commands/plan.js.map +1 -1
  20. package/dist/commands/qa-workflow.d.ts +33 -0
  21. package/dist/commands/qa-workflow.js +139 -0
  22. package/dist/commands/qa-workflow.js.map +1 -0
  23. package/dist/commands/refine.d.ts +1 -0
  24. package/dist/commands/refine.js +17 -4
  25. package/dist/commands/refine.js.map +1 -1
  26. package/dist/commands/research.js +22 -8
  27. package/dist/commands/research.js.map +1 -1
  28. package/dist/commands/rewind.js +2 -2
  29. package/dist/commands/rewind.js.map +1 -1
  30. package/dist/commands/shape.js +36 -121
  31. package/dist/commands/shape.js.map +1 -1
  32. package/dist/commands/spec.js +1 -0
  33. package/dist/commands/spec.js.map +1 -1
  34. package/dist/engine/claude/stream.display.js +0 -1
  35. package/dist/engine/claude/stream.display.js.map +1 -1
  36. package/dist/engine/claude/stream.parse.d.ts +1 -15
  37. package/dist/engine/claude/stream.parse.js +3 -21
  38. package/dist/engine/claude/stream.parse.js.map +1 -1
  39. package/dist/engine/claude/stream.result.js +2 -2
  40. package/dist/engine/claude/stream.types.d.ts +15 -0
  41. package/dist/engine/claude/stream.types.js +23 -0
  42. package/dist/engine/claude/stream.types.js.map +1 -0
  43. package/dist/engine/discovery/agent.registry.d.ts +4 -0
  44. package/dist/engine/discovery/agent.registry.js +46 -18
  45. package/dist/engine/discovery/agent.registry.js.map +1 -1
  46. package/dist/engine/discovery/flavour.config.d.ts +9 -0
  47. package/dist/engine/discovery/flavour.config.js +61 -0
  48. package/dist/engine/discovery/flavour.config.js.map +1 -0
  49. package/dist/engine/discovery/plugin.scan.d.ts +1 -0
  50. package/dist/engine/discovery/plugin.scan.js +29 -1
  51. package/dist/engine/discovery/plugin.scan.js.map +1 -1
  52. package/dist/engine/discovery/skill.check.d.ts +19 -0
  53. package/dist/engine/discovery/skill.check.js +145 -0
  54. package/dist/engine/discovery/skill.check.js.map +1 -0
  55. package/dist/engine/pipeline/build.exec.js +1 -0
  56. package/dist/engine/pipeline/build.exec.js.map +1 -1
  57. package/dist/engine/pipeline/phase.sequence.js +10 -10
  58. package/dist/engine/pipeline/phase.sequence.js.map +1 -1
  59. package/dist/engine/pipeline/pipeline.shared.d.ts +6 -0
  60. package/dist/engine/pipeline/pipeline.shared.js +24 -1
  61. package/dist/engine/pipeline/pipeline.shared.js.map +1 -1
  62. package/dist/engine/pipeline/plan.exec.js +1 -0
  63. package/dist/engine/pipeline/plan.exec.js.map +1 -1
  64. package/dist/engine/pipeline/refine.exec.d.ts +2 -0
  65. package/dist/engine/pipeline/refine.exec.js +13 -2
  66. package/dist/engine/pipeline/refine.exec.js.map +1 -1
  67. package/dist/engine/pipeline/research.exec.d.ts +3 -0
  68. package/dist/engine/pipeline/research.exec.js +74 -5
  69. package/dist/engine/pipeline/research.exec.js.map +1 -1
  70. package/dist/engine/pipeline/review.exec.js +23 -0
  71. package/dist/engine/pipeline/review.exec.js.map +1 -1
  72. package/dist/engine/pipeline/specify.exec.d.ts +1 -0
  73. package/dist/engine/pipeline/specify.exec.js +114 -44
  74. package/dist/engine/pipeline/specify.exec.js.map +1 -1
  75. package/dist/flavours/data-analysis/core/refiner.md +28 -1
  76. package/dist/flavours/data-analysis/core/researcher.md +30 -11
  77. package/dist/flavours/data-analysis/researchers/gaps.md +59 -0
  78. package/dist/flavours/game-dev/core/refiner.md +28 -1
  79. package/dist/flavours/game-dev/core/researcher.md +30 -11
  80. package/dist/flavours/game-dev/researchers/gaps.md +59 -0
  81. package/dist/flavours/legal-drafting/core/refiner.md +28 -1
  82. package/dist/flavours/legal-drafting/core/researcher.md +30 -11
  83. package/dist/flavours/legal-drafting/researchers/gaps.md +59 -0
  84. package/dist/flavours/machine-learning/core/refiner.md +28 -1
  85. package/dist/flavours/machine-learning/core/researcher.md +30 -11
  86. package/dist/flavours/machine-learning/researchers/gaps.md +59 -0
  87. package/dist/flavours/mobile-app/core/refiner.md +28 -1
  88. package/dist/flavours/mobile-app/core/researcher.md +30 -11
  89. package/dist/flavours/mobile-app/researchers/gaps.md +59 -0
  90. package/dist/flavours/music-composition/core/refiner.md +28 -1
  91. package/dist/flavours/music-composition/core/researcher.md +30 -11
  92. package/dist/flavours/music-composition/researchers/gaps.md +59 -0
  93. package/dist/flavours/novel-writing/core/refiner.md +28 -1
  94. package/dist/flavours/novel-writing/core/researcher.md +30 -11
  95. package/dist/flavours/novel-writing/researchers/gaps.md +59 -0
  96. package/dist/flavours/screenwriting/core/refiner.md +28 -1
  97. package/dist/flavours/screenwriting/core/researcher.md +30 -11
  98. package/dist/flavours/screenwriting/researchers/gaps.md +59 -0
  99. package/dist/flavours/security-audit/core/refiner.md +28 -1
  100. package/dist/flavours/security-audit/core/researcher.md +30 -11
  101. package/dist/flavours/security-audit/researchers/gaps.md +59 -0
  102. package/dist/flavours/software-engineering/core/builder.md +2 -0
  103. package/dist/flavours/software-engineering/core/refiner.md +28 -1
  104. package/dist/flavours/software-engineering/core/researcher.md +30 -11
  105. package/dist/flavours/software-engineering/core/reviewer.md +2 -0
  106. package/dist/flavours/software-engineering/flavour.json +7 -0
  107. package/dist/flavours/software-engineering/researchers/gaps.md +59 -0
  108. package/dist/flavours/technical-writing/core/refiner.md +28 -1
  109. package/dist/flavours/technical-writing/core/researcher.md +30 -11
  110. package/dist/flavours/technical-writing/researchers/gaps.md +59 -0
  111. package/dist/flavours/test-suite/core/refiner.md +28 -1
  112. package/dist/flavours/test-suite/core/researcher.md +30 -11
  113. package/dist/flavours/test-suite/researchers/gaps.md +59 -0
  114. package/dist/flavours/translation/core/refiner.md +28 -1
  115. package/dist/flavours/translation/core/researcher.md +30 -11
  116. package/dist/flavours/translation/researchers/gaps.md +59 -0
  117. package/dist/flavours/web-game/core/builder.md +123 -0
  118. package/dist/flavours/web-game/core/reviewer.md +159 -0
  119. package/dist/flavours/web-game/flavour.json +9 -0
  120. package/dist/flavours/web-ui/core/builder.md +117 -0
  121. package/dist/flavours/web-ui/core/reviewer.md +155 -0
  122. package/dist/flavours/web-ui/flavour.json +10 -0
  123. package/dist/plugin/visual-tools/plugin.json +4 -0
  124. package/dist/plugin/visual-tools/skills/a11y-audit/SKILL.md +57 -0
  125. package/dist/plugin/visual-tools/skills/agent-browser/SKILL.md +56 -0
  126. package/dist/plugin/visual-tools/skills/agent-browser/references/viewports.md +17 -0
  127. package/dist/plugin/visual-tools/skills/canvas-screenshot/SKILL.md +84 -0
  128. package/dist/plugin/visual-tools/skills/css-audit/SKILL.md +50 -0
  129. package/dist/plugin/visual-tools/skills/lighthouse/SKILL.md +58 -0
  130. package/dist/plugin/visual-tools/skills/shader-validate/SKILL.md +77 -0
  131. package/dist/plugin/visual-tools/skills/visual-diff/SKILL.md +68 -0
  132. package/dist/shapes/detect.d.ts +8 -0
  133. package/dist/shapes/detect.js +87 -0
  134. package/dist/shapes/detect.js.map +1 -0
  135. package/dist/shapes/game-visual.json +8 -0
  136. package/dist/shapes/print-layout.json +8 -0
  137. package/dist/shapes/web-visual.json +9 -0
  138. package/dist/stores/budget.js +2 -1
  139. package/dist/stores/budget.js.map +1 -1
  140. package/dist/stores/feedback.format.d.ts +3 -0
  141. package/dist/stores/feedback.format.js +62 -0
  142. package/dist/stores/feedback.format.js.map +1 -0
  143. package/dist/stores/feedback.parse.d.ts +2 -0
  144. package/dist/stores/feedback.parse.js +121 -0
  145. package/dist/stores/feedback.parse.js.map +1 -0
  146. package/dist/stores/feedback.verdict.d.ts +2 -4
  147. package/dist/stores/feedback.verdict.js +7 -175
  148. package/dist/stores/feedback.verdict.js.map +1 -1
  149. package/dist/stores/index.d.ts +1 -1
  150. package/dist/stores/index.js +1 -2
  151. package/dist/stores/index.js.map +1 -1
  152. package/dist/stores/state.d.ts +4 -0
  153. package/dist/stores/state.js +37 -5
  154. package/dist/stores/state.js.map +1 -1
  155. package/dist/stores/trajectory.d.ts +2 -3
  156. package/dist/stores/trajectory.js +6 -7
  157. package/dist/stores/trajectory.js.map +1 -1
  158. package/dist/types.d.ts +11 -1
  159. package/dist/utils/atomic-write.d.ts +6 -0
  160. package/dist/utils/atomic-write.js +62 -0
  161. package/dist/utils/atomic-write.js.map +1 -0
  162. package/package.json +2 -2
@@ -38,32 +38,13 @@ const fs = __importStar(require("node:fs"));
38
38
  const path = __importStar(require("node:path"));
39
39
  const readline = __importStar(require("node:readline"));
40
40
  const output_1 = require("../ui/output");
41
- const claude_exec_1 = require("../engine/claude/claude.exec");
42
41
  const agent_registry_1 = require("../engine/discovery/agent.registry");
43
42
  const flavour_resolve_1 = require("../engine/discovery/flavour.resolve");
44
- const stream_display_1 = require("../engine/claude/stream.display");
45
43
  const state_1 = require("../stores/state");
46
44
  const config_1 = require("../config");
47
- const MAX_CLARIFICATION_ROUNDS = 4;
48
- const QA_JSON_SCHEMA = JSON.stringify({
49
- type: "object",
50
- properties: {
51
- ready: { type: "boolean" },
52
- questions: {
53
- type: "array",
54
- items: {
55
- type: "object",
56
- properties: {
57
- question: { type: "string" },
58
- suggestedAnswer: { type: "string" },
59
- },
60
- required: ["question"],
61
- },
62
- },
63
- summary: { type: "string" },
64
- },
65
- required: ["ready"],
66
- });
45
+ const detect_1 = require("../shapes/detect");
46
+ const design_1 = require("./design");
47
+ const qa_workflow_1 = require("./qa-workflow");
67
48
  const SHAPE_OUTPUT_SCHEMA = JSON.stringify({
68
49
  type: "object",
69
50
  properties: {
@@ -104,22 +85,6 @@ const SHAPE_OUTPUT_SCHEMA = JSON.stringify({
104
85
  },
105
86
  required: ["projectName", "intent", "scope", "solutionShape", "risksAndComplexities", "existingLandscape", "technicalPreferences"],
106
87
  });
107
- const askQuestion = (rl, prompt) => {
108
- return new Promise((resolve) => {
109
- rl.question(prompt, (answer) => {
110
- resolve(answer.trim());
111
- });
112
- });
113
- };
114
- const normalizeQuestion = (q) => typeof q === "string" ? { question: q } : q;
115
- const parseQAResponse = (resultText) => {
116
- try {
117
- return JSON.parse(resultText);
118
- }
119
- catch {
120
- return { ready: true, summary: resultText };
121
- }
122
- };
123
88
  const resolveInput = (input) => {
124
89
  const looksLikeFile = /\.\w+$/.test(input) || input.startsWith("/") || input.startsWith("./") || input.startsWith("../") || input.includes(path.sep);
125
90
  if (looksLikeFile) {
@@ -139,7 +104,7 @@ const resolveInputContext = async (rl, input) => {
139
104
  return resolved.content;
140
105
  }
141
106
  console.log("");
142
- const answer = await askQuestion(rl, "Describe what you want to build:\n> ");
107
+ const answer = await (0, qa_workflow_1.askQuestion)(rl, "Describe what you want to build:\n> ");
143
108
  return answer || null;
144
109
  };
145
110
  /** Format the structured shape output as shape.md markdown. */
@@ -214,52 +179,6 @@ const formatShapeMd = (shape) => {
214
179
  lines.push("");
215
180
  return lines.join("\n");
216
181
  };
217
- const runClarificationLoop = async (rl, systemPrompt, opts, timeoutMs, initialResult) => {
218
- let { sessionId, qa } = initialResult;
219
- for (let round = 0; round < MAX_CLARIFICATION_ROUNDS && !qa.ready; round++) {
220
- if (qa.summary) {
221
- console.log(`\nHere's what I understand so far:\n ${qa.summary}`);
222
- }
223
- if (!qa.questions || qa.questions.length === 0)
224
- break;
225
- const normalized = qa.questions.map(normalizeQuestion);
226
- console.log("\nI have a few questions:\n");
227
- const answers = [];
228
- for (let i = 0; i < normalized.length; i++) {
229
- const q = normalized[i];
230
- if (q.suggestedAnswer) {
231
- console.log(` ${i + 1}. ${q.question}`);
232
- console.log(` (suggested: ${q.suggestedAnswer})`);
233
- const answer = await askQuestion(rl, ` > `);
234
- answers.push(answer || q.suggestedAnswer);
235
- }
236
- else {
237
- const answer = await askQuestion(rl, ` ${i + 1}. ${q.question}\n > `);
238
- answers.push(answer);
239
- }
240
- }
241
- console.log("\nProcessing your answers...");
242
- const answersPrompt = normalized
243
- .map((q, i) => `Q: ${q.question}\nA: ${answers[i]}`)
244
- .join("\n\n");
245
- const display = (0, stream_display_1.createDisplayCallbacks)({ projectRoot: process.cwd() });
246
- const result = await (0, claude_exec_1.invokeClaude)({
247
- systemPrompt,
248
- userPrompt: `User answers to follow-up questions:\n\n${answersPrompt}`,
249
- model: opts.model,
250
- allowedTools: ["Read", "Glob", "Grep"],
251
- cwd: process.cwd(),
252
- timeoutMs,
253
- sessionId,
254
- jsonSchema: QA_JSON_SCHEMA,
255
- onStdout: display.onStdout,
256
- });
257
- display.flush();
258
- sessionId = result.sessionId;
259
- qa = parseQAResponse(result.result);
260
- }
261
- return { sessionId, qa };
262
- };
263
182
  const runShape = async (buildName, opts) => {
264
183
  const buildDir = (0, config_1.resolveBuildDir)(buildName, { ensure: true });
265
184
  (0, output_1.printInfo)(`Build directory: ${buildDir}`);
@@ -274,7 +193,6 @@ const runShape = async (buildName, opts) => {
274
193
  return;
275
194
  }
276
195
  // Intake turn — shaper analyzes codebase + user input
277
- console.log("\nAnalyzing project and input...");
278
196
  const userPrompt = [
279
197
  `The user wants to create a new build called "${buildName}".`,
280
198
  "",
@@ -285,40 +203,13 @@ const runShape = async (buildName, opts) => {
285
203
  "Then respond with your questions, pre-filling suggestedAnswer for any questions you can answer from the code or the user's input.",
286
204
  "Remember: present ALL questions to the user even when pre-filled — the user has final say.",
287
205
  ].join("\n");
288
- let display = (0, stream_display_1.createDisplayCallbacks)({ projectRoot: process.cwd() });
289
- const intakeResult = await (0, claude_exec_1.invokeClaude)({
290
- systemPrompt,
291
- userPrompt,
292
- model: opts.model,
293
- allowedTools: ["Read", "Glob", "Grep"],
294
- cwd: process.cwd(),
295
- timeoutMs,
296
- jsonSchema: QA_JSON_SCHEMA,
297
- onStdout: display.onStdout,
298
- });
299
- display.flush();
300
- // Clarification loop
301
- const { sessionId, qa } = await runClarificationLoop(rl, systemPrompt, opts, timeoutMs, {
302
- sessionId: intakeResult.sessionId,
303
- qa: parseQAResponse(intakeResult.result),
304
- });
206
+ // Intake + clarification loop
207
+ const { sessionId, qa } = await (0, qa_workflow_1.runQAIntake)(rl, systemPrompt, userPrompt, { model: opts.model, questionLabel: "I have a few questions" }, timeoutMs, "Analyzing project and input...");
305
208
  // Shape output turn
306
209
  if (qa.summary) {
307
210
  console.log(`\nFinal understanding:\n ${qa.summary}`);
308
211
  }
309
- console.log("\nProducing shape document...");
310
- display = (0, stream_display_1.createDisplayCallbacks)({ projectRoot: process.cwd() });
311
- const shapeResult = await (0, claude_exec_1.invokeClaude)({
312
- systemPrompt,
313
- userPrompt: "Produce the final shape output now. Respond with ONLY the structured JSON shape document.",
314
- model: opts.model,
315
- cwd: process.cwd(),
316
- timeoutMs,
317
- sessionId,
318
- jsonSchema: SHAPE_OUTPUT_SCHEMA,
319
- onStdout: display.onStdout,
320
- });
321
- display.flush();
212
+ const shapeResult = await (0, qa_workflow_1.runOutputTurn)(systemPrompt, "Produce the final shape output now. Respond with ONLY the structured JSON shape document.", opts.model, timeoutMs, sessionId, "Producing shape document...", SHAPE_OUTPUT_SCHEMA);
322
213
  // Parse and write shape.md
323
214
  let shapeOutput;
324
215
  try {
@@ -335,11 +226,35 @@ const runShape = async (buildName, opts) => {
335
226
  fs.writeFileSync(path.join(buildDir, "shape.md"), shapeMd);
336
227
  // Update pipeline state
337
228
  (0, state_1.advancePipeline)(buildDir, buildName, "shape");
338
- console.log("");
339
- (0, output_1.printInfo)("Created:");
340
- console.log(` ${path.join(buildDir, "shape.md")}`);
341
- console.log("");
342
- (0, output_1.printInfo)(`Next: ridgeline spec ${buildName}`);
229
+ // --- Shape detection ---
230
+ const shapeMdContent = fs.readFileSync(path.join(buildDir, "shape.md"), "utf-8");
231
+ const shapeDefinitions = (0, detect_1.loadShapeDefinitions)();
232
+ const matchedShapes = (0, detect_1.detectShapes)(shapeMdContent, shapeDefinitions);
233
+ if (matchedShapes.length > 0) {
234
+ const matchedNames = matchedShapes.map((s) => s.name);
235
+ (0, state_1.recordMatchedShapes)(buildDir, buildName, matchedNames);
236
+ console.log("");
237
+ (0, output_1.printInfo)("Created:");
238
+ console.log(` ${path.join(buildDir, "shape.md")}`);
239
+ console.log("");
240
+ (0, output_1.printInfo)(`Visual concerns detected: ${matchedNames.join(", ")}`);
241
+ (0, output_1.printInfo)("Auto-chaining to design...");
242
+ console.log("");
243
+ // Auto-chain to design command within the same build context
244
+ await (0, design_1.runDesign)(buildName, {
245
+ model: opts.model,
246
+ timeout: opts.timeout,
247
+ flavour: opts.flavour,
248
+ matchedShapes: matchedNames,
249
+ });
250
+ }
251
+ else {
252
+ console.log("");
253
+ (0, output_1.printInfo)("Created:");
254
+ console.log(` ${path.join(buildDir, "shape.md")}`);
255
+ console.log("");
256
+ (0, output_1.printInfo)(`Next: ridgeline spec ${buildName}`);
257
+ }
343
258
  }
344
259
  finally {
345
260
  rl.close();
@@ -1 +1 @@
1
- {"version":3,"file":"shape.js","sourceRoot":"","sources":["../../src/commands/shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shape.js","sourceRoot":"","sources":["../../src/commands/shape.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,7 @@ const runSpec = async (buildName, opts) => {
56
56
  maxBudgetUsd: opts.maxBudgetUsd ?? null,
57
57
  buildDir,
58
58
  flavour: opts.flavour ?? null,
59
+ matchedShapes: (0, state_1.getMatchedShapes)(buildDir),
59
60
  };
60
61
  const result = await (0, specify_exec_1.invokeSpecifier)(shapeMd, config);
61
62
  // Update pipeline state
@@ -1 +1 @@
1
- {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6B;AAC7B,gDAAiC;AACjC,yCAAoD;AACpD,kEAAqF;AACrF,2CAAiD;AAS1C,MAAM,OAAO,GAAG,KAAK,EAAE,SAAiB,EAAE,IAAiB,EAAiB,EAAE;IACnF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAA;IAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;IAE7D,yBAAyB;IACzB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,IAAA,mBAAU,EAAC,yBAAyB,SAAS,EAAE,CAAC,CAAA;QAChD,IAAA,mBAAU,EAAC,wBAAwB,SAAS,SAAS,CAAC,CAAA;QACtD,OAAM;IACR,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAEnD,MAAM,MAAM,GAAuB;QACjC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,cAAc,EAAE,IAAI,CAAC,OAAO;QAC5B,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI;QACvC,QAAQ;QACR,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;KAC9B,CAAA;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAe,EAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAErD,wBAAwB;IACxB,IAAA,uBAAe,EAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAE5C,uBAAuB;IACvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,CAAC;SAC3D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAEvD,IAAA,kBAAS,EAAC,UAAU,CAAC,CAAA;IACrB,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACvC,IAAA,kBAAS,EAAC,gEAAgE,CAAC,CAAA;IAC7E,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,IAAA,kBAAS,EAAC,kBAAkB,MAAM,CAAC,iBAAiB,CAAC,MAAM,4BAA4B,CAAC,CAAA;IACxF,IAAA,kBAAS,EAAC,gBAAgB,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC3D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,IAAA,kBAAS,EAAC,wBAAwB,SAAS,EAAE,CAAC,CAAA;AAChD,CAAC,CAAA;AA9CY,QAAA,OAAO,WA8CnB"}
1
+ {"version":3,"file":"spec.js","sourceRoot":"","sources":["../../src/commands/spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6B;AAC7B,gDAAiC;AACjC,yCAAoD;AACpD,kEAAqF;AACrF,2CAAmE;AAS5D,MAAM,OAAO,GAAG,KAAK,EAAE,SAAiB,EAAE,IAAiB,EAAiB,EAAE;IACnF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAA;IAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;IAE7D,yBAAyB;IACzB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,IAAA,mBAAU,EAAC,yBAAyB,SAAS,EAAE,CAAC,CAAA;QAChD,IAAA,mBAAU,EAAC,wBAAwB,SAAS,SAAS,CAAC,CAAA;QACtD,OAAM;IACR,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAEnD,MAAM,MAAM,GAAuB;QACjC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,cAAc,EAAE,IAAI,CAAC,OAAO;QAC5B,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI;QACvC,QAAQ;QACR,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;QAC7B,aAAa,EAAE,IAAA,wBAAgB,EAAC,QAAQ,CAAC;KAC1C,CAAA;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAe,EAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAErD,wBAAwB;IACxB,IAAA,uBAAe,EAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAE5C,uBAAuB;IACvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,CAAC;SAC3D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAEvD,IAAA,kBAAS,EAAC,UAAU,CAAC,CAAA;IACrB,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACvC,IAAA,kBAAS,EAAC,gEAAgE,CAAC,CAAA;IAC7E,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,IAAA,kBAAS,EAAC,kBAAkB,MAAM,CAAC,iBAAiB,CAAC,MAAM,4BAA4B,CAAC,CAAA;IACxF,IAAA,kBAAS,EAAC,gBAAgB,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC3D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,IAAA,kBAAS,EAAC,wBAAwB,SAAS,EAAE,CAAC,CAAA;AAChD,CAAC,CAAA;AA/CY,QAAA,OAAO,WA+CnB"}
@@ -79,7 +79,6 @@ const createDisplayCallbacks = (opts) => {
79
79
  ? `[${event.tool}] ${summary}`
80
80
  : `[${event.tool}]`;
81
81
  spinner.printAbove(line);
82
- spinner.setDetail(event.tool);
83
82
  lastEventWasTool = true;
84
83
  }
85
84
  });
@@ -1 +1 @@
1
- {"version":3,"file":"stream.display.js","sourceRoot":"","sources":["../../../src/engine/claude/stream.display.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.display.js","sourceRoot":"","sources":["../../../src/engine/claude/stream.display.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,4 @@
1
- import { ClaudeResult } from "../../types";
2
- export type StreamEvent = {
3
- type: "text";
4
- text: string;
5
- } | {
6
- type: "tool_use";
7
- tool: string;
8
- summary?: string;
9
- } | {
10
- type: "result";
11
- result: ClaudeResult;
12
- } | {
13
- type: "other";
14
- };
15
- export declare const parseClaudeResult: (parsed: Record<string, unknown>) => ClaudeResult;
1
+ import { type StreamEvent } from "./stream.types";
16
2
  export declare const parseStreamLine: (line: string) => StreamEvent;
17
3
  /**
18
4
  * Line-buffered chunk handler. Splits raw stdout chunks on newlines,
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createStreamHandler = exports.parseStreamLine = exports.parseClaudeResult = void 0;
3
+ exports.createStreamHandler = exports.parseStreamLine = void 0;
4
+ const stream_types_1 = require("./stream.types");
4
5
  /**
5
6
  * Parse a single NDJSON line from `claude --output-format stream-json`.
6
7
  *
@@ -23,25 +24,6 @@ const summarizeToolInput = (input) => {
23
24
  return firstLine;
24
25
  return firstLine.slice(0, MAX_SUMMARY_LEN - 1) + "…";
25
26
  };
26
- const parseClaudeResult = (parsed) => {
27
- const result = parsed.result;
28
- return {
29
- success: !parsed.is_error,
30
- result: typeof result === "string"
31
- ? result
32
- : (result != null ? JSON.stringify(result) : ""),
33
- durationMs: parsed.duration_ms ?? 0,
34
- costUsd: parsed.total_cost_usd ?? 0,
35
- usage: {
36
- inputTokens: parsed.usage?.input_tokens ?? 0,
37
- outputTokens: parsed.usage?.output_tokens ?? 0,
38
- cacheReadInputTokens: parsed.usage?.cache_read_input_tokens ?? 0,
39
- cacheCreationInputTokens: parsed.usage?.cache_creation_input_tokens ?? 0,
40
- },
41
- sessionId: parsed.session_id ?? "",
42
- };
43
- };
44
- exports.parseClaudeResult = parseClaudeResult;
45
27
  const parseStreamLine = (line) => {
46
28
  const trimmed = line.trim();
47
29
  if (trimmed.length === 0)
@@ -93,7 +75,7 @@ const parseStreamLine = (line) => {
93
75
  return { type: "other" };
94
76
  }
95
77
  if (parsed.type === "result") {
96
- return { type: "result", result: (0, exports.parseClaudeResult)(parsed) };
78
+ return { type: "result", result: (0, stream_types_1.parseClaudeResult)(parsed) };
97
79
  }
98
80
  return { type: "other" };
99
81
  };
@@ -1 +1 @@
1
- {"version":3,"file":"stream.parse.js","sourceRoot":"","sources":["../../../src/engine/claude/stream.parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.parse.js","sourceRoot":"","sources":["../../../src/engine/claude/stream.parse.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractResult = void 0;
4
- const stream_parse_1 = require("./stream.parse");
4
+ const stream_types_1 = require("./stream.types");
5
5
  const collectContentFallbacks = (parsed, acc) => {
6
6
  // Check for StructuredOutput tool_use in assistant messages
7
7
  if (parsed.type === "assistant" && parsed.message) {
@@ -39,7 +39,7 @@ const extractResult = (ndjsonStdout) => {
39
39
  try {
40
40
  const parsed = JSON.parse(line);
41
41
  if (parsed.type === "result") {
42
- resultEvent = (0, stream_parse_1.parseClaudeResult)(parsed);
42
+ resultEvent = (0, stream_types_1.parseClaudeResult)(parsed);
43
43
  continue;
44
44
  }
45
45
  collectContentFallbacks(parsed, fallbacks);
@@ -0,0 +1,15 @@
1
+ import { ClaudeResult } from "../../types";
2
+ export type StreamEvent = {
3
+ type: "text";
4
+ text: string;
5
+ } | {
6
+ type: "tool_use";
7
+ tool: string;
8
+ summary?: string;
9
+ } | {
10
+ type: "result";
11
+ result: ClaudeResult;
12
+ } | {
13
+ type: "other";
14
+ };
15
+ export declare const parseClaudeResult: (parsed: Record<string, unknown>) => ClaudeResult;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseClaudeResult = void 0;
4
+ const parseClaudeResult = (parsed) => {
5
+ const result = parsed.result;
6
+ return {
7
+ success: !parsed.is_error,
8
+ result: typeof result === "string"
9
+ ? result
10
+ : (result != null ? JSON.stringify(result) : ""),
11
+ durationMs: parsed.duration_ms ?? 0,
12
+ costUsd: parsed.total_cost_usd ?? 0,
13
+ usage: {
14
+ inputTokens: parsed.usage?.input_tokens ?? 0,
15
+ outputTokens: parsed.usage?.output_tokens ?? 0,
16
+ cacheReadInputTokens: parsed.usage?.cache_read_input_tokens ?? 0,
17
+ cacheCreationInputTokens: parsed.usage?.cache_creation_input_tokens ?? 0,
18
+ },
19
+ sessionId: parsed.session_id ?? "",
20
+ };
21
+ };
22
+ exports.parseClaudeResult = parseClaudeResult;
23
+ //# sourceMappingURL=stream.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.types.js","sourceRoot":"","sources":["../../../src/engine/claude/stream.types.ts"],"names":[],"mappings":";;;AAQO,MAAM,iBAAiB,GAAG,CAAC,MAA+B,EAAgB,EAAE;IACjF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IAC5B,OAAO;QACL,OAAO,EAAE,CAAC,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ;YAChC,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,UAAU,EAAG,MAAM,CAAC,WAAsB,IAAI,CAAC;QAC/C,OAAO,EAAG,MAAM,CAAC,cAAyB,IAAI,CAAC;QAC/C,KAAK,EAAE;YACL,WAAW,EAAG,MAAiD,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC;YACxF,YAAY,EAAG,MAAiD,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC;YAC1F,oBAAoB,EAAG,MAAiD,CAAC,KAAK,EAAE,uBAAuB,IAAI,CAAC;YAC5G,wBAAwB,EAAG,MAAiD,CAAC,KAAK,EAAE,2BAA2B,IAAI,CAAC;SACrH;QACD,SAAS,EAAG,MAAM,CAAC,UAAqB,IAAI,EAAE;KAC/C,CAAA;AACH,CAAC,CAAA;AAjBY,QAAA,iBAAiB,qBAiB7B"}
@@ -8,8 +8,12 @@ type AgentRegistry = {
8
8
  getCorePrompt: (filename: string) => string;
9
9
  /** Get ensemble specialists for a subfolder (e.g., "planners"). */
10
10
  getSpecialists: (subfolder: string) => SpecialistDef[];
11
+ /** Get a single specialist by subfolder and filename. Returns null if not found. */
12
+ getSpecialist: (subfolder: string, filename: string) => SpecialistDef | null;
11
13
  /** Get shared context for an ensemble subfolder. Returns null if no context.md. */
12
14
  getContext: (subfolder: string) => string | null;
15
+ /** Get gap checklist for an ensemble subfolder. Falls back to base if flavour has none. */
16
+ getGaps: (subfolder: string) => string | null;
13
17
  /** Get sub-agents from specialists/ as DiscoveredAgent[]. */
14
18
  getSubAgents: () => DiscoveredAgent[];
15
19
  /** Get the agents flag object for Claude invocation. */
@@ -73,6 +73,24 @@ const resolveSubfolder = (subfolder, flavourPath, defaultAgentsDir) => {
73
73
  // ---------------------------------------------------------------------------
74
74
  // Specialist discovery (extracted from ensemble.exec.ts)
75
75
  // ---------------------------------------------------------------------------
76
+ /** Parse a specialist .md file into a SpecialistDef, or null on failure. */
77
+ const parseSpecialistFile = (filepath) => {
78
+ try {
79
+ const content = fs.readFileSync(filepath, "utf-8");
80
+ const fm = (0, agent_scan_1.parseFrontmatter)(content);
81
+ if (!fm)
82
+ return null;
83
+ const perspectiveMatch = content.match(/^perspective:\s*(.+)$/m);
84
+ const perspective = perspectiveMatch ? perspectiveMatch[1].trim() : fm.name;
85
+ const body = content.replace(/^---\n[\s\S]*?\n---\n*/, "").trim();
86
+ if (!body)
87
+ return null;
88
+ return { perspective, overlay: body };
89
+ }
90
+ catch {
91
+ return null;
92
+ }
93
+ };
76
94
  const discoverSpecialistsInDir = (dir, excludeFiles) => {
77
95
  const exclude = new Set(excludeFiles ?? []);
78
96
  const specialists = [];
@@ -81,22 +99,9 @@ const discoverSpecialistsInDir = (dir, excludeFiles) => {
81
99
  continue;
82
100
  if (exclude.has(entry))
83
101
  continue;
84
- const filepath = path.join(dir, entry);
85
- try {
86
- const content = fs.readFileSync(filepath, "utf-8");
87
- const fm = (0, agent_scan_1.parseFrontmatter)(content);
88
- if (!fm)
89
- continue;
90
- const perspectiveMatch = content.match(/^perspective:\s*(.+)$/m);
91
- const perspective = perspectiveMatch ? perspectiveMatch[1].trim() : fm.name;
92
- const body = content.replace(/^---\n[\s\S]*?\n---\n*/, "").trim();
93
- if (!body)
94
- continue;
95
- specialists.push({ perspective, overlay: body });
96
- }
97
- catch {
98
- // Skip unreadable files
99
- }
102
+ const result = parseSpecialistFile(path.join(dir, entry));
103
+ if (result)
104
+ specialists.push(result);
100
105
  }
101
106
  return specialists;
102
107
  };
@@ -126,7 +131,16 @@ const buildAgentRegistry = (flavourPath) => {
126
131
  const dir = resolveSubfolder(subfolder, flavourPath, defaultAgentsDir);
127
132
  if (!dir)
128
133
  return [];
129
- return discoverSpecialistsInDir(dir, ["context.md"]);
134
+ return discoverSpecialistsInDir(dir, ["context.md", "gaps.md", "visual-coherence.md"]);
135
+ };
136
+ const getSpecialist = (subfolder, filename) => {
137
+ const dir = resolveSubfolder(subfolder, flavourPath, defaultAgentsDir);
138
+ if (!dir)
139
+ return null;
140
+ const filepath = path.join(dir, filename);
141
+ if (!fs.existsSync(filepath))
142
+ return null;
143
+ return parseSpecialistFile(filepath);
130
144
  };
131
145
  const getContext = (subfolder) => {
132
146
  const dir = resolveSubfolder(subfolder, flavourPath, defaultAgentsDir);
@@ -143,10 +157,24 @@ const buildAgentRegistry = (flavourPath) => {
143
157
  return [];
144
158
  return (0, agent_scan_1.discoverAgentsInDir)(dir);
145
159
  };
160
+ // Independent fallback: check flavour first, then base — unlike getContext which
161
+ // is bound to whichever subfolder resolveSubfolder picks (whole-subfolder replacement).
162
+ // This ensures every flavour gets at least the base gap checklist.
163
+ const getGaps = (subfolder) => {
164
+ if (flavourPath) {
165
+ const flavourGaps = path.join(flavourPath, subfolder, "gaps.md");
166
+ if (fs.existsSync(flavourGaps))
167
+ return fs.readFileSync(flavourGaps, "utf-8");
168
+ }
169
+ const baseGaps = path.join(defaultAgentsDir, subfolder, "gaps.md");
170
+ if (fs.existsSync(baseGaps))
171
+ return fs.readFileSync(baseGaps, "utf-8");
172
+ return null;
173
+ };
146
174
  const getAgentsFlag = () => {
147
175
  return (0, agent_scan_1.buildAgentsFlag)(getSubAgents());
148
176
  };
149
- return { getCorePrompt, getSpecialists, getContext, getSubAgents, getAgentsFlag };
177
+ return { getCorePrompt, getSpecialists, getSpecialist, getContext, getGaps, getSubAgents, getAgentsFlag };
150
178
  };
151
179
  exports.buildAgentRegistry = buildAgentRegistry;
152
180
  //# sourceMappingURL=agent.registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.registry.js","sourceRoot":"","sources":["../../../src/engine/discovery/agent.registry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6B;AAC7B,gDAAiC;AACjC,6CAAsG;AAwBtG,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,0EAA0E;AAC1E,MAAM,uBAAuB,GAAG,GAAkB,EAAE;IAClD,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC;KACxD,CAAA;IACD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;YAAE,OAAO,GAAG,CAAA;IACtE,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CACvB,SAAiB,EACjB,WAA0B,EAC1B,gBAAwB,EACT,EAAE;IACjB,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QACpD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACvE,OAAO,UAAU,CAAA;QACnB,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;IACzD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACvE,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,8EAA8E;AAC9E,yDAAyD;AACzD,8EAA8E;AAE9E,MAAM,wBAAwB,GAAG,CAC/B,GAAW,EACX,YAAuB,EACN,EAAE;IACnB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAA;IAC3C,MAAM,WAAW,GAAoB,EAAE,CAAA;IAEvC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAQ;QACpC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAQ;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAClD,MAAM,EAAE,GAAG,IAAA,6BAAgB,EAAC,OAAO,CAAC,CAAA;YACpC,IAAI,CAAC,EAAE;gBAAE,SAAQ;YAEjB,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;YAChE,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAA;YAE3E,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YACjE,IAAI,CAAC,IAAI;gBAAE,SAAQ;YAEnB,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;GAGG;AACI,MAAM,kBAAkB,GAAG,CAAC,WAA0B,EAAiB,EAAE;IAC9E,MAAM,gBAAgB,GAAG,uBAAuB,EAAE,CAAA;IAClD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACxD,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAU,EAAE;QACjD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAA;QACvE,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAE/D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAA;QACtD,CAAC;QACD,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAmB,EAAE;QAC5D,MAAM,GAAG,GAAG,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAA;QACtE,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAA;QACnB,OAAO,wBAAwB,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IACtD,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAiB,EAAE;QACtD,MAAM,GAAG,GAAG,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAA;QACtE,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QAChD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAA;QAC5C,OAAO,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAC9C,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,GAAsB,EAAE;QAC3C,MAAM,GAAG,GAAG,gBAAgB,CAAC,aAAa,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAA;QAC1E,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAA;QACnB,OAAO,IAAA,gCAAmB,EAAC,GAAG,CAAC,CAAA;IACjC,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,OAAO,IAAA,4BAAe,EAAC,YAAY,EAAE,CAAC,CAAA;IACxC,CAAC,CAAA;IAED,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,CAAA;AACnF,CAAC,CAAA;AA3CY,QAAA,kBAAkB,sBA2C9B"}
1
+ {"version":3,"file":"agent.registry.js","sourceRoot":"","sources":["../../../src/engine/discovery/agent.registry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6B;AAC7B,gDAAiC;AACjC,6CAAsG;AA8BtG,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,0EAA0E;AAC1E,MAAM,uBAAuB,GAAG,GAAkB,EAAE;IAClD,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC;KACxD,CAAA;IACD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;YAAE,OAAO,GAAG,CAAA;IACtE,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CACvB,SAAiB,EACjB,WAA0B,EAC1B,gBAAwB,EACT,EAAE;IACjB,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QACpD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACvE,OAAO,UAAU,CAAA;QACnB,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;IACzD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACvE,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,8EAA8E;AAC9E,yDAAyD;AACzD,8EAA8E;AAE9E,4EAA4E;AAC5E,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAwB,EAAE;IACrE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAClD,MAAM,EAAE,GAAG,IAAA,6BAAgB,EAAC,OAAO,CAAC,CAAA;QACpC,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAA;QAEpB,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAChE,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAA;QAE3E,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QACjE,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAEtB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,wBAAwB,GAAG,CAC/B,GAAW,EACX,YAAuB,EACN,EAAE;IACnB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAA;IAC3C,MAAM,WAAW,GAAoB,EAAE,CAAA;IAEvC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAQ;QACpC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAQ;QAEhC,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QACzD,IAAI,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;GAGG;AACI,MAAM,kBAAkB,GAAG,CAAC,WAA0B,EAAiB,EAAE;IAC9E,MAAM,gBAAgB,GAAG,uBAAuB,EAAE,CAAA;IAClD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACxD,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAU,EAAE;QACjD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAA;QACvE,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAE/D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAA;QACtD,CAAC;QACD,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,SAAiB,EAAmB,EAAE;QAC5D,MAAM,GAAG,GAAG,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAA;QACtE,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAA;QACnB,OAAO,wBAAwB,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAA;IACxF,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,QAAgB,EAAwB,EAAE;QAClF,MAAM,GAAG,GAAG,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAA;QACtE,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QACzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAA;QAEzC,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAiB,EAAE;QACtD,MAAM,GAAG,GAAG,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAA;QACtE,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;QAChD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAA;QAC5C,OAAO,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAC9C,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,GAAsB,EAAE;QAC3C,MAAM,GAAG,GAAG,gBAAgB,CAAC,aAAa,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAA;QAC1E,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,CAAA;QACnB,OAAO,IAAA,gCAAmB,EAAC,GAAG,CAAC,CAAA;IACjC,CAAC,CAAA;IAED,iFAAiF;IACjF,wFAAwF;IACxF,mEAAmE;IACnE,MAAM,OAAO,GAAG,CAAC,SAAiB,EAAiB,EAAE;QACnD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;YAChE,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;gBAAE,OAAO,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAC9E,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;QAClE,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACtE,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,OAAO,IAAA,4BAAe,EAAC,YAAY,EAAE,CAAC,CAAA;IACxC,CAAC,CAAA;IAED,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,CAAA;AAC3G,CAAC,CAAA;AAlEY,QAAA,kBAAkB,sBAkE9B"}
@@ -0,0 +1,9 @@
1
+ type FlavourConfig = {
2
+ recommendedSkills: string[];
3
+ };
4
+ /**
5
+ * Load optional flavour.json config from a flavour directory.
6
+ * Returns empty config if no file exists or it's malformed.
7
+ */
8
+ export declare const loadFlavourConfig: (flavourDir: string | null) => FlavourConfig;
9
+ export {};