@cortexkit/opencode-magic-context 0.47.0 → 0.48.0
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/agents/magic-context-prompt.d.ts +1 -1
- package/dist/agents/magic-context-prompt.d.ts.map +1 -1
- package/dist/{announcement-y35wzg2r.js → announcement-fp14dw0n.js} +3 -2
- package/dist/auto-search-worker.js +27 -30
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/mural-model-deprecation.d.ts +15 -0
- package/dist/config/mural-model-deprecation.d.ts.map +1 -0
- package/dist/config/project-security.d.ts +0 -3
- package/dist/config/project-security.d.ts.map +1 -1
- package/dist/config/schema/magic-context.d.ts +10 -6
- package/dist/config/schema/magic-context.d.ts.map +1 -1
- package/dist/{conflict-warning-hook-z44ynfz7.js → conflict-warning-hook-w8cykrnf.js} +12 -10
- package/dist/{context-wq4ffwyb.js → context-m0cy262m.js} +2690 -1903
- package/dist/{derive-budgets-ke12jnnh.js → derive-budgets-sg0xsq7s.js} +4 -3
- package/dist/embedding-activity-g1dhes6g.js +10 -0
- package/dist/embedding-backfill-9rcm1mfy.js +21 -0
- package/dist/embedding-cache-mgyr73ef.js +16 -0
- package/dist/embedding-worker.js +11 -9
- package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/evaluate-smart-notes.d.ts +1 -0
- package/dist/features/magic-context/dreamer/evaluate-smart-notes.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/task-config.d.ts +3 -3
- package/dist/features/magic-context/dreamer/task-config.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/task-executor.d.ts +1 -1
- package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/task-registry.d.ts +1 -0
- package/dist/features/magic-context/dreamer/task-registry.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
- package/dist/features/magic-context/message-index-async.d.ts +16 -3
- package/dist/features/magic-context/message-index-async.d.ts.map +1 -1
- package/dist/features/magic-context/message-index-bounded.d.ts +17 -0
- package/dist/features/magic-context/message-index-bounded.d.ts.map +1 -0
- package/dist/features/magic-context/message-index.d.ts +7 -1
- package/dist/features/magic-context/message-index.d.ts.map +1 -1
- package/dist/features/magic-context/mural/render-trigger.d.ts +7 -4
- package/dist/features/magic-context/mural/render-trigger.d.ts.map +1 -1
- package/dist/features/magic-context/pi-content-decisions.d.ts +7 -1
- package/dist/features/magic-context/pi-content-decisions.d.ts.map +1 -1
- package/dist/features/magic-context/search.d.ts +29 -0
- package/dist/features/magic-context/search.d.ts.map +1 -1
- package/dist/features/magic-context/session-activity.d.ts.map +1 -1
- package/dist/features/magic-context/smart-notes/runner.d.ts +1 -0
- package/dist/features/magic-context/smart-notes/runner.d.ts.map +1 -1
- package/dist/features/magic-context/storage-db.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta-session.d.ts +6 -0
- package/dist/features/magic-context/storage-meta-session.d.ts.map +1 -1
- package/dist/features/magic-context/storage-tag-identity-revision.d.ts +30 -0
- package/dist/features/magic-context/storage-tag-identity-revision.d.ts.map +1 -0
- package/dist/features/magic-context/storage-tags.d.ts +144 -4
- package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
- package/dist/features/magic-context/subagent-token-capture.d.ts.map +1 -1
- package/dist/features/magic-context/transform-decision-log.d.ts +1 -1
- package/dist/features/magic-context/transform-decision-log.d.ts.map +1 -1
- package/dist/harness-e4avh192.js +10 -0
- package/dist/hooks/magic-context/active-anthropic-turn.d.ts +2 -0
- package/dist/hooks/magic-context/active-anthropic-turn.d.ts.map +1 -1
- package/dist/hooks/magic-context/auto-search-worker-client.d.ts +32 -3
- package/dist/hooks/magic-context/auto-search-worker-client.d.ts.map +1 -1
- package/dist/hooks/magic-context/command-handler.d.ts +1 -0
- package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
- package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
- package/dist/hooks/magic-context/hook.d.ts +1 -1
- package/dist/hooks/magic-context/hook.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 +4 -3
- package/dist/hooks/magic-context/lkg-persist.d.ts.map +1 -1
- package/dist/hooks/magic-context/lkg-replay.d.ts +13 -8
- package/dist/hooks/magic-context/lkg-replay.d.ts.map +1 -1
- package/dist/hooks/magic-context/lkg-slot.d.ts +139 -2
- package/dist/hooks/magic-context/lkg-slot.d.ts.map +1 -1
- package/dist/hooks/magic-context/message-search-accepting-silent-worker.fixture.d.ts +2 -0
- package/dist/hooks/magic-context/message-search-accepting-silent-worker.fixture.d.ts.map +1 -0
- package/dist/hooks/magic-context/oc-stall-r2-warmup-worker.fixture.d.ts +2 -0
- package/dist/hooks/magic-context/oc-stall-r2-warmup-worker.fixture.d.ts.map +1 -0
- package/dist/hooks/magic-context/oc-stall-search-review.fixture.d.ts +2 -0
- package/dist/hooks/magic-context/oc-stall-search-review.fixture.d.ts.map +1 -0
- package/dist/hooks/magic-context/opencode1-to-model-messages.fixture.d.ts +63 -0
- package/dist/hooks/magic-context/opencode1-to-model-messages.fixture.d.ts.map +1 -0
- package/dist/hooks/magic-context/provider-visible-parts.d.ts +45 -0
- package/dist/hooks/magic-context/provider-visible-parts.d.ts.map +1 -0
- package/dist/hooks/magic-context/raw-ordinal-warmup-silent-worker.fixture.d.ts +2 -0
- package/dist/hooks/magic-context/raw-ordinal-warmup-silent-worker.fixture.d.ts.map +1 -0
- package/dist/hooks/magic-context/raw-ordinal-warmup-worker.d.ts +2 -0
- package/dist/hooks/magic-context/raw-ordinal-warmup-worker.d.ts.map +1 -0
- package/dist/hooks/magic-context/raw-ordinal-warmup.d.ts +87 -0
- package/dist/hooks/magic-context/raw-ordinal-warmup.d.ts.map +1 -0
- package/dist/hooks/magic-context/read-session-chunk.d.ts +12 -0
- package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
- package/dist/hooks/magic-context/read-session-db.d.ts.map +1 -1
- package/dist/hooks/magic-context/read-session-formatting.d.ts +5 -0
- package/dist/hooks/magic-context/read-session-formatting.d.ts.map +1 -1
- package/dist/hooks/magic-context/read-session-raw.d.ts +83 -1
- package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
- package/dist/hooks/magic-context/read-session-true-raw-tokens.d.ts.map +1 -1
- package/dist/hooks/magic-context/reasoning-budget.d.ts.map +1 -1
- package/dist/hooks/magic-context/sentinel.d.ts +41 -1
- package/dist/hooks/magic-context/sentinel.d.ts.map +1 -1
- package/dist/hooks/magic-context/strip-content.d.ts +14 -2
- package/dist/hooks/magic-context/strip-content.d.ts.map +1 -1
- package/dist/hooks/magic-context/system-prompt-hash.d.ts +1 -0
- package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
- package/dist/hooks/magic-context/tag-messages.d.ts +8 -0
- package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
- package/dist/hooks/magic-context/tag-owner-warmup.d.ts +6 -0
- package/dist/hooks/magic-context/tag-owner-warmup.d.ts.map +1 -0
- package/dist/hooks/magic-context/tail-hygiene-walk.d.ts.map +1 -1
- package/dist/hooks/magic-context/token-count-exact.d.ts +35 -0
- package/dist/hooks/magic-context/token-count-exact.d.ts.map +1 -0
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform.d.ts +8 -2
- package/dist/hooks/magic-context/transform.d.ts.map +1 -1
- package/dist/hooks/magic-context/wrapup-orchestrator.d.ts.map +1 -1
- package/dist/{index-w2t4ah5j.js → index-0an7742d.js} +14072 -14286
- package/dist/index-0qhce371.js +120 -0
- package/dist/{index-q6hef7fh.js → index-0sahzkwr.js} +6 -19
- package/dist/{index-k5bdx1bx.js → index-0w56v4fm.js} +3 -5
- package/dist/index-14cjxt20.js +819 -0
- package/dist/{v2/server-51dv1pr5.js → index-1qb0z7wa.js} +301 -27
- package/dist/index-2bvekkfy.js +11 -0
- package/dist/{index-sj29b3z2.js → index-2y0s2hep.js} +3 -3
- package/dist/index-4dhv7mqz.js +131 -0
- package/dist/{index-b35pxds2.js → index-58e3y90n.js} +1 -18
- package/dist/index-5zygecde.js +152 -0
- package/dist/{index-6d9e1m08.js → index-692jzy0p.js} +17775 -17450
- package/dist/index-72nhv486.js +2307 -0
- package/dist/index-7jzrrxap.js +931 -0
- package/dist/{v2/server-njt3np1k.js → index-7mx8v0pw.js} +220 -961
- package/dist/index-8ajstryz.js +18 -0
- package/dist/{index-sfpzqvdz.js → index-8cd2j99z.js} +2 -3
- package/dist/{index-hybnrwq0.js → index-8j7gqj40.js} +131 -128
- package/dist/index-bdckkfw6.js +3261 -0
- package/dist/{index-m5fe6jch.js → index-bhvjj0ys.js} +152 -2453
- package/dist/index-c43kr12f.js +3030 -0
- package/dist/index-cb7emxgj.js +984 -0
- package/dist/index-d9vfe7xq.js +16 -0
- package/dist/{index-5gq3b2ya.js → index-db7zwa3v.js} +147 -209
- package/dist/index-dhwzyd54.js +1142 -0
- package/dist/{index-8da2zjhz.js → index-eeezr5zz.js} +9 -7
- package/dist/{index-cwf6s3ay.js → index-f0h6xwqm.js} +2828 -2618
- package/dist/index-fb3zxn06.js +13 -0
- package/dist/index-fbv1dn35.js +171 -0
- package/dist/index-fr0wbhdn.js +43 -0
- package/dist/{index-mc22ayvf.js → index-ghc9f0n7.js} +11 -9
- package/dist/{index-fzbvakh0.js → index-jcbd3znx.js} +3 -3
- package/dist/{index-5a2r0p9f.js → index-k1xb52kd.js} +20 -13
- package/dist/index-k9nnwad5.js +3532 -0
- package/dist/{index-wx8a6bw3.js → index-kb9nn0a0.js} +270 -53
- package/dist/index-knh4y330.js +566 -0
- package/dist/{v2/server-fq7kq32k.js → index-mfkzp7qj.js} +1 -16
- package/dist/{index-gg8j07zz.js → index-mmyh6d8f.js} +4 -4
- package/dist/index-pavzsdc6.js +17 -0
- package/dist/{index-0c82743p.js → index-pdecwzrd.js} +17 -15
- package/dist/index-pg50n748.js +1060 -0
- package/dist/{index-92bp57hg.js → index-q2tqeqde.js} +123 -80
- package/dist/{index-rrrsepyw.js → index-q7h7csab.js} +90 -85
- package/dist/{v2/server-yr3zj7e7.js → index-qt1qqasc.js} +6 -7
- package/dist/{index-6wkcswft.js → index-ty64eqcn.js} +28 -18
- package/dist/{index-adwfkpex.js → index-yq8n9qcb.js} +23 -23
- package/dist/{index-9pk9exrb.js → index-z8e0psj8.js} +18 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +586 -344
- package/dist/logger-d3wex3dz.js +20 -0
- package/dist/message-index-bounded-7ezbgddp.js +124 -0
- package/dist/{v2/message-time-backfill-1f9tzvcs.js → message-time-backfill-brbd63hv.js} +8 -6
- package/dist/migration-worker.js +25 -18
- package/dist/{model-resolution-xhfmyyvy.js → model-resolution-nx97z3x7.js} +1 -1
- package/dist/plugin/dream-timer.d.ts +1 -1
- package/dist/plugin/dream-timer.d.ts.map +1 -1
- package/dist/plugin/hooks/create-session-hooks.d.ts +1 -0
- package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
- package/dist/plugin/host-stall-profiler-report.d.ts +1 -66
- package/dist/plugin/host-stall-profiler-report.d.ts.map +1 -1
- package/dist/plugin/host-stall-profiler.d.ts +2 -95
- package/dist/plugin/host-stall-profiler.d.ts.map +1 -1
- package/dist/plugin/messages-transform.d.ts +0 -13
- package/dist/plugin/messages-transform.d.ts.map +1 -1
- package/dist/plugin/rpc-handlers.d.ts.map +1 -1
- package/dist/plugin/tool-registry.d.ts.map +1 -1
- package/dist/project-embedding-registry-7qzptcw7.js +88 -0
- package/dist/raw-ordinal-warmup-worker.js +60 -0
- package/dist/{read-session-chunk-4jey7hpt.js → read-session-chunk-6k83m4fj.js} +15 -9
- package/dist/read-session-raw-3g9qy1xa.js +58 -0
- package/dist/recomp-orchestrator-d3fp1cy0.js +57 -0
- package/dist/{v2/safe-notification-target-eb1n1vfb.js → safe-notification-target-5ffqq32m.js} +4 -2
- package/dist/search-epax1ecv.js +45 -0
- package/dist/{v2/send-session-notification-c0wtscea.js → send-session-notification-erecz4y4.js} +10 -7
- package/dist/shared/conflict-detector.d.ts.map +1 -1
- package/dist/shared/host-stall-profiler-bun.d.ts +46 -0
- package/dist/shared/host-stall-profiler-bun.d.ts.map +1 -0
- package/dist/shared/host-stall-profiler-common.d.ts +58 -0
- package/dist/shared/host-stall-profiler-common.d.ts.map +1 -0
- package/dist/shared/host-stall-profiler-node.d.ts +36 -0
- package/dist/shared/host-stall-profiler-node.d.ts.map +1 -0
- package/dist/shared/host-stall-profiler-report.d.ts +68 -0
- package/dist/shared/host-stall-profiler-report.d.ts.map +1 -0
- package/dist/shared/host-stall-profiler.d.ts +5 -0
- package/dist/shared/host-stall-profiler.d.ts.map +1 -0
- package/dist/shared/model-resolution.d.ts +2 -3
- package/dist/shared/model-resolution.d.ts.map +1 -1
- package/dist/shared/sqlite.d.ts +30 -0
- package/dist/shared/sqlite.d.ts.map +1 -1
- package/dist/shared/stable-json.d.ts.map +1 -1
- package/dist/shared/user-facing-codes.d.ts +0 -5
- package/dist/shared/user-facing-codes.d.ts.map +1 -1
- package/dist/sqlite-context-pragmas-mv9jqwjh.js +6 -0
- package/dist/sqlite-mhjkerzq.js +46 -0
- package/dist/storage-memory-07fx57k6.js +71 -0
- package/dist/storage-tags-d3b0v2ss.js +131 -0
- package/dist/{task-config-v81k8jvk.js → task-config-cgpg0nvh.js} +2 -2
- package/dist/tools/ctx-expand/tools.d.ts.map +1 -1
- package/dist/tools/ctx-note/constants.d.ts +4 -0
- package/dist/tools/ctx-note/constants.d.ts.map +1 -1
- package/dist/tools/ctx-note/tools.d.ts +1 -0
- package/dist/tools/ctx-note/tools.d.ts.map +1 -1
- package/dist/tools/ctx-search/tools.d.ts.map +1 -1
- package/dist/tools/parameter-descriptions.d.ts +2 -2
- package/dist/tools/parameter-descriptions.d.ts.map +1 -1
- package/dist/{transform-postprocess-phase-z5hzpsxv.js → transform-postprocess-phase-spcy2qre.js} +35 -20
- package/dist/transformers-node-wasm.js +18415 -18415
- package/dist/v2/auto-search-worker.js +27 -30
- package/dist/v2/{context-14v1hr8b.js → context-sf98kstd.js} +3737 -3004
- package/dist/v2/{derive-budgets-nc9avxz8.js → derive-budgets-3vc0y84t.js} +4 -3
- package/dist/v2/embedding-activity-g1dhes6g.js +10 -0
- package/dist/v2/embedding-backfill-vn8g1nh1.js +21 -0
- package/dist/v2/embedding-cache-mgyr73ef.js +16 -0
- package/dist/v2/embedding-worker.js +12 -9
- package/dist/v2/fold/host-media.d.ts +4 -0
- package/dist/v2/fold/host-media.d.ts.map +1 -1
- package/dist/v2/fold/memory-cache.d.ts +70 -0
- package/dist/v2/fold/memory-cache.d.ts.map +1 -0
- package/dist/v2/fold/native-codec.d.ts +10 -0
- package/dist/v2/fold/native-codec.d.ts.map +1 -0
- package/dist/v2/fold/native-replay.d.ts +58 -0
- package/dist/v2/fold/native-replay.d.ts.map +1 -0
- package/dist/v2/fold/policy.d.ts +24 -0
- package/dist/v2/fold/policy.d.ts.map +1 -0
- package/dist/v2/harness-e4avh192.js +10 -0
- package/dist/v2/hooks/context.d.ts +2 -2
- package/dist/v2/hooks/context.d.ts.map +1 -1
- package/dist/v2/hooks/dream-manual.d.ts +1 -1
- package/dist/v2/hooks/dream-manual.d.ts.map +1 -1
- package/dist/v2/hooks/dream-timer.d.ts.map +1 -1
- package/dist/v2/hooks/dream-trigger.d.ts +1 -2
- package/dist/v2/hooks/dream-trigger.d.ts.map +1 -1
- package/dist/v2/hooks/payload.d.ts.map +1 -1
- package/dist/v2/hooks/tools.d.ts.map +1 -1
- package/dist/v2/hooks/types.d.ts +6 -0
- package/dist/v2/hooks/types.d.ts.map +1 -1
- package/dist/v2/logger-mxd0ym09.js +19 -0
- package/dist/v2/message-index-bounded-dy3s2k1e.js +123 -0
- package/dist/{message-time-backfill-r5epkzj3.js → v2/message-time-backfill-gtx1pwk1.js} +7 -7
- package/dist/v2/migration-worker.js +24 -17
- package/dist/v2/{model-resolution-xhfmyyvy.js → model-resolution-nx97z3x7.js} +1 -1
- package/dist/v2/project-embedding-registry-1tgba5dv.js +86 -0
- package/dist/v2/raw-ordinal-warmup-worker.js +60 -0
- package/dist/v2/{read-session-chunk-gyyv7w2r.js → read-session-chunk-rh4khdkv.js} +14 -8
- package/dist/v2/read-session-raw-bsbmf0vj.js +57 -0
- package/dist/v2/recomp-orchestrator-az61rfcg.js +57 -0
- package/dist/{safe-notification-target-43r8jsxw.js → v2/safe-notification-target-73ax1p5v.js} +3 -3
- package/dist/v2/search-nzkwrc6n.js +45 -0
- package/dist/{send-session-notification-0m68ms3n.js → v2/send-session-notification-6km439kn.js} +9 -8
- package/dist/{index-5eqk6z3s.js → v2/server-1r6pmz4f.js} +301 -27
- package/dist/v2/server-2bvekkfy.js +11 -0
- package/dist/v2/server-2fbhp79z.js +3205 -0
- package/dist/v2/{server-ajzeteqw.js → server-2ra6pwf3.js} +1 -18
- package/dist/v2/server-4dhv7mqz.js +131 -0
- package/dist/v2/{server-y10vbq6y.js → server-4k748ke6.js} +11 -1053
- package/dist/v2/{server-vs5gpnd4.js → server-52awr2mw.js} +81 -145
- package/dist/v2/{server-1qbnzc80.js → server-5m3dt5r1.js} +136 -148
- package/dist/v2/server-686jg6eb.js +3508 -0
- package/dist/v2/server-7jzrrxap.js +931 -0
- package/dist/v2/server-7wwc2nga.js +3023 -0
- package/dist/v2/server-8ajstryz.js +18 -0
- package/dist/v2/{server-sfpzqvdz.js → server-8cd2j99z.js} +2 -3
- package/dist/v2/{server-d0sraw7m.js → server-8pyt7hev.js} +291 -286
- package/dist/v2/server-8tqanswc.js +984 -0
- package/dist/v2/{server-14vq4kpm.js → server-aan4q8mx.js} +3 -3
- package/dist/v2/server-d9vfe7xq.js +16 -0
- package/dist/{index-x3kwrmqk.js → v2/server-e0vdaae2.js} +35 -792
- package/dist/v2/server-ezhze64f.js +1048 -0
- package/dist/v2/server-fb3zxn06.js +13 -0
- package/dist/v2/server-fr0wbhdn.js +43 -0
- package/dist/v2/server-g5r0n3b6.js +1137 -0
- package/dist/v2/server-gjcr4w98.js +154 -0
- package/dist/v2/server-k228xhjg.js +171 -0
- package/dist/v2/{server-nf82q6pt.js → server-k8x2rbxc.js} +5946 -5602
- package/dist/v2/{server-wx8a6bw3.js → server-kb9nn0a0.js} +270 -53
- package/dist/{index-rrbbspwh.js → v2/server-mfkzp7qj.js} +1 -16
- package/dist/v2/server-pavzsdc6.js +17 -0
- package/dist/v2/{server-e0c1b7a7.js → server-psqc7e9n.js} +122 -79
- package/dist/{index-yr3zj7e7.js → v2/server-qt1qqasc.js} +6 -7
- package/dist/v2/server-qye6ykf7.js +120 -0
- package/dist/v2/{server-qdjnb2z1.js → server-r5p3b1wy.js} +11 -9
- package/dist/v2/server-sggvvzhb.js +759 -0
- package/dist/v2/{server-cpepxy2q.js → server-v06jcv0w.js} +14 -12
- package/dist/v2/server-vqpf3167.js +1048 -0
- package/dist/v2/{server-rz514f14.js → server-x2g40a71.js} +2044 -2060
- package/dist/v2/{server-vd4e7174.js → server-xdfwt6kh.js} +20 -16
- package/dist/v2/{server-efhwzx05.js → server-xxm59eww.js} +23 -23
- package/dist/v2/server-yczc713m.js +564 -0
- package/dist/v2/{server-fcdehk1s.js → server-z2037m6z.js} +4 -4
- package/dist/v2/{server-50hvkg3v.js → server-zm570tr2.js} +160 -158
- package/dist/v2/{server-6r257mf5.js → server-zxhgvsf9.js} +3 -3
- package/dist/v2/server.js +16 -14
- package/dist/v2/sqlite-context-pragmas-mv9jqwjh.js +6 -0
- package/dist/v2/sqlite-mhjkerzq.js +46 -0
- package/dist/v2/storage-memory-07fx57k6.js +71 -0
- package/dist/v2/storage-tags-w4tv77sn.js +130 -0
- package/dist/v2/store-reader.d.ts +16 -0
- package/dist/v2/store-reader.d.ts.map +1 -1
- package/dist/v2/{task-config-tbndqyny.js → task-config-x0hq3qfd.js} +2 -2
- package/dist/v2/transformers-node-wasm.js +18415 -18415
- package/dist/v2/tui/index.d.ts.map +1 -1
- package/dist/v2/tui/types.d.ts +1 -10
- package/dist/v2/tui/types.d.ts.map +1 -1
- package/dist/v2/{wrapup-orchestrator-nbz854vc.js → wrapup-orchestrator-mz7efs7w.js} +51 -30
- package/dist/wrapup-orchestrator-amzta1t4.js +44 -0
- package/package.json +4 -3
- package/src/agents/magic-context-prompt.ts +27 -2
- package/src/agents/smart-notes-enabled.test.ts +294 -0
- package/src/agents/smart-notes-on.golden.json +70 -0
- package/src/config/index.test.ts +67 -1
- package/src/config/index.ts +2 -0
- package/src/config/latch-permanence-guard.test.ts +4 -0
- package/src/config/mural-model-deprecation.ts +24 -0
- package/src/config/project-security.hostile-matrix.test.ts +4 -44
- package/src/config/project-security.test.ts +9 -14
- package/src/config/project-security.ts +13 -55
- package/src/config/schema/magic-context.test.ts +2 -2
- package/src/config/schema/magic-context.ts +16 -10
- package/src/features/magic-context/dreamer/task-registry.ts +6 -0
- package/src/shared/conflict-detector.test.ts +56 -0
- package/src/shared/conflict-detector.ts +16 -5
- package/src/shared/host-stall-profiler-bun.ts +358 -0
- package/src/shared/host-stall-profiler-common.ts +159 -0
- package/src/shared/host-stall-profiler-node.test.ts +234 -0
- package/src/shared/host-stall-profiler-node.ts +274 -0
- package/src/shared/host-stall-profiler-report.ts +248 -0
- package/src/shared/host-stall-profiler.ts +57 -0
- package/src/shared/model-resolution.test.ts +54 -17
- package/src/shared/model-resolution.ts +6 -17
- package/src/shared/sqlite.test.ts +52 -0
- package/src/shared/sqlite.ts +339 -23
- package/src/shared/stable-json-linear.test.ts +109 -0
- package/src/shared/stable-json.ts +37 -7
- package/src/shared/user-facing-codes.ts +2 -6
- package/src/shared/write-transaction-attribution.test.ts +2 -2
- package/src/v2/tui/host-contract.test.ts +41 -67
- package/src/v2/tui/index.ts +6 -214
- package/src/v2/tui/types.ts +5 -17
- package/dist/features/magic-context/checkout-claim-fake-subc.test-support.d.ts +0 -45
- package/dist/features/magic-context/checkout-claim-fake-subc.test-support.d.ts.map +0 -1
- package/dist/features/magic-context/checkout-claim.d.ts +0 -155
- package/dist/features/magic-context/checkout-claim.d.ts.map +0 -1
- package/dist/index-bb36vgr3.js +0 -6608
- package/dist/index-fnn5pjtt.js +0 -6554
- package/dist/recomp-orchestrator-rervg6q4.js +0 -42
- package/dist/v2/recomp-orchestrator-42vjba7p.js +0 -42
- package/dist/v2/server-3trjk1hx.js +0 -6360
- package/dist/v2/server-nm9n3aqq.js +0 -6461
- package/dist/wrapup-orchestrator-b2dztrar.js +0 -29
- /package/dist/{index-5prbx026.js → index-2pp04pmg.js} +0 -0
- /package/dist/v2/{index-5prbx026.js → index-2pp04pmg.js} +0 -0
|
@@ -1,29 +1,33 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sanitizeDiagnosticText,
|
|
3
3
|
importPluginModule,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
} from "./index-
|
|
4
|
+
writeForwardedLogLine2,
|
|
5
|
+
log2
|
|
6
|
+
} from "./index-8j7gqj40.js";
|
|
7
|
+
import {
|
|
8
|
+
harnessOwnsOpenCodeStore2
|
|
9
|
+
} from "./index-pavzsdc6.js";
|
|
7
10
|
import {
|
|
8
|
-
harnessOwnsOpenCodeStore,
|
|
9
11
|
getMagicContextStorageDir,
|
|
10
12
|
getLegacyOpenCodeMagicContextStorageDir
|
|
11
|
-
} from "./index-
|
|
13
|
+
} from "./index-0sahzkwr.js";
|
|
12
14
|
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
} from "./index-
|
|
15
|
+
registerSlowWriteReporter2,
|
|
16
|
+
registerSqliteDiagnosticSink2,
|
|
17
|
+
detectSqliteRuntime2,
|
|
18
|
+
Database2,
|
|
19
|
+
withSqliteBackgroundWriter2,
|
|
20
|
+
withoutSqliteTransformPass2,
|
|
21
|
+
isTransientSqliteError2,
|
|
22
|
+
withPrivilegedWriter2
|
|
23
|
+
} from "./index-kb9nn0a0.js";
|
|
24
|
+
import {
|
|
25
|
+
configureContextDatabasePragmas2
|
|
26
|
+
} from "./index-fb3zxn06.js";
|
|
27
|
+
import {
|
|
28
|
+
startMessageFtsRowidMapBackfill
|
|
29
|
+
} from "./index-fbv1dn35.js";
|
|
22
30
|
import {
|
|
23
|
-
canonicalProjectDirectory,
|
|
24
|
-
bootQuietRemainingMs,
|
|
25
|
-
scheduleAfterBootQuiet,
|
|
26
|
-
startMessageFtsRowidMapBackfill,
|
|
27
31
|
LKG_SLOT_CHUNKS_DDL,
|
|
28
32
|
SESSION_REPLAY_DECISIONS_DDL,
|
|
29
33
|
LKG_SLOTS_DDL,
|
|
@@ -32,18 +36,25 @@ import {
|
|
|
32
36
|
hasPendingMigrations,
|
|
33
37
|
getMainThreadMigrationBodyCount,
|
|
34
38
|
runMigrations
|
|
35
|
-
} from "./index-
|
|
39
|
+
} from "./index-7mx8v0pw.js";
|
|
36
40
|
import {
|
|
41
|
+
installTagIdentityRevisionTrigger,
|
|
37
42
|
ensureColumn,
|
|
38
|
-
installV95PerfSchema
|
|
39
|
-
|
|
40
|
-
loadToolDefinitionMeasurements
|
|
41
|
-
} from "./index-5gq3b2ya.js";
|
|
43
|
+
installV95PerfSchema
|
|
44
|
+
} from "./index-db7zwa3v.js";
|
|
42
45
|
import {
|
|
43
46
|
resolveOpenCodeDbPath,
|
|
44
|
-
hasV1MessageTables
|
|
45
|
-
|
|
46
|
-
|
|
47
|
+
hasV1MessageTables
|
|
48
|
+
} from "./index-58e3y90n.js";
|
|
49
|
+
import {
|
|
50
|
+
canonicalProjectDirectory,
|
|
51
|
+
bootQuietRemainingMs,
|
|
52
|
+
scheduleAfterBootQuiet
|
|
53
|
+
} from "./index-knh4y330.js";
|
|
54
|
+
import {
|
|
55
|
+
setDatabase,
|
|
56
|
+
loadToolDefinitionMeasurements
|
|
57
|
+
} from "./index-0qhce371.js";
|
|
47
58
|
import {
|
|
48
59
|
getErrorMessage
|
|
49
60
|
} from "./index-y8v6yerm.js";
|
|
@@ -55,9 +66,12 @@ import {
|
|
|
55
66
|
copyStorageTreeSync,
|
|
56
67
|
tightenStorageTreeSync
|
|
57
68
|
} from "./index-1bc61ans.js";
|
|
69
|
+
import {
|
|
70
|
+
closeQuietly
|
|
71
|
+
} from "./index-8ajstryz.js";
|
|
58
72
|
import {
|
|
59
73
|
logSlowWriteTransaction
|
|
60
|
-
} from "./index-
|
|
74
|
+
} from "./index-2y0s2hep.js";
|
|
61
75
|
|
|
62
76
|
// src/features/magic-context/fail-closed-block.ts
|
|
63
77
|
var FAIL_CLOSED_DOCTOR_COMMAND = "npx @cortexkit/magic-context@latest doctor";
|
|
@@ -873,7 +887,7 @@ function classifyLivePiSnapshot(snapshot, probeParents = true) {
|
|
|
873
887
|
continue;
|
|
874
888
|
if (ancestors.has(fact.pid)) {
|
|
875
889
|
skippedAncestorPids.push(fact.pid);
|
|
876
|
-
|
|
890
|
+
log2(`[magic-context] Pi process scan: skipping ancestor PID ${fact.pid} (session launcher shim)`);
|
|
877
891
|
continue;
|
|
878
892
|
}
|
|
879
893
|
if (commandHasPiHarnessArc(command)) {
|
|
@@ -881,7 +895,7 @@ function classifyLivePiSnapshot(snapshot, probeParents = true) {
|
|
|
881
895
|
continue;
|
|
882
896
|
}
|
|
883
897
|
inconclusivePids.add(fact.pid);
|
|
884
|
-
|
|
898
|
+
log2(`[magic-context] Pi process scan: PID ${fact.pid} command line is ambiguous (image-name or missing Pi/OMP arc); treating as inconclusive`);
|
|
885
899
|
}
|
|
886
900
|
skippedAncestorPids.sort((left, right) => left - right);
|
|
887
901
|
const verified = [...processIds].sort((left, right) => left - right);
|
|
@@ -1055,18 +1069,6 @@ function inspectWindowsProcessesSync() {
|
|
|
1055
1069
|
};
|
|
1056
1070
|
}
|
|
1057
1071
|
|
|
1058
|
-
// src/shared/sqlite-context-pragmas.ts
|
|
1059
|
-
function configureContextDatabasePragmas(db, readonly = false) {
|
|
1060
|
-
const [row] = db.prepare(readonly ? "PRAGMA journal_mode" : "PRAGMA journal_mode=WAL").all();
|
|
1061
|
-
const mode = row?.journal_mode?.toLowerCase();
|
|
1062
|
-
if (mode === "memory" || readonly && mode !== "wal")
|
|
1063
|
-
return;
|
|
1064
|
-
if (mode !== "wal") {
|
|
1065
|
-
throw new Error(`context.db requires WAL before synchronous=NORMAL (got ${mode ?? "unknown"})`);
|
|
1066
|
-
}
|
|
1067
|
-
db.exec("PRAGMA synchronous=NORMAL");
|
|
1068
|
-
}
|
|
1069
|
-
|
|
1070
1072
|
// src/features/magic-context/context-store-uuid.ts
|
|
1071
1073
|
import { randomUUID } from "node:crypto";
|
|
1072
1074
|
function getContextStoreUuid(db) {
|
|
@@ -1078,7 +1080,7 @@ function ensureContextStoreUuid(db) {
|
|
|
1078
1080
|
if (existing)
|
|
1079
1081
|
return existing;
|
|
1080
1082
|
const minted = randomUUID();
|
|
1081
|
-
|
|
1083
|
+
withPrivilegedWriter2(db, () => {
|
|
1082
1084
|
db.transaction(() => {
|
|
1083
1085
|
db.prepare("INSERT INTO context_store_meta(key, value) VALUES ('store_uuid', ?) ON CONFLICT(key) DO NOTHING").run(minted);
|
|
1084
1086
|
}).immediate();
|
|
@@ -1188,7 +1190,7 @@ function runMigrationsOffThread(data) {
|
|
|
1188
1190
|
reject(workerStartError(error instanceof Error ? error.message : String(error)));
|
|
1189
1191
|
return;
|
|
1190
1192
|
}
|
|
1191
|
-
|
|
1193
|
+
log2(`[migrations] applying pending migrations on a worker thread: ${data.dbPath}`);
|
|
1192
1194
|
let ready = false;
|
|
1193
1195
|
let settled = false;
|
|
1194
1196
|
let endBusy = beginOffThreadMigration();
|
|
@@ -1216,10 +1218,10 @@ function runMigrationsOffThread(data) {
|
|
|
1216
1218
|
switch (message.type) {
|
|
1217
1219
|
case "ready":
|
|
1218
1220
|
ready = true;
|
|
1219
|
-
|
|
1221
|
+
log2(`[migrations] migration worker ready: ${data.dbPath}`);
|
|
1220
1222
|
return;
|
|
1221
1223
|
case "log":
|
|
1222
|
-
|
|
1224
|
+
writeForwardedLogLine2(message.line);
|
|
1223
1225
|
return;
|
|
1224
1226
|
case "lock-wait":
|
|
1225
1227
|
if (!settled)
|
|
@@ -1300,7 +1302,7 @@ function runToolOwnerBackfill(db) {
|
|
|
1300
1302
|
}
|
|
1301
1303
|
const opencodeDbPath = resolveOpencodeDbPath();
|
|
1302
1304
|
if (!existsSync(opencodeDbPath)) {
|
|
1303
|
-
|
|
1305
|
+
log2(`[backfill] OpenCode DB not found at ${opencodeDbPath} — marking all unbackfilled sessions as skipped. Lazy adoption (defense-in-depth) handles legacy rows at runtime.`);
|
|
1304
1306
|
markAllUnbackfilledSessionsSkipped(db);
|
|
1305
1307
|
result.sessionsSkippedNoOcDb = countSessionsByStatus(db, "skipped");
|
|
1306
1308
|
result.durationMs = performance.now() - startedAt;
|
|
@@ -1317,11 +1319,11 @@ function runToolOwnerBackfill(db) {
|
|
|
1317
1319
|
try {
|
|
1318
1320
|
db.exec("DETACH DATABASE oc_backfill");
|
|
1319
1321
|
} catch (error) {
|
|
1320
|
-
|
|
1322
|
+
log2(`[backfill] failed to detach oc_backfill database: ${error instanceof Error ? error.message : String(error)}`);
|
|
1321
1323
|
}
|
|
1322
1324
|
}
|
|
1323
1325
|
result.durationMs = performance.now() - startedAt;
|
|
1324
|
-
|
|
1326
|
+
log2(`[backfill] sessions=${result.sessionsProcessed} completed=${result.sessionsCompleted} skipped_no_oc=${result.sessionsSkippedNoOcDb} skipped_no_matches=${result.sessionsSkippedNoMatches} blocked_by_lease=${result.sessionsBlockedByLease} errored=${result.sessionsErrored} rows_updated=${result.rowsUpdated} rows_left_null=${result.rowsLeftNull} duration_ms=${Math.round(result.durationMs)}`);
|
|
1325
1327
|
return result;
|
|
1326
1328
|
}
|
|
1327
1329
|
function isToolOwnerBackfillNeeded(db) {
|
|
@@ -1506,7 +1508,7 @@ function backfillToolOwnersInChunks(db, result) {
|
|
|
1506
1508
|
result.sessionsCompleted += 1;
|
|
1507
1509
|
}
|
|
1508
1510
|
} catch (error) {
|
|
1509
|
-
|
|
1511
|
+
log2(`[backfill] session=${sessionId} errored: ${error instanceof Error ? error.message : String(error)}`);
|
|
1510
1512
|
markSessionErrored(db, sessionId, error);
|
|
1511
1513
|
result.sessionsErrored += 1;
|
|
1512
1514
|
}
|
|
@@ -1519,8 +1521,8 @@ function backfillToolOwnersInChunks(db, result) {
|
|
|
1519
1521
|
}
|
|
1520
1522
|
|
|
1521
1523
|
// src/features/magic-context/storage-db.ts
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
+
registerSlowWriteReporter2(logSlowWriteTransaction);
|
|
1525
|
+
registerSqliteDiagnosticSink2((message) => log2(message));
|
|
1524
1526
|
var databases = new Map;
|
|
1525
1527
|
var pendingAsyncOpens = new Map;
|
|
1526
1528
|
var persistenceByDatabase = new WeakMap;
|
|
@@ -1545,7 +1547,7 @@ function ensureSecureStorageDir(dir) {
|
|
|
1545
1547
|
}
|
|
1546
1548
|
function tightenStorageTree(dir) {
|
|
1547
1549
|
const { failures } = tightenStorageTreeSync(dir);
|
|
1548
|
-
|
|
1550
|
+
log2(`[magic-context] storage permission tightening failures=${failures}`);
|
|
1549
1551
|
}
|
|
1550
1552
|
function resolveBootBusyTimeoutMs(value) {
|
|
1551
1553
|
if (value === undefined)
|
|
@@ -1554,9 +1556,9 @@ function resolveBootBusyTimeoutMs(value) {
|
|
|
1554
1556
|
return BOOT_SQLITE_BUSY_TIMEOUT_MS;
|
|
1555
1557
|
return Math.max(0, Math.min(BOOT_SQLITE_BUSY_TIMEOUT_MS, Math.floor(value)));
|
|
1556
1558
|
}
|
|
1557
|
-
function installBootBusyTimeout(db, dbPath, timeoutMs, report =
|
|
1559
|
+
function installBootBusyTimeout(db, dbPath, timeoutMs, report = log2) {
|
|
1558
1560
|
db.exec(`PRAGMA busy_timeout=${timeoutMs}`);
|
|
1559
|
-
report(`[magic-context] SQLite boot busy timeout: backend=${
|
|
1561
|
+
report(`[magic-context] SQLite boot busy timeout: backend=${detectSqliteRuntime2()} timeout=${timeoutMs}ms path=${dbPath}`);
|
|
1560
1562
|
}
|
|
1561
1563
|
function resolveDatabasePath(dbPathOverride) {
|
|
1562
1564
|
if (dbPathOverride) {
|
|
@@ -1579,18 +1581,18 @@ function migrateLegacyStorageIfNeeded(targetDbPath, targetDbDir) {
|
|
|
1579
1581
|
const legacyDbPath = join2(legacyDir, "context.db");
|
|
1580
1582
|
if (!existsSync2(legacyDbPath))
|
|
1581
1583
|
return;
|
|
1582
|
-
|
|
1584
|
+
log2(`[magic-context] migrating legacy plugin storage: ${legacyDir} -> ${targetDbDir} (legacy left in place as backup)`);
|
|
1583
1585
|
ensureSecureStorageDir(targetDbDir);
|
|
1584
1586
|
try {
|
|
1585
|
-
const legacyDb = new
|
|
1587
|
+
const legacyDb = new Database2(legacyDbPath);
|
|
1586
1588
|
try {
|
|
1587
|
-
|
|
1589
|
+
configureContextDatabasePragmas2(legacyDb, true);
|
|
1588
1590
|
legacyDb.exec("PRAGMA wal_checkpoint(TRUNCATE)");
|
|
1589
1591
|
} finally {
|
|
1590
1592
|
closeQuietly(legacyDb);
|
|
1591
1593
|
}
|
|
1592
1594
|
} catch (error) {
|
|
1593
|
-
|
|
1595
|
+
log2(`[magic-context] legacy WAL checkpoint before copy failed (continuing with sidecar copy): ${getErrorMessage(error)}`);
|
|
1594
1596
|
}
|
|
1595
1597
|
for (const suffix of ["", "-wal", "-shm"]) {
|
|
1596
1598
|
const src = `${legacyDbPath}${suffix}`;
|
|
@@ -1599,7 +1601,7 @@ function migrateLegacyStorageIfNeeded(targetDbPath, targetDbDir) {
|
|
|
1599
1601
|
try {
|
|
1600
1602
|
copyStorageFileSync(src, dst);
|
|
1601
1603
|
} catch (error) {
|
|
1602
|
-
|
|
1604
|
+
log2(`[magic-context] failed to copy ${src}:`, getErrorMessage(error));
|
|
1603
1605
|
}
|
|
1604
1606
|
}
|
|
1605
1607
|
}
|
|
@@ -1609,7 +1611,7 @@ function migrateLegacyStorageIfNeeded(targetDbPath, targetDbDir) {
|
|
|
1609
1611
|
try {
|
|
1610
1612
|
copyStorageTreeSync(legacyModelsDir, targetModelsDir);
|
|
1611
1613
|
} catch (error) {
|
|
1612
|
-
|
|
1614
|
+
log2("[magic-context] failed to copy embedding model cache:", getErrorMessage(error));
|
|
1613
1615
|
}
|
|
1614
1616
|
}
|
|
1615
1617
|
}
|
|
@@ -1644,7 +1646,7 @@ function enforceSchemaFence(db, dbPath, latestSupportedVersion) {
|
|
|
1644
1646
|
return true;
|
|
1645
1647
|
}
|
|
1646
1648
|
lastSchemaFenceRejection = { persistedVersion, supportedVersion: latestSupportedVersion };
|
|
1647
|
-
|
|
1649
|
+
log2(`[magic-context] storage fatal: refusing to open ${dbPath}; upstream migration lane v${persistedVersion} is newer than this binary supports (max v${latestSupportedVersion}). A pinned or stale plugin is likely sharing this database with a newer instance; update or unpin Magic Context with 'npx @cortexkit/magic-context@latest doctor --force', then restart.`);
|
|
1648
1650
|
return false;
|
|
1649
1651
|
}
|
|
1650
1652
|
function unreadableDiscovery(path, arm) {
|
|
@@ -1716,7 +1718,7 @@ function classifyJunkDiscovery(portFile, raw, staleFiles) {
|
|
|
1716
1718
|
}
|
|
1717
1719
|
staleFiles.push(portFile);
|
|
1718
1720
|
const reason = invalidDiscoveryReason(raw);
|
|
1719
|
-
|
|
1721
|
+
log2(`[magic-context] removing stale RPC discovery file ${portFile}: ${reason} record older than 10 minutes`);
|
|
1720
1722
|
return null;
|
|
1721
1723
|
}
|
|
1722
1724
|
function inspectRpcServerDiscovery(storageDir, processes, options) {
|
|
@@ -1861,12 +1863,12 @@ function formatInconclusivePiMigrationWarning(dbPath, pids) {
|
|
|
1861
1863
|
function logInconclusiveMigrationProbes(dbPath, discovery, piDiscovery) {
|
|
1862
1864
|
const uncertainPids = discovery.inconclusivePids ?? [];
|
|
1863
1865
|
if (uncertainPids.length > 0) {
|
|
1864
|
-
|
|
1866
|
+
log2(formatInconclusiveOpenCodeMigrationWarning(dbPath, uncertainPids));
|
|
1865
1867
|
}
|
|
1866
1868
|
if (piDiscovery.state === "unreadable") {
|
|
1867
|
-
|
|
1869
|
+
log2(`[magic-context] storage warning: continuing migration for ${dbPath}; the Pi/OMP process-list probe could not run, which commonly means an OS sandbox denied ps. No live Pi harness was confirmed.`);
|
|
1868
1870
|
} else if ((piDiscovery.inconclusivePids?.length ?? 0) > 0) {
|
|
1869
|
-
|
|
1871
|
+
log2(formatInconclusivePiMigrationWarning(dbPath, piDiscovery.inconclusivePids ?? []));
|
|
1870
1872
|
}
|
|
1871
1873
|
}
|
|
1872
1874
|
function isDefaultSharedDatabasePath(dbPath) {
|
|
@@ -1928,9 +1930,9 @@ function enforceMigrationOnOpenGuard(db, dbPath, dbDir, latestSupportedVersion,
|
|
|
1928
1930
|
const unreadableFile = discovery.unreadableFile ?? "<unknown>";
|
|
1929
1931
|
const arm = discovery.unreadableArm ?? "io";
|
|
1930
1932
|
const recovery = arm === "io" ? `If no OpenCode server is running, it is safe to delete ${unreadableFile} and retry.` : `Retry after the file is older than the ten-minute grace window, or stop OpenCode before deleting it.`;
|
|
1931
|
-
|
|
1933
|
+
log2(`[magic-context] storage fatal: refusing to migrate ${dbPath} from upstream migration v${persistedVersion} to v${latestSupportedVersion} because RPC discovery file ${unreadableFile} is uncertain (${arm} arm), so the absence of a live OpenCode server cannot be proven. ${recovery}`);
|
|
1932
1934
|
} else {
|
|
1933
|
-
|
|
1935
|
+
log2(formatLiveProcessMigrationRefusal(dbPath, persistedVersion, latestSupportedVersion, discovery.serverPids, piPids));
|
|
1934
1936
|
}
|
|
1935
1937
|
return false;
|
|
1936
1938
|
}
|
|
@@ -1959,34 +1961,34 @@ function finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion)
|
|
|
1959
1961
|
}
|
|
1960
1962
|
healWedgedChannel2Claims(db);
|
|
1961
1963
|
if (!explicitDbPath) {
|
|
1962
|
-
const readsOpenCodeStore =
|
|
1964
|
+
const readsOpenCodeStore = harnessOwnsOpenCodeStore2();
|
|
1963
1965
|
let busyRetryMs = 100;
|
|
1964
|
-
const runBackfills = () =>
|
|
1966
|
+
const runBackfills = () => withoutSqliteTransformPass2(() => withSqliteBackgroundWriter2(() => {
|
|
1965
1967
|
if (readsOpenCodeStore) {
|
|
1966
1968
|
try {
|
|
1967
1969
|
runToolOwnerBackfill(db);
|
|
1968
1970
|
} catch (error) {
|
|
1969
|
-
|
|
1971
|
+
log2(`[magic-context] tool-owner backfill failed (continuing with lazy adoption fallback): ${getErrorMessage(error)}`);
|
|
1970
1972
|
}
|
|
1971
1973
|
}
|
|
1972
1974
|
startMessageFtsRowidMapBackfill(db).then(async () => {
|
|
1973
1975
|
if (!readsOpenCodeStore)
|
|
1974
1976
|
return;
|
|
1975
|
-
const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-
|
|
1976
|
-
const { startMessageTimeBackfill } = await importPluginModule(() => import("./message-time-backfill-
|
|
1977
|
+
const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-6k83m4fj.js"));
|
|
1978
|
+
const { startMessageTimeBackfill } = await importPluginModule(() => import("./message-time-backfill-brbd63hv.js"));
|
|
1977
1979
|
await startMessageTimeBackfill(db, Object.assign(readRawSessionMessages, {
|
|
1978
1980
|
readPage: readRawSessionMessagePage
|
|
1979
1981
|
}));
|
|
1980
1982
|
}).catch((error) => {
|
|
1981
|
-
if (
|
|
1982
|
-
|
|
1983
|
+
if (isTransientSqliteError2(error)) {
|
|
1984
|
+
withoutSqliteTransformPass2(() => {
|
|
1983
1985
|
const timer = setTimeout(runBackfills, busyRetryMs);
|
|
1984
1986
|
timer.unref();
|
|
1985
1987
|
});
|
|
1986
1988
|
busyRetryMs = Math.min(30000, busyRetryMs * 2);
|
|
1987
1989
|
return;
|
|
1988
1990
|
}
|
|
1989
|
-
|
|
1991
|
+
log2(`[magic-context] message-index backfill failed (will resume next startup): ${getErrorMessage(error)}`);
|
|
1990
1992
|
});
|
|
1991
1993
|
}));
|
|
1992
1994
|
if (bootQuietRemainingMs() > 0)
|
|
@@ -2002,14 +2004,14 @@ function finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion)
|
|
|
2002
2004
|
persistenceByDatabase.set(db, true);
|
|
2003
2005
|
persistenceErrorByDatabase.delete(db);
|
|
2004
2006
|
if (!explicitDbPath) {
|
|
2005
|
-
|
|
2007
|
+
log2(formatSchemaFenceBootLog(getPersistedSchemaVersion(db), latestSupportedVersion));
|
|
2006
2008
|
}
|
|
2007
2009
|
return db;
|
|
2008
2010
|
}
|
|
2009
2011
|
function initializeDatabase(db, busyTimeoutMs = BOOT_SQLITE_BUSY_TIMEOUT_MS) {
|
|
2010
2012
|
db.exec(`PRAGMA busy_timeout=${resolveBootBusyTimeoutMs(busyTimeoutMs)}`);
|
|
2011
2013
|
db.exec("PRAGMA foreign_keys=ON");
|
|
2012
|
-
|
|
2014
|
+
configureContextDatabasePragmas2(db);
|
|
2013
2015
|
applySqliteTuningPragmas(db);
|
|
2014
2016
|
db.exec(`
|
|
2015
2017
|
CREATE TABLE IF NOT EXISTS tags (
|
|
@@ -3243,6 +3245,7 @@ CREATE INDEX IF NOT EXISTS idx_dream_queue_pending ON dream_queue(started_at, en
|
|
|
3243
3245
|
const version = getPersistedSchemaVersion(db);
|
|
3244
3246
|
if (version === 0 || version >= 95)
|
|
3245
3247
|
installV95PerfSchema(db, false, version === 0);
|
|
3248
|
+
installTagIdentityRevisionTrigger(db);
|
|
3246
3249
|
}
|
|
3247
3250
|
var CHANNEL2_CLAIM_TTL_MS = 10 * 60000;
|
|
3248
3251
|
var channel2HealStatements = new WeakMap;
|
|
@@ -3272,7 +3275,7 @@ function openDatabase(dbPathOrOptions) {
|
|
|
3272
3275
|
lastMigrationOnOpenRefusal = null;
|
|
3273
3276
|
const existing = databases.get(dbPath);
|
|
3274
3277
|
if (!existing && pendingAsyncOpens.has(dbPath)) {
|
|
3275
|
-
|
|
3278
|
+
log2(`[magic-context] storage not ready: ${dbPath} is still being opened or migrated; refusing a second synchronous open`);
|
|
3276
3279
|
return null;
|
|
3277
3280
|
}
|
|
3278
3281
|
if (existing) {
|
|
@@ -3300,14 +3303,14 @@ function openDatabase(dbPathOrOptions) {
|
|
|
3300
3303
|
throw error;
|
|
3301
3304
|
}
|
|
3302
3305
|
}
|
|
3303
|
-
db = new
|
|
3306
|
+
db = new Database2(dbPath);
|
|
3304
3307
|
installBootBusyTimeout(db, dbPath, busyTimeoutMs, options?.onBootBusyTimeout);
|
|
3305
3308
|
if (!enforceSchemaFence(db, dbPath, latestSupportedVersion)) {
|
|
3306
3309
|
closeQuietly(db);
|
|
3307
3310
|
return null;
|
|
3308
3311
|
}
|
|
3309
3312
|
if (options?.allowMigrations === false && hasPendingMigrations(db)) {
|
|
3310
|
-
|
|
3313
|
+
log2(`[magic-context] storage not ready: pending migrations at ${dbPath}; host callers must await the async opener`);
|
|
3311
3314
|
closeQuietly(db);
|
|
3312
3315
|
return null;
|
|
3313
3316
|
}
|
|
@@ -3324,12 +3327,13 @@ function openDatabase(dbPathOrOptions) {
|
|
|
3324
3327
|
} else
|
|
3325
3328
|
runMigrations(db);
|
|
3326
3329
|
ensureContextStoreUuid(db);
|
|
3330
|
+
installTagIdentityRevisionTrigger(db);
|
|
3327
3331
|
return finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion);
|
|
3328
3332
|
} catch (error) {
|
|
3329
3333
|
if (db)
|
|
3330
3334
|
closeQuietly(db);
|
|
3331
3335
|
const detail = getErrorMessage(error);
|
|
3332
|
-
|
|
3336
|
+
log2(`[magic-context] storage fatal: failed to open ${dbPath}: ${detail}`);
|
|
3333
3337
|
throw new Error(`[magic-context] storage unavailable: ${detail}. Magic Context is disabled for this run; check log for details.`);
|
|
3334
3338
|
}
|
|
3335
3339
|
}
|
|
@@ -3388,7 +3392,7 @@ async function openDatabaseAsync(dbPathOrOptions) {
|
|
|
3388
3392
|
throw error;
|
|
3389
3393
|
}
|
|
3390
3394
|
}
|
|
3391
|
-
db = new
|
|
3395
|
+
db = new Database2(dbPath);
|
|
3392
3396
|
installBootBusyTimeout(db, dbPath, busyTimeoutMs, options?.onBootBusyTimeout);
|
|
3393
3397
|
openMs = performance.now() - openStartedAt;
|
|
3394
3398
|
guardStartedAt = performance.now();
|
|
@@ -3420,6 +3424,7 @@ async function openDatabaseAsync(dbPathOrOptions) {
|
|
|
3420
3424
|
throw new Error("storage initialization left a pending migration; reinstall or rebuild the plugin");
|
|
3421
3425
|
}
|
|
3422
3426
|
ensureContextStoreUuid(db);
|
|
3427
|
+
installTagIdentityRevisionTrigger(db);
|
|
3423
3428
|
const opened = finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion);
|
|
3424
3429
|
migrateMs = performance.now() - migrateStartedAt;
|
|
3425
3430
|
return opened;
|
|
@@ -3427,10 +3432,10 @@ async function openDatabaseAsync(dbPathOrOptions) {
|
|
|
3427
3432
|
if (db)
|
|
3428
3433
|
closeQuietly(db);
|
|
3429
3434
|
const detail = getErrorMessage(error);
|
|
3430
|
-
|
|
3435
|
+
log2(`[magic-context] storage fatal: failed to open ${dbPath}: ${detail}`);
|
|
3431
3436
|
throw new Error(`[magic-context] storage unavailable: ${detail}. Magic Context is disabled for this run; check log for details.`);
|
|
3432
3437
|
} finally {
|
|
3433
|
-
|
|
3438
|
+
log2(`[migrations] async open main-thread migration-body count: ${getMainThreadMigrationBodyCount() - mainThreadBodiesBefore} (total=${getMainThreadMigrationBodyCount()}) path=${dbPath}`);
|
|
3434
3439
|
if (openMs === 0)
|
|
3435
3440
|
openMs = performance.now() - openStartedAt;
|
|
3436
3441
|
if (guardStartedAt !== null && guardMs === 0) {
|
|
@@ -3461,4 +3466,4 @@ function getDatabasePersistenceError(db) {
|
|
|
3461
3466
|
return persistenceErrorByDatabase.get(db) ?? null;
|
|
3462
3467
|
}
|
|
3463
3468
|
|
|
3464
|
-
export { FAIL_CLOSED_DOCTOR_COMMAND, formatFailClosedBlockingMessage, formatFailClosedBlockingSummary, createFailClosedBlockingError, isFailClosedBlockingError, shouldBypassFailClosedBlock, resolveAgentNameFromMessages, createFailClosedController, recordHookInitFailure, clearHookInitFailure, getLastHookInitFailure, registerOwnRpcServerInstance, rpcPortDir, rpcPortFilePath, isPidAlive, parseRpcPortFile, inspectProcessesAsync,
|
|
3469
|
+
export { FAIL_CLOSED_DOCTOR_COMMAND, formatFailClosedBlockingMessage, formatFailClosedBlockingSummary, createFailClosedBlockingError, isFailClosedBlockingError, shouldBypassFailClosedBlock, resolveAgentNameFromMessages, createFailClosedController, recordHookInitFailure, clearHookInitFailure, getLastHookInitFailure, registerOwnRpcServerInstance, rpcPortDir, rpcPortFilePath, isPidAlive, parseRpcPortFile, inspectProcessesAsync, startBootDeadline, getUnconfirmedMigrationHolders, getSchemaFenceRejection, getMigrationOnOpenRefusal, LATEST_SUPPORTED_VERSION, BOOT_SQLITE_BUSY_TIMEOUT_MS, getDatabasePath, getPersistedSchemaVersion, setSqlitePragmaConfig, runSqliteOptimize, initializeDatabase, openDatabase, openCurrentDatabase, openDatabaseAsync, isDatabasePersisted, getDatabasePersistenceError };
|
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
// src/shared/embedding-activity.ts
|
|
2
2
|
var busySessions = new Set;
|
|
3
|
-
function
|
|
3
|
+
function setEmbeddingSessionBusy2(sessionId, busy) {
|
|
4
4
|
if (busy)
|
|
5
5
|
busySessions.add(sessionId);
|
|
6
6
|
else
|
|
7
7
|
busySessions.delete(sessionId);
|
|
8
8
|
}
|
|
9
|
-
function
|
|
9
|
+
function observeEmbeddingActivity2(event) {
|
|
10
10
|
const props = event.properties;
|
|
11
11
|
if (!props || typeof props.sessionID !== "string")
|
|
12
12
|
return;
|
|
13
13
|
if (event.type === "session.idle" || event.type === "session.deleted" || event.type === "session.status" && props.status?.type === "idle") {
|
|
14
|
-
|
|
14
|
+
setEmbeddingSessionBusy2(props.sessionID, false);
|
|
15
15
|
} else if (event.type === "session.status" && props.status?.type) {
|
|
16
|
-
|
|
16
|
+
setEmbeddingSessionBusy2(props.sessionID, true);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
function
|
|
19
|
+
function isEmbeddingHostBusy2() {
|
|
20
20
|
return busySessions.size > 0;
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
export { setEmbeddingSessionBusy, observeEmbeddingActivity, isEmbeddingHostBusy };
|
|
22
|
+
export { setEmbeddingSessionBusy2, observeEmbeddingActivity2, isEmbeddingHostBusy2 };
|
|
@@ -1,25 +1,31 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./index-
|
|
2
|
+
harnessOwnsOpenCodeStore2
|
|
3
|
+
} from "./index-pavzsdc6.js";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
} from "./index-
|
|
5
|
+
log2
|
|
6
|
+
} from "./index-8j7gqj40.js";
|
|
7
7
|
import {
|
|
8
8
|
resolveOpenCodeDbPath,
|
|
9
9
|
assertOpenCodeStoreGeneration,
|
|
10
10
|
openCodeDbPathExists,
|
|
11
11
|
recordOpenCodeDbReadFailure,
|
|
12
12
|
clearOpenCodeDbReadFailure,
|
|
13
|
-
claimOpenCodeDbDiagnosticOnce
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
claimOpenCodeDbDiagnosticOnce
|
|
14
|
+
} from "./index-58e3y90n.js";
|
|
15
|
+
import {
|
|
16
|
+
Database2
|
|
17
|
+
} from "./index-kb9nn0a0.js";
|
|
16
18
|
import {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
forgetRawSessionOrdinalWatermark2,
|
|
20
|
+
forgetRawSessionSummaryRows2
|
|
21
|
+
} from "./index-dhwzyd54.js";
|
|
22
|
+
import {
|
|
23
|
+
closeQuietly
|
|
24
|
+
} from "./index-8ajstryz.js";
|
|
19
25
|
|
|
20
26
|
// src/hooks/magic-context/read-session-db.ts
|
|
21
27
|
function openCodeDbExists() {
|
|
22
|
-
return
|
|
28
|
+
return harnessOwnsOpenCodeStore2() && openCodeDbPathExists(resolveOpenCodeDbPath());
|
|
23
29
|
}
|
|
24
30
|
var cachedReadOnlyDb = null;
|
|
25
31
|
function closeCachedReadOnlyDb() {
|
|
@@ -29,13 +35,13 @@ function closeCachedReadOnlyDb() {
|
|
|
29
35
|
try {
|
|
30
36
|
closeQuietly(cachedReadOnlyDb.db);
|
|
31
37
|
} catch (error) {
|
|
32
|
-
|
|
38
|
+
log2("[magic-context] failed to close cached OpenCode read-only DB:", error);
|
|
33
39
|
} finally {
|
|
34
40
|
cachedReadOnlyDb = null;
|
|
35
41
|
}
|
|
36
42
|
}
|
|
37
43
|
function getReadOnlySessionDb() {
|
|
38
|
-
if (!
|
|
44
|
+
if (!harnessOwnsOpenCodeStore2()) {
|
|
39
45
|
throw new Error("OpenCode session database is not readable from a Pi-compatible process; its history lives in Pi sessions");
|
|
40
46
|
}
|
|
41
47
|
const resolution = resolveOpenCodeDbPath();
|
|
@@ -47,7 +53,7 @@ function getReadOnlySessionDb() {
|
|
|
47
53
|
return cachedReadOnlyDb.db;
|
|
48
54
|
}
|
|
49
55
|
closeCachedReadOnlyDb();
|
|
50
|
-
const db = new
|
|
56
|
+
const db = new Database2(dbPath, { readonly: true });
|
|
51
57
|
try {
|
|
52
58
|
assertOpenCodeStoreGeneration(db, "v1", dbPath);
|
|
53
59
|
} catch (error) {
|
|
@@ -170,6 +176,10 @@ function observeOpenCodeTurnEvent(type, properties) {
|
|
|
170
176
|
const props = asRecord(properties);
|
|
171
177
|
if (!props)
|
|
172
178
|
return;
|
|
179
|
+
if (type === "message.removed" && typeof props.sessionID === "string")
|
|
180
|
+
forgetRawSessionOrdinalWatermark2(props.sessionID);
|
|
181
|
+
if (type === "session.deleted" && typeof props.sessionID === "string")
|
|
182
|
+
forgetRawSessionSummaryRows2(props.sessionID);
|
|
173
183
|
if (type === "message.part.updated") {
|
|
174
184
|
const part = asRecord(props.part);
|
|
175
185
|
if (!part || typeof part.sessionID !== "string" || typeof part.messageID !== "string" || typeof part.id !== "string") {
|
|
@@ -237,11 +247,11 @@ function logProbeFailureOnce(resolution, error) {
|
|
|
237
247
|
return;
|
|
238
248
|
const message = `[magic-context] OpenCode DB probe failed: path=${resolution.path} source=${resolution.source} cause=${failure.message}`;
|
|
239
249
|
probeLogObserverForTests?.(message);
|
|
240
|
-
|
|
250
|
+
log2(message);
|
|
241
251
|
}
|
|
242
252
|
function resolvedDbIsAvailable() {
|
|
243
253
|
const resolution = resolveOpenCodeDbPath();
|
|
244
|
-
if (!
|
|
254
|
+
if (!harnessOwnsOpenCodeStore2())
|
|
245
255
|
return { resolution, available: false };
|
|
246
256
|
const available = openCodeDbPathExists(resolution);
|
|
247
257
|
if (available)
|
|
@@ -384,7 +394,7 @@ function hasUnansweredRealUser(db, sessionId) {
|
|
|
384
394
|
}
|
|
385
395
|
function getMessageTimesFromOpenCodeDb(sessionId, messageIds) {
|
|
386
396
|
const result = new Map;
|
|
387
|
-
if (messageIds.length === 0 || !
|
|
397
|
+
if (messageIds.length === 0 || !harnessOwnsOpenCodeStore2())
|
|
388
398
|
return result;
|
|
389
399
|
try {
|
|
390
400
|
withReadOnlySessionDb((db) => {
|
|
@@ -402,14 +412,14 @@ function getMessageTimesFromOpenCodeDb(sessionId, messageIds) {
|
|
|
402
412
|
return result;
|
|
403
413
|
}
|
|
404
414
|
function findLastAssistantModelFromOpenCodeDb(sessionId) {
|
|
405
|
-
if (!
|
|
415
|
+
if (!harnessOwnsOpenCodeStore2())
|
|
406
416
|
return null;
|
|
407
417
|
const resolution = resolveOpenCodeDbPath();
|
|
408
418
|
try {
|
|
409
419
|
if (!openCodeDbPathExists(resolution)) {
|
|
410
420
|
throw new Error(`OpenCode session database is unavailable at ${resolution.path}`);
|
|
411
421
|
}
|
|
412
|
-
const db = new
|
|
422
|
+
const db = new Database2(resolution.path, { readonly: true });
|
|
413
423
|
try {
|
|
414
424
|
const queryV2 = () => db.prepare(`SELECT json_extract(data, '$.model.providerID') as providerID,
|
|
415
425
|
json_extract(data, '$.model.id') as modelID,
|