@cortexkit/opencode-magic-context 0.49.10 → 0.49.12
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/README.md +1 -1
- package/dist/agents/smart-notes-dreamer-gate.fixture.d.ts +28 -0
- package/dist/agents/smart-notes-dreamer-gate.fixture.d.ts.map +1 -0
- package/dist/{announcement-hdbkt8v5.js → announcement-g789dmt6.js} +2 -2
- package/dist/auto-search-worker.js +4 -4
- package/dist/{compaction-marker-candidates-xxz35vwp.js → compaction-marker-candidates-v5c6997n.js} +3 -3
- package/dist/compaction-marker-candidates-worker.js +1 -1
- package/dist/config/agent-disable.d.ts +14 -0
- package/dist/config/agent-disable.d.ts.map +1 -1
- package/dist/config/dependency-notes.d.ts +34 -0
- package/dist/config/dependency-notes.d.ts.map +1 -0
- package/dist/config/schema/magic-context.d.ts.map +1 -1
- package/dist/{conflict-warning-hook-w3crzrar.js → conflict-warning-hook-f4x5wed7.js} +8 -8
- package/dist/{context-ey3ap3cc.js → context-dam8p201.js} +306 -119
- package/dist/{derive-budgets-3nbxsyss.js → derive-budgets-5306b1jt.js} +3 -3
- package/dist/embedding-backfill-qbfcbp87.js +21 -0
- package/dist/embedding-worker-process.js +2 -2
- package/dist/embedding-worker.js +6 -6
- package/dist/features/magic-context/compartment-chunk-embedding.d.ts +12 -1
- package/dist/features/magic-context/compartment-chunk-embedding.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/task-config.d.ts +22 -4
- package/dist/features/magic-context/dreamer/task-config.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/task-registry.d.ts +22 -0
- package/dist/features/magic-context/dreamer/task-registry.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/task-scheduler.d.ts +4 -1
- package/dist/features/magic-context/dreamer/task-scheduler.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-openai.d.ts +32 -0
- package/dist/features/magic-context/memory/embedding-openai.d.ts.map +1 -1
- package/dist/features/magic-context/memory/project-identity.d.ts +1 -0
- package/dist/features/magic-context/memory/project-identity.d.ts.map +1 -1
- package/dist/features/magic-context/memory/unborn-head.d.ts +34 -0
- package/dist/features/magic-context/memory/unborn-head.d.ts.map +1 -0
- package/dist/features/magic-context/memory-enabled.d.ts +5 -0
- package/dist/features/magic-context/memory-enabled.d.ts.map +1 -0
- package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
- package/dist/features/magic-context/search-pool-fixture.d.ts +39 -0
- package/dist/features/magic-context/search-pool-fixture.d.ts.map +1 -0
- package/dist/features/magic-context/search.d.ts.map +1 -1
- package/dist/features/magic-context/storage-tags.d.ts +2 -0
- package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
- package/dist/features/magic-context/transform-decision-log.d.ts +57 -2
- package/dist/features/magic-context/transform-decision-log.d.ts.map +1 -1
- package/dist/{history-owner-ty29fz0f.js → history-owner-xp3pngv7.js} +3 -3
- package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-prompt.d.ts +6 -0
- package/dist/hooks/magic-context/compartment-prompt.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-types.d.ts +3 -0
- package/dist/hooks/magic-context/compartment-runner-types.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-trigger-error.d.ts +12 -0
- package/dist/hooks/magic-context/compartment-trigger-error.d.ts.map +1 -0
- package/dist/hooks/magic-context/historian-prompt-fit.d.ts +14 -2
- package/dist/hooks/magic-context/historian-prompt-fit.d.ts.map +1 -1
- package/dist/hooks/magic-context/hook.d.ts.map +1 -1
- package/dist/hooks/magic-context/pending-materialization.d.ts +2 -0
- package/dist/hooks/magic-context/pending-materialization.d.ts.map +1 -1
- package/dist/hooks/magic-context/producer-window-guard.d.ts.map +1 -1
- package/dist/hooks/magic-context/protected-tail-boundary.d.ts +12 -0
- package/dist/hooks/magic-context/protected-tail-boundary.d.ts.map +1 -1
- package/dist/hooks/magic-context/raw-exact-ordinal-read.d.ts +58 -0
- package/dist/hooks/magic-context/raw-exact-ordinal-read.d.ts.map +1 -0
- package/dist/hooks/magic-context/raw-ordinal-warmup.d.ts +7 -0
- package/dist/hooks/magic-context/raw-ordinal-warmup.d.ts.map +1 -1
- package/dist/hooks/magic-context/read-session-db.d.ts +5 -0
- package/dist/hooks/magic-context/read-session-db.d.ts.map +1 -1
- package/dist/hooks/magic-context/read-session-raw.d.ts +19 -0
- package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
- package/dist/hooks/magic-context/recomp-orchestrator.d.ts +2 -0
- package/dist/hooks/magic-context/recomp-orchestrator.d.ts.map +1 -1
- package/dist/hooks/magic-context/render-options.d.ts +21 -0
- package/dist/hooks/magic-context/render-options.d.ts.map +1 -0
- package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
- package/dist/hooks/magic-context/tag-messages.d.ts +4 -0
- package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-compartment-phase.d.ts +2 -0
- package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform.d.ts +5 -7
- 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-21919gcq.js → index-05n6ykca.js} +4 -4
- package/dist/{index-q76br5zn.js → index-1d289pq2.js} +26 -21
- package/dist/{index-w28y7d0z.js → index-1sarmj9z.js} +15 -15
- package/dist/{index-x57ep4fp.js → index-1wwh38fk.js} +323 -121
- package/dist/{index-pgy3h49n.js → index-2pgxcncf.js} +4 -4
- package/dist/{index-ffa8x2as.js → index-6sytd5w3.js} +18 -13
- package/dist/{index-16vwdyy5.js → index-6sz25c3s.js} +3 -3
- package/dist/{index-4hb8nt93.js → index-7h8a1xpc.js} +3 -3
- package/dist/{index-rg1cezmj.js → index-7zd5asz9.js} +140 -17
- package/dist/{index-jw4gbfkv.js → index-8ketfacn.js} +2 -2
- package/dist/{index-nenz4gpb.js → index-95s8xaj1.js} +6 -5
- package/dist/{index-bmwfzz28.js → index-9vqb5p1s.js} +4 -4
- package/dist/{index-0jz47061.js → index-a8bvhwqs.js} +190 -30
- package/dist/{index-wpwpn7nj.js → index-b16gpywn.js} +9 -9
- package/dist/{index-g7jkrz0x.js → index-bp5083x2.js} +1 -1
- package/dist/{index-mp2kghkv.js → index-dyvbsvga.js} +1 -1
- package/dist/{index-s178h9z8.js → index-f71thw8j.js} +1 -1
- package/dist/{index-kvw6xew3.js → index-fkx2qnvw.js} +2 -2
- package/dist/{index-f8cn4xqa.js → index-fwefky9w.js} +18 -5
- package/dist/{index-a43xq1pg.js → index-fx90bvjd.js} +5 -5
- package/dist/{index-0sahzkwr.js → index-g2q4htwp.js} +46 -2
- package/dist/{index-7bjgyaj1.js → index-gf0psee3.js} +243 -135
- package/dist/{index-mw7c950g.js → index-gp3kcpc4.js} +1 -1
- package/dist/{index-gjvjh960.js → index-hqkczed7.js} +1 -1
- package/dist/{index-mvvephtj.js → index-j75v2476.js} +1 -1
- package/dist/{index-150zz6fh.js → index-k29z4aqh.js} +1 -1
- package/dist/{index-b64n4d0h.js → index-kee4kn5j.js} +1 -1
- package/dist/index-ksdyrrav.js +52 -0
- package/dist/{index-angx1s0k.js → index-mmfa86mt.js} +16 -6
- package/dist/{index-9jvab89d.js → index-n6m03s3n.js} +2 -2
- package/dist/{index-q28hsbpg.js → index-nj7yykkx.js} +1 -1
- package/dist/{index-ghc9f0n7.js → index-p5y3k4g7.js} +29 -1
- package/dist/{index-6k86es2p.js → index-qtbdx42g.js} +54 -25
- package/dist/{index-a865mj02.js → index-tdn0zkw4.js} +4 -4
- package/dist/{index-0x9cn9w1.js → index-wqs4q74r.js} +8 -8
- package/dist/{index-swgpe402.js → index-x2xjyq8f.js} +11 -11
- package/dist/{index-a4b0gbyg.js → index-y9f76s3f.js} +1 -1
- package/dist/{index-3403gbzj.js → index-yx5kgp2x.js} +288 -127
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +97 -76
- package/dist/{logger-wn328tfg.js → logger-jm3sqqzr.js} +2 -2
- package/dist/{message-index-bounded-fskdyc81.js → message-index-bounded-nq6rp8xa.js} +16 -16
- package/dist/{message-index-6r1x9cqh.js → message-index-df7swgy1.js} +16 -16
- package/dist/{message-time-backfill-nb5hhnrt.js → message-time-backfill-qjge9044.js} +3 -3
- package/dist/migration-worker.js +11 -11
- package/dist/plugin/dream-timer.d.ts.map +1 -1
- package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
- package/dist/plugin/tool-registry.d.ts.map +1 -1
- package/dist/{project-embedding-registry-vy7sv9jt.js → project-embedding-registry-q0ysjyzc.js} +11 -11
- package/dist/raw-ordinal-warmup-worker.js +12 -7
- package/dist/{read-session-chunk-zgpvs423.js → read-session-chunk-ax05f7gr.js} +11 -11
- package/dist/{read-session-raw-gm6xj30v.js → read-session-raw-m56hc7v2.js} +7 -3
- package/dist/{recomp-orchestrator-77xc8wpe.js → recomp-orchestrator-a0mvby4e.js} +29 -29
- package/dist/{safe-notification-target-jdynm677.js → safe-notification-target-1szv1k5k.js} +3 -3
- package/dist/{search-72fkjwk2.js → search-fm002702.js} +23 -23
- package/dist/{send-session-notification-q8ngbap3.js → send-session-notification-y2wg3fkh.js} +6 -6
- package/dist/shared/data-path.d.ts +4 -0
- package/dist/shared/data-path.d.ts.map +1 -1
- package/dist/shared/prompt-surface-runtime.d.ts +5 -0
- package/dist/shared/prompt-surface-runtime.d.ts.map +1 -1
- package/dist/{storage-tags-35m4gms2.js → storage-tags-yygfb9c8.js} +7 -5
- package/dist/{task-config-cgpg0nvh.js → task-config-x3qmayd2.js} +6 -2
- package/dist/tools/ctx-note/tools.d.ts.map +1 -1
- package/dist/{transform-postprocess-phase-r8d406j0.js → transform-postprocess-phase-s84rdf32.js} +29 -29
- package/dist/v2/auto-search-worker.js +4 -4
- package/dist/v2/{compaction-marker-candidates-a15w3mqh.js → compaction-marker-candidates-1vqwr3s5.js} +2 -2
- package/dist/v2/compaction-marker-candidates-worker.js +1 -1
- package/dist/v2/{context-z2yagwy4.js → context-x60fa16g.js} +758 -286
- package/dist/v2/{derive-budgets-0rmpmxjw.js → derive-budgets-z25jw3py.js} +3 -3
- package/dist/v2/embedding-backfill-mbjyza2a.js +20 -0
- package/dist/v2/embedding-worker-process.js +1 -1
- package/dist/v2/embedding-worker.js +5 -5
- package/dist/v2/{history-owner-2cr9py37.js → history-owner-42e16w0n.js} +2 -2
- package/dist/v2/hooks/context.d.ts.map +1 -1
- package/dist/v2/hooks/dream-manual.d.ts +1 -0
- package/dist/v2/hooks/dream-manual.d.ts.map +1 -1
- package/dist/v2/hooks/dream-timer.d.ts +3 -1
- package/dist/v2/hooks/dream-timer.d.ts.map +1 -1
- package/dist/v2/hooks/dream-trigger.d.ts +6 -1
- package/dist/v2/hooks/dream-trigger.d.ts.map +1 -1
- package/dist/v2/hooks/payload.d.ts +1 -1
- package/dist/v2/hooks/payload.d.ts.map +1 -1
- package/dist/v2/hooks/transform-decision-binding.d.ts +15 -0
- package/dist/v2/hooks/transform-decision-binding.d.ts.map +1 -0
- package/dist/v2/hooks/transform-features.d.ts +40 -0
- package/dist/v2/hooks/transform-features.d.ts.map +1 -0
- package/dist/v2/{logger-te6e1j72.js → logger-7qt02bnb.js} +1 -1
- package/dist/v2/{message-index-9ezq6wze.js → message-index-5nayhm1r.js} +15 -15
- package/dist/v2/{message-index-bounded-rqc603f2.js → message-index-bounded-pgv1ndpb.js} +15 -15
- package/dist/v2/{message-time-backfill-rz1pnpaj.js → message-time-backfill-bsteyc4d.js} +2 -2
- package/dist/v2/migration-worker.js +10 -10
- package/dist/v2/{project-embedding-registry-ja23aygk.js → project-embedding-registry-jbmjc0p4.js} +12 -10
- package/dist/v2/raw-ordinal-warmup-worker.js +12 -7
- package/dist/v2/{read-session-chunk-7f87tg2q.js → read-session-chunk-hr3w5bjk.js} +10 -10
- package/dist/v2/{read-session-raw-h4azh85b.js → read-session-raw-b3tf6ra1.js} +6 -2
- package/dist/v2/recomp-orchestrator-8w3449eb.js +59 -0
- package/dist/v2/{safe-notification-target-936374xx.js → safe-notification-target-qg7n2s77.js} +2 -2
- package/dist/v2/{search-2td1b1wy.js → search-mhmxgq0e.js} +22 -22
- package/dist/v2/{send-session-notification-6n7chhyp.js → send-session-notification-jevgj9fe.js} +5 -5
- package/dist/v2/{server-npm52h2q.js → server-05xjtq6c.js} +1 -1
- package/dist/v2/{server-s6jqh8bj.js → server-0ppsweh6.js} +1 -1
- package/dist/v2/server-0s95v3en.js +49 -0
- package/dist/v2/{server-2hxypdx5.js → server-25tg45b4.js} +17 -12
- package/dist/v2/{server-44ryn9rb.js → server-2x42esxd.js} +3 -3
- package/dist/v2/{server-4qr18rfg.js → server-37ngj8qw.js} +10 -51
- package/dist/v2/{server-4zwx20yg.js → server-4c10404h.js} +3 -3
- package/dist/v2/{server-23znwjqk.js → server-50mkkhy1.js} +14 -11
- package/dist/v2/{server-c9w52qss.js → server-5gvkzzrf.js} +290 -76
- package/dist/v2/{server-7dv9wt9r.js → server-6pmqg9m4.js} +1 -1
- package/dist/v2/{server-ak7w74j9.js → server-83ygfha2.js} +4 -4
- package/dist/v2/{server-4rs8sm06.js → server-9ewkzqgd.js} +5 -5
- package/dist/v2/{server-kmapq3v0.js → server-bxpwy6fy.js} +18 -5
- package/dist/v2/{server-zrwaj29a.js → server-d8tj10db.js} +25 -20
- package/dist/v2/{server-cxsr0ng6.js → server-da07v4xp.js} +1 -1
- package/dist/v2/{server-9e5r8y60.js → server-f2xf5gcb.js} +46 -2
- package/dist/v2/{server-hn9fb3v0.js → server-f7jfmrrz.js} +2 -2
- package/dist/v2/{server-f27he3j1.js → server-fa75w6gp.js} +4 -4
- package/dist/v2/{server-njnx39q2.js → server-gvkm8xaj.js} +189 -29
- package/dist/v2/{server-ckrb5rm8.js → server-h0410h0v.js} +1 -1
- package/dist/v2/{server-nveratm5.js → server-kn9n2qgd.js} +1 -1
- package/dist/v2/{server-gc8x2xdb.js → server-m97brnat.js} +9 -9
- package/dist/v2/{server-z0rjemg1.js → server-nmrm2rjy.js} +8 -8
- package/dist/v2/{server-bx59ezg6.js → server-prg55b7k.js} +16 -6
- package/dist/v2/{server-89fcbe37.js → server-pwv4ezb0.js} +1 -1
- package/dist/v2/{server-r5p3b1wy.js → server-qd11g795.js} +29 -1
- package/dist/v2/{server-988cqjme.js → server-rrqpvwqd.js} +2 -2
- package/dist/v2/{server-4easnf78.js → server-sz8jj92q.js} +150 -18
- package/dist/v2/{server-7e087rvk.js → server-th4y11y7.js} +16 -16
- package/dist/v2/{server-9a6bwc12.js → server-vknbt0gq.js} +255 -135
- package/dist/v2/{server-63ha7f0f.js → server-yrvqaswb.js} +1 -1
- package/dist/v2/{server-xqf2d2mg.js → server-zs8d0s3b.js} +2 -2
- package/dist/v2/server.d.ts.map +1 -1
- package/dist/v2/server.js +13 -6
- package/dist/v2/{storage-tags-c4zfcxv4.js → storage-tags-a2gq6dw7.js} +6 -4
- package/dist/v2/store-reader.d.ts +4 -0
- package/dist/v2/store-reader.d.ts.map +1 -1
- package/dist/v2/{task-config-x0hq3qfd.js → task-config-nvz8mapa.js} +6 -2
- package/dist/v2/{wrapup-orchestrator-wg8dmmm9.js → wrapup-orchestrator-r82y780v.js} +30 -29
- package/dist/wrapup-orchestrator-vmt6z3q5.js +47 -0
- package/package.json +1 -1
- package/src/agents/smart-notes-dreamer-gate.fixture.ts +171 -0
- package/src/agents/smart-notes-dreamer-gate.golden.json +245 -0
- package/src/agents/smart-notes-dreamer-gate.test.ts +161 -0
- package/src/config/agent-disable.ts +13 -0
- package/src/config/dependency-notes.test.ts +114 -0
- package/src/config/dependency-notes.ts +80 -0
- package/src/config/schema/magic-context.ts +23 -14
- package/src/features/magic-context/dreamer/task-registry.ts +40 -0
- package/src/shared/chunk-vector-writer-guard.test.ts +72 -0
- package/src/shared/data-path.test.ts +35 -1
- package/src/shared/data-path.ts +57 -1
- package/src/shared/prompt-surface-runtime.test.ts +15 -0
- package/src/shared/prompt-surface-runtime.ts +12 -0
- package/dist/embedding-backfill-3h2m5n0q.js +0 -21
- package/dist/v2/embedding-backfill-vr7wdtrf.js +0 -20
- package/dist/v2/recomp-orchestrator-s5tdpsbs.js +0 -59
- package/dist/wrapup-orchestrator-b1z99yg5.js +0 -47
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getMagicContextBuiltinCommands,
|
|
3
|
-
isDreamerRunnable,
|
|
4
|
-
isCompactionEnabled,
|
|
5
3
|
getProtectedTokensTierOverrides,
|
|
6
4
|
loadPluginConfigDetailed,
|
|
7
5
|
historianRunConfig,
|
|
8
6
|
dreamerRunConfig,
|
|
9
7
|
pluginConfigReader,
|
|
10
8
|
withLiveDreamerOutputCap,
|
|
9
|
+
embedPauseBySession,
|
|
10
|
+
autoEmbedAttemptedBySession,
|
|
11
|
+
autoEmbedIdentityBySession,
|
|
11
12
|
invalidateAutoEmbedSession,
|
|
13
|
+
clearEmbedSessionState,
|
|
12
14
|
acquireCompartmentLease,
|
|
13
15
|
releaseCompartmentLeaseBestEffort,
|
|
14
16
|
isCompartmentLeaseHeld,
|
|
@@ -59,7 +61,7 @@ import {
|
|
|
59
61
|
rebaseSessionCoordinatesAsync,
|
|
60
62
|
resolveOpenCodeProtectedTailBoundary,
|
|
61
63
|
getActiveCompartmentRun
|
|
62
|
-
} from "./index-
|
|
64
|
+
} from "./index-yx5kgp2x.js";
|
|
63
65
|
import"./index-sd3egckz.js";
|
|
64
66
|
import {
|
|
65
67
|
getHarness2
|
|
@@ -67,11 +69,11 @@ import {
|
|
|
67
69
|
import {
|
|
68
70
|
getDataDir,
|
|
69
71
|
getMagicContextStorageDir
|
|
70
|
-
} from "./index-
|
|
72
|
+
} from "./index-g2q4htwp.js";
|
|
71
73
|
import {
|
|
72
74
|
log2,
|
|
73
75
|
sessionLog2
|
|
74
|
-
} from "./index-
|
|
76
|
+
} from "./index-j75v2476.js";
|
|
75
77
|
import {
|
|
76
78
|
isSaneLimit,
|
|
77
79
|
setOutputReserveConfig,
|
|
@@ -81,16 +83,74 @@ import {
|
|
|
81
83
|
deriveHistorianChunkTokens2,
|
|
82
84
|
resolveKnownHistorianContextLimit2,
|
|
83
85
|
resolveHistorianContextLimit2
|
|
84
|
-
} from "./index-
|
|
85
|
-
import"./index-
|
|
86
|
+
} from "./index-8ketfacn.js";
|
|
87
|
+
import"./index-1sarmj9z.js";
|
|
86
88
|
import {
|
|
87
89
|
CANONICAL_DREAM_TASKS,
|
|
88
90
|
DREAM_TASK_CAPABILITIES,
|
|
89
91
|
formatUnsupportedDreamTasks,
|
|
90
92
|
isCanonicalDreamTask,
|
|
91
93
|
buildDreamTaskRuntimeConfigs2,
|
|
92
|
-
|
|
93
|
-
|
|
94
|
+
userObservationCollectionEnabled2,
|
|
95
|
+
userObservationsRequested2
|
|
96
|
+
} from "./index-p5y3k4g7.js";
|
|
97
|
+
import {
|
|
98
|
+
logConfigDependencyNotesOnce,
|
|
99
|
+
runSessionProjectBackfill,
|
|
100
|
+
createLiveSessionState,
|
|
101
|
+
RETROSPECTIVE_MAX_USER_MESSAGE_CHARS,
|
|
102
|
+
RETROSPECTIVE_MESSAGE_TRUNCATION_MARKER,
|
|
103
|
+
createDreamTaskExecutor,
|
|
104
|
+
runManualDream,
|
|
105
|
+
runDueTasksForProject,
|
|
106
|
+
startDreamScheduleTimer,
|
|
107
|
+
createDreamTimerModuleClient,
|
|
108
|
+
ensureProjectRegisteredFromOpenCodeDirectory,
|
|
109
|
+
resolveContextLimit,
|
|
110
|
+
resolveModelKey,
|
|
111
|
+
createScheduler,
|
|
112
|
+
describeStorageUnavailability,
|
|
113
|
+
runEmbedHistoryDrain,
|
|
114
|
+
getSessionErrorInfo,
|
|
115
|
+
summarizeManualDream,
|
|
116
|
+
createChatMessageHook,
|
|
117
|
+
createToolExecuteAfterHook,
|
|
118
|
+
recordHiddenVariantWarning,
|
|
119
|
+
registerRpcHandlers,
|
|
120
|
+
stageOpenCodeV2TransformDecision,
|
|
121
|
+
bindOpenCodeV2TransformDecision,
|
|
122
|
+
armLatestThinkingRecoveryFromError,
|
|
123
|
+
createM0RenderOptions,
|
|
124
|
+
lkgReplayLimit,
|
|
125
|
+
measureLkgReplay,
|
|
126
|
+
STORAGE_BUSY_MESSAGE,
|
|
127
|
+
StorageBusyRefusalError,
|
|
128
|
+
bindSystemDateRequestIdentity,
|
|
129
|
+
bindSystemDateOutput,
|
|
130
|
+
registerSystemDateRefresh,
|
|
131
|
+
UnmanagedOverWindowError,
|
|
132
|
+
UnresolvedHistoryBoundaryError,
|
|
133
|
+
createTransform,
|
|
134
|
+
createSubcModuleClient,
|
|
135
|
+
createModuleToolBackends,
|
|
136
|
+
createRustRefusalRecovery,
|
|
137
|
+
createSystemPromptHashHandler,
|
|
138
|
+
tryMessagesTransformLkgReplay,
|
|
139
|
+
createMessagesTransformHandler,
|
|
140
|
+
subagentToolRefusal,
|
|
141
|
+
hideSubagentTools,
|
|
142
|
+
createCtxExpandTools,
|
|
143
|
+
createCtxMemoryTools,
|
|
144
|
+
createCtxMemoryListTools,
|
|
145
|
+
CTX_NOTE_DESCRIPTION,
|
|
146
|
+
withoutSmartNoteText,
|
|
147
|
+
createCtxNoteTools,
|
|
148
|
+
createCtxReduceTools,
|
|
149
|
+
createCtxSearchTools,
|
|
150
|
+
applyJsonSchemaParameterDescriptions,
|
|
151
|
+
MagicContextRpcServer,
|
|
152
|
+
subagentTemperature
|
|
153
|
+
} from "./index-1wwh38fk.js";
|
|
94
154
|
import {
|
|
95
155
|
resolveHistorianModel2
|
|
96
156
|
} from "./index-8cd2j99z.js";
|
|
@@ -105,12 +165,12 @@ import {
|
|
|
105
165
|
openDatabaseAsync,
|
|
106
166
|
isDatabasePersisted,
|
|
107
167
|
getDatabasePersistenceError
|
|
108
|
-
} from "./index-
|
|
168
|
+
} from "./index-x2xjyq8f.js";
|
|
109
169
|
import {
|
|
110
170
|
setHomeProjectPermission,
|
|
111
171
|
resolveProjectIdentityForSession,
|
|
112
172
|
scheduleAfterBootQuiet
|
|
113
|
-
} from "./index-
|
|
173
|
+
} from "./index-a8bvhwqs.js";
|
|
114
174
|
import {
|
|
115
175
|
needsBlockedRead,
|
|
116
176
|
markHostUnservedRow,
|
|
@@ -142,13 +202,13 @@ import {
|
|
|
142
202
|
cleanUserText2,
|
|
143
203
|
readRawSessionMessageIdOrdinalsForRange2,
|
|
144
204
|
readRawSessionMessageOrdinalById2
|
|
145
|
-
} from "./index-
|
|
205
|
+
} from "./index-b16gpywn.js";
|
|
146
206
|
import {
|
|
147
207
|
hasMeaningfulUserText2,
|
|
148
208
|
preloadTokenizer,
|
|
149
209
|
estimateTokens
|
|
150
|
-
} from "./index-
|
|
151
|
-
import"./index-
|
|
210
|
+
} from "./index-hqkczed7.js";
|
|
211
|
+
import"./index-fkx2qnvw.js";
|
|
152
212
|
import {
|
|
153
213
|
inRootAsyncContext2,
|
|
154
214
|
withSqliteTransformPass2,
|
|
@@ -156,17 +216,17 @@ import {
|
|
|
156
216
|
isTransientSqliteError2,
|
|
157
217
|
withAsyncPrivilegedWriter2
|
|
158
218
|
} from "./index-wafzvyhg.js";
|
|
159
|
-
import"./index-
|
|
219
|
+
import"./index-dyvbsvga.js";
|
|
160
220
|
import {
|
|
161
221
|
deleteChunkEmbedBackoffForSession
|
|
162
|
-
} from "./index-
|
|
163
|
-
import"./index-
|
|
222
|
+
} from "./index-gf0psee3.js";
|
|
223
|
+
import"./index-nj7yykkx.js";
|
|
164
224
|
import {
|
|
165
225
|
BoundedSessionMap,
|
|
166
226
|
advanceSessionActivity,
|
|
167
227
|
backfillSessionActivity
|
|
168
|
-
} from "./index-
|
|
169
|
-
import"./index-
|
|
228
|
+
} from "./index-wqs4q74r.js";
|
|
229
|
+
import"./index-bp5083x2.js";
|
|
170
230
|
import"./index-1zx87sdm.js";
|
|
171
231
|
import {
|
|
172
232
|
stripPersistedAssistantText,
|
|
@@ -174,108 +234,68 @@ import {
|
|
|
174
234
|
isDroppedToolOutput,
|
|
175
235
|
evaluateChannel2,
|
|
176
236
|
buildChannel2Reminder
|
|
177
|
-
} from "./index-
|
|
237
|
+
} from "./index-fwefky9w.js";
|
|
178
238
|
import"./index-v0p37hm2.js";
|
|
179
|
-
import"./index-
|
|
239
|
+
import"./index-mmfa86mt.js";
|
|
180
240
|
import"./index-58e3y90n.js";
|
|
181
|
-
import"./index-
|
|
241
|
+
import"./index-1d289pq2.js";
|
|
182
242
|
import {
|
|
183
243
|
getCurrentToolSetHash,
|
|
184
244
|
recordToolDefinition
|
|
185
|
-
} from "./index-
|
|
245
|
+
} from "./index-n6m03s3n.js";
|
|
186
246
|
import"./index-fr0wbhdn.js";
|
|
187
|
-
import"./index-
|
|
188
|
-
import
|
|
247
|
+
import"./index-tdn0zkw4.js";
|
|
248
|
+
import {
|
|
249
|
+
getProjectEmbeddingSnapshot2,
|
|
250
|
+
getAutoEmbeddingSessionCoverage2
|
|
251
|
+
} from "./index-7zd5asz9.js";
|
|
189
252
|
import"./index-fb3zxn06.js";
|
|
190
253
|
import {
|
|
191
254
|
renderUserFacingFailure,
|
|
192
255
|
userFacingFailureCode
|
|
193
|
-
} from "./index-
|
|
194
|
-
import {
|
|
195
|
-
runSessionProjectBackfill,
|
|
196
|
-
createLiveSessionState,
|
|
197
|
-
RETROSPECTIVE_MAX_USER_MESSAGE_CHARS,
|
|
198
|
-
RETROSPECTIVE_MESSAGE_TRUNCATION_MARKER,
|
|
199
|
-
createDreamTaskExecutor,
|
|
200
|
-
runManualDream,
|
|
201
|
-
runDueTasksForProject,
|
|
202
|
-
startDreamScheduleTimer,
|
|
203
|
-
ensureProjectRegisteredFromOpenCodeDirectory,
|
|
204
|
-
resolveContextLimit,
|
|
205
|
-
resolveModelKey,
|
|
206
|
-
createScheduler,
|
|
207
|
-
describeStorageUnavailability,
|
|
208
|
-
getSessionErrorInfo,
|
|
209
|
-
summarizeManualDream,
|
|
210
|
-
createChatMessageHook,
|
|
211
|
-
createToolExecuteAfterHook,
|
|
212
|
-
recordHiddenVariantWarning,
|
|
213
|
-
registerRpcHandlers,
|
|
214
|
-
armLatestThinkingRecoveryFromError,
|
|
215
|
-
lkgReplayLimit,
|
|
216
|
-
measureLkgReplay,
|
|
217
|
-
STORAGE_BUSY_MESSAGE,
|
|
218
|
-
StorageBusyRefusalError,
|
|
219
|
-
bindSystemDateRequestIdentity,
|
|
220
|
-
bindSystemDateOutput,
|
|
221
|
-
registerSystemDateRefresh,
|
|
222
|
-
UnmanagedOverWindowError,
|
|
223
|
-
UnresolvedHistoryBoundaryError,
|
|
224
|
-
createTransform,
|
|
225
|
-
createSubcModuleClient,
|
|
226
|
-
createModuleToolBackends,
|
|
227
|
-
createRustRefusalRecovery,
|
|
228
|
-
createSystemPromptHashHandler,
|
|
229
|
-
tryMessagesTransformLkgReplay,
|
|
230
|
-
createMessagesTransformHandler,
|
|
231
|
-
subagentToolRefusal,
|
|
232
|
-
hideSubagentTools,
|
|
233
|
-
createCtxExpandTools,
|
|
234
|
-
createCtxMemoryTools,
|
|
235
|
-
createCtxMemoryListTools,
|
|
236
|
-
CTX_NOTE_DESCRIPTION,
|
|
237
|
-
withoutSmartNoteText,
|
|
238
|
-
createCtxNoteTools,
|
|
239
|
-
createCtxReduceTools,
|
|
240
|
-
createCtxSearchTools,
|
|
241
|
-
applyJsonSchemaParameterDescriptions,
|
|
242
|
-
MagicContextRpcServer,
|
|
243
|
-
subagentTemperature
|
|
244
|
-
} from "./index-x57ep4fp.js";
|
|
256
|
+
} from "./index-6sz25c3s.js";
|
|
245
257
|
import {
|
|
246
258
|
createTagger,
|
|
259
|
+
cavemanWordRulesForLanguage,
|
|
247
260
|
setCtxReduceRegisteredGlobally,
|
|
248
261
|
resolveCtxReduceAvailabilityFromMessages,
|
|
249
262
|
EmergencyFailClosedError,
|
|
250
263
|
DegradedPassRefusalError,
|
|
251
264
|
isSyntheticHeadMessage2
|
|
252
|
-
} from "./index-
|
|
253
|
-
import"./index-
|
|
254
|
-
import
|
|
265
|
+
} from "./index-qtbdx42g.js";
|
|
266
|
+
import"./index-f71thw8j.js";
|
|
267
|
+
import {
|
|
268
|
+
isEmbeddingHostBusy2
|
|
269
|
+
} from "./index-qt1qqasc.js";
|
|
255
270
|
import"./index-4dhv7mqz.js";
|
|
256
|
-
import"./index-
|
|
257
|
-
import"./index-
|
|
271
|
+
import"./index-9vqb5p1s.js";
|
|
272
|
+
import"./index-fx90bvjd.js";
|
|
258
273
|
import"./index-n78avt2p.js";
|
|
259
274
|
import {
|
|
260
275
|
pushNotification2,
|
|
261
276
|
isTuiConnected2
|
|
262
277
|
} from "./index-x8a7jmkh.js";
|
|
263
|
-
import"./index-
|
|
264
|
-
import"./index-
|
|
265
|
-
import"./index-
|
|
266
|
-
import"./index-
|
|
267
|
-
import"./index-
|
|
278
|
+
import"./index-y9f76s3f.js";
|
|
279
|
+
import"./index-2pgxcncf.js";
|
|
280
|
+
import"./index-6sytd5w3.js";
|
|
281
|
+
import"./index-05n6ykca.js";
|
|
282
|
+
import"./index-gp3kcpc4.js";
|
|
268
283
|
import {
|
|
269
284
|
detectConflicts
|
|
270
|
-
} from "./index-
|
|
285
|
+
} from "./index-kee4kn5j.js";
|
|
271
286
|
import"./index-fmsr7v69.js";
|
|
287
|
+
import {
|
|
288
|
+
isDreamerRunnable,
|
|
289
|
+
isSmartNoteSurfaceAvailable,
|
|
290
|
+
isCompactionEnabled
|
|
291
|
+
} from "./index-ksdyrrav.js";
|
|
272
292
|
import {
|
|
273
293
|
sameProjectDirectory
|
|
274
294
|
} from "./index-knvkbfvh.js";
|
|
275
295
|
import {
|
|
276
296
|
getErrorMessage
|
|
277
297
|
} from "./index-y8v6yerm.js";
|
|
278
|
-
import"./index-
|
|
298
|
+
import"./index-k29z4aqh.js";
|
|
279
299
|
|
|
280
300
|
// src/hooks/magic-context/history-boundary-repair.ts
|
|
281
301
|
function readBaseline(db, sessionId) {
|
|
@@ -1137,7 +1157,7 @@ function rebuildFileContent(value, output, attachments) {
|
|
|
1137
1157
|
rebuilt.unshift({ type: "text", text: output });
|
|
1138
1158
|
return { type: "content", value: rebuilt };
|
|
1139
1159
|
}
|
|
1140
|
-
function adaptPayload(draft, admittedIDs = new Set) {
|
|
1160
|
+
function adaptPayload(draft, admittedIDs = new Set, messageTimes = new Map) {
|
|
1141
1161
|
const existingHeads = new Map(draft.messages.filter((m) => HEAD_IDS.some((id) => m.id === id)).map((m) => [m.id, m]));
|
|
1142
1162
|
const source = draft.messages.filter((m) => !existingHeads.has(m.id));
|
|
1143
1163
|
const results = new Map;
|
|
@@ -1247,6 +1267,7 @@ function adaptPayload(draft, admittedIDs = new Set) {
|
|
|
1247
1267
|
id: message.id,
|
|
1248
1268
|
sessionID: draft.sessionID,
|
|
1249
1269
|
role: message.role,
|
|
1270
|
+
time: message.id ? messageTimes.get(message.id) : undefined,
|
|
1250
1271
|
...{
|
|
1251
1272
|
providerID: draft.model.providerID,
|
|
1252
1273
|
modelID: draft.model.id,
|
|
@@ -3301,6 +3322,8 @@ async function runManualDreamNow(args) {
|
|
|
3301
3322
|
const summary = await runManualDream({
|
|
3302
3323
|
db: args.db,
|
|
3303
3324
|
projectIdentity: args.projectIdentity,
|
|
3325
|
+
projectMemoryEnabled: args.memoryEnabled,
|
|
3326
|
+
smartNotesEnabled: args.smartNotesEnabled,
|
|
3304
3327
|
tasks: selection.runnable,
|
|
3305
3328
|
executor,
|
|
3306
3329
|
...args.task !== undefined ? { task: args.task } : {}
|
|
@@ -3340,7 +3363,11 @@ function registerV2DreamScheduleTimer(args) {
|
|
|
3340
3363
|
dreamerConfig: dreamer,
|
|
3341
3364
|
sampleDreamRun: () => {
|
|
3342
3365
|
const current = dreamerRunConfig(config, args.liveConfig());
|
|
3343
|
-
return {
|
|
3366
|
+
return {
|
|
3367
|
+
dreamerConfig: current.dreamer ?? dreamer,
|
|
3368
|
+
mural: current.mural,
|
|
3369
|
+
gitCommitIndexing: current.memory.git_commit_indexing
|
|
3370
|
+
};
|
|
3344
3371
|
},
|
|
3345
3372
|
validateTaskModels: (tasks) => selectRunnableDreamTasks({ tasks, toolsSupported: executor.capabilities.tools }).runnable,
|
|
3346
3373
|
language: config.language,
|
|
@@ -3350,6 +3377,8 @@ function registerV2DreamScheduleTimer(args) {
|
|
|
3350
3377
|
retinaHandoff: config.smart_notes.retina_handoff,
|
|
3351
3378
|
smartNotesEnabled: config.smart_notes.enabled,
|
|
3352
3379
|
embeddingConfig: config.embedding,
|
|
3380
|
+
transformMode: config.transform_mode,
|
|
3381
|
+
moduleClient: createDreamTimerModuleClient(args.rustModeModuleClient),
|
|
3353
3382
|
gitCommitIndexing: gitCommitIndexing?.enabled ? {
|
|
3354
3383
|
enabled: true,
|
|
3355
3384
|
since_days: gitCommitIndexing.since_days,
|
|
@@ -3416,6 +3445,7 @@ function startDreamTrigger(context, args) {
|
|
|
3416
3445
|
db,
|
|
3417
3446
|
projectIdentity: args.projectIdentity(),
|
|
3418
3447
|
projectMemoryEnabled: args.projectMemoryEnabled,
|
|
3448
|
+
smartNotesEnabled: args.smartNotesEnabled,
|
|
3419
3449
|
tasks: runnable,
|
|
3420
3450
|
executor: createDreamTaskExecutor({
|
|
3421
3451
|
hiddenCompletionExecutor: args.executor,
|
|
@@ -3425,6 +3455,10 @@ function startDreamTrigger(context, args) {
|
|
|
3425
3455
|
retrospectiveRawProvider: (db) => new V2RetrospectiveRawProvider(db),
|
|
3426
3456
|
language: args.language,
|
|
3427
3457
|
mural: sampled?.mural ?? args.mural,
|
|
3458
|
+
memoryInjectionBudgetTokens: args.memoryInjectionBudgetTokens,
|
|
3459
|
+
retinaHandoff: args.retinaHandoff,
|
|
3460
|
+
transformMode: args.transformMode,
|
|
3461
|
+
moduleClient: args.moduleClient,
|
|
3428
3462
|
smartNotesEnabled: args.smartNotesEnabled
|
|
3429
3463
|
})
|
|
3430
3464
|
});
|
|
@@ -4152,6 +4186,113 @@ async function registerTools(context, db, config, rustToolBackends, isInternalCh
|
|
|
4152
4186
|
return { dispose: () => controller.abort() };
|
|
4153
4187
|
}
|
|
4154
4188
|
|
|
4189
|
+
// src/v2/hooks/transform-decision-binding.ts
|
|
4190
|
+
function bindV2TransformDecision(args) {
|
|
4191
|
+
try {
|
|
4192
|
+
return bindOpenCodeV2TransformDecision({
|
|
4193
|
+
db: args.db,
|
|
4194
|
+
sessionId: args.sessionId,
|
|
4195
|
+
passStarting: args.passStarting,
|
|
4196
|
+
firstAssistantAfter: (sequence) => {
|
|
4197
|
+
const first = args.reader.assistantSince(args.sessionId, sequence)[0];
|
|
4198
|
+
if (!first)
|
|
4199
|
+
return;
|
|
4200
|
+
const completion = {
|
|
4201
|
+
completedAt: first.data.time?.completed,
|
|
4202
|
+
finish: first.data.finish,
|
|
4203
|
+
error: first.data.error
|
|
4204
|
+
};
|
|
4205
|
+
return {
|
|
4206
|
+
id: first.id,
|
|
4207
|
+
state: providerResponseFailed(completion) ? "failed" : isSuccessfulProviderCompletion(completion) ? "succeeded" : "running",
|
|
4208
|
+
inputTokens: lkgProviderInputTotal(first.data.tokens)
|
|
4209
|
+
};
|
|
4210
|
+
}
|
|
4211
|
+
});
|
|
4212
|
+
} catch {
|
|
4213
|
+
return false;
|
|
4214
|
+
}
|
|
4215
|
+
}
|
|
4216
|
+
|
|
4217
|
+
// src/v2/hooks/transform-features.ts
|
|
4218
|
+
function createV2TransformFeatureDeps(config, compactionOff, directory) {
|
|
4219
|
+
return {
|
|
4220
|
+
protectedTools: config.protected_tools,
|
|
4221
|
+
commitClusterTrigger: config.commit_cluster_trigger,
|
|
4222
|
+
allowHomeProject: config.allow_home_project,
|
|
4223
|
+
injectDocs: config.dreamer?.inject_docs !== false,
|
|
4224
|
+
memoryConfig: {
|
|
4225
|
+
enabled: config.memory.enabled,
|
|
4226
|
+
injectionBudgetTokens: config.memory.injection_budget_tokens,
|
|
4227
|
+
autoPromote: config.memory.auto_promote
|
|
4228
|
+
},
|
|
4229
|
+
ensureProjectRegistered: ensureProjectRegisteredFromOpenCodeDirectory,
|
|
4230
|
+
historyBudgetPercentage: config.history_budget_percentage,
|
|
4231
|
+
experimentalUserMemories: userObservationCollectionEnabled2(config.dreamer),
|
|
4232
|
+
userObservationsRequested: userObservationsRequested2(config.dreamer),
|
|
4233
|
+
experimentalTemporalAwareness: config.temporal_awareness === true,
|
|
4234
|
+
muralEnabled: config.mural?.enabled === true,
|
|
4235
|
+
autoSearch: {
|
|
4236
|
+
enabled: config.memory.auto_search?.enabled ?? true,
|
|
4237
|
+
scoreThreshold: config.memory.auto_search?.score_threshold ?? 0.6,
|
|
4238
|
+
minPromptChars: config.memory.auto_search?.min_prompt_chars ?? 20,
|
|
4239
|
+
directory,
|
|
4240
|
+
ensureProjectRegistered: ensureProjectRegisteredFromOpenCodeDirectory,
|
|
4241
|
+
wordRules: cavemanWordRulesForLanguage(config.language)
|
|
4242
|
+
},
|
|
4243
|
+
cavemanTextCompression: compactionOff ? undefined : config.caveman_text_compression?.enabled === true ? {
|
|
4244
|
+
enabled: true,
|
|
4245
|
+
minChars: config.caveman_text_compression.min_chars ?? 500,
|
|
4246
|
+
wordRules: cavemanWordRulesForLanguage(config.language)
|
|
4247
|
+
} : undefined
|
|
4248
|
+
};
|
|
4249
|
+
}
|
|
4250
|
+
function createV2AutoEmbedSession(deps) {
|
|
4251
|
+
return (sessionId) => {
|
|
4252
|
+
if (isEmbeddingHostBusy2())
|
|
4253
|
+
return;
|
|
4254
|
+
const directory = deps.resolveDirectory(sessionId);
|
|
4255
|
+
const identity = resolveProjectIdentityForSession(directory, deps.allowHomeProject);
|
|
4256
|
+
const snapshot = identity ? getProjectEmbeddingSnapshot2(identity) : undefined;
|
|
4257
|
+
const embedIdentity = snapshot ? JSON.stringify([
|
|
4258
|
+
snapshot.providerIdentity,
|
|
4259
|
+
snapshot.chunkModelId,
|
|
4260
|
+
snapshot.runtimeFingerprint
|
|
4261
|
+
]) : "off";
|
|
4262
|
+
if (autoEmbedIdentityBySession.get(sessionId) !== embedIdentity)
|
|
4263
|
+
invalidateAutoEmbedSession(sessionId);
|
|
4264
|
+
if (autoEmbedAttemptedBySession.has(sessionId) || embedPauseBySession.has(sessionId))
|
|
4265
|
+
return;
|
|
4266
|
+
autoEmbedAttemptedBySession.add(sessionId);
|
|
4267
|
+
autoEmbedIdentityBySession.set(sessionId, embedIdentity);
|
|
4268
|
+
(async () => {
|
|
4269
|
+
try {
|
|
4270
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
4271
|
+
if (isEmbeddingHostBusy2()) {
|
|
4272
|
+
invalidateAutoEmbedSession(sessionId);
|
|
4273
|
+
return;
|
|
4274
|
+
}
|
|
4275
|
+
await ensureProjectRegisteredFromOpenCodeDirectory(directory, deps.db);
|
|
4276
|
+
const project = resolveProjectIdentityForSession(directory, deps.allowHomeProject);
|
|
4277
|
+
if (!project) {
|
|
4278
|
+
invalidateAutoEmbedSession(sessionId);
|
|
4279
|
+
return;
|
|
4280
|
+
}
|
|
4281
|
+
const coverage = await getAutoEmbeddingSessionCoverage2(deps.db, project, sessionId);
|
|
4282
|
+
if (!coverage.enabled) {
|
|
4283
|
+
invalidateAutoEmbedSession(sessionId);
|
|
4284
|
+
return;
|
|
4285
|
+
}
|
|
4286
|
+
if (coverage.total <= coverage.embedded)
|
|
4287
|
+
return;
|
|
4288
|
+
await runEmbedHistoryDrain(deps, sessionId, { silent: true });
|
|
4289
|
+
} catch (error) {
|
|
4290
|
+
log2("[magic-context] auto-embed drain failed:", error);
|
|
4291
|
+
}
|
|
4292
|
+
})();
|
|
4293
|
+
};
|
|
4294
|
+
}
|
|
4295
|
+
|
|
4155
4296
|
// src/v2/hooks/usage-reading.ts
|
|
4156
4297
|
function usageReadingMatchesDraft(reading, draftModel) {
|
|
4157
4298
|
return reading.modelKey === undefined || reading.modelKey === `${draftModel.providerID}/${draftModel.id}`;
|
|
@@ -4466,6 +4607,7 @@ async function registerContext(context) {
|
|
|
4466
4607
|
directory,
|
|
4467
4608
|
warn: (message) => log2(`[magic-context] config warning: ${message}`)
|
|
4468
4609
|
});
|
|
4610
|
+
logConfigDependencyNotesOnce(config, log2);
|
|
4469
4611
|
const storage = createV2StorageGate({
|
|
4470
4612
|
onUnavailable: (reason) => {
|
|
4471
4613
|
const message = formatFailClosedBlockingMessage(reason);
|
|
@@ -4602,29 +4744,39 @@ async function registerContext(context) {
|
|
|
4602
4744
|
projectIdentity: () => resolveProjectIdentityForSession(directory, config.allow_home_project) ?? "",
|
|
4603
4745
|
projectMemoryEnabled: config.memory.enabled,
|
|
4604
4746
|
language: config.language,
|
|
4605
|
-
mural: config.mural
|
|
4747
|
+
mural: config.mural,
|
|
4748
|
+
memoryInjectionBudgetTokens: config.memory.injection_budget_tokens,
|
|
4749
|
+
retinaHandoff: config.smart_notes.retina_handoff,
|
|
4750
|
+
transformMode: config.transform_mode,
|
|
4751
|
+
moduleClient: createDreamTimerModuleClient(rustModeModuleClient)
|
|
4606
4752
|
});
|
|
4607
|
-
|
|
4753
|
+
return trigger;
|
|
4754
|
+
};
|
|
4755
|
+
let hiddenCompletionExecutor = db && isDatabasePersisted(db) && resolveProjectIdentityForSession(directory, config.allow_home_project) ? await createHiddenExecutor(db) : undefined;
|
|
4756
|
+
let dreamTrigger = hiddenCompletionExecutor ? startDreamer(hiddenCompletionExecutor) : undefined;
|
|
4757
|
+
const lateHiddenExecutor = createLateHiddenExecutor(() => hiddenCompletionExecutor);
|
|
4758
|
+
let maintenanceTimer;
|
|
4759
|
+
const startMaintenance = () => {
|
|
4760
|
+
const timerProjectIdentity = resolveProjectIdentityForSession(directory, config.allow_home_project);
|
|
4761
|
+
if (!timerProjectIdentity || maintenanceTimer)
|
|
4762
|
+
return;
|
|
4763
|
+
maintenanceTimer = registerV2DreamScheduleTimer({
|
|
4608
4764
|
directory,
|
|
4609
|
-
projectIdentity,
|
|
4765
|
+
projectIdentity: timerProjectIdentity,
|
|
4610
4766
|
config,
|
|
4611
4767
|
dreamer: dreamerAtBoot,
|
|
4612
4768
|
liveConfig: () => liveConfigReader.poll().effective,
|
|
4613
|
-
executor:
|
|
4614
|
-
openReader: openStoreReader
|
|
4769
|
+
executor: withLiveDreamerOutputCap(lateHiddenExecutor, config, () => liveConfigReader.poll().effective),
|
|
4770
|
+
openReader: openStoreReader,
|
|
4771
|
+
rustModeModuleClient
|
|
4615
4772
|
});
|
|
4616
|
-
return {
|
|
4617
|
-
async dispose() {
|
|
4618
|
-
await Promise.all([trigger.dispose(), timer.dispose()]);
|
|
4619
|
-
}
|
|
4620
|
-
};
|
|
4621
4773
|
};
|
|
4622
|
-
|
|
4623
|
-
|
|
4624
|
-
const lateHiddenExecutor = createLateHiddenExecutor(() => hiddenCompletionExecutor);
|
|
4774
|
+
if (db && isDatabasePersisted(db))
|
|
4775
|
+
startMaintenance();
|
|
4625
4776
|
let hiddenWorkRecovery;
|
|
4626
4777
|
const recoverHiddenWork = (database) => !resolveProjectIdentityForSession(directory, config.allow_home_project) ? Promise.resolve(false) : hiddenWorkRecovery ??= (async () => {
|
|
4627
4778
|
try {
|
|
4779
|
+
startMaintenance();
|
|
4628
4780
|
hiddenCompletionExecutor ??= await createHiddenExecutor(database);
|
|
4629
4781
|
dreamTrigger ??= startDreamer(hiddenCompletionExecutor);
|
|
4630
4782
|
return true;
|
|
@@ -4645,7 +4797,8 @@ async function registerContext(context) {
|
|
|
4645
4797
|
twoPass: fresh.historian?.two_pass === true,
|
|
4646
4798
|
expandTools: fresh.historian?.expand_tools,
|
|
4647
4799
|
autoPromote: fresh.memory?.auto_promote ?? true,
|
|
4648
|
-
userMemoriesEnabled:
|
|
4800
|
+
userMemoriesEnabled: userObservationCollectionEnabled2(fresh.dreamer),
|
|
4801
|
+
userObservationsRequested: userObservationsRequested2(fresh.dreamer),
|
|
4649
4802
|
commitClusterTrigger: fresh.commit_cluster_trigger,
|
|
4650
4803
|
chunkTokens: deriveHistorianChunkTokens2(resolveHistorianContextLimit2(models.primary?.model))
|
|
4651
4804
|
};
|
|
@@ -4659,6 +4812,7 @@ async function registerContext(context) {
|
|
|
4659
4812
|
registerSystemDateRefresh(historyRefreshSessions);
|
|
4660
4813
|
const pendingMaterializationSessions = new Set;
|
|
4661
4814
|
const lastHeuristicsTurnId = new Map;
|
|
4815
|
+
const commitSeenLastPass = new Map;
|
|
4662
4816
|
const restoredRows = new RestoredRowCache;
|
|
4663
4817
|
const rawProviders = new Map;
|
|
4664
4818
|
let passDuties;
|
|
@@ -4768,7 +4922,7 @@ async function registerContext(context) {
|
|
|
4768
4922
|
}
|
|
4769
4923
|
};
|
|
4770
4924
|
const latestLkgResponseIds = new BoundedSessionMap(1000);
|
|
4771
|
-
const recordUsage = async (draft) => {
|
|
4925
|
+
const recordUsage = async (draft, passStarting = false) => {
|
|
4772
4926
|
let unsafe = false;
|
|
4773
4927
|
try {
|
|
4774
4928
|
await storage.probe();
|
|
@@ -4783,6 +4937,12 @@ async function registerContext(context) {
|
|
|
4783
4937
|
} catch (error) {
|
|
4784
4938
|
sessionLog2(draft.sessionID, "v2 response ownership unavailable; keeping system identity pending", error);
|
|
4785
4939
|
}
|
|
4940
|
+
bindV2TransformDecision({
|
|
4941
|
+
db,
|
|
4942
|
+
sessionId: draft.sessionID,
|
|
4943
|
+
reader,
|
|
4944
|
+
passStarting
|
|
4945
|
+
});
|
|
4786
4946
|
if (latest)
|
|
4787
4947
|
noteLkgProviderResponse({
|
|
4788
4948
|
sessionId: draft.sessionID,
|
|
@@ -4912,6 +5072,8 @@ async function registerContext(context) {
|
|
|
4912
5072
|
variants.delete(sessionID);
|
|
4913
5073
|
agents.delete(sessionID);
|
|
4914
5074
|
channel1.delete(sessionID);
|
|
5075
|
+
commitSeenLastPass.delete(sessionID);
|
|
5076
|
+
clearEmbedSessionState(sessionID);
|
|
4915
5077
|
historyRefreshSessions.delete(sessionID);
|
|
4916
5078
|
clearPendingMaterialization(pendingMaterializationSessions, sessionID);
|
|
4917
5079
|
lastHeuristicsTurnId.delete(sessionID);
|
|
@@ -4943,16 +5105,22 @@ async function registerContext(context) {
|
|
|
4943
5105
|
const materialize = (draft) => {
|
|
4944
5106
|
db = storage.require();
|
|
4945
5107
|
const state = getOrCreateSessionMeta(db, draft.sessionID);
|
|
5108
|
+
const modelKey = `${draft.model.providerID}/${draft.model.id}`;
|
|
5109
|
+
const contextLimit = resolveContextLimit(draft.model.providerID, draft.model.id, {
|
|
5110
|
+
db,
|
|
5111
|
+
sessionID: draft.sessionID
|
|
5112
|
+
}) || draft.model.limit?.context || (state.lastObservedModelKey === modelKey ? state.lastUsageContextLimit : undefined);
|
|
4946
5113
|
return materializeM0({
|
|
5114
|
+
...createM0RenderOptions({
|
|
5115
|
+
...createV2TransformFeatureDeps(config, compactionOff, directory),
|
|
5116
|
+
...createV2ThresholdDeps(config)
|
|
5117
|
+
}, usage.get(draft.sessionID)?.usage ?? { percentage: 0, inputTokens: 0 }, modelKey, contextLimit, resolveProjectIdentityForSession(directory, config.allow_home_project)),
|
|
4947
5118
|
db,
|
|
4948
5119
|
sessionId: draft.sessionID,
|
|
4949
5120
|
state,
|
|
4950
|
-
projectPath: resolveProjectIdentityForSession(directory, config.allow_home_project) ?? "",
|
|
4951
5121
|
projectDirectory: directory,
|
|
4952
|
-
memoryEnabled: config.memory.enabled && !!resolveProjectIdentityForSession(directory, config.allow_home_project),
|
|
4953
|
-
memoryInjectionBudgetTokens: config.memory.injection_budget_tokens,
|
|
4954
5122
|
hardSignals: {
|
|
4955
|
-
systemHash:
|
|
5123
|
+
systemHash: state.systemPromptHash ?? "",
|
|
4956
5124
|
toolSetHash: getCurrentToolSetHash(draft.model.providerID, draft.model.id, draft.agent),
|
|
4957
5125
|
modelKey: `${draft.model.providerID}/${draft.model.id}`,
|
|
4958
5126
|
cacheExpired: false,
|
|
@@ -4972,6 +5140,7 @@ async function registerContext(context) {
|
|
|
4972
5140
|
rememberHostMedia(draft.messages);
|
|
4973
5141
|
const reader = openStoreReader();
|
|
4974
5142
|
try {
|
|
5143
|
+
await storage.probe();
|
|
4975
5144
|
const watermark = reader.latestSequenceForIds(draft.sessionID, draft.messages.flatMap((message) => message.id ? [message.id] : []));
|
|
4976
5145
|
const running = reader.latestRunningCompaction(draft.sessionID);
|
|
4977
5146
|
const moduleBaseline = rustModeModuleClient ? servedModuleM0Text(draft.sessionID) : undefined;
|
|
@@ -5046,7 +5215,7 @@ async function registerContext(context) {
|
|
|
5046
5215
|
if (!modelLimitCacheWarm())
|
|
5047
5216
|
withoutSqliteTransformPass2(() => warmModelLimitCacheFromCatalog(context));
|
|
5048
5217
|
agents.set(draft.sessionID, draft.agent);
|
|
5049
|
-
applyV2PromptSurfaceTools(draft, promptSurfaceRuntime, config.prompt_surface, config
|
|
5218
|
+
applyV2PromptSurfaceTools(draft, promptSurfaceRuntime, config.prompt_surface, isSmartNoteSurfaceAvailable(config));
|
|
5050
5219
|
const admissionDb = db ?? storage.current();
|
|
5051
5220
|
const replayFits = (messages) => {
|
|
5052
5221
|
const system = structuredClone(draft.system);
|
|
@@ -5110,7 +5279,7 @@ async function registerContext(context) {
|
|
|
5110
5279
|
if (admissionDb)
|
|
5111
5280
|
hideSubagentTools(draft, admissionDb);
|
|
5112
5281
|
recordV2ToolDefinitions(draft);
|
|
5113
|
-
if (await recordUsage(draft) && !compactionOff) {
|
|
5282
|
+
if (await recordUsage(draft, true) && !compactionOff) {
|
|
5114
5283
|
const storageReason = storage.current() ? null : storage.reason();
|
|
5115
5284
|
if (storageReason) {
|
|
5116
5285
|
noticeStorageRefusal(draft.sessionID, storageReason);
|
|
@@ -5192,6 +5361,7 @@ async function registerContext(context) {
|
|
|
5192
5361
|
await cacheV2SessionDirectory(context.session, draft.sessionID, sessionDirectories);
|
|
5193
5362
|
prepareHistorySession(draft.sessionID);
|
|
5194
5363
|
transform ??= createTransform({
|
|
5364
|
+
...createV2TransformFeatureDeps(config, compactionOff, directory),
|
|
5195
5365
|
cacheTtlConfig: config.cache_ttl,
|
|
5196
5366
|
cacheTtlConfigured: config.cacheTtlConfigured,
|
|
5197
5367
|
sampleCacheTtlConfig: () => liveConfigReader.poll().effective,
|
|
@@ -5221,14 +5391,27 @@ async function registerContext(context) {
|
|
|
5221
5391
|
historyRefreshSessions,
|
|
5222
5392
|
pendingMaterializationSessions,
|
|
5223
5393
|
lastHeuristicsTurnId,
|
|
5394
|
+
commitSeenLastPass,
|
|
5224
5395
|
variantBySession: variants,
|
|
5225
5396
|
keepReasoningTokens: config.keep_reasoning_tokens,
|
|
5226
5397
|
directory,
|
|
5227
5398
|
sessionDirectoryBySession: sessionDirectories,
|
|
5228
|
-
projectPath: directory,
|
|
5399
|
+
projectPath: resolveProjectIdentityForSession(directory, config.allow_home_project),
|
|
5400
|
+
getHistorianChunkTokens: () => sampleHistorian().chunkTokens,
|
|
5401
|
+
getFallbackModelId: (sessionID) => {
|
|
5402
|
+
const model = liveModels.get(sessionID);
|
|
5403
|
+
return model ? `${model.providerID}/${model.modelID}` : undefined;
|
|
5404
|
+
},
|
|
5405
|
+
maybeAutoEmbedSession: createV2AutoEmbedSession({
|
|
5406
|
+
db,
|
|
5407
|
+
resolveDirectory: (sessionID) => sessionDirectories.get(sessionID) ?? directory,
|
|
5408
|
+
allowHomeProject: config.allow_home_project,
|
|
5409
|
+
recompProgressBySession: new Map
|
|
5410
|
+
}),
|
|
5229
5411
|
hiddenCompletionExecutor,
|
|
5230
5412
|
historianRunnable: !compactionOff && hiddenCompletionExecutor !== undefined && config.historian?.disable !== true,
|
|
5231
5413
|
historianModel: historianModels.primary,
|
|
5414
|
+
historianContextLimit: sampleHistorian().contextLimit,
|
|
5232
5415
|
fallbackModels: historianModels.fallbacks,
|
|
5233
5416
|
resolveHistorianRun: sampleHistorian,
|
|
5234
5417
|
historianTimeoutMs: config.historian_timeout_ms,
|
|
@@ -5256,14 +5439,10 @@ async function registerContext(context) {
|
|
|
5256
5439
|
promptSurface: config.prompt_surface,
|
|
5257
5440
|
promptSurfaceRuntime,
|
|
5258
5441
|
onRustEngineReconnectRefusal: (refusal) => rustRefusalRecovery?.arm(refusal),
|
|
5259
|
-
memoryConfig: {
|
|
5260
|
-
enabled: config.memory.enabled,
|
|
5261
|
-
injectionBudgetTokens: config.memory.injection_budget_tokens,
|
|
5262
|
-
autoPromote: config.memory.auto_promote
|
|
5263
|
-
},
|
|
5264
5442
|
...createHostSeams(context, readAllForConversion, pagedRead, liveModels)
|
|
5265
5443
|
});
|
|
5266
5444
|
const admitted = new Set;
|
|
5445
|
+
let messageTimes;
|
|
5267
5446
|
const reader = openStoreReader();
|
|
5268
5447
|
let checkpoint;
|
|
5269
5448
|
let submitted;
|
|
@@ -5334,6 +5513,8 @@ async function registerContext(context) {
|
|
|
5334
5513
|
} : undefined));
|
|
5335
5514
|
draft.messages.splice(0, draft.messages.length, ...restored, ...draft.messages.filter((message) => message !== incoming));
|
|
5336
5515
|
}
|
|
5516
|
+
if (config.temporal_awareness === true)
|
|
5517
|
+
messageTimes = reader.messageTimes(draft.sessionID, draft.messages.flatMap((message) => message.id ? [message.id] : []));
|
|
5337
5518
|
} finally {
|
|
5338
5519
|
reader.close();
|
|
5339
5520
|
}
|
|
@@ -5350,7 +5531,7 @@ async function registerContext(context) {
|
|
|
5350
5531
|
nativeFoldReplay.invalidate(draft.sessionID, true);
|
|
5351
5532
|
}
|
|
5352
5533
|
}
|
|
5353
|
-
const mapped = adaptPayload(draft, admitted);
|
|
5534
|
+
const mapped = adaptPayload(draft, admitted, messageTimes);
|
|
5354
5535
|
bindSystemDateRequestIdentity(mapped, draft);
|
|
5355
5536
|
await createMessagesTransformHandler({
|
|
5356
5537
|
magicContext: { "experimental.chat.messages.transform": transform },
|
|
@@ -5360,6 +5541,10 @@ async function registerContext(context) {
|
|
|
5360
5541
|
rustReplayParticipant: () => transform?.getRustReplayParticipant() ?? null
|
|
5361
5542
|
})({}, mapped);
|
|
5362
5543
|
mapped.commit();
|
|
5544
|
+
stageOpenCodeV2TransformDecision({
|
|
5545
|
+
sessionId: draft.sessionID,
|
|
5546
|
+
responseAfterSequence
|
|
5547
|
+
});
|
|
5363
5548
|
if (db) {
|
|
5364
5549
|
await deliverPendingChannel2(context, db, draft.sessionID, channel1.get(draft.sessionID));
|
|
5365
5550
|
}
|
|
@@ -5526,6 +5711,7 @@ ${baseline}
|
|
|
5526
5711
|
db: runDb,
|
|
5527
5712
|
dreamer: manualDreamer,
|
|
5528
5713
|
smartNotesEnabled: config.smart_notes.enabled,
|
|
5714
|
+
memoryEnabled: config.memory.enabled,
|
|
5529
5715
|
projectIdentity: resolveProjectIdentityForSession(directory, config.allow_home_project) ?? "",
|
|
5530
5716
|
directory,
|
|
5531
5717
|
language: config.language,
|
|
@@ -5576,6 +5762,7 @@ ${baseline}
|
|
|
5576
5762
|
await usageDone;
|
|
5577
5763
|
deletedSessions.clear();
|
|
5578
5764
|
await dreamTrigger?.dispose();
|
|
5765
|
+
await maintenanceTimer?.dispose();
|
|
5579
5766
|
for (const release of rawProviders.values())
|
|
5580
5767
|
release();
|
|
5581
5768
|
rawProviders.clear();
|