agentopology 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +1 -1
  2. package/dist/analyzer/index.d.ts +1 -0
  3. package/dist/analyzer/index.d.ts.map +1 -1
  4. package/dist/analyzer/index.js +35 -0
  5. package/dist/analyzer/index.js.map +1 -1
  6. package/dist/bindings/claude-code.d.ts.map +1 -1
  7. package/dist/bindings/claude-code.js +283 -2
  8. package/dist/bindings/claude-code.js.map +1 -1
  9. package/dist/bindings/openclaw.d.ts.map +1 -1
  10. package/dist/bindings/openclaw.js +367 -5
  11. package/dist/bindings/openclaw.js.map +1 -1
  12. package/dist/cli/index.js +2 -2
  13. package/dist/cli/index.js.map +1 -1
  14. package/dist/docs/__tests__/docs.test.js +2 -1
  15. package/dist/docs/__tests__/docs.test.js.map +1 -1
  16. package/dist/docs/content.d.ts.map +1 -1
  17. package/dist/docs/content.js +730 -4
  18. package/dist/docs/content.js.map +1 -1
  19. package/dist/exporters/markdown.d.ts.map +1 -1
  20. package/dist/exporters/markdown.js +165 -0
  21. package/dist/exporters/markdown.js.map +1 -1
  22. package/dist/exporters/mermaid.d.ts.map +1 -1
  23. package/dist/exporters/mermaid.js +30 -0
  24. package/dist/exporters/mermaid.js.map +1 -1
  25. package/dist/import/__tests__/import.test.js +554 -0
  26. package/dist/import/__tests__/import.test.js.map +1 -1
  27. package/dist/import/claude-code.d.ts.map +1 -1
  28. package/dist/import/claude-code.js +2 -0
  29. package/dist/import/claude-code.js.map +1 -1
  30. package/dist/import/index.d.ts +1 -0
  31. package/dist/import/index.d.ts.map +1 -1
  32. package/dist/import/index.js +7 -1
  33. package/dist/import/index.js.map +1 -1
  34. package/dist/import/openclaw.d.ts +70 -0
  35. package/dist/import/openclaw.d.ts.map +1 -0
  36. package/dist/import/openclaw.js +1060 -0
  37. package/dist/import/openclaw.js.map +1 -0
  38. package/dist/import/serializer.d.ts.map +1 -1
  39. package/dist/import/serializer.js +171 -4
  40. package/dist/import/serializer.js.map +1 -1
  41. package/dist/parser/__tests__/parser.test.js +463 -0
  42. package/dist/parser/__tests__/parser.test.js.map +1 -1
  43. package/dist/parser/ast.d.ts +122 -0
  44. package/dist/parser/ast.d.ts.map +1 -1
  45. package/dist/parser/index.d.ts +14 -2
  46. package/dist/parser/index.d.ts.map +1 -1
  47. package/dist/parser/index.js +226 -5
  48. package/dist/parser/index.js.map +1 -1
  49. package/dist/parser/validator.d.ts +1 -1
  50. package/dist/parser/validator.d.ts.map +1 -1
  51. package/dist/parser/validator.js +214 -1
  52. package/dist/parser/validator.js.map +1 -1
  53. package/dist/visualizer/index.d.ts.map +1 -1
  54. package/dist/visualizer/index.js +104 -16
  55. package/dist/visualizer/index.js.map +1 -1
  56. package/examples/memory-system.at +162 -0
  57. package/examples/script-agent-pipeline.at +65 -0
  58. package/package.json +1 -1
  59. package/spec/grammar.md +345 -10
  60. package/spec/reserved-keywords.md +25 -1
  61. package/spec/validation.md +171 -2
  62. package/examples/simple-pipeline-topology.html +0 -5700
