@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
@@ -2,7 +2,6 @@ import type { createCompactionHandler } from "../../features/magic-context/compa
2
2
  import type { Tagger } from "../../features/magic-context/tagger";
3
3
  import type { ContextUsage } from "../../features/magic-context/types";
4
4
  import { type NotificationParams } from "./send-session-notification";
5
- import { type NudgePlacementStore } from "./transform";
6
5
  type CacheTtlConfig = string | Record<string, string>;
7
6
  interface ContextUsageEntry {
8
7
  usage: ContextUsage;
@@ -12,13 +11,10 @@ interface ContextUsageEntry {
12
11
  export interface EventHandlerDeps {
13
12
  contextUsageMap: Map<string, ContextUsageEntry>;
14
13
  compactionHandler: ReturnType<typeof createCompactionHandler>;
15
- nudgePlacements: NudgePlacementStore;
16
14
  onSessionCacheInvalidated?: (sessionId: string) => void;
17
15
  onSessionDeleted?: (sessionId: string) => void;
18
16
  config: {
19
17
  protected_tags: number;
20
- auto_drop_tool_age?: number;
21
- drop_tool_structure?: boolean;
22
18
  clear_reasoning_age?: number;
23
19
  execute_threshold_percentage?: number | {
24
20
  default: number;
@@ -37,6 +33,12 @@ export interface EventHandlerDeps {
37
33
  tagger: Tagger;
38
34
  db: import("../../shared/sqlite").Database;
39
35
  client?: unknown;
36
+ /** Live HTTP listener URL — Channel 2 ceiling nudge delivery (#28202 workaround). */
37
+ serverUrl?: string;
38
+ /** Project directory — passed to the live-server client for Channel 2. */
39
+ directory?: string;
40
+ /** Channel 1 per-session metric baseline; read for the Channel 2 ceiling-nudge wording. */
41
+ channel1StateBySession?: Map<string, import("./ctx-reduce-nudge").Channel1State>;
40
42
  getNotificationParams?: (sessionId: string) => NotificationParams;
41
43
  /**
42
44
  * Process-scoped set of Magic Context's own hidden child sessions, keyed by
@@ -1 +1 @@
1
- {"version":3,"file":"event-handler.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/event-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AA6BvF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAsBvE,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAKhF,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEtD,UAAU,iBAAiB;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAOD,MAAM,WAAW,gBAAgB;IAC7B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAChD,iBAAiB,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;IAC9D,eAAe,EAAE,mBAAmB,CAAC;IACrC,yBAAyB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,MAAM,EAAE;QACJ,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,4BAA4B,CAAC,EAAE,MAAM,GAAG;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QACxF,wBAAwB,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;SAAE,CAAC;QACxF,SAAS,EAAE,cAAc,CAAC;QAC1B,sBAAsB,CAAC,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACvE,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IAIf,EAAE,EAAE,OAAO,qBAAqB,EAAE,QAAQ,CAAC;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,kBAAkB,CAAC;IAClE;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvC;AA2HD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,IACvC,OAAO;IAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CA2ezF"}
1
+ {"version":3,"file":"event-handler.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/event-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAyBvF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,oCAAoC,CAAC;AAqBpF,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,6BAA6B,CAAC;AAM1F,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEtD,UAAU,iBAAiB;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD,MAAM,WAAW,gBAAgB;IAC7B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAChD,iBAAiB,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;IAC9D,yBAAyB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,MAAM,EAAE;QACJ,cAAc,EAAE,MAAM,CAAC;QACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,4BAA4B,CAAC,EAAE,MAAM,GAAG;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QACxF,wBAAwB,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;SAAE,CAAC;QACxF,SAAS,EAAE,cAAc,CAAC;QAC1B,sBAAsB,CAAC,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACvE,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IAIf,EAAE,EAAE,OAAO,qBAAqB,EAAE,QAAQ,CAAC;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2FAA2F;IAC3F,sBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,aAAa,CAAC,CAAC;IACjF,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,kBAAkB,CAAC;IAClE;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvC;AAoID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,IACvC,OAAO;IAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAsezF"}
@@ -1 +1 @@
1
- {"version":3,"file":"execute-flush.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/execute-flush.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CA8BpE"}
1
+ {"version":3,"file":"execute-flush.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/execute-flush.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CA0BpE"}
@@ -1,5 +1,5 @@
1
1
  import type { Database } from "../../shared/sqlite";
2
- export declare function executeStatus(db: Database, sessionId: string, protectedTags: number, nudgeIntervalTokens?: number, executeThresholdPercentageConfig?: number | {
2
+ export declare function executeStatus(db: Database, sessionId: string, protectedTags: number, executeThresholdPercentageConfig?: number | {
3
3
  default: number;
4
4
  [modelKey: string]: number;
5
5
  }, liveModelKey?: string, historyBudgetPercentage?: number, commitClusterTrigger?: {
@@ -1 +1 @@
1
- {"version":3,"file":"execute-status.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/execute-status.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AA8BpD,wBAAgB,aAAa,CACzB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,mBAAmB,GAAE,MAAsC,EAC3D,gCAAgC,GAC1B,MAAM,GACN;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;CAAyC,EAC5F,YAAY,CAAC,EAAE,MAAM,EACrB,uBAAuB,CAAC,EAAE,MAAM,EAChC,oBAAoB,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EACjE,sBAAsB,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,EACrF,YAAY,CAAC,EAAE,MAAM,GACtB,MAAM,CA6JR"}
1
+ {"version":3,"file":"execute-status.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/execute-status.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAyBpD,wBAAgB,aAAa,CACzB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,gCAAgC,GAC1B,MAAM,GACN;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;CAAyC,EAC5F,YAAY,CAAC,EAAE,MAAM,EACrB,uBAAuB,CAAC,EAAE,MAAM,EAChC,oBAAoB,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EACjE,sBAAsB,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,EACrF,YAAY,CAAC,EAAE,MAAM,GACtB,MAAM,CAmJR"}
@@ -3,10 +3,17 @@ import type { TagEntry } from "../../features/magic-context/types";
3
3
  import { type CavemanCleanupConfig } from "./caveman-cleanup";
4
4
  import type { MessageLike, TagTarget } from "./tag-messages";
5
5
  export declare function applyHeuristicCleanup(sessionId: string, db: ContextDatabase, targets: Map<number, TagTarget>, messageTagNumbers: Map<MessageLike, number>, config: {
6
- autoDropToolAge: number;
7
- dropToolStructure: boolean;
8
6
  protectedTags: number;
9
- dropAllTools?: boolean;
7
+ /**
8
+ * Tiered target-headroom emergency drop. Provided only on the ≥85%
9
+ * force-materialize (cache-busting) pass; undefined on routine execute
10
+ * passes (Phase 2 removed routine age-based tool drops entirely). When
11
+ * present, the emergency drop runs before dedup/injection-strip.
12
+ */
13
+ emergency?: {
14
+ currentTotalInputTokens: number;
15
+ ceilingTokens: number;
16
+ };
10
17
  /**
11
18
  * Age-tier caveman text compression settings. Only honored when the
12
19
  * session is running with ctx_reduce_enabled=false — caller is
@@ -1 +1 @@
1
- {"version":3,"file":"heuristic-cleanup.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/heuristic-cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAQ5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEnF,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAe7D,wBAAgB,qBAAqB,CACjC,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,eAAe,EACnB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/B,iBAAiB,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,EAC3C,MAAM,EAAE;IACJ,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAClC,EACD,aAAa,CAAC,EAAE,QAAQ,EAAE,GAC3B;IACC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;CAC9B,CA8KA"}
1
+ {"version":3,"file":"heuristic-cleanup.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/heuristic-cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAY5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGnF,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAe7D,wBAAgB,qBAAqB,CACjC,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,eAAe,EACnB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAC/B,iBAAiB,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,EAC3C,MAAM,EAAE;IACJ,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,SAAS,CAAC,EAAE;QACR,uBAAuB,EAAE,MAAM,CAAC;QAChC,aAAa,EAAE,MAAM,CAAC;KACzB,CAAC;IACF;;;;OAIG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAClC,EACD,aAAa,CAAC,EAAE,QAAQ,EAAE,GAC3B;IACC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;CAC9B,CAwMA"}
@@ -1,13 +1,12 @@
1
1
  import { getOrCreateSessionMeta } from "../../features/magic-context/storage-meta";
2
2
  import type { PluginContext } from "../../plugin/types";
3
+ import { type Channel1State } from "./ctx-reduce-nudge";
3
4
  export type LiveModelBySession = Map<string, {
4
5
  providerID: string;
5
6
  modelID: string;
6
7
  }>;
7
8
  export type VariantBySession = Map<string, string | undefined>;
8
9
  export type AgentBySession = Map<string, string>;
9
- export type RecentReduceBySession = Map<string, number>;
10
- export type ToolUsageSinceUserTurn = Map<string, number>;
11
10
  /**
12
11
  * Cache-busting signal sets — replaces the old monolithic `flushedSessions`.
13
12
  *
@@ -84,8 +83,6 @@ export declare function getLiveNotificationParams(sessionId: string, liveModelBy
84
83
  };
85
84
  export declare function createChatMessageHook(args: {
86
85
  db: Parameters<typeof getOrCreateSessionMeta>[0];
87
- toolUsageSinceUserTurn: ToolUsageSinceUserTurn;
88
- recentReduceBySession: RecentReduceBySession;
89
86
  liveModelBySession: LiveModelBySession;
90
87
  variantBySession: VariantBySession;
91
88
  agentBySession: AgentBySession;
@@ -133,8 +130,6 @@ export declare function createEventHook(args: {
133
130
  * for the full doc-comment.
134
131
  */
135
132
  sessionDirectoryBySession: Map<string, string>;
136
- recentReduceBySession: RecentReduceBySession;
137
- toolUsageSinceUserTurn: ToolUsageSinceUserTurn;
138
133
  /** All signal sets are cleaned on `session.deleted` to prevent leaks. */
139
134
  historyRefreshSessions: HistoryRefreshSessions;
140
135
  deferredHistoryRefreshSessions: DeferredHistoryRefreshSessions;
@@ -162,7 +157,6 @@ export declare function createCommandExecuteBeforeHook(commandHandler: {
162
157
  }): (input: unknown, output: unknown) => Promise<unknown>;
163
158
  export declare function createToolExecuteAfterHook(args: {
164
159
  db: Parameters<typeof getOrCreateSessionMeta>[0];
165
- recentReduceBySession: RecentReduceBySession;
166
- toolUsageSinceUserTurn: ToolUsageSinceUserTurn;
167
- }): (input: unknown) => Promise<void>;
160
+ channel1StateBySession: Map<string, Channel1State>;
161
+ }): (input: unknown, output?: unknown) => Promise<void>;
168
162
  //# sourceMappingURL=hook-handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook-handlers.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/hook-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook-handlers.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/hook-handlers.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ import type { LiveSessionState } from "./live-session-state";
8
8
  export interface MagicContextDeps {
9
9
  client: PluginContext["client"];
10
10
  directory: string;
11
+ /** Live HTTP listener URL for the Channel 2 ceiling nudge (#28202 workaround). */
12
+ serverUrl?: string;
11
13
  tagger: Tagger;
12
14
  scheduler: Scheduler;
13
15
  onSessionCacheInvalidated?: (sessionId: string) => void;
@@ -16,11 +18,7 @@ export interface MagicContextDeps {
16
18
  config: {
17
19
  protected_tags: number;
18
20
  ctx_reduce_enabled?: boolean;
19
- nudge_interval_tokens?: number;
20
- auto_drop_tool_age?: number;
21
- drop_tool_structure?: boolean;
22
21
  clear_reasoning_age?: number;
23
- iteration_nudge_threshold?: number;
24
22
  execute_threshold_percentage?: number | {
25
23
  default: number;
26
24
  [modelKey: string]: number;
@@ -101,6 +99,6 @@ export declare function createMagicContextHook(deps: MagicContextDeps): {
101
99
  };
102
100
  }) => Promise<void>;
103
101
  "command.execute.before": (input: unknown, output: unknown) => Promise<unknown>;
104
- "tool.execute.after": (input: unknown) => Promise<void>;
102
+ "tool.execute.after": (input: unknown, output?: unknown) => Promise<void>;
105
103
  } | null;
106
104
  //# sourceMappingURL=hook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/hook.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"inject-compartments.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/inject-compartments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inject-compartments.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/inject-compartments.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  * transform pipeline (i.e. inside `runPostTransformPhase`, not inside
9
9
  * `tagMessages`). By that point:
10
10
  * - queued user `ctx_reduce` ops have been applied
11
- * - heuristic cleanup (auto_drop_tool_age, clear_reasoning_age) ran
11
+ * - heuristic cleanup (emergency tiered drop, clear_reasoning_age) ran
12
12
  * - sentinel/replay logic neutralized previously-stripped parts
13
13
  * So if a `ctx_note` read is still a real, non-sentinel part in the
14
14
  * messages array we're about to send, the agent will actually see it.
@@ -0,0 +1,132 @@
1
+ import type { Database } from "../../shared/sqlite";
2
+ export type BoundaryMode = "trigger" | "incremental-runner" | "transform-force" | "manual-full-recomp" | "manual-partial-recomp" | "pi-trigger" | "pi-runner";
3
+ export interface BoundaryUsage {
4
+ percentage: number;
5
+ inputTokens: number;
6
+ }
7
+ export interface ResolvedBoundaryContext {
8
+ sessionId: string;
9
+ mode: BoundaryMode;
10
+ contextLimit: number;
11
+ executeThresholdPercentage: number;
12
+ triggerBudget: number;
13
+ usage: BoundaryUsage | null;
14
+ usageSource: "live" | "persisted" | "provisional-zero" | "manual-none";
15
+ lastCompartmentEndOrdinal: number;
16
+ priorBoundaryOrdinal: number;
17
+ protectedTailPolicyVersion: number;
18
+ migrationFloorActive: boolean;
19
+ emergencyTailScale?: 0.5 | 0.25;
20
+ providerShapeVersion: "opencode-v1" | "pi-folded-v1";
21
+ cacheNamespace: string;
22
+ createdAt?: number;
23
+ /**
24
+ * Durable per-message token totals (sum of the message's active tag
25
+ * token_counts), keyed by real message id. When present, the boundary's
26
+ * token index reads these instead of re-tokenizing the raw session — the
27
+ * restart-durable fast path. A message missing here (or with a NULL-count
28
+ * tag) falls back to live tokenization. Built once in resolveBoundaryContext
29
+ * from the tag store; omitted (→ all-live) when the caller has no tag store.
30
+ */
31
+ storedTokenTotals?: Map<string, number>;
32
+ }
33
+ export interface ProtectedTailBoundarySnapshot {
34
+ sessionId: string;
35
+ mode: BoundaryMode;
36
+ offset: number;
37
+ offsetMessageId: string | null;
38
+ protectedTailStart: number;
39
+ protectedTailStartMessageId: string | null;
40
+ eligibleEndOrdinal: number;
41
+ eligibleEndMessageId: string | null;
42
+ rawMessageCountAtTrigger: number;
43
+ rawLastMessageIdAtTrigger: string | null;
44
+ N: number;
45
+ usagePercentage: number;
46
+ usageInputTokens: number;
47
+ usageSource: ResolvedBoundaryContext["usageSource"];
48
+ contextLimit: number;
49
+ executeThresholdPercentage: number;
50
+ triggerBudget: number;
51
+ priorBoundaryOrdinal: number;
52
+ migrationFloorActive: boolean;
53
+ emergencyTailScale?: 0.5 | 0.25;
54
+ providerShapeVersion: "opencode-v1" | "pi-folded-v1";
55
+ cacheNamespace: string;
56
+ createdAt: number;
57
+ rawRangeFingerprint: string;
58
+ trueRawEligibleTokens: number;
59
+ oversizeAtomicUnit: boolean;
60
+ boundaryReason: string;
61
+ }
62
+ export interface ProtectedTailTokenTarget {
63
+ usable: number;
64
+ rawN: number;
65
+ floorN: number;
66
+ ceilingN: number;
67
+ effectiveFloor: number;
68
+ N: number;
69
+ headroom: number;
70
+ triggerBudget: number;
71
+ reserve: number;
72
+ }
73
+ export interface RawHistoryEligibility {
74
+ lastCompartmentEnd: number;
75
+ offset: number;
76
+ rawMessageCount: number;
77
+ hasRawBeyondLastCompartment: boolean;
78
+ }
79
+ export interface ProactiveTriggerInfo {
80
+ boundary: ProtectedTailBoundarySnapshot;
81
+ hasProtectedEligibleHead: boolean;
82
+ trueRawEligibleTokens: number;
83
+ tcTokenEstimate: number;
84
+ messageCount: number;
85
+ commitClusterCount: number;
86
+ isMeaningful: boolean;
87
+ }
88
+ export interface BoundarySnapshotValidationResult {
89
+ ok: boolean;
90
+ reason?: "stale_snapshot" | "model_or_limit_changed";
91
+ detail?: string;
92
+ }
93
+ export declare const RECOVERY_NO_HEAD_LIMIT = 2;
94
+ /** A tiny complete head is still worth summarizing at force pressure; below this, wait for a real arc/user turn. */
95
+ export declare const MIN_FORCE_ELIGIBLE_TOKENS_CAP = 1000;
96
+ export declare function deriveMinForceEligibleTokens(scaledN: number): number;
97
+ export declare function deriveProtectedTailTokenTarget(args: {
98
+ contextLimit: number;
99
+ executeThresholdPercentage: number;
100
+ usagePercentage: number;
101
+ triggerBudget?: number;
102
+ }): ProtectedTailTokenTarget;
103
+ export declare function nonEmergencyPerRunCap(usable: number, N: number): number;
104
+ export declare function force80PerRunCap(usable: number, N: number): number;
105
+ export declare function force95PerRunCap(usable: number, N: number): number;
106
+ export declare function selectPerRunCap(snapshot: Pick<ProtectedTailBoundarySnapshot, "usagePercentage" | "N" | "contextLimit" | "executeThresholdPercentage">): number;
107
+ export declare function resolveProtectedTailBoundary(ctx: ResolvedBoundaryContext): ProtectedTailBoundarySnapshot;
108
+ export declare function resolveBoundaryContext(args: {
109
+ db: Database;
110
+ sessionId: string;
111
+ mode: BoundaryMode;
112
+ contextLimit: number;
113
+ executeThresholdPercentage: number;
114
+ usage?: BoundaryUsage | null;
115
+ usageSource?: ResolvedBoundaryContext["usageSource"];
116
+ emergencyTailScale?: 0.5 | 0.25;
117
+ providerShapeVersion?: "opencode-v1" | "pi-folded-v1";
118
+ cacheNamespace?: string;
119
+ }): ResolvedBoundaryContext;
120
+ export declare function resolveOpenCodeProtectedTailBoundary(args: Parameters<typeof resolveBoundaryContext>[0]): ProtectedTailBoundarySnapshot;
121
+ export declare function getRawHistoryEligibility(db: Database, sessionId: string): RawHistoryEligibility;
122
+ export declare function hasProtectedEligibleHead(snapshot: ProtectedTailBoundarySnapshot): boolean;
123
+ export declare function hasRunnableCompartmentWindow(snapshot: ProtectedTailBoundarySnapshot): boolean;
124
+ export declare function validateBoundarySnapshot(args: {
125
+ db: Database;
126
+ snapshot: ProtectedTailBoundarySnapshot;
127
+ currentContextLimit?: number;
128
+ }): BoundarySnapshotValidationResult;
129
+ export declare function recordHighPressureNoEligibleHead(db: Database, snapshot: ProtectedTailBoundarySnapshot): number;
130
+ export declare function resetHighPressureNoEligibleHead(db: Database, sessionId: string): void;
131
+ export declare function createDefaultBoundarySnapshotForTests(sessionId: string): ProtectedTailBoundarySnapshot;
132
+ //# sourceMappingURL=protected-tail-boundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protected-tail-boundary.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/protected-tail-boundary.ts"],"names":[],"mappings":"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"}
@@ -78,6 +78,60 @@ export interface SessionChunk {
78
78
  }
79
79
  export declare function withRawSessionMessageCache<T>(fn: () => T): T;
80
80
  export declare function readRawSessionMessages(sessionId: string): RawMessage[];
81
+ /**
82
+ * Prime the active raw-message cache with a TAIL-ONLY read (only messages
83
+ * at/after the last compartment boundary), so subsequent
84
+ * `readRawSessionMessages(sessionId)` calls in this scope reuse it instead of
85
+ * reading the whole session.
86
+ *
87
+ * This is the O(tail) path: the compartment-trigger boundary resolution is
88
+ * offset-forward only (its candidate / suffix / range / head-cap / chunk-scan
89
+ * reads never cross below `baseOrdinal+1`), and the absolute message count it
90
+ * needs is recovered from the tail reader (`baseOrdinal + tail`), NOT from
91
+ * counting pre-boundary rows. On a months-long session the full read grows
92
+ * O(session); this stays flat at the tail size.
93
+ *
94
+ * The cached array carries ABSOLUTE ordinals (`baseOrdinal+1 …`) so every
95
+ * downstream absolute-ordinal computation matches the full read; the true total
96
+ * is stashed in the parallel absolute-count cache for `.length`-style consumers.
97
+ *
98
+ * No-op (returns false) when a provider is registered (Pi: in-memory branch read
99
+ * is already cheap and authoritative), no OpenCode DB exists, the cache is
100
+ * already populated, or no usable boundary anchor exists (e.g. no compartments,
101
+ * or the anchor message was deleted) — in which case the caller falls through to
102
+ * the full read, which is correct (everything is eligible / nothing to skip).
103
+ */
104
+ export declare function primeTailRawMessageCache(args: {
105
+ sessionId: string;
106
+ lastCompartmentEnd: number;
107
+ anchorMessageId: string | null;
108
+ }): boolean;
109
+ /**
110
+ * Absolute session message count for the active scope. Returns the tail-prime's
111
+ * stashed absolute count when a tail slice is cached; otherwise null, signalling
112
+ * callers to use `readRawSessionMessages(sessionId).length` (whole-session
113
+ * array) as before.
114
+ */
115
+ export declare function getCachedAbsoluteMessageCount(sessionId: string): number | null;
116
+ /**
117
+ * Prime the active raw-message cache with an IN-MEMORY tail built from the
118
+ * transform's `args.messages` — no opencode.db read at all. This is the hot-path
119
+ * goal: the transform already receives the post-marker tail (the eligible
120
+ * window) as parsed objects, so the boundary resolver can consume it directly.
121
+ *
122
+ * The caller supplies the already-converted absolute-ordinal `RawMessage[]` (via
123
+ * `buildInMemoryTailRawMessages`) plus its absolute count. Same scope/lifecycle
124
+ * rules as the other prime helpers: only inside a `withRawSessionMessageCache`
125
+ * scope, never shadows a registered provider (Pi), and is a no-op if the cache is
126
+ * already populated for the session.
127
+ *
128
+ * Returns true when it primed the cache.
129
+ */
130
+ export declare function primeInMemoryTailRawMessageCache(args: {
131
+ sessionId: string;
132
+ messages: RawMessage[];
133
+ absoluteMessageCount: number;
134
+ }): boolean;
81
135
  export declare function readRawSessionMessageById(sessionId: string, messageId: string): RawMessage | null;
82
136
  export declare function getRawSessionMessageCount(sessionId: string): number;
83
137
  /**
@@ -102,6 +156,7 @@ export interface RawSessionTagKeys {
102
156
  toolObservations: Map<string, Set<string>>;
103
157
  }
104
158
  export declare function getRawSessionTagKeysThrough(sessionId: string, upToMessageIndex: number): RawSessionTagKeys;
159
+ export declare function getLegacyProtectedTailStartOrdinal(sessionId: string): number;
105
160
  export declare function getProtectedTailStartOrdinal(sessionId: string): number;
106
161
  export declare function readSessionChunk(sessionId: string, tokenBudget: number, offset?: number, eligibleEndOrdinal?: number): SessionChunk;
107
162
  export declare function getRawSessionMessageIdsThrough(sessionId: string, endOrdinal: number): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"read-session-chunk.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/read-session-chunk.ts"],"names":[],"mappings":"AAOA,OAAO,EAWH,KAAK,gBAAgB,EACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,KAAK,UAAU,EAGlB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAIhF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,kBAAkB;IAC/B,YAAY,IAAI,UAAU,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,UAAU,GAAG,IAAI,CAAC;IAC3D,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,MAAM,CAAC;CAClC;AAID;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAMjG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EACpC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,kBAAkB,EAC5B,EAAE,EAAE,MAAM,CAAC,GACZ,CAAC,CAkBH;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,MAAM,WAAW,YAAY;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,4GAA4G;IAC5G,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;;;OAMG;IACH,cAAc,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzD;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAa5D;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE,CAatE;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAUjG;AAcD,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQnE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,iBAAiB;IAC9B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CAC9C;AAED,wBAAgB,2BAA2B,CACvC,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,GACzB,iBAAiB,CA2DnB;AAID,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAWtE;AAED,wBAAgB,gBAAgB,CAC5B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,MAAU,EAClB,kBAAkB,CAAC,EAAE,MAAM,GAC5B,YAAY,CA+Ld;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAK9F"}
1
+ {"version":3,"file":"read-session-chunk.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/read-session-chunk.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"read-session-formatting.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/read-session-formatting.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;CACvB;AAMD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAiB/D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAUvD;AAED;4EAC4E;AAC5E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CA2BnE;AAoCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQrD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAW1D;AAED,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAmB1C;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAS9E"}
1
+ {"version":3,"file":"read-session-formatting.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/read-session-formatting.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;CACvB;AAMD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAiB/D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAUvD;AAED;4EAC4E;AAC5E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CA2BnE;AAoCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYnD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQrD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAW1D;AAED,wBAAgB,qBAAqB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAmB1C;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAS9E"}
@@ -4,7 +4,98 @@ export interface RawMessage {
4
4
  id: string;
5
5
  role: string;
6
6
  parts: unknown[];
7
+ version?: string | number | null;
7
8
  }
8
9
  export declare function readRawSessionMessagesFromDb(db: Database, sessionId: string): RawMessage[];
10
+ /**
11
+ * Read ONLY the eligible tail — messages at/after the last compartment boundary
12
+ * — assigning them their correct ABSOLUTE ordinals (continuing from
13
+ * `baseOrdinal`), and return the absolute session message count alongside.
14
+ *
15
+ * This is the O(tail) read: it never touches the ~63k pre-boundary rows that the
16
+ * full reader scans just to recover the tail's ordinal base — a number the
17
+ * compaction marker already stores (`end_message` ordinal + `end_message_id`
18
+ * anchor). On a months-long session the full read is O(session) and grows
19
+ * unbounded; this stays flat at the tail size.
20
+ *
21
+ * Anchor semantics: reads rows with `(time_created, id) >= anchor` (INCLUSIVE of
22
+ * the boundary message), in the same sort order as the full reader, filters
23
+ * compaction-summary rows identically, and numbers the kept messages
24
+ * `baseOrdinal, baseOrdinal+1, …`. Including the anchor keeps
25
+ * `messageIdAtOrdinal(baseOrdinal)` real (the full reader has it too) so
26
+ * boundary-edge message ids match.
27
+ *
28
+ * Returns null when the anchor message id isn't found (deleted / legacy
29
+ * compartment without `end_message_id`); the caller then falls back to the full
30
+ * read. `absoluteMessageCount` = `baseOrdinal + (keptTail - 1)` = the exact
31
+ * count the full reader would produce, so every absolute-ordinal consumer lines
32
+ * up.
33
+ */
34
+ export declare function readRawSessionTailFromDb(db: Database, sessionId: string, baseOrdinal: number, anchorMessageId: string): {
35
+ messages: RawMessage[];
36
+ absoluteMessageCount: number;
37
+ } | null;
38
+ /**
39
+ * Minimal structural view of an in-memory transform message, extracted from
40
+ * OpenCode's `MessageLike` by the caller. Kept dependency-free so this module
41
+ * doesn't import the transform/tagging layer.
42
+ */
43
+ export interface InMemoryMessageView {
44
+ id: string;
45
+ role: string;
46
+ parts: unknown[];
47
+ /** From the message `info` if present; used to mirror the DB summary filter. */
48
+ summary?: boolean;
49
+ finish?: string;
50
+ }
51
+ export interface InMemoryTailResult {
52
+ messages: RawMessage[];
53
+ absoluteMessageCount: number;
54
+ /** True when the compaction anchor id was located within the array. */
55
+ anchorFound: boolean;
56
+ }
57
+ /**
58
+ * Extract the minimal structural view from OpenCode transform messages
59
+ * (`args.messages`, MessageLike-shaped: `{ info, parts }`). Tolerates missing
60
+ * fields — a message without a string id becomes an empty-id view, which
61
+ * `buildInMemoryTailRawMessages` treats as a malformed row (ordinal slot kept,
62
+ * no element), mirroring the DB reader.
63
+ */
64
+ export declare function extractInMemoryMessageViews(messages: readonly {
65
+ info?: unknown;
66
+ parts?: unknown;
67
+ }[]): InMemoryMessageView[];
68
+ /**
69
+ * Build an absolute-ordinal `RawMessage[]` tail from the in-memory transform
70
+ * messages (`args.messages`), mirroring {@link readRawSessionTailFromDb} so the
71
+ * boundary resolver produces an identical result without any opencode.db read.
72
+ *
73
+ * OpenCode hands the transform the post-compaction-marker tail, i.e. the eligible
74
+ * window, already parsed. Ordinals are anchored at the last compartment boundary:
75
+ *
76
+ * - If `anchorMessageId` is found at index k, that message IS the boundary
77
+ * (ordinal `lastCompartmentEnd`); messages k, k+1, … get ordinals
78
+ * `lastCompartmentEnd, lastCompartmentEnd+1, …`. Messages before k (compaction
79
+ * marker lag — already compartmentalized) are dropped, matching the DB tail
80
+ * which starts AT the anchor.
81
+ * - If the anchor isn't present (it was a summary row OpenCode already filtered,
82
+ * or marker is ahead), the array is assumed to start at `lastCompartmentEnd+1`
83
+ * and ordinals run `lastCompartmentEnd+1, …`. `anchorFound=false` flags this so
84
+ * callers can choose the DB fallback if they don't trust the assumption.
85
+ * - No compartments yet (#132): pass `lastCompartmentEnd=0`,
86
+ * `anchorMessageId=null` → ordinals from 1 over the whole array.
87
+ *
88
+ * Mirrors the DB reader's contracts: compaction-summary rows
89
+ * (`summary===true && finish==='stop'`) are filtered BEFORE ordinal assignment;
90
+ * a malformed message (no string id) keeps its ordinal slot but yields no element;
91
+ * `absoluteMessageCount` equals what the DB reader would report for the same tail.
92
+ *
93
+ * Returns null when there are no usable messages.
94
+ */
95
+ export declare function buildInMemoryTailRawMessages(args: {
96
+ messages: readonly InMemoryMessageView[];
97
+ lastCompartmentEnd: number;
98
+ anchorMessageId: string | null;
99
+ }): InMemoryTailResult | null;
9
100
  export declare function readRawSessionMessageByIdFromDb(db: Database, sessionId: string, messageId: string): RawMessage | null;
10
101
  //# sourceMappingURL=read-session-raw.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"read-session-raw.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/read-session-raw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,EAAE,CAAC;CACpB;AAiDD,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE,CAyC1F;AAED,wBAAgB,+BAA+B,CAC3C,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB,UAAU,GAAG,IAAI,CAyCnB"}
1
+ {"version":3,"file":"read-session-raw.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/read-session-raw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACpC;AAmED,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE,CA0C1F;AAgBD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,wBAAwB,CACpC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,GACxB;IAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA6EjE;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uEAAuE;IACvE,WAAW,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACvC,QAAQ,EAAE,SAAS;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,GACzD,mBAAmB,EAAE,CAWvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IAC/C,QAAQ,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,GAAG,kBAAkB,GAAG,IAAI,CA+C5B;AAED,wBAAgB,+BAA+B,CAC3C,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB,UAAU,GAAG,IAAI,CA8CnB"}