@cortexkit/opencode-magic-context 0.49.6 → 0.49.8
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-worker.js +2 -2
- package/dist/{compaction-marker-candidates-cz72pm1t.js → compaction-marker-candidates-xxz35vwp.js} +3 -3
- package/dist/{conflict-warning-hook-1jq1rxx7.js → conflict-warning-hook-w3crzrar.js} +8 -8
- package/dist/{context-ae3gxdye.js → context-x0ccfv0f.js} +88 -53
- package/dist/{derive-budgets-j4ry8j8n.js → derive-budgets-3nbxsyss.js} +2 -2
- package/dist/embedding-backfill-3h2m5n0q.js +21 -0
- package/dist/embedding-worker-process.js +6 -2
- package/dist/embedding-worker.js +6 -5
- package/dist/features/magic-context/compaction-marker-candidates.d.ts.map +1 -1
- package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/cron.d.ts +2 -0
- package/dist/features/magic-context/dreamer/cron.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/provider-output-failure.d.ts +1 -0
- package/dist/features/magic-context/dreamer/provider-output-failure.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/refresh-primers.d.ts +2 -2
- package/dist/features/magic-context/memory/embedding-local.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-worker-client.d.ts.map +1 -1
- package/dist/features/magic-context/message-index-async.d.ts.map +1 -1
- package/dist/features/magic-context/migration-worker-client.d.ts.map +1 -1
- package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
- package/dist/features/magic-context/smart-notes/wake-plane.d.ts.map +1 -1
- 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/features/magic-context/transform-decision-log.d.ts.map +1 -1
- package/dist/history-owner-ty29fz0f.js +244 -0
- package/dist/hooks/auto-update-checker/checker.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/auto-search-worker-client.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner.d.ts.map +1 -1
- package/dist/hooks/magic-context/edit-marker.d.ts +2 -0
- package/dist/hooks/magic-context/edit-marker.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/inject-compartments.d.ts.map +1 -1
- package/dist/hooks/magic-context/lkg-persist.d.ts.map +1 -1
- package/dist/hooks/magic-context/module-transport.d.ts +1 -0
- package/dist/hooks/magic-context/module-transport.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/raw-ordinal-warmup.d.ts.map +1 -1
- package/dist/hooks/magic-context/read-session-chunk.d.ts +15 -4
- 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 +4 -0
- package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
- package/dist/hooks/magic-context/rust-refusal-recovery.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/hooks/magic-context/transform.d.ts.map +1 -1
- package/dist/hooks/magic-context/unresolved-history-boundary.d.ts +5 -1
- package/dist/hooks/magic-context/unresolved-history-boundary.d.ts.map +1 -1
- package/dist/hooks/magic-context/wrapup-orchestrator.d.ts.map +1 -1
- package/dist/{index-g9exahnx.js → index-0jz47061.js} +6 -3
- package/dist/{index-4mjhqadz.js → index-150zz6fh.js} +1 -1
- package/dist/{index-ch08qwgd.js → index-2rw244rh.js} +88 -81
- package/dist/{index-6q5h70h2.js → index-4hb8nt93.js} +3 -3
- package/dist/{index-j55vn694.js → index-7bjgyaj1.js} +4 -4
- package/dist/{index-h2wc01qk.js → index-8kk7yh6m.js} +2 -2
- package/dist/{index-vztbgcdk.js → index-9g1c4bt9.js} +304 -92
- package/dist/{index-7q1m1qjk.js → index-a43xq1pg.js} +5 -5
- package/dist/{index-tqf7yg27.js → index-a4b0gbyg.js} +1 -1
- package/dist/{index-vnjhmkwk.js → index-angx1s0k.js} +4 -3
- package/dist/{index-1xaw2pq8.js → index-b4gcb3rk.js} +8 -8
- package/dist/{index-z1tjp257.js → index-b64n4d0h.js} +1 -1
- package/dist/{index-1bt88epp.js → index-bd9cjab3.js} +1 -1
- package/dist/{index-gbmqa9x9.js → index-bmwfzz28.js} +9 -6
- package/dist/{index-qx53vezw.js → index-gjvjh960.js} +1 -1
- package/dist/{index-zgzdm6dg.js → index-gzg9ekc1.js} +155 -103
- package/dist/{index-vh3e2mvr.js → index-hxrvx6cy.js} +121 -51
- package/dist/{index-w23dh319.js → index-jw4gbfkv.js} +1 -1
- package/dist/index-knvkbfvh.js +25 -0
- package/dist/{index-vkbqdnkj.js → index-kvw6xew3.js} +6 -3
- package/dist/{index-bg5qqene.js → index-mp2kghkv.js} +3 -27
- package/dist/{index-nsjyysj0.js → index-mvvephtj.js} +5 -1
- package/dist/{index-cm4hmxyk.js → index-n78avt2p.js} +1 -1
- package/dist/{index-hr64sth2.js → index-pgy3h49n.js} +4 -4
- package/dist/{index-a796ct3s.js → index-pjgzdezw.js} +13 -9
- package/dist/{index-9m7bn21d.js → index-q28hsbpg.js} +15 -3
- package/dist/{index-ab3bgm2m.js → index-q76br5zn.js} +3 -3
- package/dist/{index-xqyj5c85.js → index-qgp5vnt4.js} +5 -5
- package/dist/{index-9s58tq95.js → index-rg1cezmj.js} +22 -22
- package/dist/{index-f3dnvnw6.js → index-s178h9z8.js} +4 -3
- package/dist/{index-mj1fgfrk.js → index-w1ejb9qr.js} +939 -160
- package/dist/{index-k6xvbj2e.js → index-w28y7d0z.js} +2 -0
- package/dist/{index-0nnd4bry.js → index-wafzvyhg.js} +63 -19
- package/dist/{index-ck6y3td2.js → index-xf6k8szp.js} +4 -4
- package/dist/{index-1j8jcjpa.js → index-xpn05jxq.js} +4 -4
- package/dist/{index-s0gsmthp.js → index-ydjgz36f.js} +7 -7
- package/dist/{index-besxhcsh.js → index-zf9nydbd.js} +50 -39
- package/dist/index.js +53 -52
- package/dist/{logger-ewak5q1s.js → logger-wn328tfg.js} +1 -1
- package/dist/{message-index-bounded-630j53ps.js → message-index-bounded-hxjp56qk.js} +16 -16
- package/dist/{message-index-c84wm2g0.js → message-index-zs882h8e.js} +16 -16
- package/dist/{message-time-backfill-8kj57qe3.js → message-time-backfill-nb5hhnrt.js} +3 -3
- package/dist/migration-worker.js +11 -11
- package/dist/plugin/boot-quiet.d.ts.map +1 -1
- package/dist/plugin/dream-timer.d.ts.map +1 -1
- package/dist/plugin/messages-transform.d.ts.map +1 -1
- package/dist/plugin/rpc-handlers.d.ts +2 -0
- package/dist/plugin/rpc-handlers.d.ts.map +1 -1
- package/dist/{project-embedding-registry-vv59t7ah.js → project-embedding-registry-vy7sv9jt.js} +11 -11
- package/dist/raw-ordinal-warmup-worker.js +17 -15
- package/dist/{read-session-chunk-t3vjd0h0.js → read-session-chunk-t9r7r0sg.js} +13 -11
- package/dist/{read-session-raw-gf7eytnm.js → read-session-raw-gm6xj30v.js} +3 -3
- package/dist/recomp-orchestrator-gr36zvd2.js +60 -0
- package/dist/{safe-notification-target-q0cyrx3x.js → safe-notification-target-jdynm677.js} +2 -2
- package/dist/{search-kth2p6cc.js → search-qjen1pmz.js} +24 -24
- package/dist/{send-session-notification-3j6krd4w.js → send-session-notification-q8ngbap3.js} +6 -6
- package/dist/shared/history-owner.d.ts +12 -0
- package/dist/shared/history-owner.d.ts.map +1 -0
- package/dist/shared/off-thread-migration-clock.d.ts +8 -1
- package/dist/shared/off-thread-migration-clock.d.ts.map +1 -1
- 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/redaction.d.ts.map +1 -1
- package/dist/shared/rpc-server.d.ts.map +1 -1
- package/dist/shared/sqlite.d.ts +3 -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/shared/user-facing-codes.d.ts +2 -2
- package/dist/{sqlite-d7edbk1s.js → sqlite-4pqyynrs.js} +3 -1
- package/dist/{storage-memory-af5zdz98.js → storage-memory-j3v3hc83.js} +2 -2
- package/dist/{storage-tags-dyj7mmbq.js → storage-tags-a513rkj3.js} +5 -5
- 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-bv3kb5s1.js → transform-postprocess-phase-yv463b7y.js} +30 -30
- package/dist/v2/auto-search-worker.js +10 -7
- package/dist/v2/{compaction-marker-candidates-6gqp5wrc.js → compaction-marker-candidates-a15w3mqh.js} +3 -3
- package/dist/v2/compaction-marker-candidates-worker.js +2 -2
- package/dist/v2/{context-p8f2shp1.js → context-wd82v9z6.js} +1133 -278
- package/dist/v2/{derive-budgets-enckmg7y.js → derive-budgets-0rmpmxjw.js} +3 -3
- package/dist/v2/embedding-backfill-vr7wdtrf.js +20 -0
- package/dist/v2/embedding-worker-process.js +6 -2
- package/dist/v2/embedding-worker.js +6 -5
- package/dist/v2/hidden-completion.d.ts.map +1 -1
- package/dist/v2/history-owner-2cr9py37.js +243 -0
- package/dist/v2/hooks/context.d.ts.map +1 -1
- package/dist/v2/hooks/payload.d.ts.map +1 -1
- package/dist/v2/hooks/store.d.ts +1 -0
- package/dist/v2/hooks/store.d.ts.map +1 -1
- package/dist/v2/{logger-pj02s7sr.js → logger-te6e1j72.js} +1 -1
- package/dist/v2/{message-index-bounded-yzxmf6vp.js → message-index-bounded-madg2kfr.js} +16 -16
- package/dist/v2/{message-index-3ws17x1g.js → message-index-yd94vt9n.js} +16 -16
- package/dist/v2/{message-time-backfill-5nf10c65.js → message-time-backfill-rz1pnpaj.js} +3 -3
- package/dist/v2/migration-worker.js +11 -11
- package/dist/v2/{project-embedding-registry-rsnf2263.js → project-embedding-registry-ja23aygk.js} +11 -11
- package/dist/v2/raw-ordinal-warmup-worker.js +17 -15
- package/dist/v2/{read-session-chunk-vtb0w2kd.js → read-session-chunk-7qs791f3.js} +13 -11
- package/dist/v2/{read-session-raw-gpcddemt.js → read-session-raw-h4azh85b.js} +3 -3
- package/dist/v2/recomp-orchestrator-ee91r9s6.js +59 -0
- package/dist/v2/{safe-notification-target-y3p1hce9.js → safe-notification-target-936374xx.js} +2 -2
- package/dist/v2/search-pn15rr52.js +46 -0
- package/dist/v2/{send-session-notification-5aj2j7vf.js → send-session-notification-6n7chhyp.js} +6 -6
- package/dist/v2/{server-09g9pkvx.js → server-08k4zkfk.js} +50 -39
- package/dist/v2/{server-ras2sxnc.js → server-44ryn9rb.js} +9 -6
- package/dist/v2/{server-158ehmk2.js → server-4easnf78.js} +19 -19
- package/dist/v2/{server-ww9nr8pe.js → server-4gz0xkrc.js} +5 -5
- package/dist/v2/{server-d6g4whc2.js → server-4qr18rfg.js} +3 -3
- package/dist/v2/{server-f9py7s7a.js → server-4rs8sm06.js} +5 -5
- package/dist/v2/{server-yezz0cp2.js → server-63ha7f0f.js} +3 -27
- package/dist/v2/{server-3t0q2cqx.js → server-7dv9wt9r.js} +1 -1
- package/dist/v2/{server-cw6521wn.js → server-7e087rvk.js} +2 -0
- package/dist/v2/{server-hb6xhh9q.js → server-988cqjme.js} +6 -3
- package/dist/v2/{server-keswwkvv.js → server-9a6bwc12.js} +4 -4
- package/dist/v2/{server-t4k4qexw.js → server-9e5r8y60.js} +5 -1
- package/dist/v2/{server-7ekna9zs.js → server-adfte03x.js} +2 -2
- package/dist/v2/{server-9zqewm6g.js → server-ak7w74j9.js} +4 -4
- package/dist/v2/{server-387vkhjq.js → server-bx59ezg6.js} +4 -3
- package/dist/v2/{server-676xw7at.js → server-ckrb5rm8.js} +1 -1
- package/dist/v2/{server-wrem2nmz.js → server-cxsr0ng6.js} +15 -3
- package/dist/v2/{server-t528t8qm.js → server-hn9fb3v0.js} +2 -2
- package/dist/v2/{server-qn23p4h7.js → server-j3dm74ey.js} +9 -9
- package/dist/v2/{server-yd01snxq.js → server-jjsf29aq.js} +4 -4
- package/dist/v2/server-knvkbfvh.js +25 -0
- package/dist/v2/{server-cm4hmxyk.js → server-n78avt2p.js} +1 -1
- package/dist/v2/{server-btgnsv7w.js → server-njnx39q2.js} +6 -3
- package/dist/v2/{server-6a9mxnb2.js → server-npm52h2q.js} +4 -3
- package/dist/v2/{server-vb7pbd9p.js → server-nveratm5.js} +1 -1
- package/dist/v2/{server-7skbfb81.js → server-q360kdb8.js} +121 -51
- package/dist/v2/{server-kzns2hbz.js → server-s6jqh8bj.js} +1 -1
- package/dist/v2/{server-6byqfbqf.js → server-shme41gj.js} +1 -1
- package/dist/v2/{server-0nnd4bry.js → server-wafzvyhg.js} +63 -19
- package/dist/v2/{server-fby0cxbq.js → server-xj4mewze.js} +304 -92
- package/dist/v2/{server-aa9w15cs.js → server-y5g32dhq.js} +88 -81
- package/dist/v2/{server-x2r63c0x.js → server-yak3sxya.js} +7 -7
- package/dist/v2/{server-4tn95znb.js → server-zrwaj29a.js} +2 -2
- package/dist/v2/server.js +9 -8
- package/dist/v2/{sqlite-d7edbk1s.js → sqlite-4pqyynrs.js} +3 -1
- package/dist/v2/{storage-memory-af5zdz98.js → storage-memory-j3v3hc83.js} +2 -2
- package/dist/v2/{storage-tags-d47bpaqa.js → storage-tags-spa92sgj.js} +5 -5
- package/dist/v2/store-reader.d.ts.map +1 -1
- package/dist/v2/{wrapup-orchestrator-cahk37n7.js → wrapup-orchestrator-5wxy1ggv.js} +38 -35
- package/dist/wrapup-orchestrator-gv08c6f9.js +47 -0
- package/package.json +3 -3
- package/src/config/compaction-accessor-guard.test.ts +3 -0
- package/src/features/magic-context/dreamer/cron.ts +8 -0
- package/src/shared/history-owner.test.ts +60 -0
- package/src/shared/history-owner.ts +43 -0
- package/src/shared/host-stall-profiler-node.ts +3 -1
- package/src/shared/host-stall-profiler.ts +3 -1
- package/src/shared/off-thread-migration-clock.test.ts +80 -10
- package/src/shared/off-thread-migration-clock.ts +37 -13
- 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/redaction.test.ts +16 -0
- package/src/shared/redaction.ts +8 -1
- package/src/shared/root-async-context.probe.mjs +36 -0
- package/src/shared/root-async-context.test.ts +49 -0
- package/src/shared/rpc-server.ts +27 -23
- package/src/shared/sqlite-busy-budget-review.test.ts +291 -0
- package/src/shared/sqlite-foreground-wait.test.ts +253 -1
- package/src/shared/sqlite-writer-diagnostics.test.ts +31 -0
- package/src/shared/sqlite.ts +112 -30
- package/src/shared/tag-transcript.ts +118 -0
- package/src/shared/user-facing-codes.ts +2 -2
- package/dist/embedding-backfill-dtjmyktb.js +0 -21
- package/dist/recomp-orchestrator-1d08g57a.js +0 -60
- package/dist/v2/embedding-backfill-cg4rv90f.js +0 -20
- package/dist/v2/recomp-orchestrator-v64r4s4r.js +0 -59
- package/dist/v2/search-bpa4fxq1.js +0 -46
- package/dist/wrapup-orchestrator-mqp0v195.js +0 -47
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./server-pavzsdc6.js";
|
|
4
4
|
import {
|
|
5
5
|
prepareCachedStatement2
|
|
6
|
-
} from "./server-
|
|
6
|
+
} from "./server-wafzvyhg.js";
|
|
7
7
|
import {
|
|
8
8
|
UNKNOWN_FIT_RATIO,
|
|
9
9
|
resolveDecisionCalibration,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
TAG_SELECT_COLUMNS2,
|
|
24
24
|
getCandidateToolOwners2,
|
|
25
25
|
pickNearestPriorOwner2
|
|
26
|
-
} from "./server-
|
|
26
|
+
} from "./server-jjsf29aq.js";
|
|
27
27
|
import {
|
|
28
28
|
OMO_INTERNAL_INITIATOR_MARKER,
|
|
29
29
|
isSystemDirective,
|
|
@@ -40,18 +40,18 @@ import {
|
|
|
40
40
|
formatBlock,
|
|
41
41
|
compactTextForSummary,
|
|
42
42
|
mergeCommitHashes
|
|
43
|
-
} from "./server-
|
|
43
|
+
} from "./server-s6jqh8bj.js";
|
|
44
44
|
import {
|
|
45
45
|
sessionLog2
|
|
46
|
-
} from "./server-
|
|
46
|
+
} from "./server-9e5r8y60.js";
|
|
47
47
|
import {
|
|
48
48
|
stableStringify
|
|
49
|
-
} from "./server-
|
|
49
|
+
} from "./server-shme41gj.js";
|
|
50
50
|
import {
|
|
51
51
|
renderToolTemplate,
|
|
52
52
|
resolveModelConfigValue,
|
|
53
53
|
deriveDefaultProtectedTokens
|
|
54
|
-
} from "./server-
|
|
54
|
+
} from "./server-7e087rvk.js";
|
|
55
55
|
import {
|
|
56
56
|
readRawSessionMessagesFromDb2,
|
|
57
57
|
readRawSessionMessagePageFromDb2,
|
|
@@ -68,25 +68,25 @@ import {
|
|
|
68
68
|
readRawSeedTailFromDb2,
|
|
69
69
|
readRawSessionBoundaryEndpointsFromDb2,
|
|
70
70
|
prewarmRawSessionOrdinalsForDb
|
|
71
|
-
} from "./server-
|
|
71
|
+
} from "./server-bx59ezg6.js";
|
|
72
72
|
import {
|
|
73
73
|
openCodeDbExists,
|
|
74
74
|
withReadOnlySessionDb,
|
|
75
75
|
getRawSessionMessageCountFromDb,
|
|
76
76
|
getMessageTimesFromOpenCodeDb
|
|
77
|
-
} from "./server-
|
|
77
|
+
} from "./server-zrwaj29a.js";
|
|
78
78
|
import {
|
|
79
79
|
getToolDefinitionMeasurementSignature,
|
|
80
80
|
getLargestMeasuredToolDefinitionTokens,
|
|
81
81
|
getMeasuredToolDefinitionTokens
|
|
82
|
-
} from "./server-
|
|
82
|
+
} from "./server-adfte03x.js";
|
|
83
83
|
import {
|
|
84
84
|
canonicalModelIdentity,
|
|
85
85
|
piModelRefToCanonical
|
|
86
86
|
} from "./server-avwt563y.js";
|
|
87
87
|
import {
|
|
88
88
|
logSlowWriteTransaction
|
|
89
|
-
} from "./server-
|
|
89
|
+
} from "./server-7dv9wt9r.js";
|
|
90
90
|
|
|
91
91
|
// src/features/magic-context/overflow-detection.ts
|
|
92
92
|
var OVERFLOW_PATTERNS = [
|
|
@@ -1696,6 +1696,12 @@ function safeSlice(str, maxLen) {
|
|
|
1696
1696
|
function isEditTool(name) {
|
|
1697
1697
|
return name === "edit" || name === "write";
|
|
1698
1698
|
}
|
|
1699
|
+
function needsEditMarker(input) {
|
|
1700
|
+
return Object.keys(input).some((key) => {
|
|
1701
|
+
const value = input[key];
|
|
1702
|
+
return DIFF_KEYS.has(key) && typeof value === "string" && value.length > EDIT_REGION_HINT_LEN && !value.endsWith(TRUNCATION_SENTINEL);
|
|
1703
|
+
});
|
|
1704
|
+
}
|
|
1699
1705
|
function applyEditMarkerToInput(input) {
|
|
1700
1706
|
for (const key of Object.keys(input)) {
|
|
1701
1707
|
if (PATH_KEYS.has(key))
|
|
@@ -2101,8 +2107,25 @@ function getProtectionWindowForSession(db, sessionId, floor) {
|
|
|
2101
2107
|
}
|
|
2102
2108
|
|
|
2103
2109
|
// src/features/magic-context/storage-replay-document.ts
|
|
2110
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2104
2111
|
var CAS_RETRY_LIMIT = 5;
|
|
2105
2112
|
var MISSING_REPLAY_DOCUMENT_COLUMN = Symbol("missing replay document column");
|
|
2113
|
+
var replaySnapshots = new AsyncLocalStorage;
|
|
2114
|
+
async function withReplayEnvelopeSnapshot(db, sessionId, work) {
|
|
2115
|
+
const snapshot = { db, sessionId, active: true, loaded: false };
|
|
2116
|
+
return replaySnapshots.run(snapshot, async () => {
|
|
2117
|
+
try {
|
|
2118
|
+
return await work();
|
|
2119
|
+
} finally {
|
|
2120
|
+
snapshot.active = false;
|
|
2121
|
+
}
|
|
2122
|
+
});
|
|
2123
|
+
}
|
|
2124
|
+
function invalidateReplayEnvelopeSnapshot(db, sessionId) {
|
|
2125
|
+
const snapshot = replaySnapshots.getStore();
|
|
2126
|
+
if (snapshot?.db === db && snapshot.sessionId === sessionId)
|
|
2127
|
+
snapshot.loaded = false;
|
|
2128
|
+
}
|
|
2106
2129
|
function isRustMarkerAdmissionFenced(db, sessionId) {
|
|
2107
2130
|
const row = db.prepare("SELECT COALESCE(json_extract(NULLIF(trailing_blank_decisions, ''), '$.rustMarkerAdmissionFence'), 0) AS fenced FROM session_meta WHERE session_id=?").get(sessionId);
|
|
2108
2131
|
return row?.fenced === 1;
|
|
@@ -2225,16 +2248,30 @@ function readDecisionRows(db, sessionId, messageIds) {
|
|
|
2225
2248
|
return db.prepare(`SELECT message_id, decision FROM session_replay_decisions
|
|
2226
2249
|
WHERE session_id = ? AND message_id IN (SELECT value FROM json_each(?))`).all(sessionId, JSON.stringify(messageIds));
|
|
2227
2250
|
}
|
|
2228
|
-
function readRawReplayDocument(db, sessionId) {
|
|
2251
|
+
function readRawReplayDocument(db, sessionId, fresh = false) {
|
|
2252
|
+
const snapshot = replaySnapshots.getStore();
|
|
2253
|
+
const reusable = !fresh && snapshot?.active && snapshot.db === db && snapshot.sessionId === sessionId;
|
|
2254
|
+
if (reusable && snapshot.loaded)
|
|
2255
|
+
return snapshot.raw;
|
|
2229
2256
|
try {
|
|
2230
2257
|
const row = db.prepare("SELECT trailing_blank_decisions FROM session_meta WHERE session_id = ?").get(sessionId);
|
|
2231
2258
|
const raw = row?.trailing_blank_decisions;
|
|
2232
|
-
if (raw === null || raw === undefined || typeof raw === "string")
|
|
2259
|
+
if (raw === null || raw === undefined || typeof raw === "string") {
|
|
2260
|
+
if (reusable) {
|
|
2261
|
+
snapshot.raw = raw;
|
|
2262
|
+
snapshot.loaded = true;
|
|
2263
|
+
}
|
|
2233
2264
|
return raw;
|
|
2265
|
+
}
|
|
2234
2266
|
throw invalidReplayDocument("stored value is not text");
|
|
2235
2267
|
} catch (error) {
|
|
2236
|
-
if (isMissingReplayDocumentColumn(error))
|
|
2268
|
+
if (isMissingReplayDocumentColumn(error)) {
|
|
2269
|
+
if (reusable) {
|
|
2270
|
+
snapshot.raw = MISSING_REPLAY_DOCUMENT_COLUMN;
|
|
2271
|
+
snapshot.loaded = true;
|
|
2272
|
+
}
|
|
2237
2273
|
return MISSING_REPLAY_DOCUMENT_COLUMN;
|
|
2274
|
+
}
|
|
2238
2275
|
throw error;
|
|
2239
2276
|
}
|
|
2240
2277
|
}
|
|
@@ -2333,9 +2370,10 @@ function readAllTrailingBlankDecisions(db, sessionId, rawColumn) {
|
|
|
2333
2370
|
return decisions;
|
|
2334
2371
|
}
|
|
2335
2372
|
function updateReplayDocument(db, sessionId, mutate) {
|
|
2373
|
+
invalidateReplayEnvelopeSnapshot(db, sessionId);
|
|
2336
2374
|
let initial;
|
|
2337
2375
|
try {
|
|
2338
|
-
initial = readRawReplayDocument(db, sessionId);
|
|
2376
|
+
initial = readRawReplayDocument(db, sessionId, true);
|
|
2339
2377
|
} catch (error) {
|
|
2340
2378
|
if (error instanceof ReplayDocumentError)
|
|
2341
2379
|
return false;
|
|
@@ -2347,7 +2385,7 @@ function updateReplayDocument(db, sessionId, mutate) {
|
|
|
2347
2385
|
for (let attempt = 0;attempt < CAS_RETRY_LIMIT; attempt += 1) {
|
|
2348
2386
|
let raw;
|
|
2349
2387
|
try {
|
|
2350
|
-
raw = readRawReplayDocument(db, sessionId);
|
|
2388
|
+
raw = readRawReplayDocument(db, sessionId, true);
|
|
2351
2389
|
} catch (error) {
|
|
2352
2390
|
if (error instanceof ReplayDocumentError)
|
|
2353
2391
|
return false;
|
|
@@ -2402,7 +2440,7 @@ function updateTrailingBlankDecisions(db, sessionId, messageIds, decide) {
|
|
|
2402
2440
|
}
|
|
2403
2441
|
let initial;
|
|
2404
2442
|
try {
|
|
2405
|
-
initial = readRawReplayDocument(db, sessionId);
|
|
2443
|
+
initial = readRawReplayDocument(db, sessionId, true);
|
|
2406
2444
|
} catch (error) {
|
|
2407
2445
|
if (error instanceof ReplayDocumentError)
|
|
2408
2446
|
return false;
|
|
@@ -2414,7 +2452,7 @@ function updateTrailingBlankDecisions(db, sessionId, messageIds, decide) {
|
|
|
2414
2452
|
for (let attempt = 0;attempt < CAS_RETRY_LIMIT; attempt += 1) {
|
|
2415
2453
|
let columnDecisions;
|
|
2416
2454
|
try {
|
|
2417
|
-
const raw = readRawReplayDocument(db, sessionId);
|
|
2455
|
+
const raw = readRawReplayDocument(db, sessionId, true);
|
|
2418
2456
|
if (raw === MISSING_REPLAY_DOCUMENT_COLUMN)
|
|
2419
2457
|
return false;
|
|
2420
2458
|
columnDecisions = parseReplayDocument(raw).trailingBlank;
|
|
@@ -2469,6 +2507,7 @@ function updateTrailingBlankDecisions(db, sessionId, messageIds, decide) {
|
|
|
2469
2507
|
return false;
|
|
2470
2508
|
}
|
|
2471
2509
|
function writeReplayDocument(db, sessionId, doc) {
|
|
2510
|
+
invalidateReplayEnvelopeSnapshot(db, sessionId);
|
|
2472
2511
|
if (!hasReplayDecisionTable(db)) {
|
|
2473
2512
|
db.prepare("UPDATE session_meta SET trailing_blank_decisions = ? WHERE session_id = ?").run(serializeReplayDocument(doc), sessionId);
|
|
2474
2513
|
return;
|
|
@@ -3814,10 +3853,32 @@ function addStaleReduceStrippedIds(db, sessionId, ids) {
|
|
|
3814
3853
|
return false;
|
|
3815
3854
|
}
|
|
3816
3855
|
function getProcessedImageStrippedIds(db, sessionId) {
|
|
3856
|
+
return new Set(getProcessedImageMarkers(db, sessionId).keys());
|
|
3857
|
+
}
|
|
3858
|
+
function parseProcessedImageMarkers(raw) {
|
|
3859
|
+
if (!raw)
|
|
3860
|
+
return new Map;
|
|
3861
|
+
try {
|
|
3862
|
+
const parsed = JSON.parse(raw);
|
|
3863
|
+
const ids = Array.isArray(parsed) ? parsed : parsed?.ids;
|
|
3864
|
+
const textIds = new Set(Array.isArray(parsed?.textMarkerIds) ? parsed.textMarkerIds : []);
|
|
3865
|
+
return new Map((Array.isArray(ids) ? ids : []).filter((id) => typeof id === "string").map((id) => [id, textIds.has(id) ? "[image stripped]" : ""]));
|
|
3866
|
+
} catch {
|
|
3867
|
+
return new Map;
|
|
3868
|
+
}
|
|
3869
|
+
}
|
|
3870
|
+
function serializeProcessedImageMarkers(markers) {
|
|
3871
|
+
const ids = [...markers.keys()];
|
|
3872
|
+
if (ids.length === 0)
|
|
3873
|
+
return "";
|
|
3874
|
+
const textMarkerIds = ids.filter((id) => markers.get(id) === "[image stripped]");
|
|
3875
|
+
return JSON.stringify(textMarkerIds.length > 0 ? { ids, textMarkerIds } : ids);
|
|
3876
|
+
}
|
|
3877
|
+
function getProcessedImageMarkers(db, sessionId) {
|
|
3817
3878
|
const row = db.prepare("SELECT processed_image_stripped_ids FROM session_meta WHERE session_id = ?").get(sessionId);
|
|
3818
|
-
return
|
|
3879
|
+
return parseProcessedImageMarkers(row?.processed_image_stripped_ids);
|
|
3819
3880
|
}
|
|
3820
|
-
function addProcessedImageStrippedIds(db, sessionId, ids) {
|
|
3881
|
+
function addProcessedImageStrippedIds(db, sessionId, ids, marker = "") {
|
|
3821
3882
|
const add = [...ids];
|
|
3822
3883
|
if (add.length === 0)
|
|
3823
3884
|
return true;
|
|
@@ -3825,17 +3886,17 @@ function addProcessedImageStrippedIds(db, sessionId, ids) {
|
|
|
3825
3886
|
for (let attempt = 0;attempt < CAS_RETRY_LIMIT2; attempt += 1) {
|
|
3826
3887
|
const row = db.prepare("SELECT processed_image_stripped_ids FROM session_meta WHERE session_id = ?").get(sessionId);
|
|
3827
3888
|
const rawStored = row ? row.processed_image_stripped_ids ?? null : null;
|
|
3828
|
-
const current =
|
|
3889
|
+
const current = parseProcessedImageMarkers(rawStored);
|
|
3829
3890
|
let changed = false;
|
|
3830
3891
|
for (const id of add) {
|
|
3831
3892
|
if (!current.has(id)) {
|
|
3832
|
-
current.
|
|
3893
|
+
current.set(id, typeof marker === "string" ? marker : marker.get(id) ?? "");
|
|
3833
3894
|
changed = true;
|
|
3834
3895
|
}
|
|
3835
3896
|
}
|
|
3836
3897
|
if (!changed)
|
|
3837
3898
|
return true;
|
|
3838
|
-
const nextBlob =
|
|
3899
|
+
const nextBlob = serializeProcessedImageMarkers(current);
|
|
3839
3900
|
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);
|
|
3840
3901
|
if (result.changes > 0)
|
|
3841
3902
|
return true;
|
|
@@ -3889,7 +3950,8 @@ function loadPostprocessReplaySnapshot(db, sessionId) {
|
|
|
3889
3950
|
const thinkingBindingRecoveryTarget = row?.thinking_binding_recovery_target;
|
|
3890
3951
|
return {
|
|
3891
3952
|
staleReduceStrippedIds: new Set(parseStrippedBlob(row?.stale_reduce_stripped_ids)),
|
|
3892
|
-
processedImageStrippedIds: new Set(
|
|
3953
|
+
processedImageStrippedIds: new Set(parseProcessedImageMarkers(row?.processed_image_stripped_ids).keys()),
|
|
3954
|
+
processedImageMarkers: parseProcessedImageMarkers(row?.processed_image_stripped_ids),
|
|
3893
3955
|
strippedPlaceholderIds: new Set(placeholders.ids),
|
|
3894
3956
|
hiddenSeamPlaceholderIds: new Set(placeholders.hiddenSeamIds),
|
|
3895
3957
|
noteNudgeAnchors: parseJsonArray(row?.note_nudge_anchors, isValidNoteNudgeAnchor),
|
|
@@ -3933,15 +3995,22 @@ function getPendingPiCompactionMarkerState(db, sessionId) {
|
|
|
3933
3995
|
return parsed;
|
|
3934
3996
|
}
|
|
3935
3997
|
} catch {}
|
|
3936
|
-
db.prepare("UPDATE session_meta SET pending_pi_compaction_marker_state = NULL WHERE session_id = ? AND pending_pi_compaction_marker_state = ?").run(sessionId, raw);
|
|
3998
|
+
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);
|
|
3999
|
+
if (cleared.changes > 0)
|
|
4000
|
+
sessionLog2(sessionId, "Pi compaction-marker clear: reason=malformed-state");
|
|
3937
4001
|
return null;
|
|
3938
4002
|
}
|
|
3939
|
-
function clearPendingPiCompactionMarkerStateIf(db, sessionId, expected) {
|
|
4003
|
+
function clearPendingPiCompactionMarkerStateIf(db, sessionId, expected, reason = "explicit-clear") {
|
|
3940
4004
|
const expectedBlob = stableStringify(expected);
|
|
3941
4005
|
const result = db.prepare(`UPDATE session_meta SET pending_pi_compaction_marker_state = NULL
|
|
3942
4006
|
WHERE session_id = ? AND pending_pi_compaction_marker_state = ?`).run(sessionId, expectedBlob);
|
|
4007
|
+
if (result.changes > 0 && reason !== null)
|
|
4008
|
+
logPiCompactionMarkerClear(sessionId, expected, reason);
|
|
3943
4009
|
return result.changes > 0;
|
|
3944
4010
|
}
|
|
4011
|
+
function logPiCompactionMarkerClear(sessionId, marker, reason) {
|
|
4012
|
+
sessionLog2(sessionId, `Pi compaction-marker clear: reason=${reason} endMessageId=${marker.endMessageId} ordinal=${marker.ordinal} firstKeptEntryId=${marker.firstKeptEntryId ?? "<none>"}`);
|
|
4013
|
+
}
|
|
3945
4014
|
function setSessionWorkMetrics(db, sessionId, newWorkTokens, totalInputTokens) {
|
|
3946
4015
|
ensureSessionMetaRow(db, sessionId);
|
|
3947
4016
|
db.prepare(`UPDATE session_meta
|
|
@@ -4329,6 +4398,27 @@ function hasAnthropicReasoning(messages) {
|
|
|
4329
4398
|
});
|
|
4330
4399
|
}
|
|
4331
4400
|
|
|
4401
|
+
// src/shared/processed-image-eligibility.ts
|
|
4402
|
+
function createProcessedImageEligibility(messages, messageTagNumbers, options) {
|
|
4403
|
+
const ageTags = new Map;
|
|
4404
|
+
let nextTag;
|
|
4405
|
+
for (let index = messages.length - 1;index >= 0; index--) {
|
|
4406
|
+
const message = messages[index];
|
|
4407
|
+
const ownTag = messageTagNumbers.get(message);
|
|
4408
|
+
if (ownTag !== undefined && Number.isFinite(ownTag) && ownTag > 0)
|
|
4409
|
+
nextTag = ownTag;
|
|
4410
|
+
if (nextTag !== undefined)
|
|
4411
|
+
ageTags.set(message, nextTag);
|
|
4412
|
+
}
|
|
4413
|
+
return {
|
|
4414
|
+
ageTags,
|
|
4415
|
+
mayStrip: (message) => {
|
|
4416
|
+
const age = ageTags.get(message);
|
|
4417
|
+
return options.watermark > 0 && age !== undefined && age <= options.watermark && ((options.contextPercentage ?? 0) >= 95 || options.protectedCutoff == null || age < options.protectedCutoff);
|
|
4418
|
+
}
|
|
4419
|
+
};
|
|
4420
|
+
}
|
|
4421
|
+
|
|
4332
4422
|
// src/hooks/magic-context/strip-content.ts
|
|
4333
4423
|
var MARKER_ONLY_PATTERN = /^(?:(?:§\d+§|\[dropped(?: §\d+§)?\]|\[cleared\])\s*)+$/;
|
|
4334
4424
|
function isMarkerOnlyText(text) {
|
|
@@ -4878,59 +4968,142 @@ function stripReasoningFromMergedAssistants(messages, providerID, options) {
|
|
|
4878
4968
|
}
|
|
4879
4969
|
return stripped;
|
|
4880
4970
|
}
|
|
4971
|
+
var emptyImageParts = new WeakMap;
|
|
4972
|
+
function getEmptyImageParts(messages) {
|
|
4973
|
+
return emptyImageParts.get(messages) ?? new Map;
|
|
4974
|
+
}
|
|
4975
|
+
function imageOmissionBreaksStructure(messages, index, omitted) {
|
|
4976
|
+
let before = index - 1;
|
|
4977
|
+
let after = index + 1;
|
|
4978
|
+
while (omitted.has(before))
|
|
4979
|
+
before--;
|
|
4980
|
+
while (omitted.has(after))
|
|
4981
|
+
after++;
|
|
4982
|
+
const previous = messages[before];
|
|
4983
|
+
const next = messages[after];
|
|
4984
|
+
return previous !== undefined && next !== undefined && previous.info.role === next.info.role;
|
|
4985
|
+
}
|
|
4881
4986
|
function stripProcessedImages(messages, frozenIds, options) {
|
|
4882
|
-
const
|
|
4987
|
+
const omissions = new Map;
|
|
4988
|
+
emptyImageParts.set(messages, omissions);
|
|
4989
|
+
const { detect, messageTagNumbers } = options;
|
|
4990
|
+
const eligibility = createProcessedImageEligibility(messages, messageTagNumbers, options);
|
|
4883
4991
|
let stripped = 0;
|
|
4884
4992
|
const newlyStrippedIds = [];
|
|
4885
4993
|
const planned = [];
|
|
4994
|
+
const newMarkers = new Map;
|
|
4886
4995
|
let hasAssistantResponse = false;
|
|
4887
4996
|
for (let i = messages.length - 1;i >= 0; i--) {
|
|
4888
4997
|
const msg = messages[i];
|
|
4998
|
+
const answered = hasAssistantResponse;
|
|
4889
4999
|
if (msg.info.role === "assistant") {
|
|
4890
5000
|
hasAssistantResponse = true;
|
|
4891
|
-
continue;
|
|
4892
5001
|
}
|
|
4893
|
-
if (msg.info.role !== "user") {
|
|
5002
|
+
if (msg.info.role !== "user" && msg.info.role !== "assistant") {
|
|
4894
5003
|
continue;
|
|
4895
5004
|
}
|
|
4896
5005
|
const id = typeof msg.info.id === "string" ? msg.info.id : undefined;
|
|
4897
5006
|
const inFrozen = id !== undefined && frozenIds.has(id);
|
|
4898
|
-
const
|
|
4899
|
-
const isNewDetection = !inFrozen && detect && hasAssistantResponse && id !== undefined && maxTag <= watermark;
|
|
5007
|
+
const isNewDetection = !inFrozen && detect && answered && id !== undefined && eligibility.mayStrip(msg) && !options.protectedMessageIds?.has(id);
|
|
4900
5008
|
if (!inFrozen && !isNewDetection) {
|
|
4901
5009
|
continue;
|
|
4902
5010
|
}
|
|
4903
5011
|
let touchedThisMsg = false;
|
|
4904
5012
|
for (let j = 0;j < msg.parts.length; j++) {
|
|
4905
5013
|
const part = msg.parts[j];
|
|
4906
|
-
|
|
4907
|
-
|
|
4908
|
-
|
|
4909
|
-
|
|
4910
|
-
|
|
4911
|
-
|
|
4912
|
-
|
|
4913
|
-
|
|
5014
|
+
const tool = msg.info.role === "assistant" && isRecord(part) && part.type === "tool" && isRecord(part.state) && part.state.status === "completed";
|
|
5015
|
+
const images = tool && isRecord(part) && isRecord(part.state) && Array.isArray(part.state.attachments) ? part.state.attachments : msg.info.role === "user" ? [part] : [];
|
|
5016
|
+
if (images.some(isProcessedImagePart)) {
|
|
5017
|
+
planned.push({
|
|
5018
|
+
message: msg,
|
|
5019
|
+
partIndex: j,
|
|
5020
|
+
firstApplication: isNewDetection,
|
|
5021
|
+
tool
|
|
5022
|
+
});
|
|
4914
5023
|
touchedThisMsg = true;
|
|
4915
5024
|
}
|
|
4916
5025
|
}
|
|
4917
5026
|
if (touchedThisMsg && isNewDetection && id !== undefined) {
|
|
4918
5027
|
newlyStrippedIds.push(id);
|
|
5028
|
+
newMarkers.set(id, msg.info.role === "assistant" ? "[image stripped]" : options.replacementText ?? "");
|
|
4919
5029
|
}
|
|
4920
5030
|
}
|
|
4921
|
-
const
|
|
5031
|
+
const imageIndices = new Map;
|
|
5032
|
+
for (const { message, partIndex, tool } of planned) {
|
|
5033
|
+
if (tool)
|
|
5034
|
+
continue;
|
|
5035
|
+
const indices = imageIndices.get(message) ?? new Set;
|
|
5036
|
+
indices.add(partIndex);
|
|
5037
|
+
imageIndices.set(message, indices);
|
|
5038
|
+
}
|
|
5039
|
+
const emptiedRows = new Set;
|
|
5040
|
+
const newEmptyRows = [];
|
|
5041
|
+
for (let index = 0;index < messages.length; index++) {
|
|
5042
|
+
const message = messages[index];
|
|
5043
|
+
if (message.parts.every((part) => isRecord(part) && part.type === "text" && part.text === ""))
|
|
5044
|
+
emptiedRows.add(index);
|
|
5045
|
+
const id = message.info.id;
|
|
5046
|
+
const indices = imageIndices.get(message);
|
|
5047
|
+
if (!id || !indices)
|
|
5048
|
+
continue;
|
|
5049
|
+
const marker = options.frozenMarkers?.get(id) ?? newMarkers.get(id) ?? "";
|
|
5050
|
+
if (marker !== "" || !message.parts.every((part, partIndex) => indices.has(partIndex) || isRecord(part) && part.type === "text" && part.text === ""))
|
|
5051
|
+
continue;
|
|
5052
|
+
if (newMarkers.has(id))
|
|
5053
|
+
newEmptyRows.push({ index, id });
|
|
5054
|
+
else
|
|
5055
|
+
emptiedRows.add(index);
|
|
5056
|
+
}
|
|
5057
|
+
for (const { index, id } of newEmptyRows) {
|
|
5058
|
+
if (imageOmissionBreaksStructure(messages, index, emptiedRows))
|
|
5059
|
+
newMarkers.set(id, "[image stripped]");
|
|
5060
|
+
else
|
|
5061
|
+
emptiedRows.add(index);
|
|
5062
|
+
}
|
|
5063
|
+
const persisted = newlyStrippedIds.length === 0 || options.persistNewIds?.(newlyStrippedIds, newMarkers) !== false;
|
|
4922
5064
|
if (!persisted)
|
|
4923
5065
|
newlyStrippedIds.length = 0;
|
|
4924
|
-
for (const { message, partIndex, firstApplication } of planned) {
|
|
5066
|
+
for (const { message, partIndex, firstApplication, tool } of planned) {
|
|
4925
5067
|
if (firstApplication && !persisted)
|
|
4926
5068
|
continue;
|
|
4927
5069
|
if (firstApplication)
|
|
4928
5070
|
options.onFirstApplication?.(message, partIndex);
|
|
4929
|
-
|
|
4930
|
-
|
|
5071
|
+
const marker = tool ? "[image stripped]" : options.frozenMarkers?.get(message.info.id ?? "") ?? (firstApplication ? newMarkers.get(message.info.id ?? "") : "") ?? "";
|
|
5072
|
+
const original = message.parts[partIndex];
|
|
5073
|
+
if (tool && isRecord(original) && isRecord(original.state) && Array.isArray(original.state.attachments)) {
|
|
5074
|
+
const attachments = original.state.attachments;
|
|
5075
|
+
const count = attachments.filter(isProcessedImagePart).length;
|
|
5076
|
+
const output = typeof original.state.output === "string" ? original.state.output : "";
|
|
5077
|
+
message.parts[partIndex] = {
|
|
5078
|
+
...original,
|
|
5079
|
+
state: {
|
|
5080
|
+
...original.state,
|
|
5081
|
+
output: [output, ...Array(count).fill(marker)].filter(Boolean).join(`
|
|
5082
|
+
`),
|
|
5083
|
+
attachments: attachments.filter((part) => !isProcessedImagePart(part))
|
|
5084
|
+
}
|
|
5085
|
+
};
|
|
5086
|
+
stripped += count;
|
|
5087
|
+
} else {
|
|
5088
|
+
message.parts[partIndex] = { ...makeSentinel(original), text: marker };
|
|
5089
|
+
if (marker === "" && message.info.id) {
|
|
5090
|
+
const indices = omissions.get(message.info.id) ?? new Set;
|
|
5091
|
+
indices.add(partIndex);
|
|
5092
|
+
omissions.set(message.info.id, indices);
|
|
5093
|
+
}
|
|
5094
|
+
stripped++;
|
|
5095
|
+
}
|
|
4931
5096
|
}
|
|
4932
5097
|
return { stripped, newlyStrippedIds };
|
|
4933
5098
|
}
|
|
5099
|
+
function isProcessedImagePart(part) {
|
|
5100
|
+
if (isRecord(part) && part.type === "media" && isRecord(part.media)) {
|
|
5101
|
+
const { source, mediaType } = part.media;
|
|
5102
|
+
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;
|
|
5103
|
+
return typeof mediaType === "string" && mediaType.startsWith("image/") && inlineLength > 0 && inlineLength + `data:${mediaType};base64,`.length > 200;
|
|
5104
|
+
}
|
|
5105
|
+
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;
|
|
5106
|
+
}
|
|
4934
5107
|
|
|
4935
5108
|
// src/hooks/magic-context/reasoning-budget.ts
|
|
4936
5109
|
function projectOpencodeReasoningBudgetCutoff(db, sessionId, messages, budget, watermark, proseRatio) {
|
|
@@ -5545,24 +5718,18 @@ function setToolContent(part, content) {
|
|
|
5545
5718
|
}
|
|
5546
5719
|
}
|
|
5547
5720
|
function clonePart(part) {
|
|
5548
|
-
|
|
5549
|
-
|
|
5550
|
-
|
|
5551
|
-
|
|
5552
|
-
} catch {
|
|
5553
|
-
try {
|
|
5554
|
-
return JSON.parse(JSON.stringify(part));
|
|
5555
|
-
} catch {
|
|
5556
|
-
return part;
|
|
5557
|
-
}
|
|
5558
|
-
}
|
|
5721
|
+
return {
|
|
5722
|
+
...part,
|
|
5723
|
+
...isRecord(part.state) ? { state: { ...part.state } } : {}
|
|
5724
|
+
};
|
|
5559
5725
|
}
|
|
5560
5726
|
function clampCloneInPlace(occurrence, clamp) {
|
|
5561
|
-
const clone = clonePart(occurrence.part);
|
|
5562
|
-
clamp(clone);
|
|
5563
5727
|
const parts = occurrence.message.parts;
|
|
5564
5728
|
const index = parts.indexOf(servedPart(occurrence));
|
|
5565
5729
|
if (index >= 0) {
|
|
5730
|
+
const clone = clamp(occurrence.part);
|
|
5731
|
+
if (clone === servedPart(occurrence))
|
|
5732
|
+
return;
|
|
5566
5733
|
parts[index] = clone;
|
|
5567
5734
|
occurrence.served = clone;
|
|
5568
5735
|
}
|
|
@@ -5572,17 +5739,24 @@ function servedPart(occurrence) {
|
|
|
5572
5739
|
}
|
|
5573
5740
|
function skeletonRealToolPart(part, tagId, stripAttachments = false) {
|
|
5574
5741
|
if (!isRecord(part))
|
|
5575
|
-
return;
|
|
5742
|
+
return part;
|
|
5576
5743
|
const sentinel = `[dropped §${tagId}§]`;
|
|
5577
5744
|
if (part.type === "tool" && isRecord(part.state)) {
|
|
5578
|
-
part.state.output
|
|
5745
|
+
if (part.state.output === sentinel && !needsAttachmentStrip(part.state, stripAttachments))
|
|
5746
|
+
return part;
|
|
5747
|
+
const clone = clonePart(part);
|
|
5748
|
+
const state = clone.state;
|
|
5749
|
+
state.output = sentinel;
|
|
5579
5750
|
if (stripAttachments)
|
|
5580
|
-
|
|
5581
|
-
return;
|
|
5582
|
-
}
|
|
5583
|
-
if (part.type === "tool_result") {
|
|
5584
|
-
part.content = sentinel;
|
|
5751
|
+
state.attachments = [];
|
|
5752
|
+
return clone;
|
|
5585
5753
|
}
|
|
5754
|
+
if (part.type === "tool_result" && part.content !== sentinel)
|
|
5755
|
+
return { ...part, content: sentinel };
|
|
5756
|
+
return part;
|
|
5757
|
+
}
|
|
5758
|
+
function needsAttachmentStrip(state, strip) {
|
|
5759
|
+
return strip && (!Array.isArray(state.attachments) || state.attachments.length !== 0);
|
|
5586
5760
|
}
|
|
5587
5761
|
function readToolPartRawInput(part) {
|
|
5588
5762
|
if (!isRecord(part))
|
|
@@ -5595,51 +5769,62 @@ function readToolPartRawInput(part) {
|
|
|
5595
5769
|
return part.input;
|
|
5596
5770
|
return;
|
|
5597
5771
|
}
|
|
5772
|
+
function isDroppedInput(input, sentinel) {
|
|
5773
|
+
return isRecord(input) && Object.keys(input).length === 1 && Object.hasOwn(input, "dropped") && input.dropped === sentinel;
|
|
5774
|
+
}
|
|
5598
5775
|
function truncateToolPart(part, tagId) {
|
|
5599
5776
|
if (!isRecord(part))
|
|
5600
|
-
return;
|
|
5777
|
+
return part;
|
|
5601
5778
|
const sentinel = `[dropped §${tagId}§]`;
|
|
5602
5779
|
if (part.type === "tool" && isRecord(part.state)) {
|
|
5603
|
-
|
|
5780
|
+
if (part.state.output === sentinel && isDroppedInput(part.state.input, sentinel))
|
|
5781
|
+
return part;
|
|
5782
|
+
const clone = clonePart(part);
|
|
5783
|
+
const state = clone.state;
|
|
5604
5784
|
state.output = sentinel;
|
|
5605
5785
|
state.input = droppedInputMarker(tagId);
|
|
5606
|
-
return;
|
|
5786
|
+
return clone;
|
|
5607
5787
|
}
|
|
5608
5788
|
if (part.type === "tool_result") {
|
|
5609
|
-
part.content
|
|
5610
|
-
return;
|
|
5789
|
+
return part.content === sentinel ? part : { ...part, content: sentinel };
|
|
5611
5790
|
}
|
|
5612
5791
|
if (part.type === "tool-invocation") {
|
|
5613
|
-
part.args
|
|
5614
|
-
return;
|
|
5792
|
+
return isDroppedInput(part.args, sentinel) ? part : { ...part, args: droppedInputMarker(tagId) };
|
|
5615
5793
|
}
|
|
5616
5794
|
if (part.type === "tool_use") {
|
|
5617
|
-
part.input
|
|
5795
|
+
return isDroppedInput(part.input, sentinel) ? part : { ...part, input: droppedInputMarker(tagId) };
|
|
5618
5796
|
}
|
|
5797
|
+
return part;
|
|
5619
5798
|
}
|
|
5620
5799
|
function editMarkerToolPart(part, tagId, stripAttachments = false) {
|
|
5621
5800
|
if (!isRecord(part))
|
|
5622
|
-
return;
|
|
5801
|
+
return part;
|
|
5623
5802
|
const sentinel = `[dropped §${tagId}§]`;
|
|
5803
|
+
const input = readToolPartInput(part);
|
|
5804
|
+
const rewriteInput = input !== null && needsEditMarker(input);
|
|
5624
5805
|
if (part.type === "tool" && isRecord(part.state)) {
|
|
5625
|
-
part.state.output
|
|
5806
|
+
if (part.state.output === sentinel && !rewriteInput && !needsAttachmentStrip(part.state, stripAttachments))
|
|
5807
|
+
return part;
|
|
5808
|
+
const clone = clonePart(part);
|
|
5809
|
+
const state = clone.state;
|
|
5810
|
+
state.output = sentinel;
|
|
5626
5811
|
if (stripAttachments)
|
|
5627
|
-
|
|
5628
|
-
if (
|
|
5629
|
-
|
|
5630
|
-
|
|
5812
|
+
state.attachments = [];
|
|
5813
|
+
if (rewriteInput) {
|
|
5814
|
+
state.input = { ...input };
|
|
5815
|
+
applyEditMarkerToInput(state.input);
|
|
5816
|
+
}
|
|
5817
|
+
return clone;
|
|
5631
5818
|
}
|
|
5632
5819
|
if (part.type === "tool_result") {
|
|
5633
|
-
part.content
|
|
5634
|
-
return;
|
|
5635
|
-
}
|
|
5636
|
-
if (part.type === "tool-invocation" && isRecord(part.args)) {
|
|
5637
|
-
applyEditMarkerToInput(part.args);
|
|
5638
|
-
return;
|
|
5820
|
+
return part.content === sentinel ? part : { ...part, content: sentinel };
|
|
5639
5821
|
}
|
|
5640
|
-
if (
|
|
5641
|
-
|
|
5822
|
+
if (rewriteInput) {
|
|
5823
|
+
const markedInput = { ...input };
|
|
5824
|
+
applyEditMarkerToInput(markedInput);
|
|
5825
|
+
return { ...part, [part.type === "tool-invocation" ? "args" : "input"]: markedInput };
|
|
5642
5826
|
}
|
|
5827
|
+
return part;
|
|
5643
5828
|
}
|
|
5644
5829
|
function readToolPartInput(part) {
|
|
5645
5830
|
if (!isRecord(part))
|
|
@@ -5868,9 +6053,7 @@ function createToolDropTarget(compositeKey, thinkingParts, index, batch, tagId)
|
|
|
5868
6053
|
parts
|
|
5869
6054
|
});
|
|
5870
6055
|
const before = count(parts);
|
|
5871
|
-
const retained = skeleton ?
|
|
5872
|
-
for (const part of retained)
|
|
5873
|
-
skeletonRealToolPart(part, tagId);
|
|
6056
|
+
const retained = skeleton ? parts.map((part) => skeletonRealToolPart(part, tagId)) : [];
|
|
5874
6057
|
const after = count(retained);
|
|
5875
6058
|
return {
|
|
5876
6059
|
beforeTools: before.toolCall,
|
|
@@ -5918,6 +6101,10 @@ function createToolDropTarget(compositeKey, thinkingParts, index, batch, tagId)
|
|
|
5918
6101
|
return false;
|
|
5919
6102
|
return batch.wouldStrandConversationEnd(entry.occurrences);
|
|
5920
6103
|
},
|
|
6104
|
+
prepareDrop: () => {
|
|
6105
|
+
const entry = index.get(compositeKey);
|
|
6106
|
+
return !!entry && entry.occurrences.length > 0 && entry.hasResult;
|
|
6107
|
+
},
|
|
5921
6108
|
canDrop: () => {
|
|
5922
6109
|
const entry = index.get(compositeKey);
|
|
5923
6110
|
return !!entry && entry.occurrences.length > 0 && entry.hasResult && !entry.occurrences.some((occurrence) => toolPartHasUserAnswer(occurrence.part));
|
|
@@ -6180,6 +6367,21 @@ function visitRawSessionMessages2(sessionId, fromOrdinal, toOrdinal, visit, opti
|
|
|
6180
6367
|
after = last ? { timeCreated: last.createdAt ?? 0, id: last.id } : undefined;
|
|
6181
6368
|
}
|
|
6182
6369
|
}
|
|
6370
|
+
async function visitRawSessionMessagesAsync2(sessionId, fromOrdinal, toOrdinal, visit, options = {}) {
|
|
6371
|
+
const from = Math.max(1, Math.floor(fromOrdinal));
|
|
6372
|
+
const to = Math.floor(toOrdinal);
|
|
6373
|
+
if (to < from)
|
|
6374
|
+
return;
|
|
6375
|
+
const provider = sessionProviders.get(sessionId)?.provider;
|
|
6376
|
+
if (!provider?.iterateMessageRangeAsync) {
|
|
6377
|
+
visitRawSessionMessages2(sessionId, from, to, visit, options);
|
|
6378
|
+
return;
|
|
6379
|
+
}
|
|
6380
|
+
for await (const message of provider.iterateMessageRangeAsync(from, to)) {
|
|
6381
|
+
if (!visit(message))
|
|
6382
|
+
return;
|
|
6383
|
+
}
|
|
6384
|
+
}
|
|
6183
6385
|
function readRawSessionMessageRange2(sessionId, fromOrdinal, toOrdinal) {
|
|
6184
6386
|
const from = Math.max(1, Math.floor(fromOrdinal));
|
|
6185
6387
|
const to = Math.floor(toOrdinal);
|
|
@@ -6403,13 +6605,20 @@ function readRawSessionMessageOrdinalById2(sessionId, messageId) {
|
|
|
6403
6605
|
return null;
|
|
6404
6606
|
return withReadOnlySessionDb((db) => readRawSessionMessageOrdinalByIdFromDb2(db, sessionId, messageId));
|
|
6405
6607
|
}
|
|
6608
|
+
function readRawSessionMessageOrderPosition(sessionId, messageId) {
|
|
6609
|
+
const provider = sessionProviders.get(sessionId)?.provider;
|
|
6610
|
+
if (provider) {
|
|
6611
|
+
return provider.readMessageOrderById ? provider.readMessageOrderById(messageId) : provider.readMessageOrdinalById?.(messageId) ?? null;
|
|
6612
|
+
}
|
|
6613
|
+
return readRawSessionMessageOrdinalById2(sessionId, messageId);
|
|
6614
|
+
}
|
|
6406
6615
|
function compareRawSessionMessageOrder2(sessionId, leftId, rightId) {
|
|
6407
6616
|
const provider = sessionProviders.get(sessionId)?.provider;
|
|
6408
6617
|
if (provider) {
|
|
6409
|
-
if (!provider.readMessageOrdinalById)
|
|
6618
|
+
if (!provider.readMessageOrderById && !provider.readMessageOrdinalById)
|
|
6410
6619
|
return null;
|
|
6411
|
-
const left =
|
|
6412
|
-
const right =
|
|
6620
|
+
const left = readRawSessionMessageOrderPosition(sessionId, leftId);
|
|
6621
|
+
const right = readRawSessionMessageOrderPosition(sessionId, rightId);
|
|
6413
6622
|
return left === null || right === null ? null : left - right;
|
|
6414
6623
|
}
|
|
6415
6624
|
if (!openCodeDbExists())
|
|
@@ -6605,7 +6814,10 @@ function readSessionChunk2(sessionId, tokenBudget, offset = 1, eligibleEndOrdina
|
|
|
6605
6814
|
if (state?.input === undefined && state?.output !== undefined && typeof p.callID === "string") {
|
|
6606
6815
|
const call = calls.get(p.callID);
|
|
6607
6816
|
if (call) {
|
|
6608
|
-
const expansion = expandToolPart({
|
|
6817
|
+
const expansion = expandToolPart({
|
|
6818
|
+
...call,
|
|
6819
|
+
state: { ...call.state, output: state.output }
|
|
6820
|
+
}, options.expandTools);
|
|
6609
6821
|
if (expansion !== null) {
|
|
6610
6822
|
expandedParts.set(call, expansion);
|
|
6611
6823
|
expandedResults.add(part);
|
|
@@ -6888,4 +7100,4 @@ function readRawSessionSeedTail2(sessionId, boundaryId, onQuery) {
|
|
|
6888
7100
|
});
|
|
6889
7101
|
}
|
|
6890
7102
|
|
|
6891
|
-
export { detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, expandToolPart, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, buildFileSourceContent, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, isEditTool, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, MAX_EXECUTE_THRESHOLD, escalationBands, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, getProtectionWindowForSession, 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, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getReasoningRemovalState, addRemovedReasoningIds, markDropLeavesReasoning, 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, 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 };
|
|
7103
|
+
export { detectLatestTurnThinkingMismatch, isPrefixBoundThinkingModel, detectOverflow, SESSION_META_SELECT_COLUMNS, META_COLUMNS, BOOLEAN_META_KEYS, NULL_BIND_META_KEYS, isSessionMetaRow, getDefaultSessionMeta, ensureSessionMetaRow, toSessionMeta, persistCachedM0, clearCachedM0M1, expandToolPart, markHostUnservedRow, retreatPastHostUnservedRows, snapTerminalCompartmentToServedRow, isHostRenderedSystemMessage, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, stripSystemInjection, isTextPart, isToolPartWithOutput, isFilePart, buildFileSourceContent, toolPartHasUserAnswer, DreamTokenBudgetExceeded, TOKEN_BUDGET_FINALIZE_MESSAGE, registerBudgetFinalizeChild, releaseBudgetFinalizeChild, createDreamTokenBudget, recordToolParameters, createDroppedInputGuard, assertExecutableToolInput, isEditTool, MERGED_REASONING_PARTS_PREFIX, decodeMergedReasoningParts, MAX_EXECUTE_THRESHOLD, escalationBands, HYGIENE_PROVIDER_UNITS_VERSION, sessionDecisionCalibration, transitionSessionHygieneUnits, getProtectionWindowForSession, 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, clearPersistedReasoningWatermark, getEmergencyInputSample, setEmergencyDropSample, clearEmergencyDropSample, getLastNudgeUndropped, setLastNudgeUndropped, getChannel1NudgeState, setChannel1NudgeState, markChannel1PostReduceGracePending, captureChannel1PostReduceGraceBaseline, getChannel2NudgeState, setChannel2NudgeState, casChannel2NudgeState, claimChannel2NudgeState, casChannel2NudgeClaim, getPersistedNoteNudge, setPersistedNoteNudgeTrigger, setPersistedNoteNudgeTriggerMessageId, getNoteNudgeAnchors, getAutoSearchHintDecisions, deliverNoteNudgeAtomic, appendAutoSearchHintDecision, pruneNoteNudgeAnchors, queueAutoSearchHintDecisionRetirement, flushAutoSearchHintDecisionRetirement, getPersistedTodoPermissionDenied, setPersistedTodoPermissionDenied, getPersistedTodoSyntheticAnchor, setPersistedTodoSyntheticAnchor, clearPersistedTodoSyntheticAnchor, getNoteLastReadAt, setNoteLastReadAt, getHistorianFailureState, incrementHistorianFailure, clearHistorianFailureState, getOverflowState, loadTransformPassStateSnapshot, recordOverflowDetected, recordDetectedContextLimit, clearEmergencyRecovery, clearDetectedContextLimit, getPersistedCompactionMarkerState, setPersistedCompactionMarkerState, getDeferredClearedCompactionMarkerState, retireDeferredClearedCompactionMarkerState, parseStrippedPlaceholderState, serializeStrippedPlaceholderState, getStrippedPlaceholderIds, applyStrippedPlaceholderDelta, THINKING_BINDING_RECOVERY_FROZEN_PREFIX, THINKING_BINDING_STRIP_ORDER_END_MARKER, thinkingBindingRecoveryFrozenId, getThinkingBindingRecoveryTarget, clearThinkingBindingRecoveryIf, getMergedReasoningStrippedIds, addMergedReasoningStrippedIds, getTrailingBlankDecisions, addTrailingBlankDecisions, demoteTrailingBlankKeepDecisions, getStaleReduceStrippedIds, addStaleReduceStrippedIds, getProcessedImageStrippedIds, parseProcessedImageMarkers, serializeProcessedImageMarkers, getProcessedImageMarkers, addProcessedImageStrippedIds, getPendingCompactionMarkerState, getCompactionMarkerHealth, loadPostprocessReplaySnapshot, setPendingCompactionMarkerState, replacePendingCompactionMarkerStateIf, clearPendingCompactionMarkerStateIf, getPendingPiCompactionMarkerState, clearPendingPiCompactionMarkerStateIf, logPiCompactionMarkerClear, setSessionWorkMetrics, getObservedEpochFloor, resolveEpochFloorForPass, getReasoningRemovalState, addRemovedReasoningIds, markDropLeavesReasoning, 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, 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 };
|