@cortexkit/opencode-magic-context 0.43.0 → 0.43.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/{announcement-8mgn61fw.js → announcement-1a8bvswd.js} +2 -1
  2. package/dist/{conflict-warning-hook-t2vb0wnx.js → conflict-warning-hook-956fkedc.js} +6 -4
  3. package/dist/{derive-budgets-0sg5vp61.js → derive-budgets-b8ybssh9.js} +3 -2
  4. package/dist/features/magic-context/dreamer/hidden-single-shot.d.ts +7 -4
  5. package/dist/features/magic-context/dreamer/hidden-single-shot.d.ts.map +1 -1
  6. package/dist/features/magic-context/dreamer/map-memories.d.ts +3 -1
  7. package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
  8. package/dist/features/magic-context/dreamer/refresh-primers.d.ts +3 -1
  9. package/dist/features/magic-context/dreamer/refresh-primers.d.ts.map +1 -1
  10. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
  11. package/dist/features/magic-context/dreamer/verify.d.ts +4 -1
  12. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
  13. package/dist/features/magic-context/memory/verification-paths.d.ts.map +1 -1
  14. package/dist/hooks/auto-update-checker/checker.d.ts +1 -0
  15. package/dist/hooks/auto-update-checker/checker.d.ts.map +1 -1
  16. package/dist/hooks/magic-context/compartment-trigger.d.ts +2 -1
  17. package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
  18. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  19. package/dist/hooks/magic-context/lkg-slot.d.ts +1 -0
  20. package/dist/hooks/magic-context/lkg-slot.d.ts.map +1 -1
  21. package/dist/hooks/magic-context/rust-mode-transform.d.ts +2 -0
  22. package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
  23. package/dist/hooks/magic-context/send-session-notification.d.ts +1 -0
  24. package/dist/hooks/magic-context/send-session-notification.d.ts.map +1 -1
  25. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  26. package/dist/{index-8w1skpnm.js → index-0ccmyzbj.js} +6 -6
  27. package/dist/{index-w2ety11c.js → index-1gtwrdc4.js} +3 -3
  28. package/dist/{index-ntbmt6rq.js → index-4b30nf6z.js} +1 -1
  29. package/dist/{index-99sfbrrf.js → index-6w9p73jz.js} +1 -1
  30. package/dist/{index-4ftb5hcq.js → index-6z9g64js.js} +7 -1
  31. package/dist/{index-d0dh7v0f.js → index-7wpwr2e2.js} +115 -86
  32. package/dist/{index-9skq8m9y.js → index-9r1cbh9e.js} +1 -1
  33. package/dist/{safe-notification-target-fepvcbsj.js → index-febg06dy.js} +6 -7
  34. package/dist/{index-ygwdyntq.js → index-j7cnyvq1.js} +6 -4
  35. package/dist/{index-rpz2me0v.js → index-kpmmr8s0.js} +2 -2
  36. package/dist/{index-ykg9sdzz.js → index-v8qr6tt2.js} +1 -1
  37. package/dist/{index-qp20p2py.js → index-wgzyeyf5.js} +1 -1
  38. package/dist/{index-rvwvdq59.js → index-yc81txp4.js} +38 -4
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +577 -226
  41. package/dist/{message-time-backfill-gzjer78y.js → message-time-backfill-0ccvyk9n.js} +3 -2
  42. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  43. package/dist/{read-session-chunk-ec3jkvhg.js → read-session-chunk-z7fv0qjv.js} +4 -3
  44. package/dist/{recomp-orchestrator-6akjp11f.js → recomp-orchestrator-r00aa5t3.js} +9 -7
  45. package/dist/safe-notification-target-vrkjrbgb.js +10 -0
  46. package/dist/{send-session-notification-f6gwkesy.js → send-session-notification-3warjyjp.js} +7 -3
  47. package/dist/shared/data-path.d.ts.map +1 -1
  48. package/dist/shared/model-suggestion-retry.d.ts.map +1 -1
  49. package/dist/shared/test-temp-dir.d.ts +1 -1
  50. package/dist/shared/test-temp-dir.d.ts.map +1 -1
  51. package/dist/{task-config-ex4nt0q0.js → task-config-mgf5nsh3.js} +1 -1
  52. package/dist/v2/hidden-completion.d.ts.map +1 -1
  53. package/dist/v2/hooks/hidden-child.d.ts +6 -0
  54. package/dist/v2/hooks/hidden-child.d.ts.map +1 -1
  55. package/dist/v2/hooks/payload.d.ts.map +1 -1
  56. package/dist/v2/hooks/types.d.ts +1 -0
  57. package/dist/v2/hooks/types.d.ts.map +1 -1
  58. package/dist/v2/host-service.d.ts +1 -1
  59. package/dist/v2/host-service.d.ts.map +1 -1
  60. package/dist/v2/server.js +701 -305
  61. package/dist/wrapup-orchestrator-y0bs7t5a.js +18 -0
  62. package/package.json +2 -1
  63. package/src/features/magic-context/dreamer/task-registry.ts +1 -1
  64. package/src/shared/data-path.ts +6 -6
  65. package/src/shared/model-suggestion-retry.test.ts +43 -0
  66. package/src/shared/model-suggestion-retry.ts +17 -0
  67. package/src/shared/test-temp-dir.ts +3 -0
  68. package/dist/wrapup-orchestrator-5akc87gr.js +0 -16
