cortex-engine 0.4.2 → 0.5.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 +16 -6
- package/dist/bin/anomalies-cmd.d.ts +17 -0
- package/dist/bin/anomalies-cmd.d.ts.map +1 -0
- package/dist/bin/anomalies-cmd.js +417 -0
- package/dist/bin/anomalies-cmd.js.map +1 -0
- package/dist/bin/cli.d.ts +5 -0
- package/dist/bin/cli.d.ts.map +1 -1
- package/dist/bin/cli.js +84 -0
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/health-cmd.d.ts +15 -0
- package/dist/bin/health-cmd.d.ts.map +1 -0
- package/dist/bin/health-cmd.js +273 -0
- package/dist/bin/health-cmd.js.map +1 -0
- package/dist/bin/init.d.ts.map +1 -1
- package/dist/bin/init.js +164 -8
- package/dist/bin/init.js.map +1 -1
- package/dist/bin/maintain-cmd.d.ts +17 -0
- package/dist/bin/maintain-cmd.d.ts.map +1 -0
- package/dist/bin/maintain-cmd.js +352 -0
- package/dist/bin/maintain-cmd.js.map +1 -0
- package/dist/bin/report-cmd.d.ts +17 -0
- package/dist/bin/report-cmd.d.ts.map +1 -0
- package/dist/bin/report-cmd.js +309 -0
- package/dist/bin/report-cmd.js.map +1 -0
- package/dist/bin/store-factory.d.ts +21 -0
- package/dist/bin/store-factory.d.ts.map +1 -0
- package/dist/bin/store-factory.js +64 -0
- package/dist/bin/store-factory.js.map +1 -0
- package/dist/bin/vitals-cmd.d.ts +16 -0
- package/dist/bin/vitals-cmd.d.ts.map +1 -0
- package/dist/bin/vitals-cmd.js +425 -0
- package/dist/bin/vitals-cmd.js.map +1 -0
- package/dist/core/types.d.ts +6 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/engines/cognition.d.ts.map +1 -1
- package/dist/engines/cognition.js +39 -3
- package/dist/engines/cognition.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools.d.ts +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +22 -2
- package/dist/mcp/tools.js.map +1 -1
- package/dist/tools/evolution-list.d.ts +6 -0
- package/dist/tools/evolution-list.d.ts.map +1 -0
- package/dist/tools/evolution-list.js +52 -0
- package/dist/tools/evolution-list.js.map +1 -0
- package/dist/tools/evolve.d.ts +6 -0
- package/dist/tools/evolve.d.ts.map +1 -0
- package/dist/tools/evolve.js +63 -0
- package/dist/tools/evolve.js.map +1 -0
- package/dist/tools/journal-read.d.ts +6 -0
- package/dist/tools/journal-read.d.ts.map +1 -0
- package/dist/tools/journal-read.js +59 -0
- package/dist/tools/journal-read.js.map +1 -0
- package/dist/tools/journal-write.d.ts +6 -0
- package/dist/tools/journal-write.d.ts.map +1 -0
- package/dist/tools/journal-write.js +71 -0
- package/dist/tools/journal-write.js.map +1 -0
- package/dist/tools/thread-create.d.ts +6 -0
- package/dist/tools/thread-create.d.ts.map +1 -0
- package/dist/tools/thread-create.js +57 -0
- package/dist/tools/thread-create.js.map +1 -0
- package/dist/tools/thread-resolve.d.ts +6 -0
- package/dist/tools/thread-resolve.d.ts.map +1 -0
- package/dist/tools/thread-resolve.js +42 -0
- package/dist/tools/thread-resolve.js.map +1 -0
- package/dist/tools/thread-update.d.ts +6 -0
- package/dist/tools/thread-update.d.ts.map +1 -0
- package/dist/tools/thread-update.js +91 -0
- package/dist/tools/thread-update.js.map +1 -0
- package/dist/tools/threads-list.d.ts +6 -0
- package/dist/tools/threads-list.d.ts.map +1 -0
- package/dist/tools/threads-list.js +70 -0
- package/dist/tools/threads-list.js.map +1 -0
- package/package.json +119 -115
package/dist/bin/init.js
CHANGED
|
@@ -199,13 +199,30 @@ const MCP_JSON = `{
|
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
201
|
`;
|
|
202
|
-
|
|
202
|
+
// ─── TOOLS.md — Agent-Agnostic Tool Reference ────────────────────────────
|
|
203
|
+
// This is the canonical reference. Lives at .fozikio/TOOLS.md.
|
|
204
|
+
// Any agent on any platform reads this file.
|
|
205
|
+
const TOOLS_REFERENCE = `# Cortex Tools
|
|
203
206
|
|
|
204
|
-
This workspace uses cortex-engine for persistent memory.
|
|
207
|
+
This workspace uses cortex-engine for persistent memory. These tools are available via MCP — any compatible client can use them.
|
|
205
208
|
|
|
206
|
-
##
|
|
209
|
+
## Use the Right Tool
|
|
207
210
|
|
|
208
|
-
|
|
211
|
+
Don't dump everything into \`observe()\`. Match the tool to what you're recording:
|
|
212
|
+
|
|
213
|
+
| What you're recording | Use this | Not this |
|
|
214
|
+
|----------------------|----------|----------|
|
|
215
|
+
| A fact you learned or confirmed | \`observe\` | — |
|
|
216
|
+
| An open question or curiosity | \`wonder\` | observe() |
|
|
217
|
+
| A hypothesis or untested idea | \`speculate\` | observe() |
|
|
218
|
+
| A position that could change with new evidence | \`believe\` | observe() |
|
|
219
|
+
| Something worth deeper processing | \`reflect\` | observe() |
|
|
220
|
+
| Ongoing work or open questions across sessions | \`thread_create\` / \`thread_update\` | observe() |
|
|
221
|
+
| Session reflection at end of day | \`journal_write\` | observe() |
|
|
222
|
+
| Operational breadcrumbs during work | \`ops_append\` | observe() |
|
|
223
|
+
| An identity or behavior change | \`evolve\` | observe() |
|
|
224
|
+
|
|
225
|
+
## Core Tools (25)
|
|
209
226
|
|
|
210
227
|
**Write — record knowledge:**
|
|
211
228
|
| Tool | Purpose |
|
|
@@ -227,6 +244,14 @@ Read before you write. Tool descriptions tell you the rest.
|
|
|
227
244
|
| \`neighbors\` | Explore memories connected to a specific concept |
|
|
228
245
|
| \`wander\` | Random walk for serendipitous discovery |
|
|
229
246
|
|
|
247
|
+
**Threads — ongoing work:**
|
|
248
|
+
| Tool | Purpose |
|
|
249
|
+
|------|---------|
|
|
250
|
+
| \`thread_create\` | Start tracking an ongoing question, project, or exploration |
|
|
251
|
+
| \`thread_update\` | Add progress, change status, link related memories |
|
|
252
|
+
| \`thread_resolve\` | Close a thread with a resolution |
|
|
253
|
+
| \`threads_list\` | See open threads (check at session start) |
|
|
254
|
+
|
|
230
255
|
**Ops — session tracking:**
|
|
231
256
|
| Tool | Purpose |
|
|
232
257
|
|------|---------|
|
|
@@ -234,12 +259,79 @@ Read before you write. Tool descriptions tell you the rest.
|
|
|
234
259
|
| \`ops_query\` | Search the operational log |
|
|
235
260
|
| \`ops_update\` | Update an ops entry status or content |
|
|
236
261
|
|
|
262
|
+
**Identity:**
|
|
263
|
+
| Tool | Purpose |
|
|
264
|
+
|------|---------|
|
|
265
|
+
| \`evolve\` | Propose a change to values, preferences, or patterns |
|
|
266
|
+
| \`evolution_list\` | View pending or applied identity proposals |
|
|
267
|
+
| \`journal_write\` | Write a daily reflective entry |
|
|
268
|
+
| \`journal_read\` | Read past journal entries |
|
|
269
|
+
|
|
237
270
|
**System:**
|
|
238
271
|
| Tool | Purpose |
|
|
239
272
|
|------|---------|
|
|
240
273
|
| \`stats\` | Memory counts and namespace health |
|
|
241
274
|
| \`dream\` | Consolidate observations into long-term memories (run periodically) |
|
|
275
|
+
|
|
276
|
+
## Hard Rules
|
|
277
|
+
|
|
278
|
+
1. **Read before you write** — call \`query()\` before adding to cortex. Check what you already know.
|
|
279
|
+
2. **Use the full tool suite** — if you're only using observe/query, you're missing the point. Threads, journals, beliefs, and reflections exist for a reason.
|
|
280
|
+
3. **Check threads at session start** — call \`threads_list()\` to see what's in progress before starting new work.
|
|
242
281
|
`;
|
|
282
|
+
// ─── CLAUDE.md — Claude Code Platform Pointer ────────────────────────────
|
|
283
|
+
// Thin pointer to TOOLS.md + Claude-specific context (hooks, skills).
|
|
284
|
+
const CLAUDE_MD = `# Cognitive Tools
|
|
285
|
+
|
|
286
|
+
This workspace uses [cortex-engine](https://github.com/Fozikio/cortex-engine) for persistent memory.
|
|
287
|
+
|
|
288
|
+
**Read \`.fozikio/TOOLS.md\` for the full tool reference** — all 25+ cognitive tools with usage guidance.
|
|
289
|
+
|
|
290
|
+
## Quick Reference
|
|
291
|
+
|
|
292
|
+
- Before substantive work → \`query()\` to ground in accumulated knowledge
|
|
293
|
+
- Facts → \`observe()\` | Questions → \`wonder()\` | Positions → \`believe()\`
|
|
294
|
+
- Ongoing work → \`thread_create()\` / \`thread_update()\`
|
|
295
|
+
- Session end → \`journal_write()\`
|
|
296
|
+
- Operational logs → \`ops_append()\`
|
|
297
|
+
|
|
298
|
+
## Installed Hooks
|
|
299
|
+
|
|
300
|
+
Hooks in \`.claude/hooks/\` fire automatically on Claude Code events. Read the comment headers in each \`.sh\` file for details.
|
|
301
|
+
|
|
302
|
+
## Installed Skills
|
|
303
|
+
|
|
304
|
+
Skills in \`.claude/skills/\` are invocable workflows. Use \`/skill-name\` to run them.
|
|
305
|
+
|
|
306
|
+
## Safety Rules
|
|
307
|
+
|
|
308
|
+
Reflex rules in \`reflex-rules/\` enforce cognitive habits. See [@fozikio/reflex](https://github.com/Fozikio/reflex) for format details.
|
|
309
|
+
`;
|
|
310
|
+
// ─── AGENTS.md — Multi-Agent Roster ──────────────────────────────────────
|
|
311
|
+
// NOT a tool reference. Lists who's in the workspace and what they do.
|
|
312
|
+
function buildAgentsRoster(name) {
|
|
313
|
+
return [
|
|
314
|
+
'# Agents',
|
|
315
|
+
'',
|
|
316
|
+
`## ${name}`,
|
|
317
|
+
'',
|
|
318
|
+
'This workspace has a single agent. The agent\'s identity is defined in `.fozikio/mind/profile.md`.',
|
|
319
|
+
'',
|
|
320
|
+
'### Cognitive Tools',
|
|
321
|
+
'',
|
|
322
|
+
'See `.fozikio/TOOLS.md` for the full tool reference.',
|
|
323
|
+
'',
|
|
324
|
+
'### Adding More Agents',
|
|
325
|
+
'',
|
|
326
|
+
'```bash',
|
|
327
|
+
'npx fozikio agent add researcher --description "Research agent"',
|
|
328
|
+
'npx fozikio agent generate-mcp',
|
|
329
|
+
'```',
|
|
330
|
+
'',
|
|
331
|
+
'Each agent gets its own namespace with isolated memory. See [multi-agent docs](https://github.com/Fozikio/cortex-engine/blob/master/docs/multi-agent-design.md) for details.',
|
|
332
|
+
'',
|
|
333
|
+
].join('\n');
|
|
334
|
+
}
|
|
243
335
|
const OBSIDIAN_APP_JSON = `{
|
|
244
336
|
"legacyEditor": false,
|
|
245
337
|
"livePreview": true,
|
|
@@ -251,6 +343,61 @@ const OBSIDIAN_APPEARANCE_JSON = `{
|
|
|
251
343
|
"theme": "obsidian"
|
|
252
344
|
}
|
|
253
345
|
`;
|
|
346
|
+
// ─── Plugin Detection ─────────────────────────────────────────────────────
|
|
347
|
+
/** Plugin metadata for TOOLS.md generation */
|
|
348
|
+
const KNOWN_PLUGINS = {
|
|
349
|
+
'@fozikio/tools-content': {
|
|
350
|
+
description: 'Content pipeline — draft, review, publish workflow',
|
|
351
|
+
tools: '`content_create`, `content_list`, `content_update`',
|
|
352
|
+
},
|
|
353
|
+
'@fozikio/tools-social': {
|
|
354
|
+
description: 'Social cognition — interaction patterns, engagement tracking',
|
|
355
|
+
tools: '`social_read`, `social_update`',
|
|
356
|
+
},
|
|
357
|
+
'@fozikio/tools-graph': {
|
|
358
|
+
description: 'Graph analysis — memory connections, clustering, visualization',
|
|
359
|
+
tools: '`graph_report`, `suggest_links`, `find_duplicates`',
|
|
360
|
+
},
|
|
361
|
+
'@fozikio/tools-maintenance': {
|
|
362
|
+
description: 'Memory maintenance — cleanup, deduplication, health checks',
|
|
363
|
+
tools: '`consolidation_status`, `sleep_pressure`',
|
|
364
|
+
},
|
|
365
|
+
'@fozikio/tools-vitals': {
|
|
366
|
+
description: 'Vitals tracking — agent health metrics and operational signals',
|
|
367
|
+
tools: '`vitals_get`, `vitals_set`',
|
|
368
|
+
},
|
|
369
|
+
'@fozikio/tools-reasoning': {
|
|
370
|
+
description: 'Cognitive reasoning — abstraction, contradiction, surfacing',
|
|
371
|
+
tools: '`abstract`, `contradict`, `surface`, `notice`, `resolve`, `intention`, `predict`',
|
|
372
|
+
},
|
|
373
|
+
};
|
|
374
|
+
/**
|
|
375
|
+
* Scan for installed @fozikio/tools-* plugin packages and return
|
|
376
|
+
* a markdown section listing their tools for TOOLS.md.
|
|
377
|
+
*/
|
|
378
|
+
function detectInstalledPlugins(targetDir) {
|
|
379
|
+
const found = [];
|
|
380
|
+
for (const [pkg, meta] of Object.entries(KNOWN_PLUGINS)) {
|
|
381
|
+
try {
|
|
382
|
+
const pkgJsonPath = join(targetDir, 'node_modules', ...pkg.split('/'), 'package.json');
|
|
383
|
+
if (existsSync(pkgJsonPath)) {
|
|
384
|
+
found.push({ name: pkg, ...meta });
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
catch {
|
|
388
|
+
// skip
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
if (found.length === 0)
|
|
392
|
+
return null;
|
|
393
|
+
let section = '\n## Installed Plugins\n\n';
|
|
394
|
+
for (const plugin of found) {
|
|
395
|
+
section += `**${plugin.name}** — ${plugin.description}\n`;
|
|
396
|
+
section += `Tools: ${plugin.tools}\n\n`;
|
|
397
|
+
}
|
|
398
|
+
section += `*Plugins are auto-detected from node_modules. Install more with \`npm install @fozikio/tools-<name>\`.*\n`;
|
|
399
|
+
return section;
|
|
400
|
+
}
|
|
254
401
|
// ─── Manifest & Asset Installation ────────────────────────────────────────
|
|
255
402
|
/** Resolve the package root (where fozikio.json lives). */
|
|
256
403
|
function getPackageRoot() {
|
|
@@ -370,10 +517,18 @@ export function runInit(args) {
|
|
|
370
517
|
writeFileSync(join(credentialsDir, '.gitignore'), '*\n!.gitignore\n', 'utf-8');
|
|
371
518
|
// .mcp.json
|
|
372
519
|
writeFileSync(join(targetDir, '.mcp.json'), MCP_JSON, 'utf-8');
|
|
373
|
-
//
|
|
374
|
-
|
|
375
|
-
//
|
|
376
|
-
|
|
520
|
+
// .fozikio/TOOLS.md — canonical agent-agnostic tool reference
|
|
521
|
+
let toolsContent = TOOLS_REFERENCE;
|
|
522
|
+
// Detect installed plugins and append their tool sections
|
|
523
|
+
const pluginSections = detectInstalledPlugins(targetDir);
|
|
524
|
+
if (pluginSections) {
|
|
525
|
+
toolsContent += pluginSections;
|
|
526
|
+
}
|
|
527
|
+
writeFileSync(join(fozikioDir, 'TOOLS.md'), toolsContent, 'utf-8');
|
|
528
|
+
// CLAUDE.md — thin pointer for Claude Code users
|
|
529
|
+
writeFileSync(join(targetDir, 'CLAUDE.md'), CLAUDE_MD, 'utf-8');
|
|
530
|
+
// AGENTS.md — multi-agent roster
|
|
531
|
+
writeFileSync(join(targetDir, 'AGENTS.md'), buildAgentsRoster(opts.name), 'utf-8');
|
|
377
532
|
// .obsidian/
|
|
378
533
|
if (opts.obsidian) {
|
|
379
534
|
const obsidianDir = join(targetDir, '.obsidian');
|
|
@@ -409,6 +564,7 @@ export function runInit(args) {
|
|
|
409
564
|
console.error(` ${relativePath}/.fozikio/journal/`);
|
|
410
565
|
console.error(` ${relativePath}/.fozikio/state/templates/`);
|
|
411
566
|
console.error(` ${relativePath}/.fozikio/credentials/.gitignore`);
|
|
567
|
+
console.error(` ${relativePath}/.fozikio/TOOLS.md`);
|
|
412
568
|
console.error(` ${relativePath}/.mcp.json`);
|
|
413
569
|
console.error(` ${relativePath}/CLAUDE.md`);
|
|
414
570
|
console.error(` ${relativePath}/AGENTS.md`);
|
package/dist/bin/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7G,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AA4BzC,8EAA8E;AAE9E,MAAM,UAAU,aAAa,CAAC,IAAc;IAC1C,MAAM,IAAI,GAAgB;QACxB,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,UAAU;QACjB,GAAG,EAAE,QAAQ;QACb,SAAS,EAAE,SAAS;QACpB,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,KAAK;KAChB,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;gBAC5C,OAAO,CAAC,KAAK,CAAC,oCAAoC,GAAG,gCAAgC,CAAC,CAAC;gBACvF,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QACnB,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACnF,OAAO,CAAC,KAAK,CAAC,oCAAoC,GAAG,gDAAgD,CAAC,CAAC;gBACvG,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QACnB,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACpF,OAAO,CAAC,KAAK,CAAC,kCAAkC,GAAG,iDAAiD,CAAC,CAAC;gBACtG,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACjB,CAAC;aAAM,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC;QAC1C,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,CAAC,EAAE,CAAC;IACN,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACzE,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kDAAkD;IAClD,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC;IAC5D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAE9E,SAAS,cAAc,CAAC,IAAiB;IACvC,OAAO;;;UAGC,IAAI,CAAC,IAAI;;;;;;;;;;IAUf,IAAI,CAAC,SAAS;aACL,IAAI,CAAC,KAAK;aACV,IAAI,CAAC,KAAK;;;;;;CAMtB,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO;;;;;;CAMR,CAAC;AACF,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO;;uDAE8C,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;CAyB1D,CAAC;AACF,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO;;;;;;IAML,IAAI;;;;;;;;;;;;;;;;;;;;;CAqBP,CAAC;AACF,CAAC;AAED,MAAM,eAAe,GAAG;;;;;;;;;CASvB,CAAC;AAGF,MAAM,QAAQ,GAAG;;;;;;;;CAQhB,CAAC;AAEF,4EAA4E;AAC5E,+DAA+D;AAC/D,6CAA6C;AAE7C,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4EvB,CAAC;AAEF,4EAA4E;AAC5E,sEAAsE;AAEtE,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBjB,CAAC;AAEF,4EAA4E;AAC5E,uEAAuE;AAEvE,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO;QACL,UAAU;QACV,EAAE;QACF,MAAM,IAAI,EAAE;QACZ,EAAE;QACF,oGAAoG;QACpG,EAAE;QACF,qBAAqB;QACrB,EAAE;QACF,sDAAsD;QACtD,EAAE;QACF,wBAAwB;QACxB,EAAE;QACF,SAAS;QACT,iEAAiE;QACjE,gCAAgC;QAChC,KAAK;QACL,EAAE;QACF,8KAA8K;QAC9K,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,iBAAiB,GAAG;;;;;;CAMzB,CAAC;AAEF,MAAM,wBAAwB,GAAG;;;CAGhC,CAAC;AAEF,6EAA6E;AAE7E,8CAA8C;AAC9C,MAAM,aAAa,GAA2D;IAC5E,wBAAwB,EAAE;QACxB,WAAW,EAAE,oDAAoD;QACjE,KAAK,EAAE,oDAAoD;KAC5D;IACD,uBAAuB,EAAE;QACvB,WAAW,EAAE,8DAA8D;QAC3E,KAAK,EAAE,gCAAgC;KACxC;IACD,sBAAsB,EAAE;QACtB,WAAW,EAAE,gEAAgE;QAC7E,KAAK,EAAE,oDAAoD;KAC5D;IACD,4BAA4B,EAAE;QAC5B,WAAW,EAAE,4DAA4D;QACzE,KAAK,EAAE,0CAA0C;KAClD;IACD,uBAAuB,EAAE;QACvB,WAAW,EAAE,gEAAgE;QAC7E,KAAK,EAAE,4BAA4B;KACpC;IACD,0BAA0B,EAAE;QAC1B,WAAW,EAAE,6DAA6D;QAC1E,KAAK,EAAE,kFAAkF;KAC1F;CACF,CAAC;AAEF;;;GAGG;AACH,SAAS,sBAAsB,CAAC,SAAiB;IAC/C,MAAM,KAAK,GAA2D,EAAE,CAAC;IAEzE,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;YACvF,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,IAAI,OAAO,GAAG,4BAA4B,CAAC;IAC3C,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QAC3B,OAAO,IAAI,KAAK,MAAM,CAAC,IAAI,QAAQ,MAAM,CAAC,WAAW,IAAI,CAAC;QAC1D,OAAO,IAAI,UAAU,MAAM,CAAC,KAAK,MAAM,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,2GAA2G,CAAC;IACvH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6EAA6E;AAE7E,2DAA2D;AAC3D,SAAS,cAAc;IACrB,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,kDAAkD;IAClD,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,YAAY,CAAC,WAAmB;IACvC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,+EAA+E,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAgB,CAAC;IACxE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,oDAAoD,GAAG,sCAAsC,CAAC,CAAC;QAC7G,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,WAAmB,EAAE,SAAiB,EAAE,KAAe;IAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;QACxG,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAExC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,GAAG,IAAI,KAAK,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,sCAAsC,QAAQ,cAAc,CAAC,CAAC;YAC5E,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClB,6DAA6D;QAC7D,IAAI,CAAC;YAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC,CAAC;QACxE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,WAAmB,EAAE,SAAiB,EAAE,MAAgB;IAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACrD,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;QAC1G,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAExC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,uCAAuC,KAAK,eAAe,CAAC,CAAC;YAC3E,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrC,wCAAwC;QACxC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,8EAA8E;AAE9E,MAAM,UAAU,OAAO,CAAC,IAAc;IACpC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI;QACzB,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACf,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,uCAAuC,SAAS,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,0BAA0B;IAC1B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,uCAAuC;IACvC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC/C,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3C,sBAAsB;IACtB,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAE7E,0BAA0B;IAC1B,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,EAAE,OAAO,CAAC,CAAC;IAEhF,qBAAqB;IACrB,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAErF,2BAA2B;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACzC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAEjF,+BAA+B;IAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACnD,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IAEzE,0EAA0E;IAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC/C,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3C,wCAAwC;IACxC,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACjE,SAAS,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAElD,kCAAkC;IAClC,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACvD,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAE/E,YAAY;IACZ,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE/D,8DAA8D;IAC9D,IAAI,YAAY,GAAG,eAAe,CAAC;IACnC,0DAA0D;IAC1D,MAAM,cAAc,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACzD,IAAI,cAAc,EAAE,CAAC;QACnB,YAAY,IAAI,cAAc,CAAC;IACjC,CAAC;IACD,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAEnE,iDAAiD;IACjD,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAEhE,iCAAiC;IACjC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAEnF,aAAa;IACb,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACjD,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;QACzE,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,wBAAwB,EAAE,OAAO,CAAC,CAAC;IACzF,CAAC;IAED,yCAAyC;IACzC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,IAAI,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACvB,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClE,cAAc,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpE,eAAe,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3F,CAAC;QACD,cAAc,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACxG,CAAC;IAED,kBAAkB;IAClB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACjD,OAAO,CAAC,KAAK,CAAC,sCAAsC,SAAS,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,sBAAsB,CAAC,CAAC;IACvD,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,0BAA0B,CAAC,CAAC;IAC3D,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,qBAAqB,CAAC,CAAC;IACtD,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,2BAA2B,CAAC,CAAC;IAC5D,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,+BAA+B,CAAC,CAAC;IAChE,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,oBAAoB,CAAC,CAAC;IACrD,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,4BAA4B,CAAC,CAAC;IAC7D,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,kCAAkC,CAAC,CAAC;IACnE,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,oBAAoB,CAAC,CAAC;IACrD,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,YAAY,CAAC,CAAC;IAC7C,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,YAAY,CAAC,CAAC;IAC7C,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,YAAY,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,qBAAqB,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,4BAA4B,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,kBAAkB,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IACD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,mBAAmB,KAAK,GAAG,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;QACxF,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACpF,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACnE,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* maintain-cmd.ts — fozikio maintain command.
|
|
3
|
+
*
|
|
4
|
+
* Subcommands:
|
|
5
|
+
* fozikio maintain fix Scan and repair data issues
|
|
6
|
+
* fozikio maintain re-embed Re-embed all memories with current provider
|
|
7
|
+
* fozikio maintain re-embed --dry-run Show what would be re-embedded
|
|
8
|
+
*
|
|
9
|
+
* Flags:
|
|
10
|
+
* --dry-run Show what would change without writing
|
|
11
|
+
* --limit N Max memories to process (default: 500)
|
|
12
|
+
* --collection memories | observations (for re-embed, default: memories)
|
|
13
|
+
* --null-only Re-embed only docs with null/empty embeddings
|
|
14
|
+
* --verbose Detailed per-item output
|
|
15
|
+
*/
|
|
16
|
+
export declare function runMaintain(args: string[]): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=maintain-cmd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maintain-cmd.d.ts","sourceRoot":"","sources":["../../src/bin/maintain-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAyXH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB/D"}
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* maintain-cmd.ts — fozikio maintain command.
|
|
3
|
+
*
|
|
4
|
+
* Subcommands:
|
|
5
|
+
* fozikio maintain fix Scan and repair data issues
|
|
6
|
+
* fozikio maintain re-embed Re-embed all memories with current provider
|
|
7
|
+
* fozikio maintain re-embed --dry-run Show what would be re-embedded
|
|
8
|
+
*
|
|
9
|
+
* Flags:
|
|
10
|
+
* --dry-run Show what would change without writing
|
|
11
|
+
* --limit N Max memories to process (default: 500)
|
|
12
|
+
* --collection memories | observations (for re-embed, default: memories)
|
|
13
|
+
* --null-only Re-embed only docs with null/empty embeddings
|
|
14
|
+
* --verbose Detailed per-item output
|
|
15
|
+
*/
|
|
16
|
+
import { loadConfig } from './config-loader.js';
|
|
17
|
+
import { createStore, createEmbedProvider } from './store-factory.js';
|
|
18
|
+
function parseArgs(args) {
|
|
19
|
+
const subcommand = args[0] && !args[0].startsWith('--') ? args[0] : null;
|
|
20
|
+
const rest = subcommand ? args.slice(1) : args;
|
|
21
|
+
let dryRun = false;
|
|
22
|
+
let limit = 500;
|
|
23
|
+
let collection = 'memories';
|
|
24
|
+
let nullOnly = false;
|
|
25
|
+
let verbose = false;
|
|
26
|
+
for (let i = 0; i < rest.length; i++) {
|
|
27
|
+
const arg = rest[i];
|
|
28
|
+
if (arg === '--dry-run') {
|
|
29
|
+
dryRun = true;
|
|
30
|
+
}
|
|
31
|
+
else if (arg === '--null-only') {
|
|
32
|
+
nullOnly = true;
|
|
33
|
+
}
|
|
34
|
+
else if (arg === '--verbose') {
|
|
35
|
+
verbose = true;
|
|
36
|
+
}
|
|
37
|
+
else if (arg === '--limit' && rest[i + 1]) {
|
|
38
|
+
const parsed = parseInt(rest[++i], 10);
|
|
39
|
+
if (!isNaN(parsed) && parsed > 0)
|
|
40
|
+
limit = parsed;
|
|
41
|
+
}
|
|
42
|
+
else if (arg === '--collection' && rest[i + 1]) {
|
|
43
|
+
const val = rest[++i];
|
|
44
|
+
if (val === 'observations')
|
|
45
|
+
collection = 'observations';
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return { subcommand, dryRun, limit, collection, nullOnly, verbose };
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Strip LLM output artifacts that leaked into definitions in older cortex versions.
|
|
52
|
+
* Pattern: "YES\n\nDefinition:" or "YES\n\nUpdated Definition:" or "YES:" prefix.
|
|
53
|
+
*/
|
|
54
|
+
function stripYesPrefix(text) {
|
|
55
|
+
return text
|
|
56
|
+
.replace(/^YES[:\s]*\n*(?:Updated\s+)?(?:Definition[:\s]*)?\n*/i, '')
|
|
57
|
+
.trim();
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Detect whether a memory that is categorized as 'topic' or 'belief' should
|
|
61
|
+
* be re-categorized based on keyword heuristics.
|
|
62
|
+
*/
|
|
63
|
+
function detectBetterCategory(name, definition, currentCategory) {
|
|
64
|
+
if (currentCategory !== 'topic' && currentCategory !== 'belief')
|
|
65
|
+
return null;
|
|
66
|
+
const text = `${name} ${definition}`.toLowerCase();
|
|
67
|
+
const valueSignals = [
|
|
68
|
+
'loyalty', 'honesty', 'transparency', 'integrity', 'absolute transparency',
|
|
69
|
+
'no hidden state', 'genuinely useful', 'usefulness over', 'continuity matters',
|
|
70
|
+
'grow genuinely', 'worth having around', 'honest about limits',
|
|
71
|
+
];
|
|
72
|
+
const hasValueSignal = valueSignals.some(s => text.includes(s)) || /\bvalue[sd]?\b/.test(text);
|
|
73
|
+
const patternSignals = [
|
|
74
|
+
'disposition', 'tendency', 'practical and direct', 'pushes back',
|
|
75
|
+
'read before acting', 'tinkerer', 'goes wide before', 'go wide before',
|
|
76
|
+
];
|
|
77
|
+
const hasPatternSignal = patternSignals.some(s => text.includes(s));
|
|
78
|
+
if (hasValueSignal)
|
|
79
|
+
return 'value';
|
|
80
|
+
if (currentCategory === 'topic' && hasPatternSignal)
|
|
81
|
+
return 'pattern';
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
async function runFix(args) {
|
|
85
|
+
const config = loadConfig();
|
|
86
|
+
const store = await createStore(config);
|
|
87
|
+
console.log('[maintain fix] Scanning memories for data issues...');
|
|
88
|
+
const memories = await store.getAllMemories();
|
|
89
|
+
console.log(`[maintain fix] Loaded ${memories.length} memories`);
|
|
90
|
+
const issuesList = [];
|
|
91
|
+
for (const memory of memories) {
|
|
92
|
+
const issues = [];
|
|
93
|
+
const fixes = {};
|
|
94
|
+
// Check 1: Missing or empty definition
|
|
95
|
+
if (!memory.definition || memory.definition.trim().length === 0) {
|
|
96
|
+
issues.push('empty definition');
|
|
97
|
+
fixes['definition'] = memory.name; // fallback to name
|
|
98
|
+
}
|
|
99
|
+
// Check 2: YES prefix artifact in definition
|
|
100
|
+
const cleanDef = stripYesPrefix(memory.definition ?? '');
|
|
101
|
+
if (cleanDef !== (memory.definition ?? '')) {
|
|
102
|
+
issues.push('YES prefix artifact in definition');
|
|
103
|
+
fixes['definition'] = cleanDef;
|
|
104
|
+
}
|
|
105
|
+
// Check 3: Missing embedding (null or empty array)
|
|
106
|
+
const hasEmbedding = Array.isArray(memory.embedding) && memory.embedding.length > 0;
|
|
107
|
+
if (!hasEmbedding) {
|
|
108
|
+
issues.push('missing embedding');
|
|
109
|
+
// Cannot fix here — use re-embed subcommand
|
|
110
|
+
}
|
|
111
|
+
// Check 4: Salience out of range
|
|
112
|
+
if (typeof memory.salience === 'number' && (memory.salience < 0 || memory.salience > 1)) {
|
|
113
|
+
issues.push(`salience out of range: ${memory.salience}`);
|
|
114
|
+
fixes['salience'] = Math.max(0, Math.min(1, memory.salience));
|
|
115
|
+
}
|
|
116
|
+
// Check 5: Null access_count
|
|
117
|
+
if (memory.access_count == null || typeof memory.access_count !== 'number') {
|
|
118
|
+
issues.push('null access_count');
|
|
119
|
+
fixes['access_count'] = 0;
|
|
120
|
+
}
|
|
121
|
+
// Check 6: Miscategorized identity memories (topic/belief that should be value/pattern)
|
|
122
|
+
const defToCheck = fixes['definition'] ?? memory.definition ?? '';
|
|
123
|
+
const betterCat = detectBetterCategory(memory.name, defToCheck, memory.category);
|
|
124
|
+
if (betterCat) {
|
|
125
|
+
issues.push(`miscategorized: '${memory.category}' should be '${betterCat}'`);
|
|
126
|
+
fixes['category'] = betterCat;
|
|
127
|
+
}
|
|
128
|
+
if (issues.length > 0) {
|
|
129
|
+
issuesList.push({ id: memory.id, name: memory.name, issues, fixes });
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (issuesList.length === 0) {
|
|
133
|
+
console.log('[maintain fix] No issues found.');
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
// Separate fixable from unfixable
|
|
137
|
+
const fixable = issuesList.filter(item => Object.keys(item.fixes).length > 0);
|
|
138
|
+
const unfixable = issuesList.filter(item => Object.keys(item.fixes).length === 0);
|
|
139
|
+
console.log(`\n[maintain fix] Found ${issuesList.length} memories with issues:`);
|
|
140
|
+
console.log(` Fixable: ${fixable.length}`);
|
|
141
|
+
console.log(` Needs manual attention: ${unfixable.length} (missing embeddings — run re-embed)`);
|
|
142
|
+
if (unfixable.length > 0 && args.verbose) {
|
|
143
|
+
console.log('\nMemories needing re-embed:');
|
|
144
|
+
for (const item of unfixable) {
|
|
145
|
+
console.log(` [${item.id}] ${item.name.slice(0, 60)}: ${item.issues.join(', ')}`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (fixable.length === 0) {
|
|
149
|
+
console.log('\n[maintain fix] Nothing to fix automatically.');
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
if (args.dryRun) {
|
|
153
|
+
console.log('\n[maintain fix] Dry run — would apply these fixes:');
|
|
154
|
+
for (const item of fixable) {
|
|
155
|
+
console.log(` [${item.id}] ${item.name.slice(0, 55)}`);
|
|
156
|
+
for (const issue of item.issues.filter(i => !i.includes('missing embedding'))) {
|
|
157
|
+
console.log(` - ${issue}`);
|
|
158
|
+
}
|
|
159
|
+
const fixKeys = Object.keys(item.fixes);
|
|
160
|
+
console.log(` fixes: ${fixKeys.join(', ')}`);
|
|
161
|
+
}
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
let applied = 0;
|
|
165
|
+
let failed = 0;
|
|
166
|
+
console.log('\n[maintain fix] Applying fixes...');
|
|
167
|
+
for (const item of fixable) {
|
|
168
|
+
try {
|
|
169
|
+
await store.updateMemory(item.id, item.fixes);
|
|
170
|
+
if (args.verbose) {
|
|
171
|
+
console.log(` [OK] ${item.name.slice(0, 60)} — fixed: ${Object.keys(item.fixes).join(', ')}`);
|
|
172
|
+
}
|
|
173
|
+
applied++;
|
|
174
|
+
}
|
|
175
|
+
catch (err) {
|
|
176
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
177
|
+
console.error(` [FAIL] ${item.name.slice(0, 60)}: ${msg}`);
|
|
178
|
+
failed++;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
console.log(`\n[maintain fix] Done.`);
|
|
182
|
+
console.log(` Applied: ${applied}`);
|
|
183
|
+
console.log(` Failed: ${failed}`);
|
|
184
|
+
if (unfixable.length > 0) {
|
|
185
|
+
console.log(` Skipped (needs re-embed): ${unfixable.length}`);
|
|
186
|
+
console.log(` Run: fozikio maintain re-embed --null-only`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
// ─── re-embed subcommand ──────────────────────────────────────────────────────
|
|
190
|
+
const EMBED_DELAY_MS = parseInt(process.env['EMBED_DELAY_MS'] ?? '200', 10);
|
|
191
|
+
const ABORT_THRESHOLD = 5;
|
|
192
|
+
async function runReEmbed(args) {
|
|
193
|
+
const config = loadConfig();
|
|
194
|
+
const store = await createStore(config);
|
|
195
|
+
const embed = await createEmbedProvider(config);
|
|
196
|
+
console.log(`[maintain re-embed] Provider: ${embed.name} (${embed.dimensions}d)`);
|
|
197
|
+
console.log(`[maintain re-embed] Collection: ${args.collection}`);
|
|
198
|
+
console.log(`[maintain re-embed] Limit: ${args.limit}`);
|
|
199
|
+
if (args.nullOnly)
|
|
200
|
+
console.log('[maintain re-embed] Filter: null/empty embeddings only');
|
|
201
|
+
if (args.dryRun)
|
|
202
|
+
console.log('[maintain re-embed] DRY RUN — no writes');
|
|
203
|
+
console.log('');
|
|
204
|
+
let docs;
|
|
205
|
+
let totalFetched;
|
|
206
|
+
if (args.collection === 'memories') {
|
|
207
|
+
const all = await store.getAllMemories();
|
|
208
|
+
const filtered = args.nullOnly
|
|
209
|
+
? all.filter(m => !Array.isArray(m.embedding) || m.embedding.length === 0)
|
|
210
|
+
: all;
|
|
211
|
+
docs = filtered.slice(0, args.limit);
|
|
212
|
+
totalFetched = all.length;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
// observations — use generic query
|
|
216
|
+
const filters = args.nullOnly
|
|
217
|
+
? [{ field: 'embedding', op: '==', value: null }]
|
|
218
|
+
: [];
|
|
219
|
+
const rawDocs = await store.query('observations', filters, { limit: args.limit });
|
|
220
|
+
docs = rawDocs;
|
|
221
|
+
totalFetched = docs.length;
|
|
222
|
+
}
|
|
223
|
+
console.log(`[maintain re-embed] Fetched ${totalFetched} total, processing ${docs.length}`);
|
|
224
|
+
console.log('');
|
|
225
|
+
let updated = 0;
|
|
226
|
+
let skipped = 0;
|
|
227
|
+
let failed = 0;
|
|
228
|
+
let consecutiveFailures = 0;
|
|
229
|
+
for (const doc of docs) {
|
|
230
|
+
const isMemory = args.collection === 'memories';
|
|
231
|
+
const name = isMemory
|
|
232
|
+
? doc.name ?? doc.id
|
|
233
|
+
: doc.content?.slice(0, 60) ?? doc.id;
|
|
234
|
+
const label = name.slice(0, 60);
|
|
235
|
+
// Build embed input
|
|
236
|
+
let embedInput;
|
|
237
|
+
if (isMemory) {
|
|
238
|
+
const m = doc;
|
|
239
|
+
embedInput = `${m.name ?? ''}: ${m.definition ?? ''}`;
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
const o = doc;
|
|
243
|
+
embedInput = o.content ?? '';
|
|
244
|
+
}
|
|
245
|
+
if (!embedInput || embedInput.trim().length < 10) {
|
|
246
|
+
if (args.verbose)
|
|
247
|
+
console.log(` Skip (empty): ${label}`);
|
|
248
|
+
skipped++;
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
251
|
+
if (args.dryRun) {
|
|
252
|
+
console.log(` Would re-embed: ${label} (${embedInput.length} chars)`);
|
|
253
|
+
updated++;
|
|
254
|
+
continue;
|
|
255
|
+
}
|
|
256
|
+
// Embed
|
|
257
|
+
let embedding;
|
|
258
|
+
try {
|
|
259
|
+
process.stdout.write(` ${label} ... `);
|
|
260
|
+
embedding = await embed.embed(embedInput);
|
|
261
|
+
console.log(`OK (${embedding.length}d)`);
|
|
262
|
+
consecutiveFailures = 0;
|
|
263
|
+
}
|
|
264
|
+
catch (err) {
|
|
265
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
266
|
+
console.log(`FAILED: ${msg}`);
|
|
267
|
+
failed++;
|
|
268
|
+
consecutiveFailures++;
|
|
269
|
+
if (consecutiveFailures >= ABORT_THRESHOLD) {
|
|
270
|
+
console.error(`[maintain re-embed] ${ABORT_THRESHOLD} consecutive failures — aborting.`);
|
|
271
|
+
console.error('[maintain re-embed] Check that your embed provider is running and credentials are set.');
|
|
272
|
+
process.exit(1);
|
|
273
|
+
}
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
// Write back
|
|
277
|
+
try {
|
|
278
|
+
if (isMemory) {
|
|
279
|
+
await store.updateMemory(doc.id, { embedding });
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
await store.update('observations', doc.id, {
|
|
283
|
+
embedding,
|
|
284
|
+
updated_at: new Date(),
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
updated++;
|
|
288
|
+
}
|
|
289
|
+
catch (err) {
|
|
290
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
291
|
+
console.error(` Write failed for ${label}: ${msg}`);
|
|
292
|
+
failed++;
|
|
293
|
+
}
|
|
294
|
+
if (EMBED_DELAY_MS > 0) {
|
|
295
|
+
await new Promise(r => setTimeout(r, EMBED_DELAY_MS));
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
console.log('');
|
|
299
|
+
console.log('[maintain re-embed] ─────────────────────────────────');
|
|
300
|
+
console.log(`[maintain re-embed] Updated: ${updated}`);
|
|
301
|
+
console.log(`[maintain re-embed] Skipped: ${skipped}`);
|
|
302
|
+
console.log(`[maintain re-embed] Failed: ${failed}`);
|
|
303
|
+
if (args.dryRun) {
|
|
304
|
+
console.log('[maintain re-embed] (Dry run — no writes performed)');
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
// ─── Help ─────────────────────────────────────────────────────────────────────
|
|
308
|
+
function printMaintainHelp() {
|
|
309
|
+
process.stderr.write(`fozikio maintain — data maintenance for cortex stores
|
|
310
|
+
|
|
311
|
+
Usage:
|
|
312
|
+
fozikio maintain fix Scan and repair data issues
|
|
313
|
+
fozikio maintain re-embed Re-embed memories with current provider
|
|
314
|
+
fozikio maintain re-embed --dry-run Show what would be re-embedded
|
|
315
|
+
|
|
316
|
+
Fix flags:
|
|
317
|
+
--dry-run Show issues and fixes without writing
|
|
318
|
+
--verbose Show detail per memory
|
|
319
|
+
|
|
320
|
+
Re-embed flags:
|
|
321
|
+
--dry-run Show what would be re-embedded without writing
|
|
322
|
+
--null-only Only re-embed docs with missing/null embeddings
|
|
323
|
+
--limit N Max docs to process (default: 500)
|
|
324
|
+
--collection <name> memories | observations (default: memories)
|
|
325
|
+
--verbose Show detail per doc
|
|
326
|
+
|
|
327
|
+
Environment:
|
|
328
|
+
EMBED_DELAY_MS Delay between embed calls in ms (default: 200)
|
|
329
|
+
`);
|
|
330
|
+
}
|
|
331
|
+
// ─── Main Export ─────────────────────────────────────────────────────────────
|
|
332
|
+
export async function runMaintain(args) {
|
|
333
|
+
const parsed = parseArgs(args);
|
|
334
|
+
switch (parsed.subcommand) {
|
|
335
|
+
case 'fix':
|
|
336
|
+
await runFix(parsed);
|
|
337
|
+
break;
|
|
338
|
+
case 're-embed':
|
|
339
|
+
await runReEmbed(parsed);
|
|
340
|
+
break;
|
|
341
|
+
case null:
|
|
342
|
+
case undefined:
|
|
343
|
+
printMaintainHelp();
|
|
344
|
+
process.exit(1);
|
|
345
|
+
break;
|
|
346
|
+
default:
|
|
347
|
+
process.stderr.write(`[fozikio maintain] Unknown subcommand: ${parsed.subcommand}\n\n`);
|
|
348
|
+
printMaintainHelp();
|
|
349
|
+
process.exit(1);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
//# sourceMappingURL=maintain-cmd.js.map
|