@cortexkit/opencode-magic-context 0.21.1 → 0.21.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/schema/magic-context.d.ts +0 -3
- package/dist/config/schema/magic-context.d.ts.map +1 -1
- package/dist/features/magic-context/compaction-marker.d.ts +3 -1
- package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/runner.d.ts.map +1 -1
- package/dist/features/magic-context/key-files/identify-key-files.d.ts.map +1 -1
- package/dist/features/magic-context/key-files/read-history.d.ts.map +1 -1
- package/dist/hooks/magic-context/auto-search-runner.d.ts.map +1 -1
- package/dist/hooks/magic-context/compaction-marker-manager.d.ts +4 -4
- package/dist/hooks/magic-context/compaction-marker-manager.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-types.d.ts +0 -2
- package/dist/hooks/magic-context/compartment-runner-types.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner.d.ts +8 -0
- package/dist/hooks/magic-context/compartment-runner.d.ts.map +1 -1
- package/dist/hooks/magic-context/hook.d.ts +0 -1
- package/dist/hooks/magic-context/hook.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-compartment-phase.d.ts +0 -2
- package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform.d.ts +0 -1
- package/dist/hooks/magic-context/transform.d.ts.map +1 -1
- package/dist/index.js +105 -40
- package/dist/plugin/conflict-warning-hook.d.ts.map +1 -1
- package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
- package/dist/plugin/sidebar-snapshot-cache.d.ts.map +1 -1
- package/dist/tools/ctx-note/constants.d.ts +1 -1
- package/dist/tools/ctx-note/constants.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/shared/session-messages-bounded.test.ts +112 -0
- package/src/tui/slots/sidebar-content.tsx +27 -14
|
@@ -313,7 +313,6 @@ export interface MagicContextConfig {
|
|
|
313
313
|
enabled: boolean;
|
|
314
314
|
min_clusters: number;
|
|
315
315
|
};
|
|
316
|
-
compaction_markers: boolean;
|
|
317
316
|
/**
|
|
318
317
|
* Controls whether and where Magic Context augments the system prompt
|
|
319
318
|
* (`## Magic Context` guidance, `<project-docs>`, `<user-profile>`,
|
|
@@ -559,7 +558,6 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
559
558
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
560
559
|
min_clusters: z.ZodDefault<z.ZodNumber>;
|
|
561
560
|
}, z.core.$strip>>;
|
|
562
|
-
compaction_markers: z.ZodDefault<z.ZodBoolean>;
|
|
563
561
|
system_prompt_injection: z.ZodDefault<z.ZodObject<{
|
|
564
562
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
565
563
|
skip_signatures: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
@@ -704,7 +702,6 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
704
702
|
enabled: boolean;
|
|
705
703
|
min_clusters: number;
|
|
706
704
|
};
|
|
707
|
-
compaction_markers: boolean;
|
|
708
705
|
system_prompt_injection: {
|
|
709
706
|
enabled: boolean;
|
|
710
707
|
skip_signatures: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magic-context.d.ts","sourceRoot":"","sources":["../../../src/config/schema/magic-context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"magic-context.d.ts","sourceRoot":"","sources":["../../../src/config/schema/magic-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
* the transform hook receives only post-boundary messages instead
|
|
7
7
|
* of the full session history.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* Always-on as of v0.21.4. Previously gated behind `compaction_markers`
|
|
10
|
+
* config (default true since v0.9.0); the knob was removed because the
|
|
11
|
+
* feature is required for sane transform performance.
|
|
10
12
|
*
|
|
11
13
|
* ## What gets injected (3 rows):
|
|
12
14
|
* 1. A `compaction` part on the boundary user message
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compaction-marker.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/compaction-marker.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"compaction-marker.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/compaction-marker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAgCH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,MAAM,CAE3E;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,MAAM,CAExE;AAsGD,wBAAgB,uBAAuB,IAAI,IAAI,CAY9C;AAID,UAAU,mBAAmB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACnC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACnB,mBAAmB,GAAG,IAAI,CAgC5B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMvB;AAID,UAAU,qBAAqB;IAC3B,uDAAuD;IACvD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,gBAAgB,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,gBAAgB,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;CACzB;AAID,MAAM,WAAW,0BAA0B;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAClC,IAAI,EAAE,0BAA0B,GACjC,qBAAqB,GAAG,IAAI,CAwF9B;AAID;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAgB5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/dreamer/runner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAM3D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAyClD,UAAU,6BAA6B;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,6BAA6B,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAE9F;AAMD,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;CACP;AAqYD,wBAAsB,QAAQ,CAAC,IAAI,EAAE;IACjC,EAAE,EAAE,QAAQ,CAAC;IACb,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,6FAA6F;IAC7F,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,uBAAuB,CAAC,EAAE,6BAA6B,CAAC;IACxD;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,GAAG,OAAO,CAAC,cAAc,CAAC,CAygB1B;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/dreamer/runner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAM3D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAyClD,UAAU,6BAA6B;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,6BAA6B,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAE9F;AAMD,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;CACP;AAqYD,wBAAsB,QAAQ,CAAC,IAAI,EAAE;IACjC,EAAE,EAAE,QAAQ,CAAC;IACb,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,6FAA6F;IAC7F,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,uBAAuB,CAAC,EAAE,6BAA6B,CAAC;IACxD;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,GAAG,OAAO,CAAC,cAAc,CAAC,CAygB1B;AAiND,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC1C,EAAE,EAAE,QAAQ,CAAC;IACb,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wBAAwB,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,uBAAuB,CAAC,EAAE,6BAA6B,CAAC;IACxD;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CA0DjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identify-key-files.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/key-files/identify-key-files.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EACH,mBAAmB,EAOtB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,YAAY,EAAuB,MAAM,cAAc,CAAC;AAGtE,eAAO,MAAM,uBAAuB,yLACsJ,CAAC;AAE3L;;;GAGG;AACH,wBAAgB,mBAAmB,CAC/B,UAAU,EAAE,YAAY,EAAE,EAC1B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACjB,MAAM,CAqCR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAqB7F;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,UAAU,EAAE,QAAQ,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,MAAM,GAC1B,YAAY,EAAE,CAYhB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,EACtD,WAAW,EAAE,MAAM,EACnB,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAC7B;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAelD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACrC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,YAAY,EAAE,EAC1B,WAAW,EAAE,MAAM,GACpB;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAmBlD;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;QACT,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,oBAAoB,EAAE,MAAM,CAAC;KAChC,CAAC,CAAC;CACN;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI9B;AAED,wBAAgB,2BAA2B,CACvC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,cAAc,GAAG,WAAW,CAAC,GAC7D,MAAM,CAER;
|
|
1
|
+
{"version":3,"file":"identify-key-files.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/key-files/identify-key-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-history.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/key-files/read-history.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,EAAE,CAAC;CACvB;AA6BD,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAe/D;
|
|
1
|
+
{"version":3,"file":"read-history.d.ts","sourceRoot":"","sources":["../../../../src/features/magic-context/key-files/read-history.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,EAAE,CAAC;CACvB;AA6BD,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAe/D;AAiFD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC3C,UAAU,EAAE,QAAQ,CAAC;IACrB,OAAO,EAAE,QAAQ,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CACpB,GAAG,gBAAgB,EAAE,CAoGrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-search-runner.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/auto-search-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAiBH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AA4C1D,MAAM,WAAW,uBAAuB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;+DAC2D;IAC3D,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClC;
|
|
1
|
+
{"version":3,"file":"auto-search-runner.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/auto-search-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAiBH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AA4C1D,MAAM,WAAW,uBAAuB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;+DAC2D;IAC3D,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClC;AAoID;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,QAAQ,CAAC;IACb,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,uBAAuB,CAAC;CACpC,GAAG,OAAO,CAAC,IAAI,CAAC,CA2IhB;AAED,2CAA2C;AAC3C,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,sDAAsD;AACtD,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAElE"}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* Compaction Marker Manager
|
|
3
3
|
*
|
|
4
4
|
* Coordinates compaction marker injection/update/removal with historian
|
|
5
|
-
* publication. Called after compartments are published
|
|
6
|
-
* `compaction_markers` config
|
|
5
|
+
* publication. Called after compartments are published. Always-on since
|
|
6
|
+
* v0.21.4 — the `compaction_markers` config knob was removed because the
|
|
7
|
+
* feature is required for sane transform performance on long sessions.
|
|
7
8
|
*
|
|
8
9
|
* The marker summary text is a static placeholder — the real <session-history>
|
|
9
10
|
* is injected by the transform pipeline via inject-compartments.ts. The marker
|
|
@@ -61,8 +62,7 @@ export declare function applyDeferredCompactionMarker(db: Database, sessionId: s
|
|
|
61
62
|
*
|
|
62
63
|
* Plan v6: callers in incremental / recomp / partial-recomp paths invoke this
|
|
63
64
|
* directly only when they are NOT deferring (i.e.
|
|
64
|
-
* `preserveInjectionCacheUntilConsumed === false`
|
|
65
|
-
* `experimentalCompactionMarkers === false`). Deferred path uses
|
|
65
|
+
* `preserveInjectionCacheUntilConsumed === false`). Deferred path uses
|
|
66
66
|
* `applyDeferredCompactionMarker` from postprocess drain.
|
|
67
67
|
*/
|
|
68
68
|
export declare function updateCompactionMarkerAfterPublication(db: Database, sessionId: string, lastCompartmentEnd: number, directory?: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compaction-marker-manager.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compaction-marker-manager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"compaction-marker-manager.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compaction-marker-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,OAAO,EAEH,KAAK,uBAAuB,EAE/B,MAAM,qDAAqD,CAAC;AAG7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAQpD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,mBAAmB,GACzB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IACI,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,qBAAqB,GAAG,mBAAmB,CAAC;CACvD,GACD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AA6DlD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,6BAA6B,CACzC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,uBAAuB,EAChC,SAAS,CAAC,EAAE,MAAM,GACnB,mBAAmB,CA4FrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,sCAAsC,CAClD,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,EAC1B,SAAS,CAAC,EAAE,MAAM,GACnB,IAAI,CA6CN;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAmBtF;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAmGnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compartment-runner-incremental.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-incremental.ts"],"names":[],"mappings":"AAYA,OAAO,EACH,yBAAyB,EACzB,gCAAgC,EAChC,4BAA4B,GAC/B,MAAM,wBAAwB,CAAC;AAsBhC,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":"AAYA,OAAO,EACH,yBAAyB,EACzB,gCAAgC,EAChC,4BAA4B,GAC/B,MAAM,wBAAwB,CAAC;AAsBhC,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,CA0VpF"}
|
|
@@ -19,8 +19,6 @@ export interface CompartmentRunnerDeps {
|
|
|
19
19
|
fallbackModelId?: string;
|
|
20
20
|
ensureProjectRegistered?: (directory: string, db: Database) => Promise<void>;
|
|
21
21
|
getNotificationParams?: () => NotificationParams;
|
|
22
|
-
/** When true, inject compaction markers into OpenCode's DB after publication */
|
|
23
|
-
experimentalCompactionMarkers?: boolean;
|
|
24
22
|
/** When true, extract user behavior observations from historian output */
|
|
25
23
|
experimentalUserMemories?: boolean;
|
|
26
24
|
/** When true, inject wall-clock dates on compartments in <session-history>. */
|
|
@@ -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,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,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,qBAAqB,CAAC,EAAE,MAAM,kBAAkB,CAAC;IACjD,
|
|
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,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,qBAAqB,CAAC,EAAE,MAAM,kBAAkB,CAAC;IACjD,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"}
|
|
@@ -3,6 +3,14 @@ import type { CompartmentRunnerDeps } from "./compartment-runner-types";
|
|
|
3
3
|
export interface ActiveCompartmentRun {
|
|
4
4
|
promise: Promise<void>;
|
|
5
5
|
published: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Set to true once the 95%-emergency user-facing notification has been
|
|
8
|
+
* dispatched for this run. Prevents the notification from re-firing on
|
|
9
|
+
* every subsequent transform pass while the same compartment run is
|
|
10
|
+
* still active — which would otherwise persist a fresh ignored user
|
|
11
|
+
* message every pass and drive OpenCode's runLoop break condition false.
|
|
12
|
+
*/
|
|
13
|
+
notificationSent?: boolean;
|
|
6
14
|
}
|
|
7
15
|
export declare function getActiveCompartmentRun(sessionId: string): ActiveCompartmentRun | undefined;
|
|
8
16
|
export declare function markActiveCompartmentRunPublished(sessionId: string): void;
|
|
@@ -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;AAExE,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,SAAS,EAAE,OAAO,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;IACnB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;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"}
|
|
@@ -49,7 +49,6 @@ export interface MagicContextDeps {
|
|
|
49
49
|
enabled: boolean;
|
|
50
50
|
min_clusters: number;
|
|
51
51
|
};
|
|
52
|
-
compaction_markers?: boolean;
|
|
53
52
|
/** Issue #53: per-agent system-prompt injection opt-out. Optional in
|
|
54
53
|
* the inline type so legacy tests/callers don't have to construct it;
|
|
55
54
|
* Zod's .default() guarantees it's present in real loaded configs. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/hook.ts"],"names":[],"mappings":"AAEA,OAAO,EAGH,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,EACtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAOvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAOxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAGlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAcxD,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAWnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAQ7D,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,yBAAyB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,iBAAiB,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;IAC9D,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,MAAM,EAAE;QACJ,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,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,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE3C,SAAS,CAAC,EAAE,eAAe,CAAC;QAC5B,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,MAAM,CAAC,EAAE;YACL,OAAO,EAAE,OAAO,CAAC;YACjB,uBAAuB,EAAE,MAAM,CAAC;YAChC;oFACwE;YACxE,YAAY,CAAC,EAAE,OAAO,CAAC;SAC1B,CAAC;QACF,SAAS,CAAC,EAAE;YACR,QAAQ,CAAC,EAAE,OAAO,GAAG,mBAAmB,GAAG,KAAK,CAAC;SACpD,CAAC;QACF,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;QACxB,sBAAsB,CAAC,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QACpE
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,8 +35,6 @@ interface RunCompartmentPhaseArgs {
|
|
|
35
35
|
deferredHistoryRefreshSessions: Set<string>;
|
|
36
36
|
/** True when transform already triggered recovery/emergency historian work this pass. */
|
|
37
37
|
skipAwaitForThisPass?: boolean;
|
|
38
|
-
/** When true, inject compaction markers into OpenCode's DB after historian publication */
|
|
39
|
-
experimentalCompactionMarkers?: boolean;
|
|
40
38
|
/** When true, extract user behavior observations from historian output */
|
|
41
39
|
experimentalUserMemories?: boolean;
|
|
42
40
|
/** When true, inject wall-clock dates on compartments in <session-history>. */
|
|
@@ -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;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,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,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,
|
|
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,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,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,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,CAuRD"}
|
|
@@ -91,7 +91,6 @@ export interface TransformDeps {
|
|
|
91
91
|
getModelKey?: (sessionId: string) => string | undefined;
|
|
92
92
|
getFallbackModelId?: (sessionId: string) => string | undefined;
|
|
93
93
|
projectPath?: string;
|
|
94
|
-
experimentalCompactionMarkers?: boolean;
|
|
95
94
|
experimentalUserMemories?: boolean;
|
|
96
95
|
/** When true, inject wall-clock gap markers (<!-- +Xm -->) on user messages and
|
|
97
96
|
* add start/end date attributes to <compartment> elements in <session-history>.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform.ts"],"names":[],"mappings":"AAIA,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;AAgBxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA8B7C,OAAO,EAAE,yBAAyB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAU9F,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,CAChB,MAAM,EACN;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,CACxE,CAAC;IACF,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,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF;;;;;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,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,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACvF,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,CA0jCnB"}
|
package/dist/index.js
CHANGED
|
@@ -14950,7 +14950,6 @@ var init_magic_context = __esm(() => {
|
|
|
14950
14950
|
enabled: exports_external.boolean().default(true),
|
|
14951
14951
|
min_clusters: exports_external.number().min(1).default(3)
|
|
14952
14952
|
}).default({ enabled: true, min_clusters: 3 }),
|
|
14953
|
-
compaction_markers: exports_external.boolean().default(true),
|
|
14954
14953
|
system_prompt_injection: exports_external.object({
|
|
14955
14954
|
enabled: exports_external.boolean().default(true),
|
|
14956
14955
|
skip_signatures: exports_external.array(exports_external.string()).default(["<!-- magic-context: skip -->"])
|
|
@@ -157007,7 +157006,10 @@ async function getSessionMessages(client, sessionId) {
|
|
|
157007
157006
|
try {
|
|
157008
157007
|
const c = client;
|
|
157009
157008
|
if (typeof c.session?.messages === "function") {
|
|
157010
|
-
const result = await c.session.messages({
|
|
157009
|
+
const result = await c.session.messages({
|
|
157010
|
+
path: { id: sessionId },
|
|
157011
|
+
query: { limit: 50 }
|
|
157012
|
+
});
|
|
157011
157013
|
return result?.data ?? [];
|
|
157012
157014
|
}
|
|
157013
157015
|
} catch (error51) {
|
|
@@ -163695,7 +163697,7 @@ async function runHistorianPrompt(args) {
|
|
|
163695
163697
|
}
|
|
163696
163698
|
const messagesResponse = await client.session.messages({
|
|
163697
163699
|
path: { id: agentSessionId },
|
|
163698
|
-
query: { directory: sessionDirectory }
|
|
163700
|
+
query: { directory: sessionDirectory, limit: 50 }
|
|
163699
163701
|
});
|
|
163700
163702
|
const messages = normalizeSDKResponse(messagesResponse, [], {
|
|
163701
163703
|
preferResponseOnMissingData: true
|
|
@@ -164558,7 +164560,7 @@ async function executePartialRecompInternal(deps, range) {
|
|
|
164558
164560
|
}
|
|
164559
164561
|
deps.onCompartmentStatePublished?.(sessionId);
|
|
164560
164562
|
const lastEnd = merged[merged.length - 1]?.endMessage ?? snapEnd;
|
|
164561
|
-
if (
|
|
164563
|
+
if (lastEnd > 0) {
|
|
164562
164564
|
updateCompactionMarkerAfterPublication(db, sessionId, lastEnd, deps.directory);
|
|
164563
164565
|
const stalePending = getPendingCompactionMarkerState(db, sessionId);
|
|
164564
164566
|
if (stalePending) {
|
|
@@ -165653,7 +165655,7 @@ async function runCompressorPass(args) {
|
|
|
165653
165655
|
});
|
|
165654
165656
|
const messagesResponse = await client.session.messages({
|
|
165655
165657
|
path: { id: agentSessionId },
|
|
165656
|
-
query: { directory }
|
|
165658
|
+
query: { directory, limit: 50 }
|
|
165657
165659
|
});
|
|
165658
165660
|
const messages = normalizeSDKResponse(messagesResponse, [], {
|
|
165659
165661
|
preferResponseOnMissingData: true
|
|
@@ -165775,6 +165777,7 @@ async function runCompartmentAgent(deps) {
|
|
|
165775
165777
|
const existingValidationError = validateStoredCompartments(priorCompartments);
|
|
165776
165778
|
if (existingValidationError) {
|
|
165777
165779
|
sessionLog(sessionId, `historian failure: source=existing-validation reason="${existingValidationError}"`);
|
|
165780
|
+
incrementHistorianFailure(db, sessionId, existingValidationError);
|
|
165778
165781
|
await notifyHistorianIssue(`## Historian alert
|
|
165779
165782
|
|
|
165780
165783
|
Historian skipped this session because existing stored compartments are invalid: ${existingValidationError}
|
|
@@ -165785,15 +165788,20 @@ No new compartments or facts were written. Rebuild or clear the broken compartme
|
|
|
165785
165788
|
const offset = priorCompartments.length > 0 ? priorCompartments[priorCompartments.length - 1].endMessage + 1 : 1;
|
|
165786
165789
|
const protectedTailStart = getProtectedTailStartOrdinal(sessionId);
|
|
165787
165790
|
if (protectedTailStart <= offset) {
|
|
165791
|
+
sessionLog(sessionId, `historian no-op: protectedTailStart=${protectedTailStart} <= offset=${offset} — nothing to compact`);
|
|
165792
|
+
clearEmergencyRecovery(db, sessionId);
|
|
165788
165793
|
return;
|
|
165789
165794
|
}
|
|
165790
165795
|
const chunk = readSessionChunk(sessionId, historianChunkTokens, offset, protectedTailStart);
|
|
165791
165796
|
if (!chunk.text || chunk.messageCount === 0) {
|
|
165797
|
+
sessionLog(sessionId, `historian no-op: chunk empty after filtering (messageCount=${chunk.messageCount}, textLen=${chunk.text?.length ?? 0}) range=${offset}-${protectedTailStart - 1}`);
|
|
165798
|
+
clearEmergencyRecovery(db, sessionId);
|
|
165792
165799
|
return;
|
|
165793
165800
|
}
|
|
165794
165801
|
const chunkCoverageError = validateChunkCoverage(chunk);
|
|
165795
165802
|
if (chunkCoverageError) {
|
|
165796
165803
|
sessionLog(sessionId, `historian failure: source=chunk-coverage reason="${chunkCoverageError}" chunkRange=${chunk.startIndex}-${chunk.endIndex}`);
|
|
165804
|
+
incrementHistorianFailure(db, sessionId, chunkCoverageError);
|
|
165797
165805
|
await notifyHistorianIssue(`## Historian alert
|
|
165798
165806
|
|
|
165799
165807
|
Historian skipped this session because the raw chunk could not be represented safely: ${chunkCoverageError}
|
|
@@ -165855,7 +165863,7 @@ Historian returned compartments that made no forward progress beyond raw message
|
|
|
165855
165863
|
No new compartments or facts were written. Check the historian model/output and try again.`);
|
|
165856
165864
|
return;
|
|
165857
165865
|
}
|
|
165858
|
-
const deferMarkerApplication = deps.preserveInjectionCacheUntilConsumed === true
|
|
165866
|
+
const deferMarkerApplication = deps.preserveInjectionCacheUntilConsumed === true;
|
|
165859
165867
|
const lastCompartmentEnd = lastNewEnd;
|
|
165860
165868
|
const lastNewEndMessageId = newCompartments[newCompartments.length - 1]?.endMessageId;
|
|
165861
165869
|
db.transaction(() => {
|
|
@@ -165880,12 +165888,10 @@ No new compartments or facts were written. Check the historian model/output and
|
|
|
165880
165888
|
promoteSessionFactsToMemory(db, sessionId, resolveProjectIdentity(deps.directory), validatedPass.facts ?? []);
|
|
165881
165889
|
}
|
|
165882
165890
|
queueDropsForCompartmentalizedMessages(db, sessionId, lastCompartmentEnd);
|
|
165883
|
-
if (
|
|
165884
|
-
|
|
165885
|
-
|
|
165886
|
-
|
|
165887
|
-
updateCompactionMarkerAfterPublication(db, sessionId, lastCompartmentEnd, sessionDirectory);
|
|
165888
|
-
}
|
|
165891
|
+
if (deferMarkerApplication) {
|
|
165892
|
+
deps.onDeferredMarkerPending?.(sessionId);
|
|
165893
|
+
} else {
|
|
165894
|
+
updateCompactionMarkerAfterPublication(db, sessionId, lastCompartmentEnd, sessionDirectory);
|
|
165889
165895
|
}
|
|
165890
165896
|
if (deps.historyBudgetTokens && deps.historyBudgetTokens > 0) {
|
|
165891
165897
|
await runCompressionPassIfNeeded({
|
|
@@ -166028,7 +166034,7 @@ Found ${existingStaging.compartments.length} staged compartment(s) from ${existi
|
|
|
166028
166034
|
if (lastCompartmentEnd2 > 0) {
|
|
166029
166035
|
queueDropsForCompartmentalizedMessages(db, sessionId, lastCompartmentEnd2);
|
|
166030
166036
|
}
|
|
166031
|
-
if (
|
|
166037
|
+
if (lastCompartmentEnd2 > 0) {
|
|
166032
166038
|
updateCompactionMarkerAfterPublication(db, sessionId, lastCompartmentEnd2, deps.directory);
|
|
166033
166039
|
const stalePending = getPendingCompactionMarkerState(db, sessionId);
|
|
166034
166040
|
if (stalePending) {
|
|
@@ -167265,7 +167271,7 @@ async function runSidekick(deps) {
|
|
|
167265
167271
|
}, { timeoutMs: deps.config.timeout_ms, fallbackModels, callContext: "sidekick" });
|
|
167266
167272
|
const messagesResponse = await deps.client.session.messages({
|
|
167267
167273
|
path: { id: agentSessionId },
|
|
167268
|
-
query: { directory: deps.sessionDirectory ?? deps.projectPath }
|
|
167274
|
+
query: { directory: deps.sessionDirectory ?? deps.projectPath, limit: 50 }
|
|
167269
167275
|
});
|
|
167270
167276
|
const messages = normalizeSDKResponse(messagesResponse, [], {
|
|
167271
167277
|
preferResponseOnMissingData: true
|
|
@@ -168216,6 +168222,43 @@ function normalizeProjectRelativePath(projectPath, filePath) {
|
|
|
168216
168222
|
return null;
|
|
168217
168223
|
return rel;
|
|
168218
168224
|
}
|
|
168225
|
+
function isDocumentationOrMetaFile(rel) {
|
|
168226
|
+
const lower = rel.toLowerCase();
|
|
168227
|
+
if (lower.endsWith(".md") || lower.endsWith(".mdx") || lower.endsWith(".rst"))
|
|
168228
|
+
return true;
|
|
168229
|
+
if (lower.endsWith(".txt"))
|
|
168230
|
+
return true;
|
|
168231
|
+
const base = lower.split("/").pop() ?? "";
|
|
168232
|
+
const baseNoExt = base.replace(/\.[^.]+$/, "");
|
|
168233
|
+
const META_BASENAMES = new Set([
|
|
168234
|
+
"license",
|
|
168235
|
+
"licence",
|
|
168236
|
+
"notice",
|
|
168237
|
+
"copying",
|
|
168238
|
+
"authors",
|
|
168239
|
+
"contributors",
|
|
168240
|
+
"changelog",
|
|
168241
|
+
"changes",
|
|
168242
|
+
"history",
|
|
168243
|
+
"readme",
|
|
168244
|
+
"contributing",
|
|
168245
|
+
"code_of_conduct",
|
|
168246
|
+
"security",
|
|
168247
|
+
"support",
|
|
168248
|
+
"maintainers",
|
|
168249
|
+
"governance",
|
|
168250
|
+
"package-lock",
|
|
168251
|
+
"bun.lock",
|
|
168252
|
+
"bun.lockb",
|
|
168253
|
+
"yarn.lock",
|
|
168254
|
+
"pnpm-lock",
|
|
168255
|
+
"cargo.lock",
|
|
168256
|
+
"uv.lock",
|
|
168257
|
+
"poetry.lock",
|
|
168258
|
+
"gemfile.lock"
|
|
168259
|
+
]);
|
|
168260
|
+
return META_BASENAMES.has(base) || META_BASENAMES.has(baseNoExt);
|
|
168261
|
+
}
|
|
168219
168262
|
function primarySessionIds(db) {
|
|
168220
168263
|
try {
|
|
168221
168264
|
const rows = db.prepare("SELECT session_id AS sessionId FROM session_meta WHERE is_subagent = 0").all();
|
|
@@ -168247,6 +168290,8 @@ function collectKeyFileCandidates(args) {
|
|
|
168247
168290
|
const rel = normalizeProjectRelativePath(args.projectPath, row.file_path);
|
|
168248
168291
|
if (!rel)
|
|
168249
168292
|
continue;
|
|
168293
|
+
if (isDocumentationOrMetaFile(rel))
|
|
168294
|
+
continue;
|
|
168250
168295
|
const timestamp = toMs(row.time_created);
|
|
168251
168296
|
const candidate = byPath.get(rel) ?? {
|
|
168252
168297
|
path: rel,
|
|
@@ -168383,7 +168428,8 @@ Rules:
|
|
|
168383
168428
|
- Total approx_token_estimate must be < ${args.config.token_budget}.
|
|
168384
168429
|
- path must be relative, no .., no absolute paths, no symlinks escaping project root.
|
|
168385
168430
|
- path must be unique case-sensitively and case-insensitively.
|
|
168386
|
-
- content must be plain text; no XML tags inside
|
|
168431
|
+
- content must be plain text; no XML tags inside.
|
|
168432
|
+
- DO NOT pick prose documentation (README.md, CONTRIBUTING.md, CHANGELOG, LICENSE, *.md/*.mdx/*.rst/*.txt) or lockfiles. Key files are project SOURCE the agent needs repeated orientation context on, not reference docs. Project docs are surfaced through a separate injection path.`;
|
|
168387
168433
|
}
|
|
168388
168434
|
function validateLlmOutput(raw, config2, projectPath) {
|
|
168389
168435
|
let obj;
|
|
@@ -168513,7 +168559,7 @@ async function runKeyFilesLlm(args) {
|
|
|
168513
168559
|
});
|
|
168514
168560
|
const messagesResponse = await args.client.session.messages({
|
|
168515
168561
|
path: { id: agentSessionId },
|
|
168516
|
-
query: { directory: args.projectPath }
|
|
168562
|
+
query: { directory: args.projectPath, limit: 50 }
|
|
168517
168563
|
});
|
|
168518
168564
|
const messages = normalizeSDKResponse(messagesResponse, [], {
|
|
168519
168565
|
preferResponseOnMissingData: true
|
|
@@ -168709,7 +168755,7 @@ If no promotions are warranted, return empty arrays. Always consume reviewed can
|
|
|
168709
168755
|
});
|
|
168710
168756
|
const messagesResponse = await args.client.session.messages({
|
|
168711
168757
|
path: { id: agentSessionId },
|
|
168712
|
-
query: { directory: args.sessionDirectory }
|
|
168758
|
+
query: { directory: args.sessionDirectory, limit: 50 }
|
|
168713
168759
|
});
|
|
168714
168760
|
const messages = normalizeSDKResponse(messagesResponse, [], {
|
|
168715
168761
|
preferResponseOnMissingData: true
|
|
@@ -169014,7 +169060,7 @@ async function runDream(args) {
|
|
|
169014
169060
|
}
|
|
169015
169061
|
const messagesResponse = await args.client.session.messages({
|
|
169016
169062
|
path: { id: agentSessionId },
|
|
169017
|
-
query: { directory: args.sessionDirectory ?? args.projectIdentity }
|
|
169063
|
+
query: { directory: args.sessionDirectory ?? args.projectIdentity, limit: 50 }
|
|
169018
169064
|
});
|
|
169019
169065
|
const messages = normalizeSDKResponse(messagesResponse, [], {
|
|
169020
169066
|
preferResponseOnMissingData: true
|
|
@@ -169275,6 +169321,13 @@ async function evaluateSmartNotes(args) {
|
|
|
169275
169321
|
For each note below, determine whether its surface condition has been met.
|
|
169276
169322
|
You have access to tools like GitHub CLI (gh), web search, and the local codebase to verify conditions.
|
|
169277
169323
|
|
|
169324
|
+
You DO NOT have access to:
|
|
169325
|
+
- Any conversation between the user and the original agent that wrote the note
|
|
169326
|
+
- The state of any active session, including whether messages have been sent
|
|
169327
|
+
- The current task, mood, or intent of the human user
|
|
169328
|
+
|
|
169329
|
+
If a condition references conversation context the user is having ("When the user mentions X", "When they ask to do Y", "When we revisit Z", "When relevant to current discussion", etc.), it is UNEVALUATABLE — skip it (do not include in results) so the note stays pending. These are misuse cases that should never have been written as smart notes; leaving them pending is the correct outcome, the dreamer's archive-stale task will eventually retire them.
|
|
169330
|
+
|
|
169278
169331
|
## Pending Smart Notes
|
|
169279
169332
|
|
|
169280
169333
|
${noteDescriptions}
|
|
@@ -169283,7 +169336,8 @@ ${noteDescriptions}
|
|
|
169283
169336
|
|
|
169284
169337
|
1. Check each condition using the tools available to you.
|
|
169285
169338
|
2. Be conservative — only mark a condition as met when you have clear evidence.
|
|
169286
|
-
3.
|
|
169339
|
+
3. Skip conditions that depend on session/conversation context you cannot observe — do not invent a "false" verdict for them, just omit them from your response.
|
|
169340
|
+
4. Respond with a JSON array of results:
|
|
169287
169341
|
|
|
169288
169342
|
\`\`\`json
|
|
169289
169343
|
[
|
|
@@ -169291,7 +169345,7 @@ ${noteDescriptions}
|
|
|
169291
169345
|
]
|
|
169292
169346
|
\`\`\`
|
|
169293
169347
|
|
|
169294
|
-
Only include notes whose conditions you could definitively evaluate. Skip notes where you cannot determine the status (they will be re-evaluated next run).`;
|
|
169348
|
+
Only include notes whose conditions you could definitively evaluate against external signals. Skip notes where you cannot determine the status (they will be re-evaluated next run, or eventually archived as stale).`;
|
|
169295
169349
|
const taskStartedAt = Date.now();
|
|
169296
169350
|
let agentSessionId = null;
|
|
169297
169351
|
const abortController = new AbortController;
|
|
@@ -169337,7 +169391,7 @@ Only include notes whose conditions you could definitively evaluate. Skip notes
|
|
|
169337
169391
|
});
|
|
169338
169392
|
const messagesResponse = await args.client.session.messages({
|
|
169339
169393
|
path: { id: agentSessionId },
|
|
169340
|
-
query: { directory: args.sessionDirectory ?? args.projectIdentity }
|
|
169394
|
+
query: { directory: args.sessionDirectory ?? args.projectIdentity, limit: 50 }
|
|
169341
169395
|
});
|
|
169342
169396
|
const messages = normalizeSDKResponse(messagesResponse, [], {
|
|
169343
169397
|
preferResponseOnMissingData: true
|
|
@@ -172432,7 +172486,6 @@ async function runCompartmentPhase(args) {
|
|
|
172432
172486
|
fallbackModelId: args.fallbackModelId,
|
|
172433
172487
|
ensureProjectRegistered: args.ensureProjectRegistered,
|
|
172434
172488
|
getNotificationParams: args.getNotificationParams,
|
|
172435
|
-
experimentalCompactionMarkers: args.experimentalCompactionMarkers,
|
|
172436
172489
|
experimentalUserMemories: args.experimentalUserMemories,
|
|
172437
172490
|
historianTwoPass: args.historianTwoPass,
|
|
172438
172491
|
compressorMinCompartmentRatio: args.compressorMinCompartmentRatio,
|
|
@@ -172462,7 +172515,6 @@ async function runCompartmentPhase(args) {
|
|
|
172462
172515
|
fallbackModelId: args.fallbackModelId,
|
|
172463
172516
|
ensureProjectRegistered: args.ensureProjectRegistered,
|
|
172464
172517
|
getNotificationParams: args.getNotificationParams,
|
|
172465
|
-
experimentalCompactionMarkers: args.experimentalCompactionMarkers,
|
|
172466
172518
|
experimentalUserMemories: args.experimentalUserMemories,
|
|
172467
172519
|
historianTwoPass: args.historianTwoPass,
|
|
172468
172520
|
compressorMinCompartmentRatio: args.compressorMinCompartmentRatio,
|
|
@@ -172477,7 +172529,8 @@ async function runCompartmentPhase(args) {
|
|
|
172477
172529
|
sessionLog(args.sessionId, "transform: cannot force-start compartment agent without client");
|
|
172478
172530
|
}
|
|
172479
172531
|
if (activeRun) {
|
|
172480
|
-
if (args.client) {
|
|
172532
|
+
if (args.client && !activeRun.notificationSent) {
|
|
172533
|
+
activeRun.notificationSent = true;
|
|
172481
172534
|
const notifParams = args.getNotificationParams?.() ?? {};
|
|
172482
172535
|
sendIgnoredMessage(args.client, args.sessionId, `⏳ Context at ${args.contextUsage.percentage.toFixed(0)}% — Magic Context is compacting history before continuing. This may take up to 2 minutes.`, notifParams);
|
|
172483
172536
|
}
|
|
@@ -173814,7 +173867,7 @@ function stripNestedSystemReminders(text) {
|
|
|
173814
173867
|
return result;
|
|
173815
173868
|
}
|
|
173816
173869
|
function extractUserPromptText(message) {
|
|
173817
|
-
return stripNestedSystemReminders(collectUserPromptParts(message)).replace(
|
|
173870
|
+
return stripNestedSystemReminders(collectUserPromptParts(message)).replace(/<!--[\s\S]*?-->/g, "").replace(/<\/?[a-zA-Z][^<>]*>/g, "").replace(/§\d+§\s*/g, "").replace(/[ \t]+\n/g, `
|
|
173818
173871
|
`).replace(/\n{3,}/g, `
|
|
173819
173872
|
|
|
173820
173873
|
`).trim();
|
|
@@ -174923,7 +174976,6 @@ function createTransform(deps) {
|
|
|
174923
174976
|
directory: compartmentDirectory,
|
|
174924
174977
|
fallbackModelId,
|
|
174925
174978
|
getNotificationParams: () => notificationParams,
|
|
174926
|
-
experimentalCompactionMarkers: deps.experimentalCompactionMarkers,
|
|
174927
174979
|
experimentalUserMemories: deps.experimentalUserMemories,
|
|
174928
174980
|
experimentalTemporalAwareness: deps.experimentalTemporalAwareness,
|
|
174929
174981
|
historianTwoPass: deps.historianTwoPass,
|
|
@@ -175107,7 +175159,6 @@ Historian previously failed ${historianFailureState.failureCount} time(s), so ma
|
|
|
175107
175159
|
suppressBackgroundCompressionThisPass: historyBustThisPass,
|
|
175108
175160
|
deferredHistoryRefreshSessions,
|
|
175109
175161
|
skipAwaitForThisPass: skipCompartmentAwaitForThisPass,
|
|
175110
|
-
experimentalCompactionMarkers: deps.experimentalCompactionMarkers,
|
|
175111
175162
|
experimentalUserMemories: deps.experimentalUserMemories,
|
|
175112
175163
|
experimentalTemporalAwareness: deps.experimentalTemporalAwareness,
|
|
175113
175164
|
historianTwoPass: deps.historianTwoPass,
|
|
@@ -175848,7 +175899,8 @@ function applyStickySnapshotCache(sessionId, fresh) {
|
|
|
175848
175899
|
cache.delete(sessionId);
|
|
175849
175900
|
return fresh;
|
|
175850
175901
|
}
|
|
175851
|
-
|
|
175902
|
+
const stateSurvived = fresh.compartmentCount >= cached2.snapshot.compartmentCount && fresh.memoryCount >= cached2.snapshot.memoryCount;
|
|
175903
|
+
if (!hasInFlightEvidence(fresh) && !stateSurvived) {
|
|
175852
175904
|
cache.delete(sessionId);
|
|
175853
175905
|
return fresh;
|
|
175854
175906
|
}
|
|
@@ -176489,12 +176541,10 @@ function createMagicContextHook(deps) {
|
|
|
176489
176541
|
}
|
|
176490
176542
|
const projectPath = resolveProjectIdentity(deps.directory);
|
|
176491
176543
|
registerDreamProjectDirectory(projectPath, deps.directory);
|
|
176492
|
-
|
|
176493
|
-
|
|
176494
|
-
|
|
176495
|
-
|
|
176496
|
-
log("[magic-context] startup compaction-marker consistency check failed:", error51);
|
|
176497
|
-
}
|
|
176544
|
+
try {
|
|
176545
|
+
checkCompactionMarkerConsistency(db);
|
|
176546
|
+
} catch (error51) {
|
|
176547
|
+
log("[magic-context] startup compaction-marker consistency check failed:", error51);
|
|
176498
176548
|
}
|
|
176499
176549
|
let lastScheduleCheckMs = 0;
|
|
176500
176550
|
const getHistorianChunkTokens = () => deriveHistorianChunkTokens(resolveHistorianContextLimit(deps.config.historian?.model));
|
|
@@ -176585,7 +176635,6 @@ function createMagicContextHook(deps) {
|
|
|
176585
176635
|
return model ? `${model.providerID}/${model.modelID}` : undefined;
|
|
176586
176636
|
},
|
|
176587
176637
|
projectPath,
|
|
176588
|
-
experimentalCompactionMarkers: deps.config.compaction_markers,
|
|
176589
176638
|
experimentalUserMemories: deps.config.dreamer?.user_memories?.enabled,
|
|
176590
176639
|
experimentalTemporalAwareness: deps.config.experimental?.temporal_awareness === true,
|
|
176591
176640
|
historianTwoPass: deps.config.historian?.two_pass === true,
|
|
@@ -176850,7 +176899,6 @@ function createSessionHooks(args) {
|
|
|
176850
176899
|
sidekick: pluginConfig.sidekick,
|
|
176851
176900
|
dreamer: pluginConfig.dreamer,
|
|
176852
176901
|
commit_cluster_trigger: pluginConfig.commit_cluster_trigger,
|
|
176853
|
-
compaction_markers: pluginConfig.compaction_markers,
|
|
176854
176902
|
system_prompt_injection: pluginConfig.system_prompt_injection,
|
|
176855
176903
|
compressor: pluginConfig.compressor,
|
|
176856
176904
|
experimental: pluginConfig.experimental
|
|
@@ -177881,9 +177929,26 @@ Actions:
|
|
|
177881
177929
|
- \`dismiss\`: Dismiss a note by \`note_id\`.
|
|
177882
177930
|
- \`update\`: Update a note by \`note_id\`.
|
|
177883
177931
|
|
|
177884
|
-
**Smart Notes**: When \`surface_condition\` is provided with \`write\`, the note becomes a project-scoped smart note.
|
|
177885
|
-
|
|
177886
|
-
|
|
177932
|
+
**Smart Notes**: When \`surface_condition\` is provided with \`write\`, the note becomes a project-scoped smart note. A separate background process (the dreamer) periodically checks the condition using ONLY external, verifiable signals: GitHub state via \`gh\` CLI, web pages, files on disk, git history, etc. The dreamer cannot read your current conversation, cannot detect when the user says something, and has no memory of context that lives only in this session.
|
|
177933
|
+
|
|
177934
|
+
Write a smart note ONLY when the surface_condition is something an external agent with read-only tools can definitively check:
|
|
177935
|
+
|
|
177936
|
+
✓ GOOD conditions (externally verifiable):
|
|
177937
|
+
- "When PR #42 in cortexkit/magic-context is merged"
|
|
177938
|
+
- "When the file packages/plugin/src/foo.ts contains a function named bar"
|
|
177939
|
+
- "When the latest release tag is >= v0.22.0"
|
|
177940
|
+
- "When the GitHub Actions workflow runs/123 succeeds"
|
|
177941
|
+
|
|
177942
|
+
✗ BAD conditions (require knowing this session's context):
|
|
177943
|
+
- "When the user mentions the worktree system has landed" → dreamer cannot see user messages
|
|
177944
|
+
- "When they ask to re-run the audit fixes" → dreamer cannot see future requests
|
|
177945
|
+
- "When we revisit this code path" → no observable signal
|
|
177946
|
+
- "When relevant to the current discussion" → no observable signal
|
|
177947
|
+
- "After we finish the current refactor" → no externally checkable boundary
|
|
177948
|
+
|
|
177949
|
+
If you want context that surfaces based on what's happening in your session, use a regular note (omit surface_condition) — those show up on natural work boundaries within this session. If you want a reminder tied to your future work without a clean external trigger, just write a regular note describing what to do; you'll see it when you read notes later.
|
|
177950
|
+
|
|
177951
|
+
Example: \`ctx_note(action="write", content="Implement X because Y", surface_condition="When PR #42 in cortexkit/magic-context is merged")\`
|
|
177887
177952
|
|
|
177888
177953
|
Historian reads these notes, deduplicates them, and rewrites the remaining useful notes over time.`;
|
|
177889
177954
|
// src/tools/ctx-note/tools.ts
|
|
@@ -177961,7 +178026,7 @@ function createCtxNoteTool(deps) {
|
|
|
177961
178026
|
args: {
|
|
177962
178027
|
action: tool3.schema.enum(["write", "read", "dismiss", "update"]).optional().describe("Operation to perform. Defaults to 'write' when content is provided, otherwise 'read'."),
|
|
177963
178028
|
content: tool3.schema.string().optional().describe("Note text to store when action is 'write'."),
|
|
177964
|
-
surface_condition: tool3.schema.string().optional().describe("
|
|
178029
|
+
surface_condition: tool3.schema.string().optional().describe("Externally verifiable condition for smart notes. A separate background agent (dreamer) checks this using gh CLI, web fetches, file reads, git, etc. — NOT your conversation history. Use only for things like GitHub PR/issue state, release tags, file contents, or workflow runs. DO NOT use for 'when the user mentions X' / 'when we revisit Y' / 'when relevant to current task' — dreamer has no access to session context. For session-relative reminders, omit this and write a regular note."),
|
|
177965
178030
|
filter: tool3.schema.enum(["all", "active", "pending", "ready", "dismissed"]).optional().describe("Optional read filter. Defaults to active session notes + ready smart notes. Use 'all' to inspect every status or 'pending' to inspect unsurfaced smart notes."),
|
|
177966
178031
|
note_id: tool3.schema.number().optional().describe("Note ID (required for 'dismiss' and 'update' actions).")
|
|
177967
178032
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conflict-warning-hook.d.ts","sourceRoot":"","sources":["../../src/plugin/conflict-warning-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"conflict-warning-hook.d.ts","sourceRoot":"","sources":["../../src/plugin/conflict-warning-hook.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAmLlE;;GAEG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,cAAc,GAC/B,OAAO,CAAC,IAAI,CAAC,CA+Cf;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CACzC,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAqHf;AAkCD;;;GAGG;AACH,wBAAsB,wBAAwB,CAC1C,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAkEf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-session-hooks.d.ts","sourceRoot":"","sources":["../../../src/plugin/hooks/create-session-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAU7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACrC,GAAG,EAAE,aAAa,CAAC;IACnB,YAAY,EAAE,wBAAwB,CAAC;IACvC,gBAAgB,EAAE,gBAAgB,CAAC;CACtC;;;;;;
|
|
1
|
+
{"version":3,"file":"create-session-hooks.d.ts","sourceRoot":"","sources":["../../../src/plugin/hooks/create-session-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAU7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACrC,GAAG,EAAE,aAAa,CAAC;IACnB,YAAY,EAAE,wBAAwB,CAAC;IACvC,gBAAgB,EAAE,gBAAgB,CAAC;CACtC;;;;;;qBAoDkuJ,CAAC;;;;;;;;;;;;qBAA9sC,CAAC;mBAAyB,CAAC;iBAAuB,CAAC;iBAAuB,CAAC;0BAAc,CAAC;uBAAiB,CAAC;;;;;;0BAAwgtB,CAAC;;;;;;EAD1o0B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar-snapshot-cache.d.ts","sourceRoot":"","sources":["../../src/plugin/sidebar-snapshot-cache.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAY3D;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACpC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,eAAe,GACvB,eAAe,
|
|
1
|
+
{"version":3,"file":"sidebar-snapshot-cache.d.ts","sourceRoot":"","sources":["../../src/plugin/sidebar-snapshot-cache.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAY3D;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACpC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,eAAe,GACvB,eAAe,CA+DjB;AAQD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const CTX_NOTE_DESCRIPTION = "Save or inspect durable session notes that persist for this session.\nUse this for short goals, constraints, decisions, or reminders worth carrying forward.\n\nActions:\n- `write`: Append one note. Optionally provide `surface_condition` to create a smart note.\n- `read`: Show current notes. Defaults to active session notes + ready smart notes; use `filter` to inspect all, pending, ready, active, or dismissed notes.\n- `dismiss`: Dismiss a note by `note_id`.\n- `update`: Update a note by `note_id`.\n\n**Smart Notes**: When `surface_condition` is provided with `write`, the note becomes a project-scoped smart note
|
|
1
|
+
export declare const CTX_NOTE_DESCRIPTION = "Save or inspect durable session notes that persist for this session.\nUse this for short goals, constraints, decisions, or reminders worth carrying forward.\n\nActions:\n- `write`: Append one note. Optionally provide `surface_condition` to create a smart note.\n- `read`: Show current notes. Defaults to active session notes + ready smart notes; use `filter` to inspect all, pending, ready, active, or dismissed notes.\n- `dismiss`: Dismiss a note by `note_id`.\n- `update`: Update a note by `note_id`.\n\n**Smart Notes**: When `surface_condition` is provided with `write`, the note becomes a project-scoped smart note. A separate background process (the dreamer) periodically checks the condition using ONLY external, verifiable signals: GitHub state via `gh` CLI, web pages, files on disk, git history, etc. The dreamer cannot read your current conversation, cannot detect when the user says something, and has no memory of context that lives only in this session.\n\nWrite a smart note ONLY when the surface_condition is something an external agent with read-only tools can definitively check:\n\n\u2713 GOOD conditions (externally verifiable):\n- \"When PR #42 in cortexkit/magic-context is merged\"\n- \"When the file packages/plugin/src/foo.ts contains a function named bar\"\n- \"When the latest release tag is >= v0.22.0\"\n- \"When the GitHub Actions workflow runs/123 succeeds\"\n\n\u2717 BAD conditions (require knowing this session's context):\n- \"When the user mentions the worktree system has landed\" \u2192 dreamer cannot see user messages\n- \"When they ask to re-run the audit fixes\" \u2192 dreamer cannot see future requests\n- \"When we revisit this code path\" \u2192 no observable signal\n- \"When relevant to the current discussion\" \u2192 no observable signal\n- \"After we finish the current refactor\" \u2192 no externally checkable boundary\n\nIf you want context that surfaces based on what's happening in your session, use a regular note (omit surface_condition) \u2014 those show up on natural work boundaries within this session. If you want a reminder tied to your future work without a clean external trigger, just write a regular note describing what to do; you'll see it when you read notes later.\n\nExample: `ctx_note(action=\"write\", content=\"Implement X because Y\", surface_condition=\"When PR #42 in cortexkit/magic-context is merged\")`\n\nHistorian reads these notes, deduplicates them, and rewrites the remaining useful notes over time.";
|
|
2
2
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tools/ctx-note/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tools/ctx-note/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,mgFA8BkE,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/// <reference types="bun-types" />
|
|
2
|
+
|
|
3
|
+
// Regression guard: every `client.session.messages(...)` call in plugin code
|
|
4
|
+
// must include `limit` in its `query`. Without `limit`, OpenCode's legacy
|
|
5
|
+
// messages endpoint hydrates the ENTIRE session into RAM — catastrophic on
|
|
6
|
+
// huge sessions (10k+ messages) which is exactly when Magic Context shines.
|
|
7
|
+
//
|
|
8
|
+
// Background: the plugin only ever needs the latest assistant message of a
|
|
9
|
+
// helper subagent (historian / dreamer / sidekick / key-files / user-memory)
|
|
10
|
+
// or a bounded tail of the active session (conflict-warning cleanup). Both
|
|
11
|
+
// fit comfortably in `limit: 50` with massive headroom.
|
|
12
|
+
//
|
|
13
|
+
// If you add a new `session.messages(...)` call, this test fails until you
|
|
14
|
+
// include a `limit` in the query. The test does a static source-text scan
|
|
15
|
+
// so it catches the issue at lint-time without runtime mocking overhead.
|
|
16
|
+
|
|
17
|
+
import { describe, expect, it } from "bun:test";
|
|
18
|
+
import { readdirSync, readFileSync, statSync } from "node:fs";
|
|
19
|
+
import { join } from "node:path";
|
|
20
|
+
|
|
21
|
+
const PLUGIN_SRC = join(__dirname, "..", "..", "src");
|
|
22
|
+
|
|
23
|
+
/** Recursively walk a directory and return paths of all `.ts` files
|
|
24
|
+
* excluding `.test.ts`, `.gen.ts`, and node_modules. */
|
|
25
|
+
function walkSourceFiles(dir: string, out: string[] = []): string[] {
|
|
26
|
+
for (const entry of readdirSync(dir)) {
|
|
27
|
+
if (entry === "node_modules" || entry === "dist") continue;
|
|
28
|
+
const full = join(dir, entry);
|
|
29
|
+
const s = statSync(full);
|
|
30
|
+
if (s.isDirectory()) {
|
|
31
|
+
walkSourceFiles(full, out);
|
|
32
|
+
} else if (
|
|
33
|
+
s.isFile() &&
|
|
34
|
+
entry.endsWith(".ts") &&
|
|
35
|
+
!entry.endsWith(".test.ts") &&
|
|
36
|
+
!entry.endsWith(".gen.ts")
|
|
37
|
+
) {
|
|
38
|
+
out.push(full);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/** Find call expressions matching `session.messages(...)` and return the
|
|
45
|
+
* source text of each call (from "session.messages(" to its matching ")"). */
|
|
46
|
+
function findSessionMessagesCalls(source: string): string[] {
|
|
47
|
+
const calls: string[] = [];
|
|
48
|
+
const needle = "session.messages(";
|
|
49
|
+
let i = 0;
|
|
50
|
+
while (true) {
|
|
51
|
+
const idx = source.indexOf(needle, i);
|
|
52
|
+
if (idx === -1) break;
|
|
53
|
+
// Skip comments — if the line starts with `*` or `//` we ignore.
|
|
54
|
+
const lineStart = source.lastIndexOf("\n", idx) + 1;
|
|
55
|
+
const linePrefix = source.slice(lineStart, idx).trimStart();
|
|
56
|
+
if (linePrefix.startsWith("//") || linePrefix.startsWith("*")) {
|
|
57
|
+
i = idx + needle.length;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
// Walk forward to find the matching closing paren, respecting
|
|
61
|
+
// brace/bracket/paren nesting.
|
|
62
|
+
let depth = 1;
|
|
63
|
+
let j = idx + needle.length;
|
|
64
|
+
while (j < source.length && depth > 0) {
|
|
65
|
+
const ch = source[j];
|
|
66
|
+
if (ch === "(" || ch === "{" || ch === "[") depth++;
|
|
67
|
+
else if (ch === ")" || ch === "}" || ch === "]") depth--;
|
|
68
|
+
j++;
|
|
69
|
+
}
|
|
70
|
+
if (depth === 0) {
|
|
71
|
+
calls.push(source.slice(idx, j));
|
|
72
|
+
}
|
|
73
|
+
i = j;
|
|
74
|
+
}
|
|
75
|
+
return calls;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
describe("session.messages() callsites must include query.limit", () => {
|
|
79
|
+
const files = walkSourceFiles(PLUGIN_SRC);
|
|
80
|
+
const violations: Array<{ file: string; callText: string }> = [];
|
|
81
|
+
|
|
82
|
+
for (const file of files) {
|
|
83
|
+
// Skip the regression test itself
|
|
84
|
+
if (file.endsWith("session-messages-bounded.test.ts")) continue;
|
|
85
|
+
const source = readFileSync(file, "utf-8");
|
|
86
|
+
const calls = findSessionMessagesCalls(source);
|
|
87
|
+
for (const call of calls) {
|
|
88
|
+
// The call text spans from "session.messages(" to the closing
|
|
89
|
+
// ")". A correct call must mention `limit` (the SDK key) somewhere
|
|
90
|
+
// inside that span — typically `query: { ..., limit: N }`.
|
|
91
|
+
if (!/\blimit\b/.test(call)) {
|
|
92
|
+
violations.push({ file: file.replace(PLUGIN_SRC, "<plugin>/src"), callText: call });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
it("has no unbounded session.messages() calls in plugin code", () => {
|
|
98
|
+
if (violations.length > 0) {
|
|
99
|
+
const report = violations
|
|
100
|
+
.map(
|
|
101
|
+
(v) =>
|
|
102
|
+
`\n in ${v.file}:\n ${v.callText.replace(/\n/g, "\n ").slice(0, 300)}`,
|
|
103
|
+
)
|
|
104
|
+
.join("\n");
|
|
105
|
+
throw new Error(
|
|
106
|
+
`Found ${violations.length} unbounded session.messages() call(s). ` +
|
|
107
|
+
`Add \`limit: 50\` (or appropriate bound) to query.${report}`,
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
expect(violations).toEqual([]);
|
|
111
|
+
});
|
|
112
|
+
});
|
|
@@ -95,15 +95,23 @@ const TokenBreakdown = (props: {
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
// Conversation = real user/assistant text/reasoning/images
|
|
98
|
-
// (excludes injected session-history and excludes tool call I/O)
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
98
|
+
// (excludes injected session-history and excludes tool call I/O).
|
|
99
|
+
//
|
|
100
|
+
// Always show this row even when conversationTokens === 0. The
|
|
101
|
+
// calibrator's residual-distribution math (tokenizer-calibration.ts)
|
|
102
|
+
// can round it down to zero when toolCallsLocal massively dominates
|
|
103
|
+
// conversationLocal — that's a calibration artifact, not a real
|
|
104
|
+
// "zero conversation". Suppressing the row leaves the legend looking
|
|
105
|
+
// truncated, which is more confusing than showing a 0% line. The
|
|
106
|
+
// segment is also skipped in the bar at 0 width because the segment
|
|
107
|
+
// builder uses `Math.max(1, ...)` only when tokens > 0 (see
|
|
108
|
+
// segmentWidths), so the visual bar stays correct either way.
|
|
109
|
+
result.push({
|
|
110
|
+
key: "conv",
|
|
111
|
+
tokens: s.conversationTokens,
|
|
112
|
+
color: COLORS.conversation,
|
|
113
|
+
label: "Conversation",
|
|
114
|
+
})
|
|
107
115
|
|
|
108
116
|
// Tool Calls = tool_use/tool_result/tool/tool-invocation parts in messages
|
|
109
117
|
// (actionable — users can reduce via ctx_reduce)
|
|
@@ -143,8 +151,14 @@ const TokenBreakdown = (props: {
|
|
|
143
151
|
// Calculate raw proportions
|
|
144
152
|
const proportions = segs.map((seg) => seg.tokens / total)
|
|
145
153
|
|
|
146
|
-
// Convert to character widths
|
|
147
|
-
|
|
154
|
+
// Convert to character widths. Minimum 1 char ONLY when the segment
|
|
155
|
+
// has tokens > 0 — zero-token segments (e.g. Conversation when the
|
|
156
|
+
// calibrator rounded it to zero) must get width 0 so the bar stays
|
|
157
|
+
// proportional. The legend row still renders for zero-token segments
|
|
158
|
+
// to keep the row stable.
|
|
159
|
+
let widths = segs.map((seg, i) =>
|
|
160
|
+
seg.tokens > 0 ? Math.max(1, Math.round(proportions[i] * barWidth)) : 0,
|
|
161
|
+
)
|
|
148
162
|
|
|
149
163
|
// Adjust to exactly barWidth
|
|
150
164
|
const sum = widths.reduce((a, b) => a + b, 0)
|
|
@@ -349,10 +363,9 @@ const SidebarContent = (props: {
|
|
|
349
363
|
{s() && s()!.inputTokens > 0 && (
|
|
350
364
|
<box marginTop={1} flexDirection="column">
|
|
351
365
|
{(s()?.contextLimit ?? 0) > 0 && (
|
|
352
|
-
<box width="100%" flexDirection="row" justifyContent="
|
|
353
|
-
<text fg={props.theme.textMuted}>Context</text>
|
|
366
|
+
<box width="100%" flexDirection="row" justifyContent="flex-end">
|
|
354
367
|
<text fg={contextSummaryColor()}>
|
|
355
|
-
<b>{s()!.usagePercentage.toFixed(1)}%</b> · {compactTokens(s()!.inputTokens)} / {compactTokens(s()!.contextLimit)}
|
|
368
|
+
<b>{s()!.usagePercentage.toFixed(1)}%</b> · {compactTokens(s()!.inputTokens)} / {compactTokens(s()!.contextLimit)}
|
|
356
369
|
</text>
|
|
357
370
|
</box>
|
|
358
371
|
)}
|