@cortexkit/opencode-magic-context 0.46.0 → 0.46.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 (40) hide show
  1. package/dist/config/schema/magic-context.d.ts +4 -4
  2. package/dist/config/schema/magic-context.d.ts.map +1 -1
  3. package/dist/{context-8dkpszy5.js → context-sh2m2vde.js} +61 -19
  4. package/dist/embedding-worker.js +1 -1
  5. package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
  6. package/dist/{index-e2dtv0ra.js → index-5p8jdswx.js} +2 -2
  7. package/dist/{index-yasgb8ej.js → index-8x2v7gg9.js} +2 -0
  8. package/dist/{index-qr6r7akd.js → index-hpecdzec.js} +10 -9
  9. package/dist/{index-k4404na5.js → index-pkbcrdqs.js} +2 -2
  10. package/dist/{index-j7fvnjye.js → index-sgthv3f7.js} +1 -1
  11. package/dist/{index-p821bjdb.js → index-sjthx78w.js} +66 -37
  12. package/dist/index.js +9 -9
  13. package/dist/plugin/dream-timer.d.ts.map +1 -1
  14. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  15. package/dist/{recomp-orchestrator-ejq7ex5d.js → recomp-orchestrator-y15j0rb9.js} +3 -3
  16. package/dist/{transform-postprocess-phase-tz3pat2p.js → transform-postprocess-phase-bqhz6vdr.js} +3 -3
  17. package/dist/v2/{context-8vgtb6sz.js → context-zecmzk5s.js} +67 -24
  18. package/dist/v2/embedding-worker.js +2 -2
  19. package/dist/v2/hidden-child-native.d.ts +7 -0
  20. package/dist/v2/hidden-child-native.d.ts.map +1 -1
  21. package/dist/v2/hidden-child-record.d.ts +8 -0
  22. package/dist/v2/hidden-child-record.d.ts.map +1 -1
  23. package/dist/v2/hidden-completion.d.ts.map +1 -1
  24. package/dist/v2/hooks/context.d.ts.map +1 -1
  25. package/dist/v2/hooks/dream-trigger.d.ts +15 -1
  26. package/dist/v2/hooks/dream-trigger.d.ts.map +1 -1
  27. package/dist/v2/hooks/hidden-child.d.ts +54 -3
  28. package/dist/v2/hooks/hidden-child.d.ts.map +1 -1
  29. package/dist/v2/hooks/types.d.ts +12 -1
  30. package/dist/v2/hooks/types.d.ts.map +1 -1
  31. package/dist/v2/{recomp-orchestrator-5xj0yzyk.js → recomp-orchestrator-8ejxvrzz.js} +4 -4
  32. package/dist/v2/{server-p2en78c8.js → server-c5gz8wph.js} +1 -1
  33. package/dist/v2/{server-xtp687da.js → server-e29d7p7c.js} +2 -0
  34. package/dist/v2/{server-vnh7r35f.js → server-jc7y02q0.js} +56 -27
  35. package/dist/v2/{server-4663ejam.js → server-xa4xe3rv.js} +1 -1
  36. package/dist/v2/server.js +3 -3
  37. package/dist/v2/{wrapup-orchestrator-r5t1pyj8.js → wrapup-orchestrator-0snhvwcv.js} +4 -4
  38. package/dist/{wrapup-orchestrator-kw3x3myw.js → wrapup-orchestrator-39amhv9s.js} +4 -4
  39. package/package.json +5 -4
  40. package/src/config/schema/magic-context.ts +5 -0
@@ -5448,6 +5448,7 @@ var AgentMetadataSchema = AgentOverrideConfigSchema.pick({
5448
5448
  maxTokens: true
5449
5449
  });
