@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,19 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./server-
|
|
2
|
+
log2
|
|
3
|
+
} from "./server-5m3dt5r1.js";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
expandWorkspaceIdentitySetWithAliases,
|
|
8
|
-
resolveStoredPathWorkspaceIdentity,
|
|
9
|
-
sourceNameForMemory
|
|
10
|
-
} from "./server-njt3np1k.js";
|
|
5
|
+
loadCompartmentChunkEmbeddingsForSearch
|
|
6
|
+
} from "./server-ezhze64f.js";
|
|
11
7
|
import {
|
|
12
|
-
loadCompartmentChunkEmbeddingsForSearch,
|
|
13
|
-
getIndexedMessageCorpusSize,
|
|
14
8
|
recordEmbeddingMeasurement,
|
|
15
|
-
getNotes,
|
|
16
|
-
getActivePrimers,
|
|
17
9
|
saveCommitEmbedding,
|
|
18
10
|
loadProjectCommitEmbeddings,
|
|
19
11
|
loadUnembeddedCommits,
|
|
@@ -21,30 +13,50 @@ import {
|
|
|
21
13
|
upsertCommits,
|
|
22
14
|
getLatestIndexedCommitSha,
|
|
23
15
|
enforceProjectCap,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
16
|
+
contentSha2562,
|
|
17
|
+
getShadowEmbeddingMeasurementCohort2,
|
|
18
|
+
getPrimaryEmbeddingMeasurementCohort2,
|
|
19
|
+
embedShadowTextForProject2,
|
|
20
|
+
enqueueShadowEmbeddingItems2,
|
|
21
|
+
getProjectEmbeddingSnapshot2,
|
|
22
|
+
embedItemsForProject2
|
|
23
|
+
} from "./server-7wwc2nga.js";
|
|
24
|
+
import {
|
|
25
|
+
getProjectEmbeddings2
|
|
26
|
+
} from "./server-4dhv7mqz.js";
|
|
27
|
+
import {
|
|
32
28
|
cosineSimilarity,
|
|
33
29
|
isEmbeddingEnabled,
|
|
34
30
|
embedText,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
31
|
+
ensureMemoryEmbeddings2
|
|
32
|
+
} from "./server-gjcr4w98.js";
|
|
33
|
+
import {
|
|
34
|
+
ModuleMemoryAuthorityError2,
|
|
35
|
+
getMemoriesByProject2,
|
|
36
|
+
getMemoriesByProjects2,
|
|
37
|
+
updateMemoryRetrievalCount2
|
|
38
|
+
} from "./server-7jzrrxap.js";
|
|
39
|
+
import {
|
|
40
|
+
getNotes,
|
|
41
|
+
getActivePrimers,
|
|
40
42
|
relaxedFtsQuery,
|
|
41
43
|
sanitizeFtsQuery,
|
|
42
44
|
searchMemoriesFTS,
|
|
43
45
|
searchMemoriesFTSUnion
|
|
44
|
-
} from "./server-
|
|
46
|
+
} from "./server-8tqanswc.js";
|
|
47
|
+
import {
|
|
48
|
+
getIndexedMessageCorpusSize
|
|
49
|
+
} from "./server-sggvvzhb.js";
|
|
50
|
+
import {
|
|
51
|
+
resolveWorkspaceShareCategories,
|
|
52
|
+
resolveWorkspaceIdentitySet,
|
|
53
|
+
expandWorkspaceIdentitySetWithAliases,
|
|
54
|
+
resolveStoredPathWorkspaceIdentity,
|
|
55
|
+
sourceNameForMemory
|
|
56
|
+
} from "./server-e0vdaae2.js";
|
|
45
57
|
import {
|
|
46
58
|
isKnownAutocommit
|
|
47
|
-
} from "./server-
|
|
59
|
+
} from "./server-8ajstryz.js";
|
|
48
60
|
|
|
49
61
|
// src/features/magic-context/git-commits/git-log-reader.ts
|
|
50
62
|
import { execFile } from "node:child_process";
|
|
@@ -96,19 +108,19 @@ async function readGitCommitsResult(directory, options = {}) {
|
|
|
96
108
|
} catch (error) {
|
|
97
109
|
const message = error instanceof Error ? error.message : String(error);
|
|
98
110
|
if (exclusion && message.includes("bad object")) {
|
|
99
|
-
|
|
111
|
+
log2(`[git-commits] indexed tip ${exclusion.slice(0, 7)} is missing for ${projectLabel}; reading the full window`);
|
|
100
112
|
return readGitCommitsResult(directory, { ...options, excludeReachableFrom: undefined });
|
|
101
113
|
}
|
|
102
114
|
const failure = classifyGitLogFailure(message);
|
|
103
115
|
if (failure === "transient") {
|
|
104
|
-
|
|
116
|
+
log2(`[git-commits] readGitCommits failed for ${projectLabel}: ${message.slice(0, 500)}`);
|
|
105
117
|
} else {
|
|
106
|
-
|
|
118
|
+
log2(`[git-commits] ${projectLabel} is not indexable (${failure})`);
|
|
107
119
|
}
|
|
108
120
|
return { commits: [], failure };
|
|
109
121
|
}
|
|
110
122
|
if (stdout.trim().length === 0) {
|
|
111
|
-
|
|
123
|
+
log2(`[git-commits] readGitCommits returned empty stdout for ${projectLabel} (sinceMs=${options.sinceMs ?? "none"} args=${args.slice(0, 4).join(" ")})`);
|
|
112
124
|
}
|
|
113
125
|
return { commits: parseGitLogOutput(stdout), failure: null };
|
|
114
126
|
}
|
|
@@ -169,7 +181,7 @@ async function indexCommitsForProject(db, projectPath, directory, options) {
|
|
|
169
181
|
nonIndexable: false
|
|
170
182
|
};
|
|
171
183
|
if (indexInProgress.has(projectPath)) {
|
|
172
|
-
|
|
184
|
+
log2(`[git-commits] index already in progress for ${projectPath}, skipping`);
|
|
173
185
|
return result;
|
|
174
186
|
}
|
|
175
187
|
indexInProgress.add(projectPath);
|
|
@@ -190,21 +202,21 @@ async function indexCommitsForProject(db, projectPath, directory, options) {
|
|
|
190
202
|
}
|
|
191
203
|
if (commits.length === 0) {
|
|
192
204
|
result.evicted = enforceProjectCap(db, projectPath, options.maxCommits);
|
|
193
|
-
|
|
205
|
+
log2(`[git-commits] no new commits for ${projectPath} (sinceMs=${sinceMs} latestIndexed=${latestIndexed?.slice(0, 7) ?? "none"} evicted=${result.evicted})`);
|
|
194
206
|
return result;
|
|
195
207
|
}
|
|
196
|
-
|
|
208
|
+
log2(`[git-commits] read ${commits.length} commits for ${projectPath} (sinceMs=${sinceMs} latestIndexed=${latestIndexed?.slice(0, 7) ?? "none"})`);
|
|
197
209
|
const upsert = upsertCommits(db, projectPath, commits);
|
|
198
210
|
result.inserted = upsert.inserted;
|
|
199
211
|
result.updated = upsert.updated;
|
|
200
212
|
result.evicted = enforceProjectCap(db, projectPath, options.maxCommits);
|
|
201
|
-
const snapshot =
|
|
213
|
+
const snapshot = getProjectEmbeddingSnapshot2(projectPath);
|
|
202
214
|
if (options.skipEmbed || !snapshot?.gitCommitEnabled) {
|
|
203
|
-
|
|
215
|
+
log2(`[git-commits] indexed ${projectPath}: scanned=${result.scanned} inserted=${result.inserted} updated=${result.updated} evicted=${result.evicted} embedded=0 (embedding skipped: skipEmbed=${options.skipEmbed === true} gitCommitEnabled=${snapshot?.gitCommitEnabled === true})`);
|
|
204
216
|
return result;
|
|
205
217
|
}
|
|
206
218
|
result.embedded = await embedUnembeddedCommits(db, projectPath);
|
|
207
|
-
|
|
219
|
+
log2(`[git-commits] indexed ${projectPath}: scanned=${result.scanned} inserted=${result.inserted} updated=${result.updated} evicted=${result.evicted} embedded=${result.embedded}`);
|
|
208
220
|
return result;
|
|
209
221
|
} finally {
|
|
210
222
|
indexInProgress.delete(projectPath);
|
|
@@ -214,7 +226,7 @@ async function embedUnembeddedCommits(db, projectPath) {
|
|
|
214
226
|
if (embedInProgress.has(projectPath)) {
|
|
215
227
|
return 0;
|
|
216
228
|
}
|
|
217
|
-
const snapshot =
|
|
229
|
+
const snapshot = getProjectEmbeddingSnapshot2(projectPath);
|
|
218
230
|
if (!snapshot?.gitCommitEnabled) {
|
|
219
231
|
return 0;
|
|
220
232
|
}
|
|
@@ -229,10 +241,10 @@ async function embedUnembeddedCommits(db, projectPath) {
|
|
|
229
241
|
break;
|
|
230
242
|
let embeddedThisBatch = 0;
|
|
231
243
|
try {
|
|
232
|
-
const result = await
|
|
244
|
+
const result = await embedItemsForProject2(projectPath, rows.map((row) => ({
|
|
233
245
|
id: `commit:${row.sha}`,
|
|
234
246
|
text: row.message,
|
|
235
|
-
contentSha256:
|
|
247
|
+
contentSha256: contentSha2562(row.message)
|
|
236
248
|
})), undefined, db, projectPath);
|
|
237
249
|
if (!result)
|
|
238
250
|
break;
|
|
@@ -245,9 +257,9 @@ async function embedUnembeddedCommits(db, projectPath) {
|
|
|
245
257
|
embeddedThisBatch += 1;
|
|
246
258
|
}
|
|
247
259
|
}).immediate();
|
|
248
|
-
|
|
260
|
+
enqueueShadowEmbeddingItems2(projectPath, "commit", rows.filter((row) => result.vectors.has(`commit:${row.sha}`)).map((row) => row.sha));
|
|
249
261
|
} catch (error) {
|
|
250
|
-
|
|
262
|
+
log2(`[git-commits] embed batch failed for ${projectPath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
251
263
|
break;
|
|
252
264
|
}
|
|
253
265
|
if (embeddedThisBatch === 0)
|
|
@@ -258,7 +270,7 @@ async function embedUnembeddedCommits(db, projectPath) {
|
|
|
258
270
|
}
|
|
259
271
|
if (total > 0) {
|
|
260
272
|
const totalEmbedded = countEmbeddedCommits(db, projectPath, snapshot.modelId);
|
|
261
|
-
|
|
273
|
+
log2(`[git-commits] embedded ${total} commits for ${projectPath} (total embedded: ${totalEmbedded})`);
|
|
262
274
|
}
|
|
263
275
|
return total;
|
|
264
276
|
} finally {
|
|
@@ -395,7 +407,7 @@ function searchGitCommitsSync(db, projectPath, query, options) {
|
|
|
395
407
|
ftsCandidates.push(rowToCommit(row));
|
|
396
408
|
}
|
|
397
409
|
} catch (error) {
|
|
398
|
-
|
|
410
|
+
log2(`[git-commits] FTS query failed for "${trimmed}": ${error instanceof Error ? error.message : String(error)}`);
|
|
399
411
|
}
|
|
400
412
|
}
|
|
401
413
|
if (ftsCandidates.length === 0) {
|
|
@@ -584,15 +596,15 @@ function resultId(result) {
|
|
|
584
596
|
}
|
|
585
597
|
async function recordShadowMeasurement(args) {
|
|
586
598
|
try {
|
|
587
|
-
const shadowCohort =
|
|
599
|
+
const shadowCohort = getShadowEmbeddingMeasurementCohort2(args.projectPath);
|
|
588
600
|
if (!shadowCohort)
|
|
589
601
|
return;
|
|
590
|
-
const primaryCohort =
|
|
602
|
+
const primaryCohort = getPrimaryEmbeddingMeasurementCohort2(args.projectPath);
|
|
591
603
|
const shadowStartedAt = Date.now();
|
|
592
604
|
let shadowFailed = false;
|
|
593
605
|
let shadowResults = [];
|
|
594
606
|
try {
|
|
595
|
-
const vector = await
|
|
607
|
+
const vector = await embedShadowTextForProject2(args.projectPath, args.query);
|
|
596
608
|
if (!vector) {
|
|
597
609
|
shadowFailed = true;
|
|
598
610
|
} else {
|
|
@@ -648,7 +660,7 @@ async function recordShadowMeasurement(args) {
|
|
|
648
660
|
}
|
|
649
661
|
});
|
|
650
662
|
} catch (error) {
|
|
651
|
-
|
|
663
|
+
log2("[magic-context] shadow embedding measurement failed:", error);
|
|
652
664
|
}
|
|
653
665
|
}
|
|
654
666
|
function sha256(value) {
|
|
@@ -677,13 +689,31 @@ var sessionFirstMessageSearchDiagnosticStatements = new WeakMap;
|
|
|
677
689
|
var messageSearchDiagnosticStatementsWithDateRange = new WeakMap;
|
|
678
690
|
var batchedMessageSearchStatements = new WeakMap;
|
|
679
691
|
var batchedFtsCountStatements = new WeakMap;
|
|
680
|
-
function
|
|
692
|
+
function createUnifiedSearchDiagnostics2() {
|
|
681
693
|
return {
|
|
682
694
|
suppressedVisibleMemoryIds: [],
|
|
683
695
|
suppressedLiveMessageMatches: 0,
|
|
684
696
|
gitCommitUnavailable: null
|
|
685
697
|
};
|
|
686
698
|
}
|
|
699
|
+
function searchMessageHistory2(db, request) {
|
|
700
|
+
const diagnostics = request.collectDiagnostics ? createUnifiedSearchDiagnostics2() : undefined;
|
|
701
|
+
const results = searchMessages({
|
|
702
|
+
db,
|
|
703
|
+
sessionId: request.sessionId,
|
|
704
|
+
query: request.query,
|
|
705
|
+
limit: request.limit,
|
|
706
|
+
maxOrdinal: request.maxOrdinal,
|
|
707
|
+
probes: request.probes,
|
|
708
|
+
relaxedRecall: request.relaxedRecall,
|
|
709
|
+
diagnostics,
|
|
710
|
+
dateRange: request.dateRange
|
|
711
|
+
});
|
|
712
|
+
return {
|
|
713
|
+
results,
|
|
714
|
+
suppressedLiveMessageMatches: diagnostics?.suppressedLiveMessageMatches ?? 0
|
|
715
|
+
};
|
|
716
|
+
}
|
|
687
717
|
function normalizeLimit(limit) {
|
|
688
718
|
if (typeof limit !== "number" || !Number.isFinite(limit)) {
|
|
689
719
|
return DEFAULT_UNIFIED_SEARCH_LIMIT;
|
|
@@ -703,7 +733,7 @@ function timestampIsInRange(timestamp, range) {
|
|
|
703
733
|
}
|
|
704
734
|
var ID_SHAPED_QUERY_MAX_TOKENS = 5;
|
|
705
735
|
var ID_SHAPED_TOKEN = /^#?\d+$/;
|
|
706
|
-
function
|
|
736
|
+
function parseIdShapedQuery2(query) {
|
|
707
737
|
const trimmed = query.trim();
|
|
708
738
|
if (trimmed.length === 0) {
|
|
709
739
|
return null;
|
|
@@ -978,8 +1008,8 @@ async function getSemanticScores(args) {
|
|
|
978
1008
|
return semanticScores;
|
|
979
1009
|
}
|
|
980
1010
|
if (!args.workspace?.isWorkspaced) {
|
|
981
|
-
const cachedEmbeddings =
|
|
982
|
-
const embeddings = args.backfillMemoryEmbeddings === false ? cachedEmbeddings : await
|
|
1011
|
+
const cachedEmbeddings = getProjectEmbeddings2(args.db, args.projectPath, args.queryModelId);
|
|
1012
|
+
const embeddings = args.backfillMemoryEmbeddings === false ? cachedEmbeddings : await ensureMemoryEmbeddings2({
|
|
983
1013
|
db: args.db,
|
|
984
1014
|
projectIdentity: args.projectPath,
|
|
985
1015
|
memories: args.memories,
|
|
@@ -1006,8 +1036,8 @@ async function getSemanticScores(args) {
|
|
|
1006
1036
|
}
|
|
1007
1037
|
const ownMemories = memoriesByIdentity.get(args.projectPath) ?? [];
|
|
1008
1038
|
if (ownMemories.length > 0 && args.backfillMemoryEmbeddings !== false) {
|
|
1009
|
-
const ownEmbeddings =
|
|
1010
|
-
await
|
|
1039
|
+
const ownEmbeddings = getProjectEmbeddings2(args.db, args.projectPath, args.queryModelId);
|
|
1040
|
+
await ensureMemoryEmbeddings2({
|
|
1011
1041
|
db: args.db,
|
|
1012
1042
|
projectIdentity: args.projectPath,
|
|
1013
1043
|
memories: ownMemories,
|
|
@@ -1018,7 +1048,7 @@ async function getSemanticScores(args) {
|
|
|
1018
1048
|
const memberMemories = memoriesByIdentity.get(identity) ?? [];
|
|
1019
1049
|
if (memberMemories.length === 0)
|
|
1020
1050
|
continue;
|
|
1021
|
-
const cachedEmbeddings =
|
|
1051
|
+
const cachedEmbeddings = getProjectEmbeddings2(args.db, identity, args.queryModelId);
|
|
1022
1052
|
for (const memory of memberMemories) {
|
|
1023
1053
|
const memoryEmbedding = cachedEmbeddings.get(memory.id);
|
|
1024
1054
|
if (!memoryEmbedding || memoryEmbedding.modelId !== args.queryModelId)
|
|
@@ -1032,7 +1062,7 @@ function getFtsMatches(args) {
|
|
|
1032
1062
|
try {
|
|
1033
1063
|
return args.workspace?.isWorkspaced ? searchMemoriesFTSUnion(args.db, args.workspace.expandedIdentities, args.query, args.limit, args.workspace.ownIdentities, args.workspace.shareCategories, args.dateRange) : searchMemoriesFTS(args.db, args.projectPath, args.query, args.limit, args.dateRange);
|
|
1034
1064
|
} catch (error) {
|
|
1035
|
-
|
|
1065
|
+
log2(`[search] FTS query failed for "${args.query}": ${error instanceof Error ? error.message : String(error)}`);
|
|
1036
1066
|
return [];
|
|
1037
1067
|
}
|
|
1038
1068
|
}
|
|
@@ -1047,7 +1077,7 @@ function selectSemanticCandidates(args) {
|
|
|
1047
1077
|
if (args.queryModelId && args.queryModelId !== "off") {
|
|
1048
1078
|
const embeddingProjects = args.workspace?.isWorkspaced ? args.workspace.identities : [args.projectPath];
|
|
1049
1079
|
for (const projectPath of embeddingProjects) {
|
|
1050
|
-
const storedEmbeddings =
|
|
1080
|
+
const storedEmbeddings = getProjectEmbeddings2(args.db, projectPath, args.queryModelId);
|
|
1051
1081
|
for (const memoryId of storedEmbeddings.keys()) {
|
|
1052
1082
|
candidateIds.add(memoryId);
|
|
1053
1083
|
}
|
|
@@ -1110,7 +1140,7 @@ async function searchMemories(args) {
|
|
|
1110
1140
|
if (!args.memoryEnabled) {
|
|
1111
1141
|
return { results: [], suppressedVisibleIds: [] };
|
|
1112
1142
|
}
|
|
1113
|
-
const unfilteredMemories = args.workspace?.isWorkspaced ?
|
|
1143
|
+
const unfilteredMemories = args.workspace?.isWorkspaced ? getMemoriesByProjects2(args.db, args.workspace.expandedIdentities, ["active", "permanent"], Date.now(), args.workspace.ownIdentities, args.workspace.shareCategories) : getMemoriesByProject2(args.db, args.projectPath);
|
|
1114
1144
|
const memories = unfilteredMemories.filter((memory) => timestampIsInRange(memory.createdAt, args.dateRange));
|
|
1115
1145
|
if (memories.length === 0) {
|
|
1116
1146
|
return { results: [], suppressedVisibleIds: [] };
|
|
@@ -1737,7 +1767,7 @@ function memoriesToIdLookupResults(args) {
|
|
|
1737
1767
|
sourceName: args.sourceNameByMemoryId?.get(memory.id)
|
|
1738
1768
|
}));
|
|
1739
1769
|
}
|
|
1740
|
-
function
|
|
1770
|
+
function resolveMemoriesByIdsForSearch2(args) {
|
|
1741
1771
|
if (args.diagnostics) {
|
|
1742
1772
|
args.diagnostics.suppressedVisibleMemoryIds = [];
|
|
1743
1773
|
}
|
|
@@ -1745,7 +1775,7 @@ function resolveMemoriesByIdsForSearch(args) {
|
|
|
1745
1775
|
return null;
|
|
1746
1776
|
}
|
|
1747
1777
|
const workspace = resolveSearchWorkspaceContext(args.db, args.projectPath);
|
|
1748
|
-
const fetched = workspace.isWorkspaced ?
|
|
1778
|
+
const fetched = workspace.isWorkspaced ? getMemoriesByProjects2(args.db, workspace.expandedIdentities, ["active", "permanent", "archived"], Date.now(), workspace.ownIdentities, workspace.shareCategories) : getMemoriesByProject2(args.db, args.projectPath, ["active", "permanent", "archived"]);
|
|
1749
1779
|
if (fetched.length === 0) {
|
|
1750
1780
|
return null;
|
|
1751
1781
|
}
|
|
@@ -1781,7 +1811,7 @@ function resolveMemoriesByIdsForSearch(args) {
|
|
|
1781
1811
|
})
|
|
1782
1812
|
});
|
|
1783
1813
|
}
|
|
1784
|
-
async function
|
|
1814
|
+
async function unifiedSearch2(db, sessionId, projectPath, query, options = {}) {
|
|
1785
1815
|
const trimmedQuery = query.trim();
|
|
1786
1816
|
const measurementStartedAt = Date.now();
|
|
1787
1817
|
if (trimmedQuery.length === 0 || options.signal?.aborted) {
|
|
@@ -1812,28 +1842,41 @@ async function unifiedSearch(db, sessionId, projectPath, query, options = {}) {
|
|
|
1812
1842
|
const runCompartmentChunks = runMessages && embeddingEnabled;
|
|
1813
1843
|
const needsEmbedding = (runMemory || runGitCommits || runCompartmentChunks || runPrimers) && embeddingEnabled && isEmbeddingRuntimeEnabled();
|
|
1814
1844
|
const queryEmbeddingPromise = needsEmbedding ? embedQuery(trimmedQuery, options.signal).catch((error) => {
|
|
1815
|
-
|
|
1845
|
+
log2(`[search] query embedding failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
1816
1846
|
return null;
|
|
1817
1847
|
}) : Promise.resolve(null);
|
|
1818
1848
|
await Promise.resolve();
|
|
1819
1849
|
if (options.signal?.aborted)
|
|
1820
1850
|
return [];
|
|
1821
1851
|
const messageProbes = options.explicitSearch ? extractLiteralProbes(trimmedQuery) : [];
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1852
|
+
let messageResults = [];
|
|
1853
|
+
if (runMessages) {
|
|
1854
|
+
const messageRequest = {
|
|
1855
|
+
sessionId,
|
|
1856
|
+
query: trimmedQuery,
|
|
1857
|
+
limit: tierLimit,
|
|
1858
|
+
maxOrdinal: options.maxMessageOrdinal,
|
|
1859
|
+
probes: messageProbes,
|
|
1860
|
+
relaxedRecall: options.explicitSearch,
|
|
1861
|
+
collectDiagnostics: options.diagnostics !== undefined,
|
|
1862
|
+
dateRange
|
|
1863
|
+
};
|
|
1864
|
+
const delegated = options.searchMessageHistory ? await options.searchMessageHistory(messageRequest).catch((error) => {
|
|
1865
|
+
log2(`[search] off-thread message search failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
1866
|
+
return null;
|
|
1867
|
+
}) : null;
|
|
1868
|
+
if (delegated && options.signal?.aborted)
|
|
1869
|
+
return [];
|
|
1870
|
+
const outcome = delegated ?? searchMessageHistory2(db, messageRequest);
|
|
1871
|
+
if (options.diagnostics) {
|
|
1872
|
+
options.diagnostics.suppressedLiveMessageMatches = outcome.suppressedLiveMessageMatches;
|
|
1873
|
+
}
|
|
1874
|
+
messageResults = outcome.results;
|
|
1875
|
+
}
|
|
1833
1876
|
const capturedQuery = await queryEmbeddingPromise;
|
|
1834
1877
|
if (options.signal?.aborted)
|
|
1835
1878
|
return [];
|
|
1836
|
-
const embeddingSnapshot =
|
|
1879
|
+
const embeddingSnapshot = getProjectEmbeddingSnapshot2(projectPath);
|
|
1837
1880
|
const queryContract = capturedQuery instanceof Float32Array || capturedQuery === null ? null : capturedQuery;
|
|
1838
1881
|
const generationIsCurrent = queryContract === null || embeddingSnapshot !== null && embeddingSnapshot.generation === queryContract.generation;
|
|
1839
1882
|
const queryEmbedding = generationIsCurrent ? queryContract?.vector ?? (capturedQuery instanceof Float32Array ? capturedQuery : null) : null;
|
|
@@ -1920,7 +1963,7 @@ async function unifiedSearch(db, sessionId, projectPath, query, options = {}) {
|
|
|
1920
1963
|
primaryResults: results,
|
|
1921
1964
|
primaryQuery: queryContract,
|
|
1922
1965
|
primaryLatencyMs: Date.now() - measurementStartedAt,
|
|
1923
|
-
search:
|
|
1966
|
+
search: unifiedSearch2
|
|
1924
1967
|
});
|
|
1925
1968
|
}
|
|
1926
1969
|
const countRetrievals = options.countRetrievals ?? true;
|
|
@@ -1930,9 +1973,9 @@ async function unifiedSearch(db, sessionId, projectPath, query, options = {}) {
|
|
|
1930
1973
|
db.transaction(() => {
|
|
1931
1974
|
for (const memoryId of memoryIds) {
|
|
1932
1975
|
try {
|
|
1933
|
-
|
|
1976
|
+
updateMemoryRetrievalCount2(db, memoryId);
|
|
1934
1977
|
} catch (error) {
|
|
1935
|
-
if (error instanceof
|
|
1978
|
+
if (error instanceof ModuleMemoryAuthorityError2)
|
|
1936
1979
|
continue;
|
|
1937
1980
|
throw error;
|
|
1938
1981
|
}
|
|
@@ -2032,7 +2075,7 @@ function formatSearchDiagnosticLines(results, diagnostics) {
|
|
|
2032
2075
|
}
|
|
2033
2076
|
return lines;
|
|
2034
2077
|
}
|
|
2035
|
-
function
|
|
2078
|
+
function formatSearchResults2(query, results, currentSessionId, diagnostics) {
|
|
2036
2079
|
const diagnosticLines = formatSearchDiagnosticLines(results, diagnostics);
|
|
2037
2080
|
if (results.length === 0) {
|
|
2038
2081
|
if (diagnosticLines.length > 0) {
|
|
@@ -2060,4 +2103,4 @@ ${bodyParts.join(`
|
|
|
2060
2103
|
`)}`;
|
|
2061
2104
|
}
|
|
2062
2105
|
|
|
2063
|
-
export { indexCommitsForProject, embedUnembeddedCommits,
|
|
2106
|
+
export { indexCommitsForProject, embedUnembeddedCommits, createUnifiedSearchDiagnostics2, searchMessageHistory2, parseIdShapedQuery2, resolveMemoriesByIdsForSearch2, unifiedSearch2, formatSearchResults2 };
|
|
@@ -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 };
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import {
|
|
2
|
+
estimateTokens
|
|
3
|
+
} from "./server-1r6pmz4f.js";
|
|
4
|
+
import {
|
|
5
|
+
stableStringify
|
|
6
|
+
} from "./server-52awr2mw.js";
|
|
7
|
+
|
|
8
|
+
// src/features/magic-context/tool-definition-tokens.ts
|
|
9
|
+
import { createHash } from "node:crypto";
|
|
10
|
+
var measurements = new Map;
|
|
11
|
+
var fingerprints = new Map;
|
|
12
|
+
var persistenceDb = null;
|
|
13
|
+
var cachedInsertStmt = null;
|
|
14
|
+
function keyFor(providerID, modelID, agentName) {
|
|
15
|
+
const agent = agentName && agentName.length > 0 ? agentName : "default";
|
|
16
|
+
return `${providerID}/${modelID}/${agent}`;
|
|
17
|
+
}
|
|
18
|
+
function fingerprintFor(description, parameters) {
|
|
19
|
+
return createHash("sha256").update(description).update("\x00").update(stableStringify(parameters)).digest("hex");
|
|
20
|
+
}
|
|
21
|
+
function getCurrentToolSetHash(providerID, modelID, agentName) {
|
|
22
|
+
if (!providerID || !modelID)
|
|
23
|
+
return "";
|
|
24
|
+
const toolIds = measurements.get(keyFor(providerID, modelID, agentName));
|
|
25
|
+
if (!toolIds || toolIds.size === 0)
|
|
26
|
+
return "";
|
|
27
|
+
return createHash("sha256").update(Array.from(toolIds.keys()).sort().join("\x00")).digest("hex");
|
|
28
|
+
}
|
|
29
|
+
function getToolDefinitionMeasurementSignature(providerID, modelID, agentName) {
|
|
30
|
+
const key = keyFor(providerID, modelID, agentName);
|
|
31
|
+
const measured = measurements.get(key);
|
|
32
|
+
const observed = fingerprints.get(key);
|
|
33
|
+
if (!measured || !observed || [...measured.keys()].some((id) => !observed.has(id)))
|
|
34
|
+
return;
|
|
35
|
+
return createHash("sha256").update(JSON.stringify([...measured.keys()].sort().map((id) => [id, observed.get(id)]))).digest("hex");
|
|
36
|
+
}
|
|
37
|
+
function setDatabase(db) {
|
|
38
|
+
persistenceDb = db;
|
|
39
|
+
cachedInsertStmt = null;
|
|
40
|
+
}
|
|
41
|
+
function loadToolDefinitionMeasurements(db) {
|
|
42
|
+
let rows = [];
|
|
43
|
+
try {
|
|
44
|
+
rows = db.prepare("SELECT provider_id, model_id, agent_name, tool_id, token_count FROM tool_definition_measurements").all();
|
|
45
|
+
} catch {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
for (const row of rows) {
|
|
49
|
+
const key = keyFor(row.provider_id, row.model_id, row.agent_name);
|
|
50
|
+
let inner = measurements.get(key);
|
|
51
|
+
if (!inner) {
|
|
52
|
+
inner = new Map;
|
|
53
|
+
measurements.set(key, inner);
|
|
54
|
+
}
|
|
55
|
+
inner.set(row.tool_id, row.token_count);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function recordToolDefinition(providerID, modelID, agentName, toolID, description, parameters) {
|
|
59
|
+
if (!providerID || !modelID || !toolID)
|
|
60
|
+
return;
|
|
61
|
+
const key = keyFor(providerID, modelID, agentName);
|
|
62
|
+
const fp = fingerprintFor(description ?? "", parameters);
|
|
63
|
+
let innerFp = fingerprints.get(key);
|
|
64
|
+
if (innerFp && innerFp.get(toolID) === fp)
|
|
65
|
+
return;
|
|
66
|
+
let paramsText = "";
|
|
67
|
+
try {
|
|
68
|
+
paramsText = parameters === undefined ? "" : JSON.stringify(parameters);
|
|
69
|
+
} catch {
|
|
70
|
+
paramsText = "";
|
|
71
|
+
}
|
|
72
|
+
const tokens = estimateTokens(description ?? "") + estimateTokens(paramsText);
|
|
73
|
+
let inner = measurements.get(key);
|
|
74
|
+
if (!inner) {
|
|
75
|
+
inner = new Map;
|
|
76
|
+
measurements.set(key, inner);
|
|
77
|
+
}
|
|
78
|
+
inner.set(toolID, tokens);
|
|
79
|
+
if (!innerFp) {
|
|
80
|
+
innerFp = new Map;
|
|
81
|
+
fingerprints.set(key, innerFp);
|
|
82
|
+
}
|
|
83
|
+
innerFp.set(toolID, fp);
|
|
84
|
+
if (persistenceDb) {
|
|
85
|
+
try {
|
|
86
|
+
const agent = agentName && agentName.length > 0 ? agentName : "default";
|
|
87
|
+
if (!cachedInsertStmt) {
|
|
88
|
+
cachedInsertStmt = persistenceDb.prepare(`INSERT OR REPLACE INTO tool_definition_measurements
|
|
89
|
+
(provider_id, model_id, agent_name, tool_id, token_count, recorded_at)
|
|
90
|
+
VALUES (?, ?, ?, ?, ?, ?)`);
|
|
91
|
+
}
|
|
92
|
+
cachedInsertStmt.run(providerID, modelID, agent, toolID, tokens, Date.now());
|
|
93
|
+
} catch {
|
|
94
|
+
cachedInsertStmt = null;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function getLargestMeasuredToolDefinitionTokens() {
|
|
99
|
+
let largest = 0;
|
|
100
|
+
for (const tools of measurements.values()) {
|
|
101
|
+
let total = 0;
|
|
102
|
+
for (const tokens of tools.values())
|
|
103
|
+
total += tokens;
|
|
104
|
+
largest = Math.max(largest, total);
|
|
105
|
+
}
|
|
106
|
+
return largest > 0 ? largest : undefined;
|
|
107
|
+
}
|
|
108
|
+
function getMeasuredToolDefinitionTokens(providerID, modelID, agentName) {
|
|
109
|
+
if (!providerID || !modelID)
|
|
110
|
+
return;
|
|
111
|
+
const inner = measurements.get(keyFor(providerID, modelID, agentName));
|
|
112
|
+
if (!inner || inner.size === 0)
|
|
113
|
+
return;
|
|
114
|
+
let total = 0;
|
|
115
|
+
for (const tokens of inner.values())
|
|
116
|
+
total += tokens;
|
|
117
|
+
return total;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export { getCurrentToolSetHash, getToolDefinitionMeasurementSignature, setDatabase, loadToolDefinitionMeasurements, recordToolDefinition, getLargestMeasuredToolDefinitionTokens, getMeasuredToolDefinitionTokens };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveDreamerTaskModel2
|
|
3
|
-
} from "./server-
|
|
3
|
+
} from "./server-8cd2j99z.js";
|
|
4
4
|
|
|
5
5
|
// src/features/magic-context/dreamer/task-registry.ts
|
|
6
6
|
var CANONICAL_DREAM_TASKS = [
|
|
@@ -17,6 +17,9 @@ var CANONICAL_DREAM_TASKS = [
|
|
|
17
17
|
"promote-primers",
|
|
18
18
|
"refresh-primers"
|
|
19
19
|
];
|
|
20
|
+
function availableDreamTasks(smartNotesEnabled = true) {
|
|
21
|
+
return CANONICAL_DREAM_TASKS.filter((task) => smartNotesEnabled || task !== "evaluate-smart-notes");
|
|
22
|
+
}
|
|
20
23
|
var DREAM_TOOL_LOOP_TOKEN_BUDGETS = {
|
|
21
24
|
"map-memories": 2500000,
|
|
22
25
|
verify: 2500000,
|
|
@@ -132,13 +135,12 @@ function compareTaskOrder(a, b) {
|
|
|
132
135
|
}
|
|
133
136
|
|
|
134
137
|
// src/features/magic-context/dreamer/task-config.ts
|
|
135
|
-
function buildDreamTaskRuntimeConfigs2(dreamer, harness, language,
|
|
136
|
-
return
|
|
138
|
+
function buildDreamTaskRuntimeConfigs2(dreamer, harness, language, smartNotesEnabled = true) {
|
|
139
|
+
return availableDreamTasks(smartNotesEnabled).map((task) => {
|
|
137
140
|
const resolved = resolveDreamerTaskModel2({
|
|
138
141
|
config: { dreamer },
|
|
139
142
|
harness,
|
|
140
|
-
task
|
|
141
|
-
muralModel
|
|
143
|
+
task
|
|
142
144
|
});
|
|
143
145
|
return {
|
|
144
146
|
task,
|
|
@@ -166,13 +168,13 @@ function dreamTaskScheduled2(dreamer, task) {
|
|
|
166
168
|
const schedule = dreamer?.tasks?.[task]?.schedule;
|
|
167
169
|
return typeof schedule === "string" && schedule.trim() !== "";
|
|
168
170
|
}
|
|
169
|
-
function enabledDreamTasks2(dreamer) {
|
|
171
|
+
function enabledDreamTasks2(dreamer, smartNotesEnabled = true) {
|
|
170
172
|
if (!dreamer?.tasks)
|
|
171
173
|
return [];
|
|
172
|
-
return
|
|
174
|
+
return availableDreamTasks(smartNotesEnabled).filter((t) => dreamer.tasks[t]?.schedule?.trim());
|
|
173
175
|
}
|
|
174
|
-
function summarizeDreamSchedule2(dreamer) {
|
|
175
|
-
const enabled = enabledDreamTasks2(dreamer);
|
|
176
|
+
function summarizeDreamSchedule2(dreamer, smartNotesEnabled = true) {
|
|
177
|
+
const enabled = enabledDreamTasks2(dreamer, smartNotesEnabled);
|
|
176
178
|
if (enabled.length === 0)
|
|
177
179
|
return "manual-only";
|
|
178
180
|
return enabled.map((t) => `${t} ${dreamer?.tasks[t]?.schedule}`).join(", ");
|