@ubundi/openclaw-cortex 0.7.2 → 1.0.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 +24 -4
- package/dist/adapters/cortex/client.d.ts +1 -7
- package/dist/adapters/cortex/client.d.ts.map +1 -1
- package/dist/adapters/cortex/client.js +2 -4
- package/dist/adapters/cortex/client.js.map +1 -1
- package/dist/core/config/schema.d.ts +61 -0
- package/dist/core/config/schema.d.ts.map +1 -0
- package/dist/core/config/schema.js +39 -0
- package/dist/core/config/schema.js.map +1 -0
- package/dist/core/plugin.d.ts +61 -0
- package/dist/core/plugin.d.ts.map +1 -0
- package/dist/core/plugin.js +147 -0
- package/dist/core/plugin.js.map +1 -0
- package/dist/cortex/client.d.ts +142 -0
- package/dist/cortex/client.d.ts.map +1 -0
- package/dist/cortex/client.js +145 -0
- package/dist/cortex/client.js.map +1 -0
- package/dist/features/capture/handler.d.ts +1 -1
- package/dist/features/capture/handler.d.ts.map +1 -1
- package/dist/features/capture/handler.js +6 -30
- package/dist/features/capture/handler.js.map +1 -1
- package/dist/features/reflect/service.d.ts +19 -0
- package/dist/features/reflect/service.d.ts.map +1 -0
- package/dist/features/reflect/service.js +38 -0
- package/dist/features/reflect/service.js.map +1 -0
- package/dist/internal/identity/api-key.js +1 -1
- package/dist/plugin/config/schema.d.ts +0 -5
- package/dist/plugin/config/schema.d.ts.map +1 -1
- package/dist/plugin/config/schema.js +1 -2
- package/dist/plugin/config/schema.js.map +1 -1
- package/dist/plugin/index.d.ts +0 -2
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +9 -25
- package/dist/plugin/index.js.map +1 -1
- package/dist/shared/fs/safe-path.d.ts +8 -0
- package/dist/shared/fs/safe-path.d.ts.map +1 -0
- package/dist/shared/fs/safe-path.js +32 -0
- package/dist/shared/fs/safe-path.js.map +1 -0
- package/dist/shared/metrics/latency-metrics.d.ts +19 -0
- package/dist/shared/metrics/latency-metrics.d.ts.map +1 -0
- package/dist/shared/metrics/latency-metrics.js +45 -0
- package/dist/shared/metrics/latency-metrics.js.map +1 -0
- package/dist/shared/queue/retry-queue.d.ts +31 -0
- package/dist/shared/queue/retry-queue.d.ts.map +1 -0
- package/dist/shared/queue/retry-queue.js +115 -0
- package/dist/shared/queue/retry-queue.js.map +1 -0
- package/dist/shared/transcript/cleaner.d.ts +24 -0
- package/dist/shared/transcript/cleaner.d.ts.map +1 -0
- package/dist/shared/transcript/cleaner.js +96 -0
- package/dist/shared/transcript/cleaner.js.map +1 -0
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,8 +18,6 @@
|
|
|
18
18
|
- **Gateway RPC** — `cortex.status` method for programmatic health and metrics access
|
|
19
19
|
- **Resilience** — retry queue with exponential backoff, cold-start detection, latency metrics
|
|
20
20
|
|
|
21
|
-
> **Cortex availability:** Cortex is currently in early testing. The plugin ships with access built in — no API key or account required.
|
|
22
|
-
|
|
23
21
|
## Prerequisites
|
|
24
22
|
|
|
25
23
|
- Node.js `>=20`
|
|
@@ -153,6 +151,8 @@ Before every agent turn, the plugin queries Cortex's `/v1/recall` endpoint and p
|
|
|
153
151
|
|
|
154
152
|
If the request exceeds `recallTimeoutMs`, the agent proceeds without memories (silent degradation). After 3 consecutive failures, recall is disabled for 30 seconds (cold-start detection) to avoid hammering a cold ECS task.
|
|
155
153
|
|
|
154
|
+