5450
5450
  var DreamerConfigSchema = AgentMetadataSchema.extend({
5451
+ disable: boolean2().optional().describe("Disable this agent"),
5451
5452
  runner: _enum(["broca", "host"]).optional().describe(`Which side runs the dreamer completions the Rust module routes (classify-memories) in Rust transform mode: "host" runs them on this process's carrier, "broca" routes them to the Broca module. When unset, historian.runner applies, and when that is unset too the harness decides the same way it does for the historian. User-level config only.`),
5452
5453
  opencode: DreamerOpenCodeHarnessBlockSchema.optional(),
5453
5454
  pi: DreamerPiHarnessBlockSchema.optional(),
@@ -5714,6 +5715,7 @@ var LIVE_RELOAD_CONFIG_PATHS = [
5714
5715
  "commit_cluster_trigger.enabled",
5715
5716
  "commit_cluster_trigger.min_clusters",
5716
5717
  "memory.auto_promote",
5718
+ "dreamer.disable",
5717
5719
  "dreamer.maxTokens",
5718
5720
  "dreamer.opencode.model",
5719
5721
  "dreamer.opencode.fallback_models",
@@ -6,7 +6,7 @@ import {
6
6
  DEFAULT_LOCAL_EMBEDDING_MODEL,
7
7
  LIVE_RELOAD_CONFIG_PATHS,
8
8
  deriveDefaultProtectedTokens
9
- } from "./server-xtp687da.js";
9
+ } from "./server-e29d7p7c.js";
10
10
  import {
11
11
  getHarness,
12
12
  harnessOwnsOpenCodeStore,
@@ -137,7 +137,7 @@ import {
137
137
  computeNormalizedHash,
138
138
  getEmbeddingProviderIdentity,
139
139
  LocalEmbeddingProvider
140
- } from "./server-4663ejam.js";
140
+ } from "./server-xa4xe3rv.js";
141
141
  import {
142
142
  isEmbeddingHostBusy,
143
143
  sendStatusNotification2
@@ -149,7 +149,7 @@ import {
149
149
  cortexKitProjectConfigBasePath,
150
150
  resolveLegacyConfigSourcesForHarness,
151
151
  loadPluginConfigDetailed
152
- } from "./server-p2en78c8.js";
152
+ } from "./server-c5gz8wph.js";
153
153
  import {
154
154
  catalogOutputReserve,
155
155
  getSdkContextLimit,
@@ -13260,6 +13260,19 @@ function hiddenAgentFor(identity) {
13260
13260
  function hiddenToolLoop(identity) {
13261
13261
  return identity.kind === "dreamer-task" && AGENT_STEPS[identity.agent] !== undefined;
13262
13262
  }
13263
+ function hiddenAgentAllowedTools(agent) {
13264
+ return agent !== undefined && Object.hasOwn(AGENT_TOOLS, agent) ? AGENT_TOOLS[agent] : undefined;
13265
+ }
13266
+ function hiddenChildPermissions(agent) {
13267
+ return [
13268
+ { action: "*", resource: "*", effect: "deny" },
13269
+ ...(AGENT_TOOLS[agent] ?? []).map((tool) => ({
13270
+ action: tool,
13271
+ resource: "*",
13272
+ effect: "allow"
13273
+ }))
13274
+ ];
13275
+ }
13263
13276
  async function registerHiddenChildAgents(agent) {
13264
13277
  await agent.transform((editor) => {
13265
13278
  for (const id of Object.keys(AGENT_TOOLS)) {
@@ -13272,18 +13285,22 @@ async function registerHiddenChildAgents(agent) {
13272
13285
  config.request.headers = {};
13273
13286
  config.request.body = {};
13274
13287
  config.steps = AGENT_STEPS[id];
13275
- config.permissions = [
13276
- { action: "*", resource: "*", effect: "deny" },
13277
- ...(AGENT_TOOLS[id] ?? []).map((tool) => ({
13278
- action: tool,
13279
- resource: "*",
13280
- effect: "allow"
13281
- }))
13282
- ];
13288
+ config.permissions = hiddenChildPermissions(id);
13283
13289
  });
13284
13290
  }
13285
13291
  });
13286
13292
  }
13293
+ function hiddenToolCallRefusal(call, hook) {
13294
+ const owned = hook.owns(call.sessionID);
13295
+ const agent = owned ? hook.agentFor(call.sessionID) ?? call.agent : call.agent;
13296
+ const allowed = hiddenAgentAllowedTools(agent);
13297
+ if (allowed === undefined) {
13298
+ return owned ? `Magic Context hidden child ${call.sessionID} has no tool allowlist; ${call.tool} refused` : undefined;
13299
+ }
13300
+ if (allowed.includes(call.tool))
13301
+ return;
13302
+ return `Magic Context hidden agent ${agent} may only use ${allowed.length > 0 ? allowed.join(", ") : "no tools"}; ${call.tool} refused`;
13303
+ }
13287
13304
 
13288
13305
  class HiddenAgentStepLimit extends Error {
13289
13306
  agent;
@@ -13372,14 +13389,18 @@ function firstDifference(a, b) {
13372
13389
 
13373
13390
  class HiddenChildHook {
13374
13391
  note;
13375
- childIDs = new Set;
13392
+ childIDs = new Map;
13376
13393
  attempts = new Map;
13377
13394
  active = new Map;
13378
13395
  constructor(note = log) {
13379
13396
  this.note = note;
13380
13397
  }
13381
- registerChild(sessionID) {
13382
- this.childIDs.add(sessionID);
13398
+ registerChild(sessionID, agent) {
13399
+ if (agent !== undefined || !this.childIDs.has(sessionID))
13400
+ this.childIDs.set(sessionID, agent ?? this.childIDs.get(sessionID));
13401
+ }
13402
+ agentFor(sessionID) {
13403
+ return this.childIDs.get(sessionID);
13383
13404
  }
13384
13405
  registerAttempt(marker, attempt) {
13385
13406
  this.registerChild(attempt.childSessionId);
@@ -13396,9 +13417,13 @@ class HiddenChildHook {
13396
13417
  owns(sessionID) {
13397
13418
  return this.childIDs.has(sessionID);
13398
13419
  }
13399
- compactionSummary(sessionID) {
13400
- if (!this.owns(sessionID))
13420
+ compactionSummary(sessionID, agent) {
13421
+ if (!this.owns(sessionID)) {
13422
+ if (hiddenAgentAllowedTools(agent) !== undefined) {
13423
+ this.refuse("Refusing to compact a Magic Context hidden-agent session this instance did not register", { sessionID, messages: [] }, undefined);
13424
+ }
13401
13425
  return;
13426
+ }
13402
13427
  const active = this.active.get(sessionID);
13403
13428
  const pending = [...this.attempts.values()].filter((attempt) => attempt.childSessionId === sessionID && !attempt.shaped);
13404
13429
  const inFlight = active ? [active] : pending;
@@ -13443,8 +13468,12 @@ class HiddenChildHook {
13443
13468
  return parts;
13444
13469
  }
13445
13470
  apply(draft) {
13446
- if (!this.owns(draft.sessionID))
13471
+ if (!this.owns(draft.sessionID)) {
13472
+ if (hiddenAgentAllowedTools(draft.agent) !== undefined) {
13473
+ this.refuse("Refusing a Magic Context hidden-agent turn this instance did not register", draft, newestUserText(draft));
13474
+ }
13447
13475
  return false;
13476
+ }
13448
13477
  const raw = newestUserText(draft);
13449
13478
  let attempt;
13450
13479
  for (const candidate of raw === undefined ? [] : markerCandidates(raw)) {
@@ -14873,19 +14902,19 @@ function findBoundaryUserMessage(sessionId, endMessageId) {
14873
14902
  AND NOT (COALESCE(json_extract(data, '$.summary'), 0) = 1
14874
14903
  AND COALESCE(json_extract(data, '$.finish'), '') = 'stop')
14875
14904
  AND COALESCE(json_extract(data, '$.role'), '') = 'user'
14876
- AND (time_created < ? OR (time_created = ? AND id <= ?))
14905
+ AND (time_created, id) <= (?, ?)
14877
14906
  AND NOT (
14878
14907
  EXISTS (SELECT 1 FROM part p
14879
- WHERE p.message_id = message.id AND +p.session_id = message.session_id
14908
+ WHERE likelihood(p.message_id = message.id, 0.000001) AND +p.session_id = message.session_id
14880
14909
  AND COALESCE(json_extract(p.data, '$.type'), '') <> 'compaction')
14881
14910
  AND NOT EXISTS (SELECT 1 FROM part p
14882
- WHERE p.message_id = message.id AND +p.session_id = message.session_id
14911
+ WHERE likelihood(p.message_id = message.id, 0.000001) AND +p.session_id = message.session_id
14883
14912
  AND COALESCE(json_extract(p.data, '$.type'), '') <> 'compaction'
14884
14913
  AND COALESCE(json_extract(p.data, '$.synthetic'), 0) <> 1
14885
14914
  AND COALESCE(json_extract(p.data, '$.syntheticTodoMarker'), 0) <> 1)
14886
14915
  )
14887
14916
  ORDER BY time_created DESC, id DESC
14888
- LIMIT 1`).get(sessionId, target.timeCreated, target.timeCreated, target.id);
14917
+ LIMIT 1`).get(sessionId, target.timeCreated, target.id);
14889
14918
  if (typeof boundary?.id !== "string" || typeof boundary.time_created !== "number") {
14890
14919
  return null;
14891
14920
  }
@@ -14913,16 +14942,16 @@ function isOpenCodeGapHistorianAbsent(sessionId, endId, nextId) {
14913
14942
  return false;
14914
14943
  const row = getWritableOpenCodeDb().prepare(`SELECT 1 FROM message m
14915
14944
  WHERE m.session_id=?
14916
- AND (m.time_created>? OR (m.time_created=? AND m.id>?))
14917
- AND (m.time_created<? OR (m.time_created=? AND m.id<?))
14945
+ AND (m.time_created, m.id) > (?, ?)
14946
+ AND (m.time_created, m.id) < (?, ?)
14918
14947
  AND NOT (COALESCE(json_type(m.data,'$.summary'),'')='true' AND COALESCE(json_extract(m.data,'$.finish'),'')='stop')
14919
14948
  AND NOT (
14920
- EXISTS (SELECT 1 FROM part p WHERE p.message_id=m.id AND +p.session_id=m.session_id AND COALESCE(json_extract(p.data,'$.type'),'')<>'compaction')
14921
- AND NOT EXISTS (SELECT 1 FROM part p WHERE p.message_id=m.id AND +p.session_id=m.session_id
14949
+ EXISTS (SELECT 1 FROM part p WHERE likelihood(p.message_id=m.id, 0.000001) AND +p.session_id=m.session_id AND COALESCE(json_extract(p.data,'$.type'),'')<>'compaction')
14950
+ AND NOT EXISTS (SELECT 1 FROM part p WHERE likelihood(p.message_id=m.id, 0.000001) AND +p.session_id=m.session_id
14922
14951
  AND COALESCE(json_extract(p.data,'$.type'),'')<>'compaction'
14923
14952
  AND COALESCE(json_type(p.data,'$.synthetic'),'')<>'true'
14924
14953
  AND COALESCE(json_type(p.data,'$.syntheticTodoMarker'),'')<>'true')
14925
- ) LIMIT 1`).get(sessionId, end.timeCreated, end.timeCreated, end.id, next.timeCreated, next.timeCreated, next.id);
14954
+ ) LIMIT 1`).get(sessionId, end.timeCreated, end.id, next.timeCreated, next.id);
14926
14955
  return !row;
14927
14956
  }
14928
14957
  function getOpenCodeMessageById(sessionId, messageId) {
@@ -26216,4 +26245,4 @@ ${failure}`;
26216
26245
  }
26217
26246
  }
26218
26247
 
26219
- export { BoundedSessionMap, historianRunConfig, dreamerRunConfig, pluginConfigReader, currentPluginConfigReader, withLiveDreamerOutputCap, USER_FACING_FAILURES, renderUserFacingFailure, userFacingFailureCode, renderCapabilityRefusal, renderDreamFailure, dreamFailureCode, renderEmbeddingFailure, embedPauseBySession, embedRunStateBySession, invalidateAutoEmbedSession, getEmbedDrainUiStatus, loadCompartmentChunkEmbeddingsForSearch, deleteChunkEmbedBackoffForSession, COMPARTMENT_LEASE_RENEWAL_MS, acquireCompartmentLease, renewCompartmentLease, releaseCompartmentLeaseBestEffort, isCompartmentLeaseHeld, queueM0Mutation, getMaxM0MutationId, clearCachedM0M1, getCompartments, getLastCompartmentEndMessage, getLastCompartmentEndMessageId, getUncoveredCompartmentEndsThrough, advanceSessionActivity, backfillSessionActivity, getLastIndexedOrdinal, getIndexedMessageCorpusSize, getMessageIndexReconciliationStartOrdinal, isMessageIndexReconciledThrough, indexMessagesAfterOrdinal, sweepOrphanedOpenCodeMessageIndexes, MAX_EXECUTE_THRESHOLD, escalationBands, MERGED_REASONING_PARTS_PREFIX, readFrozenMergedReasoningParts, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, getProtectionWindowForSession, isRustMarkerAdmissionFenced, setRustMarkerAdmissionFence, ReplayDocumentError, readReplayEnvelope, updateReplayDocument, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, loadPersistedUsage, loadProtectedTailMeta, resetProtectedTailNoEligibleHead, getWrapupInProgressState, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, setPersistedNoteNudgeTrigger, getNoteNudgeAnchors, getAutoSearchHintDecisions, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, pruneAutoSearchHintDecisions, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, setNoteLastReadAt, getHistorianFailureState, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, providerResponseFailed, isSuccessfulProviderCompletion, lkgProviderInputTotal, beginV2LkgRequest, claimLkgRequestIdentity, noteCapturedLkgRequest, noteLkgProviderResponse, measuredLkgPrefix, beginLkgPass, visitMessageContentFields, contentSnapshotValue, messageContentFields, signatureForFields, lkgContentFields, lkgContentDigestFromFields, memoizedLkgContentDigestFromFields, exactReusablePrefix, incrementalLkgContentDigests, lkgContentDigest, lkgSlotRejection, captureSlot, getInMemorySlot, getSlot, forgetInMemorySlot, dropSlot, noteEntry, getLkgSlotHeapStats, useScopedToolSweep, createPreAdoptionToolSweepResolver, copySessionStateForClone, recordEmbeddingMeasurement, queueMemoryMutation, getMaxMemoryMutationIdForProjects, gaDatabasePath, RAW_MESSAGE_TYPES, V2StoreReaderPool, V2StoreReader, getOrCreateSessionMeta, updateSessionMeta, advanceToolReclaimWatermark, markSessionCleanupPending, retryPendingSessionCleanups, retryPendingRustSessionCleanupsForProject, clearSession, SESSION_NOTE_CONDITION_ERROR, getNoteByIdInScope, getNotes, addNote, getSessionNotes, getPendingSmartNotes, getReadySmartNotes, updateNote, dismissNotes, dismissNote, markNoteReady, markNoteChecked, 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, bumpProjectUserProfileVersion, saveSourceContent, replaceSourceContent, getSourceContents, readCoordinateGeneration, rebaseSessionCoordinatesAsync, drainBackgroundBatches, saveCommitEmbedding, loadProjectCommitEmbeddings, loadUnembeddedCommits, countEmbeddedCommits, upsertCommits, getLatestIndexedCommitSha, enforceProjectCap, GIT_SWEEP_LEASE_RENEWAL_MS, acquireGitSweepLease, renewGitSweepLease, markGitSweepSuccessAndRelease, parkGitSweepNonIndexable, releaseGitSweepLease, saveEmbeddingIfHashMatches, getProjectEmbeddings, invalidateProject, invalidateMemory, recordSessionProjectIdentity, hasRecordedSessionProjectIdentity, describeShadowBackfillWriteRefusal, markProjectLoadUntrusted, contentSha256, drainProjectEmbeddingIdentityMaintenance, drainStaleEmbeddingIdentitiesForProject, registerProjectEmbedding, registerProjectShadowEmbedding, getShadowEmbeddingMeasurementCohort, getPrimaryEmbeddingMeasurementCohort, embedShadowTextForProject, enqueueShadowEmbeddingItems, registerProjectInObservationMode, unregisterProjectShadowEmbedding, getProjectEmbeddingSnapshot, embedTextForProject, embedBatchForProject, embedItemsForProject, embedUnembeddedMemoriesForProject, embedUnembeddedMemoriesForProjectOutcome, drainCommitBacklogForProject, embedSessionCompartmentChunks, getEmbeddingCoverageStatus, getCompartmentEvents, cosineSimilarity, isEmbeddingEnabled, embedText, ensureMemoryEmbeddings, computeCueContentHash, hasMuralCueColumns, getMuralCueState, memoryNeedsCue, setMuralCue, recordMuralCueRejection, hasMemoryShareableColumn, hasMemoryClassifiedAtColumn, getUnclassifiedMemoryIds, ModuleMemoryAuthorityError, insertMemory, insertMemoryIdempotent, getMemoryByHash, getMemoriesByProject, getMemoriesForList, getMemoriesByProjects, getMaxMemoryIdForProjects, getMemoryById, getMemoriesByIds, updateMemorySeenCount, updateMemoryRetrievalCount, setMemoryClassification, supersededMemory, mergeMemoryStats, archiveMemory, getMemoryCountsByStatus, relaxedFtsQuery, 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, DreamerProviderOutputFailureError, withDreamerModelCooldown, providerOutputFailureFromInvalidManifest, HiddenCompletionRefusal, DREAMER_AGENT, DREAMER_RETROSPECTIVE_AGENT, DREAMER_PRIMER_INVESTIGATOR_AGENT, DREAMER_MEMORY_MAPPER_AGENT, DREAMER_CLASSIFIER_AGENT, DREAMER_DOCS_AGENT, DREAMER_REVIEWER_AGENT, HIDDEN_HISTORIAN_AGENT, HIDDEN_DREAMER_AGENT, HIDDEN_CURATE_AGENT, hiddenAgentFor, hiddenToolLoop, registerHiddenChildAgents, HiddenAgentStepLimit, HiddenChildHook, extractLatestAssistantText, hasLengthCappedOutput, parseProviderModel, modelBodyField, toModelEntry, isPromptTimeoutError, getPromptFailureDetail, promptSyncWithValidatedOutputRetry, normalizeSDKResponse, failedInvocationStatus, recordChildInvocation, createPromptAsyncTransport, ACTIVE_TOOL_IDS, promptSurfaceHashMaterial, createPromptSurfaceRuntime, createPromptSurfaceGuidanceEpochCache, getOpenCodeDbPath, compareOpenCodeMessagesByCanonicalOrder, removeMcOwnedCompactionMarkers, MARKER_SUMMARY_TEXT, markerUpdateDefinitelyDidNotCut, applyDeferredCompactionMarker, teardownChildSession, runTokenLog, formatRunTokenLog, createChildSessionWithFence, clampProducerAtomChars, producerInputTokenLimit, historianProducerReserve, producerPromptFailureReason, resolveHiddenCompletionExecutor, createV1HiddenCompletionExecutor, buildMagicContextSection, getMuralIdentity, getMural, modelKeyAcceptsImages, resolveMuralWire, extractM0Block, formatDate, TEMPORAL_MARKER_REPLAY_PATTERN, collectTemporalCandidates, injectTemporalMarkers, clearInjectionCache, getVisibleMemoryIds, selectHiddenMessagesAtCompactionSeam, prepareCompartmentInjection, renderCompartmentInjection, MaterializeContentionError, mustMaterialize, trimMemoriesToBudgetV2, renderMemoryBlockV2, materializeM0, hydrateCachedM0Mural, resetPrefixTrimFallbackState, findHostCompactionWindow, capturePrefixTrimSourceOrder, prepareCachedM0M1Replay, hasCompleteCachedM0M1, injectM0M1, EMPTY_READ_REPLY, noteTouchedAt, renderGlance, renderNotesById, formatWriteReply, observeNoteNudgeServe, onNoteTrigger, peekNoteNudgeText, markNoteNudgeDelivered, clearNoteNudgeTriggerAndCooldown, describeBoundaryDiagnostics, RECOVERY_NO_HEAD_LIMIT, resolveOpenCodeProtectedTailBoundary, resolveWrapupProtectedTailBoundary, getRawHistoryEligibility, hasRunnableCompartmentWindow, recordHighPressureNoEligibleHead, runCompartmentAgent, getActiveCompartmentRun, markActiveCompartmentRunPublished, registerActiveCompartmentRun, startCompartmentAgent, isRecompFailure2, isRecompSkip2, extractRecompReason2, setRecompStarting2, setRecompNote2, setRecompTerminal2, buildRecompDeps2, runManagedRecomp2 };
26248
+ export { BoundedSessionMap, historianRunConfig, dreamerRunConfig, pluginConfigReader, currentPluginConfigReader, withLiveDreamerOutputCap, USER_FACING_FAILURES, renderUserFacingFailure, userFacingFailureCode, renderCapabilityRefusal, renderDreamFailure, dreamFailureCode, renderEmbeddingFailure, embedPauseBySession, embedRunStateBySession, invalidateAutoEmbedSession, getEmbedDrainUiStatus, loadCompartmentChunkEmbeddingsForSearch, deleteChunkEmbedBackoffForSession, COMPARTMENT_LEASE_RENEWAL_MS, acquireCompartmentLease, renewCompartmentLease, releaseCompartmentLeaseBestEffort, isCompartmentLeaseHeld, queueM0Mutation, getMaxM0MutationId, clearCachedM0M1, getCompartments, getLastCompartmentEndMessage, getLastCompartmentEndMessageId, getUncoveredCompartmentEndsThrough, advanceSessionActivity, backfillSessionActivity, getLastIndexedOrdinal, getIndexedMessageCorpusSize, getMessageIndexReconciliationStartOrdinal, isMessageIndexReconciledThrough, indexMessagesAfterOrdinal, sweepOrphanedOpenCodeMessageIndexes, MAX_EXECUTE_THRESHOLD, escalationBands, MERGED_REASONING_PARTS_PREFIX, readFrozenMergedReasoningParts, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, getProtectionWindowForSession, isRustMarkerAdmissionFenced, setRustMarkerAdmissionFence, ReplayDocumentError, readReplayEnvelope, updateReplayDocument, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, loadPersistedUsage, loadProtectedTailMeta, resetProtectedTailNoEligibleHead, getWrapupInProgressState, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, setPersistedNoteNudgeTrigger, getNoteNudgeAnchors, getAutoSearchHintDecisions, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, pruneAutoSearchHintDecisions, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, setNoteLastReadAt, getHistorianFailureState, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, providerResponseFailed, isSuccessfulProviderCompletion, lkgProviderInputTotal, beginV2LkgRequest, claimLkgRequestIdentity, noteCapturedLkgRequest, noteLkgProviderResponse, measuredLkgPrefix, beginLkgPass, visitMessageContentFields, contentSnapshotValue, messageContentFields, signatureForFields, lkgContentFields, lkgContentDigestFromFields, memoizedLkgContentDigestFromFields, exactReusablePrefix, incrementalLkgContentDigests, lkgContentDigest, lkgSlotRejection, captureSlot, getInMemorySlot, getSlot, forgetInMemorySlot, dropSlot, noteEntry, getLkgSlotHeapStats, useScopedToolSweep, createPreAdoptionToolSweepResolver, copySessionStateForClone, recordEmbeddingMeasurement, queueMemoryMutation, getMaxMemoryMutationIdForProjects, gaDatabasePath, RAW_MESSAGE_TYPES, V2StoreReaderPool, V2StoreReader, getOrCreateSessionMeta, updateSessionMeta, advanceToolReclaimWatermark, markSessionCleanupPending, retryPendingSessionCleanups, retryPendingRustSessionCleanupsForProject, clearSession, SESSION_NOTE_CONDITION_ERROR, getNoteByIdInScope, getNotes, addNote, getSessionNotes, getPendingSmartNotes, getReadySmartNotes, updateNote, dismissNotes, dismissNote, markNoteReady, markNoteChecked, 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, bumpProjectUserProfileVersion, saveSourceContent, replaceSourceContent, getSourceContents, readCoordinateGeneration, rebaseSessionCoordinatesAsync, HiddenCompletionRefusal, drainBackgroundBatches, saveCommitEmbedding, loadProjectCommitEmbeddings, loadUnembeddedCommits, countEmbeddedCommits, upsertCommits, getLatestIndexedCommitSha, enforceProjectCap, GIT_SWEEP_LEASE_RENEWAL_MS, acquireGitSweepLease, renewGitSweepLease, markGitSweepSuccessAndRelease, parkGitSweepNonIndexable, releaseGitSweepLease, saveEmbeddingIfHashMatches, getProjectEmbeddings, invalidateProject, invalidateMemory, recordSessionProjectIdentity, hasRecordedSessionProjectIdentity, describeShadowBackfillWriteRefusal, markProjectLoadUntrusted, contentSha256, drainProjectEmbeddingIdentityMaintenance, drainStaleEmbeddingIdentitiesForProject, registerProjectEmbedding, registerProjectShadowEmbedding, getShadowEmbeddingMeasurementCohort, getPrimaryEmbeddingMeasurementCohort, embedShadowTextForProject, enqueueShadowEmbeddingItems, registerProjectInObservationMode, unregisterProjectShadowEmbedding, getProjectEmbeddingSnapshot, embedTextForProject, embedBatchForProject, embedItemsForProject, embedUnembeddedMemoriesForProject, embedUnembeddedMemoriesForProjectOutcome, drainCommitBacklogForProject, embedSessionCompartmentChunks, getEmbeddingCoverageStatus, getCompartmentEvents, cosineSimilarity, isEmbeddingEnabled, embedText, ensureMemoryEmbeddings, computeCueContentHash, hasMuralCueColumns, getMuralCueState, memoryNeedsCue, setMuralCue, recordMuralCueRejection, hasMemoryShareableColumn, hasMemoryClassifiedAtColumn, getUnclassifiedMemoryIds, ModuleMemoryAuthorityError, insertMemory, insertMemoryIdempotent, getMemoryByHash, getMemoriesByProject, getMemoriesForList, getMemoriesByProjects, getMaxMemoryIdForProjects, getMemoryById, getMemoriesByIds, updateMemorySeenCount, updateMemoryRetrievalCount, setMemoryClassification, supersededMemory, mergeMemoryStats, archiveMemory, getMemoryCountsByStatus, relaxedFtsQuery, 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, DreamerProviderOutputFailureError, withDreamerModelCooldown, providerOutputFailureFromInvalidManifest, DREAMER_AGENT, DREAMER_RETROSPECTIVE_AGENT, DREAMER_PRIMER_INVESTIGATOR_AGENT, DREAMER_MEMORY_MAPPER_AGENT, DREAMER_CLASSIFIER_AGENT, DREAMER_DOCS_AGENT, DREAMER_REVIEWER_AGENT, HIDDEN_HISTORIAN_AGENT, HIDDEN_DREAMER_AGENT, HIDDEN_CURATE_AGENT, hiddenAgentFor, hiddenToolLoop, hiddenChildPermissions, registerHiddenChildAgents, hiddenToolCallRefusal, HiddenAgentStepLimit, HiddenChildHook, extractLatestAssistantText, hasLengthCappedOutput, parseProviderModel, modelBodyField, toModelEntry, isPromptTimeoutError, getPromptFailureDetail, promptSyncWithValidatedOutputRetry, normalizeSDKResponse, failedInvocationStatus, recordChildInvocation, createPromptAsyncTransport, ACTIVE_TOOL_IDS, promptSurfaceHashMaterial, createPromptSurfaceRuntime, createPromptSurfaceGuidanceEpochCache, getOpenCodeDbPath, compareOpenCodeMessagesByCanonicalOrder, removeMcOwnedCompactionMarkers, MARKER_SUMMARY_TEXT, markerUpdateDefinitelyDidNotCut, applyDeferredCompactionMarker, teardownChildSession, runTokenLog, formatRunTokenLog, createChildSessionWithFence, clampProducerAtomChars, producerInputTokenLimit, historianProducerReserve, producerPromptFailureReason, resolveHiddenCompletionExecutor, createV1HiddenCompletionExecutor, buildMagicContextSection, getMuralIdentity, getMural, modelKeyAcceptsImages, resolveMuralWire, extractM0Block, formatDate, TEMPORAL_MARKER_REPLAY_PATTERN, collectTemporalCandidates, injectTemporalMarkers, clearInjectionCache, getVisibleMemoryIds, selectHiddenMessagesAtCompactionSeam, prepareCompartmentInjection, renderCompartmentInjection, MaterializeContentionError, mustMaterialize, trimMemoriesToBudgetV2, renderMemoryBlockV2, materializeM0, hydrateCachedM0Mural, resetPrefixTrimFallbackState, findHostCompactionWindow, capturePrefixTrimSourceOrder, prepareCachedM0M1Replay, hasCompleteCachedM0M1, injectM0M1, EMPTY_READ_REPLY, noteTouchedAt, renderGlance, renderNotesById, formatWriteReply, observeNoteNudgeServe, onNoteTrigger, peekNoteNudgeText, markNoteNudgeDelivered, clearNoteNudgeTriggerAndCooldown, describeBoundaryDiagnostics, RECOVERY_NO_HEAD_LIMIT, resolveOpenCodeProtectedTailBoundary, resolveWrapupProtectedTailBoundary, getRawHistoryEligibility, hasRunnableCompartmentWindow, recordHighPressureNoEligibleHead, runCompartmentAgent, getActiveCompartmentRun, markActiveCompartmentRunPublished, registerActiveCompartmentRun, startCompartmentAgent, isRecompFailure2, isRecompSkip2, extractRecompReason2, setRecompStarting2, setRecompNote2, setRecompTerminal2, buildRecompDeps2, runManagedRecomp2 };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DEFAULT_LOCAL_EMBEDDING_MODEL
3
- } from "./server-xtp687da.js";
3
+ } from "./server-e29d7p7c.js";
4
4
  import {
5
5
  getHarness,
6
6
  getMagicContextStorageDir,
package/dist/v2/server.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadPluginConfigDetailed
3
- } from "./server-p2en78c8.js";
3
+ } from "./server-c5gz8wph.js";
4
4
  import {
5
5
  setHarness,
6
6
  registerStalePluginBuildHost,
@@ -16,7 +16,7 @@ import {
16
16
  union,
17
17
  tuple,
18
18
  record
19
- } from "./server-xtp687da.js";
19
+ } from "./server-e29d7p7c.js";
20
20
  import"./server-g0fjrkta.js";
21
21
  import {
22
22
  pushNotification2
@@ -8040,7 +8040,7 @@ async function setup(context) {
8040
8040
  log("v2 setup() called on a host without session.hook; v1 server lane owns this host, v2 lane inert");
8041
8041
  return async () => {};
8042
8042
  }
8043
- const { registerContext } = await import("./context-8vgtb6sz.js");
8043
+ const { registerContext } = await import("./context-zecmzk5s.js");
8044
8044
  setHarness("opencode2");
8045
8045
  bindStaleBuildNotice({}, import.meta.url, "opencode2");
8046
8046
  const duties = await registerContext(context);
@@ -24,9 +24,9 @@ import {
24
24
  registerActiveCompartmentRun,
25
25
  setRecompStarting2,
26
26
  setRecompTerminal2
27
- } from "./server-vnh7r35f.js";
27
+ } from "./server-jc7y02q0.js";
28
28
  import"./server-51dv1pr5.js";
29
- import"./server-4663ejam.js";
29
+ import"./server-xa4xe3rv.js";
30
30
  import"./server-fg34g6a5.js";
31
31
  import"./server-vs5gpnd4.js";
32
32
  import"./server-1zx87sdm.js";
@@ -34,14 +34,14 @@ import"./server-qp5hx1ad.js";
34
34
  import"./server-g0fjrkta.js";
35
35
  import"./server-ajzeteqw.js";
36
36
  import"./server-wvjvfhck.js";
37
- import"./server-xtp687da.js";
37
+ import"./server-e29d7p7c.js";
38
38
  import {
39
39
  pushNotification2
40
40
  } from "./server-x8a7jmkh.js";
41
41
  import {
42
42
  sendStatusNotification2
43
43
  } from "./server-mcfawjgc.js";
44
- import"./server-p2en78c8.js";
44
+ import"./server-c5gz8wph.js";
45
45
  import"./server-y8maxeft.js";
46
46
  import"./server-3n4q9xme.js";
47
47
  import"./server-6r257mf5.js";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  runManagedWrapup2
3
- } from "./index-e2dtv0ra.js";
4
- import"./index-j7fvnjye.js";
5
- import"./index-p821bjdb.js";
3
+ } from "./index-5p8jdswx.js";
4
+ import"./index-sgthv3f7.js";
5
+ import"./index-sjthx78w.js";
6
6
  import"./index-sd3egckz.js";
7
7
  import"./index-7qw742ev.js";
8
8
  import"./index-0d3g3461.js";
9
- import"./index-yasgb8ej.js";
9
+ import"./index-8x2v7gg9.js";
10
10
  import"./index-r5hmbx3t.js";
11
11
  import"./index-3h0ybwah.js";
12
12
  import"./index-majxda46.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cortexkit/opencode-magic-context",
3
- "version": "0.46.0",
3
+ "version": "0.46.1",
4
4
  "type": "module",
5
5
  "description": "OpenCode plugin for Magic Context — cross-session memory and context management",
6
6
  "main": "dist/index.js",
@@ -38,9 +38,9 @@
38
38
  ],
39
39
  "scripts": {
40
40
  "build": "bun ../../scripts/check-bun.mjs && tsc -p ../retina-local-fs/tsconfig.build.json && bun run build:tui && bun ../../scripts/clean-dist-chunks.mjs dist index.js transformers-web.js transformers-node-wasm.js && bun build src/features/magic-context/memory/transformers-web-entry.ts --outfile dist/transformers-web.js --target browser --format esm --external onnxruntime-web && bun scripts/build-transformers-node-wasm.ts dist && bun build src/index.ts src/features/magic-context/memory/embedding-worker.ts src/features/magic-context/migration-worker.ts --outdir dist --entry-naming '[name].[ext]' --target node --format esm --splitting --external @opencode-ai/plugin --external onnxruntime-node --external onnxruntime-web --external sharp --external bun:sqlite --external node:sqlite && bun run build:v2 && tsc --emitDeclarationOnly",
41
- "build:v2": "bun ../../scripts/clean-dist-chunks.mjs dist/v2 server.js embedding-worker.js migration-worker.js && bun build src/features/magic-context/memory/transformers-web-entry.ts --outfile dist/v2/transformers-web.js --target browser --format esm --external onnxruntime-web && bun scripts/build-transformers-node-wasm.ts dist/v2 && bun build src/v2/server.ts src/features/magic-context/memory/embedding-worker.ts src/features/magic-context/migration-worker.ts --outdir dist/v2 --entry-naming '[name].[ext]' --target node --format esm --splitting --external @opencode/plugin --external onnxruntime-node --external onnxruntime-web --external sharp --external bun:sqlite --external node:sqlite && bun test src/v2/server.test.ts",
41
+ "build:v2": "bun ../../scripts/clean-dist-chunks.mjs dist/v2 server.js embedding-worker.js migration-worker.js && bun build src/features/magic-context/memory/transformers-web-entry.ts --outfile dist/v2/transformers-web.js --target browser --format esm --external onnxruntime-web && bun scripts/build-transformers-node-wasm.ts dist/v2 && bun build src/v2/server.ts src/features/magic-context/memory/embedding-worker.ts src/features/magic-context/migration-worker.ts --outdir dist/v2 --entry-naming '[name].[ext]' --target node --format esm --splitting --external @opencode/plugin --external onnxruntime-node --external onnxruntime-web --external sharp --external bun:sqlite --external node:sqlite",
42
42
  "build:tui": "bun scripts/build-tui.ts",
43
- "check:tui-compiled": "bun run build:tui && git diff --exit-code -- src/tui-compiled && test -z \"$(git status --porcelain -- src/tui-compiled)\"",
43
+ "check:tui-compiled": "git diff --exit-code -- src/tui-compiled && test -z \"$(git status --porcelain -- src/tui-compiled)\"",
44
44
  "check:transformers-node-wasm": "bun scripts/verify-transformers-node-wasm.ts",
45
45
  "typecheck": "tsc -p ../retina-local-fs/tsconfig.build.json && tsc --noEmit && tsc -p tsconfig.scripts.json",
46
46
  "test": "bun ../../scripts/check-bun.mjs && bun install --frozen-lockfile && BUN_JSC_useOMGJIT=0 bun test --parallel=4 --timeout 30000",
@@ -51,8 +51,9 @@
51
51
  "format": "biome format --write .",
52
52
  "format:check": "biome format .",
53
53
  "clean": "bun ../../scripts/clean-dist-chunks.mjs dist index.js embedding-worker.js migration-worker.js transformers-web.js transformers-node-wasm.js && bun ../../scripts/clean-dist-chunks.mjs dist/v2 server.js embedding-worker.js migration-worker.js transformers-web.js transformers-node-wasm.js",
54
- "prepublishOnly": "bun run build && bun run build:tui"
54
+ "prepublishOnly": "bun run build && bun run check:tui-compiled"
55
55
  },
56
+ "//check:tui-compiled": "Check drift on output already generated by build or build:tui; this check never regenerates files. CI and prepublishOnly build first.",
56
57
  "//test": "Only test runs disable JSC's optimizing WebAssembly tier so per-file isolation does not pay its compilation cost on every file. This is not a production setting and does not change host process engine options.",
57
58
  "dependencies": {
58
59
  "@cortexkit/subc-client": "0.11.1",
@@ -641,6 +641,10 @@ const AgentMetadataSchema = AgentOverrideConfigSchema.pick({
641
641
 
642
642
  /** Combined dreamer metadata plus independent strict execution blocks. */
643
643
  export const DreamerConfigSchema = AgentMetadataSchema.extend({
644
+ // Its own node rather than the one shared with the historian through
645
+ // AgentMetadataSchema: `dreamer.disable` is a live-reload key and the
646
+ // historian's is not, and the live marker is set on the schema node.
647
+ disable: z.boolean().optional().describe("Disable this agent"),
644
648
  runner: z
645
649
  .enum(["broca", "host"])
646
650
  .optional()
@@ -1603,6 +1607,7 @@ export const LIVE_RELOAD_CONFIG_PATHS = [
1603
1607
  "commit_cluster_trigger.enabled",
1604
1608
  "commit_cluster_trigger.min_clusters",
1605
1609
  "memory.auto_promote",
1610
+ "dreamer.disable",
1606
1611
  "dreamer.maxTokens",
1607
1612
  "dreamer.opencode.model",
1608
1613
  "dreamer.opencode.fallback_models",