@cortexkit/opencode-magic-context 0.35.1 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/README.md +9 -5
  2. package/dist/agents/permissions.d.ts +17 -0
  3. package/dist/agents/permissions.d.ts.map +1 -1
  4. package/dist/{announcement-gms2nhya.js → announcement-6c1g4es4.js} +2 -2
  5. package/dist/config/schema/magic-context.d.ts +10 -0
  6. package/dist/config/schema/magic-context.d.ts.map +1 -1
  7. package/dist/{conflict-warning-hook-p2pmhvn7.js → conflict-warning-hook-dw9fs934.js} +4 -4
  8. package/dist/{derive-budgets-9crp0cvd.js → derive-budgets-88mxk2w1.js} +3 -3
  9. package/dist/features/magic-context/dreamer/evaluate-smart-notes.d.ts +2 -0
  10. package/dist/features/magic-context/dreamer/evaluate-smart-notes.d.ts.map +1 -1
  11. package/dist/features/magic-context/dreamer/task-executor.d.ts +1 -0
  12. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
  13. package/dist/features/magic-context/migrations.d.ts.map +1 -1
  14. package/dist/features/magic-context/smart-notes/condition-compiler.d.ts +37 -0
  15. package/dist/features/magic-context/smart-notes/condition-compiler.d.ts.map +1 -0
  16. package/dist/features/magic-context/smart-notes/runner.d.ts +1 -0
  17. package/dist/features/magic-context/smart-notes/runner.d.ts.map +1 -1
  18. package/dist/features/magic-context/smart-notes/storage.d.ts +3 -3
  19. package/dist/features/magic-context/smart-notes/storage.d.ts.map +1 -1
  20. package/dist/features/magic-context/storage-db.d.ts +1 -1
  21. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  22. package/dist/features/magic-context/storage-notes.d.ts +13 -0
  23. package/dist/features/magic-context/storage-notes.d.ts.map +1 -1
  24. package/dist/features/magic-context/storage.d.ts +1 -1
  25. package/dist/features/magic-context/storage.d.ts.map +1 -1
  26. package/dist/hooks/magic-context/hook.d.ts +3 -0
  27. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  28. package/dist/hooks/magic-context/lkg-slot.d.ts +15 -1
  29. package/dist/hooks/magic-context/lkg-slot.d.ts.map +1 -1
  30. package/dist/hooks/magic-context/module-state-sync.d.ts +6 -0
  31. package/dist/hooks/magic-context/module-state-sync.d.ts.map +1 -1
  32. package/dist/hooks/magic-context/module-transport.d.ts +9 -0
  33. package/dist/hooks/magic-context/module-transport.d.ts.map +1 -1
  34. package/dist/hooks/magic-context/raw-fallback-context-limit.d.ts +10 -0
  35. package/dist/hooks/magic-context/raw-fallback-context-limit.d.ts.map +1 -0
  36. package/dist/hooks/magic-context/read-session-formatting.d.ts.map +1 -1
  37. package/dist/hooks/magic-context/rust-mode-transform.d.ts +7 -2
  38. package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
  39. package/dist/{index-8aaadh98.js → index-37rt2bka.js} +2 -2
  40. package/dist/{index-fkyamz2w.js → index-3nfgbsp4.js} +99 -56
  41. package/dist/{index-w0nygb4p.js → index-3tnkymva.js} +2 -2
  42. package/dist/{index-k1esqfwk.js → index-f1tnb3vm.js} +1 -1
  43. package/dist/{index-kvrcg31b.js → index-mmrhhk9a.js} +8 -1
  44. package/dist/{index-h5zjfesc.js → index-nsx2n9eg.js} +3 -3
  45. package/dist/{index-dmr999a2.js → index-qf20mv7e.js} +1 -1
  46. package/dist/{index-73xz0247.js → index-tsgs7td8.js} +1 -1
  47. package/dist/{index-ry8rh8cv.js → index-wgvxkqpx.js} +5 -4
  48. package/dist/{index-dpdnjawy.js → index-z8v31d85.js} +5 -5
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +781 -116
  51. package/dist/plugin/dream-timer.d.ts +1 -0
  52. package/dist/plugin/dream-timer.d.ts.map +1 -1
  53. package/dist/plugin/hooks/create-session-hooks.d.ts +3 -0
  54. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  55. package/dist/plugin/messages-transform.d.ts +5 -5
  56. package/dist/plugin/messages-transform.d.ts.map +1 -1
  57. package/dist/{recomp-orchestrator-29f4rqax.js → recomp-orchestrator-7wbbvf87.js} +7 -7
  58. package/dist/{safe-notification-target-q9jk5n44.js → safe-notification-target-c11fdda2.js} +3 -3
  59. package/dist/{send-session-notification-sr5g06hz.js → send-session-notification-bgtf4853.js} +4 -4
  60. package/dist/shared/data-path.d.ts +27 -0
  61. package/dist/shared/data-path.d.ts.map +1 -1
  62. package/dist/shared/harness-provider-map.d.ts +23 -20
  63. package/dist/shared/harness-provider-map.d.ts.map +1 -1
  64. package/dist/shared/prompt-surface-runtime.d.ts +15 -2
  65. package/dist/shared/prompt-surface-runtime.d.ts.map +1 -1
  66. package/dist/{storage-meta-session-ev8b55a9.js → storage-meta-session-kh5egr11.js} +4 -4
  67. package/dist/tools/ctx-note/tools.d.ts.map +1 -1
  68. package/package.json +3 -3
  69. package/src/agents/permissions.ts +87 -0
  70. package/src/config/compaction-accessor-guard.test.ts +9 -4
  71. package/src/config/schema/magic-context.test.ts +2 -0
  72. package/src/config/schema/magic-context.ts +15 -0
  73. package/src/shared/data-path.test.ts +65 -9
  74. package/src/shared/data-path.ts +66 -1
  75. package/src/shared/harness-provider-map.test.ts +42 -1
  76. package/src/shared/harness-provider-map.ts +48 -26
  77. package/src/shared/prompt-surface-runtime.ts +13 -5
@@ -24,6 +24,13 @@ export declare class SubcModuleTransport {
24
24
  private authorityBindRoot;
25
25
  private backoffMs;
26
26
  private connectionGeneration;
27
+ private stateSyncCapabilityCache;
28
+ /** Returns the capability snapshot for the currently live SUBC connection. */
29
+ getCachedStateSyncCapabilities(): {
30
+ state_sync_deltas?: boolean;
31
+ } | undefined;
32
+ /** Clears the snapshot after a module signal that can change its wire capabilities. */
33
+ invalidateStateSyncCapabilities(): void;
27
34
  stateSyncCapabilities(args: {
28
35
  sessionId: string;
29
36
  projectRoot: string;
@@ -31,7 +38,9 @@ export declare class SubcModuleTransport {
31
38
  state_sync_deltas?: boolean;
32
39
  }>;
33
40
  constructor(connectionFile?: string, moduleId?: string, requestTimeoutMs?: number, routeSessionPrefix?: string);
41
+ private deadlineError;
34
42
  private laneTimeoutError;
43
+ private beforeDeadline;
35
44
  private laneRelease;
36
45
  private dispatchNextLaneWaiter;
37
46
  private acquireCorrectnessLane;
@@ -1 +1 @@
1
- {"version":3,"file":"module-transport.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/module-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-transport.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/module-transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare class RawFallbackContextLimitError extends Error {
2
+ readonly estimatedTokens: number;
3
+ readonly contextLimitTokens: number;
4
+ readonly code = "RAW_FALLBACK_CONTEXT_LIMIT";
5
+ readonly recoverable = true;
6
+ constructor(estimatedTokens: number, contextLimitTokens: number, options?: {
7
+ cause?: unknown;
8
+ });
9
+ }
10
+ //# sourceMappingURL=raw-fallback-context-limit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raw-fallback-context-limit.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/raw-fallback-context-limit.ts"],"names":[],"mappings":"AAAA,qBAAa,4BAA6B,SAAQ,KAAK;IAK/C,QAAQ,CAAC,eAAe,EAAE,MAAM;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM;IALvC,QAAQ,CAAC,IAAI,gCAAgC;IAC7C,QAAQ,CAAC,WAAW,QAAQ;gBAGf,eAAe,EAAE,MAAM,EACvB,kBAAkB,EAAE,MAAM,EACnC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAQpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"read-session-formatting.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/read-session-formatting.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;CACvB;AAID,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAiB/D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAUvD;AAED;4EAC4E;AAC5E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CA2BnE;AAoDD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYnD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQrD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAW1D;AAED,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAmB1C;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAS9E"}
1
+ {"version":3,"file":"read-session-formatting.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/read-session-formatting.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;CACvB;AAID,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAiB/D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAUvD;AAED;4EAC4E;AAC5E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CA2BnE;AAuDD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYnD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQrD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAW1D;AAED,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAmB1C;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAS9E"}
@@ -1,5 +1,6 @@
1
1
  import { type AuthorityDrainResponse, type AuthorityStatus } from "../../features/magic-context/context-authority";
2
2
  import type { getOrCreateSessionMeta } from "../../features/magic-context/storage";
3
+ import { type LkgContentField } from "./lkg-slot";
3
4
  import { type ModuleCompartmentMirrorResponse, type ModuleStateSyncClient, type ModuleStateSyncState } from "./module-state-sync";
4
5
  import type { RawMessageOrdinalAnchor } from "./read-session-raw";
5
6
  import type { TransformDeps } from "./transform";
@@ -43,10 +44,9 @@ export interface RustModeModuleClient extends ModuleStateSyncClient {
43
44
  closeSession?(sessionId: string): void;
44
45
  getCompartmentsAfter?(sessionId: string, afterSequence: number): Promise<ModuleCompartmentMirrorResponse>;
45
46
  }
46
- type MessageContentField = string | number | boolean | symbol;
47
47
  interface MessageContentSnapshot {
48
48
  signature: string;
49
- fields: MessageContentField[];
49
+ fields: LkgContentField[];
50
50
  }
51
51
  interface RustSessionState extends ModuleStateSyncState {
52
52
  initialized: boolean;
@@ -74,6 +74,9 @@ interface RustSessionState extends ModuleStateSyncState {
74
74
  memoryAuthorityRoot: string | null;
75
75
  memoryAuthorityReady: boolean;
76
76
  authorityMemorySyncSkipLogged?: boolean;
77
+ lkgCaptureSequence: number;
78
+ lkgLastCapturedRowVersion: number;
79
+ lkgSyncCaptureRequired: boolean;
77
80
  }
78
81
  export interface RustModeTransformOptions {
79
82
  moduleClient: RustModeModuleClient;
@@ -90,6 +93,8 @@ export interface RustModeTransformOptions {
90
93
  onProjectPrepared?: (projectPath: string) => void;
91
94
  /** Test-only escape hatch for transform-wire tests without an authority transport. */
92
95
  allowAuthorityProtocolBypassForTests?: boolean;
96
+ /** Override only for deterministic capture scheduling in tests. */
97
+ scheduleLkgCapture?: (capture: () => void) => void;
93
98
  }
94
99
  /** Capture an exact field snapshot plus its compact content-sensitive rolling hash. */
95
100
  declare function messageContentSnapshot(message: MessageLike): MessageContentSnapshot;
@@ -1 +1 @@
1
- {"version":3,"file":"rust-mode-transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/rust-mode-transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rust-mode-transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/rust-mode-transform.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@ import {
3
3
  } from "./index-0c9dmw9m.js";
4
4
  import {
5
5
  waitForSafeNotificationTarget
6
- } from "./index-73xz0247.js";
6
+ } from "./index-tsgs7td8.js";
7
7
  import {
8
8
  log
9
- } from "./index-k1esqfwk.js";
9
+ } from "./index-f1tnb3vm.js";
10
10
  import {
11
11
  __require
12
12
  } from "./index-wckvcay0.js";
@@ -3,7 +3,7 @@ import {
3
3
  modelSupportsVision,
4
4
  piModelRefToCanonical,
5
5
  shouldEnforcePrivateStoragePermissions
6
- } from "./index-ry8rh8cv.js";
6
+ } from "./index-wgvxkqpx.js";
7
7
  import {
8
8
  parseProviderModel
9
9
  } from "./index-td9depx5.js";
@@ -11,7 +11,7 @@ import {
11
11
  describeError,
12
12
  getErrorMessage,
13
13
  sendIgnoredMessage
14
- } from "./index-h5zjfesc.js";
14
+ } from "./index-nsx2n9eg.js";
15
15
  import {
16
16
  buildToolArcs,
17
17
  buildTrueRawTokenIndex,
@@ -35,13 +35,13 @@ import {
35
35
  readSessionChunk,
36
36
  stableStringify,
37
37
  updateSessionMeta
38
- } from "./index-dpdnjawy.js";
38
+ } from "./index-z8v31d85.js";
39
39
  import {
40
40
  Database,
41
41
  closeQuietly,
42
42
  getMessageTimesFromOpenCodeDb,
43
43
  withPrivilegedWriter
44
- } from "./index-w0nygb4p.js";
44
+ } from "./index-3tnkymva.js";
45
45
  import {
46
46
  detectConfigFile
47
47
  } from "./index-0c9dmw9m.js";
@@ -51,7 +51,7 @@ import {
51
51
  import {
52
52
  log,
53
53
  sessionLog
54
- } from "./index-k1esqfwk.js";
54
+ } from "./index-f1tnb3vm.js";
55
55
  import {
56
56
  ensureCortexKitArtifactGitignore,
57
57
  getDataDir,
@@ -59,7 +59,7 @@ import {
59
59
  getLegacyOpenCodeMagicContextStorageDir,
60
60
  getMagicContextStorageDir,
61
61
  getProjectMagicContextHistorianDir
62
- } from "./index-kvrcg31b.js";
62
+ } from "./index-mmrhhk9a.js";
63
63
  import {
64
64
  __export,
65
65
  __require
@@ -396,7 +396,6 @@ import {
396
396
  cpSync,
397
397
  existsSync as existsSync3,
398
398
  mkdirSync,
399
- mkdtempSync,
400
399
  readdirSync,
401
400
  readFileSync as readFileSync2,
402
401
  statSync as statSync2,
@@ -2772,7 +2771,11 @@ var MIGRATIONS = [
2772
2771
  updated_at INTEGER NOT NULL,
2773
2772
  last_checked_at INTEGER,
2774
2773
  ready_at INTEGER,
2775
- ready_reason TEXT
2774
+ ready_reason TEXT,
2775
+ compiled_provider TEXT,
2776
+ compiled_config TEXT,
2777
+ compiled_at INTEGER,
2778
+ compile_status TEXT CHECK(compile_status IN ('compiled', 'plain', 'refused'))
2776
2779
  );
2777
2780
  CREATE INDEX IF NOT EXISTS idx_notes_session_status ON notes(session_id, status);
2778
2781
  CREATE INDEX IF NOT EXISTS idx_notes_project_status ON notes(project_path, status);
@@ -4681,6 +4684,18 @@ var MIGRATIONS = [
4681
4684
  return;
4682
4685
  ensureColumn(db, "memories", "mural_cue_rejection_count", "INTEGER NOT NULL DEFAULT 0");
4683
4686
  }
4687
+ },
4688
+ {
4689
+ version: 76,
4690
+ description: "persist retina provider compilation for smart-note conditions",
4691
+ up(db) {
4692
+ if (!tableExists2(db, "notes"))
4693
+ return;
4694
+ ensureColumn(db, "notes", "compiled_provider", "TEXT");
4695
+ ensureColumn(db, "notes", "compiled_config", "TEXT");
4696
+ ensureColumn(db, "notes", "compiled_at", "INTEGER");
4697
+ ensureColumn(db, "notes", "compile_status", "TEXT CHECK(compile_status IN ('compiled', 'plain', 'refused'))");
4698
+ }
4684
4699
  }
4685
4700
  ];
4686
4701
  var LATEST_MIGRATION_VERSION = MIGRATIONS.reduce((max, m) => Math.max(max, m.version), 0);
@@ -5148,7 +5163,7 @@ function getSchemaFenceRejection() {
5148
5163
  function getMigrationOnOpenRefusal() {
5149
5164
  return lastMigrationOnOpenRefusal;
5150
5165
  }
5151
- var LATEST_SUPPORTED_VERSION = 75;
5166
+ var LATEST_SUPPORTED_VERSION = 76;
5152
5167
  var PERMISSIONS_ENFORCEABLE = process.platform !== "win32";
5153
5168
  var defaultStoragePermissionFs = { chmodSync, mkdirSync };
5154
5169
  var storagePermissionFs = defaultStoragePermissionFs;
@@ -5184,12 +5199,6 @@ function resolveDatabasePath(dbPathOverride) {
5184
5199
  if (dbPathOverride) {
5185
5200
  return { dbDir: dirname(dbPathOverride), dbPath: dbPathOverride };
5186
5201
  }
5187
- const testDataDir = process.env.MAGIC_CONTEXT_TEST_DATA_DIR;
5188
- if (testDataDir && !process.env.XDG_DATA_HOME) {
5189
- const dbDir2 = join3(testDataDir, "cortexkit", "magic-context");
5190
- return { dbDir: dbDir2, dbPath: join3(dbDir2, "context.db") };
5191
- }
5192
- if (false) {}
5193
5202
  const dbDir = getMagicContextStorageDir();
5194
5203
  return { dbDir, dbPath: join3(dbDir, "context.db") };
5195
5204
  }
@@ -8250,6 +8259,11 @@ var NOTE_CHECK_STATUSES = new Set([
8250
8259
  "failing",
8251
8260
  "fallback"
8252
8261
  ]);
8262
+ var CONDITION_COMPILE_STATUSES = new Set([
8263
+ "compiled",
8264
+ "plain",
8265
+ "refused"
8266
+ ]);
8253
8267
  var DEFAULT_SMART_STATUSES = ["pending", "ready"];
8254
8268
  function toNullableString(value) {
8255
8269
  return typeof value === "string" && value.length > 0 ? value : null;
@@ -8272,6 +8286,10 @@ function toNote(row) {
8272
8286
  sessionId: toNullableString(row.session_id),
8273
8287
  projectPath: toNullableString(row.project_path),
8274
8288
  surfaceCondition: toNullableString(row.surface_condition),
8289
+ compiledProvider: toNullableString(row.compiled_provider),
8290
+ compiledConfig: toNullableString(row.compiled_config),
8291
+ compiledAt: toNullableNumber(row.compiled_at),
8292
+ compileStatus: typeof row.compile_status === "string" && CONDITION_COMPILE_STATUSES.has(row.compile_status) ? row.compile_status : null,
8275
8293
  createdAt: row.created_at,
8276
8294
  updatedAt: row.updated_at,
8277
8295
  lastCheckedAt: toNullableNumber(row.last_checked_at),
@@ -8351,7 +8369,7 @@ function getNotes(db, options = {}) {
8351
8369
  }
8352
8370
  function addNote(db, type, options) {
8353
8371
  const now = Date.now();
8354
- const result = type === "session" ? db.prepare("INSERT INTO notes (type, status, content, session_id, created_at, updated_at, harness, anchor_ordinal) VALUES ('session', 'active', ?, ?, ?, ?, ?, ?) RETURNING *").get(options.content, options.sessionId, now, now, getHarness(), options.anchorOrdinal ?? null) : db.prepare("INSERT INTO notes (type, status, content, session_id, project_path, surface_condition, created_at, updated_at, harness, anchor_ordinal) VALUES ('smart', 'pending', ?, ?, ?, ?, ?, ?, ?, ?) RETURNING *").get(options.content, options.sessionId ?? null, options.projectPath, options.surfaceCondition, now, now, getHarness(), options.anchorOrdinal ?? null);
8372
+ const result = type === "session" ? db.prepare("INSERT INTO notes (type, status, content, session_id, created_at, updated_at, harness, anchor_ordinal) VALUES ('session', 'active', ?, ?, ?, ?, ?, ?) RETURNING *").get(options.content, options.sessionId, now, now, getHarness(), options.anchorOrdinal ?? null) : db.prepare("INSERT INTO notes (type, status, content, session_id, project_path, surface_condition, compiled_provider, compiled_config, compiled_at, compile_status, created_at, updated_at, harness, anchor_ordinal) VALUES ('smart', 'pending', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING *").get(options.content, options.sessionId ?? null, options.projectPath, options.surfaceCondition, options.compiledProvider ?? null, options.compiledConfig ?? null, options.compiledAt ?? null, options.compileStatus ?? null, now, now, getHarness(), options.anchorOrdinal ?? null);
8355
8373
  if (!isNoteRow(result)) {
8356
8374
  throw new Error("[notes] failed to insert note");
8357
8375
  }
@@ -8405,6 +8423,8 @@ function updateNote(db, noteId, updates, scope) {
8405
8423
  }
8406
8424
  if (smartConditionChanged) {
8407
8425
  sets.push("status = 'pending'", "last_checked_at = NULL", "ready_at = NULL", "ready_reason = NULL");
8426
+ sets.push("compiled_provider = ?", "compiled_config = ?", "compiled_at = ?", "compile_status = ?");
8427
+ params.push(updates.compiledProvider ?? null, updates.compiledConfig ?? null, updates.compiledAt ?? null, updates.compileStatus ?? null);
8408
8428
  if (noteCheckColumnsExist(db)) {
8409
8429
  sets.push("compiled_check = NULL", "manifest_json = NULL", "check_hash = NULL", "check_cron = NULL", "check_version = 0", "check_status = 'uncompiled'", "check_failure_count = 0", "check_network_failure_count = 0", "check_quarantined_until = NULL", "check_next_due_at = NULL", "check_compiled_at = NULL", "check_false_since_at = NULL", "check_last_liveness_at = NULL");
8410
8430
  }
@@ -10219,7 +10239,7 @@ var CTX_SEARCH_LIGHT_DESCRIPTION = `For ctx_search users, retrieve only hidden r
10219
10239
  // src/shared/prompt-surface-runtime.ts
10220
10240
  var GUIDANCE_MARKER = "## Magic Context";
10221
10241
  var GUIDANCE_MARKER_LINE = /^## Magic Context[\t ]*\r?$/gm;
10222
- var PROMPT_SURFACE_TOOL_IDS = [
10242
+ var ACTIVE_TOOL_IDS = [
10223
10243
  "ctx_reduce",
10224
10244
  "ctx_expand",
10225
10245
  "ctx_note",
@@ -10237,7 +10257,7 @@ function promptSurfaceHashMaterial(systemContent, preset = "full") {
10237
10257
  return preset === "full" ? systemContent : `${systemContent}
10238
10258
  \x00magic-context-prompt-surface:${preset}`;
10239
10259
  }
10240
- var PROMPT_SURFACE_TOOL_ID_SET = new Set(PROMPT_SURFACE_TOOL_IDS);
10260
+ var PROMPT_SURFACE_TOOL_ID_SET = new Set(ACTIVE_TOOL_IDS);
10241
10261
  function resolveUserConfigDirectory(options) {
10242
10262
  if (options.userConfigDirectory)
10243
10263
  return resolve(options.userConfigDirectory);
@@ -26979,6 +26999,9 @@ var MagicContextConfigSchema = exports_external.object({
26979
26999
  language: exports_external.string().trim().toLowerCase().refine((s) => isValidLanguageCode(s), 'language must be a 2-letter ISO 639-1 code (e.g. "tr", "es", "de")').optional().describe("Output language for Magic Context's generated content and guidance, as a " + '2-letter ISO 639-1 code (e.g. "tr", "es", "de", "ja", "pt"). When set, the ' + "historian, dreamer, sidekick, and the agent-guidance block instruct the model to " + "write its PROSE in this language while keeping all structural tokens (XML tags, " + "the five memory category names, code identifiers, file paths) in English. " + "USER-LEVEL ONLY (ignored in project config for security). Unset = today's " + "behavior (model mirrors the conversation; English scaffolding). Changing it " + "triggers one cache re-materialization; existing compartments/memories keep their " + "original language until naturally rewritten."),
26980
27000
  historian: HistorianConfigSchema.describe("Historian agent configuration (model, fallback_models, variant, temperature, maxTokens, permission, two_pass, etc.)"),
26981
27001
  dreamer: DreamerConfigSchema.optional().describe("Dreamer agent + scheduling configuration (model, fallback_models, disable, schedule, tasks, etc.)"),
27002
+ smart_notes: exports_external.object({
27003
+ retina_handoff: exports_external.boolean().default(false).describe("When true, dreamer skips smart notes whose surface conditions compiled to retina provider configs at authoring time. Default false keeps both paths active until the retina consumer is deployed.")
27004
+ }).default({ retina_handoff: false }).describe("Smart-note ownership transition controls."),
26982
27005
  cache_ttl: exports_external.union([exports_external.string(), exports_external.object({ default: exports_external.string() }).catchall(exports_external.string())]).default("5m").describe('Cache TTL: string (e.g. "5m", "1h", "30s") or per-model object ({ default: "5m", "model-id": "10m" }). Set to "never" for lanes kept warm by an external keepwarm proxy — disables the idle-TTL heuristic so MC never initiates a rebuild based on elapsed time.'),
26983
27006
  prompt_surface: PromptSurfaceConfigSchema.default({ default: "full" }).describe("Prompt-surface presets: default is full; models use the literal provider/model or provider/* routing grammar. Guidance and tool-description overrides are user-level only. On OpenCode and Pi, per-model routing applies to the guidance block only: tool descriptions are registered once per process, so they follow the default preset (a v1 plugin-surface limitation; per-model tool descriptions are planned for the OpenCode v2 plugin API once the SDK stabilizes)."),
26984
27007
  output_reserve: exports_external.union([
@@ -41941,52 +41964,69 @@ function slotBytes(slot) {
41941
41964
  const digestBytes = slot.inputContentDigests.reduce((total, digest) => total + 2 * digest.length, 0);
41942
41965
  return 2 * slot.jsonPrefix.length + digestBytes + LKG_METADATA_BYTES;
41943
41966
  }
41944
- function lkgContentDigest(message) {
41945
- const hash2 = createHash15("sha256");
41967
+ var LKG_SNAPSHOT_ARRAY = Symbol("array");
41968
+ var LKG_SNAPSHOT_OBJECT = Symbol("object");
41969
+ var LKG_SNAPSHOT_KEY = Symbol("key");
41970
+ var LKG_SNAPSHOT_STRING = Symbol("string");
41971
+ var LKG_SNAPSHOT_NUMBER = Symbol("number");
41972
+ var LKG_SNAPSHOT_BOOLEAN = Symbol("boolean");
41973
+ var LKG_SNAPSHOT_NULL = Symbol("null");
41974
+ var LKG_SNAPSHOT_UNDEFINED = Symbol("undefined");
41975
+ function lkgContentFields(value) {
41976
+ const fields = [];
41946
41977
  const seen = new WeakSet;
41947
- const visit = (value) => {
41948
- if (value === null) {
41949
- hash2.update("N;");
41950
- } else if (typeof value === "string") {
41951
- hash2.update(`S${value.length}:`).update(value);
41952
- } else if (typeof value === "number") {
41953
- hash2.update(`D${String(value)};`);
41954
- } else if (typeof value === "boolean") {
41955
- hash2.update(value ? "B1;" : "B0;");
41956
- } else if (value === undefined) {
41957
- hash2.update("U;");
41958
- } else if (Array.isArray(value)) {
41959
- if (seen.has(value))
41978
+ const visit = (child) => {
41979
+ if (child === null)
41980
+ fields.push(LKG_SNAPSHOT_NULL);
41981
+ else if (typeof child === "string")
41982
+ fields.push(LKG_SNAPSHOT_STRING, child);
41983
+ else if (typeof child === "number")
41984
+ fields.push(LKG_SNAPSHOT_NUMBER, child);
41985
+ else if (typeof child === "boolean")
41986
+ fields.push(LKG_SNAPSHOT_BOOLEAN, child);
41987
+ else if (child === undefined || typeof child === "function" || typeof child === "symbol") {
41988
+ fields.push(LKG_SNAPSHOT_UNDEFINED);
41989
+ } else if (Array.isArray(child)) {
41990
+ if (seen.has(child))
41960
41991
  throw new Error("cyclic message");
41961
- seen.add(value);
41962
- hash2.update(`A${value.length}[`);
41963
- for (const child of value)
41964
- visit(child);
41965
- hash2.update("]");
41966
- seen.delete(value);
41967
- } else if (typeof value === "object") {
41968
- if (seen.has(value))
41992
+ seen.add(child);
41993
+ fields.push(LKG_SNAPSHOT_ARRAY, child.length);
41994
+ for (const item of child)
41995
+ visit(item);
41996
+ seen.delete(child);
41997
+ } else if (typeof child === "object") {
41998
+ if (seen.has(child))
41969
41999
  throw new Error("cyclic message");
41970
- seen.add(value);
41971
- const entries = Object.entries(value);
41972
- hash2.update(`O${entries.length}{`);
41973
- for (const [key, child] of entries) {
41974
- hash2.update(`K${key.length}:`).update(key);
41975
- visit(child);
41976
- }
41977
- hash2.update("}");
41978
- seen.delete(value);
41979
- } else {
41980
- hash2.update(`X${typeof value};`);
41981
- }
42000
+ seen.add(child);
42001
+ const entries = Object.entries(child).filter(([, entry]) => entry !== undefined && typeof entry !== "function" && typeof entry !== "symbol");
42002
+ fields.push(LKG_SNAPSHOT_OBJECT, entries.length);
42003
+ for (const [key, entry] of entries) {
42004
+ fields.push(LKG_SNAPSHOT_KEY, key);
42005
+ visit(entry);
42006
+ }
42007
+ seen.delete(child);
42008
+ } else
42009
+ fields.push(LKG_SNAPSHOT_UNDEFINED);
41982
42010
  };
41983
42011
  try {
41984
- visit(message);
41985
- return hash2.digest("base64url");
42012
+ visit(value);
42013
+ return fields;
41986
42014
  } catch {
41987
42015
  return null;
41988
42016
  }
41989
42017
  }
42018
+ function lkgContentDigestFromFields(fields) {
42019
+ const hash2 = createHash15("sha256");
42020
+ for (const field of fields) {
42021
+ const value = typeof field === "symbol" ? field.description ?? "" : String(field);
42022
+ hash2.update(`${typeof field}:${value.length}:`).update(value).update("\x00");
42023
+ }
42024
+ return hash2.digest("base64url");
42025
+ }
42026
+ function lkgContentDigest(message) {
42027
+ const fields = lkgContentFields(message);
42028
+ return fields ? lkgContentDigestFromFields(fields) : null;
42029
+ }
41990
42030
  function touch(sessionId, entry) {
41991
42031
  slots.delete(sessionId);
41992
42032
  slots.set(sessionId, entry);
@@ -41999,6 +42039,9 @@ function captureSlot(sessionId, slot) {
41999
42039
  if (bytes > LKG_SINGLE_SLOT_BYTES)
42000
42040
  return false;
42001
42041
  const prior = slots.get(sessionId);
42042
+ if (prior?.slot.rowVersion !== undefined && slot.rowVersion !== undefined && (slot.rowVersion < prior.slot.rowVersion || slot.rowVersion === prior.slot.rowVersion && (slot.captureSequence ?? 0) < (prior.slot.captureSequence ?? 0))) {
42043
+ return false;
42044
+ }
42002
42045
  if (prior)
42003
42046
  totalBytes -= prior.bytes;
42004
42047
  slots.delete(sessionId);
@@ -42308,4 +42351,4 @@ async function runUpgradeMemoryMigration(ctx, sessionId, migrationDirectory) {
42308
42351
  }
42309
42352
  }
42310
42353
 
42311
- export { withContentLanguageDirective, buildPrimaryLanguageDirective, cortexKitUserConfigBasePath, cortexKitProjectConfigBasePath, resolveLegacyConfigSources, resolveLegacyConfigSourcesForHarness, migrateMagicContextConfigLocations, exports_external, DEFAULT_PROTECTED_TAGS, parseCron, nextOccurrence, nextDueAtMs, resolvePromptSurface, resolveModelConfigOrDefault, DEFAULT_EXECUTE_THRESHOLD_PERCENTAGE, DEFAULT_HISTORIAN_TIMEOUT_MS, DEFAULT_LOCAL_EMBEDDING_MODEL, MagicContextConfigSchema, getOpenCodeDbPath, removeMcOwnedCompactionMarkers, ProjectIdentityError, resolveProjectIdentityStrict, takeDubiousOwnershipProjectIdentityWarning, resolveProjectIdentity, resolveProjectIdentityForSession, normalizeStoredProjectPath, storedPathBelongsToIdentity, recordSessionProjectIdentity, beginBootQuietPeriod, bootQuietRemainingMs, scheduleAfterBootQuiet, rpcPortDir, rpcPortFilePath, isPidAlive, parseRpcPortFile, registerModuleNoteEvaluationBridge, getModuleNoteEvaluationBridge, getContextStoreUuid, ensureContextStoreUuid, getAuthorityManagedMarker, reconcileAuthorityProject, checksumAuthoritySeedRows, prepareAuthority, drainAuthority, getMirrorCursor, applyMirrorPage, pullMemoryMirrorOnce, V2_MEMORY_CATEGORIES, CATEGORY_PRIORITY, resolveWorkspaceShareCategories, resolveWorkspaceIdentitySet, expandWorkspaceIdentitySetWithAliases, resolveStoredPathWorkspaceIdentity, storedPathBelongsToWorkspace, sourceNameForMemory, computeWorkspaceEpochFingerprint, recordToolDefinition, getMeasuredToolDefinitionTokens, getSchemaFenceRejection, getMigrationOnOpenRefusal, LATEST_SUPPORTED_VERSION, getDatabasePath, getPersistedSchemaVersion, setSqlitePragmaConfig, runSqliteOptimize, openDatabase, openDatabaseAsync, isDatabasePersisted, getDatabasePersistenceError, COMPARTMENT_LEASE_RENEWAL_MS, acquireCompartmentLease, renewCompartmentLease, releaseCompartmentLease, getCompartments, getLastCompartmentEndMessage, getLastCompartmentEndMessageId, clearRecompStaging, recordEmbeddingMeasurement, getMaxM0MutationId, queueMemoryMutation, getMemoryMutationsForRenderByProjects, getMaxMemoryMutationIdForProjects, MAX_EXECUTE_THRESHOLD, escalationBands, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, getEmergencyRecoveryArmedAt, loadPersistedUsage, loadProtectedTailMeta, resetProtectedTailNoEligibleHead, getWrapupInProgressState, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getPersistedReasoningWatermark, setPersistedReasoningWatermark, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getLastNudgeLevel, setLastNudgeLevel, resetLastNudgeCycle, resetLastNudgeCycleIfTailShrank, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, getNoteNudgeAnchors, getAutoSearchHintDecisions, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, pruneAutoSearchHintDecisions, removeNoteNudgeAnchorByMessageId, removeAutoSearchHintDecisionByMessageId, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, setNoteLastReadAt, getHistorianFailureState, clearHistorianFailureState, getOverflowState, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, removeStrippedPlaceholderId, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, addProcessedImageStrippedIds, getPendingCompactionMarkerState, clearPendingCompactionMarkerStateIf, peekDeferredExecutePending, setDeferredExecutePendingIfAbsent, clearDeferredExecutePendingIfMatches, getSessionsWithPendingMarker, setSessionWorkMetrics, getNotes, addNote, getSessionNotes, getPendingSmartNotes, getReadySmartNotes, updateNote, dismissNote, markNoteReady, markNoteChecked, queuePendingOp, getPendingOps, clearPendingOps, removePendingOp, PRIMER_CANDIDATE_TTL_MS, PRIMER_CANDIDATE_MAX_AGE_MS, primerOccurrenceKey, primerOccurrenceUtcDay, updatePrimerCandidateEmbedding, getPrimerCandidatesByIds, getPrimerCandidatesForPromotion, countPrimerCandidatesForProject, getActivePrimers, createPrimer, updatePrimerSupport, updatePrimerAnswer, GLOBAL_USER_PROFILE_PROJECT_PATH, getProjectState, bumpProjectMemoryEpoch, bumpProjectUserProfileVersion, saveSourceContent, replaceSourceContent, getSourceContents, getActiveTagTokenAggregate, AGE_RECLAIM_MIN_TOKENS, getOldestActiveUnprotectedToolTags, getActiveToolTagsForAgeReclaim, getTriggerTagTokenUpperBound, getActiveTagTokenTotalsByMessage, tagTokenCountIsNull, backfillTagTokenCounts, insertTag, updateTagStatus, updateTagDropMode, updateCavemanDepth, updateTagMessageId, deleteTagsByMessageId, getMaxTagNumberBySession, getTagNumberByMessageId, deriveTagLoadFloor, getTagsBySession, getActiveTagsBySession, getDroppedTagsBySession, getTagsByNumbers, getMaxDroppedTagNumber, getToolTagNumberByOwner, getNullOwnerToolTag, adoptNullOwnerToolTag, getCandidateToolOwners, pickNearestPriorOwner, createChildSessionWithFence, detectOverflow, promptSyncWithValidatedOutputRetry, normalizeSDKResponse, promptSurfaceHashMaterial, createPromptSurfaceRuntime, createPromptSurfaceGuidanceEpochCache, extractLatestAssistantText, hasLengthCappedOutput, setKeepSubagents, shouldKeepSubagents, recordChildInvocation, COMPARTMENT_AGENT_SYSTEM_PROMPT, HISTORIAN_EDITOR_SYSTEM_PROMPT, COMPARTMENT_STRUCTURAL_SYSTEM_PROMPT, Priority, AdmissionClass, StaleRouteHandleError, SocketClosedError, SocketTimeoutError, SubcClient, isConsumerReconnectTransient, getCompartmentEvents, loadCompartmentChunkEmbeddingsForSearch, cosineSimilarity, SYNAPSE_DEFAULT_MODEL, SynapseEmbeddingProvider, computeNormalizedHash, saveCommitEmbedding, loadProjectCommitEmbeddings, loadUnembeddedCommits, countEmbeddedCommits, upsertCommits, getLatestIndexedCommitTimeMs, enforceProjectCap, GIT_SWEEP_LEASE_RENEWAL_MS, acquireGitSweepLease, renewGitSweepLease, markGitSweepSuccessAndRelease, parkGitSweepNonIndexable, releaseGitSweepLease, saveEmbeddingIfHashMatches, getProjectEmbeddings, peekProjectEmbeddings, invalidateProject, invalidateMemory, markProjectLoadUntrusted, contentSha256, sweepStaleEmbeddingIdentitiesForProject, registerProjectEmbedding, registerProjectShadowEmbedding, getShadowEmbeddingMeasurementCohort, getPrimaryEmbeddingMeasurementCohort, embedShadowTextForProject, enqueueShadowEmbeddingItems, registerProjectInObservationMode, getProjectEmbeddingSnapshot, embedTextForProject, embedBatchForProject, embedItemsForProject, embedUnembeddedMemoriesForProject, drainCommitBacklogForProject, embedSessionCompartmentChunks, getEmbeddingCoverageStatus, isEmbeddingEnabled, embedText, ensureMemoryEmbeddings, computeCueContentHash, hasMuralCueColumns, getMuralCueState, memoryNeedsCue, setMuralCue, recordMuralCueRejection, hasMemoryShareableColumn, hasMemoryClassifiedAtColumn, getUnclassifiedMemoryIds, ModuleMemoryAuthorityError, insertMemory, insertMemoryIdempotent, getMemoryByHash, getMemoriesByProject, buildWorkspaceMemorySqlFilter, getMemoriesByProjects, getMaxMemoryIdForProjects, readNewMemoriesForM1Union, getMemoryById, getMemoriesByIds, updateMemorySeenCount, updateMemoryRetrievalCount, setMemoryClassification, supersededMemory, mergeMemoryStats, archiveMemory, getMemoryCountsByStatus, sanitizeFtsQuery, searchMemoriesFTS, searchMemoriesFTSUnion, recordMemoryMapping, recordMemoryVerifications, getUnmappedMemoryIds, clearMemoryVerifications, getMemoryVerifications, resolveGitTopLevel, readGitHead, readGitChangedFilesSince, readGitFileChangeTimesSince, verificationFileExists, normalizeVerificationFiles, USER_MEMORY_CANDIDATE_TTL_MS, insertUserMemoryCandidates, getUserMemoryCandidates, deleteUserMemoryCandidates, pruneExpiredUserMemoryCandidates, insertUserMemory, getActiveUserMemories, updateUserMemoryContent, dismissUserMemory, MARKER_SUMMARY_TEXT, applyDeferredCompactionMarker, removeCompactionMarkerForSession, checkCompactionMarkerConsistency, getMural, BoundedSessionMap, extractM0Block, formatDate, injectTemporalMarkers, clearInjectionCache, getVisibleMemoryIds, prepareCompartmentInjection, renderCompartmentInjection, mustMaterialize, trimMemoriesToBudgetV2, renderMemoryBlockV2, injectM0M1, onNoteTrigger, peekNoteNudgeText, markNoteNudgeDelivered, clearNoteNudgeTriggerAndCooldown, resetNoteNudgeCooldownOnly, clearNoteNudgeTriggerOnly, RECOVERY_NO_HEAD_LIMIT, resolveOpenCodeProtectedTailBoundary, resolveWrapupProtectedTailBoundary, getRawHistoryEligibility, hasRunnableCompartmentWindow, recordHighPressureNoEligibleHead, runCompartmentAgent, snapRangeToCompartments, lkgContentDigest, captureSlot, getSlot, dropSlot, noteEntry, getActiveCompartmentRun, markActiveCompartmentRunPublished, registerActiveCompartmentRun, startCompartmentAgent, isRecompFailure, isRecompSkip, isRecompComplete, extractRecompReason, contextualizeUpgradeReason, setRecompStarting, setRecompNote, setRecompTerminal, runManagedRecomp, runManagedUpgrade };
42354
+ export { withContentLanguageDirective, buildPrimaryLanguageDirective, cortexKitUserConfigBasePath, cortexKitProjectConfigBasePath, resolveLegacyConfigSources, resolveLegacyConfigSourcesForHarness, migrateMagicContextConfigLocations, exports_external, DEFAULT_PROTECTED_TAGS, parseCron, nextOccurrence, nextDueAtMs, resolvePromptSurface, resolveModelConfigOrDefault, DEFAULT_EXECUTE_THRESHOLD_PERCENTAGE, DEFAULT_HISTORIAN_TIMEOUT_MS, DEFAULT_LOCAL_EMBEDDING_MODEL, MagicContextConfigSchema, getOpenCodeDbPath, removeMcOwnedCompactionMarkers, ProjectIdentityError, resolveProjectIdentityStrict, takeDubiousOwnershipProjectIdentityWarning, resolveProjectIdentity, resolveProjectIdentityForSession, normalizeStoredProjectPath, storedPathBelongsToIdentity, recordSessionProjectIdentity, beginBootQuietPeriod, bootQuietRemainingMs, scheduleAfterBootQuiet, rpcPortDir, rpcPortFilePath, isPidAlive, parseRpcPortFile, registerModuleNoteEvaluationBridge, getModuleNoteEvaluationBridge, getContextStoreUuid, ensureContextStoreUuid, getAuthorityManagedMarker, reconcileAuthorityProject, checksumAuthoritySeedRows, prepareAuthority, drainAuthority, getMirrorCursor, applyMirrorPage, pullMemoryMirrorOnce, V2_MEMORY_CATEGORIES, CATEGORY_PRIORITY, resolveWorkspaceShareCategories, resolveWorkspaceIdentitySet, expandWorkspaceIdentitySetWithAliases, resolveStoredPathWorkspaceIdentity, storedPathBelongsToWorkspace, sourceNameForMemory, computeWorkspaceEpochFingerprint, recordToolDefinition, getMeasuredToolDefinitionTokens, getSchemaFenceRejection, getMigrationOnOpenRefusal, LATEST_SUPPORTED_VERSION, getDatabasePath, getPersistedSchemaVersion, setSqlitePragmaConfig, runSqliteOptimize, openDatabase, openDatabaseAsync, isDatabasePersisted, getDatabasePersistenceError, COMPARTMENT_LEASE_RENEWAL_MS, acquireCompartmentLease, renewCompartmentLease, releaseCompartmentLease, getCompartments, getLastCompartmentEndMessage, getLastCompartmentEndMessageId, clearRecompStaging, recordEmbeddingMeasurement, getMaxM0MutationId, queueMemoryMutation, getMemoryMutationsForRenderByProjects, getMaxMemoryMutationIdForProjects, MAX_EXECUTE_THRESHOLD, escalationBands, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, getEmergencyRecoveryArmedAt, loadPersistedUsage, loadProtectedTailMeta, resetProtectedTailNoEligibleHead, getWrapupInProgressState, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getPersistedReasoningWatermark, setPersistedReasoningWatermark, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getLastNudgeLevel, setLastNudgeLevel, resetLastNudgeCycle, resetLastNudgeCycleIfTailShrank, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, getNoteNudgeAnchors, getAutoSearchHintDecisions, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, pruneAutoSearchHintDecisions, removeNoteNudgeAnchorByMessageId, removeAutoSearchHintDecisionByMessageId, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, setNoteLastReadAt, getHistorianFailureState, clearHistorianFailureState, getOverflowState, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, removeStrippedPlaceholderId, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, addProcessedImageStrippedIds, getPendingCompactionMarkerState, clearPendingCompactionMarkerStateIf, peekDeferredExecutePending, setDeferredExecutePendingIfAbsent, clearDeferredExecutePendingIfMatches, getSessionsWithPendingMarker, setSessionWorkMetrics, getNotes, addNote, getSessionNotes, getPendingSmartNotes, getReadySmartNotes, updateNote, dismissNote, markNoteReady, markNoteChecked, queuePendingOp, getPendingOps, clearPendingOps, removePendingOp, PRIMER_CANDIDATE_TTL_MS, PRIMER_CANDIDATE_MAX_AGE_MS, primerOccurrenceKey, primerOccurrenceUtcDay, updatePrimerCandidateEmbedding, getPrimerCandidatesByIds, getPrimerCandidatesForPromotion, countPrimerCandidatesForProject, getActivePrimers, createPrimer, updatePrimerSupport, updatePrimerAnswer, GLOBAL_USER_PROFILE_PROJECT_PATH, getProjectState, bumpProjectMemoryEpoch, bumpProjectUserProfileVersion, saveSourceContent, replaceSourceContent, getSourceContents, getActiveTagTokenAggregate, AGE_RECLAIM_MIN_TOKENS, getOldestActiveUnprotectedToolTags, getActiveToolTagsForAgeReclaim, getTriggerTagTokenUpperBound, getActiveTagTokenTotalsByMessage, tagTokenCountIsNull, backfillTagTokenCounts, insertTag, updateTagStatus, updateTagDropMode, updateCavemanDepth, updateTagMessageId, deleteTagsByMessageId, getMaxTagNumberBySession, getTagNumberByMessageId, deriveTagLoadFloor, getTagsBySession, getActiveTagsBySession, getDroppedTagsBySession, getTagsByNumbers, getMaxDroppedTagNumber, getToolTagNumberByOwner, getNullOwnerToolTag, adoptNullOwnerToolTag, getCandidateToolOwners, pickNearestPriorOwner, createChildSessionWithFence, detectOverflow, promptSyncWithValidatedOutputRetry, normalizeSDKResponse, promptSurfaceHashMaterial, createPromptSurfaceRuntime, createPromptSurfaceGuidanceEpochCache, extractLatestAssistantText, hasLengthCappedOutput, setKeepSubagents, shouldKeepSubagents, recordChildInvocation, COMPARTMENT_AGENT_SYSTEM_PROMPT, HISTORIAN_EDITOR_SYSTEM_PROMPT, COMPARTMENT_STRUCTURAL_SYSTEM_PROMPT, Priority, AdmissionClass, StaleRouteHandleError, SocketClosedError, SocketTimeoutError, SubcClient, isConsumerReconnectTransient, getCompartmentEvents, loadCompartmentChunkEmbeddingsForSearch, cosineSimilarity, SYNAPSE_DEFAULT_MODEL, SynapseEmbeddingProvider, computeNormalizedHash, saveCommitEmbedding, loadProjectCommitEmbeddings, loadUnembeddedCommits, countEmbeddedCommits, upsertCommits, getLatestIndexedCommitTimeMs, enforceProjectCap, GIT_SWEEP_LEASE_RENEWAL_MS, acquireGitSweepLease, renewGitSweepLease, markGitSweepSuccessAndRelease, parkGitSweepNonIndexable, releaseGitSweepLease, saveEmbeddingIfHashMatches, getProjectEmbeddings, peekProjectEmbeddings, invalidateProject, invalidateMemory, markProjectLoadUntrusted, contentSha256, sweepStaleEmbeddingIdentitiesForProject, registerProjectEmbedding, registerProjectShadowEmbedding, getShadowEmbeddingMeasurementCohort, getPrimaryEmbeddingMeasurementCohort, embedShadowTextForProject, enqueueShadowEmbeddingItems, registerProjectInObservationMode, getProjectEmbeddingSnapshot, embedTextForProject, embedBatchForProject, embedItemsForProject, embedUnembeddedMemoriesForProject, drainCommitBacklogForProject, embedSessionCompartmentChunks, getEmbeddingCoverageStatus, isEmbeddingEnabled, embedText, ensureMemoryEmbeddings, computeCueContentHash, hasMuralCueColumns, getMuralCueState, memoryNeedsCue, setMuralCue, recordMuralCueRejection, hasMemoryShareableColumn, hasMemoryClassifiedAtColumn, getUnclassifiedMemoryIds, ModuleMemoryAuthorityError, insertMemory, insertMemoryIdempotent, getMemoryByHash, getMemoriesByProject, buildWorkspaceMemorySqlFilter, getMemoriesByProjects, getMaxMemoryIdForProjects, readNewMemoriesForM1Union, getMemoryById, getMemoriesByIds, updateMemorySeenCount, updateMemoryRetrievalCount, setMemoryClassification, supersededMemory, mergeMemoryStats, archiveMemory, getMemoryCountsByStatus, sanitizeFtsQuery, searchMemoriesFTS, searchMemoriesFTSUnion, recordMemoryMapping, recordMemoryVerifications, getUnmappedMemoryIds, clearMemoryVerifications, getMemoryVerifications, resolveGitTopLevel, readGitHead, readGitChangedFilesSince, readGitFileChangeTimesSince, verificationFileExists, normalizeVerificationFiles, USER_MEMORY_CANDIDATE_TTL_MS, insertUserMemoryCandidates, getUserMemoryCandidates, deleteUserMemoryCandidates, pruneExpiredUserMemoryCandidates, insertUserMemory, getActiveUserMemories, updateUserMemoryContent, dismissUserMemory, MARKER_SUMMARY_TEXT, applyDeferredCompactionMarker, removeCompactionMarkerForSession, checkCompactionMarkerConsistency, getMural, BoundedSessionMap, extractM0Block, formatDate, injectTemporalMarkers, clearInjectionCache, getVisibleMemoryIds, prepareCompartmentInjection, renderCompartmentInjection, mustMaterialize, trimMemoriesToBudgetV2, renderMemoryBlockV2, injectM0M1, onNoteTrigger, peekNoteNudgeText, markNoteNudgeDelivered, clearNoteNudgeTriggerAndCooldown, resetNoteNudgeCooldownOnly, clearNoteNudgeTriggerOnly, RECOVERY_NO_HEAD_LIMIT, resolveOpenCodeProtectedTailBoundary, resolveWrapupProtectedTailBoundary, getRawHistoryEligibility, hasRunnableCompartmentWindow, recordHighPressureNoEligibleHead, runCompartmentAgent, snapRangeToCompartments, LKG_SNAPSHOT_ARRAY, LKG_SNAPSHOT_OBJECT, LKG_SNAPSHOT_KEY, LKG_SNAPSHOT_STRING, LKG_SNAPSHOT_NUMBER, LKG_SNAPSHOT_BOOLEAN, LKG_SNAPSHOT_NULL, LKG_SNAPSHOT_UNDEFINED, lkgContentDigestFromFields, lkgContentDigest, captureSlot, getSlot, dropSlot, noteEntry, getActiveCompartmentRun, markActiveCompartmentRunPublished, registerActiveCompartmentRun, startCompartmentAgent, isRecompFailure, isRecompSkip, isRecompComplete, extractRecompReason, contextualizeUpgradeReason, setRecompStarting, setRecompNote, setRecompTerminal, runManagedRecomp, runManagedUpgrade };
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  log
3
- } from "./index-k1esqfwk.js";
3
+ } from "./index-f1tnb3vm.js";
4
4
  import {
5
5
  getDataDir
6
- } from "./index-kvrcg31b.js";
6
+ } from "./index-mmrhhk9a.js";
7
7
 
8
8
  // src/shared/sqlite-helpers.ts
9
9
  function closeQuietly(db) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getMagicContextLogPath
3
- } from "./index-kvrcg31b.js";
3
+ } from "./index-mmrhhk9a.js";
4
4
 
5
5
  // src/shared/logger.ts
6
6
  import * as fs from "node:fs";
@@ -5,7 +5,7 @@ function getHarness() {
5
5
  }
6
6
 
7
7
  // src/shared/data-path.ts
8
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
8
+ import { existsSync, mkdirSync, mkdtempSync, readFileSync, writeFileSync } from "node:fs";
9
9
  import * as os from "node:os";
10
10
  import * as path from "node:path";
11
11
  function getDataDir() {
@@ -54,6 +54,13 @@ function getOpenCodeStorageDir() {
54
54
  return path.join(getDataDir(), "opencode", "storage");
55
55
  }
56
56
  function getMagicContextStorageDir() {
57
+ if (!process.env.XDG_DATA_HOME) {
58
+ const testDataDir = process.env.MAGIC_CONTEXT_TEST_DATA_DIR;
59
+ if (testDataDir) {
60
+ return path.join(testDataDir, "cortexkit", "magic-context");
61
+ }
62
+ if (false) {}
63
+ }
57
64
  return path.join(getDataDir(), "cortexkit", "magic-context");
58
65
  }
59
66
  function getLegacyOpenCodeMagicContextStorageDir() {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  isMidTurn
3
- } from "./index-w0nygb4p.js";
3
+ } from "./index-3tnkymva.js";
4
4
  import {
5
5
  sessionLog
6
- } from "./index-k1esqfwk.js";
6
+ } from "./index-f1tnb3vm.js";
7
7
  import {
8
8
  __require
9
9
  } from "./index-wckvcay0.js";
@@ -171,7 +171,7 @@ async function sendIgnoredMessageNow(client, sessionId, text, params, forcePersi
171
171
  queueIgnoredNotification({ client, sessionId, text, params, forcePersist });
172
172
  return "queued";
173
173
  }
174
- const { waitForSafeNotificationTarget } = await import("./safe-notification-target-q9jk5n44.js");
174
+ const { waitForSafeNotificationTarget } = await import("./safe-notification-target-c11fdda2.js");
175
175
  if (await waitForSafeNotificationTarget(client, sessionId) === "skip") {
176
176
  sessionLog(sessionId, "notification skipped (session not titled yet)");
177
177
  return "skipped";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getMagicContextStorageDir
3
- } from "./index-kvrcg31b.js";
3
+ } from "./index-mmrhhk9a.js";
4
4
 
5
5
  // src/shared/announcement.ts
6
6
  import * as fs from "node:fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  log
3
- } from "./index-k1esqfwk.js";
3
+ } from "./index-f1tnb3vm.js";
4
4
 
5
5
  // src/shared/safe-notification-target.ts
6
6
  var DEFAULT_TITLE_RE = /^(New session - |Child session - )\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/;
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  sessionLog
3
- } from "./index-k1esqfwk.js";
3
+ } from "./index-f1tnb3vm.js";
4
4
  import {
5
5
  getHarness,
6
6
  getMagicContextStorageDir
7
- } from "./index-kvrcg31b.js";
7
+ } from "./index-mmrhhk9a.js";
8
8
 
9
9
  // src/shared/models-dev-cache.ts
10
10
  import { mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
@@ -22,8 +22,9 @@ function remapProviderPrefix(ref, map) {
22
22
  if (slash <= 0)
23
23
  return ref;
24
24
  const provider = ref.slice(0, slash);
25
- const mapped = map[provider];
26
- return mapped ? `${mapped}${ref.slice(slash)}` : ref;
25
+ if (!Object.hasOwn(map, provider))
26
+ return ref;
27
+ return `${map[provider]}${ref.slice(slash)}`;
27
28
  }
28
29
  function piModelRefToCanonical(ref) {
29
30
  return remapProviderPrefix(ref, PI_TO_CANONICAL_PROVIDER);
@@ -3,13 +3,13 @@ import {
3
3
  getRawSessionMessageCountFromDb,
4
4
  openCodeDbExists,
5
5
  withReadOnlySessionDb
6
- } from "./index-w0nygb4p.js";
6
+ } from "./index-3tnkymva.js";
7
7
  import {
8
8
  log
9
- } from "./index-k1esqfwk.js";
9
+ } from "./index-f1tnb3vm.js";
10
10
  import {
11
11
  getHarness
12
- } from "./index-kvrcg31b.js";
12
+ } from "./index-mmrhhk9a.js";
13
13
 
14
14
  // src/features/magic-context/storage-meta-session.ts
15
15
  import { Buffer as Buffer2 } from "node:buffer";
@@ -151,11 +151,11 @@ var tokenizer;
151
151
  function getTokenizer() {
152
152
  if (tokenizer)
153
153
  return tokenizer;
154
- const tokenizerModule = requireFromThisModule("ai-tokenizer");
154
+ const tokenizerModule = requireFromThisModule("ai-" + "tokenizer");
155
155
  const Tokenizer = tokenizerModule.default ?? tokenizerModule.Tokenizer;
156
156
  if (!Tokenizer)
157
157
  throw new Error("ai-tokenizer does not expose a Tokenizer constructor");
158
- const claudeEncoding = requireFromThisModule("ai-tokenizer/encoding/claude");
158
+ const claudeEncoding = requireFromThisModule("ai-tokenizer/encoding/" + "claude");
159
159
  tokenizer = new Tokenizer(claudeEncoding);
160
160
  return tokenizer;
161
161
  }