@ubundi/openclaw-cortex 1.0.0 → 1.1.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.
Files changed (80) hide show
  1. package/README.md +17 -4
  2. package/dist/adapters/cortex/client.d.ts +7 -1
  3. package/dist/adapters/cortex/client.d.ts.map +1 -1
  4. package/dist/adapters/cortex/client.js +4 -2
  5. package/dist/adapters/cortex/client.js.map +1 -1
  6. package/dist/features/capture/filter.d.ts +8 -0
  7. package/dist/features/capture/filter.d.ts.map +1 -0
  8. package/dist/features/capture/filter.js +34 -0
  9. package/dist/features/capture/filter.js.map +1 -0
  10. package/dist/features/capture/handler.d.ts +2 -1
  11. package/dist/features/capture/handler.d.ts.map +1 -1
  12. package/dist/features/capture/handler.js +58 -9
  13. package/dist/features/capture/handler.js.map +1 -1
  14. package/dist/features/recall/handler.d.ts +2 -1
  15. package/dist/features/recall/handler.d.ts.map +1 -1
  16. package/dist/features/recall/handler.js +12 -2
  17. package/dist/features/recall/handler.js.map +1 -1
  18. package/dist/features/sync/daily-logs-sync.d.ts +4 -1
  19. package/dist/features/sync/daily-logs-sync.d.ts.map +1 -1
  20. package/dist/features/sync/daily-logs-sync.js +20 -2
  21. package/dist/features/sync/daily-logs-sync.js.map +1 -1
  22. package/dist/features/sync/memory-md-sync.d.ts +4 -1
  23. package/dist/features/sync/memory-md-sync.d.ts.map +1 -1
  24. package/dist/features/sync/memory-md-sync.js +20 -2
  25. package/dist/features/sync/memory-md-sync.js.map +1 -1
  26. package/dist/features/sync/transcripts-sync.d.ts +3 -1
  27. package/dist/features/sync/transcripts-sync.d.ts.map +1 -1
  28. package/dist/features/sync/transcripts-sync.js +14 -1
  29. package/dist/features/sync/transcripts-sync.js.map +1 -1
  30. package/dist/features/sync/watcher.d.ts +4 -1
  31. package/dist/features/sync/watcher.d.ts.map +1 -1
  32. package/dist/features/sync/watcher.js +41 -13
  33. package/dist/features/sync/watcher.js.map +1 -1
  34. package/dist/internal/audit/audit-logger.d.ts +28 -0
  35. package/dist/internal/audit/audit-logger.d.ts.map +1 -0
  36. package/dist/internal/audit/audit-logger.js +61 -0
  37. package/dist/internal/audit/audit-logger.js.map +1 -0
  38. package/dist/internal/identity/api-key.js +1 -1
  39. package/dist/plugin/config/schema.d.ts +20 -0
  40. package/dist/plugin/config/schema.d.ts.map +1 -1
  41. package/dist/plugin/config/schema.js +5 -1
  42. package/dist/plugin/config/schema.js.map +1 -1
  43. package/dist/plugin/index.d.ts +8 -0
  44. package/dist/plugin/index.d.ts.map +1 -1
  45. package/dist/plugin/index.js +121 -12
  46. package/dist/plugin/index.js.map +1 -1
  47. package/openclaw.plugin.json +30 -1
  48. package/package.json +1 -1
  49. package/dist/core/config/schema.d.ts +0 -61
  50. package/dist/core/config/schema.d.ts.map +0 -1
  51. package/dist/core/config/schema.js +0 -39
  52. package/dist/core/config/schema.js.map +0 -1
  53. package/dist/core/plugin.d.ts +0 -61
  54. package/dist/core/plugin.d.ts.map +0 -1
  55. package/dist/core/plugin.js +0 -147
  56. package/dist/core/plugin.js.map +0 -1
  57. package/dist/cortex/client.d.ts +0 -142
  58. package/dist/cortex/client.d.ts.map +0 -1
  59. package/dist/cortex/client.js +0 -145
  60. package/dist/cortex/client.js.map +0 -1
  61. package/dist/features/reflect/service.d.ts +0 -19
  62. package/dist/features/reflect/service.d.ts.map +0 -1
  63. package/dist/features/reflect/service.js +0 -38
  64. package/dist/features/reflect/service.js.map +0 -1
  65. package/dist/shared/fs/safe-path.d.ts +0 -8
  66. package/dist/shared/fs/safe-path.d.ts.map +0 -1
  67. package/dist/shared/fs/safe-path.js +0 -32
  68. package/dist/shared/fs/safe-path.js.map +0 -1
  69. package/dist/shared/metrics/latency-metrics.d.ts +0 -19
  70. package/dist/shared/metrics/latency-metrics.d.ts.map +0 -1
  71. package/dist/shared/metrics/latency-metrics.js +0 -45
  72. package/dist/shared/metrics/latency-metrics.js.map +0 -1
  73. package/dist/shared/queue/retry-queue.d.ts +0 -31
  74. package/dist/shared/queue/retry-queue.d.ts.map +0 -1
  75. package/dist/shared/queue/retry-queue.js +0 -115
  76. package/dist/shared/queue/retry-queue.js.map +0 -1
  77. package/dist/shared/transcript/cleaner.d.ts +0 -24
  78. package/dist/shared/transcript/cleaner.d.ts.map +0 -1
  79. package/dist/shared/transcript/cleaner.js +0 -96
  80. package/dist/shared/transcript/cleaner.js.map +0 -1