|
|
155
|
+
|
|
156
156
|
### Auto-Capture
|
|
157
157
|
|
|
158
158
|
After each agent turn completes, the plugin flattens the turn's new messages into a `role: content` transcript and submits it to Cortex's `/v1/jobs/ingest` endpoint (async job queue). The job returns immediately and processes in the background — this avoids Lambda proxy timeouts that occur with synchronous ingestion. A watermark tracks how much of the conversation has already been ingested, so each message is sent exactly once — no overlap between turns. Tool call results (`role: "tool"`) are included alongside `user` and `assistant` messages, since tool output is where the substantive work of an agentic turn lives. A heuristic skips trivial exchanges (short messages, turns without a substantive response).
|
|
@@ -195,7 +195,7 @@ The `cortex.status` RPC method exposes plugin health and metrics programmaticall
|
|
|
195
195
|
|
|
196
196
|
```json
|
|
197
197
|
{
|
|
198
|
-
"version": "0.
|
|
198
|
+
"version": "1.0.0",
|
|
199
199
|
"healthy": true,
|
|
200
200
|
"knowledgeState": { "hasMemories": true, "totalSessions": 42, "maturity": "mature", "tier": 3 },
|
|
201
201
|
"recallMetrics": { "count": 120, "p50": 95, "p95": 280, "p99": 450 },
|
|
@@ -216,6 +216,26 @@ Use this to tune `recallTimeoutMs` for your deployment.
|
|
|
216
216
|
|
|
217
217
|

|
|
218
218
|
|
|
219
|
+
## Privacy & Data
|
|
220
|
+
|
|
221
|
+
This plugin sends data to the Cortex API to provide memory functionality. Here's what leaves your machine:
|
|
222
|
+
|
|
223
|
+
| Data | When | How to disable |
|
|
224
|
+
|------|------|----------------|
|
|
225
|
+
| Conversation messages (user + assistant) | After each agent turn | `autoCapture: false` |
|
|
226
|
+
| Your current prompt | Before each agent turn | `autoRecall: false` |
|
|
227
|
+
| MEMORY.md changes (added lines only) | On file save | `fileSync: false` |
|
|
228
|
+
| Daily log files (`memory/*.md`) | On file save | `fileSync: false` |
|
|
229
|
+
| Session transcripts (`sessions/*.jsonl`) | On file save | `transcriptSync: false` |
|
|
230
|
+
|
|
231
|
+
Additionally, a randomly generated installation ID (`userId`) and a workspace namespace hash are sent with every request to scope your data. No personally identifiable information is collected.
|
|
232
|
+
|
|
233
|
+
Before transmission, the plugin strips system prompts, tool call JSON, and base64-encoded images from transcripts. Prior recalled memories are also stripped from captured messages to prevent feedback loops.
|
|
234
|
+
|
|
235
|
+
All data is transmitted over HTTPS. Each installation's data is isolated server-side by its unique `userId` — no other installation can access your memories.
|
|
236
|
+
|
|
237
|
+
To disable all network activity, set `autoRecall: false`, `autoCapture: false`, `fileSync: false`, and `transcriptSync: false` in your config.
|
|
238
|
+
|
|
219
239
|
## Compatibility with SKILL.md
|
|
220
240
|
|
|
221
241
|
If both this plugin and the Cortex SKILL.md are active, the `<cortex_memories>` tag in the prepended context signals to the skill that recall has already happened — the agent can skip manual `curl` calls.
|
|
@@ -231,7 +251,7 @@ If both this plugin and the Cortex SKILL.md are active, the `<cortex_memories>`
|
|
|
231
251
|
```bash
|
|
232
252
|
npm install
|
|
233
253
|
npm run build # TypeScript → dist/
|
|
234
|
-
npm test # Run vitest (
|
|
254
|
+
npm test # Run vitest (167 tests)
|
|
235
255
|
npm run test:watch # Watch mode
|
|
236
256
|
npm run test:integration # Live Cortex API tests (uses the baked-in API key)
|
|
237
257
|
```
|
|
@@ -87,10 +87,6 @@ export interface RememberResponse {
|
|
|
87
87
|
memories_created: number;
|
|
88
88
|
entities_found: string[];
|
|
89
89
|
facts: string[];
|
|
90
|
-
emotions: string[];
|
|
91
|
-
values: string[];
|
|
92
|
-
beliefs: string[];
|
|
93
|
-
insights: string[];
|
|
94
90
|
}
|
|
95
91
|
export interface ForgetResponse {
|
|
96
92
|
memories_removed: number;
|
|
@@ -129,7 +125,7 @@ export declare class CortexClient {
|
|
|
129
125
|
result?: IngestResponse;
|
|
130
126
|
error?: string;
|
|
131
127
|
}>;
|
|
132
|
-
submitIngest(text: string, sessionId?: string, referenceDate?: string
|
|
128
|
+
submitIngest(text: string, sessionId?: string, referenceDate?: string): Promise<JobSubmitResponse>;
|
|
133
129
|
submitIngestConversation(messages: ConversationMessage[], sessionId?: string, referenceDate?: string): Promise<JobSubmitResponse>;
|
|
134
130
|
batchIngest(items: BatchIngestItem[], timeoutMs?: number): Promise<BatchIngestResponse>;
|
|
135
131
|
reflect(sessionId?: string, timeoutMs?: number): Promise<ReflectResponse>;
|
|
@@ -141,8 +137,6 @@ export declare class CortexClient {
|
|
|
141
137
|
sessionFilter?: string;
|
|
142
138
|
userId?: string;
|
|
143
139
|
queryType?: QueryType;
|
|
144
|
-
minConfidence?: number;
|
|
145
|
-
includeUngrounded?: boolean;
|
|
146
140
|
}): Promise<RecallResponse>;
|
|
147
141
|
forgetSession(sessionId: string, timeoutMs?: number): Promise<ForgetResponse>;
|
|
148
142
|
forgetEntity(entityName: string, timeoutMs?: number): Promise<ForgetResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/adapters/cortex/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/adapters/cortex/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,8 +101,8 @@ export class CortexClient {
|
|
|
101
101
|
clearTimeout(timeout);
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
|
-
async submitIngest(text, sessionId, referenceDate
|
|
105
|
-
return this.fetchJsonWithTimeout(`${this.baseUrl}/v1/jobs/ingest`, { text, session_id: sessionId, reference_date: referenceDate ?? null
|
|
104
|
+
async submitIngest(text, sessionId, referenceDate) {
|
|
105
|
+
return this.fetchJsonWithTimeout(`${this.baseUrl}/v1/jobs/ingest`, { text, session_id: sessionId, reference_date: referenceDate ?? null }, DEFAULT_SUBMIT_TIMEOUT_MS, "jobs/ingest");
|
|
106
106
|
}
|
|
107
107
|
async submitIngestConversation(messages, sessionId, referenceDate) {
|
|
108
108
|
return this.fetchJsonWithTimeout(`${this.baseUrl}/v1/jobs/ingest/conversation`, { messages, session_id: sessionId, reference_date: referenceDate ?? null }, DEFAULT_SUBMIT_TIMEOUT_MS, "jobs/ingest/conversation");
|
|
@@ -138,8 +138,6 @@ export class CortexClient {
|
|
|
138
138
|
session_filter: options?.sessionFilter ?? undefined,
|
|
139
139
|
user_id: options?.userId ?? undefined,
|
|
140
140
|
query_type: options?.queryType ?? undefined,
|
|
141
|
-
min_confidence: options?.minConfidence ?? undefined,
|
|
142
|
-
include_ungrounded: options?.includeUngrounded ?? undefined,
|
|
143
141
|
}, timeoutMs, "recall");
|
|
144
142
|
}
|
|
145
143
|
async forgetSession(sessionId, timeoutMs = DEFAULT_RECALL_TIMEOUT_MS) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/adapters/cortex/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/adapters/cortex/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const CortexConfigSchema: z.ZodObject<{
|
|
3
|
+
apiKey: z.ZodString;
|
|
4
|
+
baseUrl: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
|
|
5
|
+
autoRecall: z.ZodDefault<z.ZodBoolean>;
|
|
6
|
+
autoCapture: z.ZodDefault<z.ZodBoolean>;
|
|
7
|
+
recallLimit: z.ZodDefault<z.ZodNumber>;
|
|
8
|
+
recallTimeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
9
|
+
fileSync: z.ZodDefault<z.ZodBoolean>;
|
|
10
|
+
transcriptSync: z.ZodDefault<z.ZodBoolean>;
|
|
11
|
+
namespace: z.ZodDefault<z.ZodString>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
apiKey: string;
|
|
14
|
+
baseUrl: string;
|
|
15
|
+
autoRecall: boolean;
|
|
16
|
+
autoCapture: boolean;
|
|
17
|
+
recallLimit: number;
|
|
18
|
+
recallTimeoutMs: number;
|
|
19
|
+
fileSync: boolean;
|
|
20
|
+
transcriptSync: boolean;
|
|
21
|
+
namespace: string;
|
|
22
|
+
}, {
|
|
23
|
+
apiKey: string;
|
|
24
|
+
baseUrl?: string | undefined;
|
|
25
|
+
autoRecall?: boolean | undefined;
|
|
26
|
+
autoCapture?: boolean | undefined;
|
|
27
|
+
recallLimit?: number | undefined;
|
|
28
|
+
recallTimeoutMs?: number | undefined;
|
|
29
|
+
fileSync?: boolean | undefined;
|
|
30
|
+
transcriptSync?: boolean | undefined;
|
|
31
|
+
namespace?: string | undefined;
|
|
32
|
+
}>;
|
|
33
|
+
export type CortexConfig = z.infer<typeof CortexConfigSchema>;
|
|
34
|
+
/**
|
|
35
|
+
* Config schema compatible with OpenClaw's pluginConfigSchema interface.
|
|
36
|
+
* OpenClaw calls safeParse() during plugin registration.
|
|
37
|
+
*/
|
|
38
|
+
export declare const configSchema: {
|
|
39
|
+
safeParse(value: unknown): z.SafeParseReturnType<{
|
|
40
|
+
apiKey: string;
|
|
41
|
+
baseUrl?: string | undefined;
|
|
42
|
+
autoRecall?: boolean | undefined;
|
|
43
|
+
autoCapture?: boolean | undefined;
|
|
44
|
+
recallLimit?: number | undefined;
|
|
45
|
+
recallTimeoutMs?: number | undefined;
|
|
46
|
+
fileSync?: boolean | undefined;
|
|
47
|
+
transcriptSync?: boolean | undefined;
|
|
48
|
+
namespace?: string | undefined;
|
|
49
|
+
}, {
|
|
50
|
+
apiKey: string;
|
|
51
|
+
baseUrl: string;
|
|
52
|
+
autoRecall: boolean;
|
|
53
|
+
autoCapture: boolean;
|
|
54
|
+
recallLimit: number;
|
|
55
|
+
recallTimeoutMs: number;
|
|
56
|
+
fileSync: boolean;
|
|
57
|
+
transcriptSync: boolean;
|
|
58
|
+
namespace: string;
|
|
59
|
+
}>;
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/core/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwBxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,YAAY;qBACN,OAAO;;;;;;;;;;;;;;;;;;;;;CAGzB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Validates that a URL uses HTTPS, with an exception for localhost in development.
|
|
4
|
+
*/
|
|
5
|
+
const httpsUrl = z
|
|
6
|
+
.string()
|
|
7
|
+
.url("baseUrl must be a valid URL")
|
|
8
|
+
.refine((url) => {
|
|
9
|
+
const parsed = new URL(url);
|
|
10
|
+
if (parsed.protocol === "https:")
|
|
11
|
+
return true;
|
|
12
|
+
// Allow http only for localhost/127.0.0.1 (development)
|
|
13
|
+
if (parsed.protocol === "http:" &&
|
|
14
|
+
(parsed.hostname === "localhost" || parsed.hostname === "127.0.0.1")) {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
return false;
|
|
18
|
+
}, { message: "baseUrl must use HTTPS (http allowed only for localhost)" });
|
|
19
|
+
export const CortexConfigSchema = z.object({
|
|
20
|
+
apiKey: z.string().min(1, "apiKey is required"),
|
|
21
|
+
baseUrl: httpsUrl.default("https://q5p64iw9c9.execute-api.us-east-1.amazonaws.com/prod"),
|
|
22
|
+
autoRecall: z.boolean().default(true),
|
|
23
|
+
autoCapture: z.boolean().default(true),
|
|
24
|
+
recallLimit: z.number().int().min(1).max(50).default(10),
|
|
25
|
+
recallTimeoutMs: z.number().int().min(100).max(10000).default(2000),
|
|
26
|
+
fileSync: z.boolean().default(true),
|
|
27
|
+
transcriptSync: z.boolean().default(true),
|
|
28
|
+
namespace: z.string().min(1).default("openclaw"),
|
|
29
|
+
});
|
|
30
|
+
/**
|
|
31
|
+
* Config schema compatible with OpenClaw's pluginConfigSchema interface.
|
|
32
|
+
* OpenClaw calls safeParse() during plugin registration.
|
|
33
|
+
*/
|
|
34
|
+
export const configSchema = {
|
|
35
|
+
safeParse(value) {
|
|
36
|
+
return CortexConfigSchema.safeParse(value);
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,QAAQ,GAAG,CAAC;KACf,MAAM,EAAE;KACR,GAAG,CAAC,6BAA6B,CAAC;KAClC,MAAM,CACL,CAAC,GAAG,EAAE,EAAE;IACN,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC9C,wDAAwD;IACxD,IACE,MAAM,CAAC,QAAQ,KAAK,OAAO;QAC3B,CAAC,MAAM,CAAC,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW,CAAC,EACpE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,EACD,EAAE,OAAO,EAAE,0DAA0D,EAAE,CACxE,CAAC;AAEJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,CAAC;IAC/C,OAAO,EAAE,QAAQ,CAAC,OAAO,CACvB,6DAA6D,CAC9D;IACD,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACnE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnC,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;CACjD,CAAC,CAAC;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS,CAAC,KAAc;QACtB,OAAO,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export interface KnowledgeState {
|
|
2
|
+
hasMemories: boolean;
|
|
3
|
+
totalSessions: number;
|
|
4
|
+
maturity: "cold" | "warming" | "mature" | "unknown";
|
|
5
|
+
lastChecked: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function deriveTier(totalSessions: number): 1 | 2 | 3;
|
|
8
|
+
interface PluginApi {
|
|
9
|
+
pluginConfig?: Record<string, unknown>;
|
|
10
|
+
logger: {
|
|
11
|
+
debug?(...args: unknown[]): void;
|
|
12
|
+
info(...args: unknown[]): void;
|
|
13
|
+
warn(...args: unknown[]): void;
|
|
14
|
+
error(...args: unknown[]): void;
|
|
15
|
+
};
|
|
16
|
+
on(hookName: string, handler: (...args: any[]) => any, opts?: {
|
|
17
|
+
priority?: number;
|
|
18
|
+
}): void;
|
|
19
|
+
registerService(service: {
|
|
20
|
+
id: string;
|
|
21
|
+
start?: (ctx: {
|
|
22
|
+
workspaceDir?: string;
|
|
23
|
+
}) => void;
|
|
24
|
+
stop?: (ctx: {
|
|
25
|
+
workspaceDir?: string;
|
|
26
|
+
}) => void;
|
|
27
|
+
}): void;
|
|
28
|
+
}
|
|
29
|
+
declare const plugin: {
|
|
30
|
+
id: string;
|
|
31
|
+
name: string;
|
|
32
|
+
description: string;
|
|
33
|
+
version: string;
|
|
34
|
+
kind: "memory";
|
|
35
|
+
configSchema: {
|
|
36
|
+
safeParse(value: unknown): import("zod").SafeParseReturnType<{
|
|
37
|
+
apiKey: string;
|
|
38
|
+
baseUrl?: string | undefined;
|
|
39
|
+
autoRecall?: boolean | undefined;
|
|
40
|
+
autoCapture?: boolean | undefined;
|
|
41
|
+
recallLimit?: number | undefined;
|
|
42
|
+
recallTimeoutMs?: number | undefined;
|
|
43
|
+
fileSync?: boolean | undefined;
|
|
44
|
+
transcriptSync?: boolean | undefined;
|
|
45
|
+
namespace?: string | undefined;
|
|
46
|
+
}, {
|
|
47
|
+
apiKey: string;
|
|
48
|
+
baseUrl: string;
|
|
49
|
+
autoRecall: boolean;
|
|
50
|
+
autoCapture: boolean;
|
|
51
|
+
recallLimit: number;
|
|
52
|
+
recallTimeoutMs: number;
|
|
53
|
+
fileSync: boolean;
|
|
54
|
+
transcriptSync: boolean;
|
|
55
|
+
namespace: string;
|
|
56
|
+
}>;
|
|
57
|
+
};
|
|
58
|
+
register(api: PluginApi): void;
|
|
59
|
+
};
|
|
60
|
+
export default plugin;
|
|
61
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/core/plugin.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAI3D;AAaD,UAAU,SAAS;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,MAAM,EAAE;QACN,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC/B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;KACjC,CAAC;IACF,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3F,eAAe,CAAC,OAAO,EAAE;QACvB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE;YAAE,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;QACjD,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;YAAE,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;KACjD,GAAG,IAAI,CAAC;CACV;AAsDD,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBASI,SAAS;CAiGxB,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { basename } from "node:path";
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
import { version } from "../../package.json" with { type: "json" };
|
|
4
|
+
import { CortexConfigSchema, configSchema } from "./config/schema.js";
|
|
5
|
+
import { CortexClient } from "../cortex/client.js";
|
|
6
|
+
import { createRecallHandler } from "../features/recall/handler.js";
|
|
7
|
+
import { createCaptureHandler } from "../features/capture/handler.js";
|
|
8
|
+
import { FileSyncWatcher } from "../features/sync/watcher.js";
|
|
9
|
+
import { RetryQueue } from "../shared/queue/retry-queue.js";
|
|
10
|
+
import { LatencyMetrics } from "../shared/metrics/latency-metrics.js";
|
|
11
|
+
export function deriveTier(totalSessions) {
|
|
12
|
+
if (totalSessions >= 30)
|
|
13
|
+
return 3;
|
|
14
|
+
if (totalSessions >= 15)
|
|
15
|
+
return 2;
|
|
16
|
+
return 1;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Derives a workspace-scoped namespace from the workspace directory path.
|
|
20
|
+
* Uses the directory basename plus a short hash of the full path to avoid collisions
|
|
21
|
+
* when multiple workspaces share the same basename.
|
|
22
|
+
*/
|
|
23
|
+
function deriveNamespace(workspaceDir) {
|
|
24
|
+
const name = basename(workspaceDir).replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
25
|
+
const hash = createHash("sha256").update(workspaceDir).digest("hex").slice(0, 8);
|
|
26
|
+
return `${name}-${hash}`;
|
|
27
|
+
}
|
|
28
|
+
function resolveEnvVars(value) {
|
|
29
|
+
return value.replace(/\$\{([^}]+)\}/g, (_, envVar) => process.env[envVar] ?? "");
|
|
30
|
+
}
|
|
31
|
+
function resolveConfigEnvVars(raw) {
|
|
32
|
+
const resolved = {};
|
|
33
|
+
for (const [key, value] of Object.entries(raw)) {
|
|
34
|
+
resolved[key] = typeof value === "string" ? resolveEnvVars(value) : value;
|
|
35
|
+
}
|
|
36
|
+
return resolved;
|
|
37
|
+
}
|
|
38
|
+
async function bootstrapClient(client, logger, knowledgeState) {
|
|
39
|
+
try {
|
|
40
|
+
const healthy = await client.healthCheck();
|
|
41
|
+
if (!healthy) {
|
|
42
|
+
logger.warn("Cortex health check failed — API may be unreachable");
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
logger.info("Cortex health check passed");
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
logger.warn("Cortex health check failed — API may be unreachable");
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
const knowledge = await client.knowledge();
|
|
53
|
+
knowledgeState.hasMemories = knowledge.total_memories > 0;
|
|
54
|
+
knowledgeState.totalSessions = knowledge.total_sessions;
|
|
55
|
+
knowledgeState.maturity = knowledge.maturity;
|
|
56
|
+
knowledgeState.lastChecked = Date.now();
|
|
57
|
+
const tier = deriveTier(knowledge.total_sessions);
|
|
58
|
+
logger.info(`Cortex knowledge: maturity=${knowledge.maturity}, sessions=${knowledge.total_sessions}, memories=${knowledge.total_memories}, tier=${tier}`);
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
logger.debug?.("Cortex knowledge check skipped — endpoint unavailable");
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const plugin = {
|
|
65
|
+
id: "cortex-memory",
|
|
66
|
+
name: "Cortex Memory",
|
|
67
|
+
description: "Long-term memory powered by Cortex — Auto-Recall, Auto-Capture, and background file sync",
|
|
68
|
+
version,
|
|
69
|
+
kind: "memory",
|
|
70
|
+
configSchema,
|
|
71
|
+
register(api) {
|
|
72
|
+
const raw = api.pluginConfig ?? {};
|
|
73
|
+
const resolved = resolveConfigEnvVars(raw);
|
|
74
|
+
const parsed = CortexConfigSchema.safeParse(resolved);
|
|
75
|
+
if (!parsed.success) {
|
|
76
|
+
api.logger.error("Cortex plugin config invalid:", parsed.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join("; "));
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const config = parsed.data;
|
|
80
|
+
const client = new CortexClient(config.baseUrl, config.apiKey);
|
|
81
|
+
const retryQueue = new RetryQueue(api.logger);
|
|
82
|
+
const recallMetrics = new LatencyMetrics();
|
|
83
|
+
const knowledgeState = {
|
|
84
|
+
hasMemories: false,
|
|
85
|
+
totalSessions: 0,
|
|
86
|
+
maturity: "unknown",
|
|
87
|
+
lastChecked: 0,
|
|
88
|
+
};
|
|
89
|
+
// Whether the user explicitly set a namespace vs. relying on default
|
|
90
|
+
const userSetNamespace = raw.namespace != null;
|
|
91
|
+
let namespace = config.namespace;
|
|
92
|
+
let started = false;
|
|
93
|
+
let watcher = null;
|
|
94
|
+
api.logger.info(`Cortex plugin registered (namespace=${namespace})`);
|
|
95
|
+
// Async health check + knowledge probe — validate connection
|
|
96
|
+
void bootstrapClient(client, api.logger, knowledgeState);
|
|
97
|
+
// Auto-Recall: inject relevant memories before every agent turn
|
|
98
|
+
api.on("before_agent_start", createRecallHandler(client, config, api.logger, recallMetrics, knowledgeState));
|
|
99
|
+
// Auto-Capture: extract facts after agent responses
|
|
100
|
+
api.on("agent_end", createCaptureHandler(client, config, api.logger, retryQueue, knowledgeState));
|
|
101
|
+
// Services: retry queue, file sync
|
|
102
|
+
api.registerService({
|
|
103
|
+
id: "cortex-services",
|
|
104
|
+
start(ctx) {
|
|
105
|
+
if (started) {
|
|
106
|
+
api.logger.debug?.("Cortex services already started, skipping");
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
started = true;
|
|
110
|
+
retryQueue.start();
|
|
111
|
+
// Derive workspace-scoped namespace when user didn't set one explicitly
|
|
112
|
+
if (!userSetNamespace && ctx.workspaceDir) {
|
|
113
|
+
namespace = deriveNamespace(ctx.workspaceDir);
|
|
114
|
+
api.logger.info(`Cortex namespace auto-derived from workspace: ${namespace}`);
|
|
115
|
+
}
|
|
116
|
+
// File sync (MEMORY.md, daily logs, transcripts)
|
|
117
|
+
if (config.fileSync) {
|
|
118
|
+
const workspaceDir = ctx.workspaceDir;
|
|
119
|
+
if (!workspaceDir) {
|
|
120
|
+
api.logger.warn("Cortex file sync: no workspaceDir, skipping");
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
const newWatcher = new FileSyncWatcher(workspaceDir, client, namespace, api.logger, retryQueue, { transcripts: config.transcriptSync });
|
|
124
|
+
newWatcher.start();
|
|
125
|
+
watcher = newWatcher;
|
|
126
|
+
api.logger.info("Cortex file sync started");
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
api.logger.info("Cortex services started");
|
|
130
|
+
},
|
|
131
|
+
stop() {
|
|
132
|
+
if (!started)
|
|
133
|
+
return;
|
|
134
|
+
started = false;
|
|
135
|
+
watcher?.stop();
|
|
136
|
+
watcher = null;
|
|
137
|
+
retryQueue.stop();
|
|
138
|
+
const summary = recallMetrics.summary();
|
|
139
|
+
if (summary.count > 0) {
|
|
140
|
+
api.logger.info(`Cortex recall latency (${summary.count} samples): p50=${summary.p50}ms p95=${summary.p95}ms p99=${summary.p99}ms`);
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
export default plugin;
|
|
147
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/core/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
export type NodeType = "FACT" | "ENTITY" | "EMOTION" | "INSIGHT" | "VALUE" | "BELIEF" | "LIFECONTEXT" | "SESSION" | "COMMUNITY";
|
|
2
|
+
export interface RetrieveResultMetadata {
|
|
3
|
+
speaker?: string;
|
|
4
|
+
fact_type?: string;
|
|
5
|
+
entity_refs?: string[];
|
|
6
|
+
occurred_at?: string | null;
|
|
7
|
+
[key: string]: unknown;
|
|
8
|
+
}
|
|
9
|
+
export interface RetrieveResult {
|
|
10
|
+
node_id: string;
|
|
11
|
+
type: NodeType;
|
|
12
|
+
content: string;
|
|
13
|
+
score: number;
|
|
14
|
+
source?: string;
|
|
15
|
+
confidence?: number;
|
|
16
|
+
metadata?: RetrieveResultMetadata;
|
|
17
|
+
}
|
|
18
|
+
export interface RetrieveResponse {
|
|
19
|
+
results: RetrieveResult[];
|
|
20
|
+
}
|
|
21
|
+
export interface IngestFact {
|
|
22
|
+
core: string;
|
|
23
|
+
fact_type: string;
|
|
24
|
+
occurred_at: string | null;
|
|
25
|
+
entity_refs: string[];
|
|
26
|
+
speaker: string;
|
|
27
|
+
}
|
|
28
|
+
export interface IngestEntity {
|
|
29
|
+
name: string;
|
|
30
|
+
type: string;
|
|
31
|
+
aliases: string[];
|
|
32
|
+
}
|
|
33
|
+
export interface IngestResponse {
|
|
34
|
+
nodes_created: number;
|
|
35
|
+
edges_created: number;
|
|
36
|
+
facts: IngestFact[];
|
|
37
|
+
entities: IngestEntity[];
|
|
38
|
+
}
|
|
39
|
+
export interface ReflectResponse {
|
|
40
|
+
nodes_created: number;
|
|
41
|
+
edges_created: number;
|
|
42
|
+
entities_processed: number;
|
|
43
|
+
entities_skipped: number;
|
|
44
|
+
}
|
|
45
|
+
export interface WarmupResponse {
|
|
46
|
+
tenant_id: string;
|
|
47
|
+
already_warm: boolean;
|
|
48
|
+
}
|
|
49
|
+
export interface ConversationMessage {
|
|
50
|
+
role: string;
|
|
51
|
+
content: string;
|
|
52
|
+
}
|
|
53
|
+
export type QueryType = "factual" | "emotional" | "combined";
|
|
54
|
+
export interface BatchIngestItem {
|
|
55
|
+
text: string;
|
|
56
|
+
session_id?: string;
|
|
57
|
+
reference_date?: string;
|
|
58
|
+
}
|
|
59
|
+
export interface BatchIngestResponse {
|
|
60
|
+
results: IngestResponse[];
|
|
61
|
+
total_nodes_created: number;
|
|
62
|
+
total_edges_created: number;
|
|
63
|
+
failed_count: number;
|
|
64
|
+
errors: string[];
|
|
65
|
+
}
|
|
66
|
+
export interface HealthCheckResponse {
|
|
67
|
+
status: string;
|
|
68
|
+
}
|
|
69
|
+
export interface JobSubmitResponse {
|
|
70
|
+
job_id: string;
|
|
71
|
+
status: string;
|
|
72
|
+
}
|
|
73
|
+
export interface RecallMemory {
|
|
74
|
+
content: string;
|
|
75
|
+
confidence: number;
|
|
76
|
+
when: string | null;
|
|
77
|
+
session_id: string | null;
|
|
78
|
+
entities: string[];
|
|
79
|
+
}
|
|
80
|
+
export interface RecallResponse {
|
|
81
|
+
memories: RecallMemory[];
|
|
82
|
+
}
|
|
83
|
+
export interface RememberResponse {
|
|
84
|
+
session_id: string | null;
|
|
85
|
+
memories_created: number;
|
|
86
|
+
entities_found: string[];
|
|
87
|
+
facts: string[];
|
|
88
|
+
}
|
|
89
|
+
export interface ForgetResponse {
|
|
90
|
+
memories_removed: number;
|
|
91
|
+
}
|
|
92
|
+
export interface KnowledgeEntity {
|
|
93
|
+
name: string;
|
|
94
|
+
memory_count: number;
|
|
95
|
+
last_seen: string;
|
|
96
|
+
}
|
|
97
|
+
export interface KnowledgeResponse {
|
|
98
|
+
total_memories: number;
|
|
99
|
+
total_sessions: number;
|
|
100
|
+
maturity: "cold" | "warming" | "mature";
|
|
101
|
+
entities: KnowledgeEntity[];
|
|
102
|
+
}
|
|
103
|
+
export interface StatsResponse {
|
|
104
|
+
pipeline_tier: 1 | 2 | 3;
|
|
105
|
+
pipeline_maturity: "cold" | "warming" | "mature";
|
|
106
|
+
[key: string]: unknown;
|
|
107
|
+
}
|
|
108
|
+
export declare class CortexClient {
|
|
109
|
+
private baseUrl;
|
|
110
|
+
private apiKey;
|
|
111
|
+
constructor(baseUrl: string, apiKey: string);
|
|
112
|
+
private fetchJsonWithTimeout;
|
|
113
|
+
private fetchRequest;
|
|
114
|
+
healthCheck(timeoutMs?: number): Promise<boolean>;
|
|
115
|
+
warmup(timeoutMs?: number): Promise<WarmupResponse>;
|
|
116
|
+
retrieve(query: string, topK: number, mode: "fast" | "full", timeoutMs: number, queryType?: QueryType, options?: {
|
|
117
|
+
referenceDate?: string;
|
|
118
|
+
debug?: boolean;
|
|
119
|
+
}): Promise<RetrieveResponse>;
|
|
120
|
+
ingest(text: string, sessionId?: string, timeoutMs?: number, referenceDate?: string): Promise<IngestResponse>;
|
|
121
|
+
ingestConversation(messages: ConversationMessage[], sessionId?: string, timeoutMs?: number, referenceDate?: string): Promise<IngestResponse>;
|
|
122
|
+
getJob(jobId: string): Promise<JobSubmitResponse & {
|
|
123
|
+
result?: IngestResponse;
|
|
124
|
+
error?: string;
|
|
125
|
+
}>;
|
|
126
|
+
submitIngest(text: string, sessionId?: string, referenceDate?: string): Promise<JobSubmitResponse>;
|
|
127
|
+
submitIngestConversation(messages: ConversationMessage[], sessionId?: string, referenceDate?: string): Promise<JobSubmitResponse>;
|
|
128
|
+
batchIngest(items: BatchIngestItem[], timeoutMs?: number): Promise<BatchIngestResponse>;
|
|
129
|
+
reflect(sessionId?: string, timeoutMs?: number): Promise<ReflectResponse>;
|
|
130
|
+
remember(text: string, sessionId?: string, timeoutMs?: number, referenceDate?: string): Promise<RememberResponse>;
|
|
131
|
+
rememberConversation(messages: ConversationMessage[], sessionId?: string, timeoutMs?: number, referenceDate?: string): Promise<RememberResponse>;
|
|
132
|
+
recall(query: string, timeoutMs?: number, options?: {
|
|
133
|
+
limit?: number;
|
|
134
|
+
context?: string;
|
|
135
|
+
sessionFilter?: string;
|
|
136
|
+
}): Promise<RecallResponse>;
|
|
137
|
+
forgetSession(sessionId: string, timeoutMs?: number): Promise<ForgetResponse>;
|
|
138
|
+
forgetEntity(entityName: string, timeoutMs?: number): Promise<ForgetResponse>;
|
|
139
|
+
knowledge(timeoutMs?: number): Promise<KnowledgeResponse>;
|
|
140
|
+
stats(timeoutMs?: number): Promise<StatsResponse>;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=client.d.ts.map
|