@ubundi/openclaw-cortex 2.0.1 → 2.1.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.
Files changed (142) hide show
  1. package/dist/{adapters/cortex → cortex}/client.d.ts +41 -5
  2. package/dist/cortex/client.d.ts.map +1 -0
  3. package/dist/{adapters/cortex → cortex}/client.js +1 -0
  4. package/dist/cortex/client.js.map +1 -0
  5. package/dist/features/capture/filter.d.ts +2 -1
  6. package/dist/features/capture/filter.d.ts.map +1 -1
  7. package/dist/features/capture/filter.js +11 -0
  8. package/dist/features/capture/filter.js.map +1 -1
  9. package/dist/features/capture/handler.d.ts +4 -4
  10. package/dist/features/capture/handler.d.ts.map +1 -1
  11. package/dist/features/capture/handler.js +10 -2
  12. package/dist/features/capture/handler.js.map +1 -1
  13. package/dist/features/capture/index.d.ts +3 -0
  14. package/dist/features/capture/index.d.ts.map +1 -0
  15. package/dist/features/capture/index.js +3 -0
  16. package/dist/features/capture/index.js.map +1 -0
  17. package/dist/features/checkpoint/handler.d.ts +3 -3
  18. package/dist/features/checkpoint/handler.d.ts.map +1 -1
  19. package/dist/features/heartbeat/handler.d.ts +2 -2
  20. package/dist/features/heartbeat/handler.d.ts.map +1 -1
  21. package/dist/features/index.d.ts +7 -0
  22. package/dist/features/index.d.ts.map +1 -0
  23. package/dist/features/index.js +7 -0
  24. package/dist/features/index.js.map +1 -0
  25. package/dist/features/recall/context-profile.d.ts +1 -1
  26. package/dist/features/recall/context-profile.d.ts.map +1 -1
  27. package/dist/features/recall/formatter.d.ts +1 -1
  28. package/dist/features/recall/formatter.d.ts.map +1 -1
  29. package/dist/features/recall/formatter.js +10 -5
  30. package/dist/features/recall/formatter.js.map +1 -1
  31. package/dist/features/recall/handler.d.ts +4 -4
  32. package/dist/features/recall/handler.d.ts.map +1 -1
  33. package/dist/features/recall/handler.js +3 -2
  34. package/dist/features/recall/handler.js.map +1 -1
  35. package/dist/features/recall/index.d.ts +4 -0
  36. package/dist/features/recall/index.d.ts.map +1 -0
  37. package/dist/features/recall/index.js +4 -0
  38. package/dist/features/recall/index.js.map +1 -0
  39. package/dist/features/sync/daily-logs-sync.d.ts +3 -3
  40. package/dist/features/sync/daily-logs-sync.d.ts.map +1 -1
  41. package/dist/features/sync/daily-logs-sync.js +1 -1
  42. package/dist/features/sync/daily-logs-sync.js.map +1 -1
  43. package/dist/features/sync/index.d.ts +5 -0
  44. package/dist/features/sync/index.d.ts.map +1 -0
  45. package/dist/features/sync/index.js +5 -0
  46. package/dist/features/sync/index.js.map +1 -0
  47. package/dist/features/sync/memory-md-sync.d.ts +3 -3
  48. package/dist/features/sync/memory-md-sync.d.ts.map +1 -1
  49. package/dist/features/sync/memory-md-sync.js +1 -1
  50. package/dist/features/sync/memory-md-sync.js.map +1 -1
  51. package/dist/features/sync/transcripts-sync.d.ts +3 -3
  52. package/dist/features/sync/transcripts-sync.d.ts.map +1 -1
  53. package/dist/features/sync/transcripts-sync.js +2 -2
  54. package/dist/features/sync/transcripts-sync.js.map +1 -1
  55. package/dist/features/sync/watcher.d.ts +3 -3
  56. package/dist/features/sync/watcher.d.ts.map +1 -1
  57. package/dist/index.d.ts +5 -5
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +5 -5
  60. package/dist/index.js.map +1 -1
  61. package/dist/internal/api-key.d.ts.map +1 -0
  62. package/dist/internal/api-key.js.map +1 -0
  63. package/dist/internal/audit-logger.d.ts.map +1 -0
  64. package/dist/internal/audit-logger.js.map +1 -0
  65. package/dist/internal/{transcript/cleaner.d.ts → cleaner.d.ts} +1 -1
  66. package/dist/internal/cleaner.d.ts.map +1 -0
  67. package/dist/internal/cleaner.js.map +1 -0
  68. package/dist/internal/index.d.ts +11 -0
  69. package/dist/internal/index.d.ts.map +1 -0
  70. package/dist/internal/index.js +11 -0
  71. package/dist/internal/index.js.map +1 -0
  72. package/dist/internal/latency-metrics.d.ts.map +1 -0
  73. package/dist/internal/latency-metrics.js.map +1 -0
  74. package/dist/internal/retry-queue.d.ts.map +1 -0
  75. package/dist/internal/retry-queue.js.map +1 -0
  76. package/dist/internal/safe-path.d.ts.map +1 -0
  77. package/dist/internal/safe-path.js.map +1 -0
  78. package/dist/internal/session-state.d.ts.map +1 -0
  79. package/dist/internal/session-state.js.map +1 -0
  80. package/dist/internal/user-id.d.ts.map +1 -0
  81. package/dist/internal/user-id.js.map +1 -0
  82. package/dist/plugin/cli.d.ts +33 -0
  83. package/dist/plugin/cli.d.ts.map +1 -0
  84. package/dist/plugin/cli.js +278 -0
  85. package/dist/plugin/cli.js.map +1 -0
  86. package/dist/plugin/commands.d.ts +21 -0
  87. package/dist/plugin/commands.d.ts.map +1 -0
  88. package/dist/plugin/commands.js +94 -0
  89. package/dist/plugin/commands.js.map +1 -0
  90. package/dist/plugin/{config/schema.d.ts → config.d.ts} +1 -1
  91. package/dist/plugin/config.d.ts.map +1 -0
  92. package/dist/plugin/{config/schema.js → config.js} +1 -1
  93. package/dist/plugin/config.js.map +1 -0
  94. package/dist/plugin/index.d.ts +1 -87
  95. package/dist/plugin/index.d.ts.map +1 -1
  96. package/dist/plugin/index.js +54 -586
  97. package/dist/plugin/index.js.map +1 -1
  98. package/dist/plugin/tools.d.ts +31 -0
  99. package/dist/plugin/tools.d.ts.map +1 -0
  100. package/dist/plugin/tools.js +235 -0
  101. package/dist/plugin/tools.js.map +1 -0
  102. package/dist/plugin/types.d.ts +83 -0
  103. package/dist/plugin/types.d.ts.map +1 -0
  104. package/dist/plugin/types.js +3 -0
  105. package/dist/plugin/types.js.map +1 -0
  106. package/openclaw.plugin.json +1 -1
  107. package/package.json +1 -1
  108. package/dist/adapters/cortex/client.d.ts.map +0 -1
  109. package/dist/adapters/cortex/client.js.map +0 -1
  110. package/dist/internal/audit/audit-logger.d.ts.map +0 -1
  111. package/dist/internal/audit/audit-logger.js.map +0 -1
  112. package/dist/internal/fs/safe-path.d.ts.map +0 -1
  113. package/dist/internal/fs/safe-path.js.map +0 -1
  114. package/dist/internal/identity/api-key.d.ts.map +0 -1
  115. package/dist/internal/identity/api-key.js.map +0 -1
  116. package/dist/internal/identity/user-id.d.ts.map +0 -1
  117. package/dist/internal/identity/user-id.js.map +0 -1
  118. package/dist/internal/metrics/latency-metrics.d.ts.map +0 -1
  119. package/dist/internal/metrics/latency-metrics.js.map +0 -1
  120. package/dist/internal/queue/retry-queue.d.ts.map +0 -1
  121. package/dist/internal/queue/retry-queue.js.map +0 -1
  122. package/dist/internal/session/session-state.d.ts.map +0 -1
  123. package/dist/internal/session/session-state.js.map +0 -1
  124. package/dist/internal/transcript/cleaner.d.ts.map +0 -1
  125. package/dist/internal/transcript/cleaner.js.map +0 -1
  126. package/dist/plugin/config/schema.d.ts.map +0 -1
  127. package/dist/plugin/config/schema.js.map +0 -1
  128. /package/dist/internal/{identity/api-key.d.ts → api-key.d.ts} +0 -0
  129. /package/dist/internal/{identity/api-key.js → api-key.js} +0 -0
  130. /package/dist/internal/{audit/audit-logger.d.ts → audit-logger.d.ts} +0 -0
  131. /package/dist/internal/{audit/audit-logger.js → audit-logger.js} +0 -0
  132. /package/dist/internal/{transcript/cleaner.js → cleaner.js} +0 -0
  133. /package/dist/internal/{metrics/latency-metrics.d.ts → latency-metrics.d.ts} +0 -0
  134. /package/dist/internal/{metrics/latency-metrics.js → latency-metrics.js} +0 -0
  135. /package/dist/internal/{queue/retry-queue.d.ts → retry-queue.d.ts} +0 -0
  136. /package/dist/internal/{queue/retry-queue.js → retry-queue.js} +0 -0
  137. /package/dist/internal/{fs/safe-path.d.ts → safe-path.d.ts} +0 -0
  138. /package/dist/internal/{fs/safe-path.js → safe-path.js} +0 -0
  139. /package/dist/internal/{session/session-state.d.ts → session-state.d.ts} +0 -0
  140. /package/dist/internal/{session/session-state.js → session-state.js} +0 -0
  141. /package/dist/internal/{identity/user-id.d.ts → user-id.d.ts} +0 -0
  142. /package/dist/internal/{identity/user-id.js → user-id.js} +0 -0