@@ -1,8 +1,15 @@
1
+ import {
2
+ getHarness,
3
+ ensureCortexKitArtifactGitignore,
4
+ getProjectMagicContextHistorianDir,
5
+ getMagicContextStorageDir,
6
+ getLegacyOpenCodeMagicContextStorageDir
7
+ } from "./index-6z9g64js.js";
1
8
  import {
2
9
  sanitizeDiagnosticText,
3
10
  log,
4
11
  sessionLog
5
- } from "./index-qp20p2py.js";
12
+ } from "./index-wgzyeyf5.js";
6
13
  import {
7
14
  resolveDecisionCalibration,
8
15
  providerMass,
@@ -48,7 +55,7 @@ import {
48
55
  getRawSessionTagKeysThrough2,
49
56
  getLegacyProtectedTailStartOrdinal2,
50
57
  readSessionChunk2
51
- } from "./index-ygwdyntq.js";
58
+ } from "./index-j7cnyvq1.js";
52
59
  import {
53
60
  resolveOpenCodeDbPath,
54
61
  hasV1MessageTables,
@@ -63,7 +70,7 @@ import {
63
70
  closeQuietly,
64
71
  withReadOnlySessionDb,
65
72
  getMessageTimesFromOpenCodeDb
66
- } from "./index-ykg9sdzz.js";
73
+ } from "./index-v8qr6tt2.js";
67
74
  import {
68
75
  piModelRefToCanonical,
69
76
  modelRefLookupOrder,
@@ -74,7 +81,7 @@ import {
74
81
  getSdkOutputLimit,
75
82
  deriveTriggerBudget2,
76
83
  producerSourceLocalBudget2
77
- } from "./index-8w1skpnm.js";
84
+ } from "./index-0ccmyzbj.js";
78
85
  import {
79
86
  createScanner,
80
87
  parseTree,
@@ -91,17 +98,10 @@ import {
91
98
  getErrorMessage,
92
99
  describeError,
93
100
  sendStatusNotification2
94
- } from "./index-rvwvdq59.js";
101
+ } from "./index-yc81txp4.js";
95
102
  import {
96
103
  logSlowWriteTransaction
97
- } from "./index-9skq8m9y.js";
98
- import {
99
- getHarness,
100
- ensureCortexKitArtifactGitignore,
101
- getProjectMagicContextHistorianDir,
102
- getMagicContextStorageDir,
103
- getLegacyOpenCodeMagicContextStorageDir
104
- } from "./index-4ftb5hcq.js";
104
+ } from "./index-9r1cbh9e.js";
105
105
 
106
106
  // src/config/schema/magic-context.ts
107
107
  import { homedir } from "node:os";
@@ -19251,7 +19251,12 @@ async function runGit(cwd, args) {
19251
19251
  encoding: "utf8"
19252
19252
  });
19253
19253
  return String(result.stdout);
19254
- } catch {
19254
+ } catch (error) {
19255
+ if (error.killed || error.code === "ETIMEDOUT") {
19256
+ throw new Error(`Git verification command timed out after ${GIT_TIMEOUT_MS2}ms`, {
19257
+ cause: error
19258
+ });
19259
+ }
19255
19260
  return null;
19256
19261
  }
19257
19262
  }
@@ -24304,9 +24309,22 @@ function visitMessageContentFields(value, visitor) {
24304
24309
  }
24305
24310
  return visitor.field(LKG_SNAPSHOT_UNDEFINED);
24306
24311
  }