package/README.md CHANGED
@@ -352,7 +352,7 @@ mcp-servers {
352
352
  </tr>
353
353
  </table>
354
354
 
355
- Plus: schemas, artifacts, metering, circuit breakers, scale configs, depth levels, environment overrides, prompt variants, composition via imports, and [more](spec/grammar.md).
355
+ Plus: **memory stores** (semantic, graph, episodic — 11 backends), **retrieval strategies** (scoring weights, cache-hit routing), schemas, artifacts, metering, circuit breakers, scale configs, depth levels, environment overrides, prompt variants, composition via imports, and [more](spec/grammar.md).
356
356
 
357
357
  ---
358
358
 
@@ -15,6 +15,7 @@ export interface TopologySummary {
15
15
  groups: number;
16
16
  humans: number;
17
17
  orchestrators: number;
18
+ stores: number;
18
19
  };
19
20
  edgeCount: number;
20
21
  declaredPatterns: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analyzer/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,WAAW,EAOZ,MAAM,kBAAkB,CAAC;AAM1B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,GAAG,QAAQ,CAAC;IAClC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AA2SD,wBAAgB,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,CAsCxD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analyzer/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,WAAW,EAOZ,MAAM,kBAAkB,CAAC;AAM1B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,GAAG,QAAQ,CAAC;IAClC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAsVD,wBAAgB,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,cAAc,CAuCxD"}
@@ -199,6 +199,16 @@ function detectPatterns(ast) {
199
199
  description: `Group: ${group.id} (${(group.members ?? []).join(", ")})`,
200
200
  });
201
201
  }
202
+ // Memory infrastructure: detect if stores are present
203
+ if (ast.stores && ast.stores.length > 0) {
204
+ const storeIds = ast.stores.map((s) => s.id);
205
+ patterns.push({
206
+ name: "memory-infrastructure",
207
+ confidence: "definite",
208
+ involvedNodes: storeIds,
209
+ description: `Memory stores: ${storeIds.join(", ")}`,
210
+ });
211
+ }
202
212
  return patterns;
203
213
  }
204
214
  // ---------------------------------------------------------------------------
@@ -242,6 +252,30 @@ function generateSuggestions(ast) {
242
252
  });
243
253
  }
244
254
  }
255
+ // Memory-related suggestions
256
+ const hasStores = ast.stores && ast.stores.length > 0;
257
+ const hasRetrievals = ast.retrievals && ast.retrievals.length > 0;
258
+ if (hasStores) {
259
+ // Check if agents have memory stores assigned
260
+ const agentsWithMemory = ast.nodes.filter((n) => isAgent(n) && (n.memory != null && n.memory.length > 0));
261
+ const agentsWithoutMemory = ast.nodes.filter((n) => isAgent(n) && (!n.memory || n.memory.length === 0));
262
+ if (agentsWithoutMemory.length > 0 && agentsWithMemory.length > 0) {
263
+ for (const agent of agentsWithoutMemory) {
264
+ suggestions.push({
265
+ level: "info",
266
+ message: "Agent has no memory stores assigned — consider assigning memory stores to this agent",
267
+ node: agent.id,
268
+ });
269
+ }
270
+ }
271
+ // Check if stores exist but no retrieval strategy
272
+ if (!hasRetrievals) {
273
+ suggestions.push({
274
+ level: "improvement",
275
+ message: "Memory stores exist but no retrieval strategy is defined — consider adding a retrieval strategy",
276
+ });
277
+ }
278
+ }
245
279
  // Declared vs detected pattern mismatch
246
280
  const detected = detectPatterns(ast);
247
281
  const detectedNames = new Set(detected.map((p) => p.name));
@@ -268,6 +302,7 @@ export function analyze(ast) {
268
302
  groups: 0,
269
303
  humans: 0,
270
304
  orchestrators: 0,
305
+ stores: ast.stores ? ast.stores.length : 0,
271
306
  };
