@mingxy/cerebro 1.10.6 → 1.10.7

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/dist/hooks.js CHANGED
@@ -1,31 +1,33 @@
1
1
  import { detectKeyword, KEYWORD_NUDGE } from "./keywords.js";
2
+ import { logDebug, logError as logErr } from "./logger.js";
2
3
  import { readFile } from "node:fs/promises";
3
4
  const projectNameCache = new Map();
4
5
  async function detectProjectName(rootPath) {
5
6
  const cached = projectNameCache.get(rootPath);
6
- if (cached !== undefined)
7
+ if (cached !== undefined) {
8
+ logDebug("detectProjectName cache hit", { rootPath, result: cached });
7
9
  return cached;
10
+ }
8
11
  let result;
9
- // 1. AGENTS.md — first-line heading
10
12
  try {
11
13
  const agents = await readFile(`${rootPath}/AGENTS.md`, "utf-8");
12
14
  const headingMatch = agents.match(/^#\s+(.+)/m);
13
15
  if (headingMatch) {
14
16
  result = headingMatch[1].replace(/\s*\(.*?\)/g, "").trim() || undefined;
15
17
  }
18
+ logDebug("detectProjectName step1 AGENTS.md", { rootPath, result });
16
19
  }
17
20
  catch { }
18
- // 2. package.json
19
21
  if (!result) {
20
22
  try {
21
23
  const pkg = await readFile(`${rootPath}/package.json`, "utf-8");
22
24
  const nameMatch = pkg.match(/"name"\s*:\s*"([^"]+)"/);
23
25
  if (nameMatch)
24
26
  result = nameMatch[1].trim() || undefined;
27
+ logDebug("detectProjectName step2 package.json", { rootPath, result });
25
28
  }
26
29
  catch { }
27
30
  }
28
- // 3. Cargo.toml — name in [package]
29
31
  if (!result) {
30
32
  try {
31
33
  const cargo = await readFile(`${rootPath}/Cargo.toml`, "utf-8");
@@ -42,10 +44,10 @@ async function detectProjectName(rootPath) {
42
44
  return acc;
43
45
  }, { inSection: false, name: undefined });
44
46
  result = inPackage.name?.trim() || undefined;
47
+ logDebug("detectProjectName step3 Cargo.toml", { rootPath, result });
45
48
  }
46
49
  catch { }
47
50
  }
48
- // 4. go.mod — module last segment
49
51
  if (!result) {
50
52
  try {
51
53
  const gomod = await readFile(`${rootPath}/go.mod`, "utf-8");
@@ -54,10 +56,10 @@ async function detectProjectName(rootPath) {
54
56
  const segments = modMatch[1].split("/");
55
57
  result = segments.pop()?.trim() || undefined;
56
58
  }
59
+ logDebug("detectProjectName step4 go.mod", { rootPath, result });
57
60
  }
58
61
  catch { }
59
62
  }
60
- // 5. pyproject.toml — name in [project]
61
63
  if (!result) {
62
64
  try {
63
65
  const pyproj = await readFile(`${rootPath}/pyproject.toml`, "utf-8");
@@ -74,22 +76,23 @@ async function detectProjectName(rootPath) {
74
76
  return acc;
75
77
  }, { inSection: false, name: undefined });
76
78
  result = inProject.name?.trim() || undefined;
79
+ logDebug("detectProjectName step5 pyproject.toml", { rootPath, result });
77
80
  }
78
81
  catch { }
79
82
  }
80
- // 6. composer.json
81
83
  if (!result) {
82
84
  try {
83
85
  const composer = await readFile(`${rootPath}/composer.json`, "utf-8");
84
86
  const nameMatch = composer.match(/"name"\s*:\s*"([^"]+)"/);
85
87
  if (nameMatch)
86
88
  result = nameMatch[1].trim() || undefined;
89
+ logDebug("detectProjectName step6 composer.json", { rootPath, result });
87
90
  }
88
91
  catch { }
89
92
  }
