@cortexkit/opencode-magic-context 0.17.2 → 0.19.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/README.md +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/features/magic-context/compaction-marker.d.ts +17 -0
- package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
- package/dist/features/magic-context/compartment-storage.d.ts +11 -0
- package/dist/features/magic-context/compartment-storage.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/queue.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/runner.d.ts +15 -0
- package/dist/features/magic-context/dreamer/runner.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-identity.d.ts +11 -0
- package/dist/features/magic-context/memory/embedding-identity.d.ts.map +1 -0
- package/dist/features/magic-context/memory/embedding-local.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-openai.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding.d.ts.map +1 -1
- package/dist/features/magic-context/migrations.d.ts.map +1 -1
- package/dist/features/magic-context/sidekick/agent.d.ts.map +1 -1
- package/dist/features/magic-context/storage-db.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta-persisted.d.ts +70 -0
- package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta-shared.d.ts +1 -0
- package/dist/features/magic-context/storage-meta-shared.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta.d.ts +1 -1
- package/dist/features/magic-context/storage-meta.d.ts.map +1 -1
- package/dist/features/magic-context/storage.d.ts +1 -1
- package/dist/features/magic-context/storage.d.ts.map +1 -1
- package/dist/features/magic-context/tool-definition-tokens.d.ts.map +1 -1
- package/dist/features/magic-context/types.d.ts +1 -0
- package/dist/features/magic-context/types.d.ts.map +1 -1
- package/dist/features/magic-context/user-memory/review-user-memories.d.ts +2 -0
- package/dist/features/magic-context/user-memory/review-user-memories.d.ts.map +1 -1
- package/dist/hooks/magic-context/cache-busting-signals.d.ts +10 -0
- package/dist/hooks/magic-context/cache-busting-signals.d.ts.map +1 -0
- package/dist/hooks/magic-context/command-handler.d.ts +2 -0
- package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
- package/dist/hooks/magic-context/compaction-marker-manager.d.ts +50 -0
- package/dist/hooks/magic-context/compaction-marker-manager.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-compressor.d.ts +1 -0
- package/dist/hooks/magic-context/compartment-runner-compressor.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-historian.d.ts +7 -0
- package/dist/hooks/magic-context/compartment-runner-historian.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-incremental.d.ts +1 -1
- package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-partial-recomp.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-types.d.ts +18 -7
- package/dist/hooks/magic-context/compartment-runner-types.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner.d.ts +7 -2
- package/dist/hooks/magic-context/compartment-runner.d.ts.map +1 -1
- package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
- package/dist/hooks/magic-context/historian-state-file.d.ts +25 -11
- package/dist/hooks/magic-context/historian-state-file.d.ts.map +1 -1
- package/dist/hooks/magic-context/hook-handlers.d.ts +11 -4
- package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -1
- package/dist/hooks/magic-context/hook.d.ts.map +1 -1
- package/dist/hooks/magic-context/inject-compartments.d.ts +2 -1
- package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
- package/dist/hooks/magic-context/live-session-state.d.ts +3 -1
- package/dist/hooks/magic-context/live-session-state.d.ts.map +1 -1
- package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
- package/dist/hooks/magic-context/todo-view.d.ts +102 -0
- package/dist/hooks/magic-context/todo-view.d.ts.map +1 -0
- package/dist/hooks/magic-context/transform-compartment-phase.d.ts +11 -4
- package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-message-helpers.d.ts +22 -0
- package/dist/hooks/magic-context/transform-message-helpers.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +15 -1
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform.d.ts +4 -0
- package/dist/hooks/magic-context/transform.d.ts.map +1 -1
- package/dist/index.js +1789 -711
- 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/rpc-handlers.d.ts +2 -1
- package/dist/plugin/rpc-handlers.d.ts.map +1 -1
- package/dist/plugin/sidebar-snapshot-cache.d.ts.map +1 -1
- package/dist/shared/conflict-detector.d.ts +49 -0
- package/dist/shared/conflict-detector.d.ts.map +1 -1
- package/dist/shared/conflict-fixer.d.ts +1 -1
- package/dist/shared/conflict-fixer.d.ts.map +1 -1
- package/dist/shared/data-path.d.ts +84 -0
- package/dist/shared/data-path.d.ts.map +1 -1
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/logger.d.ts +6 -0
- package/dist/shared/logger.d.ts.map +1 -1
- package/dist/shared/model-suggestion-retry.d.ts +37 -0
- package/dist/shared/model-suggestion-retry.d.ts.map +1 -1
- package/dist/shared/models-dev-cache.d.ts.map +1 -1
- package/dist/shared/resolve-fallbacks.d.ts +32 -0
- package/dist/shared/resolve-fallbacks.d.ts.map +1 -0
- package/dist/shared/rpc-client.d.ts +2 -1
- package/dist/shared/rpc-client.d.ts.map +1 -1
- package/dist/shared/rpc-notifications.d.ts +3 -2
- package/dist/shared/rpc-notifications.d.ts.map +1 -1
- package/dist/shared/rpc-server.d.ts +3 -0
- package/dist/shared/rpc-server.d.ts.map +1 -1
- package/dist/shared/rpc-types.d.ts +1 -0
- package/dist/shared/rpc-types.d.ts.map +1 -1
- package/dist/shared/rpc-utils.d.ts +13 -2
- package/dist/shared/rpc-utils.d.ts.map +1 -1
- package/dist/shared/stable-json.d.ts +21 -0
- package/dist/shared/stable-json.d.ts.map +1 -0
- package/dist/shared/tag-transcript.d.ts.map +1 -1
- package/dist/tools/ctx-memory/tools.d.ts.map +1 -1
- package/dist/tui/data/context-db.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/shared/conflict-detector.ts +4 -4
- package/src/shared/conflict-fixer.test.ts +124 -0
- package/src/shared/conflict-fixer.ts +34 -28
- package/src/shared/data-path.test.ts +38 -0
- package/src/shared/data-path.ts +99 -0
- package/src/shared/index.ts +1 -0
- package/src/shared/logger.ts +29 -3
- package/src/shared/model-suggestion-retry.test.ts +251 -0
- package/src/shared/model-suggestion-retry.ts +194 -6
- package/src/shared/models-dev-cache.ts +7 -7
- package/src/shared/resolve-fallbacks.test.ts +136 -0
- package/src/shared/resolve-fallbacks.ts +76 -0
- package/src/shared/rpc-client.test.ts +161 -0
- package/src/shared/rpc-client.ts +82 -22
- package/src/shared/rpc-notifications.test.ts +20 -0
- package/src/shared/rpc-notifications.ts +9 -6
- package/src/shared/rpc-server.ts +42 -4
- package/src/shared/rpc-types.ts +1 -0
- package/src/shared/rpc-utils.ts +59 -3
- package/src/shared/stable-json.test.ts +87 -0
- package/src/shared/stable-json.ts +37 -0
- package/src/shared/tag-transcript.ts +3 -2
- package/src/tui/data/context-db.ts +20 -1
- package/src/tui/index.tsx +114 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compartment-runner-recomp.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-recomp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compartment-runner-recomp.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-recomp.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAwB,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAc9F,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0V/F"}
|
|
@@ -12,6 +12,8 @@ export interface CompartmentRunnerDeps {
|
|
|
12
12
|
*/
|
|
13
13
|
historianChunkTokens: number;
|
|
14
14
|
historianTimeoutMs?: number;
|
|
15
|
+
/** Resolved fallback chain for historian-family calls (historian + compressor). */
|
|
16
|
+
fallbackModels?: readonly string[];
|
|
15
17
|
directory: string;
|
|
16
18
|
historyBudgetTokens?: number;
|
|
17
19
|
fallbackModelId?: string;
|
|
@@ -43,14 +45,23 @@ export interface CompartmentRunnerDeps {
|
|
|
43
45
|
*/
|
|
44
46
|
autoPromote?: boolean;
|
|
45
47
|
/**
|
|
46
|
-
* Called after
|
|
47
|
-
*
|
|
48
|
-
* promotion). The caller should register the session as flush-pending so
|
|
49
|
-
* the very next transform pass is treated as cache-busting. Without this
|
|
50
|
-
* signal, background historian work can rebuild <session-history> on a
|
|
51
|
-
* defer pass and silently bust provider cache. See council Finding #9.
|
|
48
|
+
* Called after compartment state is published. The runner marks the active
|
|
49
|
+
* run as published before invoking this callback.
|
|
52
50
|
*/
|
|
53
|
-
|
|
51
|
+
onCompartmentStatePublished?: (sessionId: string) => void;
|
|
52
|
+
/**
|
|
53
|
+
* When true, publication preserves the in-memory injection cache until a
|
|
54
|
+
* later materializing pass consumes the deferred refresh.
|
|
55
|
+
*/
|
|
56
|
+
preserveInjectionCacheUntilConsumed?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Plan v6 §4: Called when historian/recomp publication wrote a pending
|
|
59
|
+
* compaction-marker row in-transaction (deferring marker application to a
|
|
60
|
+
* later materializing pass). Consumer (hook.ts) seeds
|
|
61
|
+
* `liveSessionState.deferredHistoryRefreshSessions` so the next consuming
|
|
62
|
+
* postprocess pass drains the pending blob and applies the marker.
|
|
63
|
+
*/
|
|
64
|
+
onDeferredMarkerPending?: (sessionId: string) => void;
|
|
54
65
|
}
|
|
55
66
|
export interface CandidateCompartment {
|
|
56
67
|
sequence: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compartment-runner-types.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,EAAE,EAAE,QAAQ,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,kBAAkB,CAAC;IACjD,gFAAgF;IAChF,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,0EAA0E;IAC1E,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,+EAA+E;IAC/E,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;gEAC4D;IAC5D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kFAAkF;IAClF,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,yFAAyF;IACzF,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB
|
|
1
|
+
{"version":3,"file":"compartment-runner-types.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,EAAE,EAAE,QAAQ,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mFAAmF;IACnF,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,kBAAkB,CAAC;IACjD,gFAAgF;IAChF,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,0EAA0E;IAC1E,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,+EAA+E;IAC/E,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;gEAC4D;IAC5D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kFAAkF;IAClF,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,yFAAyF;IACzF,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,2BAA2B,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D;;;OAGG;IACH,mCAAmC,CAAC,EAAE,OAAO,CAAC;IAC9C;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,4BAA4B,GAClC;IACI,EAAE,EAAE,IAAI,CAAC;IACT,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,MAAM,WAAW,sBAAsB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACvC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { type PartialRecompRange } from "./compartment-runner-partial-recomp";
|
|
2
2
|
import type { CompartmentRunnerDeps } from "./compartment-runner-types";
|
|
3
|
-
export
|
|
3
|
+
export interface ActiveCompartmentRun {
|
|
4
|
+
promise: Promise<void>;
|
|
5
|
+
published: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function getActiveCompartmentRun(sessionId: string): ActiveCompartmentRun | undefined;
|
|
8
|
+
export declare function markActiveCompartmentRunPublished(sessionId: string): void;
|
|
4
9
|
/**
|
|
5
10
|
* Register a compartment-state-mutating promise with the active-runs map.
|
|
6
11
|
*
|
|
@@ -16,7 +21,7 @@ export declare function getActiveCompartmentRun(sessionId: string): Promise<void
|
|
|
16
21
|
* bailed — this function will overwrite silently if called anyway, which is
|
|
17
22
|
* the desired behavior for the retry path.
|
|
18
23
|
*/
|
|
19
|
-
export declare function registerActiveCompartmentRun(sessionId: string, promise: Promise<void>):
|
|
24
|
+
export declare function registerActiveCompartmentRun(sessionId: string, promise: Promise<void>): ActiveCompartmentRun;
|
|
20
25
|
export declare function startCompartmentAgent(deps: CompartmentRunnerDeps): void;
|
|
21
26
|
export interface ExecuteContextRecompOptions {
|
|
22
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compartment-runner.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner.ts"],"names":[],"mappings":"AAGA,OAAO,EAEH,KAAK,kBAAkB,EAC1B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"compartment-runner.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner.ts"],"names":[],"mappings":"AAGA,OAAO,EAEH,KAAK,kBAAkB,EAC1B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACtB;AAID,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAE3F;AAED,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGzE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GACvB,oBAAoB,CAetB;AAYD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CA6BvE;AAED,MAAM,WAAW,2BAA2B;IACxC;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,wBAAsB,oBAAoB,CACtC,IAAI,EAAE,qBAAqB,EAC3B,OAAO,GAAE,2BAAgC,GAC1C,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAED,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/event-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"event-handler.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/event-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AA4BvF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAqBvE,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAMhF,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEtD,UAAU,iBAAiB;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAOD,MAAM,WAAW,gBAAgB;IAC7B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAChD,iBAAiB,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;IAC9D,eAAe,EAAE,mBAAmB,CAAC;IACrC,yBAAyB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,MAAM,EAAE;QACJ,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,4BAA4B,CAAC,EAAE,MAAM,GAAG;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QACxF,wBAAwB,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;SAAE,CAAC;QACxF,SAAS,EAAE,cAAc,CAAC;QAC1B,sBAAsB,CAAC,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACvE,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,UAAU,CAAC,cAAc,sCAAsC,EAAE,YAAY,CAAC,CAAC;CACtF;AAqGD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,IACvC,OAAO;IAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAobzF"}
|
|
@@ -3,27 +3,41 @@
|
|
|
3
3
|
*
|
|
4
4
|
* When the existing-state XML (prior compartments + facts + project memory)
|
|
5
5
|
* exceeds {@link HISTORIAN_STATE_INLINE_THRESHOLD} characters, the historian
|
|
6
|
-
* caller writes it to a temp file under
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* github-copilot/gpt-5.4 via
|
|
11
|
-
* stall before emitting any
|
|
6
|
+
* caller writes it to a temp file under the project-local historian dir
|
|
7
|
+
* (`<project>/.opencode/magic-context/historian/`) and the prompt instructs
|
|
8
|
+
* the model to `Read this file first`. This avoids pushing 100K+ chars of
|
|
9
|
+
* inline reference state through the model's input on long sessions, which
|
|
10
|
+
* on some provider/model combinations (notably github-copilot/gpt-5.4 via
|
|
11
|
+
* the openai-responses API) causes the model to stall before emitting any
|
|
12
|
+
* output tokens.
|
|
13
|
+
*
|
|
14
|
+
* The state file lives INSIDE the project directory rather than under
|
|
15
|
+
* `os.tmpdir()` because OpenCode's `external_directory` permission system
|
|
16
|
+
* asks the user before letting the historian subagent's Read tool open any
|
|
17
|
+
* file outside the project. Anchoring under `<project>/.opencode/` keeps
|
|
18
|
+
* the file inside the project boundary so historian runs never trigger a
|
|
19
|
+
* permission prompt.
|
|
12
20
|
*
|
|
13
21
|
* The caller MUST delete the file in finally{} via
|
|
14
22
|
* {@link cleanupHistorianStateFile}.
|
|
15
23
|
*
|
|
16
24
|
* Shared between OpenCode (`compartment-runner-incremental.ts`,
|
|
17
|
-
* `compartment-runner-recomp.ts`) and Pi (`pi-historian-runner.ts`).
|
|
25
|
+
* `compartment-runner-recomp.ts`) and Pi (`pi-historian-runner.ts`). The
|
|
26
|
+
* directory is resolved from the project directory the caller passes in —
|
|
27
|
+
* both harnesses already track this on their runner deps.
|
|
18
28
|
*/
|
|
19
29
|
export declare const HISTORIAN_STATE_INLINE_THRESHOLD = 30000;
|
|
20
|
-
export declare const HISTORIAN_STATE_DIR: string;
|
|
21
30
|
/**
|
|
22
|
-
* When existingState is large, write it to a
|
|
23
|
-
* Returns undefined when existingState is small enough to inline OR when
|
|
31
|
+
* When existingState is large, write it to a project-local file and return the
|
|
32
|
+
* path. Returns undefined when existingState is small enough to inline OR when
|
|
24
33
|
* writing fails (in which case the caller should fall back to inline).
|
|
34
|
+
*
|
|
35
|
+
* `directory` is the project directory; the helper writes under
|
|
36
|
+
* `<directory>/.opencode/magic-context/historian/`. The dir is created
|
|
37
|
+
* recursively on first write, so the call is safe on fresh projects that have
|
|
38
|
+
* never had a `.opencode/` subtree.
|
|
25
39
|
*/
|
|
26
|
-
export declare function maybeWriteHistorianStateFile(sessionId: string, existingState: string): string | undefined;
|
|
40
|
+
export declare function maybeWriteHistorianStateFile(sessionId: string, existingState: string, directory: string): string | undefined;
|
|
27
41
|
/** Delete a previously written state file. Safe to call with undefined. */
|
|
28
42
|
export declare function cleanupHistorianStateFile(path: string | undefined): void;
|
|
29
43
|
//# sourceMappingURL=historian-state-file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"historian-state-file.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/historian-state-file.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"historian-state-file.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/historian-state-file.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,gCAAgC,QAAS,CAAC;AAEvD;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CACxC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAWpB;AAED,2EAA2E;AAC3E,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAOxE"}
|
|
@@ -28,13 +28,15 @@ export type ToolUsageSinceUserTurn = Map<string, number>;
|
|
|
28
28
|
* actually occurred — the next defer pass MUST hit the cache.
|
|
29
29
|
*
|
|
30
30
|
* Producers: `/ctx-flush`, real variant change, system-prompt hash change,
|
|
31
|
-
*
|
|
32
|
-
*
|
|
31
|
+
* explicit user refresh paths (flush/recomp/variant/system-prompt hash).
|
|
32
|
+
* Background historian/compressor publications use DeferredHistoryRefreshSessions.
|
|
33
33
|
*
|
|
34
34
|
* NOT a producer: the background compressor — its output deliberately
|
|
35
35
|
* lands on the next natural cache-bust pass instead of forcing one.
|
|
36
36
|
*/
|
|
37
37
|
export type HistoryRefreshSessions = Set<string>;
|
|
38
|
+
/** Persistent deferred history refresh from background historian/compressor publication. */
|
|
39
|
+
export type DeferredHistoryRefreshSessions = Set<string>;
|
|
38
40
|
/**
|
|
39
41
|
* One-shot: signals that the system-prompt adjuncts (project docs, user
|
|
40
42
|
* profile, key files, sticky date) should be re-read from disk on the
|
|
@@ -56,13 +58,16 @@ export type SystemPromptRefreshSessions = Set<string>;
|
|
|
56
58
|
* blocked passes until the materialization succeeds.
|
|
57
59
|
*
|
|
58
60
|
* Producers: `/ctx-flush`, real variant change, system-prompt hash change,
|
|
59
|
-
*
|
|
61
|
+
* explicit user refresh paths (flush/recomp/variant/system-prompt hash).
|
|
62
|
+
* Background historian publications use DeferredMaterializationSessions.
|
|
60
63
|
*
|
|
61
64
|
* Why historian/recomp produce here too: those publish paths queue drop
|
|
62
65
|
* ops via `queueDropsForCompartmentalizedMessages`. The next safe pass
|
|
63
66
|
* needs to materialize those queued drops or context will accumulate.
|
|
64
67
|
*/
|
|
65
68
|
export type PendingMaterializationSessions = Set<string>;
|
|
69
|
+
/** Persistent deferred drop-materialization signal from background historian publication. */
|
|
70
|
+
export type DeferredMaterializationSessions = Set<string>;
|
|
66
71
|
/**
|
|
67
72
|
* @deprecated Use `HistoryRefreshSessions`, `SystemPromptRefreshSessions`,
|
|
68
73
|
* or `PendingMaterializationSessions` directly. Kept as a type alias only
|
|
@@ -127,10 +132,12 @@ export declare function createEventHook(args: {
|
|
|
127
132
|
sessionDirectoryBySession: Map<string, string>;
|
|
128
133
|
recentReduceBySession: RecentReduceBySession;
|
|
129
134
|
toolUsageSinceUserTurn: ToolUsageSinceUserTurn;
|
|
130
|
-
/** All
|
|
135
|
+
/** All signal sets are cleaned on `session.deleted` to prevent leaks. */
|
|
131
136
|
historyRefreshSessions: HistoryRefreshSessions;
|
|
137
|
+
deferredHistoryRefreshSessions: DeferredHistoryRefreshSessions;
|
|
132
138
|
systemPromptRefreshSessions: SystemPromptRefreshSessions;
|
|
133
139
|
pendingMaterializationSessions: PendingMaterializationSessions;
|
|
140
|
+
deferredMaterializationSessions: DeferredMaterializationSessions;
|
|
134
141
|
lastHeuristicsTurnId: LastHeuristicsTurnId;
|
|
135
142
|
commitSeenLastPass?: Map<string, boolean>;
|
|
136
143
|
client: PluginContext["client"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-handlers.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/hook-handlers.ts"],"names":[],"mappings":"AAUA,OAAO,EACH,sBAAsB,EAEzB,MAAM,2CAA2C,CAAC;AAGnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"hook-handlers.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/hook-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/hook.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,12 @@ import type { MessageLike } from "./tag-messages";
|
|
|
4
4
|
export interface PreparedCompartmentInjection {
|
|
5
5
|
block: string;
|
|
6
6
|
compartmentEndMessage: number;
|
|
7
|
-
compartmentEndMessageId: string;
|
|
7
|
+
compartmentEndMessageId: string | null;
|
|
8
8
|
compartmentCount: number;
|
|
9
9
|
skippedVisibleMessages: number;
|
|
10
10
|
factCount: number;
|
|
11
11
|
memoryCount: number;
|
|
12
|
+
rebuiltFromDb: boolean;
|
|
12
13
|
}
|
|
13
14
|
export declare function clearInjectionCache(sessionId: string): void;
|
|
14
15
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-compartments.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/inject-compartments.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,2CAA2C,CAAC;AAGxF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,WAAW,4BAA4B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE,MAAM,CAAC;IAC9B,uBAAuB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"inject-compartments.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/inject-compartments.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,2CAA2C,CAAC;AAGxF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,WAAW,4BAA4B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE,MAAM,CAAC;IAC9B,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;CAC1B;AAuBD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAkBvF;AAED,MAAM,WAAW,0BAA0B;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;CAClC;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CA6BnE;AAmBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAAE,EAClB,YAAY,EAAE,MAAM,GACrB,MAAM,EAAE,CA4CV;AAED,wBAAgB,2BAA2B,CACvC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,WAAW,EAAE,EACvB,cAAc,EAAE,OAAO,EACvB,WAAW,CAAC,EAAE,MAAM,EACpB,qBAAqB,CAAC,EAAE,MAAM,EAC9B,iBAAiB,CAAC,EAAE,OAAO,GAC5B,4BAA4B,GAAG,IAAI,CAuMrC;AAED,wBAAgB,0BAA0B,CACtC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,WAAW,EAAE,EACvB,QAAQ,EAAE,4BAA4B,GACvC,0BAA0B,CAgC5B"}
|
|
@@ -4,7 +4,7 @@ import type { AgentBySession, LiveModelBySession, VariantBySession } from "./hoo
|
|
|
4
4
|
* every component that needs to share signals with the others (the magic-
|
|
5
5
|
* context hook, RPC handlers, command handlers, etc).
|
|
6
6
|
*
|
|
7
|
-
* The
|
|
7
|
+
* The `*Sessions` sets are the cache-busting signal channels added in
|
|
8
8
|
* the Oracle 2026-04-26 review (replaces the old single `flushedSessions`).
|
|
9
9
|
* See `hook-handlers.ts` for the full lifetime/semantics doc-comment on
|
|
10
10
|
* each set, and `system-prompt-hash.ts` / `transform.ts` /
|
|
@@ -20,8 +20,10 @@ export interface LiveSessionState {
|
|
|
20
20
|
variantBySession: VariantBySession;
|
|
21
21
|
agentBySession: AgentBySession;
|
|
22
22
|
historyRefreshSessions: Set<string>;
|
|
23
|
+
deferredHistoryRefreshSessions: Set<string>;
|
|
23
24
|
systemPromptRefreshSessions: Set<string>;
|
|
24
25
|
pendingMaterializationSessions: Set<string>;
|
|
26
|
+
deferredMaterializationSessions: Set<string>;
|
|
25
27
|
/**
|
|
26
28
|
* Cache of resolved session.directory values from `client.session.get(...)`.
|
|
27
29
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-session-state.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/live-session-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE5F;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC7B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;IAC/B,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,8BAA8B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C;;;;;;;;;;;OAWG;IACH,yBAAyB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClD;AAED,wBAAgB,sBAAsB,IAAI,gBAAgB,
|
|
1
|
+
{"version":3,"file":"live-session-state.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/live-session-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE5F;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC7B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;IAC/B,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,8BAA8B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,+BAA+B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C;;;;;;;;;;;OAWG;IACH,yBAAyB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClD;AAED,wBAAgB,sBAAsB,IAAI,gBAAgB,CAYzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt-hash.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/system-prompt-hash.ts"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,eAAe,EAGvB,MAAM,sCAAsC,CAAC;AAiB9C;;;;;GAKG;AACH,wBAAgB,4BAA4B,CACxC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE;IACR,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;CACnD,GACF,IAAI,CAKN;AAsED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAChD,EAAE,EAAE,eAAe,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,6FAA6F;IAC7F,UAAU,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC;;;;;;OAMG;IACH,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,kFAAkF;IAClF,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,2EAA2E;IAC3E,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,2DAA2D;IAC3D,kCAAkC,CAAC,EAAE,MAAM,CAAC;IAC5C,yFAAyF;IACzF,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;qFACiF;IACjF,kCAAkC,CAAC,EAAE,OAAO,CAAC;CAChD,GAAG;IACA,OAAO,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,
|
|
1
|
+
{"version":3,"file":"system-prompt-hash.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/system-prompt-hash.ts"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,eAAe,EAGvB,MAAM,sCAAsC,CAAC;AAiB9C;;;;;GAKG;AACH,wBAAgB,4BAA4B,CACxC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE;IACR,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;CACnD,GACF,IAAI,CAKN;AAsED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAChD,EAAE,EAAE,eAAe,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,6FAA6F;IAC7F,UAAU,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC;;;;;;OAMG;IACH,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,kFAAkF;IAClF,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,2EAA2E;IAC3E,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,2DAA2D;IAC3D,kCAAkC,CAAC,EAAE,MAAM,CAAC;IAC5C,yFAAyF;IACzF,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;qFACiF;IACjF,kCAAkC,CAAC,EAAE,OAAO,CAAC;CAChD,GAAG;IACA,OAAO,EAAE,CAAC,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,CAkZA"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Todo state synthesis — synthetic todowrite injection.
|
|
3
|
+
*
|
|
4
|
+
* Instead of inventing a custom `<current-todos>` block (which agents would
|
|
5
|
+
* need to learn to parse), we synthesize a realistic `todowrite` tool part
|
|
6
|
+
* and inject it into the latest assistant message on cache-busting passes.
|
|
7
|
+
* The agent reads it through their existing todowrite-tracking mental model:
|
|
8
|
+
* the wire shape is identical to OpenCode's stored todowrite tool parts
|
|
9
|
+
* (`{type: "tool", callID, tool: "todowrite", state: {input, output, ...}}`).
|
|
10
|
+
*
|
|
11
|
+
* Cache safety:
|
|
12
|
+
* - Snapshot capture (in hook-handlers.ts on tool.execute.after) writes DB
|
|
13
|
+
* only — no message mutation.
|
|
14
|
+
* - Injection happens in transform-postprocess-phase.ts AFTER tagging and
|
|
15
|
+
* AFTER applyPendingOperations, so the synthetic part never gets tagged
|
|
16
|
+
* and is invisible to ctx_reduce/heuristic-cleanup/auto_drop_tool_age.
|
|
17
|
+
* - The synthetic callID is deterministic (sha256(stateJson)) so a stable
|
|
18
|
+
* snapshot produces a stable wire shape across passes; on defer passes we
|
|
19
|
+
* re-inject the same part at the same anchor, idempotent via callID match.
|
|
20
|
+
*
|
|
21
|
+
* Wire shape verified against:
|
|
22
|
+
* - OpenCode source: ~/Work/OSS/opencode/packages/opencode/src/tool/todo.ts
|
|
23
|
+
* - Production OpenCode DB sample: part where data LIKE '%"tool":"todowrite"%'
|
|
24
|
+
*/
|
|
25
|
+
export interface TodoItem {
|
|
26
|
+
content: string;
|
|
27
|
+
status: string;
|
|
28
|
+
priority: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Normalize a `todowrite` args.todos array into a stable JSON string.
|
|
32
|
+
* Returns `null` if the input is not a valid todo array.
|
|
33
|
+
*
|
|
34
|
+
* Used by the snapshot capture path (`hook-handlers.ts`) to produce a
|
|
35
|
+
* deterministic representation that survives JSON round-tripping with
|
|
36
|
+
* stable field order.
|
|
37
|
+
*/
|
|
38
|
+
export declare function normalizeTodoStateJson(todos: unknown): string | null;
|
|
39
|
+
/**
|
|
40
|
+
* A synthetic OpenCode tool part matching the wire shape of a real
|
|
41
|
+
* `todowrite` tool result.
|
|
42
|
+
*
|
|
43
|
+
* NOTE — deliberate field omissions vs OpenCode `ToolPart`:
|
|
44
|
+
* - `id`, `sessionID`, `messageID`: OpenCode generates these from
|
|
45
|
+
* `Identifier.ascending(...)` for parts that originate from real tool
|
|
46
|
+
* calls and persist to the OpenCode DB. The synthetic part is
|
|
47
|
+
* transform-only (never persisted to OpenCode's DB), so these fields
|
|
48
|
+
* would be meaningless. The OpenCode wire serializer
|
|
49
|
+
* (`MessageV2.toModelMessagesEffect`) only reads `part.state.*`,
|
|
50
|
+
* `part.callID`, `part.tool`, and `part.metadata` — none of the
|
|
51
|
+
* omitted fields participate in wire serialization. Verified against
|
|
52
|
+
* ~/Work/OSS/opencode/packages/opencode/src/session/message-v2.ts:851-884.
|
|
53
|
+
*/
|
|
54
|
+
export interface SyntheticTodoPart {
|
|
55
|
+
type: "tool";
|
|
56
|
+
callID: string;
|
|
57
|
+
tool: "todowrite";
|
|
58
|
+
state: {
|
|
59
|
+
status: "completed";
|
|
60
|
+
input: {
|
|
61
|
+
todos: TodoItem[];
|
|
62
|
+
};
|
|
63
|
+
output: string;
|
|
64
|
+
title: string;
|
|
65
|
+
metadata: {
|
|
66
|
+
todos: TodoItem[];
|
|
67
|
+
truncated: false;
|
|
68
|
+
};
|
|
69
|
+
time: {
|
|
70
|
+
start: number;
|
|
71
|
+
end: number;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
/** Marker so other plugin code can detect synthetic parts and skip them. */
|
|
75
|
+
syntheticTodoMarker: true;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Build a synthetic todowrite tool part from a normalized state JSON.
|
|
79
|
+
* Returns `null` if the state is empty or all todos are terminal — in
|
|
80
|
+
* those cases the agent doesn't need a reminder.
|
|
81
|
+
*/
|
|
82
|
+
export declare function buildSyntheticTodoPart(stateJson: string): SyntheticTodoPart | null;
|
|
83
|
+
/**
|
|
84
|
+
* Compute a deterministic call_id from the snapshot JSON. Stable for stable
|
|
85
|
+
* state; identical state across passes produces identical callID, which
|
|
86
|
+
* gives byte-identical wire shape on both cache-busting and defer passes.
|
|
87
|
+
*
|
|
88
|
+
* Format chosen to clearly distinguish from real provider-generated IDs:
|
|
89
|
+
* - Anthropic: `toolu_<24 base62 chars>`
|
|
90
|
+
* - OpenAI: `call_<random>`
|
|
91
|
+
* - Synthetic: `mc_synthetic_todo_<16 hex chars>`
|
|
92
|
+
*
|
|
93
|
+
* Providers do not validate callID format — they only require matching IDs
|
|
94
|
+
* between tool_use and tool_result.
|
|
95
|
+
*/
|
|
96
|
+
export declare function computeSyntheticCallId(stateJson: string): string;
|
|
97
|
+
/**
|
|
98
|
+
* Detect whether a part is a synthetic todo part this module produced.
|
|
99
|
+
* Used to skip synthetic parts during tagging and other tool-walk passes.
|
|
100
|
+
*/
|
|
101
|
+
export declare function isSyntheticTodoPart(part: unknown): boolean;
|
|
102
|
+
//# sourceMappingURL=todo-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todo-view.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/todo-view.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,MAAM,WAAW,QAAQ;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB;AAeD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAcpE;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE;QACH,MAAM,EAAE,WAAW,CAAC;QACpB,KAAK,EAAE;YAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;SAAE,CAAC;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE;YAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YAAC,SAAS,EAAE,KAAK,CAAA;SAAE,CAAC;QAClD,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;KACxC,CAAC;IACF,4EAA4E;IAC5E,mBAAmB,EAAE,IAAI,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAkClF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAmB1D"}
|
|
@@ -19,6 +19,7 @@ interface RunCompartmentPhaseArgs {
|
|
|
19
19
|
historianChunkTokens: number;
|
|
20
20
|
historyBudgetTokens?: number;
|
|
21
21
|
historianTimeoutMs?: number;
|
|
22
|
+
fallbackModels?: readonly string[];
|
|
22
23
|
compartmentDirectory: string;
|
|
23
24
|
messages: MessageLike[];
|
|
24
25
|
pendingCompartmentInjection: PreparedCompartmentInjection | null;
|
|
@@ -26,8 +27,11 @@ interface RunCompartmentPhaseArgs {
|
|
|
26
27
|
projectPath?: string;
|
|
27
28
|
injectionBudgetTokens?: number;
|
|
28
29
|
getNotificationParams?: () => import("./send-session-notification").NotificationParams;
|
|
29
|
-
/** True when this pass is already
|
|
30
|
-
|
|
30
|
+
/** True when this pass is already safe for background compression to run. */
|
|
31
|
+
safeForBackgroundCompression?: boolean;
|
|
32
|
+
/** True when this pass is already rebuilding history; suppress standalone compressor. */
|
|
33
|
+
suppressBackgroundCompressionThisPass?: boolean;
|
|
34
|
+
deferredHistoryRefreshSessions: Set<string>;
|
|
31
35
|
/** True when transform already triggered recovery/emergency historian work this pass. */
|
|
32
36
|
skipAwaitForThisPass?: boolean;
|
|
33
37
|
/** When true, inject compaction markers into OpenCode's DB after historian publication */
|
|
@@ -48,13 +52,16 @@ interface RunCompartmentPhaseArgs {
|
|
|
48
52
|
memoryEnabled?: boolean;
|
|
49
53
|
/** Auto-promotion gate (`memory.auto_promote`). Issue #44. */
|
|
50
54
|
autoPromote?: boolean;
|
|
51
|
-
/** Forwarded to compartment runner — see CompartmentRunnerDeps.
|
|
52
|
-
|
|
55
|
+
/** Forwarded to compartment runner — see CompartmentRunnerDeps.onCompartmentStatePublished. */
|
|
56
|
+
onCompartmentStatePublished?: (sessionId: string) => void;
|
|
53
57
|
}
|
|
54
58
|
export declare function runCompartmentPhase(args: RunCompartmentPhaseArgs): Promise<{
|
|
55
59
|
pendingCompartmentInjection: PreparedCompartmentInjection | null;
|
|
56
60
|
awaitedCompartmentRun: boolean;
|
|
57
61
|
compartmentInProgress: boolean;
|
|
62
|
+
published: boolean;
|
|
63
|
+
justAwaitedPublication: boolean;
|
|
64
|
+
rebuiltHistoryThisPass: boolean;
|
|
58
65
|
}>;
|
|
59
66
|
export {};
|
|
60
67
|
//# sourceMappingURL=transform-compartment-phase.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-compartment-phase.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform-compartment-phase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,sCAAsC,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"transform-compartment-phase.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform-compartment-phase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,sCAAsC,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAYxD,OAAO,EACH,KAAK,4BAA4B,EAEpC,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAc1D,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE/D;AAED,UAAU,uBAAuB;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE;QAAE,qBAAqB,EAAE,OAAO,CAAA;KAAE,CAAC;IAChD,YAAY,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,EAAE,EAAE,eAAe,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,2BAA2B,EAAE,4BAA4B,GAAG,IAAI,CAAC;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,OAAO,6BAA6B,EAAE,kBAAkB,CAAC;IACvF,6EAA6E;IAC7E,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,yFAAyF;IACzF,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD,8BAA8B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,yFAAyF;IACzF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,0FAA0F;IAC1F,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,0EAA0E;IAC1E,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,+EAA+E;IAC/E,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kFAAkF;IAClF,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,yFAAyF;IACzF,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+FAA+F;IAC/F,2BAA2B,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7D;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC;IAC9E,2BAA2B,EAAE,4BAA4B,GAAG,IAAI,CAAC;IACjE,qBAAqB,EAAE,OAAO,CAAC;IAC/B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,sBAAsB,EAAE,OAAO,CAAC;IAChC,sBAAsB,EAAE,OAAO,CAAC;CACnC,CAAC,CAyQD"}
|
|
@@ -4,4 +4,26 @@ export declare function findLastUserMessageId(messages: MessageLike[]): string |
|
|
|
4
4
|
export declare function appendReminderToLatestUserMessage(messages: MessageLike[], reminder: string): string | null;
|
|
5
5
|
export declare function appendReminderToUserMessageById(messages: MessageLike[], messageId: string, reminder: string): boolean;
|
|
6
6
|
export declare function countMessagesSinceLastUser(messages: MessageLike[]): number;
|
|
7
|
+
/**
|
|
8
|
+
* Inject a tool part into the latest assistant message that has an ID.
|
|
9
|
+
*
|
|
10
|
+
* Idempotent on `callID` — if a part with the same `callID` already exists,
|
|
11
|
+
* this is a no-op so defer-pass replays produce byte-identical output.
|
|
12
|
+
*
|
|
13
|
+
* Returns the message ID where the part landed, or `null` if no eligible
|
|
14
|
+
* assistant message exists in the visible window.
|
|
15
|
+
*/
|
|
16
|
+
export declare function injectToolPartIntoLatestAssistant(messages: MessageLike[], part: {
|
|
17
|
+
callID: string;
|
|
18
|
+
}): string | null;
|
|
19
|
+
/**
|
|
20
|
+
* Inject a tool part into the assistant message with the given ID.
|
|
21
|
+
*
|
|
22
|
+
* Idempotent on `callID`. Returns `true` if the message exists and the part
|
|
23
|
+
* is present after the call, `false` if the anchor message is not in the
|
|
24
|
+
* visible window.
|
|
25
|
+
*/
|
|
26
|
+
export declare function injectToolPartIntoAssistantById(messages: MessageLike[], messageId: string, part: {
|
|
27
|
+
callID: string;
|
|
28
|
+
}): boolean;
|
|
7
29
|
//# sourceMappingURL=transform-message-helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-message-helpers.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform-message-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAW1D,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,IAAI,CAUpE;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,IAAI,CAS5E;AAED,wBAAgB,iCAAiC,CAC7C,QAAQ,EAAE,WAAW,EAAE,EACvB,QAAQ,EAAE,MAAM,GACjB,MAAM,GAAG,IAAI,CAYf;AAED,wBAAgB,+BAA+B,CAC3C,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAWT;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAO1E"}
|
|
1
|
+
{"version":3,"file":"transform-message-helpers.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform-message-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAW1D,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,IAAI,CAUpE;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,IAAI,CAS5E;AAED,wBAAgB,iCAAiC,CAC7C,QAAQ,EAAE,WAAW,EAAE,EACvB,QAAQ,EAAE,MAAM,GACjB,MAAM,GAAG,IAAI,CAYf;AAED,wBAAgB,+BAA+B,CAC3C,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAWT;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAO1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAC7C,QAAQ,EAAE,WAAW,EAAE,EACvB,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GACzB,MAAM,GAAG,IAAI,CAaf;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC3C,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GACzB,OAAO,CAST"}
|
|
@@ -4,6 +4,7 @@ import { type PreparedCompartmentInjection } from "./inject-compartments";
|
|
|
4
4
|
import type { NudgePlacementStore } from "./nudge-placement-store";
|
|
5
5
|
import type { ContextNudge } from "./nudger";
|
|
6
6
|
import { type MessageLike, type TagTarget } from "./transform-operations";
|
|
7
|
+
export declare function resetDegradedCacheCount(sessionId: string): void;
|
|
7
8
|
interface RunPostTransformPhaseArgs {
|
|
8
9
|
sessionId: string;
|
|
9
10
|
db: ContextDatabase;
|
|
@@ -27,7 +28,13 @@ interface RunPostTransformPhaseArgs {
|
|
|
27
28
|
fullFeatureMode: boolean;
|
|
28
29
|
canRunCompartments: boolean;
|
|
29
30
|
awaitedCompartmentRun: boolean;
|
|
31
|
+
phaseJustAwaitedPublication: boolean;
|
|
30
32
|
compartmentInProgress: boolean;
|
|
33
|
+
historyRefreshExplicitBeforePrepare: boolean;
|
|
34
|
+
compartmentInjectionRebuiltFromDb: boolean;
|
|
35
|
+
rebuiltHistoryFromInitialPrepare: boolean;
|
|
36
|
+
historyRebuiltThisPass: boolean;
|
|
37
|
+
canConsumeDeferredLate: boolean;
|
|
31
38
|
sessionMeta: SessionMeta;
|
|
32
39
|
currentTurnId: string | null;
|
|
33
40
|
/**
|
|
@@ -38,6 +45,8 @@ interface RunPostTransformPhaseArgs {
|
|
|
38
45
|
* reason for the three-set split (see Oracle review 2026-04-26).
|
|
39
46
|
*/
|
|
40
47
|
pendingMaterializationSessions: Set<string>;
|
|
48
|
+
deferredHistoryRefreshSessions: Set<string>;
|
|
49
|
+
deferredMaterializationSessions: Set<string>;
|
|
41
50
|
lastHeuristicsTurnId: Map<string, string>;
|
|
42
51
|
autoDropToolAge: number;
|
|
43
52
|
dropToolStructure: boolean;
|
|
@@ -54,6 +63,7 @@ interface RunPostTransformPhaseArgs {
|
|
|
54
63
|
forceMaterializationPercentage: number;
|
|
55
64
|
hasRecentReduceCall: boolean;
|
|
56
65
|
projectPath?: string;
|
|
66
|
+
sessionDirectory?: string;
|
|
57
67
|
/** Experimental auto-search: when enabled, runs ctx_search on the latest
|
|
58
68
|
* user prompt and appends a compact fragment hint. */
|
|
59
69
|
autoSearch?: {
|
|
@@ -81,6 +91,10 @@ interface RunPostTransformPhaseArgs {
|
|
|
81
91
|
*/
|
|
82
92
|
liveProviderID?: string;
|
|
83
93
|
}
|
|
84
|
-
export
|
|
94
|
+
export interface PostTransformPhaseResult {
|
|
95
|
+
explicitMaterializedSuccessfully: boolean;
|
|
96
|
+
deferredMaterializedSuccessfully: boolean;
|
|
97
|
+
}
|
|
98
|
+
export declare function runPostTransformPhase(args: RunPostTransformPhaseArgs): Promise<PostTransformPhaseResult>;
|
|
85
99
|
export {};
|
|
86
100
|
//# sourceMappingURL=transform-postprocess-phase.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-postprocess-phase.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform-postprocess-phase.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"transform-postprocess-phase.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform-postprocess-phase.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,12 +46,14 @@ export interface TransformDeps {
|
|
|
46
46
|
* See Oracle review 2026-04-26 for the three-set split rationale.
|
|
47
47
|
*/
|
|
48
48
|
historyRefreshSessions: Set<string>;
|
|
49
|
+
deferredHistoryRefreshSessions?: Set<string>;
|
|
49
50
|
/**
|
|
50
51
|
* Persistent signal that pending ops + heuristics need to materialize.
|
|
51
52
|
* Survives across defer passes when `compartmentRunning` blocks the
|
|
52
53
|
* heuristic pass. Drained only after `shouldRunHeuristics` succeeds.
|
|
53
54
|
*/
|
|
54
55
|
pendingMaterializationSessions: Set<string>;
|
|
56
|
+
deferredMaterializationSessions?: Set<string>;
|
|
55
57
|
lastHeuristicsTurnId: Map<string, string>;
|
|
56
58
|
commitSeenLastPass?: Map<string, boolean>;
|
|
57
59
|
client?: PluginContext["client"];
|
|
@@ -81,6 +83,8 @@ export interface TransformDeps {
|
|
|
81
83
|
[modelKey: string]: number | undefined;
|
|
82
84
|
};
|
|
83
85
|
historianTimeoutMs?: number;
|
|
86
|
+
/** Resolved fallback chain for historian-family calls. */
|
|
87
|
+
fallbackModels?: readonly string[];
|
|
84
88
|
getNotificationParams?: (sessionId: string) => import("./send-session-notification").NotificationParams;
|
|
85
89
|
getModelKey?: (sessionId: string) => string | undefined;
|
|
86
90
|
getFallbackModelId?: (sessionId: string) => string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAExE,OAAO,EACH,KAAK,eAAe,EAMpB,KAAK,aAAa,EAErB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAExE,OAAO,EACH,KAAK,eAAe,EAMpB,KAAK,aAAa,EAErB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAexD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA6B7C,OAAO,EAAE,yBAAyB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAS9F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AA+B1D,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAOnF;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC1C,SAAS,EAAE,MAAM,GAClB,GAAG,CAAC,MAAM,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAEzD;AAwBD,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,MAAM,EAAE,CACJ,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,EAC1B,EAAE,EAAE,eAAe,EACnB,MAAM,EAAE,OAAO,aAAa,EAC5B,aAAa,CAAC,EAAE,QAAQ,EAAE,EAC1B,qBAAqB,CAAC,EAAE,MAAM,EAC9B,oBAAoB,CAAC,EAAE,OAAO,oCAAoC,EAAE,WAAW,KAC9E,YAAY,GAAG,IAAI,CAAC;IACzB,EAAE,EAAE,eAAe,CAAC;IACpB,eAAe,EAAE,mBAAmB,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,8BAA8B,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C;;;;OAIG;IACH,8BAA8B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,+BAA+B,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9C,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,qBAAqB,EAAE,MAAM,CAAC;QAC9B;;iFAEyE;QACzE,WAAW,EAAE,OAAO,CAAC;KACxB,CAAC;IACF;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,MAAM,MAAM,CAAC;IACvC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,0BAA0B,CAAC,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACtF,sBAAsB,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACtF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,qBAAqB,CAAC,EAAE,CACpB,SAAS,EAAE,MAAM,KAChB,OAAO,6BAA6B,EAAE,kBAAkB,CAAC;IAC9D,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACxD,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;kEAE8D;IAC9D,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC;yFACqF;IACrF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;mEAC+D;IAC/D,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,2FAA2F;IAC3F,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,0FAA0F;IAC1F,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC;;;;;OAKG;IACH,yBAAyB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD;;;+CAG2C;IAC3C,UAAU,CAAC,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,OAAO,CAAC;QACvB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,iBAAiB,EAAE,OAAO,CAAC;KAC9B,CAAC;IACF;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE;QACrB,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC;CACL;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,IAQ3C,QAAQ,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC7B,QAAQ;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;CAAE,KAChC,OAAO,CAAC,IAAI,CAAC,CA0hCnB"}
|