@@ -0,0 +1,278 @@
1
+ export function registerCliCommands(registerCli, deps) {
2
+ const { client, config, version, getUserId, userIdReady, getNamespace, sessionStats, loadPersistedStats, isAbortError, resetCompletedAfterAbort, } = deps;
3
+ registerCli(({ program }) => {
4
+ const cortex = program.command("cortex").description("Cortex memory CLI commands");
5
+ cortex
6
+ .command("status")
7
+ .description("Check Cortex API health and show memory status")
8
+ .action(async () => {
9
+ const userId = getUserId();
10
+ await userIdReady;
11
+ console.log("Cortex Status Check");
12
+ console.log("=".repeat(50));
13
+ // Health check
14
+ const startHealth = Date.now();
15
+ let healthy = false;
16
+ try {
17
+ healthy = await client.healthCheck();
18
+ const ms = Date.now() - startHealth;
19
+ console.log(` API Health: ${healthy ? "OK" : "UNREACHABLE"} (${ms}ms)`);
20
+ }
21
+ catch {
22
+ console.log(` API Health: UNREACHABLE`);
23
+ }
24
+ if (!healthy) {
25
+ console.log("\nAPI is unreachable. Check baseUrl and network connectivity.");
26
+ return;
27
+ }
28
+ // Knowledge
29
+ try {
30
+ const startKnowledge = Date.now();
31
+ const knowledge = await client.knowledge(undefined, userId);
32
+ const ms = Date.now() - startKnowledge;
33
+ console.log(` Knowledge: OK (${ms}ms)`);
34
+ console.log(` Memories: ${knowledge.total_memories.toLocaleString()}`);
35
+ console.log(` Sessions: ${knowledge.total_sessions}`);
36
+ console.log(` Maturity: ${knowledge.maturity}`);
37
+ }
38
+ catch (err) {
39
+ console.log(` Knowledge: FAILED — ${String(err)}`);
40
+ }
41
+ // Stats
42
+ try {
43
+ const startStats = Date.now();
44
+ const stats = await client.stats(undefined, userId);
45
+ const ms = Date.now() - startStats;
46
+ console.log(` Stats: OK (${ms}ms)`);
47
+ console.log(` Pipeline: tier ${stats.pipeline_tier}`);
48
+ }
49
+ catch (err) {
50
+ console.log(` Stats: FAILED — ${String(err)}`);
51
+ }
52
+ // Recall
53
+ try {
54
+ const startRecall = Date.now();
55
+ await client.recall("test", 5000, { limit: 1, userId });
56
+ const ms = Date.now() - startRecall;
57
+ console.log(` Recall: OK (${ms}ms)`);
58
+ }
59
+ catch (err) {
60
+ console.log(` Recall: FAILED — ${String(err)}`);
61
+ }
62
+ // Retrieve
63
+ try {
64
+ const startRetrieve = Date.now();
65
+ await client.retrieve("test", 1, "fast", 5000, undefined, { userId });
66
+ const ms = Date.now() - startRetrieve;
67
+ console.log(` Retrieve: OK (${ms}ms)`);
68
+ }
69
+ catch (err) {
70
+ console.log(` Retrieve: FAILED — ${String(err)}`);
71
+ }
72
+ console.log("");
73
+ console.log(` Version: ${version}`);
74
+ console.log(` User ID: ${userId ?? "unknown"}`);
75
+ console.log(` Base URL: ${config.baseUrl}`);
76
+ console.log(` Auto-Recall: ${config.autoRecall ? "on" : "off"}`);
77
+ console.log(` Auto-Capture: ${config.autoCapture ? "on" : "off"}`);
78
+ console.log(` File Sync: ${config.fileSync ? "on" : "off"}`);
79
+ console.log(` Dedupe Window: ${config.dedupeWindowMinutes > 0 ? `${config.dedupeWindowMinutes}min` : "off"}`);
80
+ // Session activity stats — read from persisted file so CLI process
81
+ // can see stats from the running gateway instance
82
+ const liveStats = loadPersistedStats() ?? sessionStats;
83
+ const totalSkipped = liveStats.savesSkippedDedupe + liveStats.savesSkippedNovelty;
84
+ const avgRecallMemories = liveStats.recallCount > 0
85
+ ? (liveStats.recallMemoriesTotal / liveStats.recallCount).toFixed(1)
86
+ : "0";
87
+ console.log("");
88
+ console.log("Session Activity");
89
+ console.log("-".repeat(50));
90
+ console.log(` Saves: ${liveStats.saves}`);
91
+ if (totalSkipped > 0) {
92
+ console.log(` Skipped: ${totalSkipped} (${liveStats.savesSkippedDedupe} dedupe, ${liveStats.savesSkippedNovelty} novelty)`);
93
+ }
94
+ console.log(` Searches: ${liveStats.searches}`);
95
+ console.log(` Recalls: ${liveStats.recallCount}`);
96
+ console.log(` Avg memories/recall: ${avgRecallMemories}`);
97
+ if (liveStats.recallDuplicatesCollapsed > 0) {
98
+ console.log(` Duplicates collapsed: ${liveStats.recallDuplicatesCollapsed}`);
99
+ }
100
+ });
101
+ cortex
102
+ .command("memories")
103
+ .description("Show memory count and maturity")
104
+ .action(async () => {
105
+ const userId = getUserId();
106
+ await userIdReady;
107
+ try {
108
+ const knowledge = await client.knowledge(undefined, userId);
109
+ console.log(`Memories: ${knowledge.total_memories.toLocaleString()}`);
110
+ console.log(`Sessions: ${knowledge.total_sessions}`);
111
+ console.log(`Maturity: ${knowledge.maturity}`);
112
+ if (knowledge.entities.length > 0) {
113
+ console.log(`\nTop Entities:`);
114
+ knowledge.entities.slice(0, 10).forEach((e) => {
115
+ console.log(` ${e.name} (${e.memory_count} memories, last seen ${e.last_seen})`);
116
+ });
117
+ }
118
+ }
119
+ catch (err) {
120
+ console.error(`Failed: ${String(err)}`);
121
+ process.exitCode = 1;
122
+ }
123
+ });
124
+ cortex
125
+ .command("search")
126
+ .description("Search memories from the terminal")
127
+ .argument("<query>", "Search query")
128
+ .option("--limit <n>", "Max results", "10")
129
+ .action(async (query, opts) => {
130
+ const userId = getUserId();
131
+ await userIdReady;
132
+ try {
133
+ const response = await client.recall(query, config.toolTimeoutMs, {
134
+ limit: parseInt(opts.limit),
135
+ userId,
136
+ queryType: "combined",
137
+ });
138
+ if (!response.memories?.length) {
139
+ console.log(`No memories found for: "${query}"`);
140
+ return;
141
+ }
142
+ console.log(`Found ${response.memories.length} memories:\n`);
143
+ response.memories.forEach((m, i) => {
144
+ console.log(`${i + 1}. [${m.confidence.toFixed(2)}] ${m.content}`);
145
+ if (m.entities.length > 0) {
146
+ console.log(` entities: ${m.entities.join(", ")}`);
147
+ }
148
+ console.log("");
149
+ });
150
+ }
151
+ catch (err) {
152
+ console.error(`Search failed: ${String(err)}`);
153
+ process.exitCode = 1;
154
+ }
155
+ });
156
+ cortex
157
+ .command("config")
158
+ .description("Show current Cortex plugin configuration")
159
+ .action(async () => {
160
+ const userId = getUserId();
161
+ await userIdReady;
162
+ console.log(`Version: ${version}`);
163
+ console.log(`Base URL: ${config.baseUrl}`);
164
+ console.log(`User ID: ${userId ?? "unknown"}`);
165
+ console.log(`Namespace: ${getNamespace()}`);
166
+ console.log(`Auto-Recall: ${config.autoRecall ? "on" : "off"}`);
167
+ console.log(`Auto-Capture: ${config.autoCapture ? "on" : "off"}`);
168
+ console.log(`File Sync: ${config.fileSync ? "on" : "off"}`);
169
+ console.log(`Transcript Sync: ${config.transcriptSync ? "on" : "off"}`);
170
+ console.log(`Recall Limit: ${config.recallLimit}`);
171
+ console.log(`Recall Timeout: ${config.recallTimeoutMs}ms`);
172
+ console.log(`Tool Timeout: ${config.toolTimeoutMs}ms`);
173
+ console.log(`Audit Log: ${config.auditLog ? "on" : "off"}`);
174
+ });
175
+ cortex
176
+ .command("pair")
177
+ .description("Generate a TooToo pairing code to link your agent")
178
+ .action(async () => {
179
+ const userId = getUserId();
180
+ await userIdReady;
181
+ if (!userId) {
182
+ console.error("Cannot generate pairing code: user ID not available.");
183
+ process.exitCode = 1;
184
+ return;
185
+ }
186
+ try {
187
+ const { user_code, expires_in } = await client.generatePairingCode(userId);
188
+ const mins = Math.floor(expires_in / 60);
189
+ console.log(`Agent ID: ${userId}`);
190
+ console.log(`Pairing code: ${user_code}`);
191
+ console.log(`Expires in: ${mins} minute${mins !== 1 ? "s" : ""}`);
192
+ console.log("");
193
+ console.log("To link your TooToo account:");
194
+ console.log(" 1. Open app.tootoo.io/settings/agents");
195
+ console.log(' 2. Click "Connect Agent"');
196
+ console.log(" 3. Enter the code above");
197
+ }
198
+ catch (err) {
199
+ console.error(`Failed to generate pairing code: ${String(err)}`);
200
+ process.exitCode = 1;
201
+ }
202
+ });
203
+ cortex
204
+ .command("reset")
205
+ .description("Permanently delete ALL memories for this agent (irreversible)")
206
+ .option("--yes", "Skip confirmation prompt")
207
+ .action(async (opts) => {
208
+ const userId = getUserId();
209
+ await userIdReady;
210
+ if (!userId) {
211
+ console.error("Cannot reset: user ID not available.");
212
+ process.exitCode = 1;
213
+ return;
214
+ }
215
+ // Show what will be deleted
216
+ let memoryCount = 0;
217
+ let sessionCount = 0;
218
+ try {
219
+ const knowledge = await client.knowledge(undefined, userId);
220
+ memoryCount = knowledge.total_memories;
221
+ sessionCount = knowledge.total_sessions;
222
+ }
223
+ catch {
224
+ // Continue even if we can't get counts
225
+ }
226
+ console.log("");
227
+ console.log(" WARNING: This will permanently delete ALL data for this agent.");
228
+ console.log("");
229
+ console.log(` Agent ID: ${userId}`);
230
+ if (memoryCount > 0 || sessionCount > 0) {
231
+ console.log(` Memories: ${memoryCount.toLocaleString()}`);
232
+ console.log(` Sessions: ${sessionCount}`);
233
+ }
234
+ console.log("");
235
+ console.log(" This includes all memories, facts, suggestions, and graph data.");
236
+ console.log(" Agent links (TooToo pairing) will be preserved.");
237
+ console.log(" This action CANNOT be undone.");
238
+ console.log("");
239
+ if (!opts.yes) {
240
+ const { createInterface } = await import("node:readline");
241
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
242
+ const answer = await new Promise((resolve) => {
243
+ rl.question(" Type 'reset' to confirm: ", resolve);
244
+ });
245
+ rl.close();
246
+ if (answer.trim().toLowerCase() !== "reset") {
247
+ console.log("\n Aborted. No data was deleted.");
248
+ return;
249
+ }
250
+ }
251
+ try {
252
+ const result = await client.forgetUser(userId);
253
+ const d = result.deleted;
254
+ console.log("");
255
+ console.log(" Memory reset complete.");
256
+ console.log("");
257
+ console.log(` Deleted:`);
258
+ console.log(` Engraved memories: ${d.engraved_memories}`);
259
+ console.log(` Resonated memories: ${d.resonated_memories}`);
260
+ console.log(` Graph nodes: ${d.nodes}`);
261
+ console.log(` Codex suggestions: ${d.codex_suggestions}`);
262
+ console.log(` Suppressions: ${d.codex_suggestion_suppressions}`);
263
+ }
264
+ catch (err) {
265
+ if (isAbortError(err) && await resetCompletedAfterAbort(client, userId)) {
266
+ console.log("");
267
+ console.log(" Memory reset complete.");
268
+ console.log("");
269
+ console.log(" The server finished the reset, but the request ended before deletion stats were returned.");
270
+ return;
271
+ }
272
+ console.error(`\n Reset failed: ${String(err)}`);
273
+ process.exitCode = 1;
274
+ }
275
+ });
276
+ }, { commands: ["cortex"] });
277
+ }
278
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/plugin/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { CortexClient } from "../cortex/client.js";
2
+ import type { CortexConfig } from "./config.js";
3
+ import type { CommandDefinition, Logger } from "./types.js";
4
+ import type { AuditLogger } from "../internal/audit-logger.js";
5
+ import type { SessionStateStore } from "../internal/session-state.js";
6
+ export interface CommandsDeps {
7
+ client: CortexClient;
8
+ config: CortexConfig;
9
+ logger: Logger;
10
+ getUserId: () => string | undefined;
11
+ userIdReady: Promise<void>;
12
+ getLastMessages: () => unknown[];
13
+ sessionId: string;
14
+ auditLoggerProxy: AuditLogger;
15
+ sessionState: SessionStateStore;
16
+ getWorkspaceDir: () => string | undefined;
17
+ getAuditLoggerInner: () => AuditLogger | undefined;
18
+ setAuditLoggerInner: (logger: AuditLogger | undefined) => void;
19
+ }
20
+ export declare function buildCommands(registerCommand: (definition: CommandDefinition) => void, deps: CommandsDeps): void;
21
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/plugin/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,eAAe,EAAE,MAAM,OAAO,EAAE,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,WAAW,CAAC;IAC9B,YAAY,EAAE,iBAAiB,CAAC;IAChC,eAAe,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC1C,mBAAmB,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IACnD,mBAAmB,EAAE,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,KAAK,IAAI,CAAC;CAChE;AAED,wBAAgB,aAAa,CAC3B,eAAe,EAAE,CAAC,UAAU,EAAE,iBAAiB,KAAK,IAAI,EACxD,IAAI,EAAE,YAAY,GACjB,IAAI,CAsHN"}
@@ -0,0 +1,94 @@
1
+ import { AuditLogger as AuditLoggerImpl } from "../internal/audit-logger.js";
2
+ import { createCheckpointHandler } from "../features/checkpoint/handler.js";
3
+ export function buildCommands(registerCommand, deps) {
4
+ const { client, config, logger, getUserId, userIdReady, getLastMessages, sessionId, auditLoggerProxy, sessionState, getWorkspaceDir, getAuditLoggerInner, setAuditLoggerInner, } = deps;
5
+ const checkpointHandler = createCheckpointHandler(client, config, logger, getUserId, userIdReady, getLastMessages, sessionId, auditLoggerProxy);
6
+ registerCommand({
7
+ name: "audit",
8
+ description: "Toggle or check Cortex audit log (records all data sent to Cortex)",
9
+ acceptsArgs: true,
10
+ handler: (ctx) => {
11
+ const arg = ctx.args?.trim().toLowerCase();
12
+ const workspaceDirResolved = getWorkspaceDir();
13
+ if (arg === "on") {
14
+ if (!workspaceDirResolved) {
15
+ return { text: "Cannot enable audit log — no workspace directory available. The plugin must be started with a workspace first." };
16
+ }
17
+ if (getAuditLoggerInner()) {
18
+ return { text: `Audit log is already enabled.\nAll Cortex API calls are being recorded at:\n\`${workspaceDirResolved}/.cortex/audit/\`` };
19
+ }
20
+ setAuditLoggerInner(new AuditLoggerImpl(workspaceDirResolved, logger));
21
+ logger.info(`Cortex audit log enabled via command: ${workspaceDirResolved}/.cortex/audit/`);
22
+ return {
23
+ text: [
24
+ `**Audit log enabled.**`,
25
+ ``,
26
+ `All data sent to and received from Cortex will be recorded locally.`,
27
+ `Log path: \`${workspaceDirResolved}/.cortex/audit/\``,
28
+ ``,
29
+ `Turn off with \`/audit off\`. Log files are preserved when disabled.`,
30
+ ].join("\n"),
31
+ };
32
+ }
33
+ if (arg === "off") {
34
+ if (!getAuditLoggerInner()) {
35
+ return { text: "Audit log is already off. No data is being recorded." };
36
+ }
37
+ setAuditLoggerInner(undefined);
38
+ logger.info("Cortex audit log disabled via command");
39
+ return {
40
+ text: [
41
+ `**Audit log disabled.**`,
42
+ ``,
43
+ `Cortex API calls are no longer being recorded.`,
44
+ `Existing log files are preserved and can be reviewed at:`,
45
+ `\`${workspaceDirResolved}/.cortex/audit/\``,
46
+ ].join("\n"),
47
+ };
48
+ }
49
+ // No args — show status
50
+ const status = getAuditLoggerInner() ? "on" : "off";
51
+ const lines = [
52
+ `**Cortex Audit Log**`,
53
+ ``,
54
+ `The audit log records all data sent to and received from the Cortex API, stored locally for inspection.`,
55
+ ``,
56
+ `- Status: **${status}**`,
57
+ `- Config default: ${config.auditLog ? "on" : "off"}`,
58
+ ];
59
+ if (workspaceDirResolved) {
60
+ lines.push(`- Log path: \`${workspaceDirResolved}/.cortex/audit/\``);
61
+ }
62
+ lines.push("", "Toggle: `/audit on` · `/audit off`");
63
+ return { text: lines.join("\n") };
64
+ },
65
+ });
66
+ registerCommand({
67
+ name: "checkpoint",
68
+ description: "Save a session checkpoint to Cortex before resetting",
69
+ acceptsArgs: true,
70
+ handler: checkpointHandler,
71
+ });
72
+ registerCommand({
73
+ name: "sleep",
74
+ description: "Mark the current session as cleanly ended (clears recovery warning state)",
75
+ acceptsArgs: false,
76
+ handler: async () => {
77
+ try {
78
+ await sessionState.clear();
79
+ return {
80
+ text: [
81
+ `**Session ended cleanly.**`,
82
+ ``,
83
+ `Cortex will not show a recovery warning when you start your next session.`,
84
+ `Use \`/checkpoint\` before \`/sleep\` if you want to save a summary of what you were working on.`,
85
+ ].join("\n"),
86
+ };
87
+ }
88
+ catch (err) {
89
+ return { text: `Failed to mark session clean: ${String(err)}` };
90
+ }
91
+ },
92
+ });
93
+ }
94
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/plugin/commands.ts"],"names":[],"mappings":"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"}
@@ -118,4 +118,4 @@ export declare const configSchema: {
118
118
  recallReferenceDate?: string | undefined;
119
119
  }>;