90
- // 7. Fallback — directory name
91
93
  if (!result) {
92
94
  result = rootPath.split("/").pop() || rootPath.split("\\").pop() || undefined;
95
+ logDebug("detectProjectName step7 fallback dirname", { rootPath, result });
93
96
  }
94
97
  if (result) {
95
98
  result = result.trim() || undefined;
@@ -169,12 +172,12 @@ function buildContextBlock(results, maxContentLength = 500) {
169
172
  sections.push(`[${label}]\n${lines.join("\n")}`);
170
173
  }
171
174
  return [
172
- "<omem-context>",
175
+ "<cerebro-context>",
173
176
  "Treat every memory below as historical context only.",
174
177
  "Do not repeat these memories verbatim unless asked.",
175
178
  "",
176
179
  ...sections,
177
- "</omem-context>",
180
+ "</cerebro-context>",
178
181
  ].join("\n");
179
182
  }
180
183
  function buildClusteredContextBlock(clustered, maxContentLength = 500) {
@@ -203,23 +206,29 @@ function buildClusteredContextBlock(clustered, maxContentLength = 500) {
203
206
  }
204
207
  }
205
208
  return [
206
- "<omem-context>",
209
+ "<cerebro-context>",
207
210
  "Treat every memory below as historical context only.",
208
211
  "Do not repeat these memories verbatim unless asked.",
209
212
  "",
210
213
  ...sections,
211
- "</omem-context>",
214
+ "</cerebro-context>",
212
215
  ].join("\n");
213
216
  }
