@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.
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;AAkD3D,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,CAmJN"}
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 userContent = extractLatestUserMessage(ev.messages).trim() || cleanPromptForCapture(ev.prompt ?? '');
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.logger.debug?.(`keyoku: captured exchange (${exchange.length} chars)`);
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: capture failed: ${String(err)}`);
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":"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"}
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,oBAAoB,CAC3B,GAAc,EACd,SAA8C,EAC9C,MAAoE;IAEpE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACjC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpD,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,mCAAmC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3F,CAAC;AACJ,CAAC;AAED,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,CAAC,OAA0D;IACjF,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAK,CAAC;SACnB,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,SAAS,wBAAwB,CAAC,QAA4B;IAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QAClC,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;IACxB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACzD,OAAO,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,GAAc,EACd,MAAoB,EACpB,QAAwB,EACxB,OAAe,EACf,MAA8B;IAE9B,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,4EAA4E,MAAM,CAAC,QAAQ,IAAI,SAAS,YAAY,OAAO,oBAAoB,MAAM,CAAC,eAAe,GAAG,CACzK,CAAC;IAEF,iFAAiF;IACjF,IAAI,iBAAiB,GAAkB,IAAI,CAAC;IAC5C,IAAI,eAAe,GAAkB,IAAI,CAAC;IAC1C,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,iBAAiB,GAAG,IAAI,CAAC;QACzB,eAAe,GAAG,IAAI,CAAC;IACzB,CAAC,CAAC;IAEF,8CAA8C;IAC9C,GAAG,CAAC,EAAE,CACJ,qBAAqB,EACrB,KAAK,EAAE,KAAc,EAAE,EAAE;QACvB,MAAM,EAAE,GAAG,KAA+B,CAAC;QAC3C,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,EAAE;YAC/C,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;YAClC,UAAU,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7D,YAAY,EAAE,CAAC;YACf,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,EAAE;gBAC/C,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,aAAa;gBACrB,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC;YACvC,YAAY,EAAE,CAAC;YACf,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,EAAE;gBAC/C,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,qBAAqB;gBAC7B,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,wBAAwB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACjE,MAAM,cAAc,GAAG,qBAAqB,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,WAAW,IAAI,cAAc,CAAC;QAClD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAC5D,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,EAAE;YAC/C,MAAM;YACN,QAAQ,EAAE,WAAW,CAAC,MAAM;SAC7B,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC5C,YAAY,EAAE,CAAC;YACf,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,EAAE;gBAC/C,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,wBAAwB;gBACtE,MAAM;gBACN,QAAQ,EAAE,WAAW,CAAC,MAAM;gBAC5B,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,mDAAmD;QACnD,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,YAAY,EAAE,CAAC;YACf,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,EAAE;gBAC/C,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,kBAAkB;gBAC1B,MAAM;gBACN,QAAQ,EAAE,WAAW,CAAC,MAAM;gBAC5B,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC3F,YAAY,EAAE,CAAC;YACf,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,EAAE;gBAC/C,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,oCAAoC;gBAC5C,MAAM;gBACN,QAAQ,EAAE,WAAW,CAAC,MAAM;gBAC5B,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;YAChD,YAAY,EAAE,CAAC;YACf,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,EAAE;gBAC/C,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,uBAAuB;gBAC/B,MAAM;gBACN,QAAQ,EAAE,WAAW,CAAC,MAAM;gBAC5B,OAAO,EAAE,MAAM,CAAC,eAAe;gBAC/B,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,wBAAwB,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1C,YAAY,EAAE,CAAC;YACf,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,EAAE;gBAC/C,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,2BAA2B;gBACnC,MAAM;gBACN,QAAQ,EAAE,WAAW,CAAC,MAAM;gBAC5B,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,iBAAiB,GAAG,WAAW,CAAC;QAChC,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAClD,oBAAoB,CAAC,GAAG,EAAE,qBAAqB,EAAE;YAC/C,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,IAAI;YACb,MAAM;YACN,QAAQ,EAAE,WAAW,CAAC,MAAM;YAC5B,SAAS,EAAE,eAAe;YAC1B,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC,EACD,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAClB,CAAC,CAAC,wCAAwC;IAE3C,yFAAyF;IACzF,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;QAC3C,MAAM,EAAE,GAAG,KAOV,CAAC;QACF,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE;YACrC,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;YAClC,UAAU,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;YAClC,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC;SACzC,CAAC,CAAC;QAEH,4CAA4C;QAC5C,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,eAAe,GAAmC,MAAM,CAAC;QAE7D,mDAAmD;QACnD,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YACd,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC;YAC7B,eAAe,GAAG,QAAQ,CAAC;QAC7B,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;oBAAE,SAAS;gBAEvC,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACpC,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC;gBACjC,CAAC;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACtC,gBAAgB,GAAG,GAAG,CAAC,OAAO;yBAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC;yBAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAK,CAAC;yBACnB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;gBACD,IAAI,gBAAgB,EAAE,CAAC;oBACrB,eAAe,GAAG,UAAU,CAAC;oBAC7B,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACtD,YAAY,EAAE,CAAC;YACf,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE;gBACrC,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,6BAA6B;gBACrF,gBAAgB,EAAE,eAAe;gBACjC,aAAa,EAAE,gBAAgB,CAAC,MAAM;gBACtC,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC;YACvC,YAAY,EAAE,CAAC;YACf,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE;gBACrC,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,qBAAqB;gBAC7B,gBAAgB,EAAE,eAAe;gBACjC,aAAa,EAAE,gBAAgB,CAAC,MAAM;gBACtC,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,8BAA8B;QAC9B,IAAI,gBAAgB,KAAK,cAAc,IAAI,gBAAgB,KAAK,UAAU,EAAE,CAAC;YAC3E,YAAY,EAAE,CAAC;YACf,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE;gBACrC,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,uBAAuB;gBAC/B,gBAAgB,EAAE,eAAe;gBACjC,aAAa,EAAE,gBAAgB,CAAC,MAAM;gBACtC,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IACE,gBAAgB,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAChD,gBAAgB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAC5C,CAAC;YACD,YAAY,EAAE,CAAC;YACf,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE;gBACrC,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,oCAAoC;gBAC5C,gBAAgB,EAAE,eAAe;gBACjC,aAAa,EAAE,gBAAgB,CAAC,MAAM;gBACtC,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,IAAI,wBAAwB,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC/C,YAAY,EAAE,CAAC;YACf,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE;gBACrC,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,2BAA2B;gBACnC,gBAAgB,EAAE,eAAe;gBACjC,aAAa,EAAE,gBAAgB,CAAC,MAAM;gBACtC,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,uDAAuD;QACvD,IAAI,QAAgB,CAAC;QACrB,MAAM,IAAI,GAAG,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC7D,IAAI,iBAAiB,EAAE,CAAC;YACtB,QAAQ,GAAG,SAAS,iBAAiB,kBAAkB,gBAAgB,EAAE,CAAC;YAC1E,iBAAiB,GAAG,IAAI,CAAC,CAAC,WAAW;QACvC,CAAC;aAAM,CAAC;YACN,kFAAkF;YAClF,QAAQ,GAAG,gBAAgB,CAAC;QAC9B,CAAC;QAED,gDAAgD;QAChD,IAAI,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;YAC7C,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,gBAAgB,GAAG,eAAe,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC5E,eAAe,GAAG,IAAI,CAAC;QACvB,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE;YACrC,OAAO,EAAE,KAAK;YACd,IAAI;YACJ,SAAS,EAAE,gBAAgB;YAC3B,gBAAgB,EAAE,eAAe;YACjC,aAAa,EAAE,gBAAgB,CAAC,MAAM;YACtC,YAAY,EAAE,QAAQ,CAAC,MAAM;YAC7B,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,EAAE;gBAChD,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,cAAc;aACvB,CAAC,CAAC;YACH,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE;gBACrC,IAAI;gBACJ,SAAS,EAAE,gBAAgB;gBAC3B,YAAY,EAAE,QAAQ,CAAC,MAAM;gBAC7B,QAAQ,EAAE,SAAS;aACpB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,kDAAkD,IAAI,cAAc,gBAAgB,iBAAiB,QAAQ,CAAC,MAAM,0BAA0B,MAAM,CAAC,GAAG,CAAC,EAAE,CAC5J,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
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
- export default function keyokuMemory(config?: KeyokuConfig): {
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
@@ -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,MAAM,CAAC,EAAE,YAAY;;;;;kBAOxC,SAAS;EAyC1B"}
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
- export default function keyokuMemory(config) {
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
- const cfg = resolveConfig(config);
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;AAE9C,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,MAAqB;IACxD,OAAO;QACL,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,4EAA4E;QACzF,IAAI,EAAE,QAAiB;QAEvB,QAAQ,CAAC,GAAc;YACrB,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YAElC,2BAA2B;YAC3B,uFAAuF;YACvF,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,SAAS,CAAC;YAC3C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;YACzC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAEjE,gFAAgF;YAChF,6EAA6E;YAC7E,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;gBAC9B,OAAO,EAAE,GAAG,CAAC,SAAS;gBACtB,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB;gBAC7C,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAChB,mCAAmC,GAAG,CAAC,SAAS,iBAAiB,QAAQ,eAAe,GAAG,CAAC,cAAc,GAAG,CAC9G,CAAC;YAEF,mCAAmC;YACnC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAE9C,kEAAkE;YAClE,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YAEnD,2CAA2C;YAC3C,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;YAEpC,2BAA2B;YAC3B,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEnC,2CAA2C;YAC3C,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;gBAC3B,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YAClE,CAAC;QAEH,CAAC;KACF,CAAC;AACJ,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.2",
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.2",
17
- "@keyoku/types": "1.4.2",
16
+ "@keyoku/memory": "1.4.5",
17
+ "@keyoku/types": "1.4.5",
18
18
  "@sinclair/typebox": "^0.34.0"
19
19
  },
20
20
  "peerDependencies": {