@ubundi/openclaw-cortex 2.7.0 → 2.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -22
- package/dist/internal/agent-instructions.d.ts +11 -2
- package/dist/internal/agent-instructions.d.ts.map +1 -1
- package/dist/internal/agent-instructions.js +21 -55
- package/dist/internal/agent-instructions.js.map +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +49 -2
- package/dist/plugin/index.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +2 -1
- package/skill/CHANGELOG.md +17 -0
- package/skill/README.md +217 -0
- package/skill/SKILL.md +167 -0
package/README.md
CHANGED
|
@@ -55,32 +55,21 @@ openclaw plugins install -l ./path/to/openclaw-cortex
|
|
|
55
55
|
|
|
56
56
|
> **Note:** OpenClaw defaults to the `messaging` tools profile, which excludes memory tools. The plugin's own tools (`cortex_search_memory`, `cortex_save_memory`) are registered directly and work on any profile, but the built-in `memory_search`, `read`, `write`, and other tools require `full`. This must be re-applied after running `openclaw configure` as the wizard resets it.
|
|
57
57
|
|
|
58
|
-
3. Add your API key
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
"entries": {
|
|
64
|
-
"@ubundi/openclaw-cortex": {
|
|
65
|
-
"enabled": true,
|
|
66
|
-
"config": {
|
|
67
|
-
"apiKey": "your-cortex-api-key"
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
"slots": {
|
|
72
|
-
"memory": "@ubundi/openclaw-cortex"
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
58
|
+
3. Add your API key to the plugin config:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
openclaw config set plugins.entries.openclaw-cortex.config.apiKey "your-cortex-api-key"
|
|
62
|
+
openclaw gateway restart
|
|
76
63
|
```
|
|
77
64
|
|
|
78
|
-
Alternatively, set the `CORTEX_API_KEY` environment variable
|
|
65
|
+
Alternatively, set the `CORTEX_API_KEY` environment variable:
|
|
79
66
|
|
|
80
67
|
```bash
|
|
81
68
|
export CORTEX_API_KEY="your-cortex-api-key"
|
|
82
69
|
```
|
|
83
70
|
|
|
71
|
+
> **Note:** OpenClaw registers the plugin under the install name `openclaw-cortex` (without the npm scope). Always use `openclaw-cortex` when referencing the plugin in config keys.
|
|
72
|
+
|
|
84
73
|
On first run the plugin generates a unique ID for this installation, persists it at `~/.openclaw/cortex-user-id`, and scopes all memories to that ID.
|
|
85
74
|
|
|
86
75
|
4. Run an agent turn. If configured correctly, recall data is prepended in a `<cortex_memories>` block before the model turn.
|
|
@@ -93,7 +82,7 @@ Add to your `openclaw.json`:
|
|
|
93
82
|
{
|
|
94
83
|
plugins: {
|
|
95
84
|
entries: {
|
|
96
|
-
"
|
|
85
|
+
"openclaw-cortex": {
|
|
97
86
|
enabled: true,
|
|
98
87
|
config: {
|
|
99
88
|
apiKey: "your-cortex-api-key", // required — or set CORTEX_API_KEY env var
|
|
@@ -107,7 +96,7 @@ Add to your `openclaw.json`:
|
|
|
107
96
|
},
|
|
108
97
|
},
|
|
109
98
|
slots: {
|
|
110
|
-
memory: "
|
|
99
|
+
memory: "openclaw-cortex",
|
|
111
100
|
},
|
|
112
101
|
},
|
|
113
102
|
}
|
|
@@ -313,7 +302,7 @@ If both this plugin and the Cortex SKILL.md are active, the `<cortex_memories>`
|
|
|
313
302
|
## Troubleshooting
|
|
314
303
|
|
|
315
304
|
- **Agent not using plugin tools**: Check `tools.profile` in `openclaw.json` — OpenClaw defaults to `"messaging"`, which excludes memory tools. Run `openclaw config set tools.profile full && openclaw gateway restart`. The configure wizard resets this, so re-check after any reconfiguration.
|
|
316
|
-
- Plugin installed but no memory behavior: verify both `"enabled": true` and `"slots.memory": "
|
|
305
|
+
- Plugin installed but no memory behavior: verify both `"enabled": true` and `"slots.memory": "openclaw-cortex"` in `openclaw.json`. Note: config uses the install name `openclaw-cortex`, not the npm scope.
|
|
317
306
|
- `Cannot find module 'zod'` during plugin load (older installs): run `npm install --prefix ~/.openclaw/extensions/openclaw-cortex --omit=dev zod`.
|
|
318
307
|
- Frequent recall timeouts: increase `recallTimeoutMs` for auto-recall or `toolTimeoutMs` for explicit searches.
|
|
319
308
|
- No useful memories returned: ensure prior sessions were captured (`autoCapture`) or saved explicitly with `cortex_save_memory` or `/checkpoint`.
|
|
@@ -2,6 +2,11 @@ export interface CortexInstructionOptions {
|
|
|
2
2
|
captureInstructions?: string;
|
|
3
3
|
captureCategories?: string[];
|
|
4
4
|
}
|
|
5
|
+
/**
|
|
6
|
+
* Builds a slim pointer block for AGENTS.md. The full operational instructions
|
|
7
|
+
* live in the `cortex-memory` skill (skill/SKILL.md); this block only contains
|
|
8
|
+
* a brief orientation and any workspace-specific custom save guidance.
|
|
9
|
+
*/
|
|
5
10
|
export declare function buildCortexInstructions(opts?: CortexInstructionOptions): string;
|
|
6
11
|
/** Short hash of the instructions content for staleness detection. */
|
|
7
12
|
export declare function instructionsHash(opts?: CortexInstructionOptions): string;
|
|
@@ -11,10 +16,14 @@ interface Logger {
|
|
|
11
16
|
warn(...args: unknown[]): void;
|
|
12
17
|
}
|
|
13
18
|
/**
|
|
14
|
-
* Injects or updates Cortex memory
|
|
19
|
+
* Injects or updates a slim Cortex memory pointer in AGENTS.md.
|
|
20
|
+
*
|
|
21
|
+
* The full operational instructions live in the cortex-memory skill
|
|
22
|
+
* (skill/SKILL.md). This block provides a brief orientation and any
|
|
23
|
+
* workspace-specific custom save guidance from the plugin config.
|
|
15
24
|
*
|
|
16
25
|
* - If AGENTS.md doesn't exist, skip silently.
|
|
17
|
-
* - If the marker is absent, append the
|
|
26
|
+
* - If the marker is absent, append the pointer block.
|
|
18
27
|
* - If the marker exists but the hash is stale (or missing), replace the section in-place.
|
|
19
28
|
* - If the marker exists and the hash matches, do nothing.
|
|
20
29
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-instructions.d.ts","sourceRoot":"","sources":["../../src/internal/agent-instructions.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AA6BD,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,wBAAwB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"agent-instructions.d.ts","sourceRoot":"","sources":["../../src/internal/agent-instructions.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AA6BD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,wBAAwB,GAAG,MAAM,CAkB/E;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,wBAAwB,GAAG,MAAM,CAExE;AAOD,UAAU,MAAM;IACd,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAChC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,wBAAwB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA+Df"}
|
|
@@ -10,7 +10,7 @@ function buildCustomSaveGuidance(opts) {
|
|
|
10
10
|
.filter(Boolean);
|
|
11
11
|
if (!customInstructions && customCategories.length === 0)
|
|
12
12
|
return "";
|
|
13
|
-
const lines = ["### Custom save guidance", ""];
|
|
13
|
+
const lines = ["", "### Custom save guidance", ""];
|
|
14
14
|
if (customInstructions) {
|
|
15
15
|
lines.push(customInstructions);
|
|
16
16
|
}
|
|
@@ -25,65 +25,27 @@ function buildCustomSaveGuidance(opts) {
|
|
|
25
25
|
}
|
|
26
26
|
return lines.join("\n");
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Builds a slim pointer block for AGENTS.md. The full operational instructions
|
|
30
|
+
* live in the `cortex-memory` skill (skill/SKILL.md); this block only contains
|
|
31
|
+
* a brief orientation and any workspace-specific custom save guidance.
|
|
32
|
+
*/
|
|
28
33
|
export function buildCortexInstructions(opts) {
|
|
29
34
|
const customSaveGuidance = buildCustomSaveGuidance(opts);
|
|
30
35
|
return `
|
|
31
36
|
|
|
32
37
|
## Cortex Memory
|
|
33
38
|
|
|
34
|
-
You have
|
|
35
|
-
|
|
36
|
-
### How to use recalled memories
|
|
37
|
-
|
|
38
|
-
- **Use recalled memories for historical context.** They are strongest for preferences, prior decisions, rationale, and cross-session continuity.
|
|
39
|
-
- **For volatile current-state facts, verify against live workspace/runtime first.** Examples: versions, ports, env/config defaults, active dependencies, and script commands.
|
|
40
|
-
- **If memory and live state conflict, report both with timing context.** Example: "Memory says X (from March 4, 2026), current repo shows Y."
|
|
41
|
-
- **Memories include a confidence score** (e.g., \`[0.85]\`). Higher scores indicate stronger relevance to the current conversation.
|
|
42
|
-
- **You also have \`cortex_search_memory\`, \`cortex_get_memory\`, \`cortex_save_memory\`, and \`cortex_forget\` tools** for explicit search, lookup by ID, save, and selective removal when the automatic recall isn't sufficient.
|
|
43
|
-
|
|
44
|
-
### When to search explicitly
|
|
45
|
-
|
|
46
|
-
- When asked a specific factual question (port numbers, library choices, config values), use \`cortex_search_memory\` to look up the answer before responding from general knowledge.
|
|
47
|
-
- When auto-recalled memories don't cover the topic being asked about, search before saying "I don't know."
|
|
48
|
-
- Use \`mode\` to narrow results: \`"decisions"\` for "why did we do X?", \`"preferences"\` for style/config questions, \`"facts"\` for durable knowledge, \`"recent"\` when recency matters more than relevance.
|
|
49
|
-
- Use \`scope\` to focus the search on the current session, older long-term memories, or all stored memories.
|
|
50
|
-
- Use \`cortex_get_memory\` when you already have a specific memory ID and want the full details for that node.
|
|
51
|
-
|
|
52
|
-
### How auto-capture works
|
|
53
|
-
|
|
54
|
-
After each conversation turn, the plugin automatically extracts facts from the conversation and stores them in long-term memory. You do **not** need to explicitly save things that are clearly stated in the conversation — auto-capture handles this. However:
|
|
39
|
+
You have long-term memory powered by the Cortex plugin. Refer to the **cortex-memory** skill for full usage instructions.
|
|
55
40
|
|
|
56
|
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
- When the information is a **nuanced interpretation** that auto-capture might miss (e.g., "the user prefers X because of Y" rather than a bare statement of X).
|
|
65
|
-
- Set \`type\` (\`"preference"\`, \`"decision"\`, \`"fact"\`, \`"transient"\`) and \`importance\` (\`"high"\`, \`"normal"\`, \`"low"\`) to improve future recall quality.
|
|
66
|
-
- Use \`type: "transient"\` for state that **will change soon** (current task in progress, temporary workaround, short-lived config). Transient memories are useful for session continuity but should not be treated as durable truth.
|
|
67
|
-
- **Don't save** transient tool output, debug logs, or information you just recalled — that creates feedback loops.
|
|
68
|
-
- **Don't save your own inferences or assumptions as facts.** Only save things the user has directly stated or confirmed. If you're uncertain about a fact, ask the user before saving it.${customSaveGuidance ? `\n\n${customSaveGuidance}` : ""}
|
|
69
|
-
|
|
70
|
-
### When to forget
|
|
71
|
-
|
|
72
|
-
- When the user says something you remembered is **wrong, outdated, or should be forgotten**, use \`cortex_forget\` with the entity name to remove those memories.
|
|
73
|
-
- When the user wants to clear all memories from a specific session, use \`cortex_forget\` with the session ID.
|
|
74
|
-
- Use \`query\` on \`cortex_forget\` to find candidate memories and entity names when the user describes the memory but doesn't know the exact entity or session yet.
|
|
75
|
-
- **Always confirm with the user before forgetting** — deletion is permanent.
|
|
76
|
-
|
|
77
|
-
### What NOT to do
|
|
78
|
-
|
|
79
|
-
- Don't treat recalled memory as the sole source of truth for volatile config/version questions.
|
|
80
|
-
- Don't ignore recalled memories when the question is about history, rationale, decisions, or user preferences.
|
|
81
|
-
- Don't fabricate details beyond what the memories state — if a memory says "TTL is 600s", use 600s, don't guess a different value.
|
|
82
|
-
- **Don't act on personal facts (birthdays, ages, anniversaries, family details) from recalled memories without explicit prior confirmation from the user.** Recalled memories can contain hallucinations that were captured as facts — ask to verify before acting on personal claims.
|
|
83
|
-
- **Don't make unsolicited factual claims about the user.** If the user didn't ask, don't volunteer personal details from memory (e.g., don't spontaneously wish happy birthday based on a recalled memory).
|
|
84
|
-
- **Don't assume a recalled fact is true because it appears multiple times.** Hallucinations can get captured and re-recalled repeatedly, creating false confidence through repetition.
|
|
85
|
-
- **Don't save facts that originated from your own reasoning rather than the user's statements.** If you infer "the user's birthday is March 10" from context clues, do NOT save that — only save what the user explicitly tells you.
|
|
86
|
-
- **Don't save version numbers, task statuses, or "currently X" statements** unless the user explicitly asks you to remember them. These go stale fast and auto-capture already filters them out.
|
|
41
|
+
**Quick reference:**
|
|
42
|
+
- Relevant memories are auto-injected in \`<cortex_memories>\` tags before each turn.
|
|
43
|
+
- New facts are auto-captured after each turn (volatile state like versions/ports is stripped).
|
|
44
|
+
- Tools: \`cortex_search_memory\`, \`cortex_save_memory\`, \`cortex_forget\`, \`cortex_get_memory\`.
|
|
45
|
+
- Commands: \`/checkpoint\` (save session summary), \`/sleep\` (clean session end), \`/audit\` (toggle API logging).
|
|
46
|
+
- For volatile facts (versions, ports, config), verify against live workspace — don't rely solely on memory.
|
|
47
|
+
- Never save your own inferences as facts. Only save what the user explicitly stated.
|
|
48
|
+
- Always confirm with the user before forgetting memories.${customSaveGuidance}
|
|
87
49
|
`;
|
|
88
50
|
}
|
|
89
51
|
/** Short hash of the instructions content for staleness detection. */
|
|
@@ -95,10 +57,14 @@ function buildBlock(opts) {
|
|
|
95
57
|
return `${buildCortexInstructions(opts).trimEnd()}\n\n<!-- cortex-memory-hash:${instructionsHash(opts)} -->\n${MARKER_END}\n`;
|
|
96
58
|
}
|
|
97
59
|
/**
|
|
98
|
-
* Injects or updates Cortex memory
|
|
60
|
+
* Injects or updates a slim Cortex memory pointer in AGENTS.md.
|
|
61
|
+
*
|
|
62
|
+
* The full operational instructions live in the cortex-memory skill
|
|
63
|
+
* (skill/SKILL.md). This block provides a brief orientation and any
|
|
64
|
+
* workspace-specific custom save guidance from the plugin config.
|
|
99
65
|
*
|
|
100
66
|
* - If AGENTS.md doesn't exist, skip silently.
|
|
101
|
-
* - If the marker is absent, append the
|
|
67
|
+
* - If the marker is absent, append the pointer block.
|
|
102
68
|
* - If the marker exists but the hash is stale (or missing), replace the section in-place.
|
|
103
69
|
* - If the marker exists and the hash matches, do nothing.
|
|
104
70
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-instructions.js","sourceRoot":"","sources":["../../src/internal/agent-instructions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,MAAM,GAAG,kBAAkB,CAAC;AAClC,MAAM,UAAU,GAAG,yBAAyB,CAAC;AAO7C,SAAS,uBAAuB,CAAC,IAA+B;IAC9D,MAAM,kBAAkB,GAAG,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;IAC7D,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAAC;SACrD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SAClC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,IAAI,CAAC,kBAAkB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpE,MAAM,KAAK,GAAG,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-instructions.js","sourceRoot":"","sources":["../../src/internal/agent-instructions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAEV,SAAS,EAEV,MAAM,YAAY,CAAC;AA8CpB,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC;CACrB;AA8RD,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBASI,SAAS;CAgdxB,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/dist/plugin/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { basename, join } from "node:path";
|
|
1
|
+
import { basename, dirname, join } from "node:path";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
2
3
|
import { createHash, randomUUID } from "node:crypto";
|
|
3
|
-
import { readFileSync, writeFileSync, statSync } from "node:fs";
|
|
4
|
+
import { readFileSync, writeFileSync, statSync, mkdirSync, copyFileSync, chmodSync } from "node:fs";
|
|
4
5
|
import { homedir } from "node:os";
|
|
5
6
|
import packageJson from "../../package.json" with { type: "json" };
|
|
6
7
|
import { CortexConfigSchema, configSchema } from "./config.js";
|
|
@@ -224,6 +225,50 @@ function ensurePluginsAllowlist(logger) {
|
|
|
224
225
|
// Non-fatal — the warning is cosmetic only
|
|
225
226
|
}
|
|
226
227
|
}
|
|
228
|
+
/**
|
|
229
|
+
* Installs the cortex-memory skill to ~/skills/cortex-memory/.
|
|
230
|
+
* OpenClaw resolves global skills from ~/skills/ (home directory level),
|
|
231
|
+
* not ~/.openclaw/skills/. Copies SKILL.md from the package if it's missing
|
|
232
|
+
* or has a different hash (version upgrade). Idempotent and non-fatal.
|
|
233
|
+
*/
|
|
234
|
+
function installSkill(logger) {
|
|
235
|
+
try {
|
|
236
|
+
const packageRoot = join(dirname(fileURLToPath(import.meta.url)), "..", "..");
|
|
237
|
+
const srcSkillPath = join(packageRoot, "skill", "SKILL.md");
|
|
238
|
+
const destDir = join(homedir(), "skills", "cortex-memory");
|
|
239
|
+
const destPath = join(destDir, "SKILL.md");
|
|
240
|
+
// Check if source skill file exists
|
|
241
|
+
let srcContent;
|
|
242
|
+
try {
|
|
243
|
+
srcContent = readFileSync(srcSkillPath, "utf-8");
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
logger.debug?.("Cortex: skill/SKILL.md not found in package, skipping skill install");
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
// Check if destination already matches (avoid unnecessary writes)
|
|
250
|
+
try {
|
|
251
|
+
const destContent = readFileSync(destPath, "utf-8");
|
|
252
|
+
const srcHash = createHash("sha256").update(srcContent).digest("hex").slice(0, 12);
|
|
253
|
+
const destHash = createHash("sha256").update(destContent).digest("hex").slice(0, 12);
|
|
254
|
+
if (srcHash === destHash)
|
|
255
|
+
return; // Already up to date
|
|
256
|
+
}
|
|
257
|
+
catch {
|
|
258
|
+
// Destination doesn't exist — proceed with install
|
|
259
|
+
}
|
|
260
|
+
mkdirSync(destDir, { recursive: true });
|
|
261
|
+
copyFileSync(srcSkillPath, destPath);
|
|
262
|
+
try {
|
|
263
|
+
chmodSync(destPath, 0o644);
|
|
264
|
+
}
|
|
265
|
+
catch { /* best-effort */ }
|
|
266
|
+
logger.info("Cortex: installed cortex-memory skill");
|
|
267
|
+
}
|
|
268
|
+
catch (err) {
|
|
269
|
+
logger.debug?.(`Cortex: skill install failed (non-fatal): ${String(err)}`);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
227
272
|
/**
|
|
228
273
|
* Ensures `tools.alsoAllow` in the OpenClaw config includes our tool names.
|
|
229
274
|
* Without this, profiles like "coding" silently filter out plugin tools —
|
|
@@ -294,6 +339,8 @@ const plugin = {
|
|
|
294
339
|
ensurePluginsAllowlist(api.logger);
|
|
295
340
|
// Ensure our tools survive the profile allowlist filter (one-time config patch)
|
|
296
341
|
ensureToolsAllowlist(api.logger);
|
|
342
|
+
// Install the cortex-memory skill (idempotent, updates on version change)
|
|
343
|
+
installSkill(api.logger);
|
|
297
344
|
const client = new CortexClient(config.baseUrl, resolvedApiKey);
|
|
298
345
|
const retryQueue = new RetryQueue(api.logger);
|
|
299
346
|
const recallMetrics = new LatencyMetrics();
|
package/dist/plugin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpG,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAqB,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EACL,+BAA+B,EAC/B,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AAMhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACnH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AACpC,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;AACtC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,2BAA2B,CAAC,CAAC;AAC7E,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,0BAA0B,CAAC,CAAC;AACnF,MAAM,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;AAYjE,SAAS,YAAY,CAAC,KAAmB;IACvC,IAAI,CAAC;QACH,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5H,CAAC;IAAC,MAAM,CAAC;QACP,8CAA8C;IAChD,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,OAAO;YACL,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;YACrB,kBAAkB,EAAE,GAAG,CAAC,kBAAkB,IAAI,CAAC;YAC/C,mBAAmB,EAAE,GAAG,CAAC,mBAAmB,IAAI,CAAC;YACjD,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,CAAC;YAC3B,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC;YACjC,mBAAmB,EAAE,GAAG,CAAC,mBAAmB,IAAI,CAAC;YACjD,yBAAyB,EAAE,GAAG,CAAC,yBAAyB,IAAI,CAAC;SAC9D,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAUD;;;;GAIG;AACH,SAAS,eAAe,CAAC,YAAoB;IAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,iBAAiB,CACxB,KAA0C,EAC1C,iBAAyB;IAEzB,IAAI,OAAO,KAAK,EAAE,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,UAAU,CAAC;IAClG,IAAI,OAAO,KAAK,EAAE,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,SAAS,CAAC;IAC/F,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,mBAAmB,CAAC,eAAmC,EAAE,aAAiC;IACjG,IAAI,eAAe,IAAI,aAAa;QAAE,OAAO,GAAG,eAAe,OAAO,aAAa,EAAE,CAAC;IACtF,OAAO,eAAe,IAAI,aAAa,CAAC;AAC1C,CAAC;AAED,SAAS,YAAY,CAAC,GAAY;IAChC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAC7D,OAAO,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,MAAoB,EACpB,MAAc;IAEd,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,SAAS,CAAC,cAAc,KAAK,CAAC,IAAI,SAAS,CAAC,cAAc,KAAK,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAGD;;;;GAIG;AACH,KAAK,UAAU,cAAc,CAAC,MAAc;IAC1C,IAAI,CAAC;QACH,qCAAqC;QACrC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,wBAAwB;gBAAE,OAAO;QAChE,CAAC;QAAC,MAAM,CAAC,CAAC,0CAA0C,CAAC,CAAC;QAEtD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,8BAA8B,YAAY,SAAS,EACnD,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAC9B,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO;YACpB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAA0B,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,IAAI,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CACT,4BAA4B,OAAO,MAAM,MAAM,6BAA6B,YAAY,qBAAqB,CAC9G,CAAC;YACJ,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAED,oDAAoD;QACpD,aAAa,CACX,iBAAiB,EACjB,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,EAClE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CACnC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,iDAAiD;IACnD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,MAAoB,EACpB,MAAc,EACd,cAA8B,EAC9B,MAAc;IAEd,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC3C,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SACvC,CAAC,CAAC;QACH,cAAc,CAAC,WAAW,GAAG,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC;QAC1D,cAAc,CAAC,aAAa,GAAG,SAAS,CAAC,cAAc,CAAC;QACxD,cAAc,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAC7C,IAAI,KAAK,EAAE,CAAC;YACV,cAAc,CAAC,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC;QACpD,CAAC;QACD,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAExC,MAAM,CAAC,IAAI,CACT,sBAAsB,SAAS,CAAC,cAAc,CAAC,cAAc,EAAE,cAAc,SAAS,CAAC,cAAc,cAAc,SAAS,CAAC,QAAQ,WAAW,cAAc,CAAC,YAAY,EAAE,CAC9K,CAAC;QAEF,qEAAqE;QACrE,wEAAwE;QACxE,+DAA+D;QAC/D,IAAI,cAAc,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAClB,CAAC,GAAG,EAAE,EAAE;gBACN,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC,EACD,GAAG,EAAE;gBACH,MAAM,CAAC,KAAK,EAAE,CAAC,kCAAkC,CAAC,CAAC;YACrD,CAAC,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;QAC3E,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CACzB,GAAc,EACd,QAAgB,EAChB,OAAgC,EAChC,QAAsB;IAEtB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;QACX,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5B,CAAC;SAAM,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QAC5B,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,QAAQ,4CAA4C,CAAC,CAAC;IACzG,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,MAAM,iBAAiB,GAAG;IACxB,sBAAsB;IACtB,mBAAmB;IACnB,oBAAoB;IACpB,eAAe;CACP,CAAC;AAEX,MAAM,SAAS,GAAG,iBAAiB,CAAC;AAEpC;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,MAAc;IAC5C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/B,MAAM,QAAQ,GAAa,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;YAC7D,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;YACtB,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO;QAEzC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEhD,IAAI,IAAwB,CAAC;QAC7B,IAAI,CAAC;YAAC,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACxE,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;QAC9G,MAAM,CAAC,IAAI,CAAC,kBAAkB,SAAS,oBAAoB,CAAC,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,2CAA2C;IAC7C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,MAAc;IAClC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE3C,oCAAoC;QACpC,IAAI,UAAkB,CAAC;QACvB,IAAI,CAAC;YACH,UAAU,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,KAAK,EAAE,CAAC,qEAAqE,CAAC,CAAC;YACtF,OAAO;QACT,CAAC;QAED,kEAAkE;QAClE,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnF,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrF,IAAI,OAAO,KAAK,QAAQ;gBAAE,OAAO,CAAC,qBAAqB;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,mDAAmD;QACrD,CAAC;QAED,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC;YAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,EAAE,CAAC,6CAA6C,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,MAAc;IAC1C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/B,+EAA+E;QAC/E,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO;YAAE,OAAO;QAEnC,MAAM,QAAQ,GAAa,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YAC9D,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;YACxB,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC;QACnD,mFAAmF;QACnF,IAAI,IAAwB,CAAC;QAC7B,IAAI,CAAC;YAAC,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACxE,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;QAC9G,MAAM,CAAC,IAAI,CACT,qCAAqC,MAAM,CAAC,KAAK,CAAC,OAAO,WAAW,CACrE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;QACtE,2DAA2D;QAC3D,MAAM,CAAC,IAAI,CACT,4LAA4L,CAC7L,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,MAAM,GAAG;IACb,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,eAAe;IACrB,WAAW,EACT,wFAAwF;IAC1F,OAAO;IACP,qFAAqF;IACrF,YAAY;IAEZ,QAAQ,CAAC,GAAc;QACrB,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAEjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,KAAK,CACd,+BAA+B,EAC/B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/E,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAiB,MAAM,CAAC,IAAI,CAAC;QAEzC,6EAA6E;QAC7E,4EAA4E;QAC5E,qEAAqE;QACrE,MAAM,cAAc,GAClB,MAAM,CAAC,MAAM;YACb,OAAO,CAAC,GAAG,CAAC,cAAc;YAC1B,CAAC,aAAa,KAAK,sBAAsB,IAAI,aAAa,CAAC;YAC3D,EAAE,CAAC;QAEL,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,oFAAoF,CACrF,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,gHAAgH,CACjH,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,8EAA8E,CAC/E,CAAC;YACF,OAAO;QACT,CAAC;QAED,gFAAgF;QAChF,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnC,gFAAgF;QAChF,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,0EAA0E;QAC1E,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEzB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,IAAI,cAAc,EAAE,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC7C,MAAM,cAAc,GAAmB;YACrC,WAAW,EAAE,KAAK;YAClB,aAAa,EAAE,CAAC;YAChB,YAAY,EAAE,CAAC;YACf,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,CAAC;SACf,CAAC;QAEF,yEAAyE;QACzE,sEAAsE;QACtE,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAE/B,mEAAmE;QACnE,sEAAsE;QACtE,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;QAExC,qEAAqE;QACrE,MAAM,gBAAgB,GAAG,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC;QAC/C,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACjC,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,+EAA+E;QAC/E,+EAA+E;QAC/E,8DAA8D;QAC9D,IAAI,gBAAyC,CAAC;QAC9C,IAAI,oBAAwC,CAAC;QAC7C,IAAI,iBAAqC,CAAC;QAC1C,MAAM,gBAAgB,GAAgB;YACpC,GAAG,CAAC,KAAK;gBACP,OAAO,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3D,CAAC;SACa,CAAC;QAEjB,yEAAyE;QACzE,2EAA2E;QAC3E,0EAA0E;QAC1E,mEAAmE;QACnE,8DAA8D;QAC9D,IAAI,MAAM,GAAuB,MAAM,CAAC,MAAM,CAAC;QAC/C,MAAM,WAAW,GAAkB,MAAM;YACvC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;YACnB,CAAC,CAAC,kBAAkB,EAAE;iBACjB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;gBACX,MAAM,GAAG,EAAE,CAAC;gBACZ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;YAC9C,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,GAAG,UAAU,EAAE,CAAC;gBACtB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;YAC5F,CAAC,CAAC,CAAC;QAET,wEAAwE;QACxE,uEAAuE;QACvE,wCAAwC;QACxC,uEAAuE;QACvE,6EAA6E;QAC7E,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,KAAK,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,MAAO,CAAC,CAAC,CAAC;YAC1F,KAAK,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAED,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,wBAAwB,CAAC,CAAC;QAE5D,wEAAwE;QACxE,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,qBAAqB,CAAC,CAAC;gBACxE,IAAI,WAA+B,CAAC;gBACpC,IAAI,CAAC;oBAAC,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;gBAC1F,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;oBAC5B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;oBACvE,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;QAC7B,CAAC;QAED,gBAAgB;QAEhB,+EAA+E;QAC/E,IAAI,YAAY,GAAc,EAAE,CAAC;QACjC,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;QAClD,MAAM,aAAa,GAAG,mBAAmB,CACvC,MAAM,EACN,MAAM,EACN,GAAG,CAAC,MAAM,EACV,aAAa,EACb,cAAc,EACd,GAAG,EAAE,CAAC,MAAM,EACZ,gBAAgB,EAChB,CAAC,KAAK,EAAE,EAAE;YACR,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3B,YAAY,CAAC,mBAAmB,IAAI,KAAK,CAAC,gBAAgB,CAAC;YAC3D,YAAY,CAAC,yBAAyB,IAAI,KAAK,CAAC,cAAc,CAAC;YAC/D,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7B,CAAC,EACD,SAAS,CACV,CAAC;QAEF,gEAAgE;QAChE,kBAAkB,CAChB,GAAG,EACH,oBAAoB,EACpB,KAAK,EACH,KAA+C,EAC/C,GAAgD,EAChD,EAAE;YACF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC3D,iBAAiB,GAAG,gBAAgB,CAAC;YACrC,IAAI,eAAmC,CAAC;YAExC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACnD,uBAAuB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC9C,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;oBACxE,IAAI,KAAK,EAAE,CAAC;wBACV,eAAe,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;wBAC/C,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;wBAC3B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,uDAAuD,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;oBAC9F,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,iCAAiC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACrD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,eAAe,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;YACpF,IAAI,CAAC,QAAQ;gBAAE,OAAO,YAAY,CAAC;YACnC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;QACtC,CAAC,EACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,mDAAmD;SACjE,CACF,CAAC;QAEF,sEAAsE;QACtE,oDAAoD;QACpD,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAE7B,oDAAoD;QACpD,MAAM,cAAc,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACnD,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,iCAAiC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9G,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QACvL,kBAAkB,CAChB,GAAG,EACH,WAAW,EACX,KAAK,EAAE,KAAkG,EAAE,EAAE;YAC3G,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAC3B,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAC9B,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAC7D,iBAAiB,GAAG,gBAAgB,CAAC;gBACrC,MAAM,OAAO,GAAG,+BAA+B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAChE,IAAI,CAAC;oBACH,MAAM,YAAY,CAAC,SAAS,CAAC;wBAC3B,eAAe,EAAE,SAAS;wBAC1B,UAAU,EAAE,gBAAgB;wBAC5B,OAAO;qBACR,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,uCAAuC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,KAAY,CAAC,CAAC;YACpD,IAAI,QAAQ;gBAAE,oBAAoB,EAAE,CAAC;QACvC,CAAC,EACD;YACE,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EAAE,4DAA4D;SAC1E,CACF,CAAC;QAEF,kBAAkB,CAChB,GAAG,EACH,sBAAsB,EACtB,CAAC,KAA4B,EAAE,EAAE;YAC/B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC;gBAAE,OAAO;YACzE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC9B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO;YAC5D,OAAO,EAAE,OAAO,EAAE,4BAA4B,CAAC,OAAkC,CAAC,EAAE,CAAC;QACvF,CAAC,EACD;YACE,IAAI,EAAE,0BAA0B;YAChC,WAAW,EAAE,qFAAqF;SACnG,CACF,CAAC;QAEF,iDAAiD;QACjD,kBAAkB,CAChB,GAAG,EACH,mBAAmB,EACnB,sBAAsB,CACpB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,EAC5D,GAAG,EAAE,CAAC,oBAAoB,EAC1B,GAAG,EAAE,GAAG,oBAAoB,GAAG,CAAC,CAAC,CAAC,CAAC,CACpC,EACD;YACE,IAAI,EAAE,2BAA2B;YACjC,WAAW,EAAE,mDAAmD;SACjE,CACF,CAAC;QAEF,wBAAwB;QAExB,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE,CAAC;YACR,kBAAkB,EAAE,CAAC;YACrB,mBAAmB,EAAE,CAAC;YACtB,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,CAAC;YACd,mBAAmB,EAAE,CAAC;YACtB,yBAAyB,EAAE,CAAC;SAC7B,CAAC;QAEF,sEAAsE;QACtE,wEAAwE;QACxE,6EAA6E;QAE7E,sBAAsB;QAEtB,MAAM,WAAW,GAAG,MAAM,CAAC,mBAAmB,GAAG,CAAC;YAChD,CAAC,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,mBAAmB,CAAC;YAC7C,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG;gBAChB,MAAM;gBACN,MAAM;gBACN,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM;gBACvB,mBAAmB,EAAE,GAAG,EAAE,CAAC,iBAAiB;gBAC5C,WAAW;gBACX,SAAS;gBACT,YAAY;gBACZ,YAAY;gBACZ,gBAAgB;gBAChB,cAAc;gBACd,WAAW;aACZ,CAAC;YAEF,GAAG,CAAC,YAAY,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;YACnD,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;YAChD,GAAG,CAAC,YAAY,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;YACjD,GAAG,CAAC,YAAY,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;YAEnD,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,qGAAqG,CAAC,CAAC;QAC5H,CAAC;QAED,8BAA8B;QAE9B,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;YACxB,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC3C,MAAM;gBACN,MAAM;gBACN,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM;gBACvB,WAAW;gBACX,eAAe,EAAE,GAAG,EAAE,CAAC,YAAY;gBACnC,SAAS;gBACT,gBAAgB;gBAChB,YAAY;gBACZ,eAAe,EAAE,GAAG,EAAE,CAAC,oBAAoB;gBAC3C,mBAAmB,EAAE,GAAG,EAAE,CAAC,gBAAgB;gBAC3C,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC;aACtD,CAAC,CAAC;YAEH,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,yDAAyD,CAAC,CAAC;QAChF,CAAC;QAED,sBAAsB;QAEtB,IAAI,GAAG,CAAC,qBAAqB,EAAE,CAAC;YAC9B,GAAG,CAAC,qBAAqB,CAAC,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;gBACzD,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC9C,OAAO,CAAC,IAAI,EAAE;oBACZ,OAAO;oBACP,OAAO,EAAE,cAAc,CAAC,WAAW,GAAG,CAAC;oBACvC,cAAc,EAAE;wBACd,WAAW,EAAE,cAAc,CAAC,WAAW;wBACvC,aAAa,EAAE,cAAc,CAAC,aAAa;wBAC3C,QAAQ,EAAE,cAAc,CAAC,QAAQ;wBACjC,IAAI,EAAE,cAAc,CAAC,YAAY;wBACjC,WAAW,EAAE,cAAc,CAAC,WAAW;qBACxC;oBACD,aAAa,EAAE,aAAa;oBAC5B,iBAAiB,EAAE,UAAU,CAAC,OAAO;oBACrC,MAAM,EAAE;wBACN,UAAU,EAAE,MAAM,CAAC,UAAU;wBAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,SAAS;qBACV;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,sCAAsC,CAAC,CAAC;QAC7D,CAAC;QAED,wCAAwC;QAExC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC7C,MAAM;gBACN,MAAM;gBACN,OAAO;gBACP,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM;gBACvB,WAAW;gBACX,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS;gBAC7B,YAAY;gBACZ,kBAAkB;gBAClB,YAAY;gBACZ,wBAAwB;aACzB,CAAC,CAAC;YAEH,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,mFAAmF,CAAC,CAAC;QAC1G,CAAC;QAED,2DAA2D;QAE3D,MAAM,0BAA0B,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,YAAY;QAC3D,IAAI,WAAW,GAAyC,IAAI,CAAC;QAE7D,GAAG,CAAC,eAAe,CAAC;YAClB,EAAE,EAAE,iBAAiB;YACrB,KAAK,CAAC,GAAG;gBACP,IAAI,OAAO,EAAE,CAAC;oBACZ,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,2CAA2C,CAAC,CAAC;oBAChE,OAAO;gBACT,CAAC;gBACD,OAAO,GAAG,IAAI,CAAC;gBAEf,UAAU,CAAC,KAAK,EAAE,CAAC;gBAEnB,gEAAgE;gBAChE,4DAA4D;gBAC5D,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBAC5C,IAAI,WAAW,GAAG,0BAA0B,CAAC;oBAC7C,MAAM,gBAAgB,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,iBAAiB;oBAEvD,MAAM,cAAc,GAAG,GAAG,EAAE;wBAC1B,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;4BAC5B,sDAAsD;4BACtD,IAAI,cAAc,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gCACzC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,8CAA8C,CAAC,CAAC;gCACnE,WAAW,GAAG,IAAI,CAAC;gCACnB,OAAO;4BACT,CAAC;4BAED,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAClB,CAAC,GAAG,EAAE,EAAE;gCACN,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;oCACrB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,0CAA0C,CAAC,CAAC;oCAC/D,qDAAqD;oCACrD,mDAAmD;oCACnD,WAAW,GAAG,gBAAgB,CAAC;gCACjC,CAAC;qCAAM,CAAC;oCACN,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,uBAAuB,CAAC,CAAC;oCAC5C,kDAAkD;oCAClD,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,gBAAgB,CAAC,CAAC;gCAC5D,CAAC;gCACD,cAAc,EAAE,CAAC;4BACnB,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;gCACN,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,8BAA8B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gCAChE,cAAc,EAAE,CAAC;4BACnB,CAAC,CACF,CAAC;wBACJ,CAAC,EAAE,WAAW,CAAC,CAAC;oBAClB,CAAC,CAAC;oBAEF,cAAc,EAAE,CAAC;gBACnB,CAAC;gBAED,mEAAmE;gBACnE,oBAAoB,GAAG,GAAG,CAAC,YAAY,CAAC;gBAExC,gDAAgD;gBAChD,IAAI,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;oBACxC,gBAAgB,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;oBACjE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,6BAA6B,GAAG,CAAC,YAAY,iBAAiB,CAAC,CAAC;gBACrF,CAAC;gBAED,wEAAwE;gBACxE,IAAI,CAAC,gBAAgB,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;oBAC1C,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAC9C,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,qBAAqB,SAAS,EAAE,CAAC,CAAC;gBACvD,CAAC;gBAED,yDAAyD;gBACzD,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;oBACrB,KAAK,uBAAuB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE;wBACzD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;wBAC/C,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;qBAC5C,CAAC,CAAC;gBACL,CAAC;gBAED,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,yBAAyB,CAAC,CAAC;YAChD,CAAC;YACD,IAAI;gBACF,IAAI,CAAC,OAAO;oBAAE,OAAO;gBACrB,OAAO,GAAG,KAAK,CAAC;gBAEhB,UAAU,CAAC,IAAI,EAAE,CAAC;gBAElB,IAAI,WAAW,EAAE,CAAC;oBAChB,YAAY,CAAC,WAAW,CAAC,CAAC;oBAC1B,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;gBAED,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC;gBACxC,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;oBACtB,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAChB,4CAA4C,OAAO,CAAC,GAAG,UAAU,OAAO,CAAC,GAAG,OAAO,OAAO,CAAC,KAAK,SAAS,CAC1G,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "openclaw-cortex",
|
|
3
3
|
"name": "Cortex Memory",
|
|
4
4
|
"description": "Long-term memory powered by Cortex — Auto-Recall, Auto-Capture, agent memory tools, and deduplication",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.8.1",
|
|
6
6
|
"configSchema": {
|
|
7
7
|
"type": "object",
|
|
8
8
|
"properties": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ubundi/openclaw-cortex",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.1",
|
|
4
4
|
"description": "OpenClaw plugin for Cortex memory — Auto-Recall, Auto-Capture, and agent memory tools",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"files": [
|
|
40
40
|
"dist",
|
|
41
|
+
"skill",
|
|
41
42
|
"openclaw.plugin.json",
|
|
42
43
|
"LICENSE"
|
|
43
44
|
],
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [1.0.0] - 2026-03-16
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- Initial release
|
|
7
|
+
- Comprehensive agent instructions for cortex memory tools (search, save, forget, get)
|
|
8
|
+
- Agent command reference (/checkpoint, /sleep, /audit)
|
|
9
|
+
- Memory hygiene guidelines (what to save, what not to save)
|
|
10
|
+
- Volatile state handling guidance
|
|
11
|
+
- Confidence score interpretation
|
|
12
|
+
- Memory vs. live state conflict resolution patterns
|
|
13
|
+
- Deployment guide with full configuration reference
|
|
14
|
+
- CLI command documentation
|
|
15
|
+
- Testing checklist
|
|
16
|
+
- Troubleshooting guide
|
|
17
|
+
- Privacy and data handling documentation
|
package/skill/README.md
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# Cortex Memory - Deployment Guide
|
|
2
|
+
|
|
3
|
+
Long-term memory system for OpenClaw agents. Automatically recalls relevant past context before each turn and captures new facts after each turn. Provides tools for explicit search, save, forget, and lookup.
|
|
4
|
+
|
|
5
|
+
## Requirements
|
|
6
|
+
|
|
7
|
+
- OpenClaw runtime (2026.3.x or later)
|
|
8
|
+
- `openclaw-cortex` plugin installed and configured
|
|
9
|
+
- Cortex API key
|
|
10
|
+
|
|
11
|
+
## Installation
|
|
12
|
+
|
|
13
|
+
### 1. Install the plugin
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
openclaw plugin install @ubundi/openclaw-cortex@latest
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 2. Configure tools profile
|
|
20
|
+
|
|
21
|
+
The default `messaging` tools profile excludes memory tools. Set tools to `full`:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
openclaw config set tools.profile full
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Or selectively allow the cortex tools:
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"tools": {
|
|
32
|
+
"alsoAllow": [
|
|
33
|
+
"cortex_search_memory",
|
|
34
|
+
"cortex_save_memory",
|
|
35
|
+
"cortex_forget",
|
|
36
|
+
"cortex_get_memory"
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 3. Add API key and plugin config
|
|
43
|
+
|
|
44
|
+
Edit `~/.openclaw/openclaw.json`:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"plugins": {
|
|
49
|
+
"entries": {
|
|
50
|
+
"openclaw-cortex": {
|
|
51
|
+
"enabled": true,
|
|
52
|
+
"config": {
|
|
53
|
+
"apiKey": "your-cortex-api-key"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Or use an environment variable:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
export CORTEX_API_KEY="your-cortex-api-key"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 4. Install the skill
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
mkdir -p ~/.openclaw/skills/cortex-memory
|
|
71
|
+
cp skill/SKILL.md ~/.openclaw/skills/cortex-memory/
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 5. Restart and verify
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
openclaw restart
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Run an agent turn and check that `<cortex_memories>` tags appear in the agent's context.
|
|
81
|
+
|
|
82
|
+
## Configuration Options
|
|
83
|
+
|
|
84
|
+
Add these to the plugin config in `openclaw.json`:
|
|
85
|
+
|
|
86
|
+
| Option | Type | Default | Description |
|
|
87
|
+
|--------|------|---------|-------------|
|
|
88
|
+
| `apiKey` | string | — | Cortex API key (required if no env var) |
|
|
89
|
+
| `autoRecall` | boolean | `true` | Auto-inject memories before each turn |
|
|
90
|
+
| `autoCapture` | boolean | `true` | Auto-extract facts after each turn |
|
|
91
|
+
| `recallTopK` | number | `15` | Max memories to inject per turn |
|
|
92
|
+
| `recallTimeoutMs` | number | `3000` | Timeout for recall API calls |
|
|
93
|
+
| `toolTimeoutMs` | number | `8000` | Timeout for tool API calls |
|
|
94
|
+
| `captureInstructions` | string | — | Custom guidance for auto-capture |
|
|
95
|
+
| `captureCategories` | string[] | — | Categories to pay attention to |
|
|
96
|
+
| `noveltyThreshold` | number | `0.85` | Similarity threshold for deduplication |
|
|
97
|
+
| `auditLog` | boolean | `false` | Enable audit logging by default |
|
|
98
|
+
|
|
99
|
+
### Example full config
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"plugins": {
|
|
104
|
+
"entries": {
|
|
105
|
+
"openclaw-cortex": {
|
|
106
|
+
"enabled": true,
|
|
107
|
+
"config": {
|
|
108
|
+
"apiKey": "your-cortex-api-key",
|
|
109
|
+
"autoRecall": true,
|
|
110
|
+
"autoCapture": true,
|
|
111
|
+
"recallTopK": 15,
|
|
112
|
+
"recallTimeoutMs": 3000,
|
|
113
|
+
"captureInstructions": "Focus on project architecture decisions and team preferences",
|
|
114
|
+
"captureCategories": ["deployment configs", "API contracts", "team conventions"],
|
|
115
|
+
"auditLog": false
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## CLI Commands
|
|
124
|
+
|
|
125
|
+
The plugin adds CLI commands for managing memory from the terminal:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
openclaw cortex status # Connection status and session stats
|
|
129
|
+
openclaw cortex memories # List recent memories
|
|
130
|
+
openclaw cortex search # Search memories by query
|
|
131
|
+
openclaw cortex config # Show current plugin configuration
|
|
132
|
+
openclaw cortex pair # Pair with Cortex API (interactive setup)
|
|
133
|
+
openclaw cortex info # Show plugin and API info
|
|
134
|
+
openclaw cortex reset # Reset plugin state
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Agent Commands
|
|
138
|
+
|
|
139
|
+
These commands are available to the agent during conversation:
|
|
140
|
+
|
|
141
|
+
- `/checkpoint` — Save session summary before resetting context
|
|
142
|
+
- `/sleep` — Mark session as cleanly ended (no recovery warning next time)
|
|
143
|
+
- `/audit on|off` — Toggle local audit logging of Cortex API calls
|
|
144
|
+
|
|
145
|
+
## Testing Checklist
|
|
146
|
+
|
|
147
|
+
### Auto-recall
|
|
148
|
+
- [ ] Start a conversation and verify `<cortex_memories>` tags appear
|
|
149
|
+
- [ ] Memories are relevant to conversation topic
|
|
150
|
+
- [ ] Confidence scores are included
|
|
151
|
+
|
|
152
|
+
### Tools
|
|
153
|
+
- [ ] `cortex_search_memory` returns results for known topics
|
|
154
|
+
- [ ] `cortex_save_memory` accepts and confirms saves
|
|
155
|
+
- [ ] `cortex_save_memory` with `checkNovelty: true` skips duplicates
|
|
156
|
+
- [ ] `cortex_forget` with `query` finds candidate memories
|
|
157
|
+
- [ ] `cortex_forget` with `entity` removes memories
|
|
158
|
+
- [ ] `cortex_get_memory` retrieves by node ID
|
|
159
|
+
|
|
160
|
+
### Auto-capture
|
|
161
|
+
- [ ] After a conversation turn, new facts appear in subsequent recalls
|
|
162
|
+
- [ ] Volatile state (versions, ports) is stripped from captures
|
|
163
|
+
|
|
164
|
+
### Commands
|
|
165
|
+
- [ ] `/checkpoint` saves session summary
|
|
166
|
+
- [ ] `/sleep` clears recovery state
|
|
167
|
+
- [ ] `/audit on` enables logging, `/audit off` disables
|
|
168
|
+
|
|
169
|
+
### CLI
|
|
170
|
+
- [ ] `openclaw cortex status` shows connection info
|
|
171
|
+
- [ ] `openclaw cortex search "query"` returns results
|
|
172
|
+
|
|
173
|
+
## Troubleshooting
|
|
174
|
+
|
|
175
|
+
### No memories recalled
|
|
176
|
+
- Check plugin is enabled: `openclaw cortex status`
|
|
177
|
+
- Verify API key is valid: `openclaw cortex pair`
|
|
178
|
+
- Check `autoRecall` is not set to `false`
|
|
179
|
+
- Ensure memories exist: `openclaw cortex search "test"`
|
|
180
|
+
|
|
181
|
+
### Saves failing
|
|
182
|
+
- Check API connectivity: `openclaw cortex status`
|
|
183
|
+
- Verify API key permissions
|
|
184
|
+
- Check audit log for error details: `/audit on`, then retry
|
|
185
|
+
|
|
186
|
+
### Stale memories being recalled
|
|
187
|
+
- Use `cortex_forget` to remove outdated memories
|
|
188
|
+
- Report both memory and live state to the user with timing context
|
|
189
|
+
|
|
190
|
+
### Plugin not loading
|
|
191
|
+
- Verify installation: `openclaw doctor`
|
|
192
|
+
- Check for naming issues in config (use `openclaw-cortex` as the plugin key)
|
|
193
|
+
- Restart the gateway after installation
|
|
194
|
+
|
|
195
|
+
## Privacy & Data Handling
|
|
196
|
+
|
|
197
|
+
**What is captured:**
|
|
198
|
+
- Facts, preferences, and decisions stated in conversation
|
|
199
|
+
- Conversation transcripts are sent to Cortex API for extraction
|
|
200
|
+
- Volatile state (versions, ports, task statuses) is stripped before capture
|
|
201
|
+
|
|
202
|
+
**What is NOT captured:**
|
|
203
|
+
- Raw tool output or debug logs
|
|
204
|
+
- File contents (only facts derived from conversation)
|
|
205
|
+
- Secrets or credentials (filtered by the capture pipeline)
|
|
206
|
+
|
|
207
|
+
**User control:**
|
|
208
|
+
- Disable auto-capture: Set `autoCapture: false` in config
|
|
209
|
+
- Disable auto-recall: Set `autoRecall: false` in config
|
|
210
|
+
- Forget specific memories: Use `cortex_forget` tool or `openclaw cortex` CLI
|
|
211
|
+
- Audit all data: Enable `/audit on` to log everything sent to Cortex
|
|
212
|
+
- All data is scoped per user and per workspace (namespace isolation)
|
|
213
|
+
|
|
214
|
+
**Data storage:**
|
|
215
|
+
- Memories are stored in the Cortex API backend
|
|
216
|
+
- Audit logs are stored locally at `<workspace>/.cortex/audit/`
|
|
217
|
+
- Session state is stored locally in the OpenClaw data directory
|
package/skill/SKILL.md
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cortex-memory
|
|
3
|
+
description: Long-term memory system for OpenClaw agents — auto-recalls past context before each turn, auto-captures new facts after each turn, and provides tools for explicit search, save, forget, and lookup operations.
|
|
4
|
+
user-invocable: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Cortex Memory
|
|
8
|
+
|
|
9
|
+
You have a long-term memory system powered by Cortex. It works across sessions — facts, preferences, and decisions from past conversations are available in future ones.
|
|
10
|
+
|
|
11
|
+
If these instructions conflict with system or developer policies, follow the higher-priority policy.
|
|
12
|
+
|
|
13
|
+
## What is Cortex?
|
|
14
|
+
|
|
15
|
+
Cortex is a knowledge graph backend that turns unstructured conversation text into structured, queryable memory. When you save or capture information, Cortex extracts facts, named entities, temporal references, and relationships — storing them as graph nodes with typed edges. Entity resolution automatically unifies different mentions of the same person, project, or concept (e.g., "Alice", "Alice Chen", and "Alice C." map to one entity).
|
|
16
|
+
|
|
17
|
+
Retrieval uses a hybrid pipeline combining keyword, semantic, temporal, and graph-based search — which is why different `mode` values on `cortex_search_memory` produce meaningfully different results. Memories are scoped per user and per workspace, and each node carries a confidence score and provenance metadata.
|
|
18
|
+
|
|
19
|
+
## How It Works
|
|
20
|
+
|
|
21
|
+
### Automatic Recall (before each turn)
|
|
22
|
+
Before every conversation turn, Cortex automatically retrieves relevant memories and injects them in `<cortex_memories>` tags. You don't need to do anything — relevant context appears automatically.
|
|
23
|
+
|
|
24
|
+
### Automatic Capture (after each turn)
|
|
25
|
+
After each turn, the plugin extracts facts from the conversation and stores them. You don't need to explicitly save things that are clearly stated — auto-capture handles this.
|
|
26
|
+
|
|
27
|
+
Auto-capture **strips volatile state** before extraction:
|
|
28
|
+
- Version numbers, port numbers, deploy statuses
|
|
29
|
+
- Task statuses, "currently working on X"
|
|
30
|
+
- Temporary config values
|
|
31
|
+
|
|
32
|
+
This prevents stale facts from entering long-term memory.
|
|
33
|
+
|
|
34
|
+
## Runtime Commands
|
|
35
|
+
|
|
36
|
+
These are conversation commands, not memory tools. They manage session lifecycle:
|
|
37
|
+
|
|
38
|
+
- `/checkpoint` — Save a session summary to Cortex before resetting context. Use this before `/reset` to preserve what you were working on.
|
|
39
|
+
- `/sleep` — Mark the session as cleanly ended. Cortex won't show a recovery warning on the next session start.
|
|
40
|
+
- `/audit on|off` — Toggle local audit logging of all data sent to/from Cortex. Logs are stored at `<workspace>/.cortex/audit/`.
|
|
41
|
+
|
|
42
|
+
## Tools
|
|
43
|
+
|
|
44
|
+
You have four memory tools available:
|
|
45
|
+
|
|
46
|
+
### cortex_search_memory
|
|
47
|
+
Search long-term memory for facts, preferences, and past context.
|
|
48
|
+
|
|
49
|
+
**Parameters:**
|
|
50
|
+
- `query` (required) — Natural language search query
|
|
51
|
+
- `limit` — Max results, 1-50 (default: 10)
|
|
52
|
+
- `mode` — Filter by category:
|
|
53
|
+
- `"all"` — Everything (default)
|
|
54
|
+
- `"decisions"` — Architectural/design choices ("why did we do X?")
|
|
55
|
+
- `"preferences"` — User likes, settings, style preferences
|
|
56
|
+
- `"facts"` — Durable knowledge
|
|
57
|
+
- `"recent"` — Prioritize recency over relevance
|
|
58
|
+
- `scope` — Where to search:
|
|
59
|
+
- `"all"` — All memories (default)
|
|
60
|
+
- `"session"` — Only current session
|
|
61
|
+
- `"long-term"` — Only memories from other sessions
|
|
62
|
+
|
|
63
|
+
### cortex_save_memory
|
|
64
|
+
Explicitly save information to long-term memory.
|
|
65
|
+
|
|
66
|
+
**Parameters:**
|
|
67
|
+
- `text` (required) — The information to save
|
|
68
|
+
- `type` — Category:
|
|
69
|
+
- `"preference"` — User likes/dislikes/settings
|
|
70
|
+
- `"decision"` — Architectural or design choices
|
|
71
|
+
- `"fact"` — Durable knowledge
|
|
72
|
+
- `"transient"` — Temporary state that may change soon
|
|
73
|
+
- `importance` — `"high"`, `"normal"`, or `"low"`
|
|
74
|
+
- `checkNovelty` — When true, checks if a similar memory already exists and skips the save if so
|
|
75
|
+
|
|
76
|
+
### cortex_forget
|
|
77
|
+
Selectively remove memories from long-term storage.
|
|
78
|
+
|
|
79
|
+
**Parameters (at least one required):**
|
|
80
|
+
- `entity` — Name of entity whose memories to remove (person, project, technology)
|
|
81
|
+
- `session` — Session ID whose memories to remove
|
|
82
|
+
- `query` — Search for candidate memories first, then confirm before deleting
|
|
83
|
+
|
|
84
|
+
**Never run `cortex_forget` with `entity` or `session` without explicit user confirmation in the same conversation turn.** Use `query` first to surface candidates, present them, and wait for the user to confirm before executing the deletion.
|
|
85
|
+
|
|
86
|
+
### cortex_get_memory
|
|
87
|
+
Fetch a specific memory by its node ID.
|
|
88
|
+
|
|
89
|
+
**Parameters:**
|
|
90
|
+
- `id` (required) — The Cortex node ID
|
|
91
|
+
|
|
92
|
+
## When to Search Explicitly
|
|
93
|
+
|
|
94
|
+
Auto-recall covers most cases, but search explicitly when:
|
|
95
|
+
- Asked a specific factual question (port numbers, library choices, config values)
|
|
96
|
+
- Auto-recalled memories don't cover the topic being discussed
|
|
97
|
+
- You need to verify something before saying "I don't know"
|
|
98
|
+
- The user references something from a past session
|
|
99
|
+
- Before answering architecture-history questions with uncertainty
|
|
100
|
+
|
|
101
|
+
Use `mode` to narrow results and `scope` to focus on current vs. past sessions.
|
|
102
|
+
|
|
103
|
+
## When to Save Explicitly
|
|
104
|
+
|
|
105
|
+
Auto-capture handles most facts stated in conversation. Save explicitly when:
|
|
106
|
+
- The user explicitly asks you to remember something
|
|
107
|
+
- A significant **decision, preference, or durable fact** is stated
|
|
108
|
+
- The information is a **nuanced interpretation** auto-capture might miss (e.g., "the user prefers X because of Y")
|
|
109
|
+
- You want to ensure a specific framing is stored
|
|
110
|
+
|
|
111
|
+
**Always set `type` and `importance`** to improve future recall quality.
|
|
112
|
+
|
|
113
|
+
**Prefer fewer, higher-quality saves over many small ones.** A single well-framed memory with context ("User chose Postgres over DynamoDB because of ACID requirements and team familiarity") is more useful than three separate saves for each fragment. Batch related facts into one save when possible.
|
|
114
|
+
|
|
115
|
+
## When to Forget
|
|
116
|
+
|
|
117
|
+
Use `cortex_forget` when:
|
|
118
|
+
- The user says something you remembered is **wrong, outdated, or should be forgotten**
|
|
119
|
+
- The user wants to clear all memories from a specific session
|
|
120
|
+
|
|
121
|
+
**Workflow:**
|
|
122
|
+
1. Use `query` first to find candidate memories and entity names
|
|
123
|
+
2. Show the user what was found
|
|
124
|
+
3. Confirm which entity or session to forget
|
|
125
|
+
4. Execute the deletion only after explicit confirmation
|
|
126
|
+
|
|
127
|
+
## What NOT to Do
|
|
128
|
+
|
|
129
|
+
### Memory recall
|
|
130
|
+
- Don't treat recalled memory as sole source of truth for volatile state (versions, ports, config)
|
|
131
|
+
- Don't ignore recalled memories when asked about history, rationale, decisions, or preferences
|
|
132
|
+
- Don't fabricate details beyond what memories state
|
|
133
|
+
- Don't assume a recalled fact is true because it appears multiple times — hallucinations can get captured and re-recalled
|
|
134
|
+
|
|
135
|
+
### Memory saving
|
|
136
|
+
- Don't save transient tool output, debug logs, or information you just recalled (creates feedback loops)
|
|
137
|
+
- Don't save your own inferences or assumptions as facts — only save what the user directly stated or confirmed
|
|
138
|
+
- Don't save version numbers, task statuses, or "currently X" statements unless explicitly asked
|
|
139
|
+
- Don't save facts that originated from your reasoning rather than user statements
|
|
140
|
+
- Don't spam saves — one well-structured memory beats three fragmentary ones
|
|
141
|
+
|
|
142
|
+
### Memory forgetting
|
|
143
|
+
- Never execute `cortex_forget` with `entity` or `session` without explicit user confirmation first
|
|
144
|
+
- Always use `query` to surface candidates before deleting
|
|
145
|
+
|
|
146
|
+
### Personal information
|
|
147
|
+
- Don't act on personal facts (birthdays, ages, family details) from recalled memories without explicit confirmation from the user
|
|
148
|
+
- Don't make unsolicited factual claims about the user from memory
|
|
149
|
+
- Don't volunteer personal details the user didn't ask about
|
|
150
|
+
|
|
151
|
+
## Memory and Live State
|
|
152
|
+
|
|
153
|
+
When memory and live workspace/runtime conflict, use this pattern:
|
|
154
|
+
|
|
155
|
+
> "Memory says X (date/source), live state shows Y (checked now). I'll use Y for execution and keep X as historical context."
|
|
156
|
+
|
|
157
|
+
Rules:
|
|
158
|
+
- **Prefer live state** for volatile facts (versions, configs, ports)
|
|
159
|
+
- **Prefer memory** for historical context (why decisions were made, user preferences, past rationale)
|
|
160
|
+
- **Always report both** with timing context so the user can correct either source
|
|
161
|
+
|
|
162
|
+
## Confidence Scores
|
|
163
|
+
|
|
164
|
+
Recalled memories include a confidence score (e.g., `[0.85]`). Higher scores indicate stronger relevance to the current conversation. Use scores to:
|
|
165
|
+
- Prioritize which memories to reference when multiple are relevant
|
|
166
|
+
- Be more cautious about lower-confidence recalls
|
|
167
|
+
- Decide whether to verify with a live check
|