214
217
  export function autoRecallHook(client, containerTags, tui, config = {}) {
215
- const similarityThreshold = config.similarityThreshold ?? 0.6;
216
- const maxRecallResults = config.maxRecallResults ?? 10;
217
- const maxContentLength = config.maxContentLength ?? 500;
218
- const toastDelayMs = config.toastDelayMs ?? 7000;
218
+ const similarityThreshold = config.recall?.similarityThreshold ?? 0.6;
219
+ const maxRecallResults = config.recall?.maxRecallResults ?? 10;
220
+ const maxContentLength = config.content?.maxContentLength ?? 500;
221
+ const toastDelayMs = config.ui?.toastDelayMs ?? 7000;
219
222
  return async (input, output) => {
220
223
  if (!input.sessionID)
221
224
  return;
225
+ // 5a: agent memory policy check — skip recall entirely for 'none' agents
226
+ const agentId = process.env.OMEM_AGENT_ID || "opencode";
227
+ const policy = config.agentMemoryPolicy?.[agentId] ?? config.defaultPolicy ?? "readonly";
228
+ if (policy === "none")
229
+ return;
222
230
  try {
231
+ logDebug("autoRecallHook start", { sessionId: input.sessionID, agentId, policy });
223
232
  const messages = sessionMessages.get(input.sessionID) ?? [];
224
233
  const userMessages = messages.filter((m) => m.role === "user");
225
234
  const rawQuery = userMessages[userMessages.length - 1]?.content || firstMessages.get(input.sessionID) || "";
@@ -231,14 +240,15 @@ export function autoRecallHook(client, containerTags, tui, config = {}) {
231
240
  showToast(tui, "🧠 Cerebro Service Unavailable", "Unable to reach memory API · check connection", "error", toastDelayMs);
232
241
  return;
233
242
  }
243
+ logDebug("autoRecallHook shouldRecall result", { shouldRecall: shouldRecallRes.should_recall, confidence: shouldRecallRes.confidence, memCount: shouldRecallRes.memories?.length ?? 0, clustered: !!shouldRecallRes.clustered });
234
244
  const profile = await client.getProfile();
235
245
  let profileInjected = false;
236
246
  let profileCountText = "";
237
247
  if (profile && !profileInjectedSessions.has(input.sessionID)) {
238
248
  const profileBlock = [
239
- "<omem-profile>",
249
+ "<cerebro-profile>",
240
250
  JSON.stringify(profile, null, 2),
241
- "</omem-profile>",
251
+ "</cerebro-profile>",
242
252
  ].join("\n");
243
253
  output.system.push(profileBlock);
244
254
  profileInjected = true;
@@ -247,6 +257,7 @@ export function autoRecallHook(client, containerTags, tui, config = {}) {
247
257
  const dynamicCount = p?.dynamic_context?.length ?? 0;
248
258
  const staticCount = p?.static_facts?.length ?? 0;
249
259
  profileCountText = `Dynamic(${dynamicCount}) · Static(${staticCount})`;
260
+ logDebug("autoRecallHook profile injected", { dynamicCount, staticCount });
250
261
  }
251
262
  if (!shouldRecallRes.should_recall) {
252
263
  if (profileInjected) {
@@ -258,6 +269,7 @@ export function autoRecallHook(client, containerTags, tui, config = {}) {
258
269
  const clustered = shouldRecallRes.clustered;
259
270
  const existingIds = injectedMemoryIds.get(input.sessionID) ?? new Set();
260
271
  const newResults = results.filter((r) => !existingIds.has(r.memory.id));
272
+ logDebug("autoRecallHook dedup", { totalResults: results.length, existingCount: existingIds.size, newCount: newResults.length });
261
273
  if (newResults.length === 0) {
262
274
  if (profileInjected) {
263
275
  showToast(tui, "👨 Profile Injected", `${profileCountText} · all memories already injected`, "success", toastDelayMs);
@@ -272,6 +284,7 @@ export function autoRecallHook(client, containerTags, tui, config = {}) {
272
284
  }
273
285
  const newIds = newResults.map((r) => r.memory.id);
274
286
  injectedMemoryIds.set(input.sessionID, new Set([...existingIds, ...newIds]));
287
+ logDebug("autoRecallHook injection complete", { newIds: newIds.length, clustered: !!clustered });
275
288
  const recordResult = await client.recordSessionRecall(input.sessionID, newIds, "auto", query_text, shouldRecallRes?.memories?.[0]?.score, shouldRecallRes?.confidence);
276
289
  const memDynamic = newResults.filter((r) => r.memory.memory_type === "fact" || r.memory.memory_type === "event").length;
277
290
  const memStatic = newResults.filter((r) => r.memory.memory_type === "pinned" || r.memory.memory_type === "preference").length;
@@ -314,9 +327,9 @@ export function autoRecallHook(client, containerTags, tui, config = {}) {
314
327
  }
315
328
  catch (err) {
316
329
  const errMsg = err instanceof Error ? err.message : String(err);
317
- if (errMsg.includes("[omem]")) {
330
+ if (errMsg.includes("[cerebro]")) {
318
331
  // Server returned error (500, etc.) with details
319
- const cleanMsg = errMsg.replace(/^\[omem\]\s*/, "");
332
+ const cleanMsg = errMsg.replace(/^\[cerebro\]\s*/, "");
320
333
  if (cleanMsg.startsWith("500")) {
321
334
  showToast(tui, "🧠 Cerebro Server Error", cleanMsg.substring(0, 200), "error");
322
335
  }
@@ -349,6 +362,7 @@ export function keywordDetectionHook(_client, _containerTags, threshold, _tui, _
349
362
  }
350
363
  if (detectKeyword(textContent)) {
351
364
  keywordDetectedSessions.add(input.sessionID);
365
+ logDebug("keywordDetectionHook triggered", { sessionId: input.sessionID });
352
366
  }
353
367
  if (!sessionMessages.has(input.sessionID)) {
354
368
  sessionMessages.set(input.sessionID, []);
@@ -376,28 +390,31 @@ export function compactingHook(client, containerTags, tui, ingestMode = "smart",
376
390
  if (messages.length > 0) {
377
391
  // Use main session ID for sub-agent sessions so memories merge into the main session
378
392
  const effectiveSessionId = (getMainSessionId?.() || input.sessionID);
379
- const isSubAgent = getMainSessionId?.() && input.sessionID !== getMainSessionId();
380
393
  // Detect project name from session info
381
394
  let projectName;
382
395
  try {
383
396
  if (sdkClient && input.sessionID) {
384
397
  const sessionInfo = await sdkClient.session.get({ path: { id: input.sessionID } });
385
- projectName = sessionInfo?.project?.rootPath
386
- ? await detectProjectName(sessionInfo.project.rootPath)
398
+ logDebug("compactingHook sessionInfo", { sessionInfo: JSON.stringify(sessionInfo) });
399
+ logDebug("compactingHook project.rootPath", { rootPath: sessionInfo?.data?.directory });
400
+ projectName = sessionInfo?.data?.directory
401
+ ? await detectProjectName(sessionInfo.data.directory)
387
402
  : undefined;
403
+ logDebug("compactingHook projectName", { projectName: String(projectName) });
388
404
  }
389
405
  }
390
- catch {
391
- // Detection failure should not block ingestion
406
+ catch (e) {
407
+ logErr("compactingHook detectProjectName failed", { error: String(e) });
392
408
  }
393
409
  try {
410
+ logDebug("compactingHook ingestMessages called", { msgCount: messages.length, projectName: String(projectName), sessionId: effectiveSessionId });
394
411
  const result = await client.ingestMessages(messages, {
395
412
  mode: ingestMode,
396
413
  tags: [...containerTags, "auto-capture"],
397
414
  sessionId: effectiveSessionId,
398
- parentSessionId: isSubAgent ? input.sessionID : undefined,
399
415
  projectName: projectName,
400
416
  });
417
+ logDebug("compactingHook ingestMessages result", { result: result === null ? "null(blocked)" : "ok" });
401
418
  if (result === null) {
402
419
  showToast(tui, "🔴 Archive Failed", "Session archive blocked · check spiritual realm status", "error");
403
420
  }
@@ -405,7 +422,8 @@ export function compactingHook(client, containerTags, tui, ingestMode = "smart",
405
422
  showToast(tui, "📦 Session Archived", `${messages.length} residual dialogues archived · merged into the realm`, "success");
406
423
  }
407
424
  }
408
- catch {
425
+ catch (e) {
426
+ logErr("compactingHook ingestMessages failed", { error: String(e) });
409
427
  showToast(tui, "🔴 Archive Failed", "Session archive blocked · spiritual pulse anomaly", "error");
410
428
  }
411
429
  sessionMessages.delete(input.sessionID);
@@ -425,7 +443,7 @@ export function compactingHook(client, containerTags, tui, ingestMode = "smart",
425
443
  }
426
444
  const processedMessageIds = new Set();
427
445
  const pluginStartTime = Date.now();
428
- export function sessionIdleHook(omemClient, _containerTags, tui, sdkClient, _ingestMode = "smart", threshold = 0, getMainSessionId, isAutoStoreEnabled, agentId) {
446
+ export function sessionIdleHook(cerebroClient, _containerTags, tui, sdkClient, _ingestMode = "smart", threshold = 0, getMainSessionId, isAutoStoreEnabled, agentId) {
429
447
  let idleTimeout = null;
430
448
  let isCapturing = false;
431
449
  return async (input) => {
@@ -487,22 +505,28 @@ export function sessionIdleHook(omemClient, _containerTags, tui, sdkClient, _ing
487
505
  let projectName;
488
506
  try {
489
507
  const sessionInfo = await sdkClient.session.get({ path: { id: sessionID } });
490
- sessionTitle = sessionInfo?.title;
491
- projectName = sessionInfo?.project?.rootPath
492
- ? await detectProjectName(sessionInfo.project.rootPath)
508
+ logDebug("sessionIdleHook sessionInfo", { sessionInfo: JSON.stringify(sessionInfo) });
509
+ logDebug("sessionIdleHook project.rootPath", { rootPath: sessionInfo?.data?.directory });
510
+ sessionTitle = sessionInfo?.data?.title;
511
+ projectName = sessionInfo?.data?.directory
512
+ ? await detectProjectName(sessionInfo.data.directory)
493
513
  : undefined;
514
+ logDebug("sessionIdleHook projectName", { projectName: String(projectName) });
494
515
  }
495
516
  catch (e) {
496
- // 获取失败不影响主流程
517
+ logErr("sessionIdleHook detectProjectName failed", { error: String(e) });
497
518
  }
498
519
  try {
499
- await omemClient.sessionIngest(conversationMessages, sessionID, agentId, sessionTitle, projectName);
520
+ logDebug("sessionIdleHook sessionIngest called", { msgCount: conversationMessages.length, projectName: String(projectName), sessionId: sessionID, title: String(sessionTitle) });
521
+ await cerebroClient.sessionIngest(conversationMessages, sessionID, agentId, sessionTitle, projectName);
522
+ logDebug("sessionIdleHook sessionIngest ok");
500
523
  for (const id of newMessageIds) {
501
524
  processedMessageIds.add(id);
502
525
  }
503
526
  showToast(tui, "🧠 Memory Sealed", `${conversationMessages.length} dialogues captured · entrusted to the heavens for refinement`, "success");
504
527
  }
505
528
  catch (err) {
529
+ logErr("sessionIdleHook sessionIngest failed", { error: String(err) });
506
530
  showToast(tui, "🔴 Session Capture Failed", String(err).substring(0, 100), "error");
507
531
  }
508
532
  }
package/dist/hooks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import { readFileSync, writeFileSync } from "node:fs";
2
2
  import { join, dirname } from "node:path";
3
3
  import { tmpdir } from "node:os";
4
4
  import { fileURLToPath } from "node:url";
5
- import { OmemClient } from "./client.js";
5
+ import { CerebroClient } from "./client.js";
6
6
  import { autoRecallHook, compactingHook, keywordDetectionHook, sessionIdleHook } from "./hooks.js";
7
7
  import { getUserTag, getProjectTag } from "./tags.js";
8
8
  import { buildTools } from "./tools.js";
@@ -69,28 +69,28 @@ const OmemPlugin = async (input) => {
69
69
  let overrides = {};
70
70
  try {
71
71
  const ocCfg = JSON.parse(readFileSync(join(directory, "opencode.json"), "utf-8"));
72
- const pc = ocCfg?.plugin_config?.["@mingxy/omem"] || ocCfg?.plugin_config?.["@ourmem/opencode"];
72
+ const pc = ocCfg?.plugin_config?.["@mingxy/cerebro"];
73
73
  if (pc)
74
74
  overrides = pc;
75
75
  }
76
76
  catch { }
77
77
  const config = loadPluginConfig(overrides);
78
- const omemClient = new OmemClient(config.apiUrl, config.apiKey, config);
78
+ const cerebroClient = new CerebroClient(config.connection.apiUrl, config.connection.apiKey, config);
79
79
  // 启动时检测连接状态
80
80
  try {
81
- await omemClient.getStats();
81
+ await cerebroClient.getStats();
82
82
  showToast(tui, "🧠 Cerebro · Connected", `Version v${pluginVersion}`, "success", 6000);
83
- logInfo(`Connected to ${config.apiUrl}`);
83
+ logInfo(`Connected to ${config.connection.apiUrl}`);
84
84
  }
85
85
  catch (err) {
86
86
  const errMsg = err instanceof Error ? err.message : String(err);
87
87
  logError(`Connection failed: ${errMsg}`);
88
- if (errMsg.includes("[omem]")) {
89
- const cleanMsg = errMsg.replace(/^\[omem\]\s*/, "");
88
+ if (errMsg.includes("[cerebro]")) {
89
+ const cleanMsg = errMsg.replace(/^\[cerebro\]\s*/, "");
90
90
  showToast(tui, `🧠 Cerebro v${pluginVersion} · Server Error`, cleanMsg.substring(0, 150), "error", 8000);
91
91
  }
92
92
  else {
93
- showToast(tui, `🧠 Cerebro v${pluginVersion} · Connection Failed`, `Unable to reach ${config.apiUrl}`, "error", 8000);
93
+ showToast(tui, `🧠 Cerebro v${pluginVersion} · Connection Failed`, `Unable to reach ${config.connection.apiUrl}`, "error", 8000);
94
94
  }
95
95
  }
96
96
  const email = process.env.GIT_AUTHOR_EMAIL || process.env.USER || "unknown";
@@ -98,7 +98,7 @@ const OmemPlugin = async (input) => {
98
98
  const containerTags = [getUserTag(email), getProjectTag(cwd)];
99
99
  const agentId = process.env.OMEM_AGENT_ID || "opencode";
100
100
  let currentSessionId;
101
- const recallHook = autoRecallHook(omemClient, containerTags, tui, config);
101
+ const recallHook = autoRecallHook(cerebroClient, containerTags, tui, config);
102
102
  return {
103
103
  config: async (cfg) => {
104
104
  cfg.command ??= {};
@@ -112,10 +112,10 @@ const OmemPlugin = async (input) => {
112
112
  currentSessionId = input.sessionID;
113
113
  return recallHook(input, output);
114
114
  },
115
- "chat.message": keywordDetectionHook(omemClient, containerTags, config.autoCaptureThreshold, tui, config.ingestMode),
116
- "experimental.session.compacting": compactingHook(omemClient, containerTags, tui, config.ingestMode, isAutoStoreEnabled, () => currentSessionId, client),
117
- tool: buildTools(omemClient, containerTags, { agentId, getSessionId: () => currentSessionId }),
118
- event: sessionIdleHook(omemClient, containerTags, tui, client, config.ingestMode, config.autoCaptureThreshold, () => currentSessionId, isAutoStoreEnabled, agentId),
115
+ "chat.message": keywordDetectionHook(cerebroClient, containerTags, config.ingest.autoCaptureThreshold, tui, config.ingest.ingestMode),
116
+ "experimental.session.compacting": compactingHook(cerebroClient, containerTags, tui, config.ingest.ingestMode, isAutoStoreEnabled, () => currentSessionId, client),
117
+ tool: buildTools(cerebroClient, containerTags, { agentId, getSessionId: () => currentSessionId }),
118
+ event: sessionIdleHook(cerebroClient, containerTags, tui, client, config.ingest.ingestMode, config.ingest.autoCaptureThreshold, () => currentSessionId, isAutoStoreEnabled, agentId),
119
119
  "shell.env": async (_input, output) => {
120
120
  if (directory) {
121
121
  output.env.OMEM_PROJECT_DIR = directory;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,IAAI,aAAa,GAAG,SAAS,CAAC;AAC9B,IAAI,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACrF,IAAI,GAAG,EAAE,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpD,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC;IAC9B,CAAC;AACH,CAAC;AAAC,MAAM,CAAC,CAAA,CAAC;AAEV,qFAAqF;AACrF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAmB,CAAC;AAErD,SAAS,gBAAgB,CAAC,SAAiB;IACzC,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,qBAAqB,SAAS,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAA6B;IAC9D,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAAiB,EAAE,OAAgB;IACrE,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,aAAa,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC;AAEA,UAAkB,CAAC,sBAAsB,GAAG,iBAAiB,CAAC;AAE/D,SAAS,SAAS,CAAC,GAAQ,EAAE,KAAa,EAAE,OAAgB,EAAE,UAAkB,MAAM,EAAE,WAAmB,IAAI;IAC7G,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC;YACH,MAAM,IAAI,GAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,CAAC;YACD,GAAG,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,GAAW,KAAK,EAAE,KAAK,EAAE,EAAE;IACzC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACpC,sEAAsE;IACtE,yDAAyD;IACzD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,EAAS,EAAE;QAC/B,GAAG,CAAC,CAAC,EAAE,IAAI;YACT,OAAQ,MAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;KACF,CAAC,CAAC;IAEH,kDAAkD;IAClD,IAAI,SAAS,GAA4B,EAAE,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAClF,MAAM,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,CAAC,iBAAiB,CAAC,CAAC;QACrD,IAAI,EAAE;YAAE,SAAS,GAAG,EAAE,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IAEV,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAgB,CAAC,CAAC;IAElD,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEpG,YAAY;IACZ,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC/B,SAAS,CAAC,GAAG,EAAE,wBAAwB,EAAE,YAAY,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACvF,OAAO,CAAC,gBAAgB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChE,QAAQ,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;YACvD,SAAS,CACP,GAAG,EACH,eAAe,aAAa,iBAAiB,EAC7C,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAC1B,OAAO,EACP,IAAI,CACL,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,SAAS,CACP,GAAG,EACH,eAAe,aAAa,sBAAsB,EAClD,mBAAmB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAC7C,OAAO,EACP,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC;IAC5E,MAAM,GAAG,GAAG,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACvC,MAAM,aAAa,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,UAAU,CAAC;IAExD,IAAI,gBAAoC,CAAC;IAEzC,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAE7E,OAAO;QACL,MAAM,EAAE,KAAK,EAAE,GAAQ,EAAE,EAAE;YACzB,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC;YACnB,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG;gBAC7B,QAAQ,EAAE,kKAAkK;gBAC5K,WAAW,EAAE,yDAAyD;aACvE,CAAC;QACJ,CAAC;QACD,oCAAoC,EAAE,KAAK,EAAE,KAAU,EAAE,MAAW,EAAE,EAAE;YACtE,IAAI,KAAK,CAAC,SAAS;gBAAE,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC;YACxD,OAAO,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;QACD,cAAc,EAAE,oBAAoB,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QACrI,iCAAiC,EAAE,cAAc,CAAC,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClK,IAAI,EAAE,UAAU,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC;QACjG,KAAK,EAAE,eAAe,CAAC,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,OAAO,CAAC;QACpL,WAAW,EAAE,KAAK,EAAE,MAAW,EAAE,MAAW,EAAE,EAAE;YAC9C,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,GAAG,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAC1C,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,eAAe;IACb,EAAE,EAAE,QAAQ;IACZ,MAAM,EAAE,UAAU;CACnB,CAAC"}
package/dist/logger.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export declare function logInfo(...args: unknown[]): void;
2
- export declare function logWarn(...args: unknown[]): void;
3
- export declare function logError(...args: unknown[]): void;
4
- export declare function logDebug(...args: unknown[]): void;
1
+ export declare function logInfo(message: string, fields?: Record<string, unknown>): void;
2
+ export declare function logWarn(message: string, fields?: Record<string, unknown>): void;
3
+ export declare function logError(message: string, fields?: Record<string, unknown>): void;
4
+ export declare function logDebug(message: string, fields?: Record<string, unknown>): void;
5
5
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AA+BA,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAEhD;AAED,wBAAgB,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAEhD;AAED,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAEjD;AAED,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAEjD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAkDA,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE/E;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE/E;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEhF;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEhF"}
package/dist/logger.js CHANGED
@@ -1,42 +1,61 @@
1
1
  import { appendFileSync, mkdirSync, existsSync } from "node:fs";
2
- import { homedir } from "node:os";
3
2
  import { join } from "node:path";
4
- const LOG_DIR = join(homedir(), ".config", "ourmem");
3
+ import { loadPluginConfig } from "./config.js";
4
+ const LEVEL_MAP = {
5
+ DEBUG: 0,
6
+ INFO: 1,
7
+ WARN: 2,
8
+ ERROR: 3,
9
+ };
10
+ const cfg = loadPluginConfig();
11
+ const MIN_LEVEL = LEVEL_MAP[cfg.logging.logLevel] ?? LEVEL_MAP.INFO;
12
+ const LOG_DIR = cfg.logging.logDir;
5
13
  const LOG_FILE = join(LOG_DIR, "plugin.log");
14
+ const LOG_ENABLED = cfg.logging.logEnabled;
15
+ let lastLogTime = Date.now();
6
16
  function ensureLogDir() {
7
17
  if (!existsSync(LOG_DIR)) {
8
18
  try {
9
19
  mkdirSync(LOG_DIR, { recursive: true });
10
20
  }
11
- catch {
12
- // silently fail if we can't create log directory
13
- }
21
+ catch { }
14
22
  }
15
23
  }
16
- function writeLog(level, ...args) {
24
+ function writeLog(level, message, fields) {
25
+ if (!LOG_ENABLED)
26
+ return;
27
+ const lvl = LEVEL_MAP[level] ?? 0;
28
+ if (lvl < MIN_LEVEL)
29
+ return;
17
30
  ensureLogDir();
18
- const timestamp = new Date().toISOString();
19
- const message = args
20
- .map((a) => (typeof a === "string" ? a : JSON.stringify(a)))
21
- .join(" ");
22
- const line = `[${timestamp}] [${level}] ${message}\n`;
23
- try {
24
- appendFileSync(LOG_FILE, line);
31
+ const now = new Date();
32
+ const nowMs = now.getTime();
33
+ const delta = ((nowMs - lastLogTime) / 1000).toFixed(2);
34
+ lastLogTime = nowMs;
35
+ const ts = now.toISOString().replace("T", " ").replace(/\.\d+Z$/, "");
36
+ const parts = [`${level.padEnd(5)} ${ts} +${delta}s service=cerebro`];
37
+ if (fields) {
38
+ for (const [k, v] of Object.entries(fields)) {
39
+ const val = typeof v === "string" ? v : JSON.stringify(v);
40
+ parts.push(`${k}=${val}`);
41
+ }
25
42
  }
26
- catch {
27
- // silently fail if we can't write to log file
43
+ parts.push(message);
44
+ try {
45
+ appendFileSync(LOG_FILE, parts.join(" ") + "\n");
28
46
  }
47
+ catch { }
29
48
  }
30
- export function logInfo(...args) {
31
- writeLog("INFO", ...args);
49
+ export function logInfo(message, fields) {
50
+ writeLog("INFO", message, fields);
32
51
  }
33
- export function logWarn(...args) {
34
- writeLog("WARN", ...args);
52
+ export function logWarn(message, fields) {
53
+ writeLog("WARN", message, fields);
35
54
  }
36
- export function logError(...args) {
37
- writeLog("ERROR", ...args);
55
+ export function logError(message, fields) {
56
+ writeLog("ERROR", message, fields);
38
57
  }
39
- export function logDebug(...args) {
40
- writeLog("DEBUG", ...args);
58
+ export function logDebug(message, fields) {
59
+ writeLog("DEBUG", message, fields);
41
60
  }
42
61
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAE7C,SAAS,YAAY;IACnB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;QACnD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAG,IAAe;IACjD,YAAY,EAAE,CAAC;IACf,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI;SACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,MAAM,IAAI,GAAG,IAAI,SAAS,MAAM,KAAK,KAAK,OAAO,IAAI,CAAC;IACtD,IAAI,CAAC;QACH,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,8CAA8C;IAChD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAG,IAAe;IACxC,QAAQ,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAG,IAAe;IACxC,QAAQ,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAG,IAAe;IACzC,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAG,IAAe;IACzC,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import type { OmemClient } from "./client.js";
1
+ import type { CerebroClient } from "./client.js";
2
2
  export interface ToolContext {
3
3
  agentId?: string;
4
4
  getSessionId: () => string | undefined;
5
5
  }
6
- export declare function buildTools(client: OmemClient, containerTags: string[], context: ToolContext): {
6
+ export declare function buildTools(client: CerebroClient, containerTags: string[], context: ToolContext): {
7
7
  memory_store: {
8
8
  description: string;
9
9
  args: {