120
120
  };
121
- //# sourceMappingURL=schema.d.ts.map
121
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/plugin/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwBxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;IAqB7B;;;;;;;;;OASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,YAAY;qBACN,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGzB,CAAC"}
@@ -56,4 +56,4 @@ export const configSchema = {
56
56
  return CortexConfigSchema.safeParse(value);
57
57
  },
58
58
  };
59
- //# sourceMappingURL=schema.js.map
59
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/plugin/config.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { PluginApi } from "./types.js";
1
2
  export interface KnowledgeState {
2
3
  hasMemories: boolean;
3
4
  totalSessions: number;
@@ -5,93 +6,6 @@ export interface KnowledgeState {
5
6
  maturity: "cold" | "warming" | "mature" | "unknown";
6
7
  lastChecked: number;
7
8
  }
8
- interface HookMetadata {
9
- name: string;
10
- description: string;
11
- }
12
- interface ToolDefinition {
13
- name: string;
14
- description: string;
15
- parameters: Record<string, unknown>;
16
- execute: (id: string, params: Record<string, unknown>) => Promise<{
17
- content: Array<{
18
- type: string;
19
- text: string;
20
- }>;
21
- }>;
22
- }
23
- interface CommandDefinition {
24
- name: string;
25
- description: string;
26
- acceptsArgs?: boolean;
27
- requireAuth?: boolean;
28
- handler: (ctx: CommandContext) => Promise<{
29
- text: string;
30
- }> | {
31
- text: string;
32
- };
33
- }
34
- interface CommandContext {
35
- senderId?: string;
36
- channel?: string;
37
- isAuthorizedSender?: boolean;
38
- args?: string;
39
- commandBody?: string;
40
- config?: Record<string, unknown>;
41
- }
42
- interface PluginApi {
43
- pluginConfig?: Record<string, unknown>;
44
- logger: {
45
- debug?(...args: unknown[]): void;
46
- info(...args: unknown[]): void;
47
- warn(...args: unknown[]): void;
48
- error(...args: unknown[]): void;
49
- };
50
- on?(hookName: string, handler: (...args: any[]) => any, opts?: {
51
- priority?: number;
52
- }): void;
53
- registerHook?(hookName: string, handler: (...args: any[]) => any, metadata: HookMetadata): void;
54
- registerService(service: {
55
- id: string;
56
- start?: (ctx: {
57
- workspaceDir?: string;
58
- }) => void;
59
- stop?: (ctx: {
60
- workspaceDir?: string;
61
- }) => void;
62
- }): void;
63
- registerTool?(definition: ToolDefinition, options?: {
64
- optional?: boolean;
65
- }): void;
66
- registerCommand?(definition: CommandDefinition): void;
67
- registerGatewayMethod?(name: string, handler: (ctx: {
68
- respond: (ok: boolean, data: unknown) => void;
69
- }) => void): void;
70
- registerCli?(registrar: (ctx: {
71
- program: CliProgram;
72
- config: Record<string, unknown>;
73
- workspaceDir?: string;
74
- logger: Logger;
75
- }) => void, opts?: {
76
- commands?: string[];
77
- }): void;
78
- }
79
- interface CliProgram {
80
- command(name: string): CliCommand;
81
- }
82
- interface CliCommand {
83
- description(desc: string): CliCommand;
84
- command(name: string): CliCommand;
85
- argument(name: string, desc: string): CliCommand;
86
- option(flags: string, desc: string, defaultValue?: string): CliCommand;
87
- action(fn: (...args: any[]) => void | Promise<void>): CliCommand;
88
- }
89
- interface Logger {
90
- debug?(...args: unknown[]): void;
91
- info(...args: unknown[]): void;
92
- warn(...args: unknown[]): void;
93
- error(...args: unknown[]): void;
94
- }
95
9
  declare const plugin: {
96
10
  id: string;
97
11
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAEV,SAAS,EAEV,MAAM,YAAY,CAAC;AA2CpB,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;AAoJD,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBASI,SAAS;CAiXxB,CAAC;AAEF,eAAe,MAAM,CAAC"}