@cortexkit/opencode-magic-context 0.22.4 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +1 -1
  2. package/dist/agents/magic-context-prompt.d.ts +1 -1
  3. package/dist/agents/magic-context-prompt.d.ts.map +1 -1
  4. package/dist/agents/permissions.d.ts +4 -4
  5. package/dist/agents/permissions.d.ts.map +1 -1
  6. package/dist/config/index.d.ts.map +1 -1
  7. package/dist/config/project-security.d.ts +30 -0
  8. package/dist/config/project-security.d.ts.map +1 -0
  9. package/dist/config/prune-config-leaf.d.ts +27 -0
  10. package/dist/config/prune-config-leaf.d.ts.map +1 -0
  11. package/dist/config/schema/magic-context.d.ts +0 -13
  12. package/dist/config/schema/magic-context.d.ts.map +1 -1
  13. package/dist/config/variable.d.ts.map +1 -1
  14. package/dist/features/magic-context/compartment-storage.d.ts +9 -6
  15. package/dist/features/magic-context/compartment-storage.d.ts.map +1 -1
  16. package/dist/features/magic-context/dreamer/runner.d.ts.map +1 -1
  17. package/dist/features/magic-context/dreamer/scheduler.d.ts.map +1 -1
  18. package/dist/features/magic-context/dreamer/task-prompts.d.ts +1 -1
  19. package/dist/features/magic-context/dreamer/task-prompts.d.ts.map +1 -1
  20. package/dist/features/magic-context/key-files/read-stats.d.ts +0 -2
  21. package/dist/features/magic-context/key-files/read-stats.d.ts.map +1 -1
  22. package/dist/features/magic-context/memory/constants.d.ts +7 -0
  23. package/dist/features/magic-context/memory/constants.d.ts.map +1 -1
  24. package/dist/features/magic-context/memory/embedding-openai.d.ts.map +1 -1
  25. package/dist/features/magic-context/memory/embedding-ssrf.d.ts +29 -0
  26. package/dist/features/magic-context/memory/embedding-ssrf.d.ts.map +1 -0
  27. package/dist/features/magic-context/memory/project-identity.d.ts +10 -0
  28. package/dist/features/magic-context/memory/project-identity.d.ts.map +1 -1
  29. package/dist/features/magic-context/migrations.d.ts.map +1 -1
  30. package/dist/features/magic-context/project-docs-hash.d.ts.map +1 -1
  31. package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
  32. package/dist/features/magic-context/range-parser.d.ts +6 -0
  33. package/dist/features/magic-context/range-parser.d.ts.map +1 -1
  34. package/dist/features/magic-context/storage-db.d.ts +1 -1
  35. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  36. package/dist/features/magic-context/storage-meta-persisted.d.ts +124 -16
  37. package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
  38. package/dist/features/magic-context/storage-meta-shared.d.ts +9 -1
  39. package/dist/features/magic-context/storage-meta-shared.d.ts.map +1 -1
  40. package/dist/features/magic-context/storage-meta.d.ts +1 -1
  41. package/dist/features/magic-context/storage-meta.d.ts.map +1 -1
  42. package/dist/features/magic-context/storage-notes.d.ts.map +1 -1
  43. package/dist/features/magic-context/storage-tags.d.ts +118 -1
  44. package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
  45. package/dist/features/magic-context/storage.d.ts +3 -3
  46. package/dist/features/magic-context/storage.d.ts.map +1 -1
  47. package/dist/features/magic-context/tagger.d.ts +12 -2
  48. package/dist/features/magic-context/tagger.d.ts.map +1 -1
  49. package/dist/features/magic-context/tool-owner-backfill.d.ts +2 -1
  50. package/dist/features/magic-context/tool-owner-backfill.d.ts.map +1 -1
  51. package/dist/features/magic-context/types.d.ts +8 -0
  52. package/dist/features/magic-context/types.d.ts.map +1 -1
  53. package/dist/hooks/auto-update-checker/cache.d.ts.map +1 -1
  54. package/dist/hooks/auto-update-checker/checker.d.ts.map +1 -1
  55. package/dist/hooks/auto-update-checker/semver.d.ts +17 -0
  56. package/dist/hooks/auto-update-checker/semver.d.ts.map +1 -0
  57. package/dist/hooks/magic-context/auto-search-runner.d.ts.map +1 -1
  58. package/dist/hooks/magic-context/channel2-delivery.d.ts +22 -0
  59. package/dist/hooks/magic-context/channel2-delivery.d.ts.map +1 -0
  60. package/dist/hooks/magic-context/command-handler.d.ts +1 -7
  61. package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
  62. package/dist/hooks/magic-context/compaction-marker-manager.d.ts +1 -1
  63. package/dist/hooks/magic-context/compaction-marker-manager.d.ts.map +1 -1
  64. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  65. package/dist/hooks/magic-context/compartment-runner-partial-recomp.d.ts.map +1 -1
  66. package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
  67. package/dist/hooks/magic-context/compartment-runner-types.d.ts +5 -0
  68. package/dist/hooks/magic-context/compartment-runner-types.d.ts.map +1 -1
  69. package/dist/hooks/magic-context/compartment-runner-validation.d.ts +25 -0
  70. package/dist/hooks/magic-context/compartment-runner-validation.d.ts.map +1 -1
  71. package/dist/hooks/magic-context/compartment-runner.d.ts.map +1 -1
  72. package/dist/hooks/magic-context/compartment-trigger.d.ts +47 -2
  73. package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
  74. package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts +117 -0
  75. package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts.map +1 -0
  76. package/dist/hooks/magic-context/decay-render.d.ts.map +1 -1
  77. package/dist/hooks/magic-context/drop-stale-reduce-calls.d.ts +36 -1
  78. package/dist/hooks/magic-context/drop-stale-reduce-calls.d.ts.map +1 -1
  79. package/dist/hooks/magic-context/emergency-drop.d.ts +86 -0
  80. package/dist/hooks/magic-context/emergency-drop.d.ts.map +1 -0
  81. package/dist/hooks/magic-context/event-handler.d.ts +6 -4
  82. package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
  83. package/dist/hooks/magic-context/execute-flush.d.ts.map +1 -1
  84. package/dist/hooks/magic-context/execute-status.d.ts +1 -1
  85. package/dist/hooks/magic-context/execute-status.d.ts.map +1 -1
  86. package/dist/hooks/magic-context/heuristic-cleanup.d.ts +10 -3
  87. package/dist/hooks/magic-context/heuristic-cleanup.d.ts.map +1 -1
  88. package/dist/hooks/magic-context/hook-handlers.d.ts +3 -9
  89. package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -1
  90. package/dist/hooks/magic-context/hook.d.ts +3 -5
  91. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  92. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  93. package/dist/hooks/magic-context/note-visibility.d.ts +1 -1
  94. package/dist/hooks/magic-context/protected-tail-boundary.d.ts +132 -0
  95. package/dist/hooks/magic-context/protected-tail-boundary.d.ts.map +1 -0
  96. package/dist/hooks/magic-context/read-session-chunk.d.ts +55 -0
  97. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
  98. package/dist/hooks/magic-context/read-session-formatting.d.ts.map +1 -1
  99. package/dist/hooks/magic-context/read-session-raw.d.ts +91 -0
  100. package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -1
  101. package/dist/hooks/magic-context/read-session-true-raw-tokens.d.ts +70 -0
  102. package/dist/hooks/magic-context/read-session-true-raw-tokens.d.ts.map +1 -0
  103. package/dist/hooks/magic-context/reference-retrieval.d.ts.map +1 -1
  104. package/dist/hooks/magic-context/send-session-notification.d.ts +2 -1
  105. package/dist/hooks/magic-context/send-session-notification.d.ts.map +1 -1
  106. package/dist/hooks/magic-context/system-prompt-hash.d.ts +0 -1
  107. package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
  108. package/dist/hooks/magic-context/tag-messages.d.ts +3 -0
  109. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
  110. package/dist/hooks/magic-context/todo-view.d.ts +1 -1
  111. package/dist/hooks/magic-context/tool-drop-target.d.ts +9 -0
  112. package/dist/hooks/magic-context/tool-drop-target.d.ts.map +1 -1
  113. package/dist/hooks/magic-context/transform-compartment-phase.d.ts +15 -0
  114. package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -1
  115. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +7 -10
  116. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  117. package/dist/hooks/magic-context/transform.d.ts +14 -9
  118. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  119. package/dist/hooks/magic-context/upgrade-reminder.d.ts +2 -1
  120. package/dist/hooks/magic-context/upgrade-reminder.d.ts.map +1 -1
  121. package/dist/index.d.ts.map +1 -1
  122. package/dist/index.js +5682 -1281
  123. package/dist/plugin/conflict-warning-hook.d.ts.map +1 -1
  124. package/dist/plugin/embedding-bootstrap-helpers.d.ts.map +1 -1
  125. package/dist/plugin/hooks/create-session-hooks.d.ts +1 -1
  126. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  127. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  128. package/dist/plugin/tool-registry.d.ts.map +1 -1
  129. package/dist/shared/announcement.d.ts +4 -6
  130. package/dist/shared/announcement.d.ts.map +1 -1
  131. package/dist/shared/live-server-client.d.ts +50 -0
  132. package/dist/shared/live-server-client.d.ts.map +1 -0
  133. package/dist/shared/prompt-context.d.ts +31 -0
  134. package/dist/shared/prompt-context.d.ts.map +1 -0
  135. package/dist/shared/rpc-server.d.ts.map +1 -1
  136. package/dist/shared/rpc-types.d.ts +0 -3
  137. package/dist/shared/rpc-types.d.ts.map +1 -1
  138. package/dist/shared/safe-notification-target.d.ts +23 -0
  139. package/dist/shared/safe-notification-target.d.ts.map +1 -0
  140. package/dist/shared/tag-transcript.d.ts.map +1 -1
  141. package/dist/shared/transcript-opencode.d.ts.map +1 -1
  142. package/dist/shared/transcript.d.ts +15 -1
  143. package/dist/shared/transcript.d.ts.map +1 -1
  144. package/dist/tools/ctx-expand/constants.d.ts +1 -1
  145. package/dist/tools/ctx-expand/constants.d.ts.map +1 -1
  146. package/dist/tools/ctx-expand/tools.d.ts.map +1 -1
  147. package/dist/tools/ctx-memory/constants.d.ts +1 -1
  148. package/dist/tools/ctx-memory/constants.d.ts.map +1 -1
  149. package/dist/tools/ctx-memory/tools.d.ts.map +1 -1
  150. package/dist/tools/ctx-memory/types.d.ts +7 -3
  151. package/dist/tools/ctx-memory/types.d.ts.map +1 -1
  152. package/dist/tools/ctx-note/constants.d.ts +1 -1
  153. package/dist/tools/ctx-note/constants.d.ts.map +1 -1
  154. package/dist/tools/ctx-note/tools.d.ts.map +1 -1
  155. package/dist/tools/ctx-note/types.d.ts +4 -0
  156. package/dist/tools/ctx-note/types.d.ts.map +1 -1
  157. package/dist/tools/ctx-search/constants.d.ts +1 -1
  158. package/dist/tools/ctx-search/constants.d.ts.map +1 -1
  159. package/dist/tools/ctx-search/tools.d.ts.map +1 -1
  160. package/dist/tui/data/context-db.d.ts.map +1 -1
  161. package/package.json +2 -1
  162. package/src/shared/announcement.test.ts +18 -0
  163. package/src/shared/announcement.ts +35 -20
  164. package/src/shared/live-server-client.ts +152 -0
  165. package/src/shared/prompt-context.ts +135 -0
  166. package/src/shared/rpc-server.ts +18 -2
  167. package/src/shared/rpc-types.ts +0 -3
  168. package/src/shared/safe-notification-target.test.ts +97 -0
  169. package/src/shared/safe-notification-target.ts +102 -0
  170. package/src/shared/tag-transcript.test.ts +34 -8
  171. package/src/shared/tag-transcript.ts +110 -8
  172. package/src/shared/transcript-opencode.ts +15 -5
  173. package/src/shared/transcript.ts +20 -2
  174. package/src/tui/data/context-db.ts +0 -3
  175. package/src/tui/index.tsx +11 -10
  176. package/src/tui/slots/sidebar-content.tsx +1 -26
  177. package/dist/hooks/magic-context/apply-context-nudge.d.ts +0 -5
  178. package/dist/hooks/magic-context/apply-context-nudge.d.ts.map +0 -1
  179. package/dist/hooks/magic-context/nudge-bands.d.ts +0 -6
  180. package/dist/hooks/magic-context/nudge-bands.d.ts.map +0 -1
  181. package/dist/hooks/magic-context/nudge-injection.d.ts +0 -7
  182. package/dist/hooks/magic-context/nudge-injection.d.ts.map +0 -1
  183. package/dist/hooks/magic-context/nudge-placement-store.d.ts +0 -15
  184. package/dist/hooks/magic-context/nudge-placement-store.d.ts.map +0 -1
  185. package/dist/hooks/magic-context/nudger.d.ts +0 -21
  186. package/dist/hooks/magic-context/nudger.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/hooks/auto-update-checker/cache.ts"],"names":[],"mappings":"AAmBA,UAAU,wBAAwB;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CAC3B;AAoHD,wBAAgB,qBAAqB,CACjC,sBAAsB,GAAE,MAAM,GAAG,IAAyC,GAC3E,wBAAwB,GAAG,IAAI,CA2CjC;AAED,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAAqB,EAClC,sBAAsB,GAAE,MAAM,GAAG,IAAyC,GAC3E,MAAM,GAAG,IAAI,CAyBf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GAC3D,OAAO,CAAC,OAAO,CAAC,CAgDlB"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/hooks/auto-update-checker/cache.ts"],"names":[],"mappings":"AAoBA,UAAU,wBAAwB;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CAC3B;AAoHD,wBAAgB,qBAAqB,CACjC,sBAAsB,GAAE,MAAM,GAAG,IAAyC,GAC3E,wBAAwB,GAAG,IAAI,CA2CjC;AAED,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAAqB,EAClC,sBAAsB,GAAE,MAAM,GAAG,IAAyC,GAC3E,MAAM,GAAG,IAAI,CAkCf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GAC3D,OAAO,CAAC,OAAO,CAAC,CAgDlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/hooks/auto-update-checker/checker.ts"],"names":[],"mappings":"AAeA,OAAO,EAIH,KAAK,eAAe,EACvB,MAAM,SAAS,CAAC;AAqCjB,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAY7D;AA4ED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYnE;AAED,wBAAgB,gCAAgC,CAC5C,gBAAgB,GAAE,MAAwB,GAC3C,MAAM,GAAG,IAAI,CAOf;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CA2BzE;AAQD,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CA0BpE;AAED,wBAAgB,mBAAmB,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACnB,OAAO,CAyCT;AAMD,wBAAsB,gBAAgB,CAClC,OAAO,SAAW,EAClB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACjF,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuBxB"}
