@cortexkit/pi-magic-context 0.49.30 → 0.49.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auto-search-worker.js +1 -1
- package/dist/chunk-embedding-write-worker.js +1 -1
- package/dist/{index-gxjppvsh.js → index-2nryd8ye.js} +27 -7
- package/dist/{index-n2ayqhbx.js → index-34e3mm36.js} +1 -1
- package/dist/{index-0cq3g9y5.js → index-bpd654bz.js} +1 -1
- package/dist/{index-5qh6z3sn.js → index-sr1ss4f8.js} +1 -1
- package/dist/{index-2pnhk4gc.js → index-v40sm8q6.js} +113 -37
- package/dist/{index-y5x5wt5t.js → index-xvqcqg0r.js} +1 -1
- package/dist/{index-74bc8ts8.js → index-yddeb86g.js} +1 -1
- package/dist/index.js +646 -141
- package/dist/{message-index-bounded-vkqx693v.js → message-index-bounded-7aw556kv.js} +2 -2
- package/dist/migration-worker.js +1 -1
- package/dist/raw-ordinal-warmup-worker.js +2 -2
- package/dist/{read-session-chunk-73kd0ans.js → read-session-chunk-xrymr0pp.js} +1 -1
- package/dist/{search-archive-ck531w6h.js → search-archive-5tmg1jyb.js} +2 -2
- package/dist/{search-tgv2rdac.js → search-dcdmpc62.js} +3 -3
- package/dist/subagent-entry.js +6 -6
- package/dist/tag-snapshot-worker-pi.js +8 -5
- package/package.json +3 -1
|
@@ -28,7 +28,7 @@ var [
|
|
|
28
28
|
import("./embedding-cache-7rp4gqzr.js"),
|
|
29
29
|
import("./storage-memory-0ndn65fm.js"),
|
|
30
30
|
import("./project-embedding-registry-wwbhm9rf.js"),
|
|
31
|
-
import("./search-
|
|
31
|
+
import("./search-dcdmpc62.js"),
|
|
32
32
|
import("./compartment-chunk-embedding-pkk5beqp.js"),
|
|
33
33
|
import("./embedding-activity-ew6dshfd.js"),
|
|
34
34
|
import("./harness-9872e0ym.js"),
|
|
@@ -66,7 +66,7 @@ import {
|
|
|
66
66
|
visitRawSessionMessages2,
|
|
67
67
|
readRawSessionMessageById2,
|
|
68
68
|
readSessionChunk2
|
|
69
|
-
} from "./index-
|
|
69
|
+
} from "./index-34e3mm36.js";
|
|
70
70
|
import {
|
|
71
71
|
isRecord,
|
|
72
72
|
providerVisibleMessage,
|
|
@@ -106,7 +106,7 @@ import {
|
|
|
106
106
|
isPidAlive,
|
|
107
107
|
readProcessStartTime,
|
|
108
108
|
getErrorMessage
|
|
109
|
-
} from "./index-
|
|
109
|
+
} from "./index-xvqcqg0r.js";
|
|
110
110
|
import {
|
|
111
111
|
BoundedSessionMap,
|
|
112
112
|
resolveOpenCodeDbPath,
|
|
@@ -143,7 +143,7 @@ import {
|
|
|
143
143
|
} from "./index-0jykn0dw.js";
|
|
144
144
|
import {
|
|
145
145
|
getLastIndexedOrdinal
|
|
146
|
-
} from "./index-
|
|
146
|
+
} from "./index-yddeb86g.js";
|
|
147
147
|
import {
|
|
148
148
|
V2_MEMORY_CATEGORIES,
|
|
149
149
|
CATEGORY_PRIORITY,
|
|
@@ -180,7 +180,7 @@ import {
|
|
|
180
180
|
resolveMemoriesByIdsForSearch2,
|
|
181
181
|
unifiedSearch2,
|
|
182
182
|
formatSearchResults2
|
|
183
|
-
} from "./index-
|
|
183
|
+
} from "./index-bpd654bz.js";
|
|
184
184
|
import {
|
|
185
185
|
computeCueContentHash,
|
|
186
186
|
getMuralCueState,
|
|
@@ -211,7 +211,7 @@ import {
|
|
|
211
211
|
} from "./index-6wdwv3a6.js";
|
|
212
212
|
import {
|
|
213
213
|
renderSearchArchive2
|
|
214
|
-
} from "./index-
|
|
214
|
+
} from "./index-sr1ss4f8.js";
|
|
215
215
|
import {
|
|
216
216
|
computeNormalizedHash
|
|
217
217
|
} from "./index-9x1f96r8.js";
|
|
@@ -6331,6 +6331,24 @@ function freezePiContentDecision(db, sessionId, kind, messageId) {
|
|
|
6331
6331
|
// ../plugin/src/features/magic-context/storage-native-replay.ts
|
|
6332
6332
|
var NATIVE_TOOL_INPUTS = "native tool inputs";
|
|
6333
6333
|
var NATIVE_REASONING_IDS = "native reasoning ids";
|
|
6334
|
+
var nativeWriteBarriers = new WeakMap;
|
|
6335
|
+
function withNativeReplayWriteBarrier(db, sessionId, beforeWrite, edit) {
|
|
6336
|
+
let sessions = nativeWriteBarriers.get(db);
|
|
6337
|
+
if (!sessions) {
|
|
6338
|
+
sessions = new Map;
|
|
6339
|
+
nativeWriteBarriers.set(db, sessions);
|
|
6340
|
+
}
|
|
6341
|
+
const prior = sessions.get(sessionId);
|
|
6342
|
+
sessions.set(sessionId, beforeWrite);
|
|
6343
|
+
try {
|
|
6344
|
+
return edit();
|
|
6345
|
+
} finally {
|
|
6346
|
+
if (prior)
|
|
6347
|
+
sessions.set(sessionId, prior);
|
|
6348
|
+
else
|
|
6349
|
+
sessions.delete(sessionId);
|
|
6350
|
+
}
|
|
6351
|
+
}
|
|
6334
6352
|
function invalidPersistedReplayState(lane, sessionId) {
|
|
6335
6353
|
return new Error(`invalid persisted ${lane} state for session ${sessionId}`);
|
|
6336
6354
|
}
|
|
@@ -6415,6 +6433,7 @@ function saveNativeToolInputs(db, sessionId, inputs) {
|
|
|
6415
6433
|
}
|
|
6416
6434
|
if (requested.size === 0)
|
|
6417
6435
|
return;
|
|
6436
|
+
nativeWriteBarriers.get(db)?.get(sessionId)?.();
|
|
6418
6437
|
const persisted = updateReplayDocument(db, sessionId, (doc) => {
|
|
6419
6438
|
const current = parseNativeReplayState(doc, sessionId);
|
|
6420
6439
|
let changed = false;
|
|
@@ -6441,6 +6460,7 @@ function addNativeReasoningIds(db, sessionId, ids) {
|
|
|
6441
6460
|
}
|
|
6442
6461
|
if (requested.size === 0)
|
|
6443
6462
|
return;
|
|
6463
|
+
nativeWriteBarriers.get(db)?.get(sessionId)?.();
|
|
6444
6464
|
const persisted = updateReplayDocument(db, sessionId, (doc) => {
|
|
6445
6465
|
const current = parseNativeReplayState(doc, sessionId);
|
|
6446
6466
|
let changed = false;
|
|
@@ -11229,7 +11249,7 @@ async function ensureProjectRegisteredFromPiDirectory(directory, db, options = {
|
|
|
11229
11249
|
registrationFingerprintsByDatabase.set(db, registrationFingerprints);
|
|
11230
11250
|
}
|
|
11231
11251
|
const cached = registrationFingerprints.get(projectIdentity);
|
|
11232
|
-
if (cached && configFingerprint(cached.paths) === cached.fingerprint) {
|
|
11252
|
+
if (!options.preflightLocalPooling && cached && configFingerprint(cached.paths) === cached.fingerprint) {
|
|
11233
11253
|
await drainProjectEmbeddingIdentityMaintenance2(db, projectIdentity);
|
|
11234
11254
|
return;
|
|
11235
11255
|
}
|
|
@@ -14921,4 +14941,4 @@ function registerMagicContextTools(pi, opts) {
|
|
|
14921
14941
|
}
|
|
14922
14942
|
}
|
|
14923
14943
|
|
|
14924
|
-
export { COMPACTION_ENABLED_PATH, isDreamerRunnable, isCompactionEnabled, isCommitRetentionPaused, copyCommitRetentionRecovery, formatConfigParseStatusLine, formatConfigParseNotice, claimConfigParseFailuresOnce, parseJsoncRecovering, detectConfigFile, OPENCODE_OUTPUT_CAP, MIN_PLAUSIBLE_CONTEXT_LIMIT, catalogOutputReserve, deriveWindowGeometry, hasTrustedAbsoluteWall, applyProvenInputFloor, formatWindowDerivationLine, formatWindowSource, isSaneLimit, resolveOutputReserve, getSdkWindowGeometry, getSdkContextLimit, getSdkOutputLimit, getSdkInputLimit, cortexKitUserConfigBasePath, cortexKitProjectConfigBasePath, migrateMagicContextConfigLocations, getProtectedTokensTierOverrides, LkgRecoveryFenceError, clearLkgFenceProcessState, lkgFenceRequiresRebuild, lkgRecoveryFenceUnclean, ownsLkgDirtyFence, invalidateCleanLkgRecoveryFence, markLkgRecoveryDirty, rememberUnpublishedAutoSearchNoHint, getUnpublishedAutoSearchNoHint, forgetUnpublishedAutoSearchNoHint, registerAutoSearchWork, cancelAutoSearchWork, readSessionActivity, observeSessionActivity, backfillSessionActivity, readSessionMeta, getOrCreateSessionMeta, updateSessionMeta, advanceToolReclaimWatermark, retryPendingSessionCleanups, retryPendingRustSessionCleanupsForProject, COMPARTMENT_LEASE_RENEWAL_MS, acquireCompartmentLease, renewCompartmentLease, releaseCompartmentLease, releaseCompartmentLeaseBestEffort, isCompartmentLeaseHeld, isNoContentCompartment, HAS_COMPARTMENT_CONTENT_SQL, queueM0Mutation, getMaxM0MutationId, getCompartments, getLastCompartmentEndMessage, getLastCompartmentEndMessageId, getCompartmentsByEndMessageId, appendCompartments, saveRecompStagingPass, getRecompStaging, clearRecompStaging, getRecompPartialRange, setRecompPartialRange, escapeXmlAttr, escapeXmlContent, getUncoveredCompartmentEndThrough, isPartialCompartmentEnd, readProjectDocsCanonical, providerResponseFailed, isSuccessfulProviderCompletion, requestPendingMaterialization, pendingMaterializationOrigin, hasPendingMaterializationOrigin, clearPendingMaterialization, recordSystemRefreshOwnership, recordSystemPromptForRequest, recordHeldHeadForRequest, bindSystemPromptResponse, acknowledgeSystemPromptDelivery, deferDeliveredSystemRefresh, clearSystemPromptDelivery, saveLkgSlotToDb, loadPersistedLkgSlot, drainStaleLkgSlots, createDbLkgPersistence, replayLkg, registerLkgPersistence, LKG_SNAPSHOT_ARRAY, LKG_SNAPSHOT_OBJECT, LKG_SNAPSHOT_KEY, LKG_SNAPSHOT_STRING, LKG_SNAPSHOT_NUMBER, LKG_SNAPSHOT_BOOLEAN, LKG_SNAPSHOT_NULL, LKG_SNAPSHOT_UNDEFINED, contentSnapshotValue, signatureForFields, lkgContentFields, lkgContentDigestFromFields, isLegacyLkgDigest, legacyLkgDigestFromFields, lkgFieldsMatchDigest, exactReusablePrefix, incrementalLkgContentDigests, lkgSlotRejection, captureSlot, getInMemorySlot, getSlot, dropSlot, TOOL_SWEEP_SCOPED_MARKER, encodePiContentDecision, decodePiContentDecision, getPiContentDecisions, freezePiContentDecision, getNativeReplayState, saveNativeToolInputs, addNativeReasoningIds, copySessionStateForClone, externalHistorianFailureReason, subprocessExitHistorianFailureReason, countHistorianRuns, recordHistorianRun, summarizeImportance, tallyFactsByCategory, queueMemoryMutation, getMemoryMutationsForRender, getMemoryMutationsForRenderByProjects, getMaxMemoryMutationId, getMaxMemoryMutationIdForProjects, GLOBAL_USER_PROFILE_PROJECT_PATH, getProjectState, bumpProjectUserProfileVersion, saveSourceContent, getSourceContents, recordSubagentInvocation, getLatestHistorianInvocationId, noteTouchedAt, noteNudgePickIndex, formatNoteNudge, systemPromptFingerprint, createPromptSurfaceRuntime, createPromptSurfaceGuidanceEpochCache, SYNTH_USER_ID_PREFIX, resolvePiStableId, resolvePiRealStableId, isPiContentFallbackId, isPiIndexFallbackId, piContentFallbackIds, readPiSessionSnapshot, readPiSessionMessages, readPiSessionMessagePage, findRestartModelSeedFromBranch, iterateEntriesToRawMessageRange, iterateAsyncEntriesToRawMessageRange, convertEntriesToRawMessages, convertPiAssistantEntryById, convertEntriesToRawMessagePage, countPiRawMessages, USER_MEMORY_CANDIDATE_TTL_MS, insertUserMemoryCandidates, getUserMemoryCandidates, deleteUserMemoryCandidates, pruneExpiredUserMemoryCandidates, insertUserMemory, getActiveUserMemories, updateUserMemoryContent, dismissUserMemory, getTaskScheduleState, getFailingDreamTasks, getSkippedDreamTasks, getMostRecentTaskRunAt, pruneNonCanonicalTaskRows, deleteTaskScheduleRowsForProject, seedTaskScheduleState, writeTaskScheduleState, isRetrospectiveWindowProcessed, recordRetrospectiveWindowProcessed, curateCategoryForMemoryCategory, peekCurateCategoryScope, beginCurateCategoryRun, curateTaskStateAfterSuccess, MEMORY_MURAL_BLOCK, buildMagicContextSection, resolveMuralWire, updateCompactionMarkerAfterPublication, COMPARTMENT_RENDER_EPOCH, MEMORY_RENDER_FORMAT_EPOCH, encodeCachedM0UpgradeIdentity, decodeCachedM0UpgradeIdentity, withCachedM0MemoryIds, readCachedM0MemoryIds, renderBudgetIdentityChanged, renderedBudgetSnapshot, renderedBudgetShrinkReason, DEFAULT_HISTORY_BUDGET_TOKENS, renderCompartmentAtTier, renderDecayedCompartments, extractM0Block, TEMPORAL_MARKER_PATTERN, TEMPORAL_MARKER_REPLAY_PATTERN, temporalMarkerPrefix, renderUserProfileContent, clearInjectionCache, getVisibleMemoryIds, orderHistorianMemories, renderHistorianMemoryBlock, DEFAULT_MEMORY_BUDGET_TOKENS, DEFAULT_USER_PROFILE_BUDGET_TOKENS, trimMemoriesToBudgetV2, trimWorkspaceMemoriesToBudgetV2, trimUserMemoriesToBudget, renderMemoryBlockV2, stripMemoryMuralBlock, resetPrefixTrimFallbackState, isDirectiveShapedProjectRule, takeCurateSafetyRefusalCount, wakePlaneStatus, loadPiConfig, loadPiConfigDetailed, unregisterPiProjectEmbeddings, ensureProjectRegisteredFromPiDirectory, neutralizeOmpMentions, restoreOmpMentions, resolvePiHarnessDetection, resolvePiHarnessKind, resolvePiOrdinalAlignment, piRawOrdinalOffsetSource, resolvePiOrdinalAlignmentForContext, isPiOrdinalAlignmentUnanchored, clearPiOrdinalAlignmentSession, rememberTodowriteToolCallTodos, parseTodos, setTodoSnapshot, registerTodoOverlay, registerTodoStateLifecycle, syncCtxMemoryToolEnabled, registerMagicContextTools };
|
|
14944
|
+
export { COMPACTION_ENABLED_PATH, isDreamerRunnable, isCompactionEnabled, isCommitRetentionPaused, copyCommitRetentionRecovery, formatConfigParseStatusLine, formatConfigParseNotice, claimConfigParseFailuresOnce, parseJsoncRecovering, detectConfigFile, OPENCODE_OUTPUT_CAP, MIN_PLAUSIBLE_CONTEXT_LIMIT, catalogOutputReserve, deriveWindowGeometry, hasTrustedAbsoluteWall, applyProvenInputFloor, formatWindowDerivationLine, formatWindowSource, isSaneLimit, resolveOutputReserve, getSdkWindowGeometry, getSdkContextLimit, getSdkOutputLimit, getSdkInputLimit, cortexKitUserConfigBasePath, cortexKitProjectConfigBasePath, migrateMagicContextConfigLocations, getProtectedTokensTierOverrides, LkgRecoveryFenceError, clearLkgFenceProcessState, lkgFenceRequiresRebuild, lkgRecoveryFenceUnclean, ownsLkgDirtyFence, invalidateCleanLkgRecoveryFence, markLkgRecoveryDirty, rememberUnpublishedAutoSearchNoHint, getUnpublishedAutoSearchNoHint, forgetUnpublishedAutoSearchNoHint, registerAutoSearchWork, cancelAutoSearchWork, readSessionActivity, observeSessionActivity, backfillSessionActivity, readSessionMeta, getOrCreateSessionMeta, updateSessionMeta, advanceToolReclaimWatermark, retryPendingSessionCleanups, retryPendingRustSessionCleanupsForProject, COMPARTMENT_LEASE_RENEWAL_MS, acquireCompartmentLease, renewCompartmentLease, releaseCompartmentLease, releaseCompartmentLeaseBestEffort, isCompartmentLeaseHeld, isNoContentCompartment, HAS_COMPARTMENT_CONTENT_SQL, queueM0Mutation, getMaxM0MutationId, getCompartments, getLastCompartmentEndMessage, getLastCompartmentEndMessageId, getCompartmentsByEndMessageId, appendCompartments, saveRecompStagingPass, getRecompStaging, clearRecompStaging, getRecompPartialRange, setRecompPartialRange, escapeXmlAttr, escapeXmlContent, getUncoveredCompartmentEndThrough, isPartialCompartmentEnd, readProjectDocsCanonical, providerResponseFailed, isSuccessfulProviderCompletion, requestPendingMaterialization, pendingMaterializationOrigin, hasPendingMaterializationOrigin, clearPendingMaterialization, recordSystemRefreshOwnership, recordSystemPromptForRequest, recordHeldHeadForRequest, bindSystemPromptResponse, acknowledgeSystemPromptDelivery, deferDeliveredSystemRefresh, clearSystemPromptDelivery, saveLkgSlotToDb, loadPersistedLkgSlot, drainStaleLkgSlots, createDbLkgPersistence, replayLkg, registerLkgPersistence, LKG_SNAPSHOT_ARRAY, LKG_SNAPSHOT_OBJECT, LKG_SNAPSHOT_KEY, LKG_SNAPSHOT_STRING, LKG_SNAPSHOT_NUMBER, LKG_SNAPSHOT_BOOLEAN, LKG_SNAPSHOT_NULL, LKG_SNAPSHOT_UNDEFINED, contentSnapshotValue, signatureForFields, lkgContentFields, lkgContentDigestFromFields, isLegacyLkgDigest, legacyLkgDigestFromFields, lkgFieldsMatchDigest, exactReusablePrefix, incrementalLkgContentDigests, lkgSlotRejection, captureSlot, getInMemorySlot, getSlot, dropSlot, TOOL_SWEEP_SCOPED_MARKER, encodePiContentDecision, decodePiContentDecision, getPiContentDecisions, freezePiContentDecision, withNativeReplayWriteBarrier, getNativeReplayState, saveNativeToolInputs, addNativeReasoningIds, copySessionStateForClone, externalHistorianFailureReason, subprocessExitHistorianFailureReason, countHistorianRuns, recordHistorianRun, summarizeImportance, tallyFactsByCategory, queueMemoryMutation, getMemoryMutationsForRender, getMemoryMutationsForRenderByProjects, getMaxMemoryMutationId, getMaxMemoryMutationIdForProjects, GLOBAL_USER_PROFILE_PROJECT_PATH, getProjectState, bumpProjectUserProfileVersion, saveSourceContent, getSourceContents, recordSubagentInvocation, getLatestHistorianInvocationId, noteTouchedAt, noteNudgePickIndex, formatNoteNudge, systemPromptFingerprint, createPromptSurfaceRuntime, createPromptSurfaceGuidanceEpochCache, SYNTH_USER_ID_PREFIX, resolvePiStableId, resolvePiRealStableId, isPiContentFallbackId, isPiIndexFallbackId, piContentFallbackIds, readPiSessionSnapshot, readPiSessionMessages, readPiSessionMessagePage, findRestartModelSeedFromBranch, iterateEntriesToRawMessageRange, iterateAsyncEntriesToRawMessageRange, convertEntriesToRawMessages, convertPiAssistantEntryById, convertEntriesToRawMessagePage, countPiRawMessages, USER_MEMORY_CANDIDATE_TTL_MS, insertUserMemoryCandidates, getUserMemoryCandidates, deleteUserMemoryCandidates, pruneExpiredUserMemoryCandidates, insertUserMemory, getActiveUserMemories, updateUserMemoryContent, dismissUserMemory, getTaskScheduleState, getFailingDreamTasks, getSkippedDreamTasks, getMostRecentTaskRunAt, pruneNonCanonicalTaskRows, deleteTaskScheduleRowsForProject, seedTaskScheduleState, writeTaskScheduleState, isRetrospectiveWindowProcessed, recordRetrospectiveWindowProcessed, curateCategoryForMemoryCategory, peekCurateCategoryScope, beginCurateCategoryRun, curateTaskStateAfterSuccess, MEMORY_MURAL_BLOCK, buildMagicContextSection, resolveMuralWire, updateCompactionMarkerAfterPublication, COMPARTMENT_RENDER_EPOCH, MEMORY_RENDER_FORMAT_EPOCH, encodeCachedM0UpgradeIdentity, decodeCachedM0UpgradeIdentity, withCachedM0MemoryIds, readCachedM0MemoryIds, renderBudgetIdentityChanged, renderedBudgetSnapshot, renderedBudgetShrinkReason, DEFAULT_HISTORY_BUDGET_TOKENS, renderCompartmentAtTier, renderDecayedCompartments, extractM0Block, TEMPORAL_MARKER_PATTERN, TEMPORAL_MARKER_REPLAY_PATTERN, temporalMarkerPrefix, renderUserProfileContent, clearInjectionCache, getVisibleMemoryIds, orderHistorianMemories, renderHistorianMemoryBlock, DEFAULT_MEMORY_BUDGET_TOKENS, DEFAULT_USER_PROFILE_BUDGET_TOKENS, trimMemoriesToBudgetV2, trimWorkspaceMemoriesToBudgetV2, trimUserMemoriesToBudget, renderMemoryBlockV2, stripMemoryMuralBlock, resetPrefixTrimFallbackState, isDirectiveShapedProjectRule, takeCurateSafetyRefusalCount, wakePlaneStatus, loadPiConfig, loadPiConfigDetailed, unregisterPiProjectEmbeddings, ensureProjectRegisteredFromPiDirectory, neutralizeOmpMentions, restoreOmpMentions, resolvePiHarnessDetection, resolvePiHarnessKind, resolvePiOrdinalAlignment, piRawOrdinalOffsetSource, resolvePiOrdinalAlignmentForContext, isPiOrdinalAlignmentUnanchored, clearPiOrdinalAlignmentSession, rememberTodowriteToolCallTodos, parseTodos, setTodoSnapshot, registerTodoOverlay, registerTodoStateLifecycle, syncCtxMemoryToolEnabled, registerMagicContextTools };
|
|
@@ -5220,4 +5220,4 @@ function readRawSessionSeedTail2(sessionId, boundaryId, onQuery) {
|
|
|
5220
5220
|
});
|
|
5221
5221
|
}
|
|
5222
5222
|
|
|
5223
|
-
export { detectThinkingBindingMismatch, detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, MAX_EXECUTE_THRESHOLD, escalationBands, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, computeProtectionWindow, readEpochFloorSnapshot, getProtectionWindowForSession, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, isRustMarkerAdmissionFenced, ReplayDocumentError, readReplayEnvelope, readReplayDocument, updateReplayDocument, writeReplayDocument, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, describeProtectedTailDrainBudgetSkip, loadProtectedTailMeta, markProtectedTailPolicyV3Seeded, recordProtectedTailPublicationFloor, recordProtectedTailNoEligibleHead, getWrapupInProgressState, isWrapupInProgress, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, EMERGENCY_DRAIN_FAILURE_BACKOFF_MS, getProtectedTailDrainBudgetSkip, reserveProtectedTailDrainTokens, clearEmergencyDrainLatch, recordHistorianDrainFailure, clearHistorianDrainFailure, rollbackProtectedTailDrainReservation, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, recordOverflowDetected, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, COMPACTION_OFF_THINKING_FROZEN_PREFIX, getThinkingBindingRecoveryTarget, armThinkingBindingRecovery, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, setPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, getSessionsWithPendingPiMarker, setSessionWorkMetrics, getSessionWorkMetrics, resolveEpochFloorForPass, withReadOnlySessionDb, expandToolPart, askAnswerLines, retreatPastHostUnservedRows, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, invalidateTrueRawTokenCache, stripSystemInjection, isFilePart, hasUserAnswerMetadata, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, TOKEN_BUDGET_TOOL_REFUSAL, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, droppedInputMarker, createDroppedInputGuard, isEditTool, applyEditMarkerToInput, modelAcceptsEmptyContent, isAnthropicFamilyRoute, variantChangeBustsProviderCache, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, isMarkerOnlyText, findLatestAssistantReasoningMutationExemptMessage, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, reasoningStepCost, reasoningBudgetCutoff, reasoningTextAndOpaque, opaqueThinkingCost, estimatePartImageTokens, SKELETON_REAL_INPUT_MAX_BYTES, toolInputStringBytes, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, setBoundedRawMessageProvider2, withRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, RAW_MESSAGE_VISIT_PAGE_SIZE2, visitRawSessionMessages2, visitRawSessionMessagesAsync2, readRawSessionMessageRange2, prepareRawSessionOrdinals2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageOrdinalPage2, getRawSessionStoredMessageCount2, readRawSessionMessageIdOrdinalsForRange2, readRawSessionMessageIdOrdinals2, readRawSessionMessagePartsById2, readRawSessionBoundaryEndpoints2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, resolveHistorianChunkStart2, compareRawSessionMessageOrder2, readRawSessionMessageById2, getRawSessionMessageCount2, RAW_SESSION_TAG_KEY_PAGE_SIZE2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, getProtectedTailStartOrdinal2, readSessionChunk2, getRawSessionMessageIdsThrough2, readRawSessionSeedTail2 };
|
|
5223
|
+
export { detectThinkingBindingMismatch, detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, MAX_EXECUTE_THRESHOLD, escalationBands, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, rowWindowMass, computeProtectionWindow, readEpochFloorSnapshot, getProtectionWindowForSession, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, isRustMarkerAdmissionFenced, ReplayDocumentError, readReplayEnvelope, readReplayDocument, updateReplayDocument, writeReplayDocument, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, describeProtectedTailDrainBudgetSkip, loadProtectedTailMeta, markProtectedTailPolicyV3Seeded, recordProtectedTailPublicationFloor, recordProtectedTailNoEligibleHead, getWrapupInProgressState, isWrapupInProgress, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, EMERGENCY_DRAIN_FAILURE_BACKOFF_MS, getProtectedTailDrainBudgetSkip, reserveProtectedTailDrainTokens, clearEmergencyDrainLatch, recordHistorianDrainFailure, clearHistorianDrainFailure, rollbackProtectedTailDrainReservation, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, recordOverflowDetected, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, COMPACTION_OFF_THINKING_FROZEN_PREFIX, getThinkingBindingRecoveryTarget, armThinkingBindingRecovery, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, setPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, getSessionsWithPendingPiMarker, setSessionWorkMetrics, getSessionWorkMetrics, resolveEpochFloorForPass, withReadOnlySessionDb, expandToolPart, askAnswerLines, retreatPastHostUnservedRows, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, invalidateTrueRawTokenCache, stripSystemInjection, isFilePart, hasUserAnswerMetadata, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, TOKEN_BUDGET_TOOL_REFUSAL, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, droppedInputMarker, createDroppedInputGuard, isEditTool, applyEditMarkerToInput, modelAcceptsEmptyContent, isAnthropicFamilyRoute, variantChangeBustsProviderCache, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, isMarkerOnlyText, findLatestAssistantReasoningMutationExemptMessage, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, reasoningStepCost, reasoningBudgetCutoff, reasoningTextAndOpaque, opaqueThinkingCost, estimatePartImageTokens, SKELETON_REAL_INPUT_MAX_BYTES, toolInputStringBytes, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, setBoundedRawMessageProvider2, withRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, RAW_MESSAGE_VISIT_PAGE_SIZE2, visitRawSessionMessages2, visitRawSessionMessagesAsync2, readRawSessionMessageRange2, prepareRawSessionOrdinals2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageOrdinalPage2, getRawSessionStoredMessageCount2, readRawSessionMessageIdOrdinalsForRange2, readRawSessionMessageIdOrdinals2, readRawSessionMessagePartsById2, readRawSessionBoundaryEndpoints2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, resolveHistorianChunkStart2, compareRawSessionMessageOrder2, readRawSessionMessageById2, getRawSessionMessageCount2, RAW_SESSION_TAG_KEY_PAGE_SIZE2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, getProtectedTailStartOrdinal2, readSessionChunk2, getRawSessionMessageIdsThrough2, readRawSessionSeedTail2 };
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from "./index-2qtx0q6h.js";
|
|
16
16
|
import {
|
|
17
17
|
createFailClosedBlockingError
|
|
18
|
-
} from "./index-
|
|
18
|
+
} from "./index-xvqcqg0r.js";
|
|
19
19
|
import {
|
|
20
20
|
createWorkerShutdown
|
|
21
21
|
} from "./index-54wmg4rj.js";
|
|
@@ -189,8 +189,8 @@ class PiTagHydrationError extends Error {
|
|
|
189
189
|
this.name = "PiTagHydrationError";
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
-
function createPiHydrationPacketConsumer(request, cached = [], byteLimit) {
|
|
193
|
-
const assembly = createPiTagSnapshotCandidate(cached, byteLimit);
|
|
192
|
+
function createPiHydrationPacketConsumer(request, cached = [], byteLimit, cachedFallback = []) {
|
|
193
|
+
const assembly = createPiTagSnapshotCandidate(cached, byteLimit, cachedFallback);
|
|
194
194
|
let sequence = 0;
|
|
195
195
|
let generation;
|
|
196
196
|
let busy = false;
|
|
@@ -347,7 +347,7 @@ function createPiHydrationPacketConsumer(request, cached = [], byteLimit) {
|
|
|
347
347
|
function startPiTagSnapshotWorker(request, options = {}) {
|
|
348
348
|
const entry = options.entry ?? new URL(import.meta.url.endsWith(".ts") ? "./tag-snapshot-worker-pi.ts" : "./tag-snapshot-worker-pi.js", import.meta.url);
|
|
349
349
|
const started = performance.now();
|
|
350
|
-
const consumer = createPiHydrationPacketConsumer(request, options.cached, options.byteLimit);
|
|
350
|
+
const consumer = createPiHydrationPacketConsumer(request, options.cached, options.byteLimit, options.cachedFallback);
|
|
351
351
|
const worker = inRootAsyncContext2(() => new Worker(entry, { workerData: request }));
|
|
352
352
|
const shutdown = createWorkerShutdown(worker, "pi-tag-snapshot", 1000);
|
|
353
353
|
let exited = false;
|
|
@@ -567,11 +567,13 @@ function createPiTagSnapshotReader(db) {
|
|
|
567
567
|
revisionPresent: total.present
|
|
568
568
|
};
|
|
569
569
|
};
|
|
570
|
-
const ready = (sessionId) => {
|
|
570
|
+
const ready = (sessionId, projection) => {
|
|
571
571
|
assertOutsideTransaction();
|
|
572
572
|
const cached = cache.get(sessionId);
|
|
573
573
|
if (!cached?.fallback)
|
|
574
574
|
return false;
|
|
575
|
+
if (cached.projection !== projection)
|
|
576
|
+
return false;
|
|
575
577
|
const revision = revisionReaders.get(db)?.(sessionId);
|
|
576
578
|
if (!revision || cached.foreignRevision !== revision[1])
|
|
577
579
|
return false;
|
|
@@ -583,17 +585,18 @@ function createPiTagSnapshotReader(db) {
|
|
|
583
585
|
if (current?.sessionId === sessionId)
|
|
584
586
|
current.cancel();
|
|
585
587
|
};
|
|
586
|
-
const load = (sessionId, kind) => inSnapshotRoot(async () => {
|
|
588
|
+
const load = (sessionId, kind, projection) => inSnapshotRoot(async () => {
|
|
587
589
|
if (closed)
|
|
588
590
|
throw new PiTagHydrationError("connection closed");
|
|
589
591
|
managed.add(sessionId);
|
|
590
|
-
if (ready(sessionId))
|
|
592
|
+
if (ready(sessionId, projection))
|
|
591
593
|
return;
|
|
592
594
|
if (current) {
|
|
593
595
|
if (current.sessionId === sessionId && !current.retryable && !current.preempted) {
|
|
594
596
|
if (kind === "turn")
|
|
595
597
|
current.kind = "turn";
|
|
596
|
-
|
|
598
|
+
if (current.projection === projection)
|
|
599
|
+
return current.result;
|
|
597
600
|
}
|
|
598
601
|
if (kind === "turn" && current.kind === "prewarm" && current.sessionId !== sessionId && !current.preempted) {
|
|
599
602
|
current.preempted = true;
|
|
@@ -603,30 +606,36 @@ function createPiTagSnapshotReader(db) {
|
|
|
603
606
|
await Promise.allSettled([current.result, current.released]);
|
|
604
607
|
if (epoch !== (sessionEpochs.get(sessionId) ?? 0))
|
|
605
608
|
throw new PiTagHydrationError("session hydration cancelled while queued", "cancelled");
|
|
606
|
-
return load(sessionId, kind);
|
|
609
|
+
return load(sessionId, kind, projection);
|
|
607
610
|
}
|
|
608
611
|
if (failedSession === sessionId && performance.now() < failedUntil)
|
|
609
612
|
throw lastFailure;
|
|
610
613
|
watch.run(sessionId);
|
|
611
614
|
const token = stamps(sessionId, ++jobId);
|
|
615
|
+
const cached = cache.get(sessionId);
|
|
616
|
+
if (cached && cached.projection !== projection) {
|
|
617
|
+
cache.delete(sessionId);
|
|
618
|
+
}
|
|
612
619
|
const previous = cache.get(sessionId);
|
|
613
620
|
const legacyFallbackOnly = previous && previous.foreignRevision === token.foreignRevision && (previous.legacyFallback || token.durableVersion - previous.durableVersion !== token.ownVersion - previous.ownVersion);
|
|
614
621
|
const path = getSqliteDatabasePath2(db);
|
|
615
|
-
const factory = workerFactories.get(db) ?? ((request, cached) => {
|
|
622
|
+
const factory = workerFactories.get(db) ?? ((request, cached, cachedFallback) => {
|
|
616
623
|
if (!path)
|
|
617
624
|
throw new PiTagHydrationError("read-only hydration requires a file-backed database");
|
|
618
|
-
return startPiTagSnapshotWorker({ ...request, path }, { cached });
|
|
625
|
+
return startPiTagSnapshotWorker({ ...request, path }, { cached, cachedFallback });
|
|
619
626
|
});
|
|
620
627
|
const worker = factory({
|
|
621
628
|
path: path ?? "",
|
|
622
629
|
sessionId,
|
|
623
630
|
connectionEpoch: epoch,
|
|
624
631
|
sessionEpoch: token.sessionEpoch,
|
|
625
|
-
jobId: token.jobId
|
|
626
|
-
|
|
632
|
+
jobId: token.jobId,
|
|
633
|
+
projection
|
|
634
|
+
}, previous?.tags ?? [], previous?.fallback ?? []);
|
|
627
635
|
const destination = {
|
|
628
636
|
sessionId,
|
|
629
637
|
kind,
|
|
638
|
+
projection,
|
|
630
639
|
result: Promise.resolve(),
|
|
631
640
|
released: worker.released,
|
|
632
641
|
cancel: worker.cancel
|
|
@@ -652,6 +661,7 @@ function createPiTagSnapshotReader(db) {
|
|
|
652
661
|
if (closed || current !== destination || !samePiTagSnapshotToken(token, live) || token.totalRevision !== live.totalRevision || generation.revision !== token.totalRevision || generation.durable !== token.durableVersion)
|
|
653
662
|
throw new PiTagHydrationError("owner generation or lifetime changed", "stale");
|
|
654
663
|
const snapshot = {
|
|
664
|
+
projection,
|
|
655
665
|
firstAllocationPending: live.revisionPresent ? undefined : candidate.tags.length === 0 && !db.prepare("SELECT 1 FROM tags WHERE session_id = ? LIMIT 1").get(sessionId) ? "empty" : "legacy",
|
|
656
666
|
revision: legacyFallbackOnly ? previous.revision : live.localRevision,
|
|
657
667
|
foreignRevision: live.foreignRevision,
|
|
@@ -678,15 +688,19 @@ function createPiTagSnapshotReader(db) {
|
|
|
678
688
|
}
|
|
679
689
|
cache.set(sessionId, snapshot);
|
|
680
690
|
}).catch((error) => {
|
|
681
|
-
const
|
|
691
|
+
const releaseCachedAllocations = previous && !legacyFallbackOnly && cache.get(sessionId) === previous && error instanceof PiTagHydrationError && error.message.includes("candidate memory limit exceeded");
|
|
692
|
+
if (releaseCachedAllocations)
|
|
693
|
+
cache.delete(sessionId);
|
|
694
|
+
const failure = releaseCachedAllocations ? new PiTagHydrationError("candidate memory limit exceeded with cached allocations; retrying without cache", "stale") : error;
|
|
695
|
+
const retryable = failure instanceof PiTagHydrationError && (failure.code === "stale" || failure.code === "cancelled");
|
|
682
696
|
if (retryable)
|
|
683
697
|
destination.retryable = true;
|
|
684
698
|
if (!destination.preempted && current === destination && token.sessionEpoch === (sessionEpochs.get(sessionId) ?? 0)) {
|
|
685
699
|
failedSession = sessionId;
|
|
686
|
-
lastFailure =
|
|
700
|
+
lastFailure = failure;
|
|
687
701
|
failedUntil = performance.now() + (retryable ? 0 : 500);
|
|
688
702
|
}
|
|
689
|
-
throw
|
|
703
|
+
throw failure;
|
|
690
704
|
});
|
|
691
705
|
Promise.allSettled([destination.result, worker.released]).then(() => {
|
|
692
706
|
if (current === destination)
|
|
@@ -759,7 +773,7 @@ function createPiTagSnapshotReader(db) {
|
|
|
759
773
|
const replacements = getTagsByNumbers2(db, sessionId, numbers);
|
|
760
774
|
for (const tag of replacements)
|
|
761
775
|
Object.freeze(tag);
|
|
762
|
-
snapshot.tags = mergeChangedRows(snapshot.tags, dirty, replacements);
|
|
776
|
+
snapshot.tags = mergeChangedRows(snapshot.tags, dirty, snapshot.projection === "pass" ? replacements.map(projectPiPassTag) : replacements);
|
|
763
777
|
snapshot.active = mergeChangedRows(snapshot.active, dirty, replacements.filter(isActive));
|
|
764
778
|
if (!numbers.every(Number.isSafeInteger)) {
|
|
765
779
|
snapshot.fallback = undefined;
|
|
@@ -787,7 +801,16 @@ function createPiTagSnapshotReader(db) {
|
|
|
787
801
|
throw new PiTagHydrationError("managed snapshot read inside a transaction");
|
|
788
802
|
if (!snapshot)
|
|
789
803
|
return getTagsBySession2(db, sessionId);
|
|
790
|
-
|
|
804
|
+
if (snapshot.projection === "pass") {
|
|
805
|
+
const before = stamps(sessionId, 0);
|
|
806
|
+
const tags = getTagsBySession2(db, sessionId);
|
|
807
|
+
const after = stamps(sessionId, 0);
|
|
808
|
+
if (!samePiTagSnapshotToken(before, after) || before.totalRevision !== after.totalRevision)
|
|
809
|
+
throw new PiTagHydrationError("full snapshot generation changed", "stale");
|
|
810
|
+
return borrowed ? tags.map((tag) => Object.freeze(tag)) : tags;
|
|
811
|
+
}
|
|
812
|
+
const full = snapshot.tags;
|
|
813
|
+
return borrowed ? full : full.map((tag) => ({ ...tag }));
|
|
791
814
|
};
|
|
792
815
|
entryReaders.set(db, sync);
|
|
793
816
|
fallbackReaders.set(db, (sessionId) => {
|
|
@@ -820,11 +843,28 @@ function createPiTagSnapshotReader(db) {
|
|
|
820
843
|
});
|
|
821
844
|
return read;
|
|
822
845
|
}
|
|
846
|
+
function projectPiPassTag(tag) {
|
|
847
|
+
if (tag.status === "active")
|
|
848
|
+
return tag;
|
|
849
|
+
return Object.freeze({
|
|
850
|
+
id: tag.id,
|
|
851
|
+
tagNumber: tag.tagNumber,
|
|
852
|
+
messageId: tag.messageId,
|
|
853
|
+
type: tag.type,
|
|
854
|
+
status: tag.status,
|
|
855
|
+
toolOwnerMessageId: tag.toolOwnerMessageId,
|
|
856
|
+
tokenCount: tag.tokenCount,
|
|
857
|
+
toolName: tag.toolName,
|
|
858
|
+
dropMode: tag.dropMode
|
|
859
|
+
});
|
|
860
|
+
}
|
|
823
861
|
var PI_FALLBACK_ROW_COLUMNS = "id, tag_number, type, message_id, tool_owner_message_id, entry_fingerprint";
|
|
824
862
|
var PI_FALLBACK_ROW_PREDICATE = `((type = 'message' AND message_id LIKE 'pi-msg-%')
|
|
825
863
|
OR (type = 'tool' AND tool_owner_message_id LIKE 'pi-msg-%'))`;
|
|
826
864
|
var isActive = (tag) => tag.status === "active";
|
|
827
865
|
function sameRow(left, right, keys) {
|
|
866
|
+
if (Object.keys(left).length !== keys.length)
|
|
867
|
+
return false;
|
|
828
868
|
for (const key of keys)
|
|
829
869
|
if (!Object.is(left[key], right[key]))
|
|
830
870
|
return false;
|
|
@@ -843,11 +883,25 @@ function candidateRowBytes(row, overhead) {
|
|
|
843
883
|
}
|
|
844
884
|
return bytes;
|
|
845
885
|
}
|
|
846
|
-
function
|
|
886
|
+
function passTagBytes(row) {
|
|
887
|
+
return candidateRowBytes(row, 48 + 24 * Object.keys(row).length);
|
|
888
|
+
}
|
|
889
|
+
function createPiTagSnapshotCandidate(cached = [], byteLimit = 128 * 1024 * 1024, cachedFallback = []) {
|
|
847
890
|
const tags = [];
|
|
848
891
|
const active = [];
|
|
849
892
|
const fallback = [];
|
|
850
|
-
let
|
|
893
|
+
let reusedBytes = 0;
|
|
894
|
+
for (const row of cached)
|
|
895
|
+
reusedBytes += passTagBytes(row) + 8 + (isActive(row) ? 8 : 0);
|
|
896
|
+
if (cached.length)
|
|
897
|
+
reusedBytes += 128;
|
|
898
|
+
for (const row of cachedFallback)
|
|
899
|
+
reusedBytes += candidateRowBytes(row, 192) + 8;
|
|
900
|
+
if (cachedFallback.length)
|
|
901
|
+
reusedBytes += 64;
|
|
902
|
+
let allocatedBytes = 192 + (cachedFallback.length ? 64 + cachedFallback.length * 48 : 0);
|
|
903
|
+
let estimatedBytes = reusedBytes + allocatedBytes;
|
|
904
|
+
const fallbackCache = cachedFallback.length && estimatedBytes <= byteLimit ? new Map(cachedFallback.map((row) => [row.id, row])) : undefined;
|
|
851
905
|
let oldIndex = 0;
|
|
852
906
|
let keys;
|
|
853
907
|
let tagsEnded = false;
|
|
@@ -857,8 +911,9 @@ function createPiTagSnapshotCandidate(cached = [], byteLimit = 128 * 1024 * 1024
|
|
|
857
911
|
failed = true;
|
|
858
912
|
throw new Error(`Pi tag hydration: ${reason}`);
|
|
859
913
|
};
|
|
860
|
-
const admit = (
|
|
861
|
-
|
|
914
|
+
const admit = (bytes) => {
|
|
915
|
+
allocatedBytes += bytes;
|
|
916
|
+
estimatedBytes = reusedBytes + allocatedBytes;
|
|
862
917
|
if (estimatedBytes > byteLimit)
|
|
863
918
|
reject("candidate memory limit exceeded");
|
|
864
919
|
};
|
|
@@ -872,8 +927,7 @@ function createPiTagSnapshotCandidate(cached = [], byteLimit = 128 * 1024 * 1024
|
|
|
872
927
|
const previous = tags.at(-1);
|
|
873
928
|
if (previous && (previous.tagNumber > row.tagNumber || previous.tagNumber === row.tagNumber && (previous.id ?? 0) >= (row.id ?? 0)))
|
|
874
929
|
reject("noncanonical tag order");
|
|
875
|
-
|
|
876
|
-
keys ??= Object.keys(row);
|
|
930
|
+
keys = Object.keys(row);
|
|
877
931
|
while (oldIndex < cached.length) {
|
|
878
932
|
const old = cached[oldIndex];
|
|
879
933
|
if (!old || old.tagNumber > row.tagNumber || old.tagNumber === row.tagNumber && (old.id ?? 0) >= (row.id ?? 0))
|
|
@@ -882,6 +936,7 @@ function createPiTagSnapshotCandidate(cached = [], byteLimit = 128 * 1024 * 1024
|
|
|
882
936
|
}
|
|
883
937
|
const old = cached[oldIndex];
|
|
884
938
|
const selected = old && old.id === row.id && sameRow(old, row, keys) ? old : row;
|
|
939
|
+
admit((selected === old ? 0 : passTagBytes(row)) + 8 + (isActive(selected) ? 8 : 0));
|
|
885
940
|
Object.freeze(selected);
|
|
886
941
|
tags.push(selected);
|
|
887
942
|
if (isActive(selected))
|
|
@@ -890,8 +945,11 @@ function createPiTagSnapshotCandidate(cached = [], byteLimit = 128 * 1024 * 1024
|
|
|
890
945
|
appendFallback(row) {
|
|
891
946
|
if (failed || fallbackEnded)
|
|
892
947
|
reject("fallback packet after end or failure");
|
|
893
|
-
|
|
894
|
-
|
|
948
|
+
const old = fallbackCache?.get(row.id);
|
|
949
|
+
const rowKeys = Object.keys(row);
|
|
950
|
+
const selected = old && Object.keys(old).length === rowKeys.length && rowKeys.every((key) => Object.is(old[key], row[key])) ? old : row;
|
|
951
|
+
admit((selected === old ? 0 : candidateRowBytes(row, 192)) + 8);
|
|
952
|
+
fallback.push(Object.freeze(selected));
|
|
895
953
|
},
|
|
896
954
|
end(stream) {
|
|
897
955
|
if (failed)
|
|
@@ -909,7 +967,16 @@ function createPiTagSnapshotCandidate(cached = [], byteLimit = 128 * 1024 * 1024
|
|
|
909
967
|
finish() {
|
|
910
968
|
if (failed || !tagsEnded || !fallbackEnded)
|
|
911
969
|
throw new Error("Pi tag hydration: incomplete candidate");
|
|
912
|
-
|
|
970
|
+
if (estimatedBytes > byteLimit)
|
|
971
|
+
reject("candidate memory limit exceeded");
|
|
972
|
+
return {
|
|
973
|
+
tags,
|
|
974
|
+
active,
|
|
975
|
+
fallback,
|
|
976
|
+
estimatedBytes,
|
|
977
|
+
allocatedBytes,
|
|
978
|
+
reusedBytes
|
|
979
|
+
};
|
|
913
980
|
}
|
|
914
981
|
};
|
|
915
982
|
}
|
|
@@ -961,15 +1028,24 @@ function mergeChangedRows(rows, dirty, replacements) {
|
|
|
961
1028
|
}
|
|
962
1029
|
merged.push(tag);
|
|
963
1030
|
}
|
|
964
|
-
|
|
1031
|
+
for (;index < replacements.length; index++) {
|
|
1032
|
+
const row = replacements[index];
|
|
1033
|
+
if (row)
|
|
1034
|
+
merged.push(row);
|
|
1035
|
+
}
|
|
965
1036
|
return merged;
|
|
966
1037
|
}
|
|
967
1038
|
var entryReaders = new WeakMap;
|
|
968
1039
|
var fallbackReaders = new WeakMap;
|
|
969
1040
|
var readers = new WeakMap;
|
|
970
1041
|
var revisionReaders = new WeakMap;
|
|
971
|
-
function
|
|
972
|
-
|
|
1042
|
+
function getPiPassTagSnapshotView(db, sessionId) {
|
|
1043
|
+
createPiTagSnapshotReader(db);
|
|
1044
|
+
const snapshot = entryReaders.get(db)?.(sessionId);
|
|
1045
|
+
if (snapshot?.projection === "pass")
|
|
1046
|
+
return snapshot.tags;
|
|
1047
|
+
const full = snapshot?.tags ?? getTagsBySession2(db, sessionId);
|
|
1048
|
+
return full.map(projectPiPassTag);
|
|
973
1049
|
}
|
|
974
1050
|
function getPiActiveTagSnapshotView(db, sessionId, passTags) {
|
|
975
1051
|
createPiTagSnapshotReader(db);
|
|
@@ -987,9 +1063,9 @@ var owners = new WeakMap;
|
|
|
987
1063
|
var workerFactories = new WeakMap;
|
|
988
1064
|
var activeJobs = new Map;
|
|
989
1065
|
var waitDeadlines = new WeakMap;
|
|
990
|
-
function prewarmPiTagSnapshot(db, sessionId) {
|
|
1066
|
+
function prewarmPiTagSnapshot(db, sessionId, projection) {
|
|
991
1067
|
createPiTagSnapshotReader(db);
|
|
992
|
-
owners.get(db)?.load(sessionId, "prewarm").catch(() => {});
|
|
1068
|
+
owners.get(db)?.load(sessionId, "prewarm", projection).catch(() => {});
|
|
993
1069
|
}
|
|
994
1070
|
function cancelPiTagSnapshotSession(sessionId) {
|
|
995
1071
|
for (const job of activeJobs.get(sessionId) ?? [])
|
|
@@ -1005,17 +1081,17 @@ function assertPiTagSnapshotReady(db, sessionId) {
|
|
|
1005
1081
|
createPiTagSnapshotReader(db);
|
|
1006
1082
|
const owner = owners.get(db);
|
|
1007
1083
|
owner?.manage(sessionId);
|
|
1008
|
-
if (!owner?.ready(sessionId))
|
|
1084
|
+
if (!owner?.ready(sessionId, "pass") && !owner?.ready(sessionId))
|
|
1009
1085
|
throw new PiTagHydrationError("tag snapshot is not ready; turn not sent, retry");
|
|
1010
1086
|
}
|
|
1011
|
-
function ensurePiTagSnapshotReady(db, sessionId, budget) {
|
|
1087
|
+
function ensurePiTagSnapshotReady(db, sessionId, budget, projection) {
|
|
1012
1088
|
budget.assert();
|
|
1013
1089
|
createPiTagSnapshotReader(db);
|
|
1014
1090
|
const owner = owners.get(db);
|
|
1015
1091
|
if (!owner)
|
|
1016
1092
|
throw new PiTagHydrationError("snapshot owner unavailable");
|
|
1017
1093
|
owner.manage(sessionId);
|
|
1018
|
-
if (owner.ready(sessionId))
|
|
1094
|
+
if (owner.ready(sessionId, projection))
|
|
1019
1095
|
return;
|
|
1020
1096
|
let deadline = waitDeadlines.get(budget);
|
|
1021
1097
|
if (deadline === undefined) {
|
|
@@ -1033,7 +1109,7 @@ function ensurePiTagSnapshotReady(db, sessionId, budget) {
|
|
|
1033
1109
|
const releaseNativeWaiter = owner.addNativeWaiter(() => budget.remainingOutcome() - PI_CONTEXT_BUDGET.completionReserveMs);
|
|
1034
1110
|
try {
|
|
1035
1111
|
await budget.wait(Promise.race([
|
|
1036
|
-
owner.load(sessionId, "turn"),
|
|
1112
|
+
owner.load(sessionId, "turn", projection),
|
|
1037
1113
|
new Promise((_, reject) => {
|
|
1038
1114
|
timer = setTimeout(() => reject(new PiTagHydrationError("remaining pass budget exhausted waiting for tag snapshot; turn not sent, retry", "deadline")), allowance);
|
|
1039
1115
|
})
|
|
@@ -1053,4 +1129,4 @@ function ensurePiTagSnapshotReady(db, sessionId, budget) {
|
|
|
1053
1129
|
})();
|
|
1054
1130
|
}
|
|
1055
1131
|
|
|
1056
|
-
export { PI_CONTEXT_BUDGET, PiContextDeadlineError, PiContextSupersededError, PiContextBudget, encodePiHydrationOperation, PiTagHydrationError, PI_FALLBACK_ROW_COLUMNS, PI_FALLBACK_ROW_PREDICATE,
|
|
1132
|
+
export { PI_CONTEXT_BUDGET, PiContextDeadlineError, PiContextSupersededError, PiContextBudget, encodePiHydrationOperation, PiTagHydrationError, projectPiPassTag, PI_FALLBACK_ROW_COLUMNS, PI_FALLBACK_ROW_PREDICATE, getPiPassTagSnapshotView, getPiActiveTagSnapshotView, readPiFallbackTagRows, prewarmPiTagSnapshot, cancelPiTagSnapshotSession, drainPiTagSnapshotSession, assertPiTagSnapshotReady, ensurePiTagSnapshotReady };
|
|
@@ -2003,7 +2003,7 @@ function finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion)
|
|
|
2003
2003
|
state.running = startMessageFtsRowidMapBackfill2(db, signal).then(async () => {
|
|
2004
2004
|
if (signal.aborted || !readsOpenCodeStore)
|
|
2005
2005
|
return;
|
|
2006
|
-
const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-
|
|
2006
|
+
const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-xrymr0pp.js"));
|
|
2007
2007
|
const { startMessageTimeBackfill } = await importPluginModule(() => import("./message-time-backfill-e3r8ddh1.js"));
|
|
2008
2008
|
if (signal.aborted)
|
|
2009
2009
|
return;
|