24312
+ function contentSnapshotValue(value) {
24313
+ if (!value || typeof value !== "object")
24314
+ return value;
24315
+ const message = value;
24316
+ const info = message.info;
24317
+ const summary = info?.summary;
24318
+ if (!Array.isArray(message.parts) || info?.role !== "user" || summary === null || typeof summary !== "object" || Array.isArray(summary) || Object.keys(summary).length !== 1 || !Array.isArray(summary.diffs) || summary.diffs.length !== 0)
24319
+ return value;
24320
+ return {
24321
+ ...message,
24322
+ info: Object.fromEntries(Object.entries(info).filter(([key]) => key !== "summary"))
24323
+ };
24324
+ }
24307
24325
  function messageContentFields(message) {
24308
24326
  const fields = [];
24309
- const complete = visitMessageContentFields(message, {
24327
+ const complete = visitMessageContentFields(contentSnapshotValue(message), {
24310
24328
  field(value) {
24311
24329
  fields.push(value);
24312
24330
  return true;
@@ -24372,7 +24390,7 @@ function lkgContentFields(value) {
24372
24390
  fields.push(LKG_SNAPSHOT_UNDEFINED);
24373
24391
  };
24374
24392
  try {
24375
- visit(value);
24393
+ visit(contentSnapshotValue(value));
24376
24394
  return fields;
24377
24395
  } catch {
24378
24396
  return null;
@@ -25645,8 +25663,8 @@ function finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion)
25645
25663
  { readRawSessionMessagePage, readRawSessionMessages },
25646
25664
  { startMessageTimeBackfill }
25647
25665
  ] = await Promise.all([
25648
- import("./read-session-chunk-ec3jkvhg.js"),
25649
- import("./message-time-backfill-gzjer78y.js")
25666
+ import("./read-session-chunk-z7fv0qjv.js"),
25667
+ import("./message-time-backfill-0ccvyk9n.js")
25650
25668
  ]);
25651
25669
  await startMessageTimeBackfill(db, Object.assign(readRawSessionMessages, {
25652
25670
  readPage: readRawSessionMessagePage
@@ -28296,6 +28314,73 @@ function parseReportedLimit(message) {
28296
28314
  return;
28297
28315
  }
28298
28316
 
28317
+ // src/shared/assistant-message-extractor.ts
28318
+ function asSessionMessage(value) {
28319
+ if (!isRecord(value))
28320
+ return null;
28321
+ const info = value.info;
28322
+ const parts = value.parts;
28323
+ return {
28324
+ info: isRecord(info) ? {
28325
+ role: typeof info.role === "string" ? info.role : undefined,
28326
+ time: isRecord(info.time) ? {
28327
+ created: typeof info.time.created === "number" ? info.time.created : undefined
28328
+ } : undefined,
28329
+ error: info.error,
28330
+ finish: typeof info.finish === "string" ? info.finish : typeof info.finish_reason === "string" ? info.finish_reason : typeof info.finishReason === "string" ? info.finishReason : undefined
28331
+ } : undefined,
28332
+ parts
28333
+ };
28334
+ }
28335
+ function getCreatedTime(message) {
28336
+ return message.info?.time?.created ?? 0;
28337
+ }
28338
+ function getTextParts(message) {
28339
+ if (!Array.isArray(message.parts))
28340
+ return [];
28341
+ return message.parts.filter((part) => isRecord(part)).map((part) => ({
28342
+ type: typeof part.type === "string" ? part.type : undefined,
28343
+ text: typeof part.text === "string" ? part.text : undefined
28344
+ })).filter((part) => part.type === "text" && Boolean(part.text));
28345
+ }
28346
+ function getLatestAssistantMessage(messages) {
28347
+ if (!Array.isArray(messages) || messages.length === 0)
28348
+ return null;
28349
+ return messages.map(asSessionMessage).filter((message) => message !== null).filter((message) => message.info?.role === "assistant").sort((a, b) => getCreatedTime(b) - getCreatedTime(a))[0] ?? null;
28350
+ }
28351
+ function extractLatestAssistantText(messages) {
28352
+ const latest = getLatestAssistantMessage(messages);
28353
+ if (!latest)
28354
+ return null;
28355
+ return getTextParts(latest).map((part) => part.text).join(`
28356
+ `) || null;
28357
+ }
28358
+ function extractLatestAssistantFailure(messages) {
28359
+ const latest = getLatestAssistantMessage(messages);
28360
+ if (!latest || latest.info?.error === undefined || latest.info.error === null)
28361
+ return null;
28362
+ return {
28363
+ error: latest.info.error,
28364
+ finish: latest.info.finish ?? null
28365
+ };
28366
+ }
28367
+ function hasLengthCappedOutput(value) {
28368
+ if (Array.isArray(value))
28369
+ return value.some((item) => hasLengthCappedOutput(item));
28370
+ if (!isRecord(value))
28371
+ return false;
28372
+ if (value.length_capped === true || value.lengthCapped === true)
28373
+ return true;
28374
+ const finishReason = value.finish_reason ?? value.finishReason ?? value.finish ?? (value.type === "step-finish" ? value.reason : undefined) ?? value.stopReason;
28375
+ if (typeof finishReason === "string") {
28376
+ const normalized = finishReason.toLowerCase();
28377
+ if (normalized === "length" || normalized === "max_tokens" || normalized === "max_output_tokens") {
28378
+ return true;
28379
+ }
28380
+ }
28381
+ return Object.values(value).some((item) => hasLengthCappedOutput(item));
28382
+ }
28383
+
28299
28384
  // src/shared/resolve-fallbacks.ts
28300
28385
  function parseProviderModel(spec) {
28301
28386
  const slash = spec.indexOf("/");
@@ -28589,6 +28674,17 @@ async function attemptAndValidate(client, args, timeoutMs, signal, callContext,
28589
28674
  };
28590
28675
  }
28591
28676
  try {
28677
+ if (!extractLatestAssistantText(output)) {
28678
+ const assistantFailure = extractLatestAssistantFailure(output);
28679
+ if (assistantFailure) {
28680
+ const error = new Error(`Host recorded assistant error: ${String(assistantFailure.error)}`);
28681
+ Object.assign(error, {
28682
+ name: "DreamerProviderOutputFailureError",
28683
+ transient: true
28684
+ });
28685
+ throw error;
28686
+ }
28687
+ }
28592
28688
  const validated = await options.validateOutput(output, attempt);
28593
28689
  return { output, validated, attempt };
28594
28690
  } catch (error) {
@@ -31116,73 +31212,6 @@ function recordChildInvocation(input) {
31116
31212
  }
31117
31213
  }
31118
31214
 
31119
- // src/shared/assistant-message-extractor.ts
31120
- function asSessionMessage(value) {
31121
- if (!isRecord(value))
31122
- return null;
31123
- const info = value.info;
31124
- const parts = value.parts;
31125
- return {
31126
- info: isRecord(info) ? {
31127
- role: typeof info.role === "string" ? info.role : undefined,
31128
- time: isRecord(info.time) ? {
31129
- created: typeof info.time.created === "number" ? info.time.created : undefined
31130
- } : undefined,
31131
- error: info.error,
31132
- finish: typeof info.finish === "string" ? info.finish : typeof info.finish_reason === "string" ? info.finish_reason : typeof info.finishReason === "string" ? info.finishReason : undefined
31133
- } : undefined,
31134
- parts
31135
- };
31136
- }
31137
- function getCreatedTime(message) {
31138
- return message.info?.time?.created ?? 0;
31139
- }
31140
- function getTextParts(message) {
31141
- if (!Array.isArray(message.parts))
31142
- return [];
31143
- return message.parts.filter((part) => isRecord(part)).map((part) => ({
31144
- type: typeof part.type === "string" ? part.type : undefined,
31145
- text: typeof part.text === "string" ? part.text : undefined
31146
- })).filter((part) => part.type === "text" && Boolean(part.text));
31147
- }
31148
- function getLatestAssistantMessage(messages) {
31149
- if (!Array.isArray(messages) || messages.length === 0)
31150
- return null;
31151
- return messages.map(asSessionMessage).filter((message) => message !== null).filter((message) => message.info?.role === "assistant").sort((a, b) => getCreatedTime(b) - getCreatedTime(a))[0] ?? null;
31152
- }
31153
- function extractLatestAssistantText(messages) {
31154
- const latest = getLatestAssistantMessage(messages);
31155
- if (!latest)
31156
- return null;
31157
- return getTextParts(latest).map((part) => part.text).join(`
31158
- `) || null;
31159
- }
31160
- function extractLatestAssistantFailure(messages) {
31161
- const latest = getLatestAssistantMessage(messages);
31162
- if (!latest || latest.info?.error === undefined || latest.info.error === null)
31163
- return null;
31164
- return {
31165
- error: latest.info.error,
31166
- finish: latest.info.finish ?? null
31167
- };
31168
- }
31169
- function hasLengthCappedOutput(value) {
31170
- if (Array.isArray(value))
31171
- return value.some((item) => hasLengthCappedOutput(item));
31172
- if (!isRecord(value))
31173
- return false;
31174
- if (value.length_capped === true || value.lengthCapped === true)
31175
- return true;
31176
- const finishReason = value.finish_reason ?? value.finishReason ?? value.finish ?? (value.type === "step-finish" ? value.reason : undefined) ?? value.stopReason;
31177
- if (typeof finishReason === "string") {
31178
- const normalized = finishReason.toLowerCase();
31179
- if (normalized === "length" || normalized === "max_tokens" || normalized === "max_output_tokens") {
31180
- return true;
31181
- }
31182
- }
31183
- return Object.values(value).some((item) => hasLengthCappedOutput(item));
31184
- }
31185
-
31186
31215
  // src/shared/keep-subagents.ts
31187
31216
  var keepSubagents = false;
31188
31217
  function setKeepSubagents(value) {
@@ -39790,4 +39819,4 @@ ${failure}`;
39790
39819
  }
39791
39820
  }
39792
39821
 
39793
- export { withContentLanguageDirective, buildPrimaryLanguageDirective, setJsoncValue, removeJsoncValue, cortexKitUserConfigBasePath, cortexKitProjectConfigBasePath, resolveLegacyConfigSources, resolveLegacyConfigSourcesForHarness, migrateMagicContextConfigLocations, string, unknown, array, object, union, tuple, record, parseCron, nextOccurrence, nextDueAtMs, promptSurfaceConfigIdentity, resolveModelConfigValue, resolvePromptSurface, resolveModelConfigOrDefault, DEFAULT_EXECUTE_THRESHOLD_PERCENTAGE, DEFAULT_HISTORIAN_TIMEOUT_MS, PROTECTED_TOKENS_MIN, DEFAULT_LOCAL_EMBEDDING_MODEL, PER_HARNESS_MIGRATION_INVENTORY, PER_HARNESS_MODEL_KEYS, ConfigProfilesSchema, MagicContextConfigSchema, LIVE_RELOAD_CONFIG_PATHS, isFailClosedBlockingError, shouldBypassFailClosedBlock, resolveAgentNameFromMessages, createFailClosedController, recordHookInitFailure, clearHookInitFailure, getLastHookInitFailure, ProjectIdentityError, resolveProjectIdentityStrict, takeDubiousOwnershipProjectIdentityWarning, resolveProjectIdentity, directoryHasGitMetadata, describeUnresolvedProjectIdentity, resolveProjectIdentityForSession, normalizeStoredProjectPath, storedPathBelongsToIdentity, isLinkedGitWorktree, recordSessionProjectIdentity, beginBootQuietPeriod, bootQuietRemainingMs, scheduleAfterBootQuiet, rpcPortDir, rpcPortFilePath, isPidAlive, parseRpcPortFile, observeAuthorityRouting, registerModuleNoteEvaluationBridge, getModuleNoteEvaluationBridge, getContextStoreUuid, ensureContextStoreUuid, getAuthorityManagedMarker, reconcileAuthorityMarker, reconcileAuthorityProject, checksumAuthoritySeedRows, prepareAuthority, drainAuthority, getMemoryMirrorStatus, takeMemoryEmbeddingInvalidatedProjects, moduleMemoryIdentityForHostId, hostMemoryIdentityForModuleId, applyMirroredNoteCompileFields, applyTargetedMemoryMirrorRow, drainMirrorPages, pullMemoryMirrorOnce, V2_MEMORY_CATEGORIES, CATEGORY_PRIORITY, resolveWorkspaceShareCategories, resolveWorkspaceIdentitySet, expandWorkspaceIdentitySetWithAliases, resolveStoredPathWorkspaceIdentity, storedPathBelongsToWorkspace, sourceNameForMemory, computeWorkspaceEpochFingerprint, getSchemaFenceRejection, getMigrationOnOpenRefusal, LATEST_SUPPORTED_VERSION, getDatabasePath, getPersistedSchemaVersion, setSqlitePragmaConfig, runSqliteOptimize, openDatabase, openDatabaseAsync, isDatabasePersisted, getDatabasePersistenceError, COMPARTMENT_AGENT_SYSTEM_PROMPT, HISTORIAN_EDITOR_SYSTEM_PROMPT, COMPARTMENT_STRUCTURAL_SYSTEM_PROMPT, Priority, AdmissionClass, SocketClosedError, SocketTimeoutError, StaleRouteHandleError, SubcClient, isConsumerReconnectTransient, connectionFileExists, clampProducerAtomChars, producerInputTokenLimit, COMPARTMENT_LEASE_RENEWAL_MS, acquireCompartmentLease, renewCompartmentLease, releaseCompartmentLeaseBestEffort, getCompartments, getLastCompartmentEndMessage, getLastCompartmentEndMessageId, getMessageIndexSourceIdentity, isMessageIndexSourceCurrent, getLastIndexedOrdinal, getIndexedMessageCorpusSize, getMessageIndexReconciliationStartOrdinal, isMessageIndexReconciledThrough, deleteIndexedMessage, clearIndexedMessages, indexSingleMessage, indexMessagesAfterOrdinal, sweepOrphanedOpenCodeMessageIndexes, MAX_EXECUTE_THRESHOLD, escalationBands, MERGED_REASONING_PARTS_PREFIX, readFrozenMergedReasoningParts, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, getProtectionWindowForSession, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, loadPersistedUsage, loadProtectedTailMeta, resetProtectedTailNoEligibleHead, getWrapupInProgressState, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getPersistedReasoningWatermark, setPersistedReasoningWatermark, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, getNoteNudgeAnchors, getAutoSearchHintDecisions, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, pruneAutoSearchHintDecisions, removeNoteNudgeAnchorByMessageId, removeAutoSearchHintDecisionByMessageId, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, setNoteLastReadAt, getHistorianFailureState, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, removeStrippedPlaceholderId, NEWEST_REASONING_BEARING_ASSISTANT, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, armThinkingBindingRecovery, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getSessionsWithPendingMarker, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, BoundedSessionMap, registerLkgPersistence, beginLkgPass, visitMessageContentFields, messageContentFields, signatureForFields, exactReusablePrefix, incrementalLkgContentDigests, lkgContentDigest, captureSlot, getInMemorySlot, getSlot, dropSlot, noteEntry, getLkgSlotHeapStats, useScopedToolSweep, createPreAdoptionToolSweepResolver, recordEmbeddingMeasurement, getMaxM0MutationId, queueMemoryMutation, getMemoryMutationsForRenderByProjects, getMaxMemoryMutationIdForProjects, getOrCreateSessionMeta, updateSessionMeta, advanceToolReclaimWatermark, markSessionCleanupPending, retryPendingSessionCleanups, retryPendingRustSessionCleanupsForProject, clearSession, getNoteByIdInScope, getNotes, addNote, getSessionNotes, getPendingSmartNotes, getReadySmartNotes, updateNote, dismissNotes, dismissNote, markNoteReady, markNoteChecked, queuePendingOp, getPendingOps, getPendingOpsCount, 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, createChildSessionWithFence, HiddenCompletionRefusal, detectThinkingBindingMismatch, isFable51ThinkingBindingModel, detectOverflow, parseProviderModel, modelBodyField, toModelEntry, getPromptFailureDetail, promptSyncWithValidatedOutputRetry, normalizeSDKResponse, ACTIVE_TOOL_IDS, promptSurfaceHashMaterial, createPromptSurfaceRuntime, createPromptSurfaceGuidanceEpochCache, extractLatestAssistantText, hasLengthCappedOutput, setKeepSubagents, teardownChildSession, renderUserFacingFailure, userFacingFailureCode, renderCapabilityRefusal, capabilityRefusalCode, renderDreamFailure, dreamFailureCode, renderEmbeddingFailure, getCompartmentEvents, SYNAPSE_DEFAULT_MODEL, toSynapseLaneDescriptor, formatSynapseLaneDescriptor, SynapseEmbeddingProvider, loadCompartmentChunkEmbeddingsForSearch, cosineSimilarity, computeNormalizedHash, getLocalEmbeddingNativeMemoryStats, saveCommitEmbedding, loadProjectCommitEmbeddings, loadUnembeddedCommits, countEmbeddedCommits, upsertCommits, getLatestIndexedCommitTimeMs, enforceProjectCap, GIT_SWEEP_LEASE_RENEWAL_MS, acquireGitSweepLease, renewGitSweepLease, markGitSweepSuccessAndRelease, parkGitSweepNonIndexable, releaseGitSweepLease, saveEmbeddingIfHashMatches, getProjectEmbeddings, peekProjectEmbeddings, invalidateProject, invalidateMemory, describeShadowBackfillWriteRefusal, markProjectLoadUntrusted, contentSha256, sweepStaleEmbeddingIdentitiesForProject, registerProjectEmbedding, registerProjectShadowEmbedding, getShadowEmbeddingMeasurementCohort, getPrimaryEmbeddingMeasurementCohort, embedShadowTextForProject, enqueueShadowEmbeddingItems, registerProjectInObservationMode, unregisterProjectShadowEmbedding, 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, failedInvocationStatus, recordChildInvocation, resolveHiddenCompletionExecutor, USER_MEMORY_CANDIDATE_TTL_MS, insertUserMemoryCandidates, getUserMemoryCandidates, deleteUserMemoryCandidates, pruneExpiredUserMemoryCandidates, insertUserMemory, getActiveUserMemories, updateUserMemoryContent, dismissUserMemory, getMuralIdentity, getMural, readCoordinateRebaseNotice, formatCoordinateRebaseNotice, rebaseSessionCoordinates, getOpenCodeDbPath, compareOpenCodeMessagesByCanonicalOrder, removeMcOwnedCompactionMarkers, MARKER_SUMMARY_TEXT, applyDeferredCompactionMarker, removeCompactionMarkerForSession, checkCompactionMarkerConsistency, modelKeyAcceptsImages, resolveMuralWire, extractM0Block, formatDate, injectTemporalMarkers, clearInjectionCache, getVisibleMemoryIds, selectHiddenMessagesAtCompactionSeam, prepareCompartmentInjection, renderCompartmentInjection, mustMaterialize, trimMemoriesToBudgetV2, renderMemoryBlockV2, materializeM0, capturePrefixTrimSourceOrder, prepareCachedM0M1Replay, hasCompleteCachedM0M1, injectM0M1, EMPTY_READ_REPLY, noteTouchedAt, renderGlance, renderNotesById, formatWriteReply, onNoteTrigger, peekNoteNudgeText, markNoteNudgeDelivered, clearNoteNudgeTriggerAndCooldown, resetNoteNudgeCooldownOnly, clearNoteNudgeTriggerOnly, describeBoundaryDiagnostics, RECOVERY_NO_HEAD_LIMIT, resolveOpenCodeProtectedTailBoundary, resolveWrapupProtectedTailBoundary, getRawHistoryEligibility, hasRunnableCompartmentWindow, recordHighPressureNoEligibleHead, runCompartmentAgent, snapRangeToCompartments, getActiveCompartmentRun, markActiveCompartmentRunPublished, registerActiveCompartmentRun, startCompartmentAgent, setRecompStarting2, setRecompTerminal2, runManagedRecomp2 };
39822
+ export { withContentLanguageDirective, buildPrimaryLanguageDirective, setJsoncValue, removeJsoncValue, cortexKitUserConfigBasePath, cortexKitProjectConfigBasePath, resolveLegacyConfigSources, resolveLegacyConfigSourcesForHarness, migrateMagicContextConfigLocations, string, unknown, array, object, union, tuple, record, parseCron, nextOccurrence, nextDueAtMs, promptSurfaceConfigIdentity, resolveModelConfigValue, resolvePromptSurface, resolveModelConfigOrDefault, DEFAULT_EXECUTE_THRESHOLD_PERCENTAGE, DEFAULT_HISTORIAN_TIMEOUT_MS, PROTECTED_TOKENS_MIN, DEFAULT_LOCAL_EMBEDDING_MODEL, PER_HARNESS_MIGRATION_INVENTORY, PER_HARNESS_MODEL_KEYS, ConfigProfilesSchema, MagicContextConfigSchema, LIVE_RELOAD_CONFIG_PATHS, isFailClosedBlockingError, shouldBypassFailClosedBlock, resolveAgentNameFromMessages, createFailClosedController, recordHookInitFailure, clearHookInitFailure, getLastHookInitFailure, ProjectIdentityError, resolveProjectIdentityStrict, takeDubiousOwnershipProjectIdentityWarning, resolveProjectIdentity, directoryHasGitMetadata, describeUnresolvedProjectIdentity, resolveProjectIdentityForSession, normalizeStoredProjectPath, storedPathBelongsToIdentity, isLinkedGitWorktree, recordSessionProjectIdentity, beginBootQuietPeriod, bootQuietRemainingMs, scheduleAfterBootQuiet, rpcPortDir, rpcPortFilePath, isPidAlive, parseRpcPortFile, observeAuthorityRouting, registerModuleNoteEvaluationBridge, getModuleNoteEvaluationBridge, getContextStoreUuid, ensureContextStoreUuid, getAuthorityManagedMarker, reconcileAuthorityMarker, reconcileAuthorityProject, checksumAuthoritySeedRows, prepareAuthority, drainAuthority, getMemoryMirrorStatus, takeMemoryEmbeddingInvalidatedProjects, moduleMemoryIdentityForHostId, hostMemoryIdentityForModuleId, applyMirroredNoteCompileFields, applyTargetedMemoryMirrorRow, drainMirrorPages, pullMemoryMirrorOnce, V2_MEMORY_CATEGORIES, CATEGORY_PRIORITY, resolveWorkspaceShareCategories, resolveWorkspaceIdentitySet, expandWorkspaceIdentitySetWithAliases, resolveStoredPathWorkspaceIdentity, storedPathBelongsToWorkspace, sourceNameForMemory, computeWorkspaceEpochFingerprint, getSchemaFenceRejection, getMigrationOnOpenRefusal, LATEST_SUPPORTED_VERSION, getDatabasePath, getPersistedSchemaVersion, setSqlitePragmaConfig, runSqliteOptimize, openDatabase, openDatabaseAsync, isDatabasePersisted, getDatabasePersistenceError, COMPARTMENT_AGENT_SYSTEM_PROMPT, HISTORIAN_EDITOR_SYSTEM_PROMPT, COMPARTMENT_STRUCTURAL_SYSTEM_PROMPT, Priority, AdmissionClass, SocketClosedError, SocketTimeoutError, StaleRouteHandleError, SubcClient, isConsumerReconnectTransient, connectionFileExists, clampProducerAtomChars, producerInputTokenLimit, COMPARTMENT_LEASE_RENEWAL_MS, acquireCompartmentLease, renewCompartmentLease, releaseCompartmentLeaseBestEffort, getCompartments, getLastCompartmentEndMessage, getLastCompartmentEndMessageId, getMessageIndexSourceIdentity, isMessageIndexSourceCurrent, getLastIndexedOrdinal, getIndexedMessageCorpusSize, getMessageIndexReconciliationStartOrdinal, isMessageIndexReconciledThrough, deleteIndexedMessage, clearIndexedMessages, indexSingleMessage, indexMessagesAfterOrdinal, sweepOrphanedOpenCodeMessageIndexes, MAX_EXECUTE_THRESHOLD, escalationBands, MERGED_REASONING_PARTS_PREFIX, readFrozenMergedReasoningParts, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, getProtectionWindowForSession, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, loadPersistedUsage, loadProtectedTailMeta, resetProtectedTailNoEligibleHead, getWrapupInProgressState, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getPersistedReasoningWatermark, setPersistedReasoningWatermark, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, getNoteNudgeAnchors, getAutoSearchHintDecisions, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, pruneAutoSearchHintDecisions, removeNoteNudgeAnchorByMessageId, removeAutoSearchHintDecisionByMessageId, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, setNoteLastReadAt, getHistorianFailureState, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, removeStrippedPlaceholderId, NEWEST_REASONING_BEARING_ASSISTANT, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, armThinkingBindingRecovery, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getSessionsWithPendingMarker, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, BoundedSessionMap, registerLkgPersistence, beginLkgPass, visitMessageContentFields, contentSnapshotValue, messageContentFields, signatureForFields, exactReusablePrefix, incrementalLkgContentDigests, lkgContentDigest, captureSlot, getInMemorySlot, getSlot, dropSlot, noteEntry, getLkgSlotHeapStats, useScopedToolSweep, createPreAdoptionToolSweepResolver, recordEmbeddingMeasurement, getMaxM0MutationId, queueMemoryMutation, getMemoryMutationsForRenderByProjects, getMaxMemoryMutationIdForProjects, getOrCreateSessionMeta, updateSessionMeta, advanceToolReclaimWatermark, markSessionCleanupPending, retryPendingSessionCleanups, retryPendingRustSessionCleanupsForProject, clearSession, getNoteByIdInScope, getNotes, addNote, getSessionNotes, getPendingSmartNotes, getReadySmartNotes, updateNote, dismissNotes, dismissNote, markNoteReady, markNoteChecked, queuePendingOp, getPendingOps, getPendingOpsCount, 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, createChildSessionWithFence, HiddenCompletionRefusal, detectThinkingBindingMismatch, isFable51ThinkingBindingModel, detectOverflow, extractLatestAssistantText, hasLengthCappedOutput, parseProviderModel, modelBodyField, toModelEntry, getPromptFailureDetail, promptSyncWithValidatedOutputRetry, normalizeSDKResponse, ACTIVE_TOOL_IDS, promptSurfaceHashMaterial, createPromptSurfaceRuntime, createPromptSurfaceGuidanceEpochCache, setKeepSubagents, teardownChildSession, renderUserFacingFailure, userFacingFailureCode, renderCapabilityRefusal, capabilityRefusalCode, renderDreamFailure, dreamFailureCode, renderEmbeddingFailure, getCompartmentEvents, SYNAPSE_DEFAULT_MODEL, toSynapseLaneDescriptor, formatSynapseLaneDescriptor, SynapseEmbeddingProvider, loadCompartmentChunkEmbeddingsForSearch, cosineSimilarity, computeNormalizedHash, getLocalEmbeddingNativeMemoryStats, saveCommitEmbedding, loadProjectCommitEmbeddings, loadUnembeddedCommits, countEmbeddedCommits, upsertCommits, getLatestIndexedCommitTimeMs, enforceProjectCap, GIT_SWEEP_LEASE_RENEWAL_MS, acquireGitSweepLease, renewGitSweepLease, markGitSweepSuccessAndRelease, parkGitSweepNonIndexable, releaseGitSweepLease, saveEmbeddingIfHashMatches, getProjectEmbeddings, peekProjectEmbeddings, invalidateProject, invalidateMemory, describeShadowBackfillWriteRefusal, markProjectLoadUntrusted, contentSha256, sweepStaleEmbeddingIdentitiesForProject, registerProjectEmbedding, registerProjectShadowEmbedding, getShadowEmbeddingMeasurementCohort, getPrimaryEmbeddingMeasurementCohort, embedShadowTextForProject, enqueueShadowEmbeddingItems, registerProjectInObservationMode, unregisterProjectShadowEmbedding, 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, failedInvocationStatus, recordChildInvocation, resolveHiddenCompletionExecutor, USER_MEMORY_CANDIDATE_TTL_MS, insertUserMemoryCandidates, getUserMemoryCandidates, deleteUserMemoryCandidates, pruneExpiredUserMemoryCandidates, insertUserMemory, getActiveUserMemories, updateUserMemoryContent, dismissUserMemory, getMuralIdentity, getMural, readCoordinateRebaseNotice, formatCoordinateRebaseNotice, rebaseSessionCoordinates, getOpenCodeDbPath, compareOpenCodeMessagesByCanonicalOrder, removeMcOwnedCompactionMarkers, MARKER_SUMMARY_TEXT, applyDeferredCompactionMarker, removeCompactionMarkerForSession, checkCompactionMarkerConsistency, modelKeyAcceptsImages, resolveMuralWire, extractM0Block, formatDate, injectTemporalMarkers, clearInjectionCache, getVisibleMemoryIds, selectHiddenMessagesAtCompactionSeam, prepareCompartmentInjection, renderCompartmentInjection, mustMaterialize, trimMemoriesToBudgetV2, renderMemoryBlockV2, materializeM0, capturePrefixTrimSourceOrder, prepareCachedM0M1Replay, hasCompleteCachedM0M1, injectM0M1, EMPTY_READ_REPLY, noteTouchedAt, renderGlance, renderNotesById, formatWriteReply, onNoteTrigger, peekNoteNudgeText, markNoteNudgeDelivered, clearNoteNudgeTriggerAndCooldown, resetNoteNudgeCooldownOnly, clearNoteNudgeTriggerOnly, describeBoundaryDiagnostics, RECOVERY_NO_HEAD_LIMIT, resolveOpenCodeProtectedTailBoundary, resolveWrapupProtectedTailBoundary, getRawHistoryEligibility, hasRunnableCompartmentWindow, recordHighPressureNoEligibleHead, runCompartmentAgent, snapRangeToCompartments, getActiveCompartmentRun, markActiveCompartmentRunPublished, registerActiveCompartmentRun, startCompartmentAgent, setRecompStarting2, setRecompTerminal2, runManagedRecomp2 };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  log
3
- } from "./index-qp20p2py.js";
3
+ } from "./index-wgzyeyf5.js";
4
4
 
5
5
  // src/shared/write-transaction-timing.ts
6
6
  var SLOW_WRITE_TRANSACTION_THRESHOLD_MS = 1000;
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  log
3
- } from "./index-qp20p2py.js";
3
+ } from "./index-wgzyeyf5.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$/;
7
- function isDefaultSessionTitle(title) {
7
+ function isDefaultSessionTitle2(title) {
8
8
  return DEFAULT_TITLE_RE.test(title);
9
9
  }
10
10
  async function readSessionTitle(client, sessionId) {
@@ -20,14 +20,14 @@ async function readSessionTitle(client, sessionId) {
20
20
  return null;
21
21
  }
22
22
  }
23
- async function waitForSafeNotificationTarget(client, sessionId, options) {
23
+ async function waitForSafeNotificationTarget2(client, sessionId, options) {
24
24
  const attempts = Math.max(1, options?.attempts ?? 4);
25
25
  const delayMs = options?.delayMs ?? 15000;
26
26
  for (let attempt = 0;attempt < attempts; attempt += 1) {
27
27
  const title = await readSessionTitle(client, sessionId);
28
28
  if (title === null)
29
29
  return "safe";
30
- if (!isDefaultSessionTitle(title))
30
+ if (!isDefaultSessionTitle2(title))
31
31
  return "safe";
32
32
  if (attempt < attempts - 1) {
33
33
  await new Promise((resolve) => setTimeout(resolve, delayMs));
@@ -36,6 +36,5 @@ async function waitForSafeNotificationTarget(client, sessionId, options) {
36
36
  log(`[magic-context] notification skipped: session ${sessionId} still has its default title (would suppress title generation); will retry on a later startup`);
37
37
  return "skip";
38
38
  }
39
- export {
40
- waitForSafeNotificationTarget
41
- };
39
+
40
+ export { isDefaultSessionTitle2, waitForSafeNotificationTarget2 };
@@ -1,17 +1,17 @@
1
+ import {
2
+ getHarness
3
+ } from "./index-6z9g64js.js";
1
4
  import {
2
5
  openCodeDbExists,
3
6
  withReadOnlySessionDb,
4
7
  getRawSessionMessageCountFromDb,
5
8
  getMessageTimesFromOpenCodeDb
6
- } from "./index-ykg9sdzz.js";
9
+ } from "./index-v8qr6tt2.js";
7
10
  import {
8
11
  UNKNOWN_FIT_RATIO,
9
12
  resolveDecisionCalibration,
10
13
  providerMass
11
14
  } from "./index-y5145x8k.js";
12
- import {
13
- getHarness
14
- } from "./index-4ftb5hcq.js";
15
15
 
16
16
  // src/features/magic-context/reclaim-protection.ts
17
17
  var CTX_REDUCE_KEEP = 3;
@@ -4340,6 +4340,8 @@ function hasCountableParts(message) {
4340
4340
  case "step-start":
4341
4341
  case "step-finish":
4342
4342
  return true;
4343
+ case "file":
4344
+ return typeof p.url === "string" && p.url.startsWith("data:image/");
4343
4345
  default:
4344
4346
  return false;
4345
4347
  }
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  log
3
- } from "./index-qp20p2py.js";
3
+ } from "./index-wgzyeyf5.js";
4
4
  import {
5
5
  sendStatusNotification2
6
- } from "./index-rvwvdq59.js";
6
+ } from "./index-yc81txp4.js";
7
7
  import {
8
8
  readJsoncFile
9
9
  } from "./index-sd3egckz.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  log
3
- } from "./index-qp20p2py.js";
3
+ } from "./index-wgzyeyf5.js";
4
4
 
5
5
  // src/shared/opencode-db-path.ts
6
6
  import { existsSync, readdirSync, statSync } from "node:fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getMagicContextLogPath
3
- } from "./index-4ftb5hcq.js";
3
+ } from "./index-6z9g64js.js";
4
4
 
5
5
  // src/shared/logger.ts
6
6
  import * as fs from "node:fs";
@@ -1,9 +1,12 @@
1
1
  import {
2
2
  sessionLog
3
- } from "./index-qp20p2py.js";
3
+ } from "./index-wgzyeyf5.js";
4
+ import {
5
+ isDefaultSessionTitle2
6
+ } from "./index-febg06dy.js";
4
7
  import {
5
8
  shouldHoldIgnoredNotification
6
- } from "./index-ykg9sdzz.js";
9
+ } from "./index-v8qr6tt2.js";
7
10
 
8
11
  // src/shared/error-message.ts
9
12
  function getErrorMessage(error) {
@@ -183,7 +186,7 @@ async function sendIgnoredMessageNow(client, sessionId, text, params, forcePersi
183
186
  holdIgnoredNotification({ client, sessionId, text, params, forcePersist }, "during target checks");
184
187
  return "queued";
185
188
  }
186
- const { waitForSafeNotificationTarget } = await import("./safe-notification-target-fepvcbsj.js");
189
+ const { waitForSafeNotificationTarget } = await import("./safe-notification-target-vrkjrbgb.js");
187
190
  if (await waitForSafeNotificationTarget(client, sessionId) === "skip") {
188
191
  sessionLog(sessionId, "notification skipped (session not titled yet)");
189
192
  return "skipped";
@@ -323,6 +326,37 @@ async function revertNoticeIfUnsafe(notification) {
323
326
  lastDeliveredText.set(notification.sessionId, notification.text);
324
327
  return true;
325
328
  }
329
+ async function sendCommandResult2(client, sessionId, text, params) {
330
+ if (shouldHoldIgnoredNotification(sessionId)) {
331
+ return sendIgnoredMessage2(client, sessionId, text, params);
332
+ }
333
+ const { isTuiConnected } = await import("./rpc-notifications-4amf6mf4.js");
334
+ if (isTuiConnected(sessionId))
335
+ return sendIgnoredMessage2(client, sessionId, text, params);
336
+ const session = client?.session;
337
+ try {
338
+ const title = (await session?.get?.({ path: { id: sessionId } }))?.data?.title;
339
+ if (title && isDefaultSessionTitle2(title)) {
340
+ if (!session?.update)
341
+ return "failed";
342
+ const updated = await session.update({
343
+ path: { id: sessionId },
344
+ body: { title: "Magic Context" }
345
+ });
346
+ if (updated.error)
347
+ return "failed";
348
+ }
349
+ idleSessions.add(sessionId);
350
+ const disposition = await sendIgnoredMessage2(client, sessionId, text, params);
351
+ if (disposition === "sent" && !shouldHoldIgnoredNotification(sessionId)) {
352
+ await session?.abort?.({ path: { id: sessionId } });
353
+ }
354
+ return disposition;
355
+ } catch (error) {
356
+ sessionLog(sessionId, "command result delivery failed:", getErrorMessage(error));
357
+ return "failed";
358
+ }
359
+ }
326
360
  async function sendIgnoredMessage2(client, sessionId, text, params, forcePersist = false) {
327
361
  if (await trySendTuiToast(sessionId, text, params, forcePersist)) {
328
362
  notifyDelivered(sessionId, params);
@@ -410,4 +444,4 @@ async function sendStatusNotification2(_client, sessionId, text, params) {
410
444
  }
411
445
  }
412
446
 
413
- export { getErrorMessage, describeError, setNotificationServerUrl2, sendIgnoredMessage2, flushIgnoredMessages2, clearIgnoredMessages2, observeIgnoredNotificationEvent2, sendStatusNotification2 };
447
+ export { getErrorMessage, describeError, setNotificationServerUrl2, sendCommandResult2, sendIgnoredMessage2, flushIgnoredMessages2, clearIgnoredMessages2, observeIgnoredNotificationEvent2, sendStatusNotification2 };
@@ -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;AAgGvE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AA88BpC,QAAA,MAAM,MAAM,EAAE,YAAY,GAAG;IAAE,KAAK,EAAE,OAAO,KAAK,CAAA;CAIjD,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;AAgGvE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAi9BpC,QAAA,MAAM,MAAM,EAAE,YAAY,GAAG;IAAE,KAAK,EAAE,OAAO,KAAK,CAAA;CAIjD,CAAC;AAEF,eAAe,MAAM,CAAC"}