@keyoku/openclaw 1.4.2 → 1.4.5
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/bin/update-engine.js +0 -0
- package/dist/incremental-capture.d.ts.map +1 -1
- package/dist/incremental-capture.js +137 -4
- package/dist/incremental-capture.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -28
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/bin/update-engine.js
CHANGED
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incremental-capture.d.ts","sourceRoot":"","sources":["../src/incremental-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"incremental-capture.d.ts","sourceRoot":"","sources":["../src/incremental-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA6D3D,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC7B,IAAI,CAuRN"}
|
|
@@ -19,6 +19,12 @@
|
|
|
19
19
|
*/
|
|
20
20
|
import { looksLikePromptInjection } from './capture.js';
|
|
21
21
|
import { stripInboundMetadata } from './inbound-metadata.js';
|
|
22
|
+
function logCaptureDiagnostic(api, eventName, fields) {
|
|
23
|
+
const parts = Object.entries(fields)
|
|
24
|
+
.filter(([, value]) => value !== undefined)
|
|
25
|
+
.map(([key, value]) => `${key}=${String(value)}`);
|
|
26
|
+
api.logger.info(`keyoku: TEMP capture_diag event=${eventName}${parts.length ? ` ${parts.join(' ')}` : ''}`);
|
|
27
|
+
}
|
|
22
28
|
function stripInjectedBlocks(text) {
|
|
23
29
|
return text
|
|
24
30
|
.replace(/<your-memories>[\s\S]*?<\/your-memories>/gi, '')
|
|
@@ -58,6 +64,7 @@ function cleanPromptForCapture(prompt) {
|
|
|
58
64
|
return withoutInjected.replace(/\n{3,}/g, '\n\n').trim();
|
|
59
65
|
}
|
|
60
66
|
export function registerIncrementalCapture(api, client, resolver, agentId, config) {
|
|
67
|
+
api.logger.info(`keyoku: TEMP capture diagnostics registered (hook=incremental entityBase=${config.entityId || 'default'} agentId=${agentId} captureMaxChars=${config.captureMaxChars})`);
|
|
61
68
|
// Stash for the most recent user prompt, paired with the next assistant response
|
|
62
69
|
let pendingUserPrompt = null;
|
|
63
70
|
let pendingEntityId = null;
|
|
@@ -68,47 +75,121 @@ export function registerIncrementalCapture(api, client, resolver, agentId, confi
|
|
|
68
75
|
// Step 1: Stash user prompt (no API call yet)
|
|
69
76
|
api.on('before_prompt_build', async (event) => {
|
|
70
77
|
const ev = event;
|
|
78
|
+
logCaptureDiagnostic(api, 'before_prompt_build', {
|
|
79
|
+
fired: true,
|
|
80
|
+
messages: ev.messages?.length ?? 0,
|
|
81
|
+
prompt_len: ev.prompt?.length ?? 0,
|
|
82
|
+
});
|
|
71
83
|
if (!ev.prompt && (!ev.messages || ev.messages.length === 0)) {
|
|
72
84
|
clearPending();
|
|
85
|
+
logCaptureDiagnostic(api, 'before_prompt_build', {
|
|
86
|
+
skipped: true,
|
|
87
|
+
reason: 'empty_event',
|
|
88
|
+
remember: 'no',
|
|
89
|
+
});
|
|
73
90
|
return;
|
|
74
91
|
}
|
|
75
92
|
if (!resolver.isAllowed(ev, 'capture')) {
|
|
76
93
|
clearPending();
|
|
94
|
+
logCaptureDiagnostic(api, 'before_prompt_build', {
|
|
95
|
+
skipped: true,
|
|
96
|
+
reason: 'capture_not_allowed',
|
|
97
|
+
remember: 'no',
|
|
98
|
+
});
|
|
77
99
|
return;
|
|
78
100
|
}
|
|
79
|
-
const
|
|
101
|
+
const userMessage = extractLatestUserMessage(ev.messages).trim();
|
|
102
|
+
const promptFallback = cleanPromptForCapture(ev.prompt ?? '');
|
|
103
|
+
const userContent = userMessage || promptFallback;
|
|
104
|
+
const source = userMessage ? 'messages' : 'prompt_fallback';
|
|
105
|
+
logCaptureDiagnostic(api, 'before_prompt_build', {
|
|
106
|
+
source,
|
|
107
|
+
user_len: userContent.length,
|
|
108
|
+
});
|
|
80
109
|
if (!userContent || userContent.length < 10) {
|
|
81
110
|
clearPending();
|
|
111
|
+
logCaptureDiagnostic(api, 'before_prompt_build', {
|
|
112
|
+
skipped: true,
|
|
113
|
+
reason: !userContent ? 'empty_user_content' : 'user_content_too_short',
|
|
114
|
+
source,
|
|
115
|
+
user_len: userContent.length,
|
|
116
|
+
remember: 'no',
|
|
117
|
+
});
|
|
82
118
|
return;
|
|
83
119
|
}
|
|
84
120
|
// Don't stash heartbeat prompts or injected blocks
|
|
85
121
|
if (userContent.includes('HEARTBEAT')) {
|
|
86
122
|
clearPending();
|
|
123
|
+
logCaptureDiagnostic(api, 'before_prompt_build', {
|
|
124
|
+
skipped: true,
|
|
125
|
+
reason: 'heartbeat_prompt',
|
|
126
|
+
source,
|
|
127
|
+
user_len: userContent.length,
|
|
128
|
+
remember: 'no',
|
|
129
|
+
});
|
|
87
130
|
return;
|
|
88
131
|
}
|
|
89
132
|
if (userContent.includes('<your-memories>') || userContent.includes('<heartbeat-signals>')) {
|
|
90
133
|
clearPending();
|
|
134
|
+
logCaptureDiagnostic(api, 'before_prompt_build', {
|
|
135
|
+
skipped: true,
|
|
136
|
+
reason: 'injected_memory_or_heartbeat_block',
|
|
137
|
+
source,
|
|
138
|
+
user_len: userContent.length,
|
|
139
|
+
remember: 'no',
|
|
140
|
+
});
|
|
91
141
|
return;
|
|
92
142
|
}
|
|
93
143
|
if (userContent.length > config.captureMaxChars) {
|
|
94
144
|
clearPending();
|
|
145
|
+
logCaptureDiagnostic(api, 'before_prompt_build', {
|
|
146
|
+
skipped: true,
|
|
147
|
+
reason: 'user_content_too_long',
|
|
148
|
+
source,
|
|
149
|
+
user_len: userContent.length,
|
|
150
|
+
max_len: config.captureMaxChars,
|
|
151
|
+
remember: 'no',
|
|
152
|
+
});
|
|
95
153
|
return;
|
|
96
154
|
}
|
|
97
155
|
if (looksLikePromptInjection(userContent)) {
|
|
98
156
|
clearPending();
|
|
157
|
+
logCaptureDiagnostic(api, 'before_prompt_build', {
|
|
158
|
+
skipped: true,
|
|
159
|
+
reason: 'prompt_injection_detected',
|
|
160
|
+
source,
|
|
161
|
+
user_len: userContent.length,
|
|
162
|
+
remember: 'no',
|
|
163
|
+
});
|
|
99
164
|
return;
|
|
100
165
|
}
|
|
101
166
|
pendingUserPrompt = userContent;
|
|
102
167
|
pendingEntityId = resolver.resolve(ev, 'capture');
|
|
168
|
+
logCaptureDiagnostic(api, 'before_prompt_build', {
|
|
169
|
+
skipped: false,
|
|
170
|
+
pending: true,
|
|
171
|
+
source,
|
|
172
|
+
user_len: userContent.length,
|
|
173
|
+
entity_id: pendingEntityId,
|
|
174
|
+
remember: 'no',
|
|
175
|
+
});
|
|
103
176
|
}, { priority: -10 }); // Low priority — runs after auto-recall
|
|
104
177
|
// Step 2: On agent_end, extract the last assistant response and pair with stashed prompt
|
|
105
178
|
api.on('agent_end', async (event) => {
|
|
106
179
|
const ev = event;
|
|
180
|
+
logCaptureDiagnostic(api, 'agent_end', {
|
|
181
|
+
fired: true,
|
|
182
|
+
messages: ev.messages?.length ?? 0,
|
|
183
|
+
output_len: ev.output?.length ?? 0,
|
|
184
|
+
pending_user: Boolean(pendingUserPrompt),
|
|
185
|
+
});
|
|
107
186
|
// Extract assistant response from the event
|
|
108
187
|
let assistantContent = '';
|
|
188
|
+
let assistantSource = 'none';
|
|
109
189
|
// Try output first (some agent modes provide this)
|
|
110
190
|
if (ev.output) {
|
|
111
191
|
assistantContent = ev.output;
|
|
192
|
+
assistantSource = 'output';
|
|
112
193
|
}
|
|
113
194
|
// Fall back to last assistant message
|
|
114
195
|
if (!assistantContent && ev.messages) {
|
|
@@ -125,34 +206,72 @@ export function registerIncrementalCapture(api, client, resolver, agentId, confi
|
|
|
125
206
|
.map((b) => b.text)
|
|
126
207
|
.join(' ');
|
|
127
208
|
}
|
|
128
|
-
if (assistantContent)
|
|
209
|
+
if (assistantContent) {
|
|
210
|
+
assistantSource = 'messages';
|
|
129
211
|
break;
|
|
212
|
+
}
|
|
130
213
|
}
|
|
131
214
|
}
|
|
132
215
|
if (!assistantContent || assistantContent.length < 20) {
|
|
133
216
|
clearPending();
|
|
217
|
+
logCaptureDiagnostic(api, 'agent_end', {
|
|
218
|
+
skipped: true,
|
|
219
|
+
reason: !assistantContent ? 'empty_assistant_content' : 'assistant_content_too_short',
|
|
220
|
+
assistant_source: assistantSource,
|
|
221
|
+
assistant_len: assistantContent.length,
|
|
222
|
+
remember: 'no',
|
|
223
|
+
});
|
|
134
224
|
return;
|
|
135
225
|
}
|
|
136
226
|
if (!resolver.isAllowed(ev, 'capture')) {
|
|
137
227
|
clearPending();
|
|
228
|
+
logCaptureDiagnostic(api, 'agent_end', {
|
|
229
|
+
skipped: true,
|
|
230
|
+
reason: 'capture_not_allowed',
|
|
231
|
+
assistant_source: assistantSource,
|
|
232
|
+
assistant_len: assistantContent.length,
|
|
233
|
+
remember: 'no',
|
|
234
|
+
});
|
|
138
235
|
return;
|
|
139
236
|
}
|
|
140
237
|
// Skip heartbeat/memory noise
|
|
141
238
|
if (assistantContent === 'HEARTBEAT_OK' || assistantContent === 'NO_REPLY') {
|
|
142
239
|
clearPending();
|
|
240
|
+
logCaptureDiagnostic(api, 'agent_end', {
|
|
241
|
+
skipped: true,
|
|
242
|
+
reason: 'heartbeat_or_no_reply',
|
|
243
|
+
assistant_source: assistantSource,
|
|
244
|
+
assistant_len: assistantContent.length,
|
|
245
|
+
remember: 'no',
|
|
246
|
+
});
|
|
143
247
|
return;
|
|
144
248
|
}
|
|
145
249
|
if (assistantContent.includes('<heartbeat-signals>') ||
|
|
146
250
|
assistantContent.includes('<your-memories>')) {
|
|
147
251
|
clearPending();
|
|
252
|
+
logCaptureDiagnostic(api, 'agent_end', {
|
|
253
|
+
skipped: true,
|
|
254
|
+
reason: 'assistant_contains_injected_blocks',
|
|
255
|
+
assistant_source: assistantSource,
|
|
256
|
+
assistant_len: assistantContent.length,
|
|
257
|
+
remember: 'no',
|
|
258
|
+
});
|
|
148
259
|
return;
|
|
149
260
|
}
|
|
150
261
|
if (looksLikePromptInjection(assistantContent)) {
|
|
151
262
|
clearPending();
|
|
263
|
+
logCaptureDiagnostic(api, 'agent_end', {
|
|
264
|
+
skipped: true,
|
|
265
|
+
reason: 'prompt_injection_detected',
|
|
266
|
+
assistant_source: assistantSource,
|
|
267
|
+
assistant_len: assistantContent.length,
|
|
268
|
+
remember: 'no',
|
|
269
|
+
});
|
|
152
270
|
return;
|
|
153
271
|
}
|
|
154
272
|
// Build the exchange: user prompt + assistant response
|
|
155
273
|
let exchange;
|
|
274
|
+
const mode = pendingUserPrompt ? 'paired' : 'assistant-only';
|
|
156
275
|
if (pendingUserPrompt) {
|
|
157
276
|
exchange = `User: ${pendingUserPrompt}\n\nAssistant: ${assistantContent}`;
|
|
158
277
|
pendingUserPrompt = null; // consumed
|
|
@@ -167,15 +286,29 @@ export function registerIncrementalCapture(api, client, resolver, agentId, confi
|
|
|
167
286
|
}
|
|
168
287
|
const resolvedEntityId = pendingEntityId ?? resolver.resolve(ev, 'capture');
|
|
169
288
|
pendingEntityId = null;
|
|
289
|
+
logCaptureDiagnostic(api, 'agent_end', {
|
|
290
|
+
skipped: false,
|
|
291
|
+
mode,
|
|
292
|
+
entity_id: resolvedEntityId,
|
|
293
|
+
assistant_source: assistantSource,
|
|
294
|
+
assistant_len: assistantContent.length,
|
|
295
|
+
exchange_len: exchange.length,
|
|
296
|
+
remember: 'call',
|
|
297
|
+
});
|
|
170
298
|
try {
|
|
171
299
|
await client.remember(resolvedEntityId, exchange, {
|
|
172
300
|
agent_id: agentId,
|
|
173
301
|
source: 'conversation',
|
|
174
302
|
});
|
|
175
|
-
api
|
|
303
|
+
logCaptureDiagnostic(api, 'agent_end', {
|
|
304
|
+
mode,
|
|
305
|
+
entity_id: resolvedEntityId,
|
|
306
|
+
exchange_len: exchange.length,
|
|
307
|
+
remember: 'success',
|
|
308
|
+
});
|
|
176
309
|
}
|
|
177
310
|
catch (err) {
|
|
178
|
-
api.logger.warn(`keyoku:
|
|
311
|
+
api.logger.warn(`keyoku: TEMP capture_diag event=agent_end mode=${mode} entity_id=${resolvedEntityId} exchange_len=${exchange.length} remember=failed error=${String(err)}`);
|
|
179
312
|
}
|
|
180
313
|
});
|
|
181
314
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incremental-capture.js","sourceRoot":"","sources":["../src/incremental-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAGxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAY7D,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,IAAI;SACR,OAAO,CAAC,4CAA4C,EAAE,EAAE,CAAC;SACzD,OAAO,CAAC,oDAAoD,EAAE,EAAE,CAAC;SACjE,OAAO,CAAC,oDAAoD,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,eAAe,
|
|
1
|
+
{"version":3,"file":"incremental-capture.js","sourceRoot":"","sources":["../src/incremental-capture.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,11 +14,14 @@ import { type KeyokuConfig } from './config.js';
|
|
|
14
14
|
import type { PluginApi } from './types.js';
|
|
15
15
|
export type { KeyokuConfig } from './config.js';
|
|
16
16
|
export { KeyokuClient } from '@keyoku/memory';
|
|
17
|
-
|
|
17
|
+
type KeyokuMemoryPlugin = ReturnType<typeof createKeyokuMemoryPlugin>;
|
|
18
|
+
declare function createKeyokuMemoryPlugin(config?: KeyokuConfig): {
|
|
18
19
|
id: string;
|
|
19
20
|
name: string;
|
|
20
21
|
description: string;
|
|
21
22
|
kind: "memory";
|
|
22
23
|
register(api: PluginApi): void;
|
|
23
24
|
};
|
|
25
|
+
export { createKeyokuMemoryPlugin };
|
|
26
|
+
export default function keyokuMemory(configOrApi?: KeyokuConfig | PluginApi): KeyokuMemoryPlugin | void;
|
|
24
27
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,aAAa,CAAC;AAO/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,aAAa,CAAC;AAO/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC;AA6CtE,iBAAS,wBAAwB,CAAC,MAAM,CAAC,EAAE,YAAY;;;;;kBAOrC,SAAS;EAI1B;AAcD,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAEpC,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,WAAW,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,kBAAkB,GAAG,IAAI,CAMtG"}
|
package/dist/index.js
CHANGED
|
@@ -19,41 +19,63 @@ import { registerCli } from './cli.js';
|
|
|
19
19
|
import { registerIncrementalCapture } from './incremental-capture.js';
|
|
20
20
|
import { createEntityResolver } from './entity-resolver.js';
|
|
21
21
|
export { KeyokuClient } from '@keyoku/memory';
|
|
22
|
-
|
|
22
|
+
function registerKeyokuMemory(api, config) {
|
|
23
|
+
const cfg = resolveConfig(config ?? api.pluginConfig);
|
|
24
|
+
// Resolve entity/agent IDs
|
|
25
|
+
// entityId = base memory namespace; resolver can derive dynamic child scopes per event
|
|
26
|
+
// agentId = attribution marker for writes
|
|
27
|
+
const entityId = cfg.entityId || 'default';
|
|
28
|
+
const agentId = cfg.agentId || 'default';
|
|
29
|
+
const resolver = createEntityResolver(entityId, cfg, api.logger);
|
|
30
|
+
// Token resolved lazily — the service generates it at startup, after register()
|
|
31
|
+
// 60s timeout: remember calls LLM extraction, heartbeatContext does analysis
|
|
32
|
+
const client = new KeyokuClient({
|
|
33
|
+
baseUrl: cfg.keyokuUrl,
|
|
34
|
+
token: () => process.env.KEYOKU_SESSION_TOKEN,
|
|
35
|
+
timeout: 60000,
|
|
36
|
+
});
|
|
37
|
+
api.logger.debug?.(`keyoku: plugin registered (url: ${cfg.keyokuUrl}, entityBase: ${entityId}, strategy: ${cfg.entityStrategy})`);
|
|
38
|
+
api.logger.info(`keyoku: TEMP capture diagnostics enabled (plugin=keyoku-memory incrementalCapture=${cfg.incrementalCapture} url=${cfg.keyokuUrl} entityBase=${entityId} strategy=${cfg.entityStrategy})`);
|
|
39
|
+
// Register 6 memory/schedule tools
|
|
40
|
+
registerTools(api, client, resolver, agentId);
|
|
41
|
+
// Register lifecycle hooks (auto-recall, heartbeat, auto-capture)
|
|
42
|
+
registerHooks(api, client, resolver, agentId, cfg);
|
|
43
|
+
// Register Keyoku binary lifecycle service
|
|
44
|
+
registerService(api, cfg.keyokuUrl);
|
|
45
|
+
// Register CLI subcommands
|
|
46
|
+
registerCli(api, client, entityId);
|
|
47
|
+
// Register incremental per-message capture
|
|
48
|
+
if (cfg.incrementalCapture) {
|
|
49
|
+
registerIncrementalCapture(api, client, resolver, agentId, cfg);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function createKeyokuMemoryPlugin(config) {
|
|
23
53
|
return {
|
|
24
54
|
id: 'keyoku-memory',
|
|
25
55
|
name: 'Keyoku Memory',
|
|
26
56
|
description: 'Persistent memory, heartbeat enhancement, and scheduling powered by Keyoku',
|
|
27
57
|
kind: 'memory',
|
|
28
58
|
register(api) {
|
|
29
|
-
|
|
30
|
-
// Resolve entity/agent IDs
|
|
31
|
-
// entityId = base memory namespace; resolver can derive dynamic child scopes per event
|
|
32
|
-
// agentId = attribution marker for writes
|
|
33
|
-
const entityId = cfg.entityId || 'default';
|
|
34
|
-
const agentId = cfg.agentId || 'default';
|
|
35
|
-
const resolver = createEntityResolver(entityId, cfg, api.logger);
|
|
36
|
-
// Token resolved lazily — the service generates it at startup, after register()
|
|
37
|
-
// 60s timeout: remember calls LLM extraction, heartbeatContext does analysis
|
|
38
|
-
const client = new KeyokuClient({
|
|
39
|
-
baseUrl: cfg.keyokuUrl,
|
|
40
|
-
token: () => process.env.KEYOKU_SESSION_TOKEN,
|
|
41
|
-
timeout: 60000,
|
|
42
|
-
});
|
|
43
|
-
api.logger.debug?.(`keyoku: plugin registered (url: ${cfg.keyokuUrl}, entityBase: ${entityId}, strategy: ${cfg.entityStrategy})`);
|
|
44
|
-
// Register 6 memory/schedule tools
|
|
45
|
-
registerTools(api, client, resolver, agentId);
|
|
46
|
-
// Register lifecycle hooks (auto-recall, heartbeat, auto-capture)
|
|
47
|
-
registerHooks(api, client, resolver, agentId, cfg);
|
|
48
|
-
// Register Keyoku binary lifecycle service
|
|
49
|
-
registerService(api, cfg.keyokuUrl);
|
|
50
|
-
// Register CLI subcommands
|
|
51
|
-
registerCli(api, client, entityId);
|
|
52
|
-
// Register incremental per-message capture
|
|
53
|
-
if (cfg.incrementalCapture) {
|
|
54
|
-
registerIncrementalCapture(api, client, resolver, agentId, cfg);
|
|
55
|
-
}
|
|
59
|
+
registerKeyokuMemory(api, config);
|
|
56
60
|
},
|
|
57
61
|
};
|
|
58
62
|
}
|
|
63
|
+
function isPluginApi(value) {
|
|
64
|
+
if (!value || typeof value !== 'object')
|
|
65
|
+
return false;
|
|
66
|
+
const candidate = value;
|
|
67
|
+
return (typeof candidate.registerTool === 'function' &&
|
|
68
|
+
typeof candidate.registerCli === 'function' &&
|
|
69
|
+
typeof candidate.registerService === 'function' &&
|
|
70
|
+
typeof candidate.resolvePath === 'function' &&
|
|
71
|
+
typeof candidate.on === 'function');
|
|
72
|
+
}
|
|
73
|
+
export { createKeyokuMemoryPlugin };
|
|
74
|
+
export default function keyokuMemory(configOrApi) {
|
|
75
|
+
if (isPluginApi(configOrApi)) {
|
|
76
|
+
registerKeyokuMemory(configOrApi);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
return createKeyokuMemoryPlugin(configOrApi);
|
|
80
|
+
}
|
|
59
81
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAqB,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAI5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keyoku/openclaw",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.5",
|
|
4
4
|
"description": "Keyoku memory plugin for OpenClaw — persistent memory, heartbeat enhancement, and scheduling",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"build": "tsc"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@keyoku/memory": "1.4.
|
|
17
|
-
"@keyoku/types": "1.4.
|
|
16
|
+
"@keyoku/memory": "1.4.5",
|
|
17
|
+
"@keyoku/types": "1.4.5",
|
|
18
18
|
"@sinclair/typebox": "^0.34.0"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|