272
307
  for (const node of ast.nodes) {
273
308
  switch (node.type) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analyzer/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAyDH,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,OAAO,CAAC,CAAU;IACzB,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;AAC5B,CAAC;AAED,SAAS,MAAM,CAAC,CAAU;IACxB,OAAO,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;AAC3B,CAAC;AAED,wEAAwE;AACxE,SAAS,cAAc,CAAC,KAAgB;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuC,CAAC;IAE/D,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE;QAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC,GAAG,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC,EAAE,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uCAAuC;AACvC,SAAS,cAAc,CAAC,KAAgB;IACtC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAC9E,uCAAuC;AACvC,8EAA8E;AAE9E,SAAS,aAAa,CAAC,KAAgB,EAAE,OAAoB;IAC3D,iEAAiE;IACjE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;IAExC,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACpB,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,SAAS;QAC/D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;QACjC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9B,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QAE5C,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAE,GAAG,CAAC,CAAC;YAC3C,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE/B,qCAAqC;YACrC,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,aAAa,KAAK,SAAS,IAAI,YAAY,GAAG,CAAC,GAAG,aAAa,EAAE,CAAC;gBACpE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;YAC3C,CAAC;YAED,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,iBAAiB;IACjB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAClD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;SAClC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,SAAS,cAAc,CAAC,GAAgB;IACtC,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACxB,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElC,uEAAuE;IACvE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;QAChC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,+CAA+C;IAC/C,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;QAChC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACrC,MAAM,KAAK,GAAa,CAAC,EAAE,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,IAAI,OAAO,GAAG,EAAE,CAAC;YAEjB,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACnC,sCAAsC;gBACtC,MAAM,gBAAgB,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;oBACjE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;gBACrC,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM;gBAC9D,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClC,4DAA4D;gBAC5D,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,CACzC,CAAC;gBACF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;oBAAE,MAAM;gBACtC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,MAAM;gBAE7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,OAAO;YACtB,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,qDAAqD;IACrD,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;QAChC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,KAAK;iBAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;iBAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAEpB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,UAAU;oBACtB,aAAa,EAAE,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC;oBAC/B,WAAW,EAAE,GAAG,EAAE,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;iBAChD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACvD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACnC,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,SAAS,IAAI,CAAC,aAAa,GAAG;SACtE,CAAC,CAAC;IACL,CAAC;IAED,yCAAyC;IACzC,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAC/E,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,WAAW,EAAE,mBAAmB,KAAK,CAAC,EAAE,EAAE;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,8BAA8B;IAC9B,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAC/E,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACnD,WAAW,EAAE,UAAU,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SACxE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,SAAS,mBAAmB,CAAC,GAAgB;IAC3C,MAAM,WAAW,GAAiB,EAAE,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,SAAS;QAE7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,WAAW,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,aAAa;gBACpB,OAAO,EAAE,qBAAqB;gBAC9B,IAAI,EAAE,IAAI,CAAC,EAAE;aACd,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,WAAW,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,kCAAkC;gBAC3C,IAAI,EAAE,IAAI,CAAC,EAAE;aACd,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,WAAW,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,sBAAsB;gBAC/B,IAAI,EAAE,IAAI,CAAC,EAAE;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,SAAS;QAE5B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,WAAW,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,aAAa;gBACpB,OAAO,EAAE,4BAA4B;gBACrC,IAAI,EAAE,IAAI,CAAC,EAAE;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEhD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,+CAA+C;QAC/C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1B,WAAW,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,qBAAqB,CAAC,sCAAsC;aACtE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E,MAAM,UAAU,OAAO,CAAC,GAAgB;IACtC,MAAM,MAAM,GAAG;QACb,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,CAAC;QACT,aAAa,EAAE,CAAC;KACjB,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,OAAO;gBAAE,MAAM,CAAC,MAAM,EAAE,CAAC;gBAAC,MAAM;YACrC,KAAK,QAAQ;gBAAE,MAAM,CAAC,OAAO,EAAE,CAAC;gBAAC,MAAM;YACvC,KAAK,MAAM;gBAAE,MAAM,CAAC,KAAK,EAAE,CAAC;gBAAC,MAAM;YACnC,KAAK,OAAO;gBAAE,MAAM,CAAC,MAAM,EAAE,CAAC;gBAAC,MAAM;YACrC,KAAK,OAAO;gBAAE,MAAM,CAAC,MAAM,EAAE,CAAC;gBAAC,MAAM;YACrC,KAAK,cAAc;gBAAE,MAAM,CAAC,aAAa,EAAE,CAAC;gBAAC,MAAM;QACrD,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAoB;QAC/B,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI;QACvB,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO;QAC7B,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,WAAW;QACrC,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM;QAC3B,gBAAgB,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ;KACxC,CAAC;IAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAErC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAEjD,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE7C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analyzer/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/bindings/claude-code.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsBH,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AAohE/D,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,EAAE,aAuF/B,CAAC"}
1
+ {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/bindings/claude-code.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAuBH,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AA+yE/D,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,EAAE,aA0F/B,CAAC"}
@@ -352,6 +352,103 @@ function generateAgents(ast) {
352
352
  }
353
353
  sections.push("");
354
354
  }
355
+ // Memory stores — rich instructions with store details and access methods
356
+ if (agent.memory && agent.memory.length > 0) {
357
+ const storeMap = new Map((ast.stores ?? []).map(s => [s.id, s]));
358
+ sections.push("## Memory Stores");
359
+ sections.push("");
360
+ sections.push("You have access to the following memory stores. Use them to persist and retrieve knowledge across conversations.");
361
+ sections.push("");
362
+ for (const storeId of agent.memory) {
363
+ const store = storeMap.get(storeId);
364
+ if (!store) {
365
+ sections.push(`### ${storeId}`);
366
+ sections.push(`- Store not found in topology`);
367
+ sections.push("");
368
+ continue;
369
+ }
370
+ sections.push(`### ${storeId}`);
371
+ if (store.description)
372
+ sections.push(store.description);
373
+ sections.push("");
374
+ sections.push(`- **Type**: ${store.type}`);
375
+ sections.push(`- **Backend**: ${store.backend}`);
376
+ if (store.path)
377
+ sections.push(`- **Path**: \`${store.path}\``);
378
+ if (store.scope)
379
+ sections.push(`- **Scope**: ${store.scope}`);
380
+ // Access method — MCP or skill-based
381
+ const hasMcp = STORE_MCP_COMMANDS[store.backend] != null;
382
+ if (hasMcp) {
383
+ sections.push(`- **Access**: MCP server \`${storeId}\` (auto-configured in .mcp.json)`);
384
+ }
385
+ else if (store.path) {
386
+ sections.push(`- **Access**: Direct file access at \`${store.path}\``);
387
+ }
388
+ // Embedding config
389
+ if (store.embedding) {
390
+ sections.push(`- **Embedding**: ${store.embedding.model} (${store.embedding.provider}, ${store.embedding.dimensions}d)`);
391
+ }
392
+ // Search strategy
393
+ if (store.search) {
394
+ const parts = [`strategy: ${store.search.strategy}`];
395
+ if (store.search.topK)
396
+ parts.push(`top-k: ${store.search.topK}`);
397
+ if (store.search.rerank)
398
+ parts.push(`rerank: yes`);
399
+ sections.push(`- **Search**: ${parts.join(", ")}`);
400
+ }
401
+ // Ingestion sources
402
+ if (store.ingestion?.sources) {
403
+ sections.push(`- **Ingestion sources**: ${store.ingestion.sources.join(", ")}`);
404
+ }
405
+ // Lifecycle
406
+ if (store.lifecycle?.retention) {
407
+ sections.push(`- **Retention**: ${store.lifecycle.retention}`);
408
+ }
409
+ sections.push("");
410
+ }
411
+ }
412
+ // Retrieval strategy — rich details
413
+ if (agent.retrieval) {
414
+ const retrieval = (ast.retrievals ?? []).find(r => r.id === agent.retrieval);
415
+ if (retrieval) {
416
+ sections.push("## Retrieval Strategy");
417
+ sections.push("");
418
+ sections.push(`**${retrieval.id}** — When you need to recall information, use this strategy:`);
419
+ sections.push("");
420
+ if (retrieval.sources)
421
+ sections.push(`- **Sources**: ${retrieval.sources.join(", ")}`);
422
+ if (retrieval.budget)
423
+ sections.push(`- **Token budget**: ${retrieval.budget} tokens max for retrieved context`);
424
+ if (retrieval.paths)
425
+ sections.push(`- **Search paths**: ${retrieval.paths.join(", ")}`);
426
+ if (retrieval.rerank)
427
+ sections.push(`- **Reranking**: enabled — results are cross-ranked for relevance`);
428
+ if (retrieval.diversity)
429
+ sections.push(`- **Diversity**: enabled — results span different sources`);
430
+ if (retrieval.cacheHitThreshold != null) {
431
+ sections.push(`- **Cache hit**: threshold ${retrieval.cacheHitThreshold} → ${retrieval.cacheHitAction ?? "short-circuit"}`);
432
+ }
433
+ if (retrieval.scoring) {
434
+ const s = retrieval.scoring;
435
+ const weights = [];
436
+ if (s.recencyWeight != null)
437
+ weights.push(`recency: ${s.recencyWeight}`);
438
+ if (s.semanticWeight != null)
439
+ weights.push(`semantic: ${s.semanticWeight}`);
440
+ if (s.importanceWeight != null)
441
+ weights.push(`importance: ${s.importanceWeight}`);
442
+ if (weights.length)
443
+ sections.push(`- **Scoring weights**: ${weights.join(", ")}`);
444
+ }
445
+ sections.push("");
446
+ }
447
+ else {
448
+ sections.push(`Retrieval strategy: ${agent.retrieval}`);
449
+ sections.push("");
450
+ }
451
+ }
355
452
  // Outputs section
356
453
  if (agent.outputs) {
357
454
  sections.push("## Outputs");
@@ -1085,6 +1182,30 @@ function generateTopologySkill(ast) {
1085
1182
  sections.push("");
1086
1183
  }
1087
1184
  }
1185
+ // Memory Stores
1186
+ const stores = ast.stores ?? [];
1187
+ if (stores.length > 0) {
1188
+ sections.push("## Memory Stores");
1189
+ sections.push("");
1190
+ for (const store of stores) {
1191
+ sections.push(`### ${store.id}`);
1192
+ sections.push(`- Type: ${store.type}`);
1193
+ sections.push(`- Backend: ${store.backend}`);
1194
+ if (store.path)
1195
+ sections.push(`- Path: ${store.path}`);
1196
+ if (store.connection)
1197
+ sections.push(`- Connection: ${store.connection}`);
1198
+ if (store.scope)
1199
+ sections.push(`- Scope: ${store.scope}`);
1200
+ if (store.search?.strategy)
1201
+ sections.push(`- Search: ${store.search.strategy}`);
1202
+ if (store.embedding?.model)
1203
+ sections.push(`- Embedding: ${store.embedding.model}`);
1204
+ if (store.lifecycle?.retention)
1205
+ sections.push(`- Retention: ${store.lifecycle.retention}`);
1206
+ sections.push("");
1207
+ }
1208
+ }
1088
1209
  files.push({
1089
1210
  path: `.claude/skills/${name}/SKILL.md`,
1090
1211
  content: sections.join("\n") + "\n",
@@ -1188,6 +1309,109 @@ function generateMemory(ast) {
1188
1309
  if (memory.workspace) {
1189
1310
  files.push(gitkeep(`.claude/skills/${name}/runs`));
1190
1311
  }
1312
+ // Store directory markers
1313
+ const stores = ast.stores ?? [];
1314
+ for (const store of stores) {
1315
+ files.push(gitkeep(`.claude/stores/${store.id}`));
1316
+ }
1317
+ return files;
1318
+ }
1319
+ /**
1320
+ * Generate memory command files for each store.
1321
+ *
1322
+ * These are Claude Code slash-commands (`.claude/commands/`) that give agents
1323
+ * a concrete way to interact with memory stores — search, ingest, and inspect.
1324
+ * This works alongside (or instead of) MCP servers.
1325
+ */
1326
+ function generateMemoryCommands(ast) {
1327
+ const files = [];
1328
+ const stores = ast.stores ?? [];
1329
+ for (const store of stores) {
1330
+ // Search command — for stores with search config or semantic/episodic type
1331
+ if (store.search || store.type === "semantic" || store.type === "episodic") {
1332
+ const hasMcp = STORE_MCP_COMMANDS[store.backend] != null;
1333
+ const searchLines = [
1334
+ "---",
1335
+ `description: "Search the ${store.id} memory store"`,
1336
+ "---",
1337
+ "",
1338
+ `# /memory-search-${store.id}`,
1339
+ "",
1340
+ `Search the **${store.id}** store for relevant information.`,
1341
+ "",
1342
+ `## Store Details`,
1343
+ `- **Type**: ${store.type}`,
1344
+ `- **Backend**: ${store.backend}`,
1345
+ ];
1346
+ if (store.path)
1347
+ searchLines.push(`- **Path**: \`${store.path}\``);
1348
+ if (store.search) {
1349
+ searchLines.push(`- **Strategy**: ${store.search.strategy}`);
1350
+ if (store.search.topK)
1351
+ searchLines.push(`- **Top-K**: ${store.search.topK}`);
1352
+ if (store.search.rerank)
1353
+ searchLines.push(`- **Reranking**: enabled`);
1354
+ }
1355
+ if (store.embedding) {
1356
+ searchLines.push(`- **Embedding**: ${store.embedding.model} (${store.embedding.provider}, ${store.embedding.dimensions}d)`);
1357
+ }
1358
+ searchLines.push("");
1359
+ searchLines.push("## Instructions");
1360
+ searchLines.push("");
1361
+ if (hasMcp) {
1362
+ searchLines.push(`Use the \`${store.id}\` MCP server to search this store.`);
1363
+ searchLines.push(`The MCP server is configured in \`.mcp.json\` and provides tools for querying the ${store.backend} database.`);
1364
+ }
1365
+ else {
1366
+ searchLines.push(`This store uses ${store.backend} at \`${store.path ?? ".claude/stores/" + store.id}\`.`);
1367
+ searchLines.push(`Read the database directly or use an appropriate library to query it.`);
1368
+ }
1369
+ searchLines.push("");
1370
+ searchLines.push("Search for: $ARGUMENTS");
1371
+ searchLines.push("");
1372
+ files.push({
1373
+ path: `.claude/commands/memory-search-${store.id}.md`,
1374
+ content: searchLines.join("\n"),
1375
+ category: "machine",
1376
+ });
1377
+ }
1378
+ // Ingest command — for stores with ingestion config
1379
+ if (store.ingestion) {
1380
+ const ingestLines = [
1381
+ "---",
1382
+ `description: "Ingest documents into the ${store.id} memory store"`,
1383
+ "---",
1384
+ "",
1385
+ `# /memory-ingest-${store.id}`,
1386
+ "",
1387
+ `Ingest documents into the **${store.id}** store.`,
1388
+ "",
1389
+ "## Ingestion Config",
1390
+ `- **Sources**: ${store.ingestion.sources?.join(", ") ?? "not specified"}`,
1391
+ `- **Chunking**: ${store.ingestion.chunking ?? "recursive"}`,
1392
+ ];
1393
+ if (store.ingestion.chunkSize)
1394
+ ingestLines.push(`- **Chunk size**: ${store.ingestion.chunkSize}`);
1395
+ if (store.ingestion.overlap)
1396
+ ingestLines.push(`- **Overlap**: ${store.ingestion.overlap}`);
1397
+ if (store.embedding) {
1398
+ ingestLines.push(`- **Embedding**: ${store.embedding.model} (${store.embedding.provider}, ${store.embedding.dimensions}d)`);
1399
+ }
1400
+ ingestLines.push("");
1401
+ ingestLines.push("## Instructions");
1402
+ ingestLines.push("");
1403
+ ingestLines.push(`1. Read files from the configured sources: ${store.ingestion.sources?.join(", ") ?? "docs/"}`);
1404
+ ingestLines.push(`2. Split content into chunks (${store.ingestion.chunking ?? "recursive"}, size: ${store.ingestion.chunkSize ?? 512})`);
1405
+ ingestLines.push(`3. Generate embeddings using ${store.embedding?.model ?? "the configured model"}`);
1406
+ ingestLines.push(`4. Insert into ${store.backend} at \`${store.path ?? ".claude/stores/" + store.id}\``);
1407
+ ingestLines.push("");
1408
+ files.push({
1409
+ path: `.claude/commands/memory-ingest-${store.id}.md`,
1410
+ content: ingestLines.join("\n"),
1411
+ category: "machine",
1412
+ });
1413
+ }
1414
+ }
1191
1415
  return files;
1192
1416
  }
1193
1417
  /** Generate gate script stubs. */
@@ -1483,9 +1707,34 @@ function generateSettings(ast) {
1483
1707
  category: "shared-config",
1484
1708
  };
1485
1709
  }
1486
- /** Generate .mcp.json from mcp-servers block. Always includes env field. */
1710
+ /**
1711
+ * Backend → MCP server mapping.
1712
+ *
1713
+ * Only packages verified to exist on npm or PyPI are included.
1714
+ * npm packages use `npx -y`, Python packages use `uvx`.
1715
+ * `pathFlag` controls how the DB path is passed (positional, --db, --db-path, etc.).
1716
+ *
1717
+ * Verified 2026-03-21:
1718
+ * npm: kuzu-mcp-server@0.1.0, mongodb-mcp-server@1.8.1
1719
+ * pip: mcp-server-sqlite@2025.4.25, mcp-server-qdrant@0.8.1,
1720
+ * mcp-server-neo4j@0.1.8, chroma-mcp@0.2.6
1721
+ */
1722
+ const STORE_MCP_COMMANDS = {
1723
+ // npm packages
1724
+ "kuzu": { command: "npx", args: ["-y", "kuzu-mcp-server"] }, // positional
1725
+ "mongodb": { command: "npx", args: ["-y", "mongodb-mcp-server"], pathFlag: "--uri" },
1726
+ // Python MCP servers (via uvx)
1727
+ "sqlite": { command: "uvx", args: ["mcp-server-sqlite"], pathFlag: "--db-path" },
1728
+ "sqlite-vec": { command: "uvx", args: ["mcp-server-sqlite"], pathFlag: "--db-path" },
1729
+ "qdrant": { command: "uvx", args: ["mcp-server-qdrant"], pathFlag: "--qdrant-url" },
1730
+ "neo4j": { command: "uvx", args: ["mcp-server-neo4j"], pathFlag: "--db-uri" },
1731
+ "chroma": { command: "uvx", args: ["chroma-mcp"], pathFlag: "--host" },
1732
+ // No verified MCP servers: lancedb, pinecone, pgvector, falkordb
1733
+ // These backends use skill-based access (slash commands) instead
1734
+ };
1487
1735
  function generateMcpJson(ast) {
1488
- if (Object.keys(ast.mcpServers).length === 0)
1736
+ const stores = ast.stores ?? [];
1737
+ if (Object.keys(ast.mcpServers).length === 0 && stores.length === 0)
1489
1738
  return null;
1490
1739
  const mcpConfig = { mcpServers: {} };
1491
1740
  const servers = mcpConfig.mcpServers;
@@ -1512,6 +1761,36 @@ function generateMcpJson(ast) {
1512
1761
  }
1513
1762
  servers[name] = entry;
1514
1763
  }
1764
+ // Merge memory store MCP server entries
1765
+ for (const store of stores) {
1766
+ const mcpCmd = STORE_MCP_COMMANDS[store.backend];
1767
+ if (!mcpCmd) {
1768
+ // Backend not in the known MCP map — skip (skill-based access only)
1769
+ continue;
1770
+ }
1771
+ const args = [...mcpCmd.args];
1772
+ const storePath = store.path ?? `.claude/stores/${store.id}`;
1773
+ // Each server has its own CLI convention for the DB path
1774
+ if (mcpCmd.pathFlag) {
1775
+ args.push(mcpCmd.pathFlag, storePath);
1776
+ }
1777
+ else {
1778
+ // No pathFlag = positional argument (e.g., kuzu-mcp-server ./path)
1779
+ args.push(storePath);
1780
+ }
1781
+ const env = {};
1782
+ if (store.connection) {
1783
+ env.CONNECTION_STRING = store.connection;
1784
+ }
1785
+ servers[store.id] = {
1786
+ command: mcpCmd.command,
1787
+ args,
1788
+ env,
1789
+ };
1790
+ }
1791
+ // If no servers were added (all stores had unsupported backends), return null
1792
+ if (Object.keys(servers).length === 0)
1793
+ return null;
1515
1794
  return {
1516
1795
  path: ".mcp.json",
1517
1796
  content: JSON.stringify(mcpConfig, null, 2) + "\n",
@@ -2026,6 +2305,8 @@ export const claudeCodeBinding = {
2026
2305
  files.push(...generateSchemas(ast));
2027
2306
  // Memory directories
2028
2307
  files.push(...generateMemory(ast));
2308
+ // Memory store command files (search/ingest per store)
2309
+ files.push(...generateMemoryCommands(ast));
2029
2310
  // Gate scripts
2030
2311
  files.push(...generateGateScripts(ast));
2031
2312
  files.push(...generateGateWrapperScripts(ast));