@cortexkit/pi-magic-context 0.49.34 → 0.49.36
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 +163 -155
- package/dist/chunk-embedding-write-worker.js +71 -66
- package/dist/{compaction-marker-candidates-p1kqkqhq.js → compaction-marker-candidates-9fzqg6y0.js} +6 -3
- package/dist/compaction-marker-candidates-worker.js +24 -23
- package/dist/{compartment-chunk-embedding-8c85ebce.js → compartment-chunk-embedding-jpcme6tz.js} +11 -9
- package/dist/embedding-backfill-002vyexq.js +27 -0
- package/dist/embedding-worker-process.js +2 -1
- package/dist/embedding-worker.js +5 -4
- package/dist/expand-attachments-8sxeyj26.js +21 -0
- package/dist/historian-calibration-extension.js +2 -1
- package/dist/{index-hqw0rt9k.js → index-0wtm7g7f.js} +1 -1
- package/dist/{index-wqpjhx1p.js → index-2qqsnh1b.js} +2 -2
- package/dist/index-3bb24eb6.js +229 -0
- package/dist/{index-48twbev2.js → index-6pk49fc3.js} +37 -51
- package/dist/{index-399p688g.js → index-8sqebjzk.js} +4 -1
- package/dist/{index-np9ryr8y.js → index-a7sj2bam.js} +24 -241
- package/dist/index-by1bzjcd.js +24 -0
- package/dist/{index-6981g1xv.js → index-c1dqxr10.js} +35 -5
- package/dist/index-c6wbq66z.js +168 -0
- package/dist/{index-bvpar0bg.js → index-ck8wj35v.js} +2 -2
- package/dist/{index-jn44h81p.js → index-cq71g4dk.js} +1 -1
- package/dist/{index-pb3ea2tq.js → index-d107f484.js} +5 -5
- package/dist/{index-f4fz95fy.js → index-dgqjq8sg.js} +398 -4996
- package/dist/index-dnp1jjar.js +222 -0
- package/dist/index-ea37qn4x.js +777 -0
- package/dist/{index-g2tfayfc.js → index-f6y7mdq9.js} +98 -552
- package/dist/{index-0gymvr5j.js → index-f9qet7y8.js} +19 -8
- package/dist/index-gxqmh9hq.js +194 -0
- package/dist/{index-fgs78jyd.js → index-gymgz20n.js} +5 -222
- package/dist/index-hgd00nas.js +113 -0
- package/dist/{index-9xd7qveg.js → index-jbkwszd5.js} +4 -4
- package/dist/{index-e61zxfts.js → index-kj49vs41.js} +4 -4
- package/dist/{index-4zemngt7.js → index-mp0gh04g.js} +2 -2
- package/dist/{index-eenxm3t3.js → index-mx757f3g.js} +51 -32
- package/dist/{index-23t8ryqw.js → index-n0zjvs3h.js} +1 -168
- package/dist/index-nypgv96r.js +58 -0
- package/dist/index-p9jfa33t.js +4171 -0
- package/dist/{index-eqw9t2ty.js → index-pwp6zyx3.js} +15 -4
- package/dist/{index-cj3bkd16.js → index-ry84c8dr.js} +2 -2
- package/dist/{index-gwxaz0z5.js → index-rzfr7wdv.js} +2 -2
- package/dist/index-w26zvs1q.js +528 -0
- package/dist/index-wfqysrwq.js +204 -0
- package/dist/index-wrr9rp9a.js +16 -0
- package/dist/{index-my0dn413.js → index-wt7vmyj4.js} +1 -1
- package/dist/{index-0mc0vv97.js → index-wwsfevck.js} +8 -5
- package/dist/{index-54wmg4rj.js → index-x2n261wp.js} +16 -14
- package/dist/{index-6wdwv3a6.js → index-y90fxz4t.js} +10 -4
- package/dist/{index-c474g0gj.js → index-yacs388s.js} +1 -1
- package/dist/{index-xn5yh0pn.js → index-z7dktknj.js} +34 -131
- package/dist/index.js +1316 -488
- package/dist/{logger-shetp43v.js → logger-2j70hhz4.js} +2 -1
- package/dist/{message-fts-rowid-map-3mbvdgn9.js → message-fts-rowid-map-hmgyfxxa.js} +8 -6
- package/dist/{message-index-bounded-a6na71rg.js → message-index-bounded-82sergz7.js} +15 -12
- package/dist/{message-time-backfill-e3r8ddh1.js → message-time-backfill-x45573rs.js} +3 -2
- package/dist/migration-worker.js +56 -48
- package/dist/{project-embedding-registry-acqb6be4.js → project-embedding-registry-16pj4vyf.js} +16 -13
- package/dist/raw-ordinal-warmup-worker.js +114 -113
- package/dist/{read-session-chunk-2xcp6f40.js → read-session-chunk-jxq427v6.js} +17 -10
- package/dist/{read-session-raw-g9b1zdn5.js → read-session-raw-a9ntjqap.js} +6 -4
- package/dist/render-2wan3bfh.js +42 -0
- package/dist/{safe-notification-target-zcpchea6.js → safe-notification-target-jk69jxwp.js} +3 -2
- package/dist/search-3p18trsb.js +50 -0
- package/dist/search-archive-pgrv04gv.js +25 -0
- package/dist/{storage-tags-6409qq18.js → storage-tags-p9y3bnw7.js} +5 -4
- package/dist/store-reader-2m80zs5z.js +14 -0
- package/dist/store-v60q7dje.js +452 -0
- package/dist/subagent-entry.js +34 -25
- package/dist/tag-snapshot-worker-pi.js +218 -209
- package/dist/v2-archive-reader-5zpj8hrg.js +11 -0
- package/package.json +1 -1
- package/dist/embedding-backfill-rwfmyvze.js +0 -24
- package/dist/search-archive-jate39w5.js +0 -21
- package/dist/search-b6hp64hc.js +0 -45
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
import {
|
|
13
13
|
log2,
|
|
14
14
|
sessionLog2
|
|
15
|
-
} from "./index-
|
|
15
|
+
} from "./index-gymgz20n.js";
|
|
16
16
|
import {
|
|
17
17
|
resolveDecisionCalibration,
|
|
18
18
|
calibrationForModelKey,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
TAG_SELECT_COLUMNS2,
|
|
24
24
|
getCandidateToolOwners2,
|
|
25
25
|
pickNearestPriorOwner2
|
|
26
|
-
} from "./index-
|
|
26
|
+
} from "./index-pwp6zyx3.js";
|
|
27
27
|
import {
|
|
28
28
|
OMO_INTERNAL_INITIATOR_MARKER,
|
|
29
29
|
isSystemDirective,
|
|
@@ -39,14 +39,14 @@ import {
|
|
|
39
39
|
formatBlock,
|
|
40
40
|
compactTextForSummary,
|
|
41
41
|
mergeCommitHashes
|
|
42
|
-
} from "./index-
|
|
42
|
+
} from "./index-wt7vmyj4.js";
|
|
43
43
|
import {
|
|
44
44
|
Database2,
|
|
45
45
|
prepareCachedStatement2
|
|
46
46
|
} from "./index-2qtx0q6h.js";
|
|
47
47
|
import {
|
|
48
48
|
stableStringify
|
|
49
|
-
} from "./index-
|
|
49
|
+
} from "./index-yacs388s.js";
|
|
50
50
|
import {
|
|
51
51
|
resolveOpenCodeDbPath,
|
|
52
52
|
assertOpenCodeStoreGeneration,
|
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
recordOpenCodeDbReadFailure,
|
|
55
55
|
clearOpenCodeDbReadFailure,
|
|
56
56
|
claimOpenCodeDbDiagnosticOnce
|
|
57
|
-
} from "./index-
|
|
57
|
+
} from "./index-n0zjvs3h.js";
|
|
58
58
|
import {
|
|
59
59
|
prewarmRawSessionOrdinalsForDb,
|
|
60
60
|
readRawSessionMessagesFromDb2,
|
|
@@ -71,13 +71,17 @@ import {
|
|
|
71
71
|
hasRawSessionMessageByIdFromDb2,
|
|
72
72
|
readRawSeedTailFromDb2,
|
|
73
73
|
readRawSessionBoundaryEndpointsFromDb2
|
|
74
|
-
} from "./index-
|
|
74
|
+
} from "./index-c1dqxr10.js";
|
|
75
|
+
import {
|
|
76
|
+
markHostUnservedRow,
|
|
77
|
+
isHostUnservedRow
|
|
78
|
+
} from "./index-by1bzjcd.js";
|
|
75
79
|
import {
|
|
76
80
|
closeQuietly
|
|
77
81
|
} from "./index-nrzkqte4.js";
|
|
78
82
|
import {
|
|
79
83
|
logSlowWriteTransaction
|
|
80
|
-
} from "./index-
|
|
84
|
+
} from "./index-0wtm7g7f.js";
|
|
81
85
|
|
|
82
86
|
// ../plugin/src/features/magic-context/overflow-detection.ts
|
|
83
87
|
var OVERFLOW_PATTERNS = [
|
|
@@ -98,6 +102,8 @@ var OVERFLOW_PATTERNS = [
|
|
|
98
102
|
/request entity too large/i,
|
|
99
103
|
/context length is only \d+ tokens/i,
|
|
100
104
|
/input length.*exceeds.*context length/i,
|
|
105
|
+
/\bContextWindowExceededError\b/i,
|
|
106
|
+
/\bthe input \(\d+ tokens?\) is longer than the model's context length \(\d+ tokens?\)/i,
|
|
101
107
|
/prompt too long; exceeded (?:max )?context length/i,
|
|
102
108
|
/too large for model with \d+ maximum context length/i,
|
|
103
109
|
/model_context_window_exceeded/i,
|
|
@@ -120,6 +126,10 @@ var LIMIT_EXTRACTION_PATTERNS = [
|
|
|
120
126
|
},
|
|
121
127
|
{ pattern: /context size[^0-9]{0,40}(\d{4,})\s*tokens?/i, provenance: "combined" },
|
|
122
128
|
{ pattern: /exceeds? the context length of (\d+)/i, provenance: "combined" },
|
|
129
|
+
{
|
|
130
|
+
pattern: /\bthe input \(\d+ tokens?\) is longer than the model's context length \((\d+) tokens?\)/i,
|
|
131
|
+
provenance: "combined"
|
|
132
|
+
},
|
|
123
133
|
{
|
|
124
134
|
pattern: />\s*(\d+)\s*(?:tokens?\s*)?(?:maximum|max|limit)\b/i,
|
|
125
135
|
provenance: "prompt_only"
|
|
@@ -258,7 +268,9 @@ function parseReportedInputTokens(message) {
|
|
|
258
268
|
/input token count\s*\(?\s*(\d+)/i,
|
|
259
269
|
/input length\s*(\d+)/i,
|
|
260
270
|
/prompt was\s*(\d+)/i,
|
|
261
|
-
/messages resulted in\s*(\d+)\s*tokens?/i
|
|
271
|
+
/messages resulted in\s*(\d+)\s*tokens?/i,
|
|
272
|
+
/\bthe input \((\d+) tokens?\) is longer than the model's context length \(\d+ tokens?\)/i,
|
|
273
|
+
/\(\s*(\d+)\s+in the messages,\s*\d+\s+in the completion\s*\)/i
|
|
262
274
|
];
|
|
263
275
|
for (const pattern of patterns) {
|
|
264
276
|
const raw = message.match(pattern)?.[1];
|
|
@@ -3031,27 +3043,22 @@ function askAnswerLines(text) {
|
|
|
3031
3043
|
return extractAskAnswerNotices(text).map(formatAskAnswerNotice);
|
|
3032
3044
|
}
|
|
3033
3045
|
|
|
3034
|
-
// ../plugin/src/hooks/magic-context/
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3046
|
+
// ../plugin/src/hooks/magic-context/compartment-commit-hashes.ts
|
|
3047
|
+
function rawCommitHashes(value) {
|
|
3048
|
+
if (typeof value === "string") {
|
|
3049
|
+
return Array.from(value.matchAll(/\b[0-9a-f]{7,40}\b/gi), (match) => match[0].toLowerCase());
|
|
3050
|
+
}
|
|
3051
|
+
if (value === null || typeof value !== "object")
|
|
3052
|
+
return [];
|
|
3053
|
+
return Object.values(value).flatMap(rawCommitHashes);
|
|
3054
|
+
}
|
|
3055
|
+
function removeUnsupportedCommitHashes(text, supported) {
|
|
3056
|
+
return text.replace(/`?\b([0-9a-f]{7,40})\b`?/gi, (token, hash) => {
|
|
3057
|
+
const normalized = hash.toLowerCase();
|
|
3058
|
+
if (!/[a-f]/.test(normalized))
|
|
3059
|
+
return token;
|
|
3060
|
+
return Array.from(supported).some((source) => source.startsWith(normalized)) ? token : "";
|
|
3041
3061
|
});
|
|
3042
|
-
return target;
|
|
3043
|
-
}
|
|
3044
|
-
function isHostUnservedRow(value) {
|
|
3045
|
-
return typeof value === "object" && value !== null && value[HOST_UNSERVED_ROW] === true;
|
|
3046
|
-
}
|
|
3047
|
-
function retreatPastHostUnservedRows(messages, exclusiveEnd, floor) {
|
|
3048
|
-
if (!messages.some(isHostUnservedRow))
|
|
3049
|
-
return exclusiveEnd;
|
|
3050
|
-
const byOrdinal = new Map(messages.map((message) => [message.ordinal, message]));
|
|
3051
|
-
let end = exclusiveEnd;
|
|
3052
|
-
while (end - 1 >= floor && isHostUnservedRow(byOrdinal.get(end - 1)))
|
|
3053
|
-
end -= 1;
|
|
3054
|
-
return end;
|
|
3055
3062
|
}
|
|
3056
3063
|
|
|
3057
3064
|
// ../plugin/src/hooks/magic-context/read-session-true-raw-tokens.ts
|
|
@@ -3127,7 +3134,7 @@ function looksImageLike(part) {
|
|
|
3127
3134
|
const type = typeof part.type === "string" ? part.type.toLowerCase() : "";
|
|
3128
3135
|
const mime = typeof part.mime === "string" ? part.mime.toLowerCase() : "";
|
|
3129
3136
|
const mediaType = typeof part.mediaType === "string" ? part.mediaType.toLowerCase() : "";
|
|
3130
|
-
return type.includes("image") || mime.startsWith("image/") || mediaType.startsWith("image/") || part.image_url !== undefined || part.imageUrl !== undefined || part.image !== undefined;
|
|
3137
|
+
return type.includes("image") || mime.startsWith("image/") || mediaType.startsWith("image/") || part.image_url !== undefined || part.imageUrl !== undefined || part.image !== undefined || type.includes("file") && (typeof part.url === "string" && part.url.startsWith("data:image/") || typeof part.data === "string" && /^(?:data:image\/|\/9j\/|iVBORw0KGgo|R0lGOD)/.test(part.data));
|
|
3131
3138
|
}
|
|
3132
3139
|
function defaultImageTokenHeuristic(part) {
|
|
3133
3140
|
if (isRecord(part)) {
|
|
@@ -3491,7 +3498,7 @@ function buildTrueRawTokenIndex(sessionId, messages, options) {
|
|
|
3491
3498
|
} else {
|
|
3492
3499
|
const raw = tokenForMessage(message, options);
|
|
3493
3500
|
const seed = options.calibration;
|
|
3494
|
-
total = seed ? (raw.toolInput + raw.toolOutput) * seed.toolsRatio + (raw.text + raw.reasoning + raw.other) * seed.proseRatio + raw.image : raw.total;
|
|
3501
|
+
total = options.measure === "summary-removed" ? raw.text * (seed?.proseRatio ?? 1) + raw.toolInput * (seed?.toolsRatio ?? 1) : seed ? (raw.toolInput + raw.toolOutput) * seed.toolsRatio + (raw.text + raw.reasoning + raw.other) * seed.proseRatio + raw.image : raw.total;
|
|
3495
3502
|
}
|
|
3496
3503
|
tokensByOrdinal.set(message.ordinal, total);
|
|
3497
3504
|
idsByOrdinal.set(message.ordinal, message.id);
|
|
@@ -4282,6 +4289,13 @@ function resolveHostServedBoundaryId2(sessionId, messageId) {
|
|
|
4282
4289
|
function hasRawMessageProvider2(sessionId) {
|
|
4283
4290
|
return sessionProviders.has(sessionId);
|
|
4284
4291
|
}
|
|
4292
|
+
function rawMessageWorkerSource2(sessionId) {
|
|
4293
|
+
return sessionProviders.get(sessionId)?.provider.workerSource;
|
|
4294
|
+
}
|
|
4295
|
+
function rawMessageOffThreadRangeReader2(sessionId) {
|
|
4296
|
+
const provider = sessionProviders.get(sessionId)?.provider;
|
|
4297
|
+
return provider?.readMessageIdOrdinalsForRangeOffThread?.bind(provider);
|
|
4298
|
+
}
|
|
4285
4299
|
function setRawMessageProvider2(sessionId, provider) {
|
|
4286
4300
|
const current = sessionProviders.get(sessionId);
|
|
4287
4301
|
const registration = current?.provider === provider ? current : { provider, scopes: 0 };
|
|
@@ -5068,7 +5082,12 @@ function readSessionChunk2(sessionId, tokenBudget, offset = 1, eligibleEndOrdina
|
|
|
5068
5082
|
}
|
|
5069
5083
|
if (msg.ordinal < startOrdinal)
|
|
5070
5084
|
continue;
|
|
5071
|
-
const
|
|
5085
|
+
const commitHashes = rawCommitHashes(msg.parts);
|
|
5086
|
+
const meta = {
|
|
5087
|
+
ordinal: msg.ordinal,
|
|
5088
|
+
messageId: msg.id
|
|
5089
|
+
};
|
|
5090
|
+
Object.defineProperty(meta, "commitHashes", { value: commitHashes });
|
|
5072
5091
|
if (isHostUnservedRow(msg))
|
|
5073
5092
|
markHostUnservedRow(meta);
|
|
5074
5093
|
if (msg.role === "system") {
|
|
@@ -5246,4 +5265,4 @@ function readRawSessionSeedTail2(sessionId, boundaryId, onQuery) {
|
|
|
5246
5265
|
});
|
|
5247
5266
|
}
|
|
5248
5267
|
|
|
5249
|
-
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, getCompactionMarkerPublicationState, compareAndSetCompactionMarkerPublicationState, getDeferredClearedCompactionMarkerState, 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,
|
|
5268
|
+
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, getCompactionMarkerPublicationState, compareAndSetCompactionMarkerPublicationState, getDeferredClearedCompactionMarkerState, 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, removeUnsupportedCommitHashes, 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, rawMessageWorkerSource2, rawMessageOffThreadRangeReader2, 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 };
|
|
@@ -1,48 +1,3 @@
|
|
|
1
|
-
// ../plugin/src/shared/bounded-session-map.ts
|
|
2
|
-
class BoundedSessionMap {
|
|
3
|
-
maxEntries;
|
|
4
|
-
store = new Map;
|
|
5
|
-
constructor(maxEntries) {
|
|
6
|
-
if (!Number.isFinite(maxEntries) || maxEntries < 1) {
|
|
7
|
-
throw new Error(`BoundedSessionMap: maxEntries must be >= 1, got ${maxEntries}`);
|
|
8
|
-
}
|
|
9
|
-
this.maxEntries = maxEntries;
|
|
10
|
-
}
|
|
11
|
-
get(sessionId) {
|
|
12
|
-
const value = this.store.get(sessionId);
|
|
13
|
-
if (value === undefined)
|
|
14
|
-
return;
|
|
15
|
-
this.store.delete(sessionId);
|
|
16
|
-
this.store.set(sessionId, value);
|
|
17
|
-
return value;
|
|
18
|
-
}
|
|
19
|
-
peek(sessionId) {
|
|
20
|
-
return this.store.get(sessionId);
|
|
21
|
-
}
|
|
22
|
-
has(sessionId) {
|
|
23
|
-
return this.store.has(sessionId);
|
|
24
|
-
}
|
|
25
|
-
set(sessionId, value) {
|
|
26
|
-
if (this.store.has(sessionId)) {
|
|
27
|
-
this.store.delete(sessionId);
|
|
28
|
-
} else if (this.store.size >= this.maxEntries) {
|
|
29
|
-
const oldest = this.store.keys().next().value;
|
|
30
|
-
if (oldest !== undefined)
|
|
31
|
-
this.store.delete(oldest);
|
|
32
|
-
}
|
|
33
|
-
this.store.set(sessionId, value);
|
|
34
|
-
}
|
|
35
|
-
delete(sessionId) {
|
|
36
|
-
return this.store.delete(sessionId);
|
|
37
|
-
}
|
|
38
|
-
clear() {
|
|
39
|
-
this.store.clear();
|
|
40
|
-
}
|
|
41
|
-
get size() {
|
|
42
|
-
return this.store.size;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
1
|
// ../plugin/src/shared/opencode-db-path.ts
|
|
47
2
|
import { existsSync, readdirSync, statSync } from "node:fs";
|
|
48
3
|
import { homedir } from "node:os";
|
|
@@ -220,126 +175,4 @@ function claimOpenCodeDbDiagnosticOnce(surface, resolution) {
|
|
|
220
175
|
return true;
|
|
221
176
|
}
|
|
222
177
|
|
|
223
|
-
|
|
224
|
-
var ACTIVITY_WINDOW_MS = 10 * 60000;
|
|
225
|
-
var MAX_ACTIVITY_GAP_MS = 60000;
|
|
226
|
-
var WINDOWED_SINCE_KEY = "tool_definition_measurements:windowed_since";
|
|
227
|
-
var routes = new Map;
|
|
228
|
-
var sessionFlights = new BoundedSessionMap(1000);
|
|
229
|
-
var persistenceDb = null;
|
|
230
|
-
var windowedSince;
|
|
231
|
-
var boundAt = 0;
|
|
232
|
-
var cachedInsertStmt = null;
|
|
233
|
-
var cachedDeleteStmt = null;
|
|
234
|
-
function agentKey(agentName) {
|
|
235
|
-
return agentName && agentName.length > 0 ? agentName : "default";
|
|
236
|
-
}
|
|
237
|
-
function keyFor(providerID, modelID, agentName) {
|
|
238
|
-
return `${providerID}/${modelID}/${agentKey(agentName)}`;
|
|
239
|
-
}
|
|
240
|
-
function routeFor(providerID, modelID, agentName) {
|
|
241
|
-
const key = keyFor(providerID, modelID, agentName);
|
|
242
|
-
let route = routes.get(key);
|
|
243
|
-
if (!route) {
|
|
244
|
-
route = {
|
|
245
|
-
providerID,
|
|
246
|
-
modelID,
|
|
247
|
-
agentName: agentKey(agentName),
|
|
248
|
-
tools: new Map,
|
|
249
|
-
live: false,
|
|
250
|
-
clock: 0,
|
|
251
|
-
lastWallAt: Date.now(),
|
|
252
|
-
oldestFireAt: Number.POSITIVE_INFINITY,
|
|
253
|
-
retired: new Map,
|
|
254
|
-
legacyRows: new Set
|
|
255
|
-
};
|
|
256
|
-
routes.set(key, route);
|
|
257
|
-
}
|
|
258
|
-
return { key, route };
|
|
259
|
-
}
|
|
260
|
-
function advanceClock(route) {
|
|
261
|
-
const now = Date.now();
|
|
262
|
-
const gap = Math.min(Math.max(now - route.lastWallAt, 0), MAX_ACTIVITY_GAP_MS);
|
|
263
|
-
route.clock += gap;
|
|
264
|
-
route.lastWallAt = Math.max(route.lastWallAt, now);
|
|
265
|
-
return route.clock;
|
|
266
|
-
}
|
|
267
|
-
function readWindowedSince(db) {
|
|
268
|
-
try {
|
|
269
|
-
const row = db.prepare("SELECT value FROM schema_migrations_meta WHERE key = ?").get(WINDOWED_SINCE_KEY);
|
|
270
|
-
if (!row)
|
|
271
|
-
return;
|
|
272
|
-
const value = Number(row.value);
|
|
273
|
-
return Number.isFinite(value) ? value : undefined;
|
|
274
|
-
} catch {
|
|
275
|
-
return;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
function markWindowed() {
|
|
279
|
-
if (windowedSince !== undefined || !persistenceDb)
|
|
280
|
-
return;
|
|
281
|
-
try {
|
|
282
|
-
persistenceDb.prepare("INSERT OR IGNORE INTO schema_migrations_meta (key, value) VALUES (?, ?)").run(WINDOWED_SINCE_KEY, String(boundAt));
|
|
283
|
-
windowedSince = readWindowedSince(persistenceDb);
|
|
284
|
-
} catch {}
|
|
285
|
-
}
|
|
286
|
-
function setDatabase(db) {
|
|
287
|
-
const rebound = persistenceDb !== null && persistenceDb !== db;
|
|
288
|
-
persistenceDb = db;
|
|
289
|
-
boundAt = Date.now();
|
|
290
|
-
cachedInsertStmt = null;
|
|
291
|
-
cachedDeleteStmt = null;
|
|
292
|
-
if (rebound) {
|
|
293
|
-
for (const route of routes.values()) {
|
|
294
|
-
for (const slot of route.tools.values()) {
|
|
295
|
-
slot.persisted = false;
|
|
296
|
-
slot.writeFailedAt = undefined;
|
|
297
|
-
}
|
|
298
|
-
for (const retired of route.retired.values())
|
|
299
|
-
retired.rowKept = false;
|
|
300
|
-
route.legacyRows.clear();
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
windowedSince = readWindowedSince(db);
|
|
304
|
-
if (windowedSince !== undefined)
|
|
305
|
-
return;
|
|
306
|
-
try {
|
|
307
|
-
if (!db.prepare("SELECT 1 FROM tool_definition_measurements LIMIT 1").get())
|
|
308
|
-
markWindowed();
|
|
309
|
-
} catch {}
|
|
310
|
-
}
|
|
311
|
-
function loadToolDefinitionMeasurements(db) {
|
|
312
|
-
let rows = [];
|
|
313
|
-
try {
|
|
314
|
-
rows = db.prepare("SELECT provider_id, model_id, agent_name, tool_id, token_count, recorded_at FROM tool_definition_measurements").all();
|
|
315
|
-
} catch {
|
|
316
|
-
return;
|
|
317
|
-
}
|
|
318
|
-
const since = readWindowedSince(db);
|
|
319
|
-
const loadedAt = new Map;
|
|
320
|
-
for (const row of rows) {
|
|
321
|
-
const { route } = routeFor(row.provider_id, row.model_id, row.agent_name);
|
|
322
|
-
if (route.live)
|
|
323
|
-
continue;
|
|
324
|
-
let now = loadedAt.get(route);
|
|
325
|
-
if (now === undefined) {
|
|
326
|
-
now = advanceClock(route);
|
|
327
|
-
loadedAt.set(route, now);
|
|
328
|
-
}
|
|
329
|
-
const legacy = since === undefined || !(Number(row.recorded_at) >= since);
|
|
330
|
-
route.tools.set(row.tool_id, {
|
|
331
|
-
tokens: row.token_count,
|
|
332
|
-
fingerprint: undefined,
|
|
333
|
-
lastFireAt: now,
|
|
334
|
-
legacy,
|
|
335
|
-
persisted: !legacy
|
|
336
|
-
});
|
|
337
|
-
route.oldestFireAt = Math.min(route.oldestFireAt, now);
|
|
338
|
-
if (legacy)
|
|
339
|
-
route.legacyRows.add(row.tool_id);
|
|
340
|
-
else
|
|
341
|
-
route.legacyRows.delete(row.tool_id);
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
export { BoundedSessionMap, resolveOpenCodeDbPath, hasV1MessageTables, assertOpenCodeStoreGeneration, openCodeDbPathExists, getOpenCodeDbProbeDescriptions, recordOpenCodeDbReadFailure, clearOpenCodeDbReadFailure, claimOpenCodeDbDiagnosticOnce, setDatabase, loadToolDefinitionMeasurements };
|
|
178
|
+
export { resolveOpenCodeDbPath, hasV1MessageTables, assertOpenCodeStoreGeneration, openCodeDbPathExists, getOpenCodeDbProbeDescriptions, recordOpenCodeDbReadFailure, clearOpenCodeDbReadFailure, claimOpenCodeDbDiagnosticOnce };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// ../plugin/src/shared/reusable-worker-entry.ts
|
|
2
|
+
import { EventEmitter } from "node:events";
|
|
3
|
+
import { parentPort, workerData } from "node:worker_threads";
|
|
4
|
+
function serveWorkerJobs(run, autoClose = true) {
|
|
5
|
+
if (!parentPort)
|
|
6
|
+
throw new Error("worker requires a parent port");
|
|
7
|
+
const parent = parentPort;
|
|
8
|
+
if (!workerData?.reusableWorker) {
|
|
9
|
+
Promise.resolve(run(workerData, parent)).catch(rethrow);
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
let active;
|
|
13
|
+
parent.on("message", (message) => {
|
|
14
|
+
if (!("start" in message)) {
|
|
15
|
+
if (active?.id === message.jobId)
|
|
16
|
+
active.port.emit("message", message.value);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (active)
|
|
20
|
+
throw new Error("reusable worker received overlapping jobs");
|
|
21
|
+
const id = message.jobId;
|
|
22
|
+
let closed = false;
|
|
23
|
+
const port = Object.assign(new EventEmitter, {
|
|
24
|
+
postMessage(value, transferList) {
|
|
25
|
+
if (!closed)
|
|
26
|
+
parent.postMessage({ jobId: id, value }, transferList);
|
|
27
|
+
},
|
|
28
|
+
close() {
|
|
29
|
+
if (closed)
|
|
30
|
+
return;
|
|
31
|
+
closed = true;
|
|
32
|
+
port.removeAllListeners();
|
|
33
|
+
active = undefined;
|
|
34
|
+
parent.postMessage({
|
|
35
|
+
jobId: id,
|
|
36
|
+
finished: true,
|
|
37
|
+
code: Number(process.exitCode) || 0
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
active = { id, port };
|
|
42
|
+
try {
|
|
43
|
+
Promise.resolve(run(message.start, port)).then(() => {
|
|
44
|
+
if (autoClose)
|
|
45
|
+
port.close();
|
|
46
|
+
}).catch(rethrow);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
rethrow(error);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
function rethrow(error) {
|
|
53
|
+
setTimeout(() => {
|
|
54
|
+
throw error;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export { serveWorkerJobs };
|