@cortexkit/opencode-magic-context 0.49.5 → 0.49.7
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 +10 -7
- package/dist/{compaction-marker-candidates-dd638ypn.js → compaction-marker-candidates-a0edbqrr.js} +2 -2
- package/dist/compaction-marker-candidates-worker.js +2 -2
- package/dist/{conflict-warning-hook-ae8nmv7c.js → conflict-warning-hook-myk5hbt9.js} +5 -5
- package/dist/{context-yg023c5r.js → context-ffr7e0g7.js} +46 -34
- package/dist/{embedding-backfill-aj488s8x.js → embedding-backfill-re16xncd.js} +6 -6
- package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/hidden-single-shot.d.ts +6 -3
- package/dist/features/magic-context/dreamer/hidden-single-shot.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/map-memories-prompt.d.ts +7 -1
- package/dist/features/magic-context/dreamer/map-memories-prompt.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/map-memories.d.ts +2 -2
- package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/primer-seed.d.ts +2 -0
- package/dist/features/magic-context/dreamer/primer-seed.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/refresh-primers.d.ts +2 -2
- package/dist/features/magic-context/storage-clone.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta-persisted.d.ts +10 -3
- package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta-session.d.ts.map +1 -1
- package/dist/features/magic-context/storage-replay-document.d.ts +4 -0
- package/dist/features/magic-context/storage-replay-document.d.ts.map +1 -1
- package/dist/hooks/magic-context/apply-operations.d.ts +7 -0
- package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
- package/dist/hooks/magic-context/heuristic-cleanup.d.ts.map +1 -1
- package/dist/hooks/magic-context/history-boundary-repair.d.ts.map +1 -1
- package/dist/hooks/magic-context/lkg-persist.d.ts.map +1 -1
- package/dist/hooks/magic-context/note-nudger.d.ts +5 -3
- package/dist/hooks/magic-context/note-nudger.d.ts.map +1 -1
- package/dist/hooks/magic-context/postprocess-read-cache.d.ts.map +1 -1
- package/dist/hooks/magic-context/read-session-chunk.d.ts +7 -0
- package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
- package/dist/hooks/magic-context/replay-committed-drops.d.ts +9 -0
- package/dist/hooks/magic-context/replay-committed-drops.d.ts.map +1 -0
- package/dist/hooks/magic-context/rust-lkg-freeze-registry.d.ts +2 -2
- package/dist/hooks/magic-context/rust-lkg-freeze-registry.d.ts.map +1 -1
- package/dist/hooks/magic-context/rust-mode-transform.d.ts +3 -0
- package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
- package/dist/hooks/magic-context/rust-served-raw.d.ts +29 -0
- package/dist/hooks/magic-context/rust-served-raw.d.ts.map +1 -0
- package/dist/hooks/magic-context/strip-content.d.ts +23 -24
- package/dist/hooks/magic-context/strip-content.d.ts.map +1 -1
- package/dist/hooks/magic-context/tag-messages.d.ts +2 -0
- package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
- package/dist/hooks/magic-context/tool-drop-target.d.ts +2 -0
- package/dist/hooks/magic-context/tool-drop-target.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
- package/dist/{index-m4p77myp.js → index-0gyq3djm.js} +1 -1
- package/dist/{index-jpm52v9x.js → index-37q80veb.js} +1 -1
- package/dist/{index-znzgze2v.js → index-4btknbqh.js} +9 -8
- package/dist/{index-v4bqjy56.js → index-5tbvdff4.js} +59 -28
- package/dist/{index-7jzrrxap.js → index-9yyqq3mm.js} +1 -1
- package/dist/{index-qvr78ej6.js → index-a8acx4gc.js} +2 -2
- package/dist/{index-gcdb3rqw.js → index-ax2jhztn.js} +1 -1
- package/dist/{index-2mqps3c1.js → index-ebnngykq.js} +145 -94
- package/dist/{index-41gqa557.js → index-g8qbdb03.js} +1 -1
- package/dist/{index-fst3t0d9.js → index-j58gqrn2.js} +65 -65
- package/dist/{index-xfbfrngb.js → index-j5hce1ab.js} +2 -2
- package/dist/{index-kb9nn0a0.js → index-j8epsc0g.js} +35 -14
- package/dist/{index-7zg9dvx0.js → index-n5a170gs.js} +227 -38
- package/dist/{index-fjtgekd4.js → index-n7kwfw2r.js} +4 -4
- package/dist/{index-dd18gej8.js → index-rwmpkss5.js} +3 -3
- package/dist/{index-7w18gg78.js → index-rzmjkdd6.js} +1 -1
- package/dist/{index-c0b01zrc.js → index-sf94at64.js} +3 -3
- package/dist/{index-yxawqmdd.js → index-sh91t19a.js} +1 -1
- package/dist/{index-x3y1np1h.js → index-tagss15p.js} +857 -125
- package/dist/{index-yqps2zsv.js → index-tmtty2x5.js} +1 -1
- package/dist/{index-bhk710rw.js → index-vt4sf4ep.js} +1 -1
- package/dist/{index-6m7rdv7y.js → index-w4mw92w3.js} +1 -1
- package/dist/{index-7ndnvw7a.js → index-w6bd03dc.js} +1 -1
- package/dist/{index-p2hs3rps.js → index-w6vr754t.js} +4 -4
- package/dist/{index-3wckxwfp.js → index-wq16ahsn.js} +5 -5
- package/dist/index.js +36 -36
- package/dist/{message-index-bounded-pv6ct15d.js → message-index-bounded-04rycpx4.js} +9 -9
- package/dist/{message-index-jqa7qd0s.js → message-index-rqtse28y.js} +9 -9
- package/dist/{message-time-backfill-8x06r9kx.js → message-time-backfill-a5ytnp53.js} +1 -1
- package/dist/migration-worker.js +6 -6
- package/dist/plugin/messages-transform.d.ts.map +1 -1
- package/dist/{project-embedding-registry-fcmszatg.js → project-embedding-registry-k0sd9k7v.js} +5 -5
- package/dist/raw-ordinal-warmup-worker.js +17 -15
- package/dist/{read-session-chunk-cwgjwjd0.js → read-session-chunk-h1btx938.js} +7 -5
- package/dist/{read-session-raw-z38cn0as.js → read-session-raw-vdf4wh78.js} +2 -2
- package/dist/{recomp-orchestrator-xw9wt5bm.js → recomp-orchestrator-trcgmm23.js} +20 -20
- package/dist/{search-v1t47s2q.js → search-3rbdx6hw.js} +16 -16
- package/dist/{send-session-notification-yp9m5g4p.js → send-session-notification-2tp44tfa.js} +4 -4
- package/dist/shared/processed-image-eligibility.d.ts +22 -0
- package/dist/shared/processed-image-eligibility.d.ts.map +1 -0
- package/dist/shared/recovery-reasoning-prefix.d.ts +9 -0
- package/dist/shared/recovery-reasoning-prefix.d.ts.map +1 -0
- package/dist/shared/sqlite.d.ts +1 -1
- package/dist/shared/sqlite.d.ts.map +1 -1
- package/dist/shared/tag-transcript.d.ts +9 -0
- package/dist/shared/tag-transcript.d.ts.map +1 -1
- package/dist/{sqlite-mhjkerzq.js → sqlite-j3tvg8r0.js} +1 -1
- package/dist/{storage-memory-07fx57k6.js → storage-memory-8168bgef.js} +2 -2
- package/dist/{storage-tags-0ssbmzg9.js → storage-tags-61z5j2f9.js} +2 -2
- package/dist/tools/ctx-expand/search-archive.d.ts +4 -0
- package/dist/tools/ctx-expand/search-archive.d.ts.map +1 -0
- package/dist/tools/ctx-expand/tools.d.ts.map +1 -1
- package/dist/{transform-postprocess-phase-ttra554y.js → transform-postprocess-phase-7qts7h54.js} +20 -20
- package/dist/v2/auto-search-worker.js +10 -7
- package/dist/v2/{compaction-marker-candidates-1s21e2fz.js → compaction-marker-candidates-6nypjkpf.js} +2 -2
- package/dist/v2/compaction-marker-candidates-worker.js +2 -2
- package/dist/v2/{context-6en6a8ar.js → context-xq4rtywr.js} +1019 -233
- package/dist/v2/{embedding-backfill-9hbkfvnz.js → embedding-backfill-xd9ygzgd.js} +6 -6
- package/dist/v2/hooks/payload.d.ts.map +1 -1
- package/dist/v2/{message-index-h8ssgq3q.js → message-index-8e5z2xx8.js} +9 -9
- package/dist/v2/{message-index-bounded-c0810p5w.js → message-index-bounded-5vh1h2g7.js} +9 -9
- package/dist/v2/{message-time-backfill-cje68egj.js → message-time-backfill-2z365239.js} +1 -1
- package/dist/v2/migration-worker.js +6 -6
- package/dist/v2/{project-embedding-registry-42th7k1z.js → project-embedding-registry-b77awytr.js} +5 -5
- package/dist/v2/raw-ordinal-warmup-worker.js +17 -15
- package/dist/v2/{read-session-chunk-n86v9xfg.js → read-session-chunk-4sat83cx.js} +7 -5
- package/dist/v2/{read-session-raw-3b3ehga4.js → read-session-raw-a3hw9jsp.js} +2 -2
- package/dist/v2/{recomp-orchestrator-krvsbnds.js → recomp-orchestrator-n11zv1f1.js} +19 -19
- package/dist/v2/{search-048v8y02.js → search-mvgqtkkz.js} +16 -16
- package/dist/v2/{send-session-notification-a4h2azxa.js → send-session-notification-ppgc8qdz.js} +4 -4
- package/dist/v2/{server-cvgn49tr.js → server-1rfgbjfn.js} +1 -1
- package/dist/v2/{server-3bc6k4k4.js → server-7srtwsa4.js} +5 -5
- package/dist/v2/{server-7jzrrxap.js → server-9yyqq3mm.js} +1 -1
- package/dist/v2/{server-2htmbqbv.js → server-brhj8qtd.js} +1 -1
- package/dist/v2/{server-3dqjhchy.js → server-dd0nja67.js} +1 -1
- package/dist/v2/{server-8wcf79fe.js → server-fpqe39as.js} +1 -1
- package/dist/v2/{server-cjz51jm2.js → server-fw31krgq.js} +3 -3
- package/dist/v2/{server-4n2tknpc.js → server-gtv9wbhq.js} +227 -38
- package/dist/v2/{server-8pqnnmf9.js → server-hcvcxzx7.js} +2 -2
- package/dist/v2/{server-kb9nn0a0.js → server-j8epsc0g.js} +35 -14
- package/dist/v2/{server-rygvffsf.js → server-jdwd03ep.js} +4 -4
- package/dist/v2/{server-q6j5dasr.js → server-kdrezdy0.js} +1 -1
- package/dist/v2/{server-e2v4m8xe.js → server-mv1w7t6z.js} +61 -30
- package/dist/v2/{server-hetyb88z.js → server-nfan6zb6.js} +65 -65
- package/dist/v2/{server-4enr7s6x.js → server-qcw43339.js} +1 -1
- package/dist/v2/{server-5zrpr764.js → server-sy4b1sra.js} +1 -1
- package/dist/v2/{server-9a6v0wth.js → server-v4fwha43.js} +9 -8
- package/dist/v2/{server-pcygfdbs.js → server-w3zeywp1.js} +1 -1
- package/dist/v2/{server-czb2rkpk.js → server-wkdgjjch.js} +1 -1
- package/dist/v2/{server-9290a1mb.js → server-x08d1xf3.js} +1 -1
- package/dist/v2/server.js +4 -4
- package/dist/v2/{sqlite-mhjkerzq.js → sqlite-j3tvg8r0.js} +1 -1
- package/dist/v2/{storage-memory-07fx57k6.js → storage-memory-8168bgef.js} +2 -2
- package/dist/v2/{storage-tags-3a4cavqb.js → storage-tags-j2fzq3sw.js} +2 -2
- package/dist/v2/{wrapup-orchestrator-r2v7kgy3.js → wrapup-orchestrator-s92ebfzv.js} +19 -19
- package/dist/{wrapup-orchestrator-z7agncp8.js → wrapup-orchestrator-df61jmz9.js} +21 -21
- package/package.json +3 -3
- package/src/shared/processed-image-eligibility.test.ts +68 -0
- package/src/shared/processed-image-eligibility.ts +41 -0
- package/src/shared/processed-image-position-review.json +20 -0
- package/src/shared/processed-image-position-review.test.ts +19 -0
- package/src/shared/recovery-reasoning-prefix.test.ts +34 -0
- package/src/shared/recovery-reasoning-prefix.ts +35 -0
- package/src/shared/sqlite-acquisition-routing.test.ts +4 -3
- package/src/shared/sqlite-foreground-wait.test.ts +140 -0
- package/src/shared/sqlite-pass-scope.test.ts +4 -4
- package/src/shared/sqlite-writer-diagnostics.test.ts +31 -0
- package/src/shared/sqlite.ts +64 -23
- package/src/shared/tag-transcript.ts +118 -0
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
TAG_SELECT_COLUMNS2,
|
|
24
24
|
getCandidateToolOwners2,
|
|
25
25
|
pickNearestPriorOwner2
|
|
26
|
-
} from "./index-
|
|
26
|
+
} from "./index-tmtty2x5.js";
|
|
27
27
|
import {
|
|
28
28
|
OMO_INTERNAL_INITIATOR_MARKER,
|
|
29
29
|
isSystemDirective,
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
} from "./index-qx53vezw.js";
|
|
44
44
|
import {
|
|
45
45
|
prepareCachedStatement2
|
|
46
|
-
} from "./index-
|
|
46
|
+
} from "./index-j8epsc0g.js";
|
|
47
47
|
import {
|
|
48
48
|
stableStringify
|
|
49
49
|
} from "./index-1bt88epp.js";
|
|
@@ -68,13 +68,13 @@ import {
|
|
|
68
68
|
readRawSeedTailFromDb2,
|
|
69
69
|
readRawSessionBoundaryEndpointsFromDb2,
|
|
70
70
|
prewarmRawSessionOrdinalsForDb
|
|
71
|
-
} from "./index-
|
|
71
|
+
} from "./index-37q80veb.js";
|
|
72
72
|
import {
|
|
73
73
|
openCodeDbExists,
|
|
74
74
|
withReadOnlySessionDb,
|
|
75
75
|
getRawSessionMessageCountFromDb,
|
|
76
76
|
getMessageTimesFromOpenCodeDb
|
|
77
|
-
} from "./index-
|
|
77
|
+
} from "./index-a8acx4gc.js";
|
|
78
78
|
import {
|
|
79
79
|
getToolDefinitionMeasurementSignature,
|
|
80
80
|
getLargestMeasuredToolDefinitionTokens,
|
|
@@ -1946,8 +1946,25 @@ function clearCachedM0M1(db, sessionId) {
|
|
|
1946
1946
|
}
|
|
1947
1947
|
|
|
1948
1948
|
// src/features/magic-context/storage-replay-document.ts
|
|
1949
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
1949
1950
|
var CAS_RETRY_LIMIT = 5;
|
|
1950
1951
|
var MISSING_REPLAY_DOCUMENT_COLUMN = Symbol("missing replay document column");
|
|
1952
|
+
var replaySnapshots = new AsyncLocalStorage;
|
|
1953
|
+
async function withReplayEnvelopeSnapshot(db, sessionId, work) {
|
|
1954
|
+
const snapshot = { db, sessionId, active: true, loaded: false };
|
|
1955
|
+
return replaySnapshots.run(snapshot, async () => {
|
|
1956
|
+
try {
|
|
1957
|
+
return await work();
|
|
1958
|
+
} finally {
|
|
1959
|
+
snapshot.active = false;
|
|
1960
|
+
}
|
|
1961
|
+
});
|
|
1962
|
+
}
|
|
1963
|
+
function invalidateReplayEnvelopeSnapshot(db, sessionId) {
|
|
1964
|
+
const snapshot = replaySnapshots.getStore();
|
|
1965
|
+
if (snapshot?.db === db && snapshot.sessionId === sessionId)
|
|
1966
|
+
snapshot.loaded = false;
|
|
1967
|
+
}
|
|
1951
1968
|
function isRustMarkerAdmissionFenced(db, sessionId) {
|
|
1952
1969
|
const row = db.prepare("SELECT COALESCE(json_extract(NULLIF(trailing_blank_decisions, ''), '$.rustMarkerAdmissionFence'), 0) AS fenced FROM session_meta WHERE session_id=?").get(sessionId);
|
|
1953
1970
|
return row?.fenced === 1;
|
|
@@ -2070,16 +2087,30 @@ function readDecisionRows(db, sessionId, messageIds) {
|
|
|
2070
2087
|
return db.prepare(`SELECT message_id, decision FROM session_replay_decisions
|
|
2071
2088
|
WHERE session_id = ? AND message_id IN (SELECT value FROM json_each(?))`).all(sessionId, JSON.stringify(messageIds));
|
|
2072
2089
|
}
|
|
2073
|
-
function readRawReplayDocument(db, sessionId) {
|
|
2090
|
+
function readRawReplayDocument(db, sessionId, fresh = false) {
|
|
2091
|
+
const snapshot = replaySnapshots.getStore();
|
|
2092
|
+
const reusable = !fresh && snapshot?.active && snapshot.db === db && snapshot.sessionId === sessionId;
|
|
2093
|
+
if (reusable && snapshot.loaded)
|
|
2094
|
+
return snapshot.raw;
|
|
2074
2095
|
try {
|
|
2075
2096
|
const row = db.prepare("SELECT trailing_blank_decisions FROM session_meta WHERE session_id = ?").get(sessionId);
|
|
2076
2097
|
const raw = row?.trailing_blank_decisions;
|
|
2077
|
-
if (raw === null || raw === undefined || typeof raw === "string")
|
|
2098
|
+
if (raw === null || raw === undefined || typeof raw === "string") {
|
|
2099
|
+
if (reusable) {
|
|
2100
|
+
snapshot.raw = raw;
|
|
2101
|
+
snapshot.loaded = true;
|
|
2102
|
+
}
|
|
2078
2103
|
return raw;
|
|
2104
|
+
}
|
|
2079
2105
|
throw invalidReplayDocument("stored value is not text");
|
|
2080
2106
|
} catch (error) {
|
|
2081
|
-
if (isMissingReplayDocumentColumn(error))
|
|
2107
|
+
if (isMissingReplayDocumentColumn(error)) {
|
|
2108
|
+
if (reusable) {
|
|
2109
|
+
snapshot.raw = MISSING_REPLAY_DOCUMENT_COLUMN;
|
|
2110
|
+
snapshot.loaded = true;
|
|
2111
|
+
}
|
|
2082
2112
|
return MISSING_REPLAY_DOCUMENT_COLUMN;
|
|
2113
|
+
}
|
|
2083
2114
|
throw error;
|
|
2084
2115
|
}
|
|
2085
2116
|
}
|
|
@@ -2178,9 +2209,10 @@ function readAllTrailingBlankDecisions(db, sessionId, rawColumn) {
|
|
|
2178
2209
|
return decisions;
|
|
2179
2210
|
}
|
|
2180
2211
|
function updateReplayDocument(db, sessionId, mutate) {
|
|
2212
|
+
invalidateReplayEnvelopeSnapshot(db, sessionId);
|
|
2181
2213
|
let initial;
|
|
2182
2214
|
try {
|
|
2183
|
-
initial = readRawReplayDocument(db, sessionId);
|
|
2215
|
+
initial = readRawReplayDocument(db, sessionId, true);
|
|
2184
2216
|
} catch (error) {
|
|
2185
2217
|
if (error instanceof ReplayDocumentError)
|
|
2186
2218
|
return false;
|
|
@@ -2192,7 +2224,7 @@ function updateReplayDocument(db, sessionId, mutate) {
|
|
|
2192
2224
|
for (let attempt = 0;attempt < CAS_RETRY_LIMIT; attempt += 1) {
|
|
2193
2225
|
let raw;
|
|
2194
2226
|
try {
|
|
2195
|
-
raw = readRawReplayDocument(db, sessionId);
|
|
2227
|
+
raw = readRawReplayDocument(db, sessionId, true);
|
|
2196
2228
|
} catch (error) {
|
|
2197
2229
|
if (error instanceof ReplayDocumentError)
|
|
2198
2230
|
return false;
|
|
@@ -2247,7 +2279,7 @@ function updateTrailingBlankDecisions(db, sessionId, messageIds, decide) {
|
|
|
2247
2279
|
}
|
|
2248
2280
|
let initial;
|
|
2249
2281
|
try {
|
|
2250
|
-
initial = readRawReplayDocument(db, sessionId);
|
|
2282
|
+
initial = readRawReplayDocument(db, sessionId, true);
|
|
2251
2283
|
} catch (error) {
|
|
2252
2284
|
if (error instanceof ReplayDocumentError)
|
|
2253
2285
|
return false;
|
|
@@ -2259,7 +2291,7 @@ function updateTrailingBlankDecisions(db, sessionId, messageIds, decide) {
|
|
|
2259
2291
|
for (let attempt = 0;attempt < CAS_RETRY_LIMIT; attempt += 1) {
|
|
2260
2292
|
let columnDecisions;
|
|
2261
2293
|
try {
|
|
2262
|
-
const raw = readRawReplayDocument(db, sessionId);
|
|
2294
|
+
const raw = readRawReplayDocument(db, sessionId, true);
|
|
2263
2295
|
if (raw === MISSING_REPLAY_DOCUMENT_COLUMN)
|
|
2264
2296
|
return false;
|
|
2265
2297
|
columnDecisions = parseReplayDocument(raw).trailingBlank;
|
|
@@ -2314,6 +2346,7 @@ function updateTrailingBlankDecisions(db, sessionId, messageIds, decide) {
|
|
|
2314
2346
|
return false;
|
|
2315
2347
|
}
|
|
2316
2348
|
function writeReplayDocument(db, sessionId, doc) {
|
|
2349
|
+
invalidateReplayEnvelopeSnapshot(db, sessionId);
|
|
2317
2350
|
if (!hasReplayDecisionTable(db)) {
|
|
2318
2351
|
db.prepare("UPDATE session_meta SET trailing_blank_decisions = ? WHERE session_id = ?").run(serializeReplayDocument(doc), sessionId);
|
|
2319
2352
|
return;
|
|
@@ -3709,10 +3742,32 @@ function addStaleReduceStrippedIds(db, sessionId, ids) {
|
|
|
3709
3742
|
return false;
|
|
3710
3743
|
}
|
|
3711
3744
|
function getProcessedImageStrippedIds(db, sessionId) {
|
|
3745
|
+
return new Set(getProcessedImageMarkers(db, sessionId).keys());
|
|
3746
|
+
}
|
|
3747
|
+
function parseProcessedImageMarkers(raw) {
|
|
3748
|
+
if (!raw)
|
|
3749
|
+
return new Map;
|
|
3750
|
+
try {
|
|
3751
|
+
const parsed = JSON.parse(raw);
|
|
3752
|
+
const ids = Array.isArray(parsed) ? parsed : parsed?.ids;
|
|
3753
|
+
const textIds = new Set(Array.isArray(parsed?.textMarkerIds) ? parsed.textMarkerIds : []);
|
|
3754
|
+
return new Map((Array.isArray(ids) ? ids : []).filter((id) => typeof id === "string").map((id) => [id, textIds.has(id) ? "[image stripped]" : ""]));
|
|
3755
|
+
} catch {
|
|
3756
|
+
return new Map;
|
|
3757
|
+
}
|
|
3758
|
+
}
|
|
3759
|
+
function serializeProcessedImageMarkers(markers) {
|
|
3760
|
+
const ids = [...markers.keys()];
|
|
3761
|
+
if (ids.length === 0)
|
|
3762
|
+
return "";
|
|
3763
|
+
const textMarkerIds = ids.filter((id) => markers.get(id) === "[image stripped]");
|
|
3764
|
+
return JSON.stringify(textMarkerIds.length > 0 ? { ids, textMarkerIds } : ids);
|
|
3765
|
+
}
|
|
3766
|
+
function getProcessedImageMarkers(db, sessionId) {
|
|
3712
3767
|
const row = db.prepare("SELECT processed_image_stripped_ids FROM session_meta WHERE session_id = ?").get(sessionId);
|
|
3713
|
-
return
|
|
3768
|
+
return parseProcessedImageMarkers(row?.processed_image_stripped_ids);
|
|
3714
3769
|
}
|
|
3715
|
-
function addProcessedImageStrippedIds(db, sessionId, ids) {
|
|
3770
|
+
function addProcessedImageStrippedIds(db, sessionId, ids, marker = "") {
|
|
3716
3771
|
const add = [...ids];
|
|
3717
3772
|
if (add.length === 0)
|
|
3718
3773
|
return true;
|
|
@@ -3720,17 +3775,17 @@ function addProcessedImageStrippedIds(db, sessionId, ids) {
|
|
|
3720
3775
|
for (let attempt = 0;attempt < CAS_RETRY_LIMIT2; attempt += 1) {
|
|
3721
3776
|
const row = db.prepare("SELECT processed_image_stripped_ids FROM session_meta WHERE session_id = ?").get(sessionId);
|
|
3722
3777
|
const rawStored = row ? row.processed_image_stripped_ids ?? null : null;
|
|
3723
|
-
const current =
|
|
3778
|
+
const current = parseProcessedImageMarkers(rawStored);
|
|
3724
3779
|
let changed = false;
|
|
3725
3780
|
for (const id of add) {
|
|
3726
3781
|
if (!current.has(id)) {
|
|
3727
|
-
current.
|
|
3782
|
+
current.set(id, typeof marker === "string" ? marker : marker.get(id) ?? "");
|
|
3728
3783
|
changed = true;
|
|
3729
3784
|
}
|
|
3730
3785
|
}
|
|
3731
3786
|
if (!changed)
|
|
3732
3787
|
return true;
|
|
3733
|
-
const nextBlob =
|
|
3788
|
+
const nextBlob = serializeProcessedImageMarkers(current);
|
|
3734
3789
|
const result = db.prepare("UPDATE session_meta SET processed_image_stripped_ids = ? WHERE session_id = ? AND processed_image_stripped_ids IS ?").run(nextBlob, sessionId, rawStored);
|
|
3735
3790
|
if (result.changes > 0)
|
|
3736
3791
|
return true;
|
|
@@ -3784,7 +3839,8 @@ function loadPostprocessReplaySnapshot(db, sessionId) {
|
|
|
3784
3839
|
const thinkingBindingRecoveryTarget = row?.thinking_binding_recovery_target;
|
|
3785
3840
|
return {
|
|
3786
3841
|
staleReduceStrippedIds: new Set(parseStrippedBlob(row?.stale_reduce_stripped_ids)),
|
|
3787
|
-
processedImageStrippedIds: new Set(
|
|
3842
|
+
processedImageStrippedIds: new Set(parseProcessedImageMarkers(row?.processed_image_stripped_ids).keys()),
|
|
3843
|
+
processedImageMarkers: parseProcessedImageMarkers(row?.processed_image_stripped_ids),
|
|
3788
3844
|
strippedPlaceholderIds: new Set(placeholders.ids),
|
|
3789
3845
|
hiddenSeamPlaceholderIds: new Set(placeholders.hiddenSeamIds),
|
|
3790
3846
|
noteNudgeAnchors: parseJsonArray(row?.note_nudge_anchors, isValidNoteNudgeAnchor),
|
|
@@ -3828,15 +3884,22 @@ function getPendingPiCompactionMarkerState(db, sessionId) {
|
|
|
3828
3884
|
return parsed;
|
|
3829
3885
|
}
|
|
3830
3886
|
} catch {}
|
|
3831
|
-
db.prepare("UPDATE session_meta SET pending_pi_compaction_marker_state = NULL WHERE session_id = ? AND pending_pi_compaction_marker_state = ?").run(sessionId, raw);
|
|
3887
|
+
const cleared = db.prepare("UPDATE session_meta SET pending_pi_compaction_marker_state = NULL WHERE session_id = ? AND pending_pi_compaction_marker_state = ?").run(sessionId, raw);
|
|
3888
|
+
if (cleared.changes > 0)
|
|
3889
|
+
sessionLog2(sessionId, "Pi compaction-marker clear: reason=malformed-state");
|
|
3832
3890
|
return null;
|
|
3833
3891
|
}
|
|
3834
|
-
function clearPendingPiCompactionMarkerStateIf(db, sessionId, expected) {
|
|
3892
|
+
function clearPendingPiCompactionMarkerStateIf(db, sessionId, expected, reason = "explicit-clear") {
|
|
3835
3893
|
const expectedBlob = stableStringify(expected);
|
|
3836
3894
|
const result = db.prepare(`UPDATE session_meta SET pending_pi_compaction_marker_state = NULL
|
|
3837
3895
|
WHERE session_id = ? AND pending_pi_compaction_marker_state = ?`).run(sessionId, expectedBlob);
|
|
3896
|
+
if (result.changes > 0 && reason !== null)
|
|
3897
|
+
logPiCompactionMarkerClear(sessionId, expected, reason);
|
|
3838
3898
|
return result.changes > 0;
|
|
3839
3899
|
}
|
|
3900
|
+
function logPiCompactionMarkerClear(sessionId, marker, reason) {
|
|
3901
|
+
sessionLog2(sessionId, `Pi compaction-marker clear: reason=${reason} endMessageId=${marker.endMessageId} ordinal=${marker.ordinal} firstKeptEntryId=${marker.firstKeptEntryId ?? "<none>"}`);
|
|
3902
|
+
}
|
|
3840
3903
|
function getSessionsWithPendingMarker(db) {
|
|
3841
3904
|
const rows = db.prepare(`SELECT session_id FROM session_meta
|
|
3842
3905
|
WHERE pending_compaction_marker_state IS NOT NULL
|
|
@@ -4441,6 +4504,27 @@ function hasAnthropicReasoning(messages) {
|
|
|
4441
4504
|
});
|
|
4442
4505
|
}
|
|
4443
4506
|
|
|
4507
|
+
// src/shared/processed-image-eligibility.ts
|
|
4508
|
+
function createProcessedImageEligibility(messages, messageTagNumbers, options) {
|
|
4509
|
+
const ageTags = new Map;
|
|
4510
|
+
let nextTag;
|
|
4511
|
+
for (let index = messages.length - 1;index >= 0; index--) {
|
|
4512
|
+
const message = messages[index];
|
|
4513
|
+
const ownTag = messageTagNumbers.get(message);
|
|
4514
|
+
if (ownTag !== undefined && Number.isFinite(ownTag) && ownTag > 0)
|
|
4515
|
+
nextTag = ownTag;
|
|
4516
|
+
if (nextTag !== undefined)
|
|
4517
|
+
ageTags.set(message, nextTag);
|
|
4518
|
+
}
|
|
4519
|
+
return {
|
|
4520
|
+
ageTags,
|
|
4521
|
+
mayStrip: (message) => {
|
|
4522
|
+
const age = ageTags.get(message);
|
|
4523
|
+
return options.watermark > 0 && age !== undefined && age <= options.watermark && ((options.contextPercentage ?? 0) >= 95 || options.protectedCutoff == null || age < options.protectedCutoff);
|
|
4524
|
+
}
|
|
4525
|
+
};
|
|
4526
|
+
}
|
|
4527
|
+
|
|
4444
4528
|
// src/hooks/magic-context/strip-content.ts
|
|
4445
4529
|
var MARKER_ONLY_PATTERN = /^(?:(?:§\d+§|\[dropped(?: §\d+§)?\]|\[cleared\])\s*)+$/;
|
|
4446
4530
|
function isMarkerOnlyText(text) {
|
|
@@ -4990,59 +5074,142 @@ function stripReasoningFromMergedAssistants(messages, providerID, options) {
|
|
|
4990
5074
|
}
|
|
4991
5075
|
return stripped;
|
|
4992
5076
|
}
|
|
5077
|
+
var emptyImageParts = new WeakMap;
|
|
5078
|
+
function getEmptyImageParts(messages) {
|
|
5079
|
+
return emptyImageParts.get(messages) ?? new Map;
|
|
5080
|
+
}
|
|
5081
|
+
function imageOmissionBreaksStructure(messages, index, omitted) {
|
|
5082
|
+
let before = index - 1;
|
|
5083
|
+
let after = index + 1;
|
|
5084
|
+
while (omitted.has(before))
|
|
5085
|
+
before--;
|
|
5086
|
+
while (omitted.has(after))
|
|
5087
|
+
after++;
|
|
5088
|
+
const previous = messages[before];
|
|
5089
|
+
const next = messages[after];
|
|
5090
|
+
return previous !== undefined && next !== undefined && previous.info.role === next.info.role;
|
|
5091
|
+
}
|
|
4993
5092
|
function stripProcessedImages(messages, frozenIds, options) {
|
|
4994
|
-
const
|
|
5093
|
+
const omissions = new Map;
|
|
5094
|
+
emptyImageParts.set(messages, omissions);
|
|
5095
|
+
const { detect, messageTagNumbers } = options;
|
|
5096
|
+
const eligibility = createProcessedImageEligibility(messages, messageTagNumbers, options);
|
|
4995
5097
|
let stripped = 0;
|
|
4996
5098
|
const newlyStrippedIds = [];
|
|
4997
5099
|
const planned = [];
|
|
5100
|
+
const newMarkers = new Map;
|
|
4998
5101
|
let hasAssistantResponse = false;
|
|
4999
5102
|
for (let i = messages.length - 1;i >= 0; i--) {
|
|
5000
5103
|
const msg = messages[i];
|
|
5104
|
+
const answered = hasAssistantResponse;
|
|
5001
5105
|
if (msg.info.role === "assistant") {
|
|
5002
5106
|
hasAssistantResponse = true;
|
|
5003
|
-
continue;
|
|
5004
5107
|
}
|
|
5005
|
-
if (msg.info.role !== "user") {
|
|
5108
|
+
if (msg.info.role !== "user" && msg.info.role !== "assistant") {
|
|
5006
5109
|
continue;
|
|
5007
5110
|
}
|
|
5008
5111
|
const id = typeof msg.info.id === "string" ? msg.info.id : undefined;
|
|
5009
5112
|
const inFrozen = id !== undefined && frozenIds.has(id);
|
|
5010
|
-
const
|
|
5011
|
-
const isNewDetection = !inFrozen && detect && hasAssistantResponse && id !== undefined && maxTag <= watermark;
|
|
5113
|
+
const isNewDetection = !inFrozen && detect && answered && id !== undefined && eligibility.mayStrip(msg) && !options.protectedMessageIds?.has(id);
|
|
5012
5114
|
if (!inFrozen && !isNewDetection) {
|
|
5013
5115
|
continue;
|
|
5014
5116
|
}
|
|
5015
5117
|
let touchedThisMsg = false;
|
|
5016
5118
|
for (let j = 0;j < msg.parts.length; j++) {
|
|
5017
5119
|
const part = msg.parts[j];
|
|
5018
|
-
|
|
5019
|
-
|
|
5020
|
-
|
|
5021
|
-
|
|
5022
|
-
|
|
5023
|
-
|
|
5024
|
-
|
|
5025
|
-
|
|
5120
|
+
const tool = msg.info.role === "assistant" && isRecord(part) && part.type === "tool" && isRecord(part.state) && part.state.status === "completed";
|
|
5121
|
+
const images = tool && isRecord(part) && isRecord(part.state) && Array.isArray(part.state.attachments) ? part.state.attachments : msg.info.role === "user" ? [part] : [];
|
|
5122
|
+
if (images.some(isProcessedImagePart)) {
|
|
5123
|
+
planned.push({
|
|
5124
|
+
message: msg,
|
|
5125
|
+
partIndex: j,
|
|
5126
|
+
firstApplication: isNewDetection,
|
|
5127
|
+
tool
|
|
5128
|
+
});
|
|
5026
5129
|
touchedThisMsg = true;
|
|
5027
5130
|
}
|
|
5028
5131
|
}
|
|
5029
5132
|
if (touchedThisMsg && isNewDetection && id !== undefined) {
|
|
5030
5133
|
newlyStrippedIds.push(id);
|
|
5134
|
+
newMarkers.set(id, msg.info.role === "assistant" ? "[image stripped]" : options.replacementText ?? "");
|
|
5031
5135
|
}
|
|
5032
5136
|
}
|
|
5033
|
-
const
|
|
5137
|
+
const imageIndices = new Map;
|
|
5138
|
+
for (const { message, partIndex, tool } of planned) {
|
|
5139
|
+
if (tool)
|
|
5140
|
+
continue;
|
|
5141
|
+
const indices = imageIndices.get(message) ?? new Set;
|
|
5142
|
+
indices.add(partIndex);
|
|
5143
|
+
imageIndices.set(message, indices);
|
|
5144
|
+
}
|
|
5145
|
+
const emptiedRows = new Set;
|
|
5146
|
+
const newEmptyRows = [];
|
|
5147
|
+
for (let index = 0;index < messages.length; index++) {
|
|
5148
|
+
const message = messages[index];
|
|
5149
|
+
if (message.parts.every((part) => isRecord(part) && part.type === "text" && part.text === ""))
|
|
5150
|
+
emptiedRows.add(index);
|
|
5151
|
+
const id = message.info.id;
|
|
5152
|
+
const indices = imageIndices.get(message);
|
|
5153
|
+
if (!id || !indices)
|
|
5154
|
+
continue;
|
|
5155
|
+
const marker = options.frozenMarkers?.get(id) ?? newMarkers.get(id) ?? "";
|
|
5156
|
+
if (marker !== "" || !message.parts.every((part, partIndex) => indices.has(partIndex) || isRecord(part) && part.type === "text" && part.text === ""))
|
|
5157
|
+
continue;
|
|
5158
|
+
if (newMarkers.has(id))
|
|
5159
|
+
newEmptyRows.push({ index, id });
|
|
5160
|
+
else
|
|
5161
|
+
emptiedRows.add(index);
|
|
5162
|
+
}
|
|
5163
|
+
for (const { index, id } of newEmptyRows) {
|
|
5164
|
+
if (imageOmissionBreaksStructure(messages, index, emptiedRows))
|
|
5165
|
+
newMarkers.set(id, "[image stripped]");
|
|
5166
|
+
else
|
|
5167
|
+
emptiedRows.add(index);
|
|
5168
|
+
}
|
|
5169
|
+
const persisted = newlyStrippedIds.length === 0 || options.persistNewIds?.(newlyStrippedIds, newMarkers) !== false;
|
|
5034
5170
|
if (!persisted)
|
|
5035
5171
|
newlyStrippedIds.length = 0;
|
|
5036
|
-
for (const { message, partIndex, firstApplication } of planned) {
|
|
5172
|
+
for (const { message, partIndex, firstApplication, tool } of planned) {
|
|
5037
5173
|
if (firstApplication && !persisted)
|
|
5038
5174
|
continue;
|
|
5039
5175
|
if (firstApplication)
|
|
5040
5176
|
options.onFirstApplication?.(message, partIndex);
|
|
5041
|
-
|
|
5042
|
-
|
|
5177
|
+
const marker = tool ? "[image stripped]" : options.frozenMarkers?.get(message.info.id ?? "") ?? (firstApplication ? newMarkers.get(message.info.id ?? "") : "") ?? "";
|
|
5178
|
+
const original = message.parts[partIndex];
|
|
5179
|
+
if (tool && isRecord(original) && isRecord(original.state) && Array.isArray(original.state.attachments)) {
|
|
5180
|
+
const attachments = original.state.attachments;
|
|
5181
|
+
const count = attachments.filter(isProcessedImagePart).length;
|
|
5182
|
+
const output = typeof original.state.output === "string" ? original.state.output : "";
|
|
5183
|
+
message.parts[partIndex] = {
|
|
5184
|
+
...original,
|
|
5185
|
+
state: {
|
|
5186
|
+
...original.state,
|
|
5187
|
+
output: [output, ...Array(count).fill(marker)].filter(Boolean).join(`
|
|
5188
|
+
`),
|
|
5189
|
+
attachments: attachments.filter((part) => !isProcessedImagePart(part))
|
|
5190
|
+
}
|
|
5191
|
+
};
|
|
5192
|
+
stripped += count;
|
|
5193
|
+
} else {
|
|
5194
|
+
message.parts[partIndex] = { ...makeSentinel(original), text: marker };
|
|
5195
|
+
if (marker === "" && message.info.id) {
|
|
5196
|
+
const indices = omissions.get(message.info.id) ?? new Set;
|
|
5197
|
+
indices.add(partIndex);
|
|
5198
|
+
omissions.set(message.info.id, indices);
|
|
5199
|
+
}
|
|
5200
|
+
stripped++;
|
|
5201
|
+
}
|
|
5043
5202
|
}
|
|
5044
5203
|
return { stripped, newlyStrippedIds };
|
|
5045
5204
|
}
|
|
5205
|
+
function isProcessedImagePart(part) {
|
|
5206
|
+
if (isRecord(part) && part.type === "media" && isRecord(part.media)) {
|
|
5207
|
+
const { source, mediaType } = part.media;
|
|
5208
|
+
const inlineLength = isRecord(source) ? source.type === "base64" && typeof source.data === "string" ? source.data.length : source.type === "bytes" && source.data instanceof Uint8Array ? Math.ceil(source.data.byteLength / 3) * 4 : 0 : 0;
|
|
5209
|
+
return typeof mediaType === "string" && mediaType.startsWith("image/") && inlineLength > 0 && inlineLength + `data:${mediaType};base64,`.length > 200;
|
|
5210
|
+
}
|
|
5211
|
+
return isRecord(part) && part.type === "file" && typeof part.mime === "string" && part.mime.startsWith("image/") && typeof part.url === "string" && part.url.startsWith("data:") && part.url.length > 200;
|
|
5212
|
+
}
|
|
5046
5213
|
|
|
5047
5214
|
// src/hooks/magic-context/reasoning-budget.ts
|
|
5048
5215
|
function projectOpencodeReasoningBudgetCutoff(db, sessionId, messages, budget, watermark, proseRatio) {
|
|
@@ -6030,6 +6197,10 @@ function createToolDropTarget(compositeKey, thinkingParts, index, batch, tagId)
|
|
|
6030
6197
|
return false;
|
|
6031
6198
|
return batch.wouldStrandConversationEnd(entry.occurrences);
|
|
6032
6199
|
},
|
|
6200
|
+
prepareDrop: () => {
|
|
6201
|
+
const entry = index.get(compositeKey);
|
|
6202
|
+
return !!entry && entry.occurrences.length > 0 && entry.hasResult;
|
|
6203
|
+
},
|
|
6033
6204
|
canDrop: () => {
|
|
6034
6205
|
const entry = index.get(compositeKey);
|
|
6035
6206
|
return !!entry && entry.occurrences.length > 0 && entry.hasResult && !entry.occurrences.some((occurrence) => toolPartHasUserAnswer(occurrence.part));
|
|
@@ -6292,6 +6463,21 @@ function visitRawSessionMessages2(sessionId, fromOrdinal, toOrdinal, visit, opti
|
|
|
6292
6463
|
after = last ? { timeCreated: last.createdAt ?? 0, id: last.id } : undefined;
|
|
6293
6464
|
}
|
|
6294
6465
|
}
|
|
6466
|
+
async function visitRawSessionMessagesAsync2(sessionId, fromOrdinal, toOrdinal, visit, options = {}) {
|
|
6467
|
+
const from = Math.max(1, Math.floor(fromOrdinal));
|
|
6468
|
+
const to = Math.floor(toOrdinal);
|
|
6469
|
+
if (to < from)
|
|
6470
|
+
return;
|
|
6471
|
+
const provider = sessionProviders.get(sessionId)?.provider;
|
|
6472
|
+
if (!provider?.iterateMessageRangeAsync) {
|
|
6473
|
+
visitRawSessionMessages2(sessionId, from, to, visit, options);
|
|
6474
|
+
return;
|
|
6475
|
+
}
|
|
6476
|
+
for await (const message of provider.iterateMessageRangeAsync(from, to)) {
|
|
6477
|
+
if (!visit(message))
|
|
6478
|
+
return;
|
|
6479
|
+
}
|
|
6480
|
+
}
|
|
6295
6481
|
function readRawSessionMessageRange2(sessionId, fromOrdinal, toOrdinal) {
|
|
6296
6482
|
const from = Math.max(1, Math.floor(fromOrdinal));
|
|
6297
6483
|
const to = Math.floor(toOrdinal);
|
|
@@ -6717,7 +6903,10 @@ function readSessionChunk2(sessionId, tokenBudget, offset = 1, eligibleEndOrdina
|
|
|
6717
6903
|
if (state?.input === undefined && state?.output !== undefined && typeof p.callID === "string") {
|
|
6718
6904
|
const call = calls.get(p.callID);
|
|
6719
6905
|
if (call) {
|
|
6720
|
-
const expansion = expandToolPart({
|
|
6906
|
+
const expansion = expandToolPart({
|
|
6907
|
+
...call,
|
|
6908
|
+
state: { ...call.state, output: state.output }
|
|
6909
|
+
}, options.expandTools);
|
|
6721
6910
|
if (expansion !== null) {
|
|
6722
6911
|
expandedParts.set(call, expansion);
|
|
6723
6912
|
expandedResults.add(part);
|
|
@@ -7000,4 +7189,4 @@ function readRawSessionSeedTail2(sessionId, boundaryId, onQuery) {
|
|
|
7000
7189
|
});
|
|
7001
7190
|
}
|
|
7002
7191
|
|
|
7003
|
-
export { expandToolPart, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, invalidateTrueRawTokenCache, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, buildFileSourceContent, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, createDroppedInputToolExecuteBeforeHook, isEditTool, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, MAX_EXECUTE_THRESHOLD, escalationBands, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, getProtectionWindowForSession, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, isRustMarkerAdmissionFenced, setRustMarkerAdmissionFence, ReplayDocumentError, readReplayEnvelope, readReplayDocument, updateReplayDocument, writeReplayDocument, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, describeProtectedTailDrainBudgetSkip, loadPersistedUsage, loadProtectedTailMeta, markProtectedTailPolicyV3Seeded, recordProtectedTailPublicationFloor, recordProtectedTailNoEligibleHead, resetProtectedTailNoEligibleHead, getWrapupInProgressState, isWrapupInProgress, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getProtectedTailDrainBudgetSkip, reserveProtectedTailDrainTokens, clearEmergencyDrainLatch, recordHistorianDrainFailure, clearHistorianDrainFailure, rollbackProtectedTailDrainReservation, getPersistedReasoningWatermark, setPersistedReasoningWatermark, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, removeNoteNudgeAnchorByMessageId, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, removeAutoSearchHintDecisionByMessageId, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, removeStrippedPlaceholderId, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, armThinkingBindingRecovery, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, getSessionsWithPendingMarker, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getReasoningRemovalState, addRemovedReasoningIds, markDropLeavesReasoning, detectThinkingBindingMismatch, detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, modelAcceptsEmptyContent, isAnthropicFamilyRoute, neutralizeDroppedReasoningPart, restoreNeutralizedReasoningPart, isNeutralizedReasoningPart, variantChangeBustsProviderCache, makeSentinel, makeWholeMessageSentinel, isSentinel, replaySentinelByMessageIds, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, stripSystemInjectedMessages, stripDroppedPlaceholderMessages, replayClearedReasoning, replayStrippedInlineThinking, clearOldReasoning, stripClearedReasoning, stripInlineThinking, findReasoningBearingAssistantIds, findLatestAssistantReasoningMutationExemptMessage, snapshotTrailingBlankSourceDecisions, findTrailingBlankDecisionCandidates, applyFrozenTrailingBlankDecisions, stripReasoningFromAssistantIds, findMergedReasoningStripDecisions, stripReasoningFromMergedAssistants, stripProcessedImages, projectOpencodeReasoningBudgetCutoff, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, reasoningStepCost, reasoningBudgetCutoff, reasoningTextAndOpaque, opencodeReasoningBudgetCutoff, describeFinalWireTail, estimateMessageTokens, wireContentBytes, createFinalWireUsageTracker, estimateFinalWireInputTokens, estimateAppendedWireTokens, SKELETON_REAL_INPUT_MAX_BYTES, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, setBoundedRawMessageProvider2, withRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, RAW_MESSAGE_VISIT_PAGE_SIZE2, visitRawSessionMessages2, readRawSessionMessageRange2, prepareRawSessionOrdinals2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageOrdinalPage2, getRawSessionStoredMessageCount2, readRawSessionMessageIdOrdinalsForRange2, readRawSessionMessageIdOrdinals2, readRawSessionMessagePartsById2, readRawSessionBoundaryEndpoints2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, compareRawSessionMessageOrder2, readRawSessionMessageById2, getRawSessionMessageCount2, RAW_SESSION_TAG_KEY_PAGE_SIZE2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, getProtectedTailStartOrdinal2, readSessionChunk2, getRawSessionMessageIdsThrough2, readRawSessionSeedTail2 };
|
|
7192
|
+
export { expandToolPart, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, invalidateTrueRawTokenCache, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, buildFileSourceContent, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, createDroppedInputToolExecuteBeforeHook, isEditTool, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, MAX_EXECUTE_THRESHOLD, escalationBands, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, getProtectionWindowForSession, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, withReplayEnvelopeSnapshot, invalidateReplayEnvelopeSnapshot, isRustMarkerAdmissionFenced, setRustMarkerAdmissionFence, ReplayDocumentError, readReplayEnvelope, readReplayDocument, updateReplayDocument, writeReplayDocument, isEmergencyRecoveryArmed, isProviderOverflowReconfirmed, isProviderOverflowFailClosedProven, getEmergencyRecoveryArmedAt, describeProtectedTailDrainBudgetSkip, loadPersistedUsage, loadProtectedTailMeta, markProtectedTailPolicyV3Seeded, recordProtectedTailPublicationFloor, recordProtectedTailNoEligibleHead, resetProtectedTailNoEligibleHead, getWrapupInProgressState, isWrapupInProgress, acquireWrapupInProgress, updateWrapupInProgress, releaseWrapupInProgress, resolveCompactionModeRecord, getCompactionModeRecord, setCompactionModeRecord, getProtectedTailDrainBudgetSkip, reserveProtectedTailDrainTokens, clearEmergencyDrainLatch, recordHistorianDrainFailure, clearHistorianDrainFailure, rollbackProtectedTailDrainReservation, getPersistedReasoningWatermark, setPersistedReasoningWatermark, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, getChannel2NudgeClaim, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, removeNoteNudgeAnchorByMessageId, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, removeAutoSearchHintDecisionByMessageId, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, removeStrippedPlaceholderId, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, armThinkingBindingRecovery, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, getProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, getSessionsWithPendingMarker, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getReasoningRemovalState, addRemovedReasoningIds, markDropLeavesReasoning, detectThinkingBindingMismatch, detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, modelAcceptsEmptyContent, isAnthropicFamilyRoute, neutralizeDroppedReasoningPart, restoreNeutralizedReasoningPart, isNeutralizedReasoningPart, variantChangeBustsProviderCache, makeSentinel, makeWholeMessageSentinel, isSentinel, replaySentinelByMessageIds, isInActiveAnthropicTurn, activeAnthropicTurnStart, hasAnthropicReasoning, stripSystemInjectedMessages, stripDroppedPlaceholderMessages, replayClearedReasoning, replayStrippedInlineThinking, clearOldReasoning, stripClearedReasoning, stripInlineThinking, findReasoningBearingAssistantIds, findLatestAssistantReasoningMutationExemptMessage, snapshotTrailingBlankSourceDecisions, findTrailingBlankDecisionCandidates, applyFrozenTrailingBlankDecisions, stripReasoningFromAssistantIds, findMergedReasoningStripDecisions, stripReasoningFromMergedAssistants, getEmptyImageParts, stripProcessedImages, projectOpencodeReasoningBudgetCutoff, DEFAULT_KEEP_REASONING_TOKENS, resolveKeepReasoningTokens, reasoningStepCost, reasoningBudgetCutoff, reasoningTextAndOpaque, opencodeReasoningBudgetCutoff, describeFinalWireTail, estimateMessageTokens, wireContentBytes, createFinalWireUsageTracker, estimateFinalWireInputTokens, estimateAppendedWireTokens, SKELETON_REAL_INPUT_MAX_BYTES, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, 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, compareRawSessionMessageOrder2, readRawSessionMessageById2, getRawSessionMessageCount2, RAW_SESSION_TAG_KEY_PAGE_SIZE2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, getProtectedTailStartOrdinal2, readSessionChunk2, getRawSessionMessageIdsThrough2, readRawSessionSeedTail2 };
|
|
@@ -7,17 +7,17 @@ import {
|
|
|
7
7
|
} from "./index-pavzsdc6.js";
|
|
8
8
|
import {
|
|
9
9
|
isTransientSqliteError2
|
|
10
|
-
} from "./index-
|
|
10
|
+
} from "./index-j8epsc0g.js";
|
|
11
11
|
import {
|
|
12
12
|
PROMOTABLE_CATEGORIES,
|
|
13
13
|
CATEGORY_DEFAULT_TTL
|
|
14
14
|
} from "./index-fr0wbhdn.js";
|
|
15
15
|
import {
|
|
16
16
|
managedAuthorityNoteRow
|
|
17
|
-
} from "./index-
|
|
17
|
+
} from "./index-j5hce1ab.js";
|
|
18
18
|
import {
|
|
19
19
|
embedTextForProject2
|
|
20
|
-
} from "./index-
|
|
20
|
+
} from "./index-sf94at64.js";
|
|
21
21
|
import {
|
|
22
22
|
saveEmbeddingIfHashMatches
|
|
23
23
|
} from "./index-4dhv7mqz.js";
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
buildWorkspaceMemorySqlFilter2,
|
|
31
31
|
getMemoryById2,
|
|
32
32
|
updateMemorySeenCount2
|
|
33
|
-
} from "./index-
|
|
33
|
+
} from "./index-9yyqq3mm.js";
|
|
34
34
|
import {
|
|
35
35
|
computeNormalizedHash
|
|
36
36
|
} from "./index-2bvekkfy.js";
|
|
@@ -3,16 +3,16 @@ import {
|
|
|
3
3
|
} from "./index-nsjyysj0.js";
|
|
4
4
|
import {
|
|
5
5
|
clearEmergencyRecovery
|
|
6
|
-
} from "./index-
|
|
6
|
+
} from "./index-n5a170gs.js";
|
|
7
7
|
import {
|
|
8
8
|
requestPendingMaterialization,
|
|
9
9
|
dropSlot,
|
|
10
10
|
executeContextRecomp
|
|
11
|
-
} from "./index-
|
|
11
|
+
} from "./index-5tbvdff4.js";
|
|
12
12
|
import {
|
|
13
13
|
renderUserFacingFailure,
|
|
14
14
|
userFacingFailureCode
|
|
15
|
-
} from "./index-
|
|
15
|
+
} from "./index-n7kwfw2r.js";
|
|
16
16
|
|
|
17
17
|
// src/hooks/magic-context/recomp-orchestrator.ts
|
|
18
18
|
function resolveLiveModelKey(liveSessionState, sessionId) {
|
|
@@ -8,12 +8,12 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
isUserHomeDirectory,
|
|
10
10
|
setBootQuietPeriodForTests
|
|
11
|
-
} from "./index-
|
|
11
|
+
} from "./index-g8qbdb03.js";
|
|
12
12
|
import {
|
|
13
13
|
withSqliteBackgroundWriter2,
|
|
14
14
|
withoutSqliteTransformPass2,
|
|
15
15
|
isTransientSqliteError2
|
|
16
|
-
} from "./index-
|
|
16
|
+
} from "./index-j8epsc0g.js";
|
|
17
17
|
import {
|
|
18
18
|
estimateTokens
|
|
19
19
|
} from "./index-qx53vezw.js";
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
countSessionCompartmentEmbedCoverage,
|
|
40
40
|
countSessionCompartmentEmbedCoveragePolite,
|
|
41
41
|
countUnembeddedSessionCompartmentsPolite
|
|
42
|
-
} from "./index-
|
|
42
|
+
} from "./index-ax2jhztn.js";
|
|
43
43
|
import {
|
|
44
44
|
DEFAULT_LOCAL_EMBEDDING_MODEL
|
|
45
45
|
} from "./index-k6xvbj2e.js";
|