@@ -11,6 +11,7 @@ import { LatencyMetrics } from "../internal/metrics/latency-metrics.js";
11
11
  import { loadOrCreateUserId } from "../internal/identity/user-id.js";
12
12
  import { BAKED_API_KEY } from "../internal/identity/api-key.js";
13
13
  import { formatMemories } from "../features/recall/formatter.js";
14
+ import { AuditLogger } from "../internal/audit/audit-logger.js";
14
15
  export function deriveTier(totalSessions) {
15
16
  if (totalSessions >= 30)
16
17
  return 3;
@@ -69,12 +70,12 @@ async function bootstrapClient(client, logger, knowledgeState, userId) {
69
70
  * falling back to the legacy api.on() for older OpenClaw runtimes.
70
71
  */
71
72
  function registerHookCompat(api, hookName, handler, metadata) {
72
- if (api.registerHook) {
73
- api.registerHook(hookName, handler, metadata);
74
- }
75
- else if (api.on) {
73
+ if (api.on) {
76
74
  api.on(hookName, handler);
77
75
  }
76
+ else if (api.registerHook) {
77
+ api.registerHook(hookName, handler, metadata);
78
+ }
78
79
  else {
79
80
  api.logger.warn(`Cortex: cannot register hook "${hookName}" — no registerHook or on method available`);
80
81
  }
@@ -104,11 +105,24 @@ const plugin = {
104
105
  maturity: "unknown",
105
106
  lastChecked: 0,
106
107
  };
108
+ // Session ID for this plugin lifecycle — groups tool-saved memories into
109
+ // a single Cortex SESSION node so total_sessions increments properly.
110
+ const sessionId = randomUUID();
107
111
  // Whether the user explicitly set a namespace vs. relying on default
108
112
  const userSetNamespace = raw.namespace != null;
109
113
  let namespace = config.namespace;
110
114
  let started = false;
111
115
  let watcher = null;
116
+ // Audit logger is created lazily in start(ctx) when workspaceDir is available,
117
+ // or on-demand via the /audit command. The proxy always exists so handlers can
118
+ // start logging without a restart when toggled on at runtime.
119
+ let auditLoggerInner;
120
+ let workspaceDirResolved;
121
+ const auditLoggerProxy = {
122
+ log(entry) {
123
+ return auditLoggerInner?.log(entry) ?? Promise.resolve();
124
+ },
125
+ };
112
126
  // userId: use explicit config value if provided, otherwise load/create a
113
127
  // stable UUID persisted at ~/.openclaw/cortex-user-id. Bootstrap is chained
114
128
  // off the same promise so it always runs with a resolved userId. The capture
@@ -130,16 +144,30 @@ const plugin = {
130
144
  api.logger.info(`Cortex user ID (from config): ${userId}`);
131
145
  }
132
146
  api.logger.info(`Cortex plugin registered (namespace=${namespace})`);
147
+ // First-run data disclosure — log what features are active so users know
148
+ // what data will be sent to the Cortex API.
149
+ const activeFeatures = [];
150
+ if (config.autoRecall)
151
+ activeFeatures.push("auto-recall (sends prompts)");
152
+ if (config.autoCapture)
153
+ activeFeatures.push("auto-capture (sends conversation transcripts)");
154
+ if (config.fileSync)
155
+ activeFeatures.push("file-sync (sends MEMORY.md and daily log changes)");
156
+ if (config.transcriptSync)
157
+ activeFeatures.push("transcript-sync (sends session transcripts)");
158
+ if (activeFeatures.length > 0) {
159
+ api.logger.info(`Cortex data features active: ${activeFeatures.join(", ")}. All data sent over HTTPS to ${config.baseUrl}. See README for details.`);
160
+ }
133
161
  // Async health check + knowledge probe — chained after userId resolves
134
162
  void userIdReady.then(() => bootstrapClient(client, api.logger, knowledgeState, userId));
135
163
  // --- Hooks ---
136
164
  // Auto-Recall: inject relevant memories before every agent turn
137
- registerHookCompat(api, "before_agent_start", createRecallHandler(client, config, api.logger, recallMetrics, knowledgeState, () => userId), {
165
+ registerHookCompat(api, "before_agent_start", createRecallHandler(client, config, api.logger, recallMetrics, knowledgeState, () => userId, auditLoggerProxy), {
138
166
  name: "openclaw-cortex.recall",
139
167
  description: "Inject relevant Cortex memories before agent turn",
140
168
  });
141
169
  // Auto-Capture: extract facts after agent responses
142
- registerHookCompat(api, "agent_end", createCaptureHandler(client, config, api.logger, retryQueue, knowledgeState, () => userId, userIdReady), {
170
+ registerHookCompat(api, "agent_end", createCaptureHandler(client, config, api.logger, retryQueue, knowledgeState, () => userId, userIdReady, sessionId, auditLoggerProxy), {
143
171
  name: "openclaw-cortex.capture",
144
172
  description: "Extract and store facts from conversation after agent turn",
145
173
  });
@@ -169,8 +197,15 @@ const plugin = {
169
197
  api.logger.info(`Cortex tool: cortex_search_memory called (query="${query.slice(0, 80)}", limit=${limit})`);
170
198
  if (userIdReady)
171
199
  await userIdReady;
200
+ void auditLoggerProxy.log({
201
+ feature: "tool-search-memory",
202
+ method: "POST",
203
+ endpoint: "/v1/recall",
204
+ payload: query,
205
+ userId,
206
+ });
172
207
  try {
173
- const response = await client.recall(query, config.recallTimeoutMs, {
208
+ const response = await client.recall(query, config.toolTimeoutMs, {
174
209
  limit,
175
210
  userId: userId,
176
211
  queryType: "combined",
@@ -210,16 +245,37 @@ const plugin = {
210
245
  api.logger.info(`Cortex tool: cortex_save_memory called (text="${text.slice(0, 80)}")`);
211
246
  if (userIdReady)
212
247
  await userIdReady;
248
+ void auditLoggerProxy.log({
249
+ feature: "tool-save-memory",
250
+ method: "POST",
251
+ endpoint: "/v1/remember",
252
+ payload: text,
253
+ sessionId,
254
+ userId,
255
+ });
213
256
  try {
214
- const res = await client.remember(text, undefined, undefined, undefined, userId);
257
+ const res = await client.remember(text, sessionId, undefined, new Date().toISOString(), userId);
215
258
  if (knowledgeState && res.memories_created > 0) {
216
259
  knowledgeState.hasMemories = true;
217
260
  }
218
261
  api.logger.info(`Cortex tool: cortex_save_memory created ${res.memories_created} memories, entities: ${res.entities_found.join(", ") || "none"}`);
262
+ const parts = [`Saved ${res.memories_created} memory/memories.`];
263
+ if (res.entities_found.length)
264
+ parts.push(`Entities: ${res.entities_found.join(", ")}.`);
265
+ if (res.facts.length)
266
+ parts.push(`Facts: ${res.facts.join("; ")}.`);
267
+ if (res.emotions.length)
268
+ parts.push(`Emotions: ${res.emotions.join(", ")}.`);
269
+ if (res.values.length)
270
+ parts.push(`Values: ${res.values.join(", ")}.`);
271
+ if (res.beliefs.length)
272
+ parts.push(`Beliefs: ${res.beliefs.join("; ")}.`);
273
+ if (res.insights.length)
274
+ parts.push(`Insights: ${res.insights.join("; ")}.`);
219
275
  return {
220
276
  content: [{
221
277
  type: "text",
222
- text: `Saved ${res.memories_created} memory/memories. Entities found: ${res.entities_found.join(", ") || "none"}.`,
278
+ text: parts.join(" "),
223
279
  }],
224
280
  };
225
281
  }
@@ -263,8 +319,15 @@ const plugin = {
263
319
  }
264
320
  }
265
321
  // With args — search memories
322
+ void auditLoggerProxy.log({
323
+ feature: "command-memories",
324
+ method: "POST",
325
+ endpoint: "/v1/recall",
326
+ payload: query,
327
+ userId,
328
+ });
266
329
  try {
267
- const response = await client.recall(query, config.recallTimeoutMs, {
330
+ const response = await client.recall(query, config.toolTimeoutMs, {
268
331
  limit: config.recallLimit,
269
332
  userId,
270
333
  queryType: "combined",
@@ -280,7 +343,46 @@ const plugin = {
280
343
  }
281
344
  },
282
345
  });
283
- api.logger.info("Cortex command registered: /memories");
346
+ api.registerCommand({
347
+ name: "audit",
348
+ description: "Toggle or check Cortex audit log (records all data sent to Cortex)",
349
+ acceptsArgs: true,
350
+ handler: (ctx) => {
351
+ const arg = ctx.args?.trim().toLowerCase();
352
+ if (arg === "on") {
353
+ if (!workspaceDirResolved) {
354
+ return { text: "Cannot enable audit log — no workspace directory available." };
355
+ }
356
+ if (auditLoggerInner) {
357
+ return { text: `Audit log is already on.\nLog path: ${workspaceDirResolved}/.cortex/audit/` };
358
+ }
359
+ auditLoggerInner = new AuditLogger(workspaceDirResolved, api.logger);
360
+ api.logger.info(`Cortex audit log enabled via command: ${workspaceDirResolved}/.cortex/audit/`);
361
+ return { text: `Audit log enabled.\nLog path: ${workspaceDirResolved}/.cortex/audit/` };
362
+ }
363
+ if (arg === "off") {
364
+ if (!auditLoggerInner) {
365
+ return { text: "Audit log is already off." };
366
+ }
367
+ auditLoggerInner = undefined;
368
+ api.logger.info("Cortex audit log disabled via command");
369
+ return { text: "Audit log disabled. Existing log files are preserved." };
370
+ }
371
+ // No args — show status
372
+ const status = auditLoggerInner ? "on" : "off";
373
+ const lines = [
374
+ `**Cortex Audit Log**`,
375
+ `- Status: ${status}`,
376
+ `- Config default: ${config.auditLog ? "on" : "off"}`,
377
+ ];
378
+ if (workspaceDirResolved) {
379
+ lines.push(`- Log path: ${workspaceDirResolved}/.cortex/audit/`);
380
+ }
381
+ lines.push("", "Usage: `/audit on` · `/audit off`");
382
+ return { text: lines.join("\n") };
383
+ },
384
+ });
385
+ api.logger.info("Cortex commands registered: /memories, /audit");
284
386
  }
285
387
  // --- Gateway RPC ---
286
388
  if (api.registerGatewayMethod) {
@@ -319,6 +421,13 @@ const plugin = {
319
421
  }
320
422
  started = true;
321
423
  retryQueue.start();
424
+ // Capture workspaceDir for runtime audit toggle via /audit command
425
+ workspaceDirResolved = ctx.workspaceDir;
426
+ // Initialize audit logger if enabled via config
427
+ if (config.auditLog && ctx.workspaceDir) {
428
+ auditLoggerInner = new AuditLogger(ctx.workspaceDir, api.logger);
429
+ api.logger.info(`Cortex audit log enabled: ${ctx.workspaceDir}/.cortex/audit/`);
430
+ }
322
431
  // Derive workspace-scoped namespace when user didn't set one explicitly
323
432
  if (!userSetNamespace && ctx.workspaceDir) {
324
433
  namespace = deriveNamespace(ctx.workspaceDir);
@@ -331,7 +440,7 @@ const plugin = {
331
440
  api.logger.warn("Cortex file sync: no workspaceDir, skipping");
332
441
  }
333
442
  else {
334
- const newWatcher = new FileSyncWatcher(workspaceDir, client, namespace, api.logger, retryQueue, { transcripts: config.transcriptSync }, () => userId);
443
+ const newWatcher = new FileSyncWatcher(workspaceDir, client, namespace, api.logger, retryQueue, { transcripts: config.transcriptSync, captureFilter: config.captureFilter }, () => userId, auditLoggerProxy);
335
444
  newWatcher.start();
336
445
  watcher = newWatcher;
337
446
  api.logger.info("Cortex file sync started");
@@ -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":"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"}
@@ -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 tools, /memories command, transcript ingestion, and background file sync",
5
- "version": "1.0.0",
5
+ "version": "1.1.1",
6
6
  "kind": "memory",
7
7
  "configSchema": {
8
8
  "type": "object",
@@ -46,6 +46,21 @@
46
46
  "description": "Watch sessions/*.jsonl and ingest cleaned transcripts",
47
47
  "default": true
48
48
  },
49
+ "toolTimeoutMs": {
50
+ "type": "number",
51
+ "description": "Timeout for explicit tool calls and /memories search (ms)",
52
+ "default": 10000
53
+ },
54
+ "captureMaxPayloadBytes": {
55
+ "type": "number",
56
+ "description": "Max byte size of capture payloads. Oversized transcripts are trimmed from oldest messages.",
57
+ "default": 262144
58
+ },
59
+ "auditLog": {
60
+ "type": "boolean",
61
+ "description": "Record all data sent to Cortex in a local audit log at .cortex/audit/",
62
+ "default": false
63
+ },
49
64
  "namespace": {
50
65
  "type": "string",
51
66
  "description": "Session namespace to isolate memory per workspace/project. Auto-derived from workspace directory if not set.",
@@ -76,6 +91,20 @@
76
91
  "label": "Transcript Sync",
77
92
  "helpText": "Automatically ingest session transcripts (sessions/*.jsonl) after stripping system prompts and tool JSON."
78
93
  },
94
+ "toolTimeoutMs": {
95
+ "label": "Tool Timeout (ms)",
96
+ "advanced": true,
97
+ "helpText": "Timeout for cortex_search_memory tool and /memories command searches."
98
+ },
99
+ "captureMaxPayloadBytes": {
100
+ "label": "Capture Max Payload Size",
101
+ "advanced": true,
102
+ "helpText": "Maximum byte size for capture payloads (default 256KB). Oversized transcripts are trimmed from oldest messages."
103
+ },
104
+ "auditLog": {
105
+ "label": "Audit Log",
106
+ "helpText": "Records every payload sent to Cortex at .cortex/audit/ in your workspace. Also toggleable at runtime via /audit on."
107
+ },
79
108
  "namespace": {
80
109
  "label": "Namespace",
81
110
  "advanced": true,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ubundi/openclaw-cortex",
3
- "version": "1.0.0",
3
+ "version": "1.1.1",
4
4
  "description": "OpenClaw plugin for Cortex memory — Auto-Recall, Auto-Capture, and file sync",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,61 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,39 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,61 +0,0 @@
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
@@ -1 +0,0 @@
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"}