1
+ {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/hooks/auto-update-checker/checker.ts"],"names":[],"mappings":"AAgBA,OAAO,EAIH,KAAK,eAAe,EACvB,MAAM,SAAS,CAAC;AAqCjB,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAY7D;AA4ED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYnE;AAED,wBAAgB,gCAAgC,CAC5C,gBAAgB,GAAE,MAAwB,GAC3C,MAAM,GAAG,IAAI,CAOf;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CA2BzE;AAQD,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CA0BpE;AAED,wBAAgB,mBAAmB,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACnB,OAAO,CAyCT;AAMD,wBAAsB,gBAAgB,CAClC,OAAO,SAAW,EAClB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACjF,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuBxB"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Strict semver validator for the auto-update path.
3
+ *
4
+ * The plugin version string flows from the npm registry / dist-tags into
5
+ * package.json's dependency spec before `npm install`. A malformed or crafted
6
+ * value (`npm:@evil/pkg@1.0.0`, `file:/tmp/x`, `git+ssh://...`) must never be
7
+ * written there — this is the arbitrary-package-install / SSRF guard.
8
+ *
9
+ * Lives in its own leaf module (no imports beyond this) so both `cache.ts` and
10
+ * `checker.ts` can use it without creating a circular import between them
11
+ * (`cache.ts` imports `checker.ts` for the runtime package.json path; if
12
+ * `checker.ts` also imported this from `cache.ts`, the cycle breaks static
13
+ * export resolution on a cold module graph — CI / fresh installs — even though
14
+ * a warm bun cache tolerates it).
15
+ */
16
+ export declare function isValidSemver(version: string): boolean;
17
+ //# sourceMappingURL=semver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semver.d.ts","sourceRoot":"","sources":["../../../src/hooks/auto-update-checker/semver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD"}
@@ -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;AAIpD,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;AAyID;;;;;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"}
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;AAIpD,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;AAyID;;;;;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,CA2JhB;AAED,2CAA2C;AAC3C,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,sDAAsD;AACtD,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAElE"}
@@ -0,0 +1,22 @@
1
+ import type { Database } from "../../shared/sqlite";
2
+ export interface Channel2DeliveryDeps {
3
+ db: Database;
4
+ serverUrl?: string;
5
+ directory: string;
6
+ /** Reclaimable tool-output tokens for the wording + stale-intent revalidation. */
7
+ reclaimableTokens?: number;
8
+ /**
9
+ * The usable working range measured at the same Channel-1 baseline refresh
10
+ * (see Channel1State.usableTokens). Required to re-run the FULL trigger
11
+ * predicate at delivery time.
12
+ */
13
+ usableTokens?: number;
14
+ }
15
+ /**
16
+ * Attempt to deliver a pending Channel 2 ceiling nudge for `sessionId`. Safe to
17
+ * call on every final-stop `message.updated` — it no-ops unless a `pending`
18
+ * intent exists and the live server is reachable. Returns true only when a
19
+ * delivery was confirmed (intent moved to `delivered`).
20
+ */
21
+ export declare function maybeDeliverChannel2(sessionId: string, deps: Channel2DeliveryDeps): Promise<boolean>;
22
+ //# sourceMappingURL=channel2-delivery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel2-delivery.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/channel2-delivery.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,WAAW,oBAAoB;IACjC,EAAE,EAAE,QAAQ,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAyBD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACtC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,oBAAoB,GAC3B,OAAO,CAAC,OAAO,CAAC,CAsJlB"}
@@ -37,7 +37,6 @@ export interface CommandExecuteOutput {
37
37
  export declare function createMagicContextCommandHandler(deps: {
38
38
  db: Database;
39
39
  protectedTags: number;
40
- nudgeIntervalTokens?: number;
41
40
  executeThresholdPercentage?: number | {
42
41
  default: number;
43
42
  [modelKey: string]: number;
@@ -57,12 +56,7 @@ export declare function createMagicContextCommandHandler(deps: {
57
56
  onFlush?: (sessionId: string) => void;
58
57
  /** Runs /ctx-recomp. When `range` is provided, runs partial recomp over
59
58
  * that range (snapped to enclosing compartment boundaries). When omitted,
60
- * runs full recomp from message 1 to the protected tail.
61
- *
62
- * TODO(worker-f): once bumpSessionFactsVersion is exported, the underlying
63
- * recomp publish path must call it in the same transaction that replaces
64
- * session_facts. Command parsing stays here; fact writes happen in the
65
- * runner/storage layer. */
59
+ * runs full recomp from message 1 to the protected tail. */
66
60
  executeRecomp?: (sessionId: string, options?: {
67
61
  range?: PartialRecompRange;
68
62
  }) => Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/command-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/command-handler.ts"],"names":[],"mappings":"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"}
@@ -65,7 +65,7 @@ export declare function applyDeferredCompactionMarker(db: Database, sessionId: s
65
65
  * `preserveInjectionCacheUntilConsumed === false`). Deferred path uses
66
66
  * `applyDeferredCompactionMarker` from postprocess drain.
67
67
  */
68
- export declare function updateCompactionMarkerAfterPublication(db: Database, sessionId: string, lastCompartmentEnd: number, directory?: string): void;
68
+ export declare function updateCompactionMarkerAfterPublication(db: Database, sessionId: string, lastCompartmentEnd: number, directory?: string): boolean;
69
69
  /**
70
70
  * Remove the compaction marker for a session (e.g. on session.deleted).
71
71
  */
@@ -1 +1 @@
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
+ {"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,OAAO,CAsDT;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,CAsGnE"}
@@ -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;AA6BhC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAqBxE,+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,CA2hBpF"}
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;AAgChC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAgCxE,+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,CAmpBpF"}
@@ -1 +1 @@
1
- {"version":3,"file":"compartment-runner-partial-recomp.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-partial-recomp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,WAAW,EAEd,MAAM,kDAAkD,CAAC;AAwB1D,OAAO,KAAK,EAAwB,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAW9F,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;AAuBD,wBAAsB,4BAA4B,CAC9C,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,kBAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CA2YjB"}
1
+ {"version":3,"file":"compartment-runner-partial-recomp.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-partial-recomp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,WAAW,EAEd,MAAM,kDAAkD,CAAC;AAuB1D,OAAO,KAAK,EAAwB,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAW9F,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;AAuBD,wBAAsB,4BAA4B,CAC9C,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,kBAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CA2YjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"compartment-runner-recomp.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-recomp.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAMpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAmD9F,wBAAgB,kCAAkC,CAC9C,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACjB;IACC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvD,GAAG,IAAI,CAgDP;AAED,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAid/F"}
1
+ {"version":3,"file":"compartment-runner-recomp.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-recomp.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAMpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAmD9F,wBAAgB,kCAAkC,CAC9C,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACjB;IACC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvD,GAAG,IAAI,CAgDP;AAED,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsf/F"}
@@ -1,6 +1,7 @@
1
1
  import type { PluginContext } from "../../plugin/types";
2
2
  import type { Database } from "../../shared/sqlite";
3
3
  import type { ParsedEvent } from "./compartment-parser";
4
+ import type { ProtectedTailBoundarySnapshot } from "./protected-tail-boundary";
4
5
  import type { NotificationParams } from "./send-session-notification";
5
6
  /**
6
7
  * Live progress for a running recomp / session-upgrade, surfaced in the TUI
@@ -59,6 +60,10 @@ export interface CompartmentRunnerDeps {
59
60
  */
60
61
  historianChunkTokens: number;
61
62
  historianTimeoutMs?: number;
63
+ /** Immutable protected-tail boundary resolved by the trigger/force path. Tests may omit it and use the default-snapshot factory. */
64
+ boundarySnapshot?: ProtectedTailBoundarySnapshot;
65
+ /** Current resolved main-model context limit used to reject stale boundary snapshots after model switches. */
66
+ currentContextLimit?: number;
62
67
  /** Resolved fallback chain for historian-family calls (historian + compressor). */
63
68
  fallbackModels?: readonly string[];
64
69
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"compartment-runner-types.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compartment-runner-types.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-types.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,31 @@ export declare function validateHistorianOutput(text: string, _sessionId: string
12
12
  end: number;
13
13
  }>;
14
14
  }, _priorCompartments: StoredCompartmentRange[], sequenceOffset: number): ValidatedHistorianPassResult;
15
+ /**
16
+ * Number of CONSECUTIVE historian failures before a failure notice escalates
17
+ * from "transient, will retry" reassurance to an actionable "your historian
18
+ * model needs attention" alert. The historian retries on every turn and silently
19
+ * iterates its whole fallback chain, so a single failure is almost always a
20
+ * transient blip (a model hiccup, a provider timeout) that the next turn fixes on
21
+ * its own. Only a sustained run of failures indicates a real misconfiguration
22
+ * worth alarming the user about. 3 mirrors the dreamer circuit-breaker threshold.
23
+ */
24
+ export declare const HISTORIAN_PERSISTENT_FAILURE_THRESHOLD = 3;
25
+ /**
26
+ * User-facing notice for a historian (history-comparting) failure. The framing is
27
+ * chosen by `failureCount` so users aren't alarmed by harmless transient blips:
28
+ *
29
+ * - Below the threshold → calm reassurance: Magic Context retries automatically
30
+ * on the next turn, nothing is lost, and the conversation continues normally.
31
+ * We explicitly promise we'll only speak up again if it keeps failing.
32
+ * - At/above the threshold → escalation: the failures are persistent, so it's
33
+ * likely the configured historian model is misconfigured or unreachable, with
34
+ * the last error and the actionable next step (check magic-context.jsonc).
35
+ *
36
+ * Shared by both harnesses so the wording (and the transient/persistent contract)
37
+ * never drifts between OpenCode and Pi.
38
+ */
39
+ export declare function buildHistorianFailureNotice(failureCount: number, lastError: string): string;
15
40
  export declare function buildHistorianRepairPrompt(originalPrompt: string, previousOutput: string, validationError: string): string;
16
41
  export declare function validateStoredCompartments(compartments: Array<{
17
42
  startMessage: number;
@@ -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;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,CA2C9B;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
+ {"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,CA2C9B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,sCAAsC,IAAI,CAAC;AAExD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAiB3F;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 +1 @@
1
- {"version":3,"file":"compartment-runner.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner.ts"],"names":[],"mappings":"AASA,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;AA0BD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CA0CvE;AAED,MAAM,WAAW,2BAA2B;IACxC;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,0BAA0B;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,8BAA8B,CAChD,IAAI,EAAE,qBAAqB,EAC3B,OAAO,GAAE,2BAAgC,GAC1C,OAAO,CAAC,0BAA0B,CAAC,CAuDrC;AAED,wBAAsB,oBAAoB,CACtC,IAAI,EAAE,qBAAqB,EAC3B,OAAO,GAAE,2BAAgC,GAC1C,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"compartment-runner.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner.ts"],"names":[],"mappings":"AASA,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;AA0BD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CA8CvE;AAED,MAAM,WAAW,2BAA2B;IACxC;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,0BAA0B;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,8BAA8B,CAChD,IAAI,EAAE,qBAAqB,EAC3B,OAAO,GAAE,2BAAgC,GAC1C,OAAO,CAAC,0BAA0B,CAAC,CAuDrC;AAED,wBAAsB,oBAAoB,CACtC,IAAI,EAAE,qBAAqB,EAC3B,OAAO,GAAE,2BAAgC,GAC1C,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import type { ContextUsage, SessionMeta, TagEntry } from "../../features/magic-context/types";
2
2
  import type { Database } from "../../shared/sqlite";
3
+ import { type ProtectedTailBoundarySnapshot } from "./protected-tail-boundary";
4
+ import { type InMemoryMessageView, type RawMessage } from "./read-session-raw";
3
5
  declare const POST_DROP_TARGET_RATIO = 0.75;
4
6
  declare const FORCE_COMPARTMENT_PERCENTAGE = 80;
5
7
  declare const BLOCK_UNTIL_DONE_PERCENTAGE = 95;
@@ -8,10 +10,53 @@ export { BLOCK_UNTIL_DONE_PERCENTAGE, FORCE_COMPARTMENT_PERCENTAGE, FORCE_MATERI
8
10
  export interface CompartmentTriggerResult {
9
11
  shouldFire: boolean;
10
12
  reason?: "projected_headroom" | "force_80" | "commit_clusters" | "tail_size";
13
+ /**
14
+ * The protected-tail boundary snapshot the decision was computed from.
15
+ * Present whenever the tail inspection ran. Callers that start the
16
+ * historian in the SAME pass (transform path) should hand this to
17
+ * runCompartmentPhase so it doesn't re-resolve the boundary — one
18
+ * resolution per pass, and the historian sees exactly the snapshot the
19
+ * decision saw.
20
+ */
21
+ boundarySnapshot?: ProtectedTailBoundarySnapshot;
11
22
  }
23
+ /**
24
+ * In-memory tail source for the trigger — the transform's `args.messages`
25
+ * converted to absolute-ordinal RawMessages (via `buildInMemoryTailRawMessages`
26
+ * with `anchorFound=true`). When supplied, the tail inspection primes the
27
+ * raw-message cache from memory and performs ZERO opencode.db reads on the hot
28
+ * path. Callers must only pass an ANCHORED conversion — an unanchored one has
29
+ * assumed ordinals; leave it undefined to fall through to the DB-primed path.
30
+ */
31
+ export interface InMemoryTailSource {
32
+ messages: RawMessage[];
33
+ absoluteMessageCount: number;
34
+ }
35
+ /**
36
+ * Convert the transform's in-memory `args.messages` into a trigger tail source,
37
+ * applying the anchored-only gate:
38
+ *
39
+ * - Compartments exist + boundary has a message id → require the anchor to be
40
+ * FOUND in the array (`anchorFound`). OpenCode's `filterCompacted` stops at
41
+ * our compaction marker (the boundary message), so the anchor is normally the
42
+ * array head; when the marker drain lags, the anchor sits a few messages in
43
+ * and the converter drops the already-compartmentalized prefix. If it isn't
44
+ * present at all (deleted, or the marker advanced past it), ordinal
45
+ * assignment would be an unverified guess → return undefined so the caller
46
+ * falls through to the DB-primed read.
47
+ * - Compartments exist but the boundary row has NO message id (legacy rows) →
48
+ * undefined (DB path, as before).
49
+ * - No compartments (#132 early-session) → the whole array is the session;
50
+ * ordinals from 1, no anchor needed.
51
+ *
52
+ * Live-verified byte-identical to the DB path on every boundary decision field
53
+ * (offset, protectedTailStart, eligibleEndOrdinal, N, trueRawEligibleTokens,
54
+ * arc fencing) across real sessions before the cutover.
55
+ */
56
+ export declare function buildTriggerInMemoryTail(db: Database, sessionId: string, messages: readonly InMemoryMessageView[]): InMemoryTailSource | undefined;
12
57
  export declare function getProactiveCompartmentTriggerPercentage(executeThresholdPercentage: number): number;
13
- export declare function checkCompartmentTrigger(db: Database, sessionId: string, sessionMeta: SessionMeta, usage: ContextUsage, _previousPercentage: number, executeThresholdPercentage: number, triggerBudget: number, autoDropToolAge?: number, protectedTagCount?: number, clearReasoningAge?: number, dropToolStructure?: boolean, commitClusterTrigger?: {
58
+ export declare function checkCompartmentTrigger(db: Database, sessionId: string, sessionMeta: SessionMeta, usage: ContextUsage, _previousPercentage: number, executeThresholdPercentage: number, triggerBudget: number, clearReasoningAge?: number, commitClusterTrigger?: {
14
59
  enabled: boolean;
15
60
  min_clusters: number;
16
- }, preloadedActiveTags?: readonly TagEntry[]): CompartmentTriggerResult;
61
+ }, preloadedActiveTags?: readonly TagEntry[], contextLimit?: number, inMemoryTail?: InMemoryTailSource): CompartmentTriggerResult;
17
62
  //# sourceMappingURL=compartment-trigger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compartment-trigger.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-trigger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AASpD,QAAA,MAAM,sBAAsB,OAAO,CAAC;AAKpC,QAAA,MAAM,4BAA4B,KAAK,CAAC;AACxC,QAAA,MAAM,2BAA2B,KAAK,CAAC;AACvC,QAAA,MAAM,4BAA4B,KAAK,CAAC;AAExC,OAAO,EACH,2BAA2B,EAC3B,4BAA4B,EAC5B,4BAA4B,EAC5B,sBAAsB,GACzB,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,oBAAoB,GAAG,UAAU,GAAG,iBAAiB,GAAG,WAAW,CAAC;CAChF;AAED,wBAAgB,wCAAwC,CACpD,0BAA0B,EAAE,MAAM,GACnC,MAAM,CAER;AAgJD,wBAAgB,uBAAuB,CACnC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY,EACnB,mBAAmB,EAAE,MAAM,EAC3B,0BAA0B,EAAE,MAAM,EAClC,aAAa,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,EACxB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,iBAAiB,CAAC,EAAE,MAAM,EAC1B,iBAAiB,UAAO,EACxB,oBAAoB,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EACjE,mBAAmB,CAAC,EAAE,SAAS,QAAQ,EAAE,GAC1C,wBAAwB,CAiI1B"}
1
+ {"version":3,"file":"compartment-trigger.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-trigger.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAIH,KAAK,6BAA6B,EAErC,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EAEH,KAAK,mBAAmB,EACxB,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAC;AAG5B,QAAA,MAAM,sBAAsB,OAAO,CAAC;AAKpC,QAAA,MAAM,4BAA4B,KAAK,CAAC;AACxC,QAAA,MAAM,2BAA2B,KAAK,CAAC;AACvC,QAAA,MAAM,4BAA4B,KAAK,CAAC;AAExC,OAAO,EACH,2BAA2B,EAC3B,4BAA4B,EAC5B,4BAA4B,EAC5B,sBAAsB,GACzB,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,oBAAoB,GAAG,UAAU,GAAG,iBAAiB,GAAG,WAAW,CAAC;IAC7E;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,6BAA6B,CAAC;CACpD;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CACpC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,SAAS,mBAAmB,EAAE,GACzC,kBAAkB,GAAG,SAAS,CAchC;AAED,wBAAgB,wCAAwC,CACpD,0BAA0B,EAAE,MAAM,GACnC,MAAM,CAER;AA0MD,wBAAgB,uBAAuB,CACnC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY,EACnB,mBAAmB,EAAE,MAAM,EAC3B,0BAA0B,EAAE,MAAM,EAClC,aAAa,EAAE,MAAM,EACrB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,oBAAoB,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EACjE,mBAAmB,CAAC,EAAE,SAAS,QAAQ,EAAE,EACzC,YAAY,CAAC,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,kBAAkB,GAClC,wBAAwB,CAiR1B"}
@@ -0,0 +1,117 @@
1
+ import type { MessageLike } from "./tag-messages";
2
+ export type Channel1Level = "gentle" | "firm" | "urgent";
3
+ /**
4
+ * Per-session metric baseline, snapshotted at the END of each transform pass
5
+ * (post-drop, so `tailToolTokens` reflects the actually-rendered tail) and read
6
+ * by Channel 1 in `tool.execute.after`. `turnToolTokens` accumulates this turn's
7
+ * tool outputs since the last snapshot; it is zeroed when the snapshot is
8
+ * refreshed (a proven turn transition), NOT on `chat.message` — chat.message
9
+ * fires mid-turn for queued messages and would erase live-turn bytes.
10
+ * Only written for full-feature (primary) sessions; its absence is how Channel 1
11
+ * stays off for subagents in Phase 1.
12
+ */
13
+ export interface Channel1State {
14
+ tailToolTokens: number;
15
+ historyBudgetTokens: number;
16
+ contextLimit: number;
17
+ executeThresholdPercentage: number;
18
+ lastInputTokens: number;
19
+ turnToolTokens: number;
20
+ /**
21
+ * The usable working range (executeThresholdTokens − inputTokens +
22
+ * liveTail) measured at the same baseline refresh. Carried so Channel-2
23
+ * delivery can revalidate the FULL trigger predicate (reclaimable ≥
24
+ * usable/3), not just the 10k floor — a floor-only recheck let a stale
25
+ * intent deliver and permanently burn the one-per-session ceiling cap.
26
+ */
27
+ usableTokens: number;
28
+ /**
29
+ * True once the agent calls `ctx_reduce` after the last baseline refresh.
30
+ * Suppresses Channel 1 until the next transform recomputes `tailToolTokens`
31
+ * from the now-reduced messages (the in-flight baseline still shows the
32
+ * pre-reduce high value, so without this we'd nag on the very next tool).
33
+ * Reset to false on each baseline refresh.
34
+ */
35
+ reducedSinceRefresh: boolean;
36
+ }
37
+ export declare const CHANNEL1_SENTINEL = "<system-reminder>";
38
+ export declare const TOKENS_PER_BYTE = 0.25;
39
+ export declare const CHANNEL1_FLOOR_TOKENS = 10000;
40
+ export declare const CHANNEL1_REFIRE_FLOOR_TOKENS = 10000;
41
+ export declare function channel1RefireTokens(historyBudgetTokens: number): number;
42
+ /**
43
+ * Whether a tool output string is a drop/truncation sentinel (so it should NOT
44
+ * count toward reclaimable `undropped` tokens). Exported so the Pi harness — whose
45
+ * tool output lives in `toolResult.content[].text`, not OpenCode's
46
+ * `parts[].state.output` — can reuse the exact same sentinel detection.
47
+ */
48
+ export declare function isDroppedToolOutput(output: string): boolean;
49
+ /**
50
+ * Sum approximate tokens of non-dropped tool output from a list of already-
51
+ * extracted output strings. Harness-agnostic core shared by OpenCode
52
+ * (`computeTailToolTokens`) and Pi (`toolResult.content[].text` extraction).
53
+ */
54
+ export declare function tailToolTokensFromStrings(outputs: readonly string[]): number;
55
+ /**
56
+ * Sum approximate tokens of non-dropped tool output across the visible
57
+ * messages. The compartment-injection step has already trimmed everything
58
+ * before the last compartment boundary, so `messages` IS the live tail —
59
+ * walking it gives the post-boundary undropped tool tokens without any tag
60
+ * query or boundary filter.
61
+ */
62
+ export declare function computeTailToolTokens(messages: MessageLike[]): number;
63
+ /** Approximate tokens for a single tool output string (prospective per-turn accounting). */
64
+ export declare function toolOutputTokens(output: string): number;
65
+ export interface TailTokenEstimate {
66
+ /** Non-dropped tool-output tokens: reclaimable by ctx_reduce. */
67
+ tailToolTokens: number;
68
+ /** Approximate full live-tail tokens: conversation + tool calls/results. */
69
+ liveTailTokens: number;
70
+ }
71
+ /**
72
+ * Fallback when the tag-token aggregate is temporarily unavailable. It estimates
73
+ * both reclaimable tool output and the full live tail; using only tool output for
74
+ * liveTail makes usableTokens look too small and can arm Channel 2 prematurely.
75
+ */
76
+ export declare function computeTailTokenEstimate(messages: MessageLike[]): TailTokenEstimate;
77
+ export interface Channel1Decision {
78
+ fire: boolean;
79
+ level: Channel1Level;
80
+ undroppedTokens: number;
81
+ /** Value to persist into `last_nudge_undropped` (caller writes it). */
82
+ nextLastNudge: number;
83
+ /** Value to persist into `last_nudge_level` (caller writes it). */
84
+ nextLastNudgeLevel: Channel1Level | "";
85
+ }
86
+ /**
87
+ * Pure decision: should Channel 1 fire, and at what level? Caller supplies the
88
+ * already-computed `undroppedTokens` (tail baseline + this turn's accumulator)
89
+ * and `pressure`. No DB access here — fully unit-testable.
90
+ */
91
+ export declare function decideChannel1(input: {
92
+ undroppedTokens: number;
93
+ pressure: number;
94
+ historyBudgetTokens: number;
95
+ lastNudgeUndropped: number;
96
+ lastNudgeLevel: Channel1Level | "";
97
+ hasRecentReduce: boolean;
98
+ }): Channel1Decision;
99
+ /** Compute pressure from prospective per-turn token estimates. */
100
+ export declare function computePressure(input: {
101
+ lastInputTokens: number;
102
+ turnToolTokens: number;
103
+ contextLimit: number;
104
+ executeThresholdPercentage: number;
105
+ }): number;
106
+ export declare const CHANNEL2_USABLE_FRACTION: number;
107
+ export declare const CHANNEL2_MIN_RECLAIMABLE = 10000;
108
+ /** Pure decision: should the Channel 2 ceiling intent be recorded this pass? */
109
+ export declare function shouldTriggerChannel2(input: {
110
+ reclaimableTokens: number;
111
+ usableTokens: number;
112
+ }): boolean;
113
+ /** The synthetic user `<system-reminder>` body delivered by Channel 2. */
114
+ export declare function buildChannel2Reminder(undroppedTokens: number): string;
115
+ /** Build the `<system-reminder name="mc-ctx-reduce">…</system-reminder>` body for a level. */
116
+ export declare function buildChannel1Reminder(level: Channel1Level, undroppedTokens: number): string;
117
+ //# sourceMappingURL=ctx-reduce-nudge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ctx-reduce-nudge.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/ctx-reduce-nudge.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"decay-render.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/decay-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAuC,SAAS,EAAa,MAAM,eAAe,CAAC;AAG1F,+DAA+D;AAC/D,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAEpD,4EAA4E;AAC5E,MAAM,WAAW,sBAAsB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAuCD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvF;AA4DD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC5C,YAAY,EAAE,sBAAsB,EAAE,CAAC;IACvC,mBAAmB,EAAE,MAAM,CAAC;CAC/B,GAAG,MAAM,CAqCT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGzE;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"decay-render.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/decay-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAuC,SAAS,EAAa,MAAM,eAAe,CAAC;AAG1F,+DAA+D;AAC/D,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAEpD,4EAA4E;AAC5E,MAAM,WAAW,sBAAsB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAqDD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvF;AAiED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC5C,YAAY,EAAE,sBAAsB,EAAE,CAAC;IACvC,mBAAmB,EAAE,MAAM,CAAC;CAC/B,GAAG,MAAM,CAqCT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGzE;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1,4 +1,39 @@
1
1
  import type { MessageLike } from "./tag-messages";
2
2
  export declare function isReduceToolPart(part: unknown): boolean;
3
- export declare function dropStaleReduceCalls(messages: MessageLike[], protectedCount?: number): boolean;
3
+ export interface StaleReduceStripResult {
4
+ /** True if any ctx_reduce part was sentinelized this pass. */
5
+ didDrop: boolean;
6
+ /** Message ids newly detected as aged this pass (only when detect=true). */
7
+ newlyStrippedIds: string[];
8
+ }
9
+ /**
10
+ * Sentinel-strip aged `ctx_reduce` tool parts using a FROZEN replay watermark.
11
+ *
12
+ * The cache-stability contract: a defer pass must replay byte-identical to the
13
+ * prior pass. An earlier version recomputed eligibility from the live
14
+ * `messages.length - protectedCount` boundary on every pass — but that boundary
15
+ * MOVES as the conversation grows, so a defer pass with tail growth would newly
16
+ * strip an older ctx_reduce call mid-prefix (for Anthropic the empty sentinel is
17
+ * filtered before the wire and the dropped tool_result lets the SDK merge
18
+ * adjacent assistants → the message vanishes + the array shifts → the cached
19
+ * prefix busts). That is exactly the bug this design removes.
20
+ *
21
+ * Instead, eligibility is an id-keyed frozen set:
22
+ * - REPLAY (every pass): strip ctx_reduce parts in any message whose `info.id`
23
+ * is in `frozenIds`. Growth-invariant and compaction-safe (a missing id is a
24
+ * no-op). This is what makes defer passes byte-identical.
25
+ * - DETECT (cache-busting passes only, `detect=true`): additionally scan the
26
+ * pre-protected region for ctx_reduce calls not yet frozen, strip them, and
27
+ * return their ids in `newlyStrippedIds` so the caller can advance the
28
+ * persisted watermark. Detection happens only on passes where the wire is
29
+ * already allowed to change, so it never busts a defer pass.
30
+ *
31
+ * Messages without a stable `info.id` are never newly detected (they cannot be
32
+ * frozen for deterministic replay), so they are left intact rather than stripped
33
+ * inconsistently.
34
+ */
35
+ export declare function dropStaleReduceCalls(messages: MessageLike[], frozenIds: Set<string>, options?: {
36
+ detect?: boolean;
37
+ protectedCount?: number;
38
+ }): StaleReduceStripResult;
4
39
  //# sourceMappingURL=drop-stale-reduce-calls.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"drop-stale-reduce-calls.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/drop-stale-reduce-calls.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAoBvD;AAoBD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,cAAc,GAAE,MAAU,GAAG,OAAO,CAiCjG"}
1
+ {"version":3,"file":"drop-stale-reduce-calls.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/drop-stale-reduce-calls.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAoBvD;AA+CD,MAAM,WAAW,sBAAsB;IACnC,8DAA8D;IAC9D,OAAO,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EACtB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5D,sBAAsB,CAgCxB"}
@@ -0,0 +1,86 @@
1
+ /** Reclaim target = fixedFloor + TARGET_FRACTION × (ceiling − fixedFloor). */
2
+ export declare const TARGET_FRACTION = 0.3;
3
+ /** Keep the newest `ceil(RESERVE × tierCount)` of T1/T2 as continuation context. */
4
+ export declare const TIER_RECENCY_RESERVE = 0.2;
5
+ /**
6
+ * Don't bust the cache for a trivial reclaim. If the computed reclaim is at or
7
+ * below this, the pass is a no-op (combined with the watermark, this prevents
8
+ * 85%-94.9% oscillation).
9
+ */
10
+ export declare const EMERGENCY_REARM_MIN_TOKENS = 2000;
11
+ export type Tier = 1 | 2 | 3;
12
+ /**
13
+ * Classify a tool into its drop tier. T1 (keep longest) = navigation/structure
14
+ * the agent re-uses; T2 (medium) = edit-class continuation context; T3 (drop
15
+ * first) = everything else (the default — bash, ctx_reduce, inspect, web, …).
16
+ */
17
+ export declare function resolveToolTier(toolName: string | null): Tier;
18
+ /** Minimal tag shape the planner needs (subset of TagEntry, harness-agnostic). */
19
+ export interface EmergencyDropTag {
20
+ tagNumber: number;
21
+ type: "message" | "tool" | "file";
22
+ status: "active" | "dropped" | "compacted";
23
+ toolName: string | null;
24
+ byteSize: number;
25
+ /** Tool-arg bytes — `drop()` removes the invocation too, so these reclaim. */
26
+ inputByteSize: number;
27
+ reasoningByteSize: number;
28
+ }
29
+ export interface EmergencyDropPlan {
30
+ /** Whether the caller should perform any drop this pass. */
31
+ shouldDrop: boolean;
32
+ /** Tool tag numbers to drop, in eviction order (T3→T2→T1, oldest-first). */
33
+ tagNumbers: number[];
34
+ /** Reclaim target in tokens (for logging). */
35
+ reclaimTokens: number;
36
+ /** Human-readable reason (no-op explanation or drop summary), for logs. */
37
+ reason: string;
38
+ }
39
+ /**
40
+ * Plan a tiered target-headroom emergency drop. Pure: returns the ordered set of
41
+ * tool tag numbers to drop plus the new watermark; the caller applies them.
42
+ *
43
+ * fixedFloor is derived as `currentTotalInputTokens − Σ(active floor-tag tokens)`.
44
+ * Tags cover exactly the live-tail content (messages, tool outputs, files,
45
+ * reasoning); system, tool defs, and m[0]/m[1] are untagged. So this difference
46
+ * IS `system + toolDefs + (primary ? m0 + m1 : 0)` — the irreducible prefix —
47
+ * with no extra plumbing, and it self-adjusts for subagents (no m0/m1 in their
48
+ * total) by construction.
49
+ *
50
+ * The two tag sets serve DIFFERENT contracts and must not be conflated:
51
+ * - `floorTags`: the ENTIRE active live-window tag set (all types, including
52
+ * non-droppable tool tags). Only their token sum matters — it makes
53
+ * `fixedFloor` the true irreducible prefix. Passing a narrower set (e.g.
54
+ * tool-only) folds real conversation/reasoning tail into the "floor",
55
+ * raising the target and systematically under-evicting at ≥85%.
56
+ * - `tags`: the evictable candidates — active tool tags whose drop target
57
+ * would actually reclaim bytes (caller pre-filters on `canDrop()` so no
58
+ * phantom tag is counted as reclaimed).
59
+ */
60
+ export declare function planEmergencyDrop(input: {
61
+ /** Evictable candidates: active tool tags with a working drop target. */
62
+ tags: readonly EmergencyDropTag[];
63
+ /**
64
+ * FULL active live-window tag set (all types) — floor accounting only.
65
+ * See the fixedFloor contract above.
66
+ */
67
+ floorTags: readonly EmergencyDropTag[];
68
+ maxTag: number;
69
+ protectedTags: number;
70
+ currentTotalInputTokens: number;
71
+ /** ceiling = contextLimit × executeThreshold%. */
72
+ ceilingTokens: number;
73
+ /**
74
+ * last_emergency_input_sample — the `currentTotalInputTokens` reading at the
75
+ * previous emergency drop (0 if never dropped). The SOLE idempotence latch:
76
+ * see the same-sample no-op below. (There is deliberately no tag-number
77
+ * watermark — a scalar "dropped-through" cursor wrongly excludes still-active
78
+ * lower-numbered tags after a non-contiguous tier-ordered drop. Dropped tags
79
+ * leave the `status='active'` set, so they're never re-selected; the sample
80
+ * latch is what prevents over-dropping the rest of the tail on a stale pass.)
81
+ */
82
+ priorInputSample: number;
83
+ /** True once any emergency drop has happened (drives the latch + log). */
84
+ hasPriorDrop: boolean;
85
+ }): EmergencyDropPlan;
86
+ //# sourceMappingURL=emergency-drop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emergency-drop.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/emergency-drop.ts"],"names":[],"mappings":"AAqBA,8EAA8E;AAC9E,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,oFAAoF;AACpF,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAiB7B;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAK7D;AAED,kFAAkF;AAClF,MAAM,WAAW,gBAAgB;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;IAC3C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAaD,MAAM,WAAW,iBAAiB;IAC9B,4DAA4D;IAC5D,UAAU,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;CAClB;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACrC,yEAAyE;IACzE,IAAI,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAClC;;;OAGG;IACH,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;IAChC,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;;OAQG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,YAAY,EAAE,OAAO,CAAC;CACzB,GAAG,iBAAiB,CAuHpB"}