@cortexkit/opencode-magic-context 0.34.0 → 0.34.2

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 (97) hide show
  1. package/README.md +20 -3
  2. package/dist/config/migrate-experimental.d.ts +2 -1
  3. package/dist/config/migrate-experimental.d.ts.map +1 -1
  4. package/dist/config/project-security.d.ts +2 -0
  5. package/dist/config/project-security.d.ts.map +1 -1
  6. package/dist/config/schema/magic-context.d.ts +8 -15
  7. package/dist/config/schema/magic-context.d.ts.map +1 -1
  8. package/dist/features/magic-context/dreamer/classify.d.ts +1 -0
  9. package/dist/features/magic-context/dreamer/classify.d.ts.map +1 -1
  10. package/dist/features/magic-context/dreamer/map-memories.d.ts +1 -0
  11. package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
  12. package/dist/features/magic-context/dreamer/refresh-primers.d.ts +1 -0
  13. package/dist/features/magic-context/dreamer/refresh-primers.d.ts.map +1 -1
  14. package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts +2 -0
  15. package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts.map +1 -1
  16. package/dist/features/magic-context/dreamer/storage-task-schedule.d.ts +9 -5
  17. package/dist/features/magic-context/dreamer/storage-task-schedule.d.ts.map +1 -1
  18. package/dist/features/magic-context/dreamer/task-executor.d.ts +4 -1
  19. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
  20. package/dist/features/magic-context/dreamer/task-gates.d.ts +19 -1
  21. package/dist/features/magic-context/dreamer/task-gates.d.ts.map +1 -1
  22. package/dist/features/magic-context/dreamer/task-registry.d.ts +28 -0
  23. package/dist/features/magic-context/dreamer/task-registry.d.ts.map +1 -1
  24. package/dist/features/magic-context/dreamer/task-scheduler.d.ts +7 -1
  25. package/dist/features/magic-context/dreamer/task-scheduler.d.ts.map +1 -1
  26. package/dist/features/magic-context/dreamer/verify-gate.d.ts +8 -2
  27. package/dist/features/magic-context/dreamer/verify-gate.d.ts.map +1 -1
  28. package/dist/features/magic-context/dreamer/verify.d.ts +3 -0
  29. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
  30. package/dist/features/magic-context/fail-closed-block.d.ts +2 -0
  31. package/dist/features/magic-context/fail-closed-block.d.ts.map +1 -1
  32. package/dist/features/magic-context/memory/storage-memory.d.ts.map +1 -1
  33. package/dist/features/magic-context/migrations.d.ts +23 -1
  34. package/dist/features/magic-context/migrations.d.ts.map +1 -1
  35. package/dist/features/magic-context/mural/compress-cues.d.ts +8 -3
  36. package/dist/features/magic-context/mural/compress-cues.d.ts.map +1 -1
  37. package/dist/features/magic-context/mural/cue-validation.d.ts +7 -7
  38. package/dist/features/magic-context/mural/cue-validation.d.ts.map +1 -1
  39. package/dist/features/magic-context/mural/storage-mural-cues.d.ts +13 -3
  40. package/dist/features/magic-context/mural/storage-mural-cues.d.ts.map +1 -1
  41. package/dist/features/magic-context/storage-db.d.ts +24 -5
  42. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  43. package/dist/features/magic-context/storage-meta-persisted.d.ts +1 -0
  44. package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
  45. package/dist/features/magic-context/storage.d.ts +1 -1
  46. package/dist/features/magic-context/storage.d.ts.map +1 -1
  47. package/dist/hooks/magic-context/command-handler.d.ts +1 -0
  48. package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
  49. package/dist/hooks/magic-context/event-handler.d.ts +1 -0
  50. package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
  51. package/dist/hooks/magic-context/execute-status.d.ts +5 -1
  52. package/dist/hooks/magic-context/execute-status.d.ts.map +1 -1
  53. package/dist/hooks/magic-context/hook.d.ts +3 -5
  54. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  55. package/dist/hooks/magic-context/inject-compartments.d.ts +1 -1
  56. package/dist/hooks/magic-context/live-session-state.d.ts +3 -0
  57. package/dist/hooks/magic-context/live-session-state.d.ts.map +1 -1
  58. package/dist/hooks/magic-context/rust-mode-transform.d.ts +16 -0
  59. package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
  60. package/dist/hooks/magic-context/transform-context-state.d.ts +1 -0
  61. package/dist/hooks/magic-context/transform-context-state.d.ts.map +1 -1
  62. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +1 -1
  63. package/dist/hooks/magic-context/transform.d.ts +3 -2
  64. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  65. package/dist/{index-56yjaeb2.js → index-2y0ybv5x.js} +11 -1
  66. package/dist/{index-s0mdn690.js → index-z70pxrq1.js} +232 -49
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +599 -131
  69. package/dist/plugin/dream-timer.d.ts +4 -2
  70. package/dist/plugin/dream-timer.d.ts.map +1 -1
  71. package/dist/plugin/hooks/create-session-hooks.d.ts +1 -1
  72. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  73. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  74. package/dist/{recomp-orchestrator-8e82vmvb.js → recomp-orchestrator-6cd3nrt7.js} +1 -1
  75. package/dist/shared/rpc-types.d.ts +5 -0
  76. package/dist/shared/rpc-types.d.ts.map +1 -1
  77. package/dist/shared/rpc-utils.d.ts +19 -0
  78. package/dist/shared/rpc-utils.d.ts.map +1 -1
  79. package/dist/shared/tui-runtime-specifiers.d.ts +20 -0
  80. package/dist/shared/tui-runtime-specifiers.d.ts.map +1 -0
  81. package/dist/{task-config-5nx3qfz8.js → task-config-gbp7r23g.js} +1 -1
  82. package/package.json +2 -2
  83. package/src/config/index.test.ts +32 -0
  84. package/src/config/migrate-experimental.test.ts +41 -0
  85. package/src/config/migrate-experimental.ts +36 -10
  86. package/src/config/project-security.test.ts +22 -0
  87. package/src/config/project-security.ts +23 -0
  88. package/src/config/schema/magic-context.test.ts +2 -1
  89. package/src/config/schema/magic-context.ts +12 -23
  90. package/src/features/magic-context/dreamer/task-registry.ts +47 -0
  91. package/src/shared/rpc-types.ts +9 -0
  92. package/src/shared/rpc-utils.test.ts +157 -0
  93. package/src/shared/rpc-utils.ts +137 -0
  94. package/src/shared/tui-runtime-specifiers.ts +32 -0
  95. package/src/tui/slots/sidebar-content.tsx +50 -8
  96. package/src/tui/tui-compiled-runtime-imports.test.ts +151 -0
  97. package/src/tui-compiled/slots/sidebar-content.tsx +234 -145
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,16 @@ var CANONICAL_DREAM_TASKS = [
17
17
  "promote-primers",
18
18
  "refresh-primers"
19
19
  ];
20
+ function formatDreamTaskBacklogs(backlogs, tasks = CANONICAL_DREAM_TASKS) {
21
+ return tasks.filter((task) => backlogs[task] !== undefined).map((task) => {
22
+ const backlog = backlogs[task];
23
+ return `- ${task}: ${backlog?.pending ?? 0} pending / ${backlog?.total ?? 0} total`;
24
+ }).join(`
25
+ `);
26
+ }
27
+ function processedDreamTaskItems(startPending, endPending) {
28
+ return Math.max(0, startPending - endPending);
29
+ }
20
30
  var MEMORY_DOMAIN_TASKS = [
21
31
  "map-memories",
22
32
  "verify",
@@ -103,4 +113,4 @@ function summarizeDreamSchedule(dreamer) {
103
113
  return enabled.map((t) => `${t} ${dreamer?.tasks[t]?.schedule}`).join(", ");
104
114
  }
105
115
 
106
- export { CANONICAL_DREAM_TASKS, leaseKindFor, leaseKeyFor, isCanonicalDreamTask, compareTaskOrder, buildDreamTaskRuntimeConfigs, userMemoryCollectionEnabled, userMemoryPromotionThreshold, dreamTaskScheduled, enabledDreamTasks, summarizeDreamSchedule };
116
+ export { CANONICAL_DREAM_TASKS, formatDreamTaskBacklogs, processedDreamTaskItems, leaseKindFor, leaseKeyFor, isCanonicalDreamTask, compareTaskOrder, buildDreamTaskRuntimeConfigs, userMemoryCollectionEnabled, userMemoryPromotionThreshold, dreamTaskScheduled, enabledDreamTasks, summarizeDreamSchedule };
@@ -389,7 +389,8 @@ import {
389
389
  mkdirSync,
390
390
  mkdtempSync,
391
391
  readdirSync,
392
- readFileSync,
392
+ readFileSync as readFileSync2,
393
+ statSync as statSync2,
393
394
  unlinkSync
394
395
  } from "node:fs";
395
396
  import { basename, dirname, join as join3 } from "node:path";
@@ -411,7 +412,9 @@ function scheduleAfterBootQuiet(task, additionalDelayMs = 0) {
411
412
  }
412
413
 
413
414
  // src/shared/rpc-utils.ts
415
+ import { execFileSync } from "node:child_process";
414
416
  import { createHash } from "node:crypto";
417
+ import { readFileSync } from "node:fs";
415
418
  import { join } from "node:path";
416
419
  function projectHash(directory) {
417
420
  const normalized = directory.replace(/\/+$/, "");
@@ -434,6 +437,84 @@ function isPidAlive(pid) {
434
437
  return err.code === "EPERM";
435
438
  }
436
439
  }
440
+ var RPC_IDENTITY_SKEW_TOLERANCE_MS = 120000;
441
+ var LINUX_CLOCK_TICKS_PER_SECOND = 100;
442
+ var PS_PROBE_TIMEOUT_MS = 1000;
443
+ var OPEN_CODE_COMMAND_MARKERS = ["opencode", "node", "bun", "electron"];
444
+ var rpcIdentityReadFileSync = readFileSync;
445
+ var rpcIdentityExecFileSync = execFileSync;
446
+ var rpcIdentityPlatform = process.platform;
447
+ var rpcIdentityNowMs = () => Date.now();
448
+ function parseLinuxProcessStartTime(statContent, uptimeContent) {
449
+ const closingCommandName = statContent.lastIndexOf(")");
450
+ if (closingCommandName < 0)
451
+ return null;
452
+ const statFields = statContent.slice(closingCommandName + 1).trim().split(/\s+/);
453
+ const startTimeTicks = Number(statFields[19]);
454
+ const uptimeSeconds = Number(uptimeContent.trim().split(/\s+/)[0]);
455
+ if (!Number.isFinite(startTimeTicks) || startTimeTicks < 0 || !Number.isFinite(uptimeSeconds) || uptimeSeconds < 0) {
456
+ return null;
457
+ }
458
+ const processStartTime = rpcIdentityNowMs() - uptimeSeconds * 1000 + startTimeTicks / LINUX_CLOCK_TICKS_PER_SECOND * 1000;
459
+ return Number.isFinite(processStartTime) ? processStartTime : null;
460
+ }
461
+ function readLinuxProcessStartTime(pid) {
462
+ try {
463
+ const statContent = String(rpcIdentityReadFileSync(`/proc/${pid}/stat`, "utf8"));
464
+ const uptimeContent = String(rpcIdentityReadFileSync("/proc/uptime", "utf8"));
465
+ return parseLinuxProcessStartTime(statContent, uptimeContent);
466
+ } catch {
467
+ return null;
468
+ }
469
+ }
470
+ function readPsProcessStartTime(pid) {
471
+ try {
472
+ const output = rpcIdentityExecFileSync("ps", ["-p", String(pid), "-o", "lstart="], {
473
+ encoding: "utf8",
474
+ timeout: PS_PROBE_TIMEOUT_MS
475
+ });
476
+ const processStartTime = Date.parse(String(output).trim());
477
+ return Number.isFinite(processStartTime) ? processStartTime : null;
478
+ } catch {
479
+ return null;
480
+ }
481
+ }
482
+ function readLinuxProcessCommand(pid) {
483
+ try {
484
+ return String(rpcIdentityReadFileSync(`/proc/${pid}/cmdline`, "utf8"));
485
+ } catch {
486
+ return null;
487
+ }
488
+ }
489
+ function readPsProcessCommand(pid) {
490
+ try {
491
+ const output = rpcIdentityExecFileSync("ps", ["-p", String(pid), "-o", "command="], {
492
+ encoding: "utf8",
493
+ timeout: PS_PROBE_TIMEOUT_MS
494
+ });
495
+ return String(output);
496
+ } catch {
497
+ return null;
498
+ }
499
+ }
500
+ function commandLooksLikeOpenCode(command) {
501
+ const normalized = command.toLowerCase();
502
+ return OPEN_CODE_COMMAND_MARKERS.some((marker) => normalized.includes(marker));
503
+ }
504
+ function isPidIdentityPlausible(record) {
505
+ if (!Number.isInteger(record.pid) || record.pid <= 0)
506
+ return false;
507
+ if (Number.isFinite(record.started_at) && record.started_at > 0) {
508
+ const processStartTime = rpcIdentityPlatform === "linux" ? readLinuxProcessStartTime(record.pid) : readPsProcessStartTime(record.pid);
509
+ if (processStartTime === null)
510
+ return true;
511
+ return processStartTime <= record.started_at + RPC_IDENTITY_SKEW_TOLERANCE_MS;
512
+ }
513
+ const command = rpcIdentityPlatform === "linux" ? readLinuxProcessCommand(record.pid) : readPsProcessCommand(record.pid);
514
+ if (command === null)
515
+ return true;
516
+ return commandLooksLikeOpenCode(command);
517
+ }
437
518
  function parseRpcPortFile(content, fallbackPid = 0) {
438
519
  const trimmed = content.trim();
439
520
  if (!trimmed)
@@ -1919,7 +2000,7 @@ var CATEGORY_DEFAULT_TTL = {
1919
2000
  };
1920
2001
 
1921
2002
  // src/features/magic-context/memory/project-identity.ts
1922
- import { execFileSync } from "node:child_process";
2003
+ import { execFileSync as execFileSync2 } from "node:child_process";
1923
2004
  import { createHash as createHash3 } from "node:crypto";
1924
2005
  import { existsSync, realpathSync, statSync } from "node:fs";
1925
2006
  import { homedir } from "node:os";
@@ -1934,7 +2015,7 @@ var dubiousOwnershipFallbackDirectories = new Set;
1934
2015
  var dubiousOwnershipLoggedDirectories = new Set;
1935
2016
  var dubiousOwnershipWarnedDirectories = new Set;
1936
2017
  var transientGitIdentityReuseLoggedDirectories = new Set;
1937
- var execFileSyncForIdentity = execFileSync;
2018
+ var execFileSyncForIdentity = execFileSync2;
1938
2019
  var userHomeDirectoryForIdentity = () => homedir();
1939
2020
  var nowMs = () => Date.now();
1940
2021
 
@@ -2538,6 +2619,7 @@ function bumpEpochsForWorkspaceMemberSet(db, identities, now = Date.now()) {
2538
2619
  }
2539
2620
 
2540
2621
  // src/features/magic-context/migrations.ts
2622
+ var FORK_MIGRATION_VERSION_FLOOR = 1e4;
2541
2623
  var MIGRATION_LOCK_RETRY_DELAYS_MS = [1000, 2000, 4000, 8000, 15000];
2542
2624
 
2543
2625
  class MigrationLockBusyError extends Error {
@@ -4575,6 +4657,15 @@ var MIGRATIONS = [
4575
4657
  ensureColumn(db, "session_meta", "detected_context_limit_provenance", "TEXT NOT NULL DEFAULT 'unknown'");
4576
4658
  }
4577
4659
  }
4660
+ },
4661
+ {
4662
+ version: 75,
4663
+ description: "persist mural cue validation rejection latches",
4664
+ up(db) {
4665
+ if (!tableExists2(db, "memories"))
4666
+ return;
4667
+ ensureColumn(db, "memories", "mural_cue_rejection_count", "INTEGER NOT NULL DEFAULT 0");
4668
+ }
4578
4669
  }
4579
4670
  ];
4580
4671
  var LATEST_MIGRATION_VERSION = MIGRATIONS.reduce((max, m) => Math.max(max, m.version), 0);
@@ -4588,9 +4679,12 @@ function ensureMigrationsTable(db) {
4588
4679
  `);
4589
4680
  }
4590
4681
  function getCurrentVersion(db) {
4591
- const row = db.prepare("SELECT MAX(version) as version FROM schema_migrations").get();
4682
+ const row = db.prepare("SELECT COALESCE(MAX(version), 0) AS version FROM schema_migrations WHERE version < ?").get(FORK_MIGRATION_VERSION_FLOOR);
4592
4683
  return row?.version ?? 0;
4593
4684
  }
4685
+ function isMigrationApplied(db, version) {
4686
+ return db.prepare("SELECT 1 FROM schema_migrations WHERE version = ?").get(version) != null;
4687
+ }
4594
4688
  function isSiblingMigrationConflict(db, error, version) {
4595
4689
  if (!(error instanceof Error))
4596
4690
  return false;
@@ -4619,12 +4713,12 @@ function runMigrations(db) {
4619
4713
  try {
4620
4714
  const applied = db.transaction(() => {
4621
4715
  currentVersion = getCurrentVersion(db);
4622
- migration = MIGRATIONS.find((candidate) => candidate.version > currentVersion);
4716
+ migration = MIGRATIONS.find((candidate) => candidate.version > currentVersion && !isMigrationApplied(db, candidate.version));
4623
4717
  if (!migration)
4624
4718
  return false;
4625
4719
  if (!loggedPlan) {
4626
- const pendingCount = MIGRATIONS.filter((candidate) => candidate.version > currentVersion).length;
4627
- log(`[migrations] current schema version: ${currentVersion}, applying ${pendingCount} migration(s)`);
4720
+ const pendingCount = MIGRATIONS.filter((candidate) => candidate.version > currentVersion && !isMigrationApplied(db, candidate.version)).length;
4721
+ log(`[migrations] current upstream migration lane: ${currentVersion}, applying ${pendingCount} migration(s)`);
4628
4722
  loggedPlan = true;
4629
4723
  }
4630
4724
  migration.up(db);
@@ -4661,7 +4755,7 @@ function runMigrations(db) {
4661
4755
  }
4662
4756
  }
4663
4757
  if (loggedPlan) {
4664
- log(`[migrations] schema version now: ${MIGRATIONS[MIGRATIONS.length - 1].version}`);
4758
+ log(`[migrations] upstream migration lane now: ${MIGRATIONS[MIGRATIONS.length - 1].version}`);
4665
4759
  }
4666
4760
  }
4667
4761
  async function runMigrationsWithRetry(db, options = {}) {
@@ -5063,7 +5157,7 @@ function getSchemaFenceRejection() {
5063
5157
  function getMigrationOnOpenRefusal() {
5064
5158
  return lastMigrationOnOpenRefusal;
5065
5159
  }
5066
- var LATEST_SUPPORTED_VERSION = 74;
5160
+ var LATEST_SUPPORTED_VERSION = 75;
5067
5161
  var PERMISSIONS_ENFORCEABLE = process.platform !== "win32";
5068
5162
  var defaultStoragePermissionFs = { chmodSync, mkdirSync };
5069
5163
  var storagePermissionFs = defaultStoragePermissionFs;
@@ -5156,11 +5250,11 @@ function getPersistedSchemaVersion(db) {
5156
5250
  if (!hasMigrationsTable) {
5157
5251
  return 0;
5158
5252
  }
5159
- const row = db.prepare("SELECT MAX(version) AS version FROM schema_migrations").get();
5253
+ const row = db.prepare("SELECT COALESCE(MAX(version), 0) AS version FROM schema_migrations WHERE version < ?").get(FORK_MIGRATION_VERSION_FLOOR);
5160
5254
  return row?.version ?? 0;
5161
5255
  }
5162
5256
  function formatSchemaFenceBootLog(persistedVersion, supportedVersion) {
5163
- return `[magic-context] storage schema at boot: database=v${persistedVersion}, supported_fence=v${supportedVersion}`;
5257
+ return `[magic-context] upstream migration lane at boot: database=v${persistedVersion}, supported_fence=v${supportedVersion}`;
5164
5258
  }
5165
5259
  function getRuntimeLatestSupportedVersion(options) {
5166
5260
  if (options?.latestSupportedVersion !== undefined) {
@@ -5182,27 +5276,68 @@ function enforceSchemaFence(db, dbPath, latestSupportedVersion) {
5182
5276
  return true;
5183
5277
  }
5184
5278
  lastSchemaFenceRejection = { persistedVersion, supportedVersion: latestSupportedVersion };
5185
- log(`[magic-context] storage fatal: refusing to open ${dbPath}; database schema v${persistedVersion} is newer than this binary supports (max v${latestSupportedVersion}). A pinned or stale plugin is likely sharing this database with a newer instance; update or unpin Magic Context with 'npx @cortexkit/magic-context@latest doctor --force', then restart.`);
5279
+ log(`[magic-context] storage fatal: refusing to open ${dbPath}; upstream migration lane v${persistedVersion} is newer than this binary supports (max v${latestSupportedVersion}). A pinned or stale plugin is likely sharing this database with a newer instance; update or unpin Magic Context with 'npx @cortexkit/magic-context@latest doctor --force', then restart.`);
5186
5280
  return false;
5187
5281
  }
5188
- function unreadableDiscovery(path2) {
5282
+ function unreadableDiscovery(path2, arm) {
5189
5283
  return {
5190
5284
  state: "unreadable",
5191
5285
  serverPids: [],
5192
5286
  staleFiles: [],
5193
- unreadableFile: path2
5287
+ unreadableFile: path2,
5288
+ unreadableArm: arm
5194
5289
  };
5195
5290
  }
5291
+ var RPC_DISCOVERY_PARSE_GRACE_MS = 10 * 60 * 1000;
5292
+ var defaultRpcDiscoveryFs = {
5293
+ readdirSync: (path2, options) => options?.withFileTypes ? readdirSync(path2, { withFileTypes: true }) : readdirSync(path2),
5294
+ readFileSync: (path2, encoding) => String(readFileSync2(path2, encoding)),
5295
+ statSync: (path2) => ({ mtimeMs: statSync2(path2).mtimeMs }),
5296
+ unlinkSync: (path2) => unlinkSync(path2)
5297
+ };
5298
+ var rpcDiscoveryFs = defaultRpcDiscoveryFs;
5299
+ function invalidDiscoveryReason(raw) {
5300
+ const trimmed = raw.trim();
5301
+ if (trimmed.startsWith("{")) {
5302
+ try {
5303
+ const parsed = JSON.parse(trimmed);
5304
+ if ("pid" in parsed) {
5305
+ const pid = Number(parsed.pid);
5306
+ if (!Number.isInteger(pid) || pid <= 0)
5307
+ return "invalid-pid";
5308
+ }
5309
+ } catch {}
5310
+ }
5311
+ return "parse-invalid";
5312
+ }
5313
+ function classifyJunkDiscovery(portFile, raw, staleFiles) {
5314
+ let mtimeMs;
5315
+ try {
5316
+ mtimeMs = rpcDiscoveryFs.statSync(portFile).mtimeMs;
5317
+ } catch (error) {
5318
+ if (error.code === "ENOENT")
5319
+ return null;
5320
+ return unreadableDiscovery(portFile, "io");
5321
+ }
5322
+ const ageMs = Date.now() - mtimeMs;
5323
+ if (!Number.isFinite(ageMs) || ageMs < RPC_DISCOVERY_PARSE_GRACE_MS) {
5324
+ return unreadableDiscovery(portFile, "parse");
5325
+ }
5326
+ staleFiles.push(portFile);
5327
+ const reason = invalidDiscoveryReason(raw);
5328
+ log(`[magic-context] removing stale RPC discovery file ${portFile}: ${reason} record older than 10 minutes`);
5329
+ return null;
5330
+ }
5196
5331
  function inspectRpcServerDiscovery(storageDir) {
5197
5332
  const rpcRoot = join3(storageDir, "rpc");
5198
5333
  let projectEntries;
5199
5334
  try {
5200
- projectEntries = readdirSync(rpcRoot, { withFileTypes: true });
5335
+ projectEntries = rpcDiscoveryFs.readdirSync(rpcRoot, { withFileTypes: true });
5201
5336
  } catch (error) {
5202
5337
  if (error.code === "ENOENT") {
5203
5338
  return { state: "absent", serverPids: [], staleFiles: [] };
5204
5339
  }
5205
- return unreadableDiscovery(rpcRoot);
5340
+ return unreadableDiscovery(rpcRoot, "io");
5206
5341
  }
5207
5342
  const portFiles = [];
5208
5343
  for (const projectEntry of projectEntries) {
@@ -5211,9 +5346,11 @@ function inspectRpcServerDiscovery(storageDir) {
5211
5346
  const projectDir = join3(rpcRoot, projectEntry.name);
5212
5347
  let entries;
5213
5348
  try {
5214
- entries = readdirSync(projectDir);
5215
- } catch {
5216
- return unreadableDiscovery(projectDir);
5349
+ entries = rpcDiscoveryFs.readdirSync(projectDir);
5350
+ } catch (error) {
5351
+ if (error.code === "ENOENT")
5352
+ continue;
5353
+ return unreadableDiscovery(projectDir, "io");
5217
5354
  }
5218
5355
  for (const entry of entries) {
5219
5356
  if (entry === "port" || entry.startsWith("port-") && entry.endsWith(".json")) {
@@ -5229,32 +5366,38 @@ function inspectRpcServerDiscovery(storageDir) {
5229
5366
  for (const portFile of portFiles) {
5230
5367
  let raw;
5231
5368
  try {
5232
- raw = readFileSync(portFile, "utf8");
5233
- } catch {
5234
- return unreadableDiscovery(portFile);
5369
+ raw = rpcDiscoveryFs.readFileSync(portFile, "utf8");
5370
+ } catch (error) {
5371
+ if (error.code === "ENOENT")
5372
+ continue;
5373
+ return unreadableDiscovery(portFile, "io");
5235
5374
  }
5236
5375
  const filename = basename(portFile);
5237
5376
  const pidFromName = /^port-(\d+)/.exec(filename)?.[1];
5238
- const record = parseRpcPortFile(raw, pidFromName ? Number(pidFromName) : 0);
5377
+ const fallbackPid = pidFromName ? Number(pidFromName) : 0;
5378
+ const record = parseRpcPortFile(raw, fallbackPid);
5239
5379
  if (!record || !Number.isInteger(record.pid) || record.pid <= 0) {
5240
- return unreadableDiscovery(portFile);
5380
+ const junk = classifyJunkDiscovery(portFile, raw, staleFiles);
5381
+ if (junk)
5382
+ return junk;
5383
+ continue;
5241
5384
  }
5242
- if (isPidAlive(record.pid))
5385
+ if (isPidAlive(record.pid) && isPidIdentityPlausible(record))
5243
5386
  pids.add(record.pid);
5244
5387
  else
5245
5388
  staleFiles.push(portFile);
5246
5389
  }
5247
- const serverPids = [...pids].sort((a, b) => a - b);
5248
- if (serverPids.length > 0) {
5249
- return { state: "live", serverPids, staleFiles };
5250
- }
5251
5390
  for (const staleFile of staleFiles) {
5252
5391
  try {
5253
- unlinkSync(staleFile);
5392
+ rpcDiscoveryFs.unlinkSync(staleFile);
5254
5393
  } catch {
5255
- return unreadableDiscovery(staleFile);
5394
+ return unreadableDiscovery(staleFile, "io");
5256
5395
  }
5257
5396
  }
5397
+ const serverPids = [...pids].sort((a, b) => a - b);
5398
+ if (serverPids.length > 0) {
5399
+ return { state: "live", serverPids, staleFiles };
5400
+ }
5258
5401
  return { state: "stale", serverPids: [], staleFiles };
5259
5402
  }
5260
5403
  function enforceMigrationOnOpenGuard(db, dbPath, dbDir, latestSupportedVersion) {
@@ -5272,12 +5415,16 @@ function enforceMigrationOnOpenGuard(db, dbPath, dbDir, latestSupportedVersion)
5272
5415
  persistedVersion,
5273
5416
  supportedVersion: latestSupportedVersion,
5274
5417
  serverPids: discovery.serverPids,
5275
- ...discovery.unreadableFile ? { unreadableFile: discovery.unreadableFile } : {}
5418
+ ...discovery.unreadableFile ? { unreadableFile: discovery.unreadableFile } : {},
5419
+ ...discovery.unreadableArm ? { unreadableArm: discovery.unreadableArm } : {}
5276
5420
  };
5277
5421
  if (discovery.state === "unreadable") {
5278
- log(`[magic-context] storage fatal: refusing to migrate ${dbPath} from schema v${persistedVersion} to v${latestSupportedVersion} because RPC discovery file ${discovery.unreadableFile ?? "<unknown>"} is unreadable or invalid, so the absence of a live OpenCode server cannot be proven. Restart OpenCode, remove or repair the named discovery file, then retry this process.`);
5422
+ const unreadableFile = discovery.unreadableFile ?? "<unknown>";
5423
+ const arm = discovery.unreadableArm ?? "io";
5424
+ const recovery = arm === "io" ? `If no OpenCode server is running, it is safe to delete ${unreadableFile} and retry.` : `Retry after the file is older than the ten-minute grace window, or stop OpenCode before deleting it.`;
5425
+ log(`[magic-context] storage fatal: refusing to migrate ${dbPath} from upstream migration v${persistedVersion} to v${latestSupportedVersion} because RPC discovery file ${unreadableFile} is uncertain (${arm} arm), so the absence of a live OpenCode server cannot be proven. ${recovery}`);
5279
5426
  } else {
5280
- log(`[magic-context] storage fatal: refusing to migrate ${dbPath} from schema v${persistedVersion} to v${latestSupportedVersion} while live OpenCode server PID(s) ${discovery.serverPids.join(", ")} may still use the old plugin build. Restart OpenCode, then retry this process.`);
5427
+ log(`[magic-context] storage fatal: refusing to migrate ${dbPath} from upstream migration v${persistedVersion} to v${latestSupportedVersion} while live OpenCode server PID(s) ${discovery.serverPids.join(", ")} may still use the old plugin build. Restart OpenCode, then retry this process.`);
5281
5428
  }
5282
5429
  return false;
5283
5430
  }
@@ -5569,6 +5716,7 @@ function initializeDatabase(db) {
5569
5716
  mural_cue TEXT,
5570
5717
  mural_cue_hash TEXT,
5571
5718
  mural_cue_at INTEGER,
5719
+ mural_cue_rejection_count INTEGER NOT NULL DEFAULT 0,
5572
5720
  UNIQUE(project_path, category, normalized_hash)
5573
5721
  );
5574
5722
 
@@ -6592,7 +6740,7 @@ function probeChildSpawnFence(db) {
6592
6740
  }
6593
6741
  // src/features/magic-context/project-docs-hash.ts
6594
6742
  import { createHash as createHash6 } from "node:crypto";
6595
- import { lstatSync, readFileSync as readFileSync2, statSync as statSync2 } from "node:fs";
6743
+ import { lstatSync, readFileSync as readFileSync3, statSync as statSync3 } from "node:fs";
6596
6744
  import path2 from "node:path";
6597
6745
  var PROJECT_DOC_FILES = ["ARCHITECTURE.md", "STRUCTURE.md"];
6598
6746
  var PROJECT_DOCS_DELIMITER = `
@@ -6623,7 +6771,7 @@ function fingerprintFile(filePath) {
6623
6771
  }
6624
6772
  function readDirectoryMtimeMs(projectDirectory) {
6625
6773
  try {
6626
- return statSync2(projectDirectory).mtimeMs;
6774
+ return statSync3(projectDirectory).mtimeMs;
6627
6775
  } catch {
6628
6776
  return 0;
6629
6777
  }
@@ -6666,7 +6814,7 @@ function readCanonicalPieces(projectDirectory, files) {
6666
6814
  if (!safeToRead) {
6667
6815
  continue;
6668
6816
  }
6669
- const canonicalContent = canonicalizeDocContent(readFileSync2(filePath, "utf8"));
6817
+ const canonicalContent = canonicalizeDocContent(readFileSync3(filePath, "utf8"));
6670
6818
  hashPieces.push(`file:${filename}
6671
6819
  ${canonicalContent}`);
6672
6820
  renderedSections.push(`<file name="${escapeXmlAttr(filename)}">
@@ -6990,6 +7138,7 @@ function escalationBands(effectiveThresholdPercentage) {
6990
7138
 
6991
7139
  // src/features/magic-context/storage-meta-persisted.ts
6992
7140
  var emergencyRecoveryArmedSessions = new Set;
7141
+ var emergencyRecoveryArmedAtBySession = new Map;
6993
7142
  var providerOverflowReconfirmedSessions = new Set;
6994
7143
  function isEmergencyRecoveryArmed(sessionId) {
6995
7144
  return emergencyRecoveryArmedSessions.has(sessionId);
@@ -6997,6 +7146,9 @@ function isEmergencyRecoveryArmed(sessionId) {
6997
7146
  function isProviderOverflowReconfirmed(sessionId) {
6998
7147
  return providerOverflowReconfirmedSessions.has(sessionId);
6999
7148
  }
7149
+ function getEmergencyRecoveryArmedAt(sessionId) {
7150
+ return emergencyRecoveryArmedAtBySession.get(sessionId) ?? null;
7151
+ }
7000
7152
  var CAS_RETRY_LIMIT = 5;
7001
7153
  var AUTO_SEARCH_NO_HINT_REASONS = new Set([
7002
7154
  "below-threshold",
@@ -7858,6 +8010,7 @@ function getOverflowState(db, sessionId, modelKey) {
7858
8010
  }
7859
8011
  function recordOverflowDetected(db, sessionId, reportedLimit, modelKey, origin = "provider_overflow", provenance = "unknown") {
7860
8012
  emergencyRecoveryArmedSessions.add(sessionId);
8013
+ emergencyRecoveryArmedAtBySession.set(sessionId, Date.now());
7861
8014
  db.transaction(() => {
7862
8015
  ensureSessionMetaRow(db, sessionId);
7863
8016
  const prior = db.prepare("SELECT needs_emergency_recovery FROM session_meta WHERE session_id = ?").get(sessionId);
@@ -7889,6 +8042,7 @@ function clearEmergencyRecovery(db, sessionId) {
7889
8042
  }
7890
8043
  })();
7891
8044
  emergencyRecoveryArmedSessions.delete(sessionId);
8045
+ emergencyRecoveryArmedAtBySession.delete(sessionId);
7892
8046
  providerOverflowReconfirmedSessions.delete(sessionId);
7893
8047
  }
7894
8048
  function clearDetectedContextLimit(db, sessionId) {
@@ -9753,6 +9907,7 @@ function computeCueContentHash(content) {
9753
9907
  return createHash8("sha256").update(content).digest("hex");
9754
9908
  }
9755
9909
  var muralCueColumnCache = new WeakMap;
9910
+ var muralCueRejectionColumnCache = new WeakMap;
9756
9911
  function hasMuralCueColumns(db) {
9757
9912
  const cached = muralCueColumnCache.get(db);
9758
9913
  if (cached !== undefined)
@@ -9762,6 +9917,15 @@ function hasMuralCueColumns(db) {
9762
9917
  muralCueColumnCache.set(db, present);
9763
9918
  return present;
9764
9919
  }
9920
+ function hasMuralCueRejectionCountColumn(db) {
9921
+ const cached = muralCueRejectionColumnCache.get(db);
9922
+ if (cached !== undefined)
9923
+ return cached;
9924
+ const columns = db.prepare("PRAGMA table_info(memories)").all();
9925
+ const present = columns.some((column) => column.name === "mural_cue_rejection_count");
9926
+ muralCueRejectionColumnCache.set(db, present);
9927
+ return present;
9928
+ }
9765
9929
  function getMuralCueState(db, memoryIds) {
9766
9930
  const out = new Map;
9767
9931
  if (!hasMuralCueColumns(db))
@@ -9770,9 +9934,14 @@ function getMuralCueState(db, memoryIds) {
9770
9934
  if (ids.length === 0)
9771
9935
  return out;
9772
9936
  const placeholders3 = ids.map(() => "?").join(", ");
9773
- const rows = db.prepare(`SELECT id, mural_cue, mural_cue_hash FROM memories WHERE id IN (${placeholders3})`).all(...ids);
9937
+ const rejectionCountColumn = hasMuralCueRejectionCountColumn(db) ? "COALESCE(mural_cue_rejection_count, 0) AS mural_cue_rejection_count" : "0 AS mural_cue_rejection_count";
9938
+ const rows = db.prepare(`SELECT id, mural_cue, mural_cue_hash, ${rejectionCountColumn} FROM memories WHERE id IN (${placeholders3})`).all(...ids);
9774
9939
  for (const row of rows) {
9775
- out.set(row.id, { cue: row.mural_cue ?? null, hash: row.mural_cue_hash ?? null });
9940
+ out.set(row.id, {
9941
+ cue: row.mural_cue ?? null,
9942
+ hash: row.mural_cue_hash ?? null,
9943
+ ...row.mural_cue_rejection_count > 0 ? { rejectionCount: row.mural_cue_rejection_count } : {}
9944
+ });
9776
9945
  }
9777
9946
  return out;
9778
9947
  }
@@ -9789,8 +9958,24 @@ function setMuralCue(db, projectPath, id, cue, contentHash) {
9789
9958
  if (!owned) {
9790
9959
  throw new Error(`Memory ${id} does not belong to project ${projectPath}`);
9791
9960
  }
9792
- db.prepare("UPDATE memories SET mural_cue = ?, mural_cue_hash = ?, mural_cue_at = ? WHERE id = ? AND project_path = ?").run(cue, contentHash, Date.now(), id, projectPath);
9961
+ const rejectionReset = hasMuralCueRejectionCountColumn(db) ? ", mural_cue_rejection_count = 0" : "";
9962
+ db.prepare(`UPDATE memories SET mural_cue = ?, mural_cue_hash = ?, mural_cue_at = ?${rejectionReset} WHERE id = ? AND project_path = ?`).run(cue, contentHash, Date.now(), id, projectPath);
9963
+ });
9964
+ }
9965
+ function recordMuralCueRejection(db, projectPath, id, contentHash) {
9966
+ if (!hasMuralCueColumns(db) || !hasMuralCueRejectionCountColumn(db))
9967
+ return 0;
9968
+ let count = 0;
9969
+ withPrivilegedWriter(db, () => {
9970
+ const owned = db.prepare("SELECT 1 FROM memories WHERE id = ? AND project_path = ?").get(id, projectPath);
9971
+ if (!owned) {
9972
+ throw new Error(`Memory ${id} does not belong to project ${projectPath}`);
9973
+ }
9974
+ const row = db.prepare("SELECT mural_cue_hash, mural_cue_rejection_count FROM memories WHERE id = ?").get(id);
9975
+ count = row?.mural_cue_hash === contentHash ? (row.mural_cue_rejection_count ?? 0) + 1 : 1;
9976
+ db.prepare("UPDATE memories SET mural_cue = NULL, mural_cue_hash = ?, mural_cue_at = ?, mural_cue_rejection_count = ? WHERE id = ? AND project_path = ?").run(contentHash, Date.now(), count, id, projectPath);
9793
9977
  });
9978
+ return count;
9794
9979
  }
9795
9980
 
9796
9981
  // src/features/magic-context/memory/storage-memory-embeddings.ts
@@ -26200,12 +26385,10 @@ var EmbeddingConfigSchema = BaseEmbeddingConfigSchema.transform((data) => {
26200
26385
  var MagicContextConfigSchema = exports_external.object({
26201
26386
  enabled: exports_external.boolean().default(true).describe("Enable magic context (default: true)"),
26202
26387
  allow_home_project: exports_external.boolean().default(false).describe("Allow Magic Context sessions launched from the exact canonical home directory. The home session uses its deterministic dir: identity so pre-gate memories reconnect. USER-LEVEL ONLY: project config is ignored. The home identity is excluded from registry seed exports, never resolves descendants by containment, and cannot join a workspace."),
26203
- experimental: exports_external.object({
26204
- mural: exports_external.object({
26205
- enabled: exports_external.boolean().default(false),
26206
- model: exports_external.string().trim().min(1).optional().describe("Model for the compress-cues task that compresses each memory into a mural cue. The mural image itself is rendered deterministically (no author model).")
26207
- }).default({ enabled: false }).describe("Experimental mural: a single deterministically-rendered image of project memories that did not fit the context budget. Cues are compressed per-memory by the compress-cues dreamer task.")
26208
- }).default({ mural: { enabled: false } }).describe("Experimental feature switches. User and project configuration are both accepted."),
26388
+ mural: exports_external.object({
26389
+ enabled: exports_external.boolean().default(false),
26390
+ model: exports_external.string().trim().min(1).optional().describe("Model for the compress-cues task that compresses each memory into a mural cue. The mural image itself is rendered deterministically (no author model).")
26391
+ }).default({ enabled: false }).describe("Experimental mural: a single deterministically-rendered image of project memories that did not fit the context budget. Cues are compressed per-memory by the compress-cues dreamer task."),
26209
26392
  transform_mode: exports_external.enum(["ts", "rust"]).default("ts").describe('Experimental: routes the entire Magic Context runtime for the project through the ck-mc Rust module over subc (requires user-level `subc` config); "ts" is the current TypeScript pipeline.'),
26210
26393
  auto_update: exports_external.boolean().optional().describe("Enable automatic npm self-update checks for the OpenCode plugin. Security: USER-only in config loader, so hostile project configs cannot suppress updates."),
26211
26394
  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."),
@@ -31870,7 +32053,7 @@ function getMemoryVerifications(db, memoryIds) {
31870
32053
  }
31871
32054
  // src/features/magic-context/memory/verification-paths.ts
31872
32055
  import { execFile } from "node:child_process";
31873
- import { existsSync as existsSync4, realpathSync as realpathSync2, statSync as statSync3 } from "node:fs";
32056
+ import { existsSync as existsSync4, realpathSync as realpathSync2, statSync as statSync4 } from "node:fs";
31874
32057
  import path3 from "node:path";
31875
32058
  import { promisify } from "node:util";
31876
32059
  var execFileAsync = promisify(execFile);
@@ -32012,7 +32195,7 @@ async function normalizeVerificationFiles(args) {
32012
32195
  }
32013
32196
  if (existsSync4(candidate)) {
32014
32197
  try {
32015
- if (statSync3(candidate).isDirectory()) {
32198
+ if (statSync4(candidate).isDirectory()) {
32016
32199
  warnings.push(`Skipped verification path "${value}" because it is a directory.`);
32017
32200
  continue;
32018
32201
  }
@@ -42006,4 +42189,4 @@ async function runUpgradeMemoryMigration(ctx, sessionId, migrationDirectory) {
42006
42189
  }
42007
42190
  }
42008
42191
 
42009
- export { withContentLanguageDirective, buildPrimaryLanguageDirective, exports_external, DEFAULT_PROTECTED_TAGS, parseCron, nextOccurrence, nextDueAtMs, 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, 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, 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, getMuralCueState, memoryNeedsCue, setMuralCue, 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, estimateTrueRawMessageTokens, invalidateTrueRawTokenCache, 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 };
42192
+ export { withContentLanguageDirective, buildPrimaryLanguageDirective, exports_external, DEFAULT_PROTECTED_TAGS, parseCron, nextOccurrence, nextDueAtMs, 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, 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, estimateTrueRawMessageTokens, invalidateTrueRawTokenCache, 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 };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AA0vBvE,QAAA,MAAM,MAAM,EAAE,YAGb,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,qBAAqB,CAAC;AA8wBvE,QAAA,MAAM,MAAM,EAAE,YAGb,CAAC;AAEF,eAAe,MAAM,CAAC"}