@cortexkit/opencode-magic-context 0.6.0 โ†’ 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -39,7 +39,7 @@ Your agent should never stop working to manage its own context. Magic Context is
39
39
 
40
40
  **5.** TUI sidebar with live context breakdown, token usage, historian status, and memory counts โ€” right inside the terminal.
41
41
 
42
- ### ๐Ÿงช Experimental
42
+ ### ๐Ÿงช New Experimental Features
43
43
 
44
44
  **Compaction Markers** โ€” after historian compresses older messages, Magic Context injects a boundary into OpenCode's message table. OpenCode's built-in message loader stops at the boundary, so the transform processes only the live tail instead of the full session history. Dramatically reduces per-turn overhead on long sessions. Enable with `experimental.compaction_markers: true`.
45
45
 
@@ -1 +1 @@
1
- {"version":3,"file":"storage-memory.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/storage-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage-memory.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/memory/storage-memory.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ import type { Database } from "bun:sqlite";
18
18
  * Messages are auto-cleaned after 5 minutes to prevent table bloat.
19
19
  */
20
20
  export type MessageDirection = "server_to_tui" | "tui_to_server";
21
- export type MessageType = "toast" | "dialog_confirm" | "dialog_result" | "state_update";
21
+ export type MessageType = "toast" | "dialog_confirm" | "dialog_result" | "state_update" | "action";
22
22
  export interface PluginMessage {
23
23
  id: number;
24
24
  direction: MessageDirection;
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-messages.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/plugin-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,eAAe,CAAC;AAEjE,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,gBAAgB,GAAG,eAAe,GAAG,cAAc,CAAC;AAExF,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,gBAAgB,CAAC;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AA6CD;;GAEG;AACH,wBAAgB,SAAS,CACrB,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,CAAC,EAAE,MAAM,GACnB,MAAM,CAOR;AAED;;GAEG;AACH,wBAAgB,YAAY,CACxB,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,CAAC,EAAE,MAAM,GACnB,MAAM,CAOR;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC3B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,gBAAgB,EAC3B,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD,aAAa,EAAE,CA+BjB;AAED;;GAEG;AACH,wBAAgB,YAAY,CACxB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,gBAAgB,EAC3B,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD,aAAa,EAAE,CAmBjB;AAED;;GAEG;AACH,wBAAgB,YAAY,CACxB,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACN,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,GACF,MAAM,CAWR;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACnB,MAAM,CAER;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAK/F"}
1
+ {"version":3,"file":"plugin-messages.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/plugin-messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,eAAe,CAAC;AAEjE,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,gBAAgB,GAAG,eAAe,GAAG,cAAc,GAAG,QAAQ,CAAC;AAEnG,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,gBAAgB,CAAC;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AA6CD;;GAEG;AACH,wBAAgB,SAAS,CACrB,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,CAAC,EAAE,MAAM,GACnB,MAAM,CAOR;AAED;;GAEG;AACH,wBAAgB,YAAY,CACxB,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,SAAS,CAAC,EAAE,MAAM,GACnB,MAAM,CAOR;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC3B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,gBAAgB,EAC3B,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD,aAAa,EAAE,CAqCjB;AAED;;GAEG;AACH,wBAAgB,YAAY,CACxB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,gBAAgB,EAC3B,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD,aAAa,EAAE,CAmBjB;AAED;;GAEG;AACH,wBAAgB,YAAY,CACxB,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACN,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,GACF,MAAM,CAWR;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACnB,MAAM,CAER;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAK/F"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage-meta-session.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/storage-meta-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAW3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAcnF;AAED,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAC9B,IAAI,CA+BN;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAclE"}
1
+ {"version":3,"file":"storage-meta-session.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/storage-meta-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAW3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAcnF;AAED,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAC9B,IAAI,CA+BN;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAelE"}
package/dist/index.js CHANGED
@@ -23965,7 +23965,10 @@ function getMemoryCountsByStatus(db, projectPath) {
23965
23965
  };
23966
23966
  for (const row of rows) {
23967
23967
  counts.ids.push(row.id);
23968
- if (row.status === "active") {
23968
+ if (typeof row.superseded_by_memory_id === "number") {
23969
+ counts.merged += 1;
23970
+ counts.mergedIds.push(row.id);
23971
+ } else if (row.status === "active") {
23969
23972
  counts.active += 1;
23970
23973
  } else if (row.status === "permanent") {
23971
23974
  counts.permanent += 1;
@@ -23973,10 +23976,6 @@ function getMemoryCountsByStatus(db, projectPath) {
23973
23976
  counts.archived += 1;
23974
23977
  counts.archivedIds.push(row.id);
23975
23978
  }
23976
- if (typeof row.superseded_by_memory_id === "number") {
23977
- counts.merged += 1;
23978
- counts.mergedIds.push(row.id);
23979
- }
23980
23979
  }
23981
23980
  counts.ids.sort((left, right) => left - right);
23982
23981
  counts.archivedIds.sort((left, right) => left - right);
@@ -26794,6 +26793,7 @@ function clearSession(db, sessionId) {
26794
26793
  db.prepare("DELETE FROM notes WHERE session_id = ? AND type = 'session'").run(sessionId);
26795
26794
  db.prepare("DELETE FROM recomp_compartments WHERE session_id = ?").run(sessionId);
26796
26795
  db.prepare("DELETE FROM recomp_facts WHERE session_id = ?").run(sessionId);
26796
+ db.prepare("DELETE FROM user_memory_candidates WHERE session_id = ?").run(sessionId);
26797
26797
  clearIndexedMessages(db, sessionId);
26798
26798
  })();
26799
26799
  }
@@ -31343,11 +31343,9 @@ function applyHeuristicCleanup(sessionId, db, targets, messageTagNumbers, config
31343
31343
  return { droppedTools, deduplicatedTools, droppedInjections };
31344
31344
  }
31345
31345
  function extractToolInfo(part) {
31346
- if (part.type === "tool" && typeof part.state === "object" && part.state !== null) {
31347
- const state = part.state;
31348
- if (typeof state.tool === "string" && DEDUP_SAFE_TOOLS.has(state.tool)) {
31349
- return { toolName: state.tool, args: state.input ?? {} };
31350
- }
31346
+ if (part.type === "tool" && typeof part.tool === "string" && DEDUP_SAFE_TOOLS.has(part.tool)) {
31347
+ const state = typeof part.state === "object" && part.state !== null ? part.state : {};
31348
+ return { toolName: part.tool, args: state.input ?? {} };
31351
31349
  }
31352
31350
  if (part.type === "tool-invocation" && typeof part.toolName === "string" && DEDUP_SAFE_TOOLS.has(part.toolName)) {
31353
31351
  return { toolName: part.toolName, args: part.args ?? {} };
@@ -33790,12 +33788,15 @@ function consumeMessages(db, direction, options) {
33790
33788
  params.push(options.sessionId);
33791
33789
  }
33792
33790
  const query = `SELECT * FROM plugin_messages WHERE ${conditions.join(" AND ")} ORDER BY created_at ASC`;
33793
- const rows = db.prepare(query).all(...params);
33794
- const messages = rows.filter(isPluginMessageRow).map(toPluginMessage);
33795
- if (messages.length > 0) {
33796
- const ids = messages.map((m) => m.id);
33797
- db.prepare(`UPDATE plugin_messages SET consumed_at = ? WHERE id IN (${ids.map(() => "?").join(",")})`).run(now, ...ids);
33798
- }
33791
+ const messages = db.transaction(() => {
33792
+ const rows = db.prepare(query).all(...params);
33793
+ const result = rows.filter(isPluginMessageRow).map(toPluginMessage);
33794
+ if (result.length > 0) {
33795
+ const ids = result.map((m) => m.id);
33796
+ db.prepare(`UPDATE plugin_messages SET consumed_at = ? WHERE id IN (${ids.map(() => "?").join(",")})`).run(now, ...ids);
33797
+ }
33798
+ return result;
33799
+ })();
33799
33800
  db.prepare("DELETE FROM plugin_messages WHERE created_at < ?").run(now - CLEANUP_THRESHOLD_MS);
33800
33801
  return messages;
33801
33802
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cortexkit/opencode-magic-context",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "type": "module",
5
5
  "description": "OpenCode plugin for Magic Context โ€” cross-session memory and context management",
6
6
  "main": "dist/index.js",