@cortexkit/opencode-magic-context 0.12.0 → 0.13.1
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 +3 -1
- package/dist/agents/historian.d.ts +1 -0
- package/dist/agents/historian.d.ts.map +1 -1
- package/dist/agents/magic-context-prompt.d.ts +1 -1
- package/dist/agents/magic-context-prompt.d.ts.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/prompts.d.ts.map +1 -1
- package/dist/cli.js +362 -83
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/schema/magic-context.d.ts +103 -2
- package/dist/config/schema/magic-context.d.ts.map +1 -1
- package/dist/config/variable.d.ts +46 -0
- package/dist/config/variable.d.ts.map +1 -0
- package/dist/features/magic-context/compartment-storage.d.ts +27 -1
- package/dist/features/magic-context/compartment-storage.d.ts.map +1 -1
- package/dist/features/magic-context/compression-depth-storage.d.ts +7 -0
- package/dist/features/magic-context/compression-depth-storage.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-probe.d.ts +69 -0
- package/dist/features/magic-context/memory/embedding-probe.d.ts.map +1 -0
- package/dist/features/magic-context/storage-db.d.ts.map +1 -1
- package/dist/hooks/magic-context/caveman.d.ts +35 -0
- package/dist/hooks/magic-context/caveman.d.ts.map +1 -0
- package/dist/hooks/magic-context/command-handler.d.ts +23 -1
- package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-prompt.d.ts +8 -3
- package/dist/hooks/magic-context/compartment-prompt.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-compressor.d.ts +46 -0
- package/dist/hooks/magic-context/compartment-runner-compressor.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-historian.d.ts +10 -0
- package/dist/hooks/magic-context/compartment-runner-historian.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-partial-recomp.d.ts +29 -0
- package/dist/hooks/magic-context/compartment-runner-partial-recomp.d.ts.map +1 -0
- package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-types.d.ts +9 -0
- package/dist/hooks/magic-context/compartment-runner-types.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-validation.d.ts +5 -0
- package/dist/hooks/magic-context/compartment-runner-validation.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner.d.ts +31 -1
- package/dist/hooks/magic-context/compartment-runner.d.ts.map +1 -1
- package/dist/hooks/magic-context/hook.d.ts +9 -4
- package/dist/hooks/magic-context/hook.d.ts.map +1 -1
- package/dist/hooks/magic-context/inject-compartments.d.ts +1 -1
- package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
- package/dist/hooks/magic-context/read-session-chunk.d.ts +11 -0
- package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
- package/dist/hooks/magic-context/read-session-db.d.ts +13 -0
- package/dist/hooks/magic-context/read-session-db.d.ts.map +1 -1
- package/dist/hooks/magic-context/read-session-formatting.d.ts +7 -0
- package/dist/hooks/magic-context/read-session-formatting.d.ts.map +1 -1
- package/dist/hooks/magic-context/system-prompt-hash.d.ts +2 -0
- package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
- package/dist/hooks/magic-context/temporal-awareness.d.ts +73 -0
- package/dist/hooks/magic-context/temporal-awareness.d.ts.map +1 -0
- package/dist/hooks/magic-context/transform-compartment-phase.d.ts +10 -0
- package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform.d.ts +14 -0
- package/dist/hooks/magic-context/transform.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2415 -1064
- package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
- package/dist/shared/model-requirements.d.ts.map +1 -1
- package/dist/shared/models-dev-cache.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/shared/model-requirements.ts +3 -1
- package/src/shared/models-dev-cache.ts +11 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { Compartment } from "../../features/magic-context/compartment-storage";
|
|
2
3
|
import type { PluginContext } from "../../plugin/types";
|
|
3
4
|
export interface CompressorDeps {
|
|
4
5
|
client: PluginContext["client"];
|
|
@@ -7,10 +8,55 @@ export interface CompressorDeps {
|
|
|
7
8
|
directory: string;
|
|
8
9
|
historyBudgetTokens: number;
|
|
9
10
|
historianTimeoutMs?: number;
|
|
11
|
+
/** Floor = ceil(lastEndMessage / minCompartmentRatio). Default 1000. */
|
|
12
|
+
minCompartmentRatio?: number;
|
|
13
|
+
/** Maximum depth any compartment range can be compressed to. Default 5. */
|
|
14
|
+
maxMergeDepth?: number;
|
|
15
|
+
/** Cap on compartments sent to the LLM in one pass. Default 15. */
|
|
16
|
+
maxCompartmentsPerPass?: number;
|
|
17
|
+
/** Newest compartments always excluded from compression. Default 10. */
|
|
18
|
+
graceCompartments?: number;
|
|
19
|
+
}
|
|
20
|
+
interface ScoredCompartment {
|
|
21
|
+
compartment: Compartment;
|
|
22
|
+
index: number;
|
|
23
|
+
tokenEstimate: number;
|
|
24
|
+
averageDepth: number;
|
|
25
|
+
score: number;
|
|
10
26
|
}
|
|
11
27
|
/**
|
|
12
28
|
* Check if the compartment block exceeds the history budget and run a compression pass if needed.
|
|
13
29
|
* Returns true if compression ran successfully, false otherwise.
|
|
14
30
|
*/
|
|
15
31
|
export declare function runCompressionPassIfNeeded(deps: CompressorDeps): Promise<boolean>;
|
|
32
|
+
interface SelectionConstraints {
|
|
33
|
+
/** Max compartments to pick per pass (LLM batch cap). */
|
|
34
|
+
maxPickable: number;
|
|
35
|
+
/** Max compression depth a compartment range can reach. */
|
|
36
|
+
maxMergeDepth: number;
|
|
37
|
+
/** Number of newest compartments always excluded (grace period). */
|
|
38
|
+
graceCompartments: number;
|
|
39
|
+
/** compartments.length - floor; we can't reduce below this without violating floor. */
|
|
40
|
+
floorHeadroom: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Find the oldest contiguous band of compartments that share the same rounded depth.
|
|
44
|
+
*
|
|
45
|
+
* Strategy: scan oldest→newest (low index first). Skip compartments at max depth,
|
|
46
|
+
* and skip the newest `graceCompartments` (grace period). Within the remaining
|
|
47
|
+
* scope, find the oldest run of 2+ consecutive compartments with the SAME rounded
|
|
48
|
+
* averageDepth. This keeps per-pass work uniform (same LLM prompt tier for all
|
|
49
|
+
* inputs) and naturally progresses: depth 0 bands get compressed first, producing
|
|
50
|
+
* depth 1 bands, which compress next, etc.
|
|
51
|
+
*
|
|
52
|
+
* Constraints:
|
|
53
|
+
* - Skip compartments with averageDepth >= maxMergeDepth (already maxed out).
|
|
54
|
+
* - Skip the newest graceCompartments (never compress fresh work).
|
|
55
|
+
* - Cap picks at maxPickable to avoid huge LLM inputs.
|
|
56
|
+
* - Cap picks at floorHeadroom to avoid violating min-compartment floor. Each
|
|
57
|
+
* merge reduces count by (input - output), so limiting picks to floorHeadroom
|
|
58
|
+
* guarantees we can't fall below floor even in the worst case (output = 1).
|
|
59
|
+
*/
|
|
60
|
+
export declare function findOldestContiguousSameDepthBand(scored: ScoredCompartment[], constraints: SelectionConstraints): ScoredCompartment[];
|
|
61
|
+
export {};
|
|
16
62
|
//# sourceMappingURL=compartment-runner-compressor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compartment-runner-compressor.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-compressor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"compartment-runner-compressor.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-compressor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAS3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAQpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAaxD,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,EAAE,EAAE,QAAQ,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAaD,UAAU,iBAAiB;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAqKvF;AAoCD,UAAU,oBAAoB;IAC1B,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uFAAuF;IACvF,aAAa,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iCAAiC,CAC7C,MAAM,EAAE,iBAAiB,EAAE,EAC3B,WAAW,EAAE,oBAAoB,GAClC,iBAAiB,EAAE,CA6CrB"}
|
|
@@ -12,6 +12,12 @@ export declare function runValidatedHistorianPass(args: {
|
|
|
12
12
|
ordinal: number;
|
|
13
13
|
messageId: string;
|
|
14
14
|
}>;
|
|
15
|
+
/** Tool-only ordinal ranges — passed through to validator so gaps
|
|
16
|
+
* inside these ranges heal regardless of size. */
|
|
17
|
+
toolOnlyRanges?: ReadonlyArray<{
|
|
18
|
+
start: number;
|
|
19
|
+
end: number;
|
|
20
|
+
}>;
|
|
15
21
|
};
|
|
16
22
|
priorCompartments: StoredCompartmentRange[];
|
|
17
23
|
sequenceOffset: number;
|
|
@@ -19,5 +25,9 @@ export declare function runValidatedHistorianPass(args: {
|
|
|
19
25
|
timeoutMs?: number;
|
|
20
26
|
fallbackModelId?: string;
|
|
21
27
|
callbacks?: HistorianProgressCallbacks;
|
|
28
|
+
/** When true, run a second editor pass after successful historian output
|
|
29
|
+
* to clean low-signal U: lines and cross-compartment duplicates. If editor
|
|
30
|
+
* validation fails, falls back to the draft (first-pass) result. */
|
|
31
|
+
twoPass?: boolean;
|
|
22
32
|
}): Promise<ValidatedHistorianPassResult>;
|
|
23
33
|
//# sourceMappingURL=compartment-runner-historian.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compartment-runner-historian.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-historian.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"compartment-runner-historian.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-historian.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKxD,OAAO,KAAK,EACR,0BAA0B,EAE1B,sBAAsB,EACtB,4BAA4B,EAC/B,MAAM,4BAA4B,CAAC;AAiBpC,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IAClD,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QACH,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACrD;2DACmD;QACnD,cAAc,CAAC,EAAE,aAAa,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClE,CAAC;IACF,iBAAiB,EAAE,sBAAsB,EAAE,CAAC;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC;;yEAEqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAkFxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compartment-runner-incremental.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-incremental.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAoBxE,+DAA+D;AAC/D,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEhE;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"compartment-runner-incremental.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-incremental.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAoBxE,+DAA+D;AAC/D,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEhE;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+NpF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Compartment } from "../../features/magic-context/compartment-storage";
|
|
2
|
+
import type { CompartmentRunnerDeps } from "./compartment-runner-types";
|
|
3
|
+
export interface PartialRecompRange {
|
|
4
|
+
/** Inclusive raw message ordinal to start rebuilding from. */
|
|
5
|
+
start: number;
|
|
6
|
+
/** Inclusive raw message ordinal to stop rebuilding at. */
|
|
7
|
+
end: number;
|
|
8
|
+
}
|
|
9
|
+
export interface SnappedPartialRange {
|
|
10
|
+
/** Snapped start = first enclosing compartment's startMessage. */
|
|
11
|
+
snapStart: number;
|
|
12
|
+
/** Snapped end = last enclosing compartment's endMessage. */
|
|
13
|
+
snapEnd: number;
|
|
14
|
+
priorCompartments: Compartment[];
|
|
15
|
+
rangeCompartments: Compartment[];
|
|
16
|
+
tailCompartments: Compartment[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Preview-only snap computation. Shown in the first-tap confirmation warning so
|
|
20
|
+
* the user sees which compartments will be replaced before executing.
|
|
21
|
+
*
|
|
22
|
+
* Returns an error string when the requested range cannot be snapped (e.g. no
|
|
23
|
+
* compartments exist yet, or the range is entirely after the last compartment).
|
|
24
|
+
*/
|
|
25
|
+
export declare function snapRangeToCompartments(compartments: Compartment[], range: PartialRecompRange): SnappedPartialRange | {
|
|
26
|
+
error: string;
|
|
27
|
+
};
|
|
28
|
+
export declare function executePartialRecompInternal(deps: CompartmentRunnerDeps, range: PartialRecompRange): Promise<string>;
|
|
29
|
+
//# sourceMappingURL=compartment-runner-partial-recomp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compartment-runner-partial-recomp.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-partial-recomp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,WAAW,EAEd,MAAM,kDAAkD,CAAC;AAqB1D,OAAO,KAAK,EAAwB,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAU9F,MAAM,WAAW,kBAAkB;IAC/B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAChC,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,WAAW,EAAE,CAAC;IACjC,iBAAiB,EAAE,WAAW,EAAE,CAAC;IACjC,gBAAgB,EAAE,WAAW,EAAE,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACnC,YAAY,EAAE,WAAW,EAAE,EAC3B,KAAK,EAAE,kBAAkB,GAC1B,mBAAmB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA2CzC;AAcD,wBAAsB,4BAA4B,CAC9C,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,kBAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAkWjB"}
|
|
@@ -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":"AAoBA,OAAO,KAAK,EAAwB,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAc9F,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2T/F"}
|
|
@@ -20,6 +20,15 @@ export interface CompartmentRunnerDeps {
|
|
|
20
20
|
experimentalCompactionMarkers?: boolean;
|
|
21
21
|
/** When true, extract user behavior observations from historian output */
|
|
22
22
|
experimentalUserMemories?: boolean;
|
|
23
|
+
/** When true, inject wall-clock dates on compartments in <session-history>. */
|
|
24
|
+
experimentalTemporalAwareness?: boolean;
|
|
25
|
+
/** When true, run an editor pass after successful historian output to clean
|
|
26
|
+
* low-signal U: lines and cross-compartment duplicates. */
|
|
27
|
+
historianTwoPass?: boolean;
|
|
28
|
+
/** Compressor floor ratio: floor = ceil(lastEndMessage / minCompartmentRatio). */
|
|
29
|
+
compressorMinCompartmentRatio?: number;
|
|
30
|
+
/** Compressor max merge depth (1-5). Compartments at or above this depth are skipped. */
|
|
31
|
+
compressorMaxMergeDepth?: number;
|
|
23
32
|
}
|
|
24
33
|
export interface CandidateCompartment {
|
|
25
34
|
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,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,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;
|
|
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,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,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;CACpC;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"}
|
|
@@ -6,6 +6,11 @@ export declare function validateHistorianOutput(text: string, _sessionId: string
|
|
|
6
6
|
ordinal: number;
|
|
7
7
|
messageId: string;
|
|
8
8
|
}>;
|
|
9
|
+
/** Optional — when provided, gaps inside these ranges heal at any size. */
|
|
10
|
+
toolOnlyRanges?: ReadonlyArray<{
|
|
11
|
+
start: number;
|
|
12
|
+
end: number;
|
|
13
|
+
}>;
|
|
9
14
|
}, _priorCompartments: StoredCompartmentRange[], sequenceOffset: number): ValidatedHistorianPassResult;
|
|
10
15
|
export declare function buildHistorianRepairPrompt(originalPrompt: string, previousOutput: string, validationError: string): string;
|
|
11
16
|
export declare function validateStoredCompartments(compartments: Array<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compartment-runner-validation.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,sBAAsB,EACtB,4BAA4B,EAC/B,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"compartment-runner-validation.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,sBAAsB,EACtB,4BAA4B,EAC/B,MAAM,4BAA4B,CAAC;AAmDpC,wBAAgB,uBAAuB,CACnC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,2EAA2E;IAC3E,cAAc,CAAC,EAAE,aAAa,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE,EACD,kBAAkB,EAAE,sBAAsB,EAAE,EAC5C,cAAc,EAAE,MAAM,GACvB,4BAA4B,CAyC9B;AAED,wBAAgB,0BAA0B,CACtC,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GACxB,MAAM,CAaR;AAED,wBAAgB,0BAA0B,CACtC,YAAY,EAAE,KAAK,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,GAClE,MAAM,GAAG,IAAI,CAoBf;AAgDD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrC,GAAG,MAAM,GAAG,IAAI,CAkBhB;AAED,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGhF"}
|
|
@@ -1,6 +1,36 @@
|
|
|
1
|
+
import { type PartialRecompRange } from "./compartment-runner-partial-recomp";
|
|
1
2
|
import type { CompartmentRunnerDeps } from "./compartment-runner-types";
|
|
2
3
|
export declare function getActiveCompartmentRun(sessionId: string): Promise<void> | undefined;
|
|
4
|
+
/**
|
|
5
|
+
* Register a compartment-state-mutating promise with the active-runs map.
|
|
6
|
+
*
|
|
7
|
+
* Use this to serialize background compressor runs against historian/recomp
|
|
8
|
+
* runs: both read-modify-write compartment rows, and while SQLite serializes
|
|
9
|
+
* individual statements it does NOT serialize multi-step update cycles. If a
|
|
10
|
+
* historian starts while a background compressor is still running, either
|
|
11
|
+
* side's final write can overwrite the other's work.
|
|
12
|
+
*
|
|
13
|
+
* The registered promise is cleared from activeRuns on settle so later passes
|
|
14
|
+
* can start a new run. If a run is already registered for the session, the
|
|
15
|
+
* caller is expected to have checked getActiveCompartmentRun() first and
|
|
16
|
+
* bailed — this function will overwrite silently if called anyway, which is
|
|
17
|
+
* the desired behavior for the retry path.
|
|
18
|
+
*/
|
|
19
|
+
export declare function registerActiveCompartmentRun(sessionId: string, promise: Promise<void>): void;
|
|
3
20
|
export declare function startCompartmentAgent(deps: CompartmentRunnerDeps): void;
|
|
4
|
-
export
|
|
21
|
+
export interface ExecuteContextRecompOptions {
|
|
22
|
+
/**
|
|
23
|
+
* Optional partial range (inclusive raw message ordinals). When provided,
|
|
24
|
+
* runs partial recomp — snaps to enclosing compartment boundaries and
|
|
25
|
+
* rebuilds only the matching compartments, preserving prior/tail
|
|
26
|
+
* compartments and all session facts.
|
|
27
|
+
*
|
|
28
|
+
* When omitted, runs full recomp from message 1 to the protected tail,
|
|
29
|
+
* replacing all compartments and facts.
|
|
30
|
+
*/
|
|
31
|
+
range?: PartialRecompRange;
|
|
32
|
+
}
|
|
33
|
+
export declare function executeContextRecomp(deps: CompartmentRunnerDeps, options?: ExecuteContextRecompOptions): Promise<string>;
|
|
5
34
|
export { runCompartmentAgent } from "./compartment-runner-incremental";
|
|
35
|
+
export type { PartialRecompRange } from "./compartment-runner-partial-recomp";
|
|
6
36
|
//# sourceMappingURL=compartment-runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compartment-runner.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner.ts"],"names":[],"mappings":"
|
|
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;AAIxE,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAEpF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAS5F;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CA0BvE;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,CAsBjB;AAED,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { AgentOverrideConfigSchema } from "../../config/schema/agent-overrides";
|
|
3
|
-
import { type DreamerConfig, type SidekickConfig } from "../../config/schema/magic-context";
|
|
1
|
+
import { type DreamerConfig, type HistorianConfig, type SidekickConfig } from "../../config/schema/magic-context";
|
|
4
2
|
import type { createCompactionHandler } from "../../features/magic-context/compaction";
|
|
5
3
|
import type { Scheduler } from "../../features/magic-context/scheduler";
|
|
6
4
|
import type { Tagger } from "../../features/magic-context/tagger";
|
|
@@ -32,7 +30,7 @@ export interface MagicContextDeps {
|
|
|
32
30
|
[modelKey: string]: number | undefined;
|
|
33
31
|
};
|
|
34
32
|
cache_ttl: string | Record<string, string>;
|
|
35
|
-
historian?:
|
|
33
|
+
historian?: HistorianConfig;
|
|
36
34
|
history_budget_percentage?: number;
|
|
37
35
|
historian_timeout_ms?: number;
|
|
38
36
|
memory?: {
|
|
@@ -46,6 +44,12 @@ export interface MagicContextDeps {
|
|
|
46
44
|
min_clusters: number;
|
|
47
45
|
};
|
|
48
46
|
compaction_markers?: boolean;
|
|
47
|
+
compressor?: {
|
|
48
|
+
enabled: boolean;
|
|
49
|
+
min_compartment_ratio: number;
|
|
50
|
+
max_merge_depth: number;
|
|
51
|
+
cooldown_ms: number;
|
|
52
|
+
};
|
|
49
53
|
experimental?: {
|
|
50
54
|
user_memories?: {
|
|
51
55
|
enabled: boolean;
|
|
@@ -56,6 +60,7 @@ export interface MagicContextDeps {
|
|
|
56
60
|
token_budget: number;
|
|
57
61
|
min_reads: number;
|
|
58
62
|
};
|
|
63
|
+
temporal_awareness?: boolean;
|
|
59
64
|
};
|
|
60
65
|
};
|
|
61
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/hook.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,6 @@ export interface CompartmentInjectionResult {
|
|
|
18
18
|
skippedVisibleMessages: number;
|
|
19
19
|
}
|
|
20
20
|
export declare function renderMemoryBlock(memories: Memory[]): string | null;
|
|
21
|
-
export declare function prepareCompartmentInjection(db: Database, sessionId: string, messages: MessageLike[], isCacheBusting: boolean, projectPath?: string, injectionBudgetTokens?: number): PreparedCompartmentInjection | null;
|
|
21
|
+
export declare function prepareCompartmentInjection(db: Database, sessionId: string, messages: MessageLike[], isCacheBusting: boolean, projectPath?: string, injectionBudgetTokens?: number, temporalAwareness?: boolean): PreparedCompartmentInjection | null;
|
|
22
22
|
export declare function renderCompartmentInjection(sessionId: string, messages: MessageLike[], prepared: PreparedCompartmentInjection): CompartmentInjectionResult;
|
|
23
23
|
//# sourceMappingURL=inject-compartments.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-compartments.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/inject-compartments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"inject-compartments.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/inject-compartments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAU3C,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,2CAA2C,CAAC;AAIxF,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;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACvB;AAWD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE3D;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;AAoFD,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,CA4KrC;AAED,wBAAgB,0BAA0B,CACtC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,WAAW,EAAE,EACvB,QAAQ,EAAE,4BAA4B,GACvC,0BAA0B,CAgC5B"}
|
|
@@ -15,6 +15,17 @@ export interface SessionChunk {
|
|
|
15
15
|
lines: SessionChunkLine[];
|
|
16
16
|
/** Number of distinct commit clusters — assistant blocks with commits separated by meaningful user turns */
|
|
17
17
|
commitClusterCount: number;
|
|
18
|
+
/**
|
|
19
|
+
* Contiguous ranges of raw message ordinals whose visible chunk content was
|
|
20
|
+
* tool-only (TC: lines, no narrative text). Historian frequently skips such
|
|
21
|
+
* ranges entirely — that's safe, so validation absorbs gaps that fall fully
|
|
22
|
+
* within these ranges regardless of size. Gaps outside these ranges still
|
|
23
|
+
* fail validation and trigger a repair retry.
|
|
24
|
+
*/
|
|
25
|
+
toolOnlyRanges: Array<{
|
|
26
|
+
start: number;
|
|
27
|
+
end: number;
|
|
28
|
+
}>;
|
|
18
29
|
}
|
|
19
30
|
export declare function withRawSessionMessageCache<T>(fn: () => T): T;
|
|
20
31
|
export declare function readRawSessionMessages(sessionId: string): RawMessage[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-session-chunk.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/read-session-chunk.ts"],"names":[],"mappings":"AAGA,OAAO,EAWH,KAAK,gBAAgB,EACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,UAAU,EAAgC,MAAM,oBAAoB,CAAC;AAGnF,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAIhF,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,MAAM,WAAW,YAAY;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,4GAA4G;IAC5G,kBAAkB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"read-session-chunk.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/read-session-chunk.ts"],"names":[],"mappings":"AAGA,OAAO,EAWH,KAAK,gBAAgB,EACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,UAAU,EAAgC,MAAM,oBAAoB,CAAC;AAGnF,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAIhF,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,MAAM,WAAW,YAAY;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,4GAA4G;IAC5G,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,cAAc,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzD;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAa5D;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE,CAatE;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBjG;AAID,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAWtE;AAED,wBAAgB,gBAAgB,CAC5B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,MAAU,EAClB,kBAAkB,CAAC,EAAE,MAAM,GAC5B,YAAY,CA+Ld;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAK9F"}
|
|
@@ -2,4 +2,17 @@ import { Database } from "bun:sqlite";
|
|
|
2
2
|
export declare function withReadOnlySessionDb<T>(fn: (db: Database) => T): T;
|
|
3
3
|
export declare function closeReadOnlySessionDb(): void;
|
|
4
4
|
export declare function getRawSessionMessageCountFromDb(db: Database, sessionId: string): number;
|
|
5
|
+
/**
|
|
6
|
+
* Resolve `time_created` (ms since epoch) for a set of OpenCode message IDs.
|
|
7
|
+
* Returns a Map keyed by message ID. Missing IDs are simply omitted.
|
|
8
|
+
*
|
|
9
|
+
* Used by temporal-awareness to map compartment start/end message IDs to
|
|
10
|
+
* wall-clock dates for the `start="YYYY-MM-DD"` / `end="YYYY-MM-DD"` attrs
|
|
11
|
+
* on the `<compartment>` elements in `<session-history>`.
|
|
12
|
+
*/
|
|
13
|
+
export declare function getMessageTimesFromOpenCodeDb(sessionId: string, messageIds: readonly string[]): Map<string, number>;
|
|
14
|
+
export declare function findLastAssistantModelFromOpenCodeDb(sessionId: string): {
|
|
15
|
+
providerID: string;
|
|
16
|
+
modelID: string;
|
|
17
|
+
} | null;
|
|
5
18
|
//# sourceMappingURL=read-session-db.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-session-db.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/read-session-db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAyCtC,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,CAAC,GAAG,CAAC,CAEnE;AAGD,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAYvF"}
|
|
1
|
+
{"version":3,"file":"read-session-db.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/read-session-db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAyCtC,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,CAAC,GAAG,CAAC,CAEnE;AAGD,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAYvF;AAoBD;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CACzC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,SAAS,MAAM,EAAE,GAC9B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAyBrB;AAED,wBAAgB,oCAAoC,CAChD,SAAS,EAAE,MAAM,GAClB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAyBhD"}
|
|
@@ -9,6 +9,13 @@ export interface ChunkBlock {
|
|
|
9
9
|
parts: string[];
|
|
10
10
|
meta: SessionChunkLine[];
|
|
11
11
|
commitHashes: string[];
|
|
12
|
+
/**
|
|
13
|
+
* True when every part in this block came from tool-call summaries only
|
|
14
|
+
* (no textual narrative from the user or assistant). Historian often skips
|
|
15
|
+
* such blocks — that's safe as long as we know the skipped range is
|
|
16
|
+
* tool-only, so we mark the block here and let validation absorb the gap.
|
|
17
|
+
*/
|
|
18
|
+
isToolOnly: boolean;
|
|
12
19
|
}
|
|
13
20
|
export declare function hasMeaningfulUserText(parts: unknown[]): boolean;
|
|
14
21
|
export declare function extractTexts(parts: unknown[]): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-session-formatting.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/read-session-formatting.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"read-session-formatting.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/read-session-formatting.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;CACvB;AAMD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAiB/D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAUvD;AAED;4EAC4E;AAC5E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CA2BnE;AAoCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQrD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAW1D;AAED,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAmB1C;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAS9E"}
|
|
@@ -30,6 +30,8 @@ export declare function createSystemPromptHashHandler(deps: {
|
|
|
30
30
|
experimentalPinKeyFiles?: boolean;
|
|
31
31
|
/** Token budget for key files injection (default 10000) */
|
|
32
32
|
experimentalPinKeyFilesTokenBudget?: number;
|
|
33
|
+
/** When true, add a temporal-awareness guidance paragraph + surface compartment dates */
|
|
34
|
+
experimentalTemporalAwareness?: boolean;
|
|
33
35
|
}): (input: {
|
|
34
36
|
sessionID?: string;
|
|
35
37
|
}, output: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt-hash.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/system-prompt-hash.ts"],"names":[],"mappings":"AAQA,OAAO,EACH,KAAK,eAAe,EAGvB,MAAM,sCAAsC,CAAC;AAwC9C;;;;;;;;;;;;GAYG;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,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,kFAAkF;IAClF,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,2EAA2E;IAC3E,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,2DAA2D;IAC3D,kCAAkC,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"system-prompt-hash.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/system-prompt-hash.ts"],"names":[],"mappings":"AAQA,OAAO,EACH,KAAK,eAAe,EAGvB,MAAM,sCAAsC,CAAC;AAwC9C;;;;;;;;;;;;GAYG;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,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,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;CAC3C,GAAG,CAAC,KAAK,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAgQjF"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Temporal awareness utilities.
|
|
3
|
+
*
|
|
4
|
+
* When enabled via experimental.temporal_awareness, the plugin:
|
|
5
|
+
* 1. Prepends <!-- +Xm --> / <!-- +2h 15m --> / <!-- +3d 4h --> HTML comments
|
|
6
|
+
* to user messages where the gap since the previous message exceeds
|
|
7
|
+
* TEMPORAL_AWARENESS_THRESHOLD_SECONDS.
|
|
8
|
+
* 2. Adds start="YYYY-MM-DD" end="YYYY-MM-DD" date attributes to <compartment>
|
|
9
|
+
* elements in the injected <session-history> block.
|
|
10
|
+
*
|
|
11
|
+
* The gap is measured from the previous message's effective end time:
|
|
12
|
+
* - Assistant (completed): prev.time.completed
|
|
13
|
+
* - Assistant (in-flight/aborted): prev.time.created (best available)
|
|
14
|
+
* - User: prev.time.created (user messages have no completed field)
|
|
15
|
+
*
|
|
16
|
+
* All values are derived deterministically from immutable message timestamps,
|
|
17
|
+
* so injection is stable across transform passes and cache-safe.
|
|
18
|
+
*/
|
|
19
|
+
/** User message gaps below this threshold get no marker. 5 minutes. */
|
|
20
|
+
export declare const TEMPORAL_AWARENESS_THRESHOLD_SECONDS = 300;
|
|
21
|
+
/**
|
|
22
|
+
* Format a gap in seconds as a compact adaptive string.
|
|
23
|
+
* Returns null for gaps below the threshold (no marker should be injected).
|
|
24
|
+
*
|
|
25
|
+
* < 5 min → null
|
|
26
|
+
* 5 min - 1 hour → "+Xm" (e.g. "+12m")
|
|
27
|
+
* 1 hour - 1 day → "+Xh Ym" / "+Xh" when Y == 0
|
|
28
|
+
* 1 day - 1 week → "+Xd Yh" / "+Xd" when Y == 0
|
|
29
|
+
* >= 1 week → "+Xw Yd" / "+Xw" when Y == 0
|
|
30
|
+
*
|
|
31
|
+
* Non-finite, negative, or zero deltas return null.
|
|
32
|
+
*/
|
|
33
|
+
export declare function formatGap(seconds: number): string | null;
|
|
34
|
+
/**
|
|
35
|
+
* Compute the effective end time for a raw OpenCode message given its
|
|
36
|
+
* time.created and optional time.completed fields.
|
|
37
|
+
*
|
|
38
|
+
* For completed assistants use `completed`; for everything else (user messages,
|
|
39
|
+
* in-flight/aborted assistants) use `created`.
|
|
40
|
+
*/
|
|
41
|
+
export declare function effectiveEndMs(time: {
|
|
42
|
+
created: number;
|
|
43
|
+
completed?: number;
|
|
44
|
+
}): number;
|
|
45
|
+
/**
|
|
46
|
+
* Format a Unix ms timestamp as YYYY-MM-DD in the process local timezone.
|
|
47
|
+
* Used for compartment start/end date attributes.
|
|
48
|
+
*/
|
|
49
|
+
export declare function formatDate(ms: number): string;
|
|
50
|
+
/** Regex matching the injected HTML comment so we can recognize / avoid
|
|
51
|
+
* double-injecting on retried transform passes. */
|
|
52
|
+
export declare const TEMPORAL_MARKER_PATTERN: RegExp;
|
|
53
|
+
/**
|
|
54
|
+
* Produce the HTML comment prefix line for a given gap marker, or null if the
|
|
55
|
+
* gap is below threshold.
|
|
56
|
+
*/
|
|
57
|
+
export declare function temporalMarkerPrefix(seconds: number): string | null;
|
|
58
|
+
/**
|
|
59
|
+
* Inject HTML-comment gap markers into user-message text parts when
|
|
60
|
+
* temporal awareness is enabled and the gap since the previous message's
|
|
61
|
+
* effective end time exceeds TEMPORAL_AWARENESS_THRESHOLD_SECONDS.
|
|
62
|
+
*
|
|
63
|
+
* Idempotent: if a text already starts with a temporal marker (e.g. from a
|
|
64
|
+
* previous transform pass), injection is skipped. Returns the number of
|
|
65
|
+
* messages that received a new marker.
|
|
66
|
+
*
|
|
67
|
+
* The marker is prepended BEFORE any §N§ tag added by tagMessages runs after
|
|
68
|
+
* this function, since tagging happens in the normal transform flow and
|
|
69
|
+
* stripTagPrefix re-strips `§N§` on re-tagging — leaving the marker intact
|
|
70
|
+
* between the tag and the user's text on subsequent passes.
|
|
71
|
+
*/
|
|
72
|
+
export declare function injectTemporalMarkers(messages: unknown[]): number;
|
|
73
|
+
//# sourceMappingURL=temporal-awareness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporal-awareness.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/temporal-awareness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,uEAAuE;AACvE,eAAO,MAAM,oCAAoC,MAAM,CAAC;AAQxD;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyBxD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEpF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAM7C;AAED;oDACoD;AACpD,eAAO,MAAM,uBAAuB,QAA+C,CAAC;AAEpF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAInE;AAiCD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAuCjE"}
|
|
@@ -34,6 +34,16 @@ interface RunCompartmentPhaseArgs {
|
|
|
34
34
|
experimentalCompactionMarkers?: boolean;
|
|
35
35
|
/** When true, extract user behavior observations from historian output */
|
|
36
36
|
experimentalUserMemories?: boolean;
|
|
37
|
+
/** When true, inject wall-clock dates on compartments in <session-history>. */
|
|
38
|
+
experimentalTemporalAwareness?: boolean;
|
|
39
|
+
/** When true, run a second editor pass after historian to clean U: lines. */
|
|
40
|
+
historianTwoPass?: boolean;
|
|
41
|
+
/** Compressor floor ratio: floor = ceil(lastEndMessage / minCompartmentRatio). */
|
|
42
|
+
compressorMinCompartmentRatio?: number;
|
|
43
|
+
/** Compressor max merge depth (1-5). Compartments at or above this depth are skipped. */
|
|
44
|
+
compressorMaxMergeDepth?: number;
|
|
45
|
+
/** Compressor cooldown in milliseconds between background runs. */
|
|
46
|
+
compressorCooldownMs?: number;
|
|
37
47
|
}
|
|
38
48
|
export declare function runCompartmentPhase(args: RunCompartmentPhaseArgs): Promise<{
|
|
39
49
|
pendingCompartmentInjection: PreparedCompartmentInjection | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-compartment-phase.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform-compartment-phase.ts"],"names":[],"mappings":"
|
|
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;AAUxD,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,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,iFAAiF;IACjF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,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;CACjC;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;CAClC,CAAC,CAyOD"}
|
|
@@ -63,6 +63,20 @@ export interface TransformDeps {
|
|
|
63
63
|
projectPath?: string;
|
|
64
64
|
experimentalCompactionMarkers?: boolean;
|
|
65
65
|
experimentalUserMemories?: boolean;
|
|
66
|
+
/** When true, inject wall-clock gap markers (<!-- +Xm -->) on user messages and
|
|
67
|
+
* add start/end date attributes to <compartment> elements in <session-history>.
|
|
68
|
+
* Controlled by `experimental.temporal_awareness` config. */
|
|
69
|
+
experimentalTemporalAwareness?: boolean;
|
|
70
|
+
/** When true, run a second editor pass after historian to clean U: lines.
|
|
71
|
+
* Enables the historian-editor agent. Controlled by `historian.two_pass` config. */
|
|
72
|
+
historianTwoPass?: boolean;
|
|
73
|
+
/** Compressor floor ratio: floor = ceil(lastEndMessage / minCompartmentRatio).
|
|
74
|
+
* Controlled by `compressor.min_compartment_ratio` config. */
|
|
75
|
+
compressorMinCompartmentRatio?: number;
|
|
76
|
+
/** Compressor max merge depth (1-5). Controlled by `compressor.max_merge_depth` config. */
|
|
77
|
+
compressorMaxMergeDepth?: number;
|
|
78
|
+
/** Compressor cooldown in milliseconds. Controlled by `compressor.cooldown_ms` config. */
|
|
79
|
+
compressorCooldownMs?: number;
|
|
66
80
|
liveModelBySession?: LiveModelBySession;
|
|
67
81
|
}
|
|
68
82
|
export declare function createTransform(deps: TransformDeps): (_input: Record<string, never>, output: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAExE,OAAO,EACH,KAAK,eAAe,EAIpB,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;AAYxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA4BlD,QAAA,MAAM,MAAM,EAAE,MA6Qb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|