agentopology 0.1.0 → 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.
- package/README.md +70 -33
- package/dist/analyzer/index.d.ts +1 -0
- package/dist/analyzer/index.d.ts.map +1 -1
- package/dist/analyzer/index.js +35 -0
- package/dist/analyzer/index.js.map +1 -1
- package/dist/bindings/claude-code.d.ts.map +1 -1
- package/dist/bindings/claude-code.js +283 -2
- package/dist/bindings/claude-code.js.map +1 -1
- package/dist/bindings/openclaw.d.ts.map +1 -1
- package/dist/bindings/openclaw.js +390 -12
- package/dist/bindings/openclaw.js.map +1 -1
- package/dist/cli/index.js +2 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/docs/__tests__/docs.test.js +2 -1
- package/dist/docs/__tests__/docs.test.js.map +1 -1
- package/dist/docs/content.d.ts.map +1 -1
- package/dist/docs/content.js +730 -4
- package/dist/docs/content.js.map +1 -1
- package/dist/exporters/markdown.d.ts.map +1 -1
- package/dist/exporters/markdown.js +165 -0
- package/dist/exporters/markdown.js.map +1 -1
- package/dist/exporters/mermaid.d.ts.map +1 -1
- package/dist/exporters/mermaid.js +30 -0
- package/dist/exporters/mermaid.js.map +1 -1
- package/dist/import/__tests__/import.test.js +554 -0
- package/dist/import/__tests__/import.test.js.map +1 -1
- package/dist/import/claude-code.d.ts.map +1 -1
- package/dist/import/claude-code.js +2 -0
- package/dist/import/claude-code.js.map +1 -1
- package/dist/import/index.d.ts +1 -0
- package/dist/import/index.d.ts.map +1 -1
- package/dist/import/index.js +7 -1
- package/dist/import/index.js.map +1 -1
- package/dist/import/openclaw.d.ts +70 -0
- package/dist/import/openclaw.d.ts.map +1 -0
- package/dist/import/openclaw.js +1060 -0
- package/dist/import/openclaw.js.map +1 -0
- package/dist/import/serializer.d.ts.map +1 -1
- package/dist/import/serializer.js +171 -4
- package/dist/import/serializer.js.map +1 -1
- package/dist/parser/__tests__/parser.test.js +463 -0
- package/dist/parser/__tests__/parser.test.js.map +1 -1
- package/dist/parser/ast.d.ts +122 -0
- package/dist/parser/ast.d.ts.map +1 -1
- package/dist/parser/index.d.ts +14 -2
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +226 -5
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/validator.d.ts +1 -1
- package/dist/parser/validator.d.ts.map +1 -1
- package/dist/parser/validator.js +214 -1
- package/dist/parser/validator.js.map +1 -1
- package/dist/visualizer/index.d.ts.map +1 -1
- package/dist/visualizer/index.js +263 -27
- package/dist/visualizer/index.js.map +1 -1
- package/examples/memory-system.at +162 -0
- package/examples/script-agent-pipeline.at +65 -0
- package/package.json +1 -1
- package/spec/grammar.md +345 -10
- package/spec/reserved-keywords.md +25 -1
- package/spec/validation.md +171 -2
package/README.md
CHANGED
|
@@ -6,14 +6,19 @@
|
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
8
|
<p align="center">
|
|
9
|
+
<a href="https://agentopology.com"><img src="https://img.shields.io/badge/website-agentopology.com-purple" alt="website" /></a>
|
|
9
10
|
<a href="https://www.npmjs.com/package/agentopology"><img src="https://img.shields.io/npm/v/agentopology" alt="npm" /></a>
|
|
10
|
-
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-blue" alt="license" /></a>
|
|
11
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-blue" alt="license" /></a>
|
|
11
12
|
</p>
|
|
12
13
|
|
|
13
14
|
<p align="center">
|
|
14
15
|
<strong>Claude Code</strong> · <strong>OpenClaw</strong> · <strong>Codex</strong> · <strong>Cursor</strong> · <strong>Gemini CLI</strong> · <strong>Copilot</strong> · <strong>Kiro</strong>
|
|
15
16
|
</p>
|
|
16
17
|
|
|
18
|
+
<p align="center">
|
|
19
|
+
<em>Ships with a Claude Code skill — just type <code>/agentopology</code> and describe your team.</em>
|
|
20
|
+
</p>
|
|
21
|
+
|
|
17
22
|
<br/>
|
|
18
23
|
|
|
19
24
|
## The Problem
|
|
@@ -113,6 +118,69 @@ agentopology targets
|
|
|
113
118
|
|
|
114
119
|
---
|
|
115
120
|
|
|
121
|
+
## Claude Code Skill — The Fastest Way to Start
|
|
122
|
+
|
|
123
|
+
**You don't need to learn `.at` syntax.** AgenTopology ships with an interactive skill that turns Claude Code into a topology designer. Describe the team you want in plain English — the skill generates everything.
|
|
124
|
+
|
|
125
|
+
### Setup (one time)
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Install globally
|
|
129
|
+
npm install -g agentopology
|
|
130
|
+
|
|
131
|
+
# Link the skill into your project
|
|
132
|
+
ln -s $(npm root -g)/agentopology/skill .claude/skills/agentopology
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Usage
|
|
136
|
+
|
|
137
|
+
In Claude Code, type `/agentopology` — or just ask naturally:
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
> /agentopology
|
|
141
|
+
|
|
142
|
+
┌─────────────────────────────────────┐
|
|
143
|
+
│ AgenTopology │
|
|
144
|
+
│ Build agent teams in minutes. │
|
|
145
|
+
├─────────────────────────────────────┤
|
|
146
|
+
│ │
|
|
147
|
+
│ build Design a new topology │
|
|
148
|
+
│ templates Pick a proven team │
|
|
149
|
+
│ validate Check an .at file │
|
|
150
|
+
│ scaffold Generate platform files│
|
|
151
|
+
│ visualize Open graph viewer │
|
|
152
|
+
│ │
|
|
153
|
+
└─────────────────────────────────────┘
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Say **"I want a code review team with an analyzer, security scanner, and reviewer"** — the skill:
|
|
157
|
+
|
|
158
|
+
1. Generates the `.at` file with the right syntax
|
|
159
|
+
2. Validates it against 29 rules
|
|
160
|
+
3. Scaffolds it to Claude Code, OpenClaw, Cursor, or any target
|
|
161
|
+
|
|
162
|
+
**Full agent team in under 2 minutes.** No docs to read. No syntax to memorize. You describe what you want, the skill handles the rest.
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Evolving Your Topology
|
|
167
|
+
|
|
168
|
+
You have a working `.at` file and want to make it better? Just tell the skill what you need:
|
|
169
|
+
|
|
170
|
+
- **"Add a security scanner agent before the reviewer"** — the skill adds the agent, wires it into the flow, and re-validates
|
|
171
|
+
- **"Add a hook that formats code after every write"** — generates the hook block with the right lifecycle event
|
|
172
|
+
- **"Add an MCP server for GitHub"** — adds the server config with environment variables
|
|
173
|
+
- **"Add a quality gate between the builder and reviewer"** — inserts a gate with halt-on-fail
|
|
174
|
+
- **"Switch the target to OpenClaw"** — re-scaffolds the entire topology for a different platform
|
|
175
|
+
|
|
176
|
+
The workflow is always the same: **describe the change → the skill updates the `.at` file → validates → re-scaffolds.** You never touch config files manually.
|
|
177
|
+
|
|
178
|
+
After any change, `agentopology visualize` updates the interactive graph so you can see exactly what changed — every agent, connection, tool, hook, and gate in one view.
|
|
179
|
+
|
|
180
|
+
Full language reference and guides at **[agentopology.com/docs](https://agentopology.com/docs)**.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
116
184
|
## The Language
|
|
117
185
|
|
|
118
186
|
`.at` files are human-readable and version-controllable. Here's a real topology:
|
|
@@ -284,7 +352,7 @@ mcp-servers {
|
|
|
284
352
|
</tr>
|
|
285
353
|
</table>
|
|
286
354
|
|
|
287
|
-
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).
|
|
288
356
|
|
|
289
357
|
---
|
|
290
358
|
|
|
@@ -305,37 +373,6 @@ In Claude Code, this compiles to a **file-based protocol** — a shared transcri
|
|
|
305
373
|
|
|
306
374
|
---
|
|
307
375
|
|
|
308
|
-
## Interactive Skill — Build Teams in Minutes
|
|
309
|
-
|
|
310
|
-
AgenTopology ships with an **interactive skill** that turns Claude Code into a topology designer. You don't need to learn the `.at` syntax — just describe what you want and the skill builds it for you.
|
|
311
|
-
|
|
312
|
-
```bash
|
|
313
|
-
# Link the skill into your project
|
|
314
|
-
ln -s $(npm root -g)/agentopology/skill .claude/skills/agentopology
|
|
315
|
-
|
|
316
|
-
# Then in Claude Code:
|
|
317
|
-
/agentopology
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
```
|
|
321
|
-
┌─────────────────────────────────────┐
|
|
322
|
-
│ AgenTopology │
|
|
323
|
-
│ Build agent teams in minutes. │
|
|
324
|
-
├─────────────────────────────────────┤
|
|
325
|
-
│ │
|
|
326
|
-
│ build Design a new topology │
|
|
327
|
-
│ templates Pick a proven team │
|
|
328
|
-
│ validate Check an .at file │
|
|
329
|
-
│ scaffold Generate platform files│
|
|
330
|
-
│ visualize Open graph viewer │
|
|
331
|
-
│ │
|
|
332
|
-
└─────────────────────────────────────┘
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
Say "I want a marketing team with a researcher, copywriter, and editor" — the skill generates the `.at` file, validates it (29 rules), and scaffolds it to Claude Code, OpenClaw, Cursor, or any target. Full topology in under 2 minutes.
|
|
336
|
-
|
|
337
|
-
The skill abstracts the entire AgenTopology system. You focus on **what your team should do** — the skill handles the syntax, validation, and platform-specific config generation.
|
|
338
|
-
|
|
339
376
|
---
|
|
340
377
|
|
|
341
378
|
## Programmatic API
|
package/dist/analyzer/index.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/analyzer/index.js
CHANGED
|
@@ -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;
|
|
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
|
-
/**
|
|
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
|
-
|
|
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));
|