@cortexkit/opencode-magic-context 0.49.18 → 0.49.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auto-search-worker.js +53 -10
- package/dist/chunk-embedding-write-worker.js +30 -23
- package/dist/{compaction-marker-candidates-n4krhat4.js → compaction-marker-candidates-b2q30cft.js} +3 -3
- package/dist/compaction-marker-candidates-worker.js +2 -2
- package/dist/compartment-chunk-embedding-va090as0.js +65 -0
- package/dist/config/schema/magic-context.d.ts +6 -6
- package/dist/{conflict-warning-hook-4pmz879v.js → conflict-warning-hook-frp3z2wk.js} +9 -8
- package/dist/{context-m897gfp9.js → context-mkece1db.js} +460 -135
- package/dist/{derive-budgets-zn7yzd2d.js → derive-budgets-pqybnx09.js} +2 -2
- package/dist/embedding-backfill-gy3p78py.js +25 -0
- package/dist/embedding-worker-process.js +2 -2
- package/dist/embedding-worker.js +5 -5
- package/dist/features/magic-context/chunk-embedding-writer.d.ts.map +1 -1
- package/dist/features/magic-context/compartment-chunk-embedding.d.ts +44 -1
- package/dist/features/magic-context/compartment-chunk-embedding.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/classify.d.ts +3 -0
- package/dist/features/magic-context/dreamer/classify.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/hidden-single-shot.d.ts +11 -0
- package/dist/features/magic-context/dreamer/hidden-single-shot.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/map-memories.d.ts +3 -0
- package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/task-config.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/task-scheduler.d.ts +2 -0
- package/dist/features/magic-context/dreamer/task-scheduler.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/verify.d.ts +3 -0
- package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-identity.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-local.d.ts +1 -0
- package/dist/features/magic-context/memory/embedding-local.d.ts.map +1 -1
- package/dist/features/magic-context/memory/local-embedding-pooling.d.ts +22 -0
- package/dist/features/magic-context/memory/local-embedding-pooling.d.ts.map +1 -0
- package/dist/features/magic-context/message-index-async.d.ts.map +1 -1
- package/dist/features/magic-context/message-index.d.ts +2 -0
- package/dist/features/magic-context/message-index.d.ts.map +1 -1
- package/dist/features/magic-context/migrations.d.ts.map +1 -1
- package/dist/features/magic-context/mural/compress-cues.d.ts.map +1 -1
- package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
- package/dist/features/magic-context/search.d.ts +27 -0
- package/dist/features/magic-context/search.d.ts.map +1 -1
- package/dist/features/magic-context/smart-notes/compiler.d.ts.map +1 -1
- package/dist/features/magic-context/storage-clone.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta-persisted.d.ts +14 -0
- package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
- package/dist/features/magic-context/subagent-token-capture.d.ts +20 -0
- package/dist/features/magic-context/subagent-token-capture.d.ts.map +1 -1
- package/dist/features/magic-context/user-memory/review-user-memories.d.ts.map +1 -1
- package/dist/{history-owner-xp3pngv7.js → history-owner-36wp3mkb.js} +2 -2
- package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
- package/dist/hooks/magic-context/auto-embed-session.d.ts.map +1 -1
- package/dist/hooks/magic-context/auto-search-hint.d.ts +7 -1
- package/dist/hooks/magic-context/auto-search-hint.d.ts.map +1 -1
- package/dist/hooks/magic-context/auto-search-runner.d.ts.map +1 -1
- package/dist/hooks/magic-context/auto-search-worker-client.d.ts +33 -6
- package/dist/hooks/magic-context/auto-search-worker-client.d.ts.map +1 -1
- package/dist/hooks/magic-context/auto-search-worker-evaluation.fixture.d.ts +2 -0
- package/dist/hooks/magic-context/auto-search-worker-evaluation.fixture.d.ts.map +1 -0
- package/dist/hooks/magic-context/cache-busting-signals.d.ts +5 -2
- package/dist/hooks/magic-context/cache-busting-signals.d.ts.map +1 -1
- package/dist/hooks/magic-context/channel2-delivery.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-historian.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-types.d.ts +5 -0
- package/dist/hooks/magic-context/compartment-runner-types.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-trigger.d.ts +1 -1
- package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
- package/dist/hooks/magic-context/diagnostic-log-state.d.ts +4 -0
- package/dist/hooks/magic-context/diagnostic-log-state.d.ts.map +1 -0
- package/dist/hooks/magic-context/execute-reclaim.d.ts +35 -0
- package/dist/hooks/magic-context/execute-reclaim.d.ts.map +1 -0
- package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -1
- package/dist/hooks/magic-context/hook.d.ts +1 -3
- package/dist/hooks/magic-context/hook.d.ts.map +1 -1
- package/dist/hooks/magic-context/latest-assistant-turn.d.ts +8 -0
- package/dist/hooks/magic-context/latest-assistant-turn.d.ts.map +1 -1
- package/dist/hooks/magic-context/lkg-recovery-fence.d.ts +5 -0
- package/dist/hooks/magic-context/lkg-recovery-fence.d.ts.map +1 -1
- package/dist/hooks/magic-context/lkg-recovery-prefix.d.ts +13 -0
- package/dist/hooks/magic-context/lkg-recovery-prefix.d.ts.map +1 -1
- package/dist/hooks/magic-context/nudge-evaluation-log.d.ts +3 -0
- package/dist/hooks/magic-context/nudge-evaluation-log.d.ts.map +1 -0
- package/dist/hooks/magic-context/pending-drop-eligibility.d.ts.map +1 -1
- package/dist/hooks/magic-context/protected-tail-boundary.d.ts +4 -0
- package/dist/hooks/magic-context/protected-tail-boundary.d.ts.map +1 -1
- package/dist/hooks/magic-context/raw-ordinal-warmup.d.ts.map +1 -1
- package/dist/hooks/magic-context/system-date-refresh.d.ts +15 -2
- package/dist/hooks/magic-context/system-date-refresh.d.ts.map +1 -1
- package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
- package/dist/hooks/magic-context/system-prompt-sticky-date.d.ts +10 -0
- package/dist/hooks/magic-context/system-prompt-sticky-date.d.ts.map +1 -0
- package/dist/hooks/magic-context/tag-messages.d.ts +2 -0
- package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +23 -6
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform.d.ts.map +1 -1
- package/dist/{index-bjcnntmz.js → index-0wthn7fp.js} +468 -18
- package/dist/{index-kq82mtg0.js → index-11zf2wwc.js} +3 -3
- package/dist/{index-b5vqckbw.js → index-153r2q6z.js} +314 -127
- package/dist/{index-v8awdgvd.js → index-1pefp8ar.js} +5 -5
- package/dist/{v2/server-beht37jy.js → index-1zx2pa5d.js} +1 -1
- package/dist/{index-ze7mvk54.js → index-2yhtnfcf.js} +75 -57
- package/dist/{index-cf74k5ak.js → index-305y133n.js} +4 -4
- package/dist/{index-s734jcsr.js → index-35qc6606.js} +9 -3
- package/dist/{index-x4njr8df.js → index-48stjd56.js} +105 -19
- package/dist/{index-24jbw52d.js → index-4n7w9rad.js} +6 -6
- package/dist/{index-kee4kn5j.js → index-4pnsgvfk.js} +1 -1
- package/dist/{v2/server-8cd2j99z.js → index-5kym00ag.js} +32 -13
- package/dist/{index-4s3t0nd0.js → index-616rsjrv.js} +2 -2
- package/dist/{index-e4xv8890.js → index-67nyj0gy.js} +507 -210
- package/dist/{index-6x57ar45.js → index-adk2z5d8.js} +3 -3
- package/dist/{index-c5pytzne.js → index-b88dwwrh.js} +1 -1
- package/dist/{index-rr2bb45z.js → index-c4b76d4t.js} +2 -2
- package/dist/{index-nj7yykkx.js → index-c7phnbvk.js} +1 -1
- package/dist/index-cpjk5jd2.js +82 -0
- package/dist/{index-6s5941tm.js → index-d6rp4dxh.js} +5 -5
- package/dist/{index-s7j8tvhv.js → index-dc8hy95c.js} +69 -17
- package/dist/{index-j75v2476.js → index-h7tgn49j.js} +12 -15
- package/dist/{index-ke416mdc.js → index-j76ah6d7.js} +2 -2
- package/dist/{index-r4nkrs05.js → index-jfh3cktr.js} +4 -4
- package/dist/{index-a6mc0v4d.js → index-jmycsey7.js} +3 -3
- package/dist/{index-24fezq97.js → index-jr5na10t.js} +4 -4
- package/dist/{index-s74zqahq.js → index-kc9pn495.js} +4 -4
- package/dist/{index-p5y3k4g7.js → index-nda0zgna.js} +2 -1
- package/dist/{index-jn12fvvh.js → index-neb2jaed.js} +3 -3
- package/dist/{index-qn7xstt2.js → index-pnjwa6qa.js} +6 -7
- package/dist/{index-fgncb0ng.js → index-rmd0069m.js} +11 -11
- package/dist/{index-y9f76s3f.js → index-rrv26qjz.js} +1 -1
- package/dist/{index-v10f1rjv.js → index-spwjbkc7.js} +1 -1
- package/dist/{index-k29z4aqh.js → index-t5pck3ss.js} +1 -1
- package/dist/{index-936py2wm.js → index-t7hx3qcb.js} +361 -113
- package/dist/{index-s1ex9y6p.js → index-v7r4td4c.js} +464 -79
- package/dist/{index-2vxtcb95.js → index-vkc1ca9p.js} +2 -2
- package/dist/{index-rmwykbbb.js → index-x4k3f4mf.js} +33 -10
- package/dist/{index-bp5083x2.js → index-x9k3mqrf.js} +1 -1
- package/dist/{index-n37sebck.js → index-y4a3nhtk.js} +1 -1
- package/dist/index.js +57 -50
- package/dist/{logger-jm3sqqzr.js → logger-94kew5wm.js} +1 -1
- package/dist/{message-fts-rowid-map-17s0dfn4.js → message-fts-rowid-map-22tevnnj.js} +6 -5
- package/dist/{message-index-66jv6fh4.js → message-index-5qxcz6h7.js} +16 -15
- package/dist/{message-index-bounded-n1frdn85.js → message-index-bounded-n0m0t7tv.js} +16 -15
- package/dist/{message-time-backfill-73mmm76q.js → message-time-backfill-0myx7fz3.js} +3 -3
- package/dist/migration-worker.js +13 -12
- package/dist/{model-resolution-nx97z3x7.js → model-resolution-280gmqvd.js} +1 -1
- package/dist/plugin/embedding-bootstrap.d.ts +3 -1
- package/dist/plugin/embedding-bootstrap.d.ts.map +1 -1
- package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
- package/dist/plugin/messages-transform.d.ts.map +1 -1
- package/dist/plugin/rpc-handlers.d.ts +8 -0
- package/dist/plugin/rpc-handlers.d.ts.map +1 -1
- package/dist/plugin/subagent-tool-policy.d.ts +9 -0
- package/dist/plugin/subagent-tool-policy.d.ts.map +1 -1
- package/dist/plugin/tool-registry.d.ts.map +1 -1
- package/dist/{project-embedding-registry-z74mhqkf.js → project-embedding-registry-s2pqgec9.js} +13 -12
- package/dist/raw-ordinal-warmup-worker.js +136 -101
- package/dist/{read-session-chunk-v06g3vka.js → read-session-chunk-0a8vdyqp.js} +11 -10
- package/dist/{read-session-raw-rsc8c7qy.js → read-session-raw-y5cszf0b.js} +4 -3
- package/dist/recomp-orchestrator-61vyha9j.js +62 -0
- package/dist/{safe-notification-target-1szv1k5k.js → safe-notification-target-mkr9yzvr.js} +2 -2
- package/dist/{search-archive-4d53y23e.js → search-archive-8q9s49p5.js} +12 -11
- package/dist/{search-nkf271d4.js → search-v1y9ejws.js} +25 -24
- package/dist/{send-session-notification-6ve0e8p4.js → send-session-notification-0k6qzydk.js} +7 -6
- package/dist/shared/logger.d.ts.map +1 -1
- package/dist/shared/model-resolution.d.ts +2 -0
- package/dist/shared/model-resolution.d.ts.map +1 -1
- package/dist/shared/model-suggestion-retry.d.ts +30 -1
- package/dist/shared/model-suggestion-retry.d.ts.map +1 -1
- package/dist/shared/prompt-async-transport.d.ts +3 -0
- package/dist/shared/prompt-async-transport.d.ts.map +1 -1
- package/dist/shared/rpc-types.d.ts +7 -0
- package/dist/shared/rpc-types.d.ts.map +1 -1
- package/dist/shared/sqlite.d.ts +1 -1
- package/dist/shared/sqlite.d.ts.map +1 -1
- package/dist/shared/subagent-runner.d.ts +2 -0
- package/dist/shared/subagent-runner.d.ts.map +1 -1
- package/dist/shared/worker-shutdown.d.ts +68 -0
- package/dist/shared/worker-shutdown.d.ts.map +1 -0
- package/dist/shared/worker-shutdown.fixture.d.ts +2 -0
- package/dist/shared/worker-shutdown.fixture.d.ts.map +1 -0
- package/dist/{sqlite-zf72c52d.js → sqlite-1rpvw2rj.js} +1 -1
- package/dist/{storage-memory-y3qmy00r.js → storage-memory-nm7v82mj.js} +2 -2
- package/dist/{storage-tags-r7k9tjcv.js → storage-tags-r6nk29n4.js} +5 -5
- package/dist/{task-config-x3qmayd2.js → task-config-t6bpyka7.js} +2 -2
- package/dist/tools/ctx-expand/rust-mode-tag.test-support.d.ts +15 -0
- package/dist/tools/ctx-expand/rust-mode-tag.test-support.d.ts.map +1 -0
- package/dist/tools/ctx-expand/tools.d.ts +11 -0
- package/dist/tools/ctx-expand/tools.d.ts.map +1 -1
- package/dist/tools/ctx-search/tools.d.ts.map +1 -1
- package/dist/{transform-postprocess-phase-zpgav0h7.js → transform-postprocess-phase-vtrgb7m6.js} +34 -31
- package/dist/v2/auto-search-worker.js +53 -10
- package/dist/v2/chunk-embedding-write-worker.js +30 -23
- package/dist/v2/{compaction-marker-candidates-ebx3388k.js → compaction-marker-candidates-cfab70cs.js} +3 -3
- package/dist/v2/compaction-marker-candidates-worker.js +2 -2
- package/dist/v2/compartment-chunk-embedding-nbdqx1td.js +64 -0
- package/dist/v2/{context-f2xh7ba4.js → context-cc33tv2z.js} +1259 -404
- package/dist/v2/{derive-budgets-2zh4gm2c.js → derive-budgets-knf763tt.js} +3 -3
- package/dist/v2/embedding-backfill-yxv2h5mc.js +24 -0
- package/dist/v2/embedding-worker-process.js +2 -2
- package/dist/v2/embedding-worker.js +5 -5
- package/dist/v2/hidden-child-record.d.ts +2 -0
- package/dist/v2/hidden-child-record.d.ts.map +1 -1
- package/dist/v2/hidden-completion.d.ts +2 -0
- package/dist/v2/hidden-completion.d.ts.map +1 -1
- package/dist/v2/hidden-model-activity.d.ts +7 -0
- package/dist/v2/hidden-model-activity.d.ts.map +1 -0
- package/dist/v2/{history-owner-42e16w0n.js → history-owner-ad0crnrn.js} +2 -2
- package/dist/v2/hooks/context.d.ts.map +1 -1
- package/dist/v2/hooks/generate.d.ts +36 -1
- package/dist/v2/hooks/generate.d.ts.map +1 -1
- package/dist/v2/hooks/lkg-system.d.ts +35 -4
- package/dist/v2/hooks/lkg-system.d.ts.map +1 -1
- package/dist/v2/hooks/payload.d.ts +16 -1
- package/dist/v2/hooks/payload.d.ts.map +1 -1
- package/dist/v2/hooks/tools.d.ts.map +1 -1
- package/dist/v2/{logger-7qt02bnb.js → logger-p34mjtja.js} +1 -1
- package/dist/v2/{message-fts-rowid-map-wfx67gfd.js → message-fts-rowid-map-dg12wymk.js} +6 -5
- package/dist/v2/{message-index-bounded-w3hfm29z.js → message-index-bounded-f4e01xk0.js} +16 -15
- package/dist/v2/{message-index-48f7hw7a.js → message-index-ydzrp6y6.js} +16 -15
- package/dist/v2/{message-time-backfill-04t0km1z.js → message-time-backfill-ddh8n9gy.js} +3 -3
- package/dist/v2/migration-worker.js +13 -12
- package/dist/v2/{model-resolution-nx97z3x7.js → model-resolution-280gmqvd.js} +1 -1
- package/dist/v2/{project-embedding-registry-gnkj56xp.js → project-embedding-registry-deza9ksw.js} +13 -12
- package/dist/v2/raw-ordinal-warmup-worker.js +136 -101
- package/dist/v2/{read-session-chunk-zpgmxwte.js → read-session-chunk-8cxfagky.js} +11 -10
- package/dist/v2/{read-session-raw-yaegtjzh.js → read-session-raw-1nrrecvx.js} +4 -3
- package/dist/v2/recomp-orchestrator-47m4hv5g.js +61 -0
- package/dist/v2/{safe-notification-target-qg7n2s77.js → safe-notification-target-khnzg57c.js} +2 -2
- package/dist/v2/{search-archive-vv48s2aa.js → search-archive-e80cvc09.js} +12 -11
- package/dist/v2/{search-kza414f0.js → search-fjz746zr.js} +25 -24
- package/dist/v2/{send-session-notification-3pxn658x.js → send-session-notification-nwvrv34d.js} +7 -6
- package/dist/v2/{server-8by8qfec.js → server-0epqaxhd.js} +75 -57
- package/dist/v2/{server-pwv4ezb0.js → server-168pb207.js} +1 -1
- package/dist/v2/{server-h0410h0v.js → server-1bw1wcbp.js} +1 -1
- package/dist/{index-beht37jy.js → v2/server-1zx2pa5d.js} +1 -1
- package/dist/v2/{server-a9xqj88f.js → server-230fnbws.js} +4 -4
- package/dist/v2/{server-tbe1femw.js → server-29qp8nz4.js} +1 -1
- package/dist/v2/{server-tgnbmwah.js → server-3mz2qh5a.js} +1 -1
- package/dist/v2/{server-hy3d3vsx.js → server-4nw4fqhr.js} +2 -2
- package/dist/v2/{server-qv7f0hhe.js → server-4sxjs6hn.js} +5 -5
- package/dist/v2/{server-34kwfsr4.js → server-53eh1r8r.js} +2 -2
- package/dist/v2/{server-xj136kt8.js → server-55rgxfrw.js} +9 -3
- package/dist/v2/{server-nj659894.js → server-5arr9ecn.js} +2 -2
- package/dist/{index-8cd2j99z.js → v2/server-5kym00ag.js} +32 -13
- package/dist/v2/{server-2ehj0bw7.js → server-63fqdghs.js} +106 -20
- package/dist/v2/{server-f2xf5gcb.js → server-6495nmn9.js} +12 -15
- package/dist/v2/{server-qd11g795.js → server-92g7d776.js} +2 -1
- package/dist/v2/{server-gpvay0xz.js → server-9x0kmta4.js} +6 -7
- package/dist/v2/{server-27gq4mfz.js → server-a3dwxfgd.js} +4 -4
- package/dist/v2/{server-6tmj0s7j.js → server-af2pght7.js} +3 -3
- package/dist/v2/{server-1wy7b9de.js → server-br1x0tev.js} +3 -3
- package/dist/v2/{server-n1prf1g6.js → server-brj8j2gk.js} +2 -2
- package/dist/v2/{server-bfpda1tb.js → server-c7dxxsj7.js} +466 -81
- package/dist/v2/server-cpjk5jd2.js +82 -0
- package/dist/v2/{server-g3qma5c0.js → server-dj7tz4ph.js} +2 -2
- package/dist/v2/{server-xhab8jx8.js → server-ej96a39v.js} +33 -10
- package/dist/v2/{server-6pmqg9m4.js → server-gyy4k6mf.js} +1 -1
- package/dist/v2/{server-a2eqhkxr.js → server-hqzyq8n4.js} +11 -11
- package/dist/v2/{server-h1v0pyxb.js → server-j4jnp9b5.js} +468 -18
- package/dist/v2/{server-da07v4xp.js → server-k3t06fxr.js} +1 -1
- package/dist/v2/{server-1nyybqan.js → server-m91f9m5s.js} +69 -17
- package/dist/v2/{server-rmygf5pn.js → server-ne8arh8t.js} +2 -2
- package/dist/v2/{server-my7k4eds.js → server-vn2nwcv6.js} +5 -5
- package/dist/v2/{server-46neh5fa.js → server-wyawsa88.js} +314 -127
- package/dist/v2/{server-zzkj2fch.js → server-xsryvyf6.js} +4 -4
- package/dist/v2/{server-n37sebck.js → server-y4a3nhtk.js} +1 -1
- package/dist/v2/{server-d04vrx0j.js → server-ygtykank.js} +2 -2
- package/dist/v2/server.js +6 -6
- package/dist/v2/{sqlite-zf72c52d.js → sqlite-1rpvw2rj.js} +1 -1
- package/dist/v2/{storage-memory-y3qmy00r.js → storage-memory-nm7v82mj.js} +2 -2
- package/dist/v2/{storage-tags-3wdb8zph.js → storage-tags-ss08kj5r.js} +5 -5
- package/dist/v2/store-reader.d.ts +8 -0
- package/dist/v2/store-reader.d.ts.map +1 -1
- package/dist/v2/{task-config-nvz8mapa.js → task-config-7md27rx8.js} +2 -2
- package/dist/v2/{wrapup-orchestrator-psqz7yh0.js → wrapup-orchestrator-639whfhq.js} +32 -31
- package/dist/wrapup-orchestrator-mnvt2g8m.js +49 -0
- package/package.json +1 -1
- package/src/config/index.test.ts +28 -6
- package/src/shared/logger.test.ts +42 -1
- package/src/shared/logger.ts +11 -13
- package/src/shared/model-resolution.test.ts +67 -12
- package/src/shared/model-resolution.ts +43 -16
- package/src/shared/model-suggestion-retry.test.ts +166 -0
- package/src/shared/model-suggestion-retry.ts +165 -14
- package/src/shared/prompt-async-transport.test.ts +107 -0
- package/src/shared/prompt-async-transport.ts +86 -3
- package/src/shared/rpc-types.ts +7 -0
- package/src/shared/sqlite-busy-budget-review.test.ts +6 -1
- package/src/shared/sqlite.ts +4 -2
- package/src/shared/subagent-runner.ts +2 -0
- package/src/shared/worker-shutdown-fence.test.ts +87 -0
- package/src/shared/worker-shutdown.fixture.ts +25 -0
- package/src/shared/worker-shutdown.test.ts +127 -0
- package/src/shared/worker-shutdown.ts +160 -0
- package/dist/embedding-backfill-fmz50tsy.js +0 -24
- package/dist/recomp-orchestrator-ghpk2dtq.js +0 -61
- package/dist/v2/embedding-backfill-7c7yr69y.js +0 -23
- package/dist/v2/recomp-orchestrator-4vfxej9t.js +0 -60
- package/dist/wrapup-orchestrator-s9zc5b00.js +0 -48
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
tagRevisionKey,
|
|
6
6
|
tagIdentityRevisionKey,
|
|
7
7
|
deleteTagIdentityRevisions
|
|
8
|
-
} from "./index-
|
|
8
|
+
} from "./index-x9k3mqrf.js";
|
|
9
9
|
import {
|
|
10
10
|
getHarness2
|
|
11
11
|
} from "./index-pavzsdc6.js";
|
|
@@ -15,37 +15,37 @@ import {
|
|
|
15
15
|
import {
|
|
16
16
|
isPidAlive,
|
|
17
17
|
readProcessStartTime
|
|
18
|
-
} from "./index-
|
|
18
|
+
} from "./index-c7phnbvk.js";
|
|
19
19
|
import {
|
|
20
20
|
removeSystemReminders,
|
|
21
21
|
removeNestedBlocks,
|
|
22
22
|
hasMeaningfulUserText2,
|
|
23
23
|
extractTexts2
|
|
24
|
-
} from "./index-
|
|
24
|
+
} from "./index-b88dwwrh.js";
|
|
25
25
|
import {
|
|
26
26
|
Database2,
|
|
27
27
|
getSqliteDatabasePath2,
|
|
28
28
|
prepareCachedStatement2,
|
|
29
29
|
withSqliteBackgroundWriter2,
|
|
30
30
|
withoutSqliteTransformPass2
|
|
31
|
-
} from "./index-
|
|
31
|
+
} from "./index-1zx2pa5d.js";
|
|
32
32
|
import {
|
|
33
33
|
resolveOpenCodeDbPath,
|
|
34
34
|
assertOpenCodeStoreGeneration
|
|
35
35
|
} from "./index-58e3y90n.js";
|
|
36
36
|
import {
|
|
37
37
|
cleanUserText2
|
|
38
|
-
} from "./index-
|
|
38
|
+
} from "./index-x4k3f4mf.js";
|
|
39
39
|
import {
|
|
40
40
|
recordMessageFtsRowid2,
|
|
41
41
|
recordIndexedMessageTime2,
|
|
42
42
|
messageFtsOrdinalRangeIsMapped2,
|
|
43
43
|
getMessageFtsRowidMapBackfillProgress2,
|
|
44
44
|
deleteUnmappedMessageFtsRows2
|
|
45
|
-
} from "./index-
|
|
45
|
+
} from "./index-jmycsey7.js";
|
|
46
46
|
import {
|
|
47
|
-
|
|
48
|
-
} from "./index-
|
|
47
|
+
deleteChunkEmbedBackoffForSession2
|
|
48
|
+
} from "./index-153r2q6z.js";
|
|
49
49
|
import {
|
|
50
50
|
sameProjectDirectory
|
|
51
51
|
} from "./index-knvkbfvh.js";
|
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
} from "./index-8ajstryz.js";
|
|
55
55
|
import {
|
|
56
56
|
logSlowWriteTransaction
|
|
57
|
-
} from "./index-
|
|
57
|
+
} from "./index-t5pck3ss.js";
|
|
58
58
|
import {
|
|
59
59
|
ensurePrivateStorageDirectorySync,
|
|
60
60
|
writeStorageFileSync,
|
|
@@ -214,7 +214,14 @@ import { createHash as createHash4 } from "node:crypto";
|
|
|
214
214
|
|
|
215
215
|
// src/hooks/magic-context/lkg-recovery-fence.ts
|
|
216
216
|
import { createHash as createHash2, randomUUID as randomUUID2 } from "node:crypto";
|
|
217
|
-
import {
|
|
217
|
+
import {
|
|
218
|
+
lstatSync,
|
|
219
|
+
opendirSync,
|
|
220
|
+
readdirSync as readdirSync2,
|
|
221
|
+
readFileSync as readFileSync2,
|
|
222
|
+
rmdirSync,
|
|
223
|
+
rmSync as rmSync2
|
|
224
|
+
} from "node:fs";
|
|
218
225
|
import { basename, dirname, join as join2 } from "node:path";
|
|
219
226
|
|
|
220
227
|
// src/shared/storage-file-mutex.ts
|
|
@@ -357,6 +364,58 @@ var lkgServedArrayDigest = hash;
|
|
|
357
364
|
function lkgRecoveryFencePath(sessionId) {
|
|
358
365
|
return join2(getMagicContextStorageDir(), "lkg-recovery-fences", `${hash(sessionId)}.json`);
|
|
359
366
|
}
|
|
367
|
+
var lockSweepDirectory;
|
|
368
|
+
function closeLkgLockSweepDirectory() {
|
|
369
|
+
lockSweepDirectory?.dir.closeSync();
|
|
370
|
+
lockSweepDirectory = undefined;
|
|
371
|
+
}
|
|
372
|
+
function takeLkgRecoveryLockSweepPage(maxEntries = 200) {
|
|
373
|
+
const path = join2(getMagicContextStorageDir(), "lkg-recovery-fences");
|
|
374
|
+
if (lockSweepDirectory?.path !== path)
|
|
375
|
+
closeLkgLockSweepDirectory();
|
|
376
|
+
const names = [];
|
|
377
|
+
try {
|
|
378
|
+
lockSweepDirectory ??= { path, dir: opendirSync(path) };
|
|
379
|
+
for (let i = 0;i < Math.min(200, Math.max(1, maxEntries)); i++) {
|
|
380
|
+
const entry = lockSweepDirectory.dir.readSync();
|
|
381
|
+
if (!entry) {
|
|
382
|
+
closeLkgLockSweepDirectory();
|
|
383
|
+
break;
|
|
384
|
+
}
|
|
385
|
+
if (entry.isDirectory() && /^[a-f0-9]{64}\.json\.locks$/.test(entry.name))
|
|
386
|
+
names.push(entry.name);
|
|
387
|
+
}
|
|
388
|
+
} catch {
|
|
389
|
+
closeLkgLockSweepDirectory();
|
|
390
|
+
}
|
|
391
|
+
return names;
|
|
392
|
+
}
|
|
393
|
+
function sweepEmptyLkgRecoveryLockDirectories(names, retainedSessionIds) {
|
|
394
|
+
if (!durableFencesSupported())
|
|
395
|
+
return 0;
|
|
396
|
+
const retainedHashes = new Set(Array.from(retainedSessionIds, hash));
|
|
397
|
+
const root = join2(getMagicContextStorageDir(), "lkg-recovery-fences");
|
|
398
|
+
let removed = 0;
|
|
399
|
+
for (const name of names.slice(0, 200)) {
|
|
400
|
+
if (!/^[a-f0-9]{64}\.json\.locks$/.test(name) || retainedHashes.has(name.slice(0, 64)))
|
|
401
|
+
continue;
|
|
402
|
+
const path = join2(root, name);
|
|
403
|
+
try {
|
|
404
|
+
try {
|
|
405
|
+
lstatSync(path.slice(0, -".locks".length));
|
|
406
|
+
continue;
|
|
407
|
+
} catch (error) {
|
|
408
|
+
if (error.code !== "ENOENT")
|
|
409
|
+
continue;
|
|
410
|
+
}
|
|
411
|
+
if (!lstatSync(path).isDirectory())
|
|
412
|
+
continue;
|
|
413
|
+
rmdirSync(path);
|
|
414
|
+
removed++;
|
|
415
|
+
} catch {}
|
|
416
|
+
}
|
|
417
|
+
return removed;
|
|
418
|
+
}
|
|
360
419
|
function metadata(slot) {
|
|
361
420
|
return [
|
|
362
421
|
slot.inputIdSeq,
|
|
@@ -934,6 +993,11 @@ class V2StoreReaderPool {
|
|
|
934
993
|
this.idleWaiters.clear();
|
|
935
994
|
}
|
|
936
995
|
}
|
|
996
|
+
function messageTimesQuery(count) {
|
|
997
|
+
return `SELECT id, COALESCE(time_created, json_extract(data, '$.time.created')) AS created,
|
|
998
|
+
json_extract(data, '$.time.completed') AS completed
|
|
999
|
+
FROM session_message WHERE +session_id = ? AND id IN (${Array.from({ length: count }, () => "?").join(",")})`;
|
|
1000
|
+
}
|
|
937
1001
|
|
|
938
1002
|
class V2StoreReader {
|
|
939
1003
|
path;
|
|
@@ -1157,9 +1221,7 @@ class V2StoreReader {
|
|
|
1157
1221
|
const times = new Map;
|
|
1158
1222
|
for (let offset = 0;offset < ids.length; offset += 500) {
|
|
1159
1223
|
const batch = ids.slice(offset, offset + 500);
|
|
1160
|
-
const rows = this.prepare(
|
|
1161
|
-
json_extract(data, '$.time.completed') AS completed
|
|
1162
|
-
FROM session_message WHERE session_id = ? AND id IN (${batch.map(() => "?").join(",")})`).all(sessionID, ...batch);
|
|
1224
|
+
const rows = this.prepare(messageTimesQuery(batch.length)).all(sessionID, ...batch);
|
|
1163
1225
|
for (const row of rows)
|
|
1164
1226
|
times.set(row.id, {
|
|
1165
1227
|
created: typeof row.created === "number" ? row.created : undefined,
|
|
@@ -1469,7 +1531,7 @@ function deleteSessionScopedRows(db, sessionIds, harness, options = {}) {
|
|
|
1469
1531
|
fallback.run(tagTombstoneOwnerKey(id, getHarness2()), getHarness2(), ...tagTombstoneOwnerRange(id));
|
|
1470
1532
|
}
|
|
1471
1533
|
for (const sessionId of deletableSessionIds)
|
|
1472
|
-
|
|
1534
|
+
deleteChunkEmbedBackoffForSession2(db, sessionId);
|
|
1473
1535
|
for (const definition of SESSION_SCOPED_TABLES) {
|
|
1474
1536
|
if (definition.table === "message_history_fts") {
|
|
1475
1537
|
cleanupStatement(db, `DELETE FROM message_history_fts
|
|
@@ -1520,7 +1582,7 @@ function deleteSessionScopedRowsSlice(db, sessionId, harness) {
|
|
|
1520
1582
|
cleanupStatement(db, "INSERT OR IGNORE INTO schema_migrations_meta(key,value) VALUES (?,?)").run(tagTombstoneOwnerKey(sessionId, harness), harness);
|
|
1521
1583
|
let remaining = SESSION_CLEANUP_SLICE_ROWS;
|
|
1522
1584
|
const started = performance.now();
|
|
1523
|
-
remaining -=
|
|
1585
|
+
remaining -= deleteChunkEmbedBackoffForSession2(db, sessionId, remaining);
|
|
1524
1586
|
if (remaining <= 0)
|
|
1525
1587
|
return { complete: false, deleted: 0 };
|
|
1526
1588
|
for (const definition of SESSION_SCOPED_TABLES) {
|
|
@@ -2034,14 +2096,20 @@ function harnessSupportsOpenCodeOrphanSweep(harness) {
|
|
|
2034
2096
|
return harness === "opencode" || harness === "opencode2";
|
|
2035
2097
|
}
|
|
2036
2098
|
function getMessageHistoryOrphanSweepState(db, harness) {
|
|
2037
|
-
|
|
2099
|
+
const state = db.prepare("SELECT cursor_session_id, last_swept_at FROM message_history_orphan_sweep WHERE harness = ?").get(harness) ?? {};
|
|
2100
|
+
if (harness === "opencode2") {
|
|
2101
|
+
if (!state.cursor_session_id?.startsWith("session_v2:"))
|
|
2102
|
+
return {};
|
|
2103
|
+
return { ...state, cursor_session_id: state.cursor_session_id.slice("session_v2:".length) };
|
|
2104
|
+
}
|
|
2105
|
+
return state;
|
|
2038
2106
|
}
|
|
2039
2107
|
function persistMessageHistoryOrphanSweepState(db, cursor, lastSweptAt, harness) {
|
|
2040
2108
|
db.prepare(`INSERT INTO message_history_orphan_sweep (harness, cursor_session_id, last_swept_at)
|
|
2041
2109
|
VALUES (?, ?, ?)
|
|
2042
2110
|
ON CONFLICT(harness) DO UPDATE SET
|
|
2043
2111
|
cursor_session_id = excluded.cursor_session_id,
|
|
2044
|
-
last_swept_at = excluded.last_swept_at`).run(harness, cursor, lastSweptAt);
|
|
2112
|
+
last_swept_at = excluded.last_swept_at`).run(harness, harness === "opencode2" ? `session_v2:${cursor}` : cursor, lastSweptAt);
|
|
2045
2113
|
}
|
|
2046
2114
|
function getOpenCodeSessionScopedCandidateSourceSql(harness) {
|
|
2047
2115
|
const sources = SESSION_SCOPED_TABLES.filter((definition) => definition.harnessScoped === true).map((definition) => {
|
|
@@ -2089,13 +2157,14 @@ function* sweepOrphanedOpenCodeMessageIndexesInBackground(db, openReadableOpenCo
|
|
|
2089
2157
|
let v2Reader;
|
|
2090
2158
|
try {
|
|
2091
2159
|
let sessionExists;
|
|
2160
|
+
let liveIds;
|
|
2092
2161
|
if (harness === "opencode2") {
|
|
2093
2162
|
try {
|
|
2094
2163
|
const path = getSqliteDatabasePath2(openCodeDb);
|
|
2095
2164
|
if (!path)
|
|
2096
2165
|
throw new Error("OpenCode 2 source has no durable path");
|
|
2097
2166
|
v2Reader = new V2StoreReader(path);
|
|
2098
|
-
|
|
2167
|
+
liveIds = new Set(v2Reader.sessionIds());
|
|
2099
2168
|
if (liveIds.size === 0)
|
|
2100
2169
|
throw new Error("OpenCode 2 source has no sessions");
|
|
2101
2170
|
sessionExists = (id) => liveIds.has(id);
|
|
@@ -2104,9 +2173,26 @@ function* sweepOrphanedOpenCodeMessageIndexesInBackground(db, openReadableOpenCo
|
|
|
2104
2173
|
return { status: "source_unavailable", scanned: 0, deleted: 0, cursor };
|
|
2105
2174
|
}
|
|
2106
2175
|
} else {
|
|
2176
|
+
liveIds = new Set(openCodeDb.prepare("SELECT id FROM session").all().map((row) => row.id));
|
|
2107
2177
|
const query = openCodeDb.prepare("SELECT 1 FROM session WHERE id = ? LIMIT 1");
|
|
2108
2178
|
sessionExists = (id) => !!query.get(id);
|
|
2109
2179
|
}
|
|
2180
|
+
if (options.fenceLockNames?.length) {
|
|
2181
|
+
const retainedIds = new Set(liveIds);
|
|
2182
|
+
const sources = SESSION_SCOPED_TABLES.map((def) => `SELECT session_id FROM ${def.table}${def.extraPredicate ? ` WHERE ${def.extraPredicate}` : ""}`);
|
|
2183
|
+
for (const row of db.prepare(sources.join(" UNION ")).all()) {
|
|
2184
|
+
if (typeof row.session_id === "string")
|
|
2185
|
+
retainedIds.add(row.session_id);
|
|
2186
|
+
}
|
|
2187
|
+
for (const row of db.prepare("SELECT key FROM schema_migrations_meta WHERE key >= ? AND key < ?").all(TAG_TOMBSTONE_OWNER_PREFIX, "tag_revision_owner;")) {
|
|
2188
|
+
try {
|
|
2189
|
+
const id = JSON.parse(row.key.slice(TAG_TOMBSTONE_OWNER_PREFIX.length, row.key.lastIndexOf(":")));
|
|
2190
|
+
if (typeof id === "string")
|
|
2191
|
+
retainedIds.add(id);
|
|
2192
|
+
} catch {}
|
|
2193
|
+
}
|
|
2194
|
+
sweepEmptyLkgRecoveryLockDirectories(options.fenceLockNames, retainedIds);
|
|
2195
|
+
}
|
|
2110
2196
|
const cutoff = now - safetyAgeMs;
|
|
2111
2197
|
const candidateSourceSql = getOpenCodeSessionScopedCandidateSourceSql(harness);
|
|
2112
2198
|
const candidates = db.prepare(`SELECT session_id
|
|
@@ -2198,4 +2284,4 @@ async function sweepOrphanedOpenCodeMessageIndexesCooperatively2(db, openSource,
|
|
|
2198
2284
|
}));
|
|
2199
2285
|
}
|
|
2200
2286
|
|
|
2201
|
-
export { BoundedSessionMap, advanceSessionActivity, observeSessionActivity, backfillSessionActivity, clearCompressionDepth, clearCompressionDepthRange, LkgRecoveryFenceError, clearLkgFenceProcessState, lkgServedArrayDigest, hasCleanLkgRecoveryFence, lkgFenceRequiresRebuild, lkgRecoveryFenceUnclean, dirtyLkgRecoveryRevision, ownsLkgDirtyFence, invalidateCleanLkgRecoveryFence, prepareLkgCaptureFence, certifyCommittedLkgCapture, markLkgRecoveryDirty, commitLkgWithRecoveryFence, clearLkgRecoveryFence, cleanSearchText, keywordRelevance, matchedSearchSnippet, gaDatabasePath, RAW_MESSAGE_TYPES, V2StoreReaderPool, V2StoreReader, deleteSessionScopedRows, MESSAGE_INDEX_MAX_FTS_BYTES2, messageIndexSkipKey2, toMessageIndexSource2, getMessageIndexSourceIdentity2, isMessageIndexSourceCurrent2, getLastIndexedOrdinal2, getIndexedMessageCorpusSize2, markMessageIndexDirty2, getMessageIndexReconciliationStartOrdinal2, isMessageIndexReconciledThrough2, deleteIndexedMessage2, clearIndexedMessagesInTransaction2, clearIndexedMessages2, getIndexableContent2, indexSingleMessage2, indexMessagesAfterOrdinal2, indexSourcesAfterOrdinal2, sweepOrphanedOpenCodeMessageIndexesCooperatively2 };
|
|
2287
|
+
export { BoundedSessionMap, advanceSessionActivity, observeSessionActivity, backfillSessionActivity, clearCompressionDepth, clearCompressionDepthRange, LkgRecoveryFenceError, clearLkgFenceProcessState, lkgServedArrayDigest, takeLkgRecoveryLockSweepPage, hasCleanLkgRecoveryFence, lkgFenceRequiresRebuild, lkgRecoveryFenceUnclean, dirtyLkgRecoveryRevision, ownsLkgDirtyFence, invalidateCleanLkgRecoveryFence, prepareLkgCaptureFence, certifyCommittedLkgCapture, markLkgRecoveryDirty, commitLkgWithRecoveryFence, clearLkgRecoveryFence, cleanSearchText, keywordRelevance, matchedSearchSnippet, gaDatabasePath, RAW_MESSAGE_TYPES, V2StoreReaderPool, V2StoreReader, deleteSessionScopedRows, MESSAGE_INDEX_MAX_FTS_BYTES2, messageIndexSkipKey2, toMessageIndexSource2, getMessageIndexSourceIdentity2, isMessageIndexSourceCurrent2, getLastIndexedOrdinal2, getIndexedMessageCorpusSize2, markMessageIndexDirty2, getMessageIndexReconciliationStartOrdinal2, isMessageIndexReconciledThrough2, deleteIndexedMessage2, clearIndexedMessagesInTransaction2, clearIndexedMessages2, getIndexableContent2, indexSingleMessage2, indexMessagesAfterOrdinal2, indexSourcesAfterOrdinal2, sweepOrphanedOpenCodeMessageIndexesCooperatively2 };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionLog2
|
|
3
|
-
} from "./index-
|
|
3
|
+
} from "./index-h7tgn49j.js";
|
|
4
4
|
import {
|
|
5
5
|
COMPARTMENT_LEASE_RENEWAL_MS,
|
|
6
6
|
acquireCompartmentLease,
|
|
@@ -15,10 +15,10 @@ import {
|
|
|
15
15
|
getActiveCompartmentRun,
|
|
16
16
|
markActiveCompartmentRunPublished,
|
|
17
17
|
registerActiveCompartmentRun
|
|
18
|
-
} from "./index-
|
|
18
|
+
} from "./index-v7r4td4c.js";
|
|
19
19
|
import {
|
|
20
20
|
inRootAsyncContext2
|
|
21
|
-
} from "./index-
|
|
21
|
+
} from "./index-1zx2pa5d.js";
|
|
22
22
|
import {
|
|
23
23
|
getWrapupInProgressState,
|
|
24
24
|
acquireWrapupInProgress,
|
|
@@ -27,17 +27,17 @@ import {
|
|
|
27
27
|
getHistorianFailureState,
|
|
28
28
|
clearEmergencyRecovery,
|
|
29
29
|
prepareRawSessionOrdinals2
|
|
30
|
-
} from "./index-
|
|
30
|
+
} from "./index-x4k3f4mf.js";
|
|
31
31
|
import {
|
|
32
32
|
pushNotification2
|
|
33
33
|
} from "./index-x8a7jmkh.js";
|
|
34
34
|
import {
|
|
35
35
|
sendStatusNotification2
|
|
36
|
-
} from "./index-
|
|
36
|
+
} from "./index-kc9pn495.js";
|
|
37
37
|
import {
|
|
38
38
|
setRecompStarting2,
|
|
39
39
|
setRecompTerminal2
|
|
40
|
-
} from "./index-
|
|
40
|
+
} from "./index-jfh3cktr.js";
|
|
41
41
|
|
|
42
42
|
// src/hooks/magic-context/wrapup-orchestrator.ts
|
|
43
43
|
import * as crypto from "node:crypto";
|
|
@@ -15,6 +15,9 @@ function resolveHarnessBlock(container, harness) {
|
|
|
15
15
|
const selected = harness === "omp" ? container?.omp ?? container?.pi : container?.[harness];
|
|
16
16
|
return asRecord(selected);
|
|
17
17
|
}
|
|
18
|
+
function sourceHarness(container, harness) {
|
|
19
|
+
return harness === "omp" && container?.omp == null ? "pi" : harness;
|
|
20
|
+
}
|
|
18
21
|
function normalizeModelEntry2(entry, harness) {
|
|
19
22
|
if (typeof entry === "string") {
|
|
20
23
|
const model = readString(entry);
|
|
@@ -61,13 +64,19 @@ function resolveHistorianModel2(config, harness) {
|
|
|
61
64
|
const block = resolveHarnessBlock(historian, harness);
|
|
62
65
|
if (!block)
|
|
63
66
|
return { fallbacks: [] };
|
|
67
|
+
const source = `historian.${sourceHarness(historian, harness)}`;
|
|
68
|
+
const primary = resolvePrimaryEntry({
|
|
69
|
+
entry: block.model,
|
|
70
|
+
defaultQualifier: block[harness === "opencode" ? "variant" : "thinking_level"],
|
|
71
|
+
harness
|
|
72
|
+
});
|
|
73
|
+
const fallbacks = resolveFallbackEntries2(block.fallback_models, harness);
|
|
64
74
|
return {
|
|
65
|
-
primary:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
})
|
|
70
|
-
fallbacks: resolveFallbackEntries2(block.fallback_models, harness)
|
|
75
|
+
primary: primary ? { ...primary, sourceConfigKey: `${source}.model` } : undefined,
|
|
76
|
+
fallbacks: fallbacks.map((entry) => ({
|
|
77
|
+
...entry,
|
|
78
|
+
sourceConfigKey: `${source}.fallback_models`
|
|
79
|
+
}))
|
|
71
80
|
};
|
|
72
81
|
}
|
|
73
82
|
function resolveDreamerTaskModel2(args) {
|
|
@@ -86,15 +95,25 @@ function resolveDreamerTaskModel2(args) {
|
|
|
86
95
|
const taskQualifier = taskBlock?.[args.harness === "opencode" ? "variant" : "thinking_level"];
|
|
87
96
|
const harnessQualifier = harnessBlock[args.harness === "opencode" ? "variant" : "thinking_level"] ?? normalizeModelEntry2(harnessBlock.model, args.harness)?.qualifier;
|
|
88
97
|
const taskHasModel = taskBlock !== undefined && hasOwn(taskBlock, "model");
|
|
98
|
+
const taskHasFallbacks = taskBlock !== undefined && hasOwn(taskBlock, "fallback_models");
|
|
89
99
|
const primarySource = taskHasModel ? taskBlock?.model : harnessBlock.model;
|
|
90
|
-
const fallbackSource =
|
|
100
|
+
const fallbackSource = taskHasFallbacks ? taskBlock?.fallback_models : harnessBlock.fallback_models;
|
|
101
|
+
const source = `dreamer.${sourceHarness(dreamer, args.harness)}`;
|
|
102
|
+
const primary = resolvePrimaryEntry({
|
|
103
|
+
entry: primarySource,
|
|
104
|
+
defaultQualifier: taskQualifier ?? harnessQualifier,
|
|
105
|
+
harness: args.harness
|
|
106
|
+
});
|
|
107
|
+
const fallbacks = resolveFallbackEntries2(fallbackSource, args.harness);
|
|
91
108
|
return {
|
|
92
|
-
primary:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
109
|
+
primary: primary ? {
|
|
110
|
+
...primary,
|
|
111
|
+
sourceConfigKey: taskHasModel ? `${source}.tasks.${args.task}.model` : `${source}.model`
|
|
112
|
+
} : undefined,
|
|
113
|
+
fallbacks: fallbacks.map((entry) => ({
|
|
114
|
+
...entry,
|
|
115
|
+
sourceConfigKey: taskHasFallbacks ? `${source}.tasks.${args.task}.fallback_models` : `${source}.fallback_models`
|
|
116
|
+
})),
|
|
98
117
|
schedule: readString(schedulingTask?.schedule),
|
|
99
118
|
timeoutMinutes: typeof taskBlock?.timeout_minutes === "number" ? taskBlock.timeout_minutes : undefined,
|
|
100
119
|
promotionThreshold: typeof schedulingTask?.promotion_threshold === "number" ? schedulingTask.promotion_threshold : undefined
|
|
@@ -3,11 +3,11 @@ import {
|
|
|
3
3
|
} from "./index-v0p37hm2.js";
|
|
4
4
|
import {
|
|
5
5
|
log2
|
|
6
|
-
} from "./index-
|
|
6
|
+
} from "./index-h7tgn49j.js";
|
|
7
7
|
import {
|
|
8
8
|
inRootAsyncContext2,
|
|
9
9
|
getSqliteDatabasePath2
|
|
10
|
-
} from "./index-
|
|
10
|
+
} from "./index-1zx2pa5d.js";
|
|
11
11
|
|
|
12
12
|
// src/features/magic-context/compaction-marker-candidates.ts
|
|
13
13
|
import { existsSync, realpathSync } from "node:fs";
|