@retaw106/mmc-oc 0.0.0-stage → 1.2.2

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 (1018) hide show
  1. package/dist/agents/historian.d.ts +4 -0
  2. package/dist/agents/historian.d.ts.map +1 -0
  3. package/dist/agents/language-directive.d.ts +26 -0
  4. package/dist/agents/language-directive.d.ts.map +1 -0
  5. package/dist/agents/magic-context-prompt.d.ts +5 -0
  6. package/dist/agents/magic-context-prompt.d.ts.map +1 -0
  7. package/dist/agents/memory-maintainer.d.ts +96 -0
  8. package/dist/agents/memory-maintainer.d.ts.map +1 -0
  9. package/dist/config/agent-disable.d.ts +29 -0
  10. package/dist/config/agent-disable.d.ts.map +1 -0
  11. package/dist/config/config-paths.d.ts +7 -0
  12. package/dist/config/config-paths.d.ts.map +1 -0
  13. package/dist/config/index.d.ts +69 -0
  14. package/dist/config/index.d.ts.map +1 -0
  15. package/dist/config/live-run-config.d.ts +11 -0
  16. package/dist/config/live-run-config.d.ts.map +1 -0
  17. package/dist/config/live-snapshot.d.ts +32 -0
  18. package/dist/config/live-snapshot.d.ts.map +1 -0
  19. package/dist/config/migrate-experimental.d.ts +26 -0
  20. package/dist/config/migrate-experimental.d.ts.map +1 -0
  21. package/dist/config/profiles.d.ts +22 -0
  22. package/dist/config/profiles.d.ts.map +1 -0
  23. package/dist/config/project-security.d.ts +124 -0
  24. package/dist/config/project-security.d.ts.map +1 -0
  25. package/dist/config/prune-config-leaf.d.ts +26 -0
  26. package/dist/config/prune-config-leaf.d.ts.map +1 -0
  27. package/dist/config/raw-loader.d.ts +42 -0
  28. package/dist/config/raw-loader.d.ts.map +1 -0
  29. package/dist/config/removed-agent-config.d.ts +8 -0
  30. package/dist/config/removed-agent-config.d.ts.map +1 -0
  31. package/dist/config/schema/agent-overrides.d.ts +52 -0
  32. package/dist/config/schema/agent-overrides.d.ts.map +1 -0
  33. package/dist/config/schema/magic-context.d.ts +805 -0
  34. package/dist/config/schema/magic-context.d.ts.map +1 -0
  35. package/dist/config/variable.d.ts +48 -0
  36. package/dist/config/variable.d.ts.map +1 -0
  37. package/dist/context-a6px04s0.js +23932 -0
  38. package/dist/derive-budgets-fhk00zv8.js +18 -0
  39. package/dist/features/magic-context/compaction-marker.d.ts +211 -0
  40. package/dist/features/magic-context/compaction-marker.d.ts.map +1 -0
  41. package/dist/features/magic-context/compaction.d.ts +7 -0
  42. package/dist/features/magic-context/compaction.d.ts.map +1 -0
  43. package/dist/features/magic-context/compartment-events.d.ts +50 -0
  44. package/dist/features/magic-context/compartment-events.d.ts.map +1 -0
  45. package/dist/features/magic-context/compartment-lease.d.ts +28 -0
  46. package/dist/features/magic-context/compartment-lease.d.ts.map +1 -0
  47. package/dist/features/magic-context/compartment-storage.d.ts +178 -0
  48. package/dist/features/magic-context/compartment-storage.d.ts.map +1 -0
  49. package/dist/features/magic-context/compression-depth-storage.d.ts +14 -0
  50. package/dist/features/magic-context/compression-depth-storage.d.ts.map +1 -0
  51. package/dist/features/magic-context/context-authority.d.ts +15 -0
  52. package/dist/features/magic-context/context-authority.d.ts.map +1 -0
  53. package/dist/features/magic-context/fail-closed-block.d.ts +117 -0
  54. package/dist/features/magic-context/fail-closed-block.d.ts.map +1 -0
  55. package/dist/features/magic-context/index.d.ts +10 -0
  56. package/dist/features/magic-context/index.d.ts.map +1 -0
  57. package/dist/features/magic-context/literal-probes.d.ts +24 -0
  58. package/dist/features/magic-context/literal-probes.d.ts.map +1 -0
  59. package/dist/features/magic-context/lkg-prefix-chunks.d.ts +53 -0
  60. package/dist/features/magic-context/lkg-prefix-chunks.d.ts.map +1 -0
  61. package/dist/features/magic-context/memory/constants.d.ts +16 -0
  62. package/dist/features/magic-context/memory/constants.d.ts.map +1 -0
  63. package/dist/features/magic-context/memory/index.d.ts +11 -0
  64. package/dist/features/magic-context/memory/index.d.ts.map +1 -0
  65. package/dist/features/magic-context/memory/memory-diagnostics.d.ts +6 -0
  66. package/dist/features/magic-context/memory/memory-diagnostics.d.ts.map +1 -0
  67. package/dist/features/magic-context/memory/memory-selection.d.ts +12 -0
  68. package/dist/features/magic-context/memory/memory-selection.d.ts.map +1 -0
  69. package/dist/features/magic-context/memory/memory-visibility.d.ts +46 -0
  70. package/dist/features/magic-context/memory/memory-visibility.d.ts.map +1 -0
  71. package/dist/features/magic-context/memory/normalize-hash.d.ts +3 -0
  72. package/dist/features/magic-context/memory/normalize-hash.d.ts.map +1 -0
  73. package/dist/features/magic-context/memory/project-identity-cache.d.ts +7 -0
  74. package/dist/features/magic-context/memory/project-identity-cache.d.ts.map +1 -0
  75. package/dist/features/magic-context/memory/project-identity.d.ts +97 -0
  76. package/dist/features/magic-context/memory/project-identity.d.ts.map +1 -0
  77. package/dist/features/magic-context/memory/promotion.d.ts +26 -0
  78. package/dist/features/magic-context/memory/promotion.d.ts.map +1 -0
  79. package/dist/features/magic-context/memory/relocate-memory.d.ts +58 -0
  80. package/dist/features/magic-context/memory/relocate-memory.d.ts.map +1 -0
  81. package/dist/features/magic-context/memory/storage-memory-fts.d.ts +11 -0
  82. package/dist/features/magic-context/memory/storage-memory-fts.d.ts.map +1 -0
  83. package/dist/features/magic-context/memory/storage-memory-verifications.d.ts +35 -0
  84. package/dist/features/magic-context/memory/storage-memory-verifications.d.ts.map +1 -0
  85. package/dist/features/magic-context/memory/storage-memory.d.ts +89 -0
  86. package/dist/features/magic-context/memory/storage-memory.d.ts.map +1 -0
  87. package/dist/features/magic-context/memory/types.d.ts +59 -0
  88. package/dist/features/magic-context/memory/types.d.ts.map +1 -0
  89. package/dist/features/magic-context/memory/verification-paths.d.ts +48 -0
  90. package/dist/features/magic-context/memory/verification-paths.d.ts.map +1 -0
  91. package/dist/features/magic-context/memory/visibility.d.ts +6 -0
  92. package/dist/features/magic-context/memory/visibility.d.ts.map +1 -0
  93. package/dist/features/magic-context/memory-maintainer/apply.d.ts +65 -0
  94. package/dist/features/magic-context/memory-maintainer/apply.d.ts.map +1 -0
  95. package/dist/features/magic-context/memory-maintainer/budget.d.ts +75 -0
  96. package/dist/features/magic-context/memory-maintainer/budget.d.ts.map +1 -0
  97. package/dist/features/magic-context/memory-maintainer/coverage.d.ts +91 -0
  98. package/dist/features/magic-context/memory-maintainer/coverage.d.ts.map +1 -0
  99. package/dist/features/magic-context/memory-maintainer/dream-state.d.ts +18 -0
  100. package/dist/features/magic-context/memory-maintainer/dream-state.d.ts.map +1 -0
  101. package/dist/features/magic-context/memory-maintainer/launcher.d.ts +119 -0
  102. package/dist/features/magic-context/memory-maintainer/launcher.d.ts.map +1 -0
  103. package/dist/features/magic-context/memory-maintainer/lease.d.ts +56 -0
  104. package/dist/features/magic-context/memory-maintainer/lease.d.ts.map +1 -0
  105. package/dist/features/magic-context/memory-maintainer/manifest.d.ts +127 -0
  106. package/dist/features/magic-context/memory-maintainer/manifest.d.ts.map +1 -0
  107. package/dist/features/magic-context/memory-maintainer/manual-commands.d.ts +46 -0
  108. package/dist/features/magic-context/memory-maintainer/manual-commands.d.ts.map +1 -0
  109. package/dist/features/magic-context/memory-maintainer/oc2-adapter.d.ts +79 -0
  110. package/dist/features/magic-context/memory-maintainer/oc2-adapter.d.ts.map +1 -0
  111. package/dist/features/magic-context/memory-maintainer/pause-report.d.ts +37 -0
  112. package/dist/features/magic-context/memory-maintainer/pause-report.d.ts.map +1 -0
  113. package/dist/features/magic-context/memory-maintainer/pipeline.d.ts +199 -0
  114. package/dist/features/magic-context/memory-maintainer/pipeline.d.ts.map +1 -0
  115. package/dist/features/magic-context/memory-maintainer/provider-output-failure.d.ts +15 -0
  116. package/dist/features/magic-context/memory-maintainer/provider-output-failure.d.ts.map +1 -0
  117. package/dist/features/magic-context/memory-maintainer/schedule-storage.d.ts +76 -0
  118. package/dist/features/magic-context/memory-maintainer/schedule-storage.d.ts.map +1 -0
  119. package/dist/features/magic-context/memory-maintainer/schedule.d.ts +90 -0
  120. package/dist/features/magic-context/memory-maintainer/schedule.d.ts.map +1 -0
  121. package/dist/features/magic-context/merged-reasoning-decisions.d.ts +6 -0
  122. package/dist/features/magic-context/merged-reasoning-decisions.d.ts.map +1 -0
  123. package/dist/features/magic-context/message-fts-rowid-map.d.ts +50 -0
  124. package/dist/features/magic-context/message-fts-rowid-map.d.ts.map +1 -0
  125. package/dist/features/magic-context/message-fts-session-filter.d.ts +14 -0
  126. package/dist/features/magic-context/message-fts-session-filter.d.ts.map +1 -0
  127. package/dist/features/magic-context/message-index-async.d.ts +33 -0
  128. package/dist/features/magic-context/message-index-async.d.ts.map +1 -0
  129. package/dist/features/magic-context/message-index-sweep.d.ts +11 -0
  130. package/dist/features/magic-context/message-index-sweep.d.ts.map +1 -0
  131. package/dist/features/magic-context/message-index.d.ts +88 -0
  132. package/dist/features/magic-context/message-index.d.ts.map +1 -0
  133. package/dist/features/magic-context/message-time-backfill.d.ts +19 -0
  134. package/dist/features/magic-context/message-time-backfill.d.ts.map +1 -0
  135. package/dist/features/magic-context/migration-v2-write-split.d.ts +62 -0
  136. package/dist/features/magic-context/migration-v2-write-split.d.ts.map +1 -0
  137. package/dist/features/magic-context/migrations.d.ts +73 -0
  138. package/dist/features/magic-context/migrations.d.ts.map +1 -0
  139. package/dist/features/magic-context/mock-database.d.ts +3 -0
  140. package/dist/features/magic-context/mock-database.d.ts.map +1 -0
  141. package/dist/features/magic-context/mural/storage-mural-cues.d.ts +65 -0
  142. package/dist/features/magic-context/mural/storage-mural-cues.d.ts.map +1 -0
  143. package/dist/features/magic-context/no-content-compartment.d.ts +12 -0
  144. package/dist/features/magic-context/no-content-compartment.d.ts.map +1 -0
  145. package/dist/features/magic-context/opencode2-relabel.d.ts +132 -0
  146. package/dist/features/magic-context/opencode2-relabel.d.ts.map +1 -0
  147. package/dist/features/magic-context/overflow-detection.d.ts +108 -0
  148. package/dist/features/magic-context/overflow-detection.d.ts.map +1 -0
  149. package/dist/features/magic-context/pi-content-decisions.d.ts +9 -0
  150. package/dist/features/magic-context/pi-content-decisions.d.ts.map +1 -0
  151. package/dist/features/magic-context/project-identity.d.ts +2 -0
  152. package/dist/features/magic-context/project-identity.d.ts.map +1 -0
  153. package/dist/features/magic-context/protection-window.d.ts +79 -0
  154. package/dist/features/magic-context/protection-window.d.ts.map +1 -0
  155. package/dist/features/magic-context/range-parser.d.ts +18 -0
  156. package/dist/features/magic-context/range-parser.d.ts.map +1 -0
  157. package/dist/features/magic-context/reclaim-protection.d.ts +13 -0
  158. package/dist/features/magic-context/reclaim-protection.d.ts.map +1 -0
  159. package/dist/features/magic-context/resolve-subagent-fallback.d.ts +42 -0
  160. package/dist/features/magic-context/resolve-subagent-fallback.d.ts.map +1 -0
  161. package/dist/features/magic-context/scheduler.d.ts +20 -0
  162. package/dist/features/magic-context/scheduler.d.ts.map +1 -0
  163. package/dist/features/magic-context/schema-fence-probe.d.ts +29 -0
  164. package/dist/features/magic-context/schema-fence-probe.d.ts.map +1 -0
  165. package/dist/features/magic-context/search.d.ts +118 -0
  166. package/dist/features/magic-context/search.d.ts.map +1 -0
  167. package/dist/features/magic-context/session-cache-ttl.d.ts +10 -0
  168. package/dist/features/magic-context/session-cache-ttl.d.ts.map +1 -0
  169. package/dist/features/magic-context/session-decision-calibration.d.ts +31 -0
  170. package/dist/features/magic-context/session-decision-calibration.d.ts.map +1 -0
  171. package/dist/features/magic-context/session-project-backfill.d.ts +37 -0
  172. package/dist/features/magic-context/session-project-backfill.d.ts.map +1 -0
  173. package/dist/features/magic-context/session-project-storage.d.ts +23 -0
  174. package/dist/features/magic-context/session-project-storage.d.ts.map +1 -0
  175. package/dist/features/magic-context/storage-caveman-rules.d.ts +21 -0
  176. package/dist/features/magic-context/storage-caveman-rules.d.ts.map +1 -0
  177. package/dist/features/magic-context/storage-clone.d.ts +44 -0
  178. package/dist/features/magic-context/storage-clone.d.ts.map +1 -0
  179. package/dist/features/magic-context/storage-db.d.ts +183 -0
  180. package/dist/features/magic-context/storage-db.d.ts.map +1 -0
  181. package/dist/features/magic-context/storage-historian-runs.d.ts +79 -0
  182. package/dist/features/magic-context/storage-historian-runs.d.ts.map +1 -0
  183. package/dist/features/magic-context/storage-identity-merge.d.ts +26 -0
  184. package/dist/features/magic-context/storage-identity-merge.d.ts.map +1 -0
  185. package/dist/features/magic-context/storage-identity-rekey-map.d.ts +11 -0
  186. package/dist/features/magic-context/storage-identity-rekey-map.d.ts.map +1 -0
  187. package/dist/features/magic-context/storage-m0-mutation-log.d.ts +22 -0
  188. package/dist/features/magic-context/storage-m0-mutation-log.d.ts.map +1 -0
  189. package/dist/features/magic-context/storage-memory-mutation-log.d.ts +29 -0
  190. package/dist/features/magic-context/storage-memory-mutation-log.d.ts.map +1 -0
  191. package/dist/features/magic-context/storage-meta-persisted.d.ts +623 -0
  192. package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -0
  193. package/dist/features/magic-context/storage-meta-session.d.ts +14 -0
  194. package/dist/features/magic-context/storage-meta-session.d.ts.map +1 -0
  195. package/dist/features/magic-context/storage-meta-shared.d.ts +102 -0
  196. package/dist/features/magic-context/storage-meta-shared.d.ts.map +1 -0
  197. package/dist/features/magic-context/storage-meta.d.ts +4 -0
  198. package/dist/features/magic-context/storage-meta.d.ts.map +1 -0
  199. package/dist/features/magic-context/storage-native-replay.d.ts +29 -0
  200. package/dist/features/magic-context/storage-native-replay.d.ts.map +1 -0
  201. package/dist/features/magic-context/storage-notes.d.ts +80 -0
  202. package/dist/features/magic-context/storage-notes.d.ts.map +1 -0
  203. package/dist/features/magic-context/storage-ops.d.ts +14 -0
  204. package/dist/features/magic-context/storage-ops.d.ts.map +1 -0
  205. package/dist/features/magic-context/storage-primers.d.ts +96 -0
  206. package/dist/features/magic-context/storage-primers.d.ts.map +1 -0
  207. package/dist/features/magic-context/storage-project-state.d.ts +19 -0
  208. package/dist/features/magic-context/storage-project-state.d.ts.map +1 -0
  209. package/dist/features/magic-context/storage-reasoning-removal.d.ts +30 -0
  210. package/dist/features/magic-context/storage-reasoning-removal.d.ts.map +1 -0
  211. package/dist/features/magic-context/storage-replay-document.d.ts +72 -0
  212. package/dist/features/magic-context/storage-replay-document.d.ts.map +1 -0
  213. package/dist/features/magic-context/storage-schema-helpers.d.ts +31 -0
  214. package/dist/features/magic-context/storage-schema-helpers.d.ts.map +1 -0
  215. package/dist/features/magic-context/storage-session-tables.d.ts +18 -0
  216. package/dist/features/magic-context/storage-session-tables.d.ts.map +1 -0
  217. package/dist/features/magic-context/storage-source.d.ts +5 -0
  218. package/dist/features/magic-context/storage-source.d.ts.map +1 -0
  219. package/dist/features/magic-context/storage-subagent-invocations.d.ts +62 -0
  220. package/dist/features/magic-context/storage-subagent-invocations.d.ts.map +1 -0
  221. package/dist/features/magic-context/storage-tags.d.ts +542 -0
  222. package/dist/features/magic-context/storage-tags.d.ts.map +1 -0
  223. package/dist/features/magic-context/storage-unavailable-reason.d.ts +17 -0
  224. package/dist/features/magic-context/storage-unavailable-reason.d.ts.map +1 -0
  225. package/dist/features/magic-context/storage-v22-backfill-failures.d.ts +26 -0
  226. package/dist/features/magic-context/storage-v22-backfill-failures.d.ts.map +1 -0
  227. package/dist/features/magic-context/storage.d.ts +23 -0
  228. package/dist/features/magic-context/storage.d.ts.map +1 -0
  229. package/dist/features/magic-context/store-generation-rebase.d.ts +188 -0
  230. package/dist/features/magic-context/store-generation-rebase.d.ts.map +1 -0
  231. package/dist/features/magic-context/subagent-token-capture.d.ts +35 -0
  232. package/dist/features/magic-context/subagent-token-capture.d.ts.map +1 -0
  233. package/dist/features/magic-context/tag-input.d.ts +4 -0
  234. package/dist/features/magic-context/tag-input.d.ts.map +1 -0
  235. package/dist/features/magic-context/tagger.d.ts +119 -0
  236. package/dist/features/magic-context/tagger.d.ts.map +1 -0
  237. package/dist/features/magic-context/tool-definition-tokens.d.ts +90 -0
  238. package/dist/features/magic-context/tool-definition-tokens.d.ts.map +1 -0
  239. package/dist/features/magic-context/tool-owner-backfill.d.ts +93 -0
  240. package/dist/features/magic-context/tool-owner-backfill.d.ts.map +1 -0
  241. package/dist/features/magic-context/transform-decision-log.d.ts +110 -0
  242. package/dist/features/magic-context/transform-decision-log.d.ts.map +1 -0
  243. package/dist/features/magic-context/types.d.ts +133 -0
  244. package/dist/features/magic-context/types.d.ts.map +1 -0
  245. package/dist/features/magic-context/window-report-ledger.d.ts +70 -0
  246. package/dist/features/magic-context/window-report-ledger.d.ts.map +1 -0
  247. package/dist/features/magic-context/work-metrics.d.ts +79 -0
  248. package/dist/features/magic-context/work-metrics.d.ts.map +1 -0
  249. package/dist/features/magic-context/workspaces.d.ts +28 -0
  250. package/dist/features/magic-context/workspaces.d.ts.map +1 -0
  251. package/dist/hooks/auto-update-checker/semver.d.ts +26 -0
  252. package/dist/hooks/auto-update-checker/semver.d.ts.map +1 -0
  253. package/dist/hooks/magic-context/apply-operations.d.ts +158 -0
  254. package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -0
  255. package/dist/hooks/magic-context/auto-search-deadline.d.ts +10 -0
  256. package/dist/hooks/magic-context/auto-search-deadline.d.ts.map +1 -0
  257. package/dist/hooks/magic-context/auto-search-hint.d.ts +36 -0
  258. package/dist/hooks/magic-context/auto-search-hint.d.ts.map +1 -0
  259. package/dist/hooks/magic-context/auto-search-runner.d.ts +60 -0
  260. package/dist/hooks/magic-context/auto-search-runner.d.ts.map +1 -0
  261. package/dist/hooks/magic-context/cache-busting-signals.d.ts +42 -0
  262. package/dist/hooks/magic-context/cache-busting-signals.d.ts.map +1 -0
  263. package/dist/hooks/magic-context/caveman-cleanup.d.ts +98 -0
  264. package/dist/hooks/magic-context/caveman-cleanup.d.ts.map +1 -0
  265. package/dist/hooks/magic-context/caveman.d.ts +90 -0
  266. package/dist/hooks/magic-context/caveman.d.ts.map +1 -0
  267. package/dist/hooks/magic-context/channel2-cycle.d.ts +16 -0
  268. package/dist/hooks/magic-context/channel2-cycle.d.ts.map +1 -0
  269. package/dist/hooks/magic-context/channel2-delivery.d.ts +32 -0
  270. package/dist/hooks/magic-context/channel2-delivery.d.ts.map +1 -0
  271. package/dist/hooks/magic-context/child-session-spawn.d.ts +27 -0
  272. package/dist/hooks/magic-context/child-session-spawn.d.ts.map +1 -0
  273. package/dist/hooks/magic-context/compaction-marker-manager.d.ts +154 -0
  274. package/dist/hooks/magic-context/compaction-marker-manager.d.ts.map +1 -0
  275. package/dist/hooks/magic-context/compaction-off-transition.d.ts +97 -0
  276. package/dist/hooks/magic-context/compaction-off-transition.d.ts.map +1 -0
  277. package/dist/hooks/magic-context/compartment-parser.d.ts +66 -0
  278. package/dist/hooks/magic-context/compartment-parser.d.ts.map +1 -0
  279. package/dist/hooks/magic-context/compartment-prompt.d.ts +33 -0
  280. package/dist/hooks/magic-context/compartment-prompt.d.ts.map +1 -0
  281. package/dist/hooks/magic-context/compartment-render-epoch.d.ts +27 -0
  282. package/dist/hooks/magic-context/compartment-render-epoch.d.ts.map +1 -0
  283. package/dist/hooks/magic-context/compartment-runner-drop-queue.d.ts +29 -0
  284. package/dist/hooks/magic-context/compartment-runner-drop-queue.d.ts.map +1 -0
  285. package/dist/hooks/magic-context/compartment-runner-historian.d.ts +43 -0
  286. package/dist/hooks/magic-context/compartment-runner-historian.d.ts.map +1 -0
  287. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts +31 -0
  288. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -0
  289. package/dist/hooks/magic-context/compartment-runner-mapping.d.ts +25 -0
  290. package/dist/hooks/magic-context/compartment-runner-mapping.d.ts.map +1 -0
  291. package/dist/hooks/magic-context/compartment-runner-partial-recomp.d.ts +29 -0
  292. package/dist/hooks/magic-context/compartment-runner-partial-recomp.d.ts.map +1 -0
  293. package/dist/hooks/magic-context/compartment-runner-recomp.d.ts +11 -0
  294. package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -0
  295. package/dist/hooks/magic-context/compartment-runner-types.d.ts +295 -0
  296. package/dist/hooks/magic-context/compartment-runner-types.d.ts.map +1 -0
  297. package/dist/hooks/magic-context/compartment-runner-validation.d.ts +83 -0
  298. package/dist/hooks/magic-context/compartment-runner-validation.d.ts.map +1 -0
  299. package/dist/hooks/magic-context/compartment-runner.d.ts +59 -0
  300. package/dist/hooks/magic-context/compartment-runner.d.ts.map +1 -0
  301. package/dist/hooks/magic-context/compartment-trigger.d.ts +77 -0
  302. package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -0
  303. package/dist/hooks/magic-context/ctx-reduce-availability.d.ts +170 -0
  304. package/dist/hooks/magic-context/ctx-reduce-availability.d.ts.map +1 -0
  305. package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts +104 -0
  306. package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts.map +1 -0
  307. package/dist/hooks/magic-context/decay-curve.d.ts +84 -0
  308. package/dist/hooks/magic-context/decay-curve.d.ts.map +1 -0
  309. package/dist/hooks/magic-context/decay-render.d.ts +80 -0
  310. package/dist/hooks/magic-context/decay-render.d.ts.map +1 -0
  311. package/dist/hooks/magic-context/decision-calibration.d.ts +24 -0
  312. package/dist/hooks/magic-context/decision-calibration.d.ts.map +1 -0
  313. package/dist/hooks/magic-context/degraded-pass-refusal.d.ts +35 -0
  314. package/dist/hooks/magic-context/degraded-pass-refusal.d.ts.map +1 -0
  315. package/dist/hooks/magic-context/derive-budgets.d.ts +60 -0
  316. package/dist/hooks/magic-context/derive-budgets.d.ts.map +1 -0
  317. package/dist/hooks/magic-context/drop-stale-reduce-calls.d.ts +39 -0
  318. package/dist/hooks/magic-context/drop-stale-reduce-calls.d.ts.map +1 -0
  319. package/dist/hooks/magic-context/dropped-input-guard.d.ts +55 -0
  320. package/dist/hooks/magic-context/dropped-input-guard.d.ts.map +1 -0
  321. package/dist/hooks/magic-context/dropped-token-estimate.d.ts +20 -0
  322. package/dist/hooks/magic-context/dropped-token-estimate.d.ts.map +1 -0
  323. package/dist/hooks/magic-context/edit-marker.d.ts +11 -0
  324. package/dist/hooks/magic-context/edit-marker.d.ts.map +1 -0
  325. package/dist/hooks/magic-context/emergency-drop.d.ts +112 -0
  326. package/dist/hooks/magic-context/emergency-drop.d.ts.map +1 -0
  327. package/dist/hooks/magic-context/emergency-fail-closed.d.ts +14 -0
  328. package/dist/hooks/magic-context/emergency-fail-closed.d.ts.map +1 -0
  329. package/dist/hooks/magic-context/empty-task-output.d.ts +16 -0
  330. package/dist/hooks/magic-context/empty-task-output.d.ts.map +1 -0
  331. package/dist/hooks/magic-context/event-payloads.d.ts +73 -0
  332. package/dist/hooks/magic-context/event-payloads.d.ts.map +1 -0
  333. package/dist/hooks/magic-context/event-resolvers.d.ts +114 -0
  334. package/dist/hooks/magic-context/event-resolvers.d.ts.map +1 -0
  335. package/dist/hooks/magic-context/execute-flush.d.ts +3 -0
  336. package/dist/hooks/magic-context/execute-flush.d.ts.map +1 -0
  337. package/dist/hooks/magic-context/final-wire-token-estimate.d.ts +56 -0
  338. package/dist/hooks/magic-context/final-wire-token-estimate.d.ts.map +1 -0
  339. package/dist/hooks/magic-context/fold-execution-gate.d.ts +2 -0
  340. package/dist/hooks/magic-context/fold-execution-gate.d.ts.map +1 -0
  341. package/dist/hooks/magic-context/format-bytes.d.ts +2 -0
  342. package/dist/hooks/magic-context/format-bytes.d.ts.map +1 -0
  343. package/dist/hooks/magic-context/heuristic-cleanup.d.ts +48 -0
  344. package/dist/hooks/magic-context/heuristic-cleanup.d.ts.map +1 -0
  345. package/dist/hooks/magic-context/historian-no-fire-cause.d.ts +5 -0
  346. package/dist/hooks/magic-context/historian-no-fire-cause.d.ts.map +1 -0
  347. package/dist/hooks/magic-context/historian-prompt-fit.d.ts +112 -0
  348. package/dist/hooks/magic-context/historian-prompt-fit.d.ts.map +1 -0
  349. package/dist/hooks/magic-context/historian-prompt.generated.d.ts +2 -0
  350. package/dist/hooks/magic-context/historian-prompt.generated.d.ts.map +1 -0
  351. package/dist/hooks/magic-context/historian-publish-stage-logger.d.ts +3 -0
  352. package/dist/hooks/magic-context/historian-publish-stage-logger.d.ts.map +1 -0
  353. package/dist/hooks/magic-context/historian-state-file.d.ts +43 -0
  354. package/dist/hooks/magic-context/historian-state-file.d.ts.map +1 -0
  355. package/dist/hooks/magic-context/history-boundary-repair.d.ts +44 -0
  356. package/dist/hooks/magic-context/history-boundary-repair.d.ts.map +1 -0
  357. package/dist/hooks/magic-context/hook-handlers.d.ts +177 -0
  358. package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -0
  359. package/dist/hooks/magic-context/host-served-rows.d.ts +58 -0
  360. package/dist/hooks/magic-context/host-served-rows.d.ts.map +1 -0
  361. package/dist/hooks/magic-context/image-token-estimate.d.ts +15 -0
  362. package/dist/hooks/magic-context/image-token-estimate.d.ts.map +1 -0
  363. package/dist/hooks/magic-context/inject-compartments.d.ts +389 -0
  364. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -0
  365. package/dist/hooks/magic-context/issue-135-wire-fixtures.d.ts +8 -0
  366. package/dist/hooks/magic-context/issue-135-wire-fixtures.d.ts.map +1 -0
  367. package/dist/hooks/magic-context/issue-423-fixture.d.ts +37 -0
  368. package/dist/hooks/magic-context/issue-423-fixture.d.ts.map +1 -0
  369. package/dist/hooks/magic-context/issue-424-fixture.d.ts +11 -0
  370. package/dist/hooks/magic-context/issue-424-fixture.d.ts.map +1 -0
  371. package/dist/hooks/magic-context/legacy-compartments.d.ts +20 -0
  372. package/dist/hooks/magic-context/legacy-compartments.d.ts.map +1 -0
  373. package/dist/hooks/magic-context/live-session-state.d.ts +68 -0
  374. package/dist/hooks/magic-context/live-session-state.d.ts.map +1 -0
  375. package/dist/hooks/magic-context/lkg-persist.d.ts +22 -0
  376. package/dist/hooks/magic-context/lkg-persist.d.ts.map +1 -0
  377. package/dist/hooks/magic-context/lkg-replay.d.ts +71 -0
  378. package/dist/hooks/magic-context/lkg-replay.d.ts.map +1 -0
  379. package/dist/hooks/magic-context/lkg-slot.d.ts +119 -0
  380. package/dist/hooks/magic-context/lkg-slot.d.ts.map +1 -0
  381. package/dist/hooks/magic-context/m0-token-breakdown.d.ts +44 -0
  382. package/dist/hooks/magic-context/m0-token-breakdown.d.ts.map +1 -0
  383. package/dist/hooks/magic-context/maintenance-authority.d.ts +2 -0
  384. package/dist/hooks/magic-context/maintenance-authority.d.ts.map +1 -0
  385. package/dist/hooks/magic-context/openai-compat-adjacency.d.ts +38 -0
  386. package/dist/hooks/magic-context/openai-compat-adjacency.d.ts.map +1 -0
  387. package/dist/hooks/magic-context/opencode-v1-store-fixture.d.ts +12 -0
  388. package/dist/hooks/magic-context/opencode-v1-store-fixture.d.ts.map +1 -0
  389. package/dist/hooks/magic-context/pass-outcome.d.ts +70 -0
  390. package/dist/hooks/magic-context/pass-outcome.d.ts.map +1 -0
  391. package/dist/hooks/magic-context/persist-filtered-noise.d.ts +5 -0
  392. package/dist/hooks/magic-context/persist-filtered-noise.d.ts.map +1 -0
  393. package/dist/hooks/magic-context/postprocess-read-cache.d.ts +8 -0
  394. package/dist/hooks/magic-context/postprocess-read-cache.d.ts.map +1 -0
  395. package/dist/hooks/magic-context/producer-window-guard.d.ts +63 -0
  396. package/dist/hooks/magic-context/producer-window-guard.d.ts.map +1 -0
  397. package/dist/hooks/magic-context/producer-window-test-support.d.ts +14 -0
  398. package/dist/hooks/magic-context/producer-window-test-support.d.ts.map +1 -0
  399. package/dist/hooks/magic-context/protected-tail-boundary.d.ts +234 -0
  400. package/dist/hooks/magic-context/protected-tail-boundary.d.ts.map +1 -0
  401. package/dist/hooks/magic-context/raw-fallback-context-limit.d.ts +10 -0
  402. package/dist/hooks/magic-context/raw-fallback-context-limit.d.ts.map +1 -0
  403. package/dist/hooks/magic-context/read-session-chunk.d.ts +271 -0
  404. package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -0
  405. package/dist/hooks/magic-context/read-session-db.d.ts +66 -0
  406. package/dist/hooks/magic-context/read-session-db.d.ts.map +1 -0
  407. package/dist/hooks/magic-context/read-session-formatting.d.ts +65 -0
  408. package/dist/hooks/magic-context/read-session-formatting.d.ts.map +1 -0
  409. package/dist/hooks/magic-context/read-session-raw.d.ts +164 -0
  410. package/dist/hooks/magic-context/read-session-raw.d.ts.map +1 -0
  411. package/dist/hooks/magic-context/read-session-true-raw-tokens.d.ts +82 -0
  412. package/dist/hooks/magic-context/read-session-true-raw-tokens.d.ts.map +1 -0
  413. package/dist/hooks/magic-context/reasoning-removal.d.ts +60 -0
  414. package/dist/hooks/magic-context/reasoning-removal.d.ts.map +1 -0
  415. package/dist/hooks/magic-context/recomp-orchestrator.d.ts +93 -0
  416. package/dist/hooks/magic-context/recomp-orchestrator.d.ts.map +1 -0
  417. package/dist/hooks/magic-context/reference-retrieval.d.ts +72 -0
  418. package/dist/hooks/magic-context/reference-retrieval.d.ts.map +1 -0
  419. package/dist/hooks/magic-context/reference-seeds.generated.d.ts +8 -0
  420. package/dist/hooks/magic-context/reference-seeds.generated.d.ts.map +1 -0
  421. package/dist/hooks/magic-context/send-session-notification.d.ts +43 -0
  422. package/dist/hooks/magic-context/send-session-notification.d.ts.map +1 -0
  423. package/dist/hooks/magic-context/sentinel.d.ts +146 -0
  424. package/dist/hooks/magic-context/sentinel.d.ts.map +1 -0
  425. package/dist/hooks/magic-context/storage-busy-refusal.d.ts +20 -0
  426. package/dist/hooks/magic-context/storage-busy-refusal.d.ts.map +1 -0
  427. package/dist/hooks/magic-context/strip-content.d.ts +216 -0
  428. package/dist/hooks/magic-context/strip-content.d.ts.map +1 -0
  429. package/dist/hooks/magic-context/strip-structural-noise.d.ts +15 -0
  430. package/dist/hooks/magic-context/strip-structural-noise.d.ts.map +1 -0
  431. package/dist/hooks/magic-context/stripped-command.d.ts +56 -0
  432. package/dist/hooks/magic-context/stripped-command.d.ts.map +1 -0
  433. package/dist/hooks/magic-context/supersession-reclaim.d.ts +58 -0
  434. package/dist/hooks/magic-context/supersession-reclaim.d.ts.map +1 -0
  435. package/dist/hooks/magic-context/system-injection-stripper.d.ts +2 -0
  436. package/dist/hooks/magic-context/system-injection-stripper.d.ts.map +1 -0
  437. package/dist/hooks/magic-context/system-prompt-hash.d.ts +129 -0
  438. package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -0
  439. package/dist/hooks/magic-context/tag-content-primitives.d.ts +31 -0
  440. package/dist/hooks/magic-context/tag-content-primitives.d.ts.map +1 -0
  441. package/dist/hooks/magic-context/tag-id-fallback.d.ts +11 -0
  442. package/dist/hooks/magic-context/tag-id-fallback.d.ts.map +1 -0
  443. package/dist/hooks/magic-context/tag-messages.d.ts +145 -0
  444. package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -0
  445. package/dist/hooks/magic-context/tag-part-guards.d.ts +23 -0
  446. package/dist/hooks/magic-context/tag-part-guards.d.ts.map +1 -0
  447. package/dist/hooks/magic-context/tail-hygiene-walk.d.ts +178 -0
  448. package/dist/hooks/magic-context/tail-hygiene-walk.d.ts.map +1 -0
  449. package/dist/hooks/magic-context/temporal-awareness.d.ts +73 -0
  450. package/dist/hooks/magic-context/temporal-awareness.d.ts.map +1 -0
  451. package/dist/hooks/magic-context/text-complete.d.ts +31 -0
  452. package/dist/hooks/magic-context/text-complete.d.ts.map +1 -0
  453. package/dist/hooks/magic-context/todo-view.d.ts +127 -0
  454. package/dist/hooks/magic-context/todo-view.d.ts.map +1 -0
  455. package/dist/hooks/magic-context/tokenizer-calibration.d.ts +92 -0
  456. package/dist/hooks/magic-context/tokenizer-calibration.d.ts.map +1 -0
  457. package/dist/hooks/magic-context/tool-drop-target.d.ts +144 -0
  458. package/dist/hooks/magic-context/tool-drop-target.d.ts.map +1 -0
  459. package/dist/hooks/magic-context/tool-input-size.d.ts +21 -0
  460. package/dist/hooks/magic-context/tool-input-size.d.ts.map +1 -0
  461. package/dist/hooks/magic-context/tool-reclaim.d.ts +12 -0
  462. package/dist/hooks/magic-context/tool-reclaim.d.ts.map +1 -0
  463. package/dist/hooks/magic-context/tool-sweep-policy.d.ts +50 -0
  464. package/dist/hooks/magic-context/tool-sweep-policy.d.ts.map +1 -0
  465. package/dist/hooks/magic-context/transform-compartment-phase.d.ts +133 -0
  466. package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -0
  467. package/dist/hooks/magic-context/transform-context-state.d.ts +28 -0
  468. package/dist/hooks/magic-context/transform-context-state.d.ts.map +1 -0
  469. package/dist/hooks/magic-context/transform-message-helpers.d.ts +32 -0
  470. package/dist/hooks/magic-context/transform-message-helpers.d.ts.map +1 -0
  471. package/dist/hooks/magic-context/transform-operations.d.ts +5 -0
  472. package/dist/hooks/magic-context/transform-operations.d.ts.map +1 -0
  473. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +350 -0
  474. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -0
  475. package/dist/hooks/magic-context/transform-stage-logger.d.ts +2 -0
  476. package/dist/hooks/magic-context/transform-stage-logger.d.ts.map +1 -0
  477. package/dist/hooks/magic-context/transform.d.ts +334 -0
  478. package/dist/hooks/magic-context/transform.d.ts.map +1 -0
  479. package/dist/hooks/magic-context/unmanaged-over-window.d.ts +36 -0
  480. package/dist/hooks/magic-context/unmanaged-over-window.d.ts.map +1 -0
  481. package/dist/hooks/magic-context/unresolved-history-boundary.d.ts +15 -0
  482. package/dist/hooks/magic-context/unresolved-history-boundary.d.ts.map +1 -0
  483. package/dist/hooks/magic-context/wrapup-orchestrator.d.ts +14 -0
  484. package/dist/hooks/magic-context/wrapup-orchestrator.d.ts.map +1 -0
  485. package/dist/index-1vs6anwz.js +126 -0
  486. package/dist/index-3wagyrnj.js +670 -0
  487. package/dist/index-53g38ggt.js +40 -0
  488. package/dist/index-5pg0acf7.js +410 -0
  489. package/dist/index-977gxfz0.js +514 -0
  490. package/dist/index-by6h2pav.js +27883 -0
  491. package/dist/index-e1q8002h.js +16 -0
  492. package/dist/index-fg34g6a5.js +584 -0
  493. package/dist/index-jdxxq8cz.js +99 -0
  494. package/dist/index-me3zcj5t.js +69 -0
  495. package/dist/index-qbkzdkk0.js +496 -0
  496. package/dist/index-wgt4gamw.js +6388 -0
  497. package/dist/index-zx63j2e2.js +907 -0
  498. package/dist/index.d.ts +7 -0
  499. package/dist/index.d.ts.map +1 -0
  500. package/dist/index.js +37 -0
  501. package/dist/message-time-backfill-5ewk0axe.js +116 -0
  502. package/dist/model-resolution-5haaxnpt.js +6 -0
  503. package/dist/plugin/boot-deadline.d.ts +47 -0
  504. package/dist/plugin/boot-deadline.d.ts.map +1 -0
  505. package/dist/plugin/boot-quiet.d.ts +12 -0
  506. package/dist/plugin/boot-quiet.d.ts.map +1 -0
  507. package/dist/plugin/normalize-tool-arg-schemas.d.ts +7 -0
  508. package/dist/plugin/normalize-tool-arg-schemas.d.ts.map +1 -0
  509. package/dist/plugin/rpc-handlers.d.ts +52 -0
  510. package/dist/plugin/rpc-handlers.d.ts.map +1 -0
  511. package/dist/plugin/sidebar-snapshot-cache.d.ts +19 -0
  512. package/dist/plugin/sidebar-snapshot-cache.d.ts.map +1 -0
  513. package/dist/plugin/subagent-tool-policy.d.ts +9 -0
  514. package/dist/plugin/subagent-tool-policy.d.ts.map +1 -0
  515. package/dist/plugin/types.d.ts +3 -0
  516. package/dist/plugin/types.d.ts.map +1 -0
  517. package/dist/prompt-context-ffa5xcfx.js +76 -0
  518. package/dist/read-session-chunk-apjwrttc.js +56 -0
  519. package/dist/recomp-orchestrator-gyeevxaw.js +21 -0
  520. package/dist/rpc-notifications-4amf6mf4.js +14 -0
  521. package/dist/safe-notification-target-ph3xd1ve.js +9 -0
  522. package/dist/send-session-notification-y29y9fsr.js +18 -0
  523. package/dist/shared/announcement.d.ts +69 -0
  524. package/dist/shared/announcement.d.ts.map +1 -0
  525. package/dist/shared/assistant-message-extractor.d.ts +13 -0
  526. package/dist/shared/assistant-message-extractor.d.ts.map +1 -0
  527. package/dist/shared/auto-update-provenance.d.ts +9 -0
  528. package/dist/shared/auto-update-provenance.d.ts.map +1 -0
  529. package/dist/shared/bounded-session-map.d.ts +45 -0
  530. package/dist/shared/bounded-session-map.d.ts.map +1 -0
  531. package/dist/shared/builtin-commands.d.ts +24 -0
  532. package/dist/shared/builtin-commands.d.ts.map +1 -0
  533. package/dist/shared/cache-ttl-display.d.ts +25 -0
  534. package/dist/shared/cache-ttl-display.d.ts.map +1 -0
  535. package/dist/shared/cache-ttl-seed.d.ts +10 -0
  536. package/dist/shared/cache-ttl-seed.d.ts.map +1 -0
  537. package/dist/shared/child-session-teardown.d.ts +34 -0
  538. package/dist/shared/child-session-teardown.d.ts.map +1 -0
  539. package/dist/shared/commit-detection.d.ts +29 -0
  540. package/dist/shared/commit-detection.d.ts.map +1 -0
  541. package/dist/shared/config-diagnostics.d.ts +30 -0
  542. package/dist/shared/config-diagnostics.d.ts.map +1 -0
  543. package/dist/shared/conflict-detector.d.ts +139 -0
  544. package/dist/shared/conflict-detector.d.ts.map +1 -0
  545. package/dist/shared/conflict-fixer.d.ts +20 -0
  546. package/dist/shared/conflict-fixer.d.ts.map +1 -0
  547. package/dist/shared/context-limit-provenance.d.ts +3 -0
  548. package/dist/shared/context-limit-provenance.d.ts.map +1 -0
  549. package/dist/shared/data-path.d.ts +176 -0
  550. package/dist/shared/data-path.d.ts.map +1 -0
  551. package/dist/shared/error-message.d.ts +32 -0
  552. package/dist/shared/error-message.d.ts.map +1 -0
  553. package/dist/shared/escalation-bands.d.ts +9 -0
  554. package/dist/shared/escalation-bands.d.ts.map +1 -0
  555. package/dist/shared/format-bytes.d.ts +2 -0
  556. package/dist/shared/format-bytes.d.ts.map +1 -0
  557. package/dist/shared/format-threshold.d.ts +43 -0
  558. package/dist/shared/format-threshold.d.ts.map +1 -0
  559. package/dist/shared/harness-provider-map.d.ts +64 -0
  560. package/dist/shared/harness-provider-map.d.ts.map +1 -0
  561. package/dist/shared/harness.d.ts +55 -0
  562. package/dist/shared/harness.d.ts.map +1 -0
  563. package/dist/shared/hidden-variant-warnings.d.ts +5 -0
  564. package/dist/shared/hidden-variant-warnings.d.ts.map +1 -0
  565. package/dist/shared/historian-tool-expansions.d.ts +5 -0
  566. package/dist/shared/historian-tool-expansions.d.ts.map +1 -0
  567. package/dist/shared/historian-tool-template.d.ts +5 -0
  568. package/dist/shared/historian-tool-template.d.ts.map +1 -0
  569. package/dist/shared/historian-transient-error.d.ts +2 -0
  570. package/dist/shared/historian-transient-error.d.ts.map +1 -0
  571. package/dist/shared/host-limitations.d.ts +14 -0
  572. package/dist/shared/host-limitations.d.ts.map +1 -0
  573. package/dist/shared/index.d.ts +8 -0
  574. package/dist/shared/index.d.ts.map +1 -0
  575. package/dist/shared/internal-initiator-marker.d.ts +2 -0
  576. package/dist/shared/internal-initiator-marker.d.ts.map +1 -0
  577. package/dist/shared/jsonc-edit.d.ts +23 -0
  578. package/dist/shared/jsonc-edit.d.ts.map +1 -0
  579. package/dist/shared/jsonc-parser.d.ts +30 -0
  580. package/dist/shared/jsonc-parser.d.ts.map +1 -0
  581. package/dist/shared/keep-subagents.d.ts +7 -0
  582. package/dist/shared/keep-subagents.d.ts.map +1 -0
  583. package/dist/shared/logger.d.ts +18 -0
  584. package/dist/shared/logger.d.ts.map +1 -0
  585. package/dist/shared/model-cache-ttl.d.ts +9 -0
  586. package/dist/shared/model-cache-ttl.d.ts.map +1 -0
  587. package/dist/shared/model-resolution.d.ts +35 -0
  588. package/dist/shared/model-resolution.d.ts.map +1 -0
  589. package/dist/shared/model-suggestion-retry.d.ts +138 -0
  590. package/dist/shared/model-suggestion-retry.d.ts.map +1 -0
  591. package/dist/shared/models-dev-cache.d.ts +156 -0
  592. package/dist/shared/models-dev-cache.d.ts.map +1 -0
  593. package/dist/shared/normalize-sdk-response.d.ts +5 -0
  594. package/dist/shared/normalize-sdk-response.d.ts.map +1 -0
  595. package/dist/shared/opencode-config-dir-types.d.ts +14 -0
  596. package/dist/shared/opencode-config-dir-types.d.ts.map +1 -0
  597. package/dist/shared/opencode-config-dir.d.ts +57 -0
  598. package/dist/shared/opencode-config-dir.d.ts.map +1 -0
  599. package/dist/shared/opencode-db-path.d.ts +68 -0
  600. package/dist/shared/opencode-db-path.d.ts.map +1 -0
  601. package/dist/shared/pi-executable.d.ts +6 -0
  602. package/dist/shared/pi-executable.d.ts.map +1 -0
  603. package/dist/shared/plugin-package-version.d.ts +14 -0
  604. package/dist/shared/plugin-package-version.d.ts.map +1 -0
  605. package/dist/shared/project-directory-key.d.ts +26 -0
  606. package/dist/shared/project-directory-key.d.ts.map +1 -0
  607. package/dist/shared/prompt-context.d.ts +31 -0
  608. package/dist/shared/prompt-context.d.ts.map +1 -0
  609. package/dist/shared/prompt-surface-a1-golden.d.ts +28 -0
  610. package/dist/shared/prompt-surface-a1-golden.d.ts.map +1 -0
  611. package/dist/shared/prompt-surface-runtime.d.ts +62 -0
  612. package/dist/shared/prompt-surface-runtime.d.ts.map +1 -0
  613. package/dist/shared/prompt-surface.d.ts +53 -0
  614. package/dist/shared/prompt-surface.d.ts.map +1 -0
  615. package/dist/shared/provider-response-completion.d.ts +12 -0
  616. package/dist/shared/provider-response-completion.d.ts.map +1 -0
  617. package/dist/shared/record-type-guard.d.ts +2 -0
  618. package/dist/shared/record-type-guard.d.ts.map +1 -0
  619. package/dist/shared/redaction.d.ts +7 -0
  620. package/dist/shared/redaction.d.ts.map +1 -0
  621. package/dist/shared/resolve-fallbacks.d.ts +48 -0
  622. package/dist/shared/resolve-fallbacks.d.ts.map +1 -0
  623. package/dist/shared/rpc-client.d.ts +28 -0
  624. package/dist/shared/rpc-client.d.ts.map +1 -0
  625. package/dist/shared/rpc-notifications.d.ts +74 -0
  626. package/dist/shared/rpc-notifications.d.ts.map +1 -0
  627. package/dist/shared/rpc-server.d.ts +52 -0
  628. package/dist/shared/rpc-server.d.ts.map +1 -0
  629. package/dist/shared/rpc-types.d.ts +385 -0
  630. package/dist/shared/rpc-types.d.ts.map +1 -0
  631. package/dist/shared/rpc-utils.d.ts +162 -0
  632. package/dist/shared/rpc-utils.d.ts.map +1 -0
  633. package/dist/shared/run-token-log.d.ts +13 -0
  634. package/dist/shared/run-token-log.d.ts.map +1 -0
  635. package/dist/shared/safe-notification-target.d.ts +23 -0
  636. package/dist/shared/safe-notification-target.d.ts.map +1 -0
  637. package/dist/shared/sqlite-context-pragmas.d.ts +12 -0
  638. package/dist/shared/sqlite-context-pragmas.d.ts.map +1 -0
  639. package/dist/shared/sqlite-helpers.d.ts +25 -0
  640. package/dist/shared/sqlite-helpers.d.ts.map +1 -0
  641. package/dist/shared/sqlite-write-locker-test-support.d.ts +7 -0
  642. package/dist/shared/sqlite-write-locker-test-support.d.ts.map +1 -0
  643. package/dist/shared/sqlite.d.ts +163 -0
  644. package/dist/shared/sqlite.d.ts.map +1 -0
  645. package/dist/shared/stable-json.d.ts +21 -0
  646. package/dist/shared/stable-json.d.ts.map +1 -0
  647. package/dist/shared/status-detail-text.d.ts +4 -0
  648. package/dist/shared/status-detail-text.d.ts.map +1 -0
  649. package/dist/shared/status-summary.d.ts +54 -0
  650. package/dist/shared/status-summary.d.ts.map +1 -0
  651. package/dist/shared/status-view-check.d.ts +130 -0
  652. package/dist/shared/status-view-check.d.ts.map +1 -0
  653. package/dist/shared/status-view.d.ts +230 -0
  654. package/dist/shared/status-view.d.ts.map +1 -0
  655. package/dist/shared/storage-permissions.d.ts +29 -0
  656. package/dist/shared/storage-permissions.d.ts.map +1 -0
  657. package/dist/shared/subagent-runner.d.ts +231 -0
  658. package/dist/shared/subagent-runner.d.ts.map +1 -0
  659. package/dist/shared/summarize-child-stderr.d.ts +2 -0
  660. package/dist/shared/summarize-child-stderr.d.ts.map +1 -0
  661. package/dist/shared/system-directive.d.ts +3 -0
  662. package/dist/shared/system-directive.d.ts.map +1 -0
  663. package/dist/shared/tag-owner-id.d.ts +19 -0
  664. package/dist/shared/tag-owner-id.d.ts.map +1 -0
  665. package/dist/shared/tag-transcript.d.ts +103 -0
  666. package/dist/shared/tag-transcript.d.ts.map +1 -0
  667. package/dist/shared/tail-hygiene-status.d.ts +24 -0
  668. package/dist/shared/tail-hygiene-status.d.ts.map +1 -0
  669. package/dist/shared/test-temp-dir.d.ts +46 -0
  670. package/dist/shared/test-temp-dir.d.ts.map +1 -0
  671. package/dist/shared/transcript.d.ts +251 -0
  672. package/dist/shared/transcript.d.ts.map +1 -0
  673. package/dist/shared/user-answer.d.ts +4 -0
  674. package/dist/shared/user-answer.d.ts.map +1 -0
  675. package/dist/shared/user-facing-codes.d.ts +135 -0
  676. package/dist/shared/user-facing-codes.d.ts.map +1 -0
  677. package/dist/shared/window-geometry.d.ts +121 -0
  678. package/dist/shared/window-geometry.d.ts.map +1 -0
  679. package/dist/shared/write-transaction-timing.d.ts +11 -0
  680. package/dist/shared/write-transaction-timing.d.ts.map +1 -0
  681. package/dist/shared/xml-unescape.d.ts +9 -0
  682. package/dist/shared/xml-unescape.d.ts.map +1 -0
  683. package/dist/tools/ctx-expand/constants.d.ts +3 -0
  684. package/dist/tools/ctx-expand/constants.d.ts.map +1 -0
  685. package/dist/tools/ctx-expand/index.d.ts +2 -0
  686. package/dist/tools/ctx-expand/index.d.ts.map +1 -0
  687. package/dist/tools/ctx-expand/mode.d.ts +35 -0
  688. package/dist/tools/ctx-expand/mode.d.ts.map +1 -0
  689. package/dist/tools/ctx-expand/render.d.ts +47 -0
  690. package/dist/tools/ctx-expand/render.d.ts.map +1 -0
  691. package/dist/tools/ctx-expand/tools.d.ts +10 -0
  692. package/dist/tools/ctx-expand/tools.d.ts.map +1 -0
  693. package/dist/tools/ctx-expand/types.d.ts +11 -0
  694. package/dist/tools/ctx-expand/types.d.ts.map +1 -0
  695. package/dist/tools/ctx-memory/constants.d.ts +3 -0
  696. package/dist/tools/ctx-memory/constants.d.ts.map +1 -0
  697. package/dist/tools/ctx-memory/index.d.ts +4 -0
  698. package/dist/tools/ctx-memory/index.d.ts.map +1 -0
  699. package/dist/tools/ctx-memory/tools.d.ts +5 -0
  700. package/dist/tools/ctx-memory/tools.d.ts.map +1 -0
  701. package/dist/tools/ctx-memory/types.d.ts +38 -0
  702. package/dist/tools/ctx-memory/types.d.ts.map +1 -0
  703. package/dist/tools/ctx-memory/verification-recording.d.ts +8 -0
  704. package/dist/tools/ctx-memory/verification-recording.d.ts.map +1 -0
  705. package/dist/tools/ctx-note/constants.d.ts +2 -0
  706. package/dist/tools/ctx-note/constants.d.ts.map +1 -0
  707. package/dist/tools/ctx-note/index.d.ts +4 -0
  708. package/dist/tools/ctx-note/index.d.ts.map +1 -0
  709. package/dist/tools/ctx-note/render.d.ts +67 -0
  710. package/dist/tools/ctx-note/render.d.ts.map +1 -0
  711. package/dist/tools/ctx-note/tools.d.ts +13 -0
  712. package/dist/tools/ctx-note/tools.d.ts.map +1 -0
  713. package/dist/tools/ctx-note/types.d.ts +14 -0
  714. package/dist/tools/ctx-note/types.d.ts.map +1 -0
  715. package/dist/tools/ctx-reduce/constants.d.ts +4 -0
  716. package/dist/tools/ctx-reduce/constants.d.ts.map +1 -0
  717. package/dist/tools/ctx-reduce/index.d.ts +4 -0
  718. package/dist/tools/ctx-reduce/index.d.ts.map +1 -0
  719. package/dist/tools/ctx-reduce/tools.d.ts +19 -0
  720. package/dist/tools/ctx-reduce/tools.d.ts.map +1 -0
  721. package/dist/tools/ctx-reduce/types.d.ts +5 -0
  722. package/dist/tools/ctx-reduce/types.d.ts.map +1 -0
  723. package/dist/tools/ctx-search/constants.d.ts +4 -0
  724. package/dist/tools/ctx-search/constants.d.ts.map +1 -0
  725. package/dist/tools/ctx-search/date-range.d.ts +9 -0
  726. package/dist/tools/ctx-search/date-range.d.ts.map +1 -0
  727. package/dist/tools/ctx-search/index.d.ts +4 -0
  728. package/dist/tools/ctx-search/index.d.ts.map +1 -0
  729. package/dist/tools/ctx-search/tools.d.ts +5 -0
  730. package/dist/tools/ctx-search/tools.d.ts.map +1 -0
  731. package/dist/tools/ctx-search/types.d.ts +34 -0
  732. package/dist/tools/ctx-search/types.d.ts.map +1 -0
  733. package/dist/tools/light-descriptions.d.ts +6 -0
  734. package/dist/tools/light-descriptions.d.ts.map +1 -0
  735. package/dist/tools/parameter-descriptions.d.ts +75 -0
  736. package/dist/tools/parameter-descriptions.d.ts.map +1 -0
  737. package/dist/tools/unwrap-imitated-reduced-args.d.ts +21 -0
  738. package/dist/tools/unwrap-imitated-reduced-args.d.ts.map +1 -0
  739. package/dist/v2/fold/boundary.d.ts +61 -0
  740. package/dist/v2/fold/boundary.d.ts.map +1 -0
  741. package/dist/v2/fold/host-media.d.ts +36 -0
  742. package/dist/v2/fold/host-media.d.ts.map +1 -0
  743. package/dist/v2/fold/markers.d.ts +7 -0
  744. package/dist/v2/fold/markers.d.ts.map +1 -0
  745. package/dist/v2/fold/owner.d.ts +40 -0
  746. package/dist/v2/fold/owner.d.ts.map +1 -0
  747. package/dist/v2/fold/restore.d.ts +31 -0
  748. package/dist/v2/fold/restore.d.ts.map +1 -0
  749. package/dist/v2/fork-inheritance.d.ts +101 -0
  750. package/dist/v2/fork-inheritance.d.ts.map +1 -0
  751. package/dist/v2/hidden-child-cleanup.d.ts +11 -0
  752. package/dist/v2/hidden-child-cleanup.d.ts.map +1 -0
  753. package/dist/v2/hidden-child-native.d.ts +29 -0
  754. package/dist/v2/hidden-child-native.d.ts.map +1 -0
  755. package/dist/v2/hidden-child-record.d.ts +137 -0
  756. package/dist/v2/hidden-child-record.d.ts.map +1 -0
  757. package/dist/v2/hidden-completion.d.ts +57 -0
  758. package/dist/v2/hidden-completion.d.ts.map +1 -0
  759. package/dist/v2/hooks/channel2.d.ts +10 -0
  760. package/dist/v2/hooks/channel2.d.ts.map +1 -0
  761. package/dist/v2/hooks/commands.d.ts +29 -0
  762. package/dist/v2/hooks/commands.d.ts.map +1 -0
  763. package/dist/v2/hooks/context.d.ts +112 -0
  764. package/dist/v2/hooks/context.d.ts.map +1 -0
  765. package/dist/v2/hooks/deleted-session-tombstones.d.ts +10 -0
  766. package/dist/v2/hooks/deleted-session-tombstones.d.ts.map +1 -0
  767. package/dist/v2/hooks/generate.d.ts +10 -0
  768. package/dist/v2/hooks/generate.d.ts.map +1 -0
  769. package/dist/v2/hooks/hidden-child.d.ts +76 -0
  770. package/dist/v2/hooks/hidden-child.d.ts.map +1 -0
  771. package/dist/v2/hooks/hidden-terminal-error.d.ts +8 -0
  772. package/dist/v2/hooks/hidden-terminal-error.d.ts.map +1 -0
  773. package/dist/v2/hooks/lkg-system.d.ts +11 -0
  774. package/dist/v2/hooks/lkg-system.d.ts.map +1 -0
  775. package/dist/v2/hooks/model-limit-cache.d.ts +19 -0
  776. package/dist/v2/hooks/model-limit-cache.d.ts.map +1 -0
  777. package/dist/v2/hooks/payload.d.ts +15 -0
  778. package/dist/v2/hooks/payload.d.ts.map +1 -0
  779. package/dist/v2/hooks/refusal.d.ts +15 -0
  780. package/dist/v2/hooks/refusal.d.ts.map +1 -0
  781. package/dist/v2/hooks/restore-rows.d.ts +29 -0
  782. package/dist/v2/hooks/restore-rows.d.ts.map +1 -0
  783. package/dist/v2/hooks/rpc-live-state.d.ts +9 -0
  784. package/dist/v2/hooks/rpc-live-state.d.ts.map +1 -0
  785. package/dist/v2/hooks/session-api-gate.d.ts +4 -0
  786. package/dist/v2/hooks/session-api-gate.d.ts.map +1 -0
  787. package/dist/v2/hooks/session-project-backfill.d.ts +15 -0
  788. package/dist/v2/hooks/session-project-backfill.d.ts.map +1 -0
  789. package/dist/v2/hooks/storage-gate.d.ts +48 -0
  790. package/dist/v2/hooks/storage-gate.d.ts.map +1 -0
  791. package/dist/v2/hooks/storage-notice.d.ts +29 -0
  792. package/dist/v2/hooks/storage-notice.d.ts.map +1 -0
  793. package/dist/v2/hooks/store.d.ts +58 -0
  794. package/dist/v2/hooks/store.d.ts.map +1 -0
  795. package/dist/v2/hooks/tools.d.ts +8 -0
  796. package/dist/v2/hooks/tools.d.ts.map +1 -0
  797. package/dist/v2/hooks/types.d.ts +250 -0
  798. package/dist/v2/hooks/types.d.ts.map +1 -0
  799. package/dist/v2/hooks/usage-persist.d.ts +31 -0
  800. package/dist/v2/hooks/usage-persist.d.ts.map +1 -0
  801. package/dist/v2/hooks/usage-reading.d.ts +46 -0
  802. package/dist/v2/hooks/usage-reading.d.ts.map +1 -0
  803. package/dist/v2/server.d.ts +27 -0
  804. package/dist/v2/server.d.ts.map +1 -0
  805. package/dist/v2/server.js +76235 -0
  806. package/dist/v2/store-reader.d.ts +218 -0
  807. package/dist/v2/store-reader.d.ts.map +1 -0
  808. package/dist/web/api.d.ts +40 -0
  809. package/dist/web/api.d.ts.map +1 -0
  810. package/dist/web/context-store.d.ts +74 -0
  811. package/dist/web/context-store.d.ts.map +1 -0
  812. package/dist/web/fixtures.d.ts +53 -0
  813. package/dist/web/fixtures.d.ts.map +1 -0
  814. package/dist/web/host-opencode.d.ts +56 -0
  815. package/dist/web/host-opencode.d.ts.map +1 -0
  816. package/dist/web/host-pi.d.ts +116 -0
  817. package/dist/web/host-pi.d.ts.map +1 -0
  818. package/dist/web/main.d.ts +24 -0
  819. package/dist/web/main.d.ts.map +1 -0
  820. package/dist/web/main.js +6071 -0
  821. package/dist/web/memories.d.ts +67 -0
  822. package/dist/web/memories.d.ts.map +1 -0
  823. package/dist/web/server.d.ts +42 -0
  824. package/dist/web/server.d.ts.map +1 -0
  825. package/dist/web/types.d.ts +52 -0
  826. package/dist/web/types.d.ts.map +1 -0
  827. package/dist/web/ui/favicon.svg +4 -0
  828. package/dist/web/ui/index.html +36 -0
  829. package/dist/web/ui/panel.css +8 -0
  830. package/dist/web/ui/panel.js +373 -0
  831. package/dist/web/views.d.ts +155 -0
  832. package/dist/web/views.d.ts.map +1 -0
  833. package/dist/web/writes.d.ts +86 -0
  834. package/dist/web/writes.d.ts.map +1 -0
  835. package/dist/wrapup-orchestrator-z9sqpqjf.js +420 -0
  836. package/index.js +1 -0
  837. package/package.json +84 -4
  838. package/src/agents/historian.ts +3 -0
  839. package/src/agents/language-directive.test.ts +129 -0
  840. package/src/agents/language-directive.ts +113 -0
  841. package/src/agents/magic-context-prompt.language.test.ts +37 -0
  842. package/src/agents/magic-context-prompt.test.ts +520 -0
  843. package/src/agents/magic-context-prompt.ts +196 -0
  844. package/src/agents/memory-maintainer.test.ts +249 -0
  845. package/src/agents/memory-maintainer.ts +374 -0
  846. package/src/config/agent-disable.ts +58 -0
  847. package/src/config/compaction-accessor-guard.test.ts +81 -0
  848. package/src/config/compaction-backcompat.test.ts +52 -0
  849. package/src/config/config-paths.ts +42 -0
  850. package/src/config/index.test.ts +1252 -0
  851. package/src/config/index.ts +762 -0
  852. package/src/config/latch-permanence-guard.test.ts +218 -0
  853. package/src/config/live-run-config.test.ts +139 -0
  854. package/src/config/live-run-config.ts +79 -0
  855. package/src/config/live-schema-drift.test.ts +67 -0
  856. package/src/config/live-snapshot.test.ts +86 -0
  857. package/src/config/live-snapshot.ts +187 -0
  858. package/src/config/migrate-experimental.ts +92 -0
  859. package/src/config/misplaced-agent-model.test.ts +55 -0
  860. package/src/config/profiles.ts +106 -0
  861. package/src/config/project-config-trust-boundary.test.ts +185 -0
  862. package/src/config/project-security.hostile-matrix.test.ts +281 -0
  863. package/src/config/project-security.test.ts +329 -0
  864. package/src/config/project-security.ts +940 -0
  865. package/src/config/protected-tokens.test.ts +229 -0
  866. package/src/config/prune-config-leaf.test.ts +78 -0
  867. package/src/config/prune-config-leaf.ts +67 -0
  868. package/src/config/raw-loader.test.ts +389 -0
  869. package/src/config/raw-loader.ts +435 -0
  870. package/src/config/removed-agent-config.ts +45 -0
  871. package/src/config/removed-agent-source-fence.test.ts +53 -0
  872. package/src/config/removed-config-keys.test.ts +106 -0
  873. package/src/config/schema/agent-overrides.ts +45 -0
  874. package/src/config/schema/magic-context.test.ts +434 -0
  875. package/src/config/schema/magic-context.ts +1019 -0
  876. package/src/config/variable.test.ts +324 -0
  877. package/src/config/variable.ts +192 -0
  878. package/src/shared/__fixtures__/window-overlay.v1.json +337 -0
  879. package/src/shared/announcement.test.ts +198 -0
  880. package/src/shared/announcement.ts +145 -0
  881. package/src/shared/assistant-message-extractor.test.ts +47 -0
  882. package/src/shared/assistant-message-extractor.ts +156 -0
  883. package/src/shared/auto-update-provenance.ts +42 -0
  884. package/src/shared/bounded-session-map.test.ts +97 -0
  885. package/src/shared/bounded-session-map.ts +84 -0
  886. package/src/shared/builtin-commands.ts +46 -0
  887. package/src/shared/cache-ttl-display.test.ts +84 -0
  888. package/src/shared/cache-ttl-display.ts +58 -0
  889. package/src/shared/cache-ttl-seed.ts +23 -0
  890. package/src/shared/child-session-teardown.test.ts +241 -0
  891. package/src/shared/child-session-teardown.ts +66 -0
  892. package/src/shared/commit-detection.test.ts +63 -0
  893. package/src/shared/commit-detection.ts +53 -0
  894. package/src/shared/config-diagnostics.test.ts +29 -0
  895. package/src/shared/config-diagnostics.ts +64 -0
  896. package/src/shared/conflict-detector.test.ts +780 -0
  897. package/src/shared/conflict-detector.ts +596 -0
  898. package/src/shared/conflict-fixer.test.ts +608 -0
  899. package/src/shared/conflict-fixer.ts +295 -0
  900. package/src/shared/context-limit-provenance.ts +6 -0
  901. package/src/shared/data-path.test.ts +352 -0
  902. package/src/shared/data-path.ts +310 -0
  903. package/src/shared/error-message.test.ts +94 -0
  904. package/src/shared/error-message.ts +115 -0
  905. package/src/shared/escalation-bands.test.ts +23 -0
  906. package/src/shared/escalation-bands.ts +18 -0
  907. package/src/shared/format-bytes.ts +5 -0
  908. package/src/shared/format-threshold.ts +54 -0
  909. package/src/shared/harness-provider-map.test.ts +176 -0
  910. package/src/shared/harness-provider-map.ts +130 -0
  911. package/src/shared/harness.ts +76 -0
  912. package/src/shared/hidden-variant-warnings.ts +21 -0
  913. package/src/shared/historian-tool-defaults.json +13 -0
  914. package/src/shared/historian-tool-expansions.ts +18 -0
  915. package/src/shared/historian-tool-template.ts +248 -0
  916. package/src/shared/historian-transient-error.test.ts +36 -0
  917. package/src/shared/historian-transient-error.ts +22 -0
  918. package/src/shared/host-limitations.ts +43 -0
  919. package/src/shared/index.ts +7 -0
  920. package/src/shared/internal-initiator-marker.ts +1 -0
  921. package/src/shared/jsonc-edit.ts +387 -0
  922. package/src/shared/jsonc-parser.test.ts +46 -0
  923. package/src/shared/jsonc-parser.ts +283 -0
  924. package/src/shared/keep-subagents.test.ts +39 -0
  925. package/src/shared/keep-subagents.ts +28 -0
  926. package/src/shared/logger.test.ts +292 -0
  927. package/src/shared/logger.ts +248 -0
  928. package/src/shared/model-cache-ttl.test.ts +40 -0
  929. package/src/shared/model-cache-ttl.ts +58 -0
  930. package/src/shared/model-resolution.test.ts +132 -0
  931. package/src/shared/model-resolution.ts +158 -0
  932. package/src/shared/model-suggestion-retry.test.ts +698 -0
  933. package/src/shared/model-suggestion-retry.ts +838 -0
  934. package/src/shared/models-dev-cache.test.ts +720 -0
  935. package/src/shared/models-dev-cache.ts +661 -0
  936. package/src/shared/normalize-sdk-response.ts +40 -0
  937. package/src/shared/opencode-config-dir-types.ts +15 -0
  938. package/src/shared/opencode-config-dir.ts +111 -0
  939. package/src/shared/opencode-db-path.test.ts +389 -0
  940. package/src/shared/opencode-db-path.ts +396 -0
  941. package/src/shared/opencode-host-generation.test.ts +29 -0
  942. package/src/shared/pi-executable.ts +20 -0
  943. package/src/shared/plugin-package-version.ts +52 -0
  944. package/src/shared/project-directory-key.test.ts +111 -0
  945. package/src/shared/project-directory-key.ts +54 -0
  946. package/src/shared/prompt-context.ts +135 -0
  947. package/src/shared/prompt-surface-a1-golden.md +407 -0
  948. package/src/shared/prompt-surface-a1-golden.ts +41 -0
  949. package/src/shared/prompt-surface-runtime.test.ts +190 -0
  950. package/src/shared/prompt-surface-runtime.ts +263 -0
  951. package/src/shared/prompt-surface.test.ts +195 -0
  952. package/src/shared/prompt-surface.ts +162 -0
  953. package/src/shared/provider-response-completion.ts +23 -0
  954. package/src/shared/record-type-guard.ts +3 -0
  955. package/src/shared/redaction.test.ts +134 -0
  956. package/src/shared/redaction.ts +298 -0
  957. package/src/shared/resolve-fallbacks.test.ts +114 -0
  958. package/src/shared/resolve-fallbacks.ts +95 -0
  959. package/src/shared/rpc-async-probes.test.ts +320 -0
  960. package/src/shared/rpc-client.test.ts +576 -0
  961. package/src/shared/rpc-client.ts +218 -0
  962. package/src/shared/rpc-notifications.test.ts +151 -0
  963. package/src/shared/rpc-notifications.ts +222 -0
  964. package/src/shared/rpc-server.ts +431 -0
  965. package/src/shared/rpc-types.ts +386 -0
  966. package/src/shared/rpc-utils.test.ts +822 -0
  967. package/src/shared/rpc-utils.ts +1146 -0
  968. package/src/shared/run-token-log.test.ts +65 -0
  969. package/src/shared/run-token-log.ts +39 -0
  970. package/src/shared/safe-notification-target.test.ts +97 -0
  971. package/src/shared/safe-notification-target.ts +102 -0
  972. package/src/shared/session-messages-bounded.test.ts +112 -0
  973. package/src/shared/sqlite-acquisition-fence.test.ts +133 -0
  974. package/src/shared/sqlite-acquisition-routing.test.ts +145 -0
  975. package/src/shared/sqlite-bind-style.test.ts +80 -0
  976. package/src/shared/sqlite-context-pragmas.ts +24 -0
  977. package/src/shared/sqlite-helpers.ts +44 -0
  978. package/src/shared/sqlite-import-fence.test.ts +19 -0
  979. package/src/shared/sqlite-pass-scope.test.ts +154 -0
  980. package/src/shared/sqlite-transaction-mode-guard.test.ts +234 -0
  981. package/src/shared/sqlite-write-locker-test-support.ts +63 -0
  982. package/src/shared/sqlite.test.ts +58 -0
  983. package/src/shared/sqlite.ts +988 -0
  984. package/src/shared/stable-json.test.ts +87 -0
  985. package/src/shared/stable-json.ts +37 -0
  986. package/src/shared/status-detail-text.test.ts +194 -0
  987. package/src/shared/status-detail-text.ts +7 -0
  988. package/src/shared/status-summary.ts +189 -0
  989. package/src/shared/status-view-check.test.ts +252 -0
  990. package/src/shared/status-view-check.ts +519 -0
  991. package/src/shared/status-view.test.ts +395 -0
  992. package/src/shared/status-view.ts +794 -0
  993. package/src/shared/storage-busy.test.ts +73 -0
  994. package/src/shared/storage-permissions.test.ts +190 -0
  995. package/src/shared/storage-permissions.ts +212 -0
  996. package/src/shared/subagent-runner.ts +240 -0
  997. package/src/shared/summarize-child-stderr.test.ts +55 -0
  998. package/src/shared/summarize-child-stderr.ts +33 -0
  999. package/src/shared/system-directive.ts +9 -0
  1000. package/src/shared/tag-owner-id.test.ts +33 -0
  1001. package/src/shared/tag-owner-id.ts +29 -0
  1002. package/src/shared/tag-transcript.test.ts +554 -0
  1003. package/src/shared/tag-transcript.ts +1400 -0
  1004. package/src/shared/tail-hygiene-status.ts +73 -0
  1005. package/src/shared/test-temp-dir.test.ts +84 -0
  1006. package/src/shared/test-temp-dir.ts +192 -0
  1007. package/src/shared/transcript.ts +274 -0
  1008. package/src/shared/user-answer.test.ts +12 -0
  1009. package/src/shared/user-answer.ts +17 -0
  1010. package/src/shared/user-facing-codes.test.ts +82 -0
  1011. package/src/shared/user-facing-codes.ts +180 -0
  1012. package/src/shared/window-geometry.test.ts +405 -0
  1013. package/src/shared/window-geometry.ts +726 -0
  1014. package/src/shared/windows-hidden-spawns.test.ts +133 -0
  1015. package/src/shared/write-transaction-attribution.test.ts +214 -0
  1016. package/src/shared/write-transaction-timing.ts +26 -0
  1017. package/src/shared/xml-unescape.ts +19 -0
  1018. package/README.md +0 -3
@@ -0,0 +1,337 @@
1
+ {
2
+ "schema": "fusiform-window-overlay/v1",
3
+ "generated_at": "2026-08-13T15:12:00Z",
4
+ "batch": "1 of N \u2014 the geometry spec's measured rows, transcribed",
5
+ "minted_provider_ids": [
6
+ "openai-chatgpt-oauth"
7
+ ],
8
+ "relay_note": "Cells whose source_ref names mc-geometry-spec are RELAYED: the grade records the evidence class that document assigns, not evidence this seat verified independently. Where a primary source was on disk it was read directly and the source_ref names it instead.",
9
+ "cells": [
10
+ {
11
+ "provider_id": "openai-chatgpt-oauth",
12
+ "model_id": "gpt-5.6",
13
+ "facts": {
14
+ "window.enforced": {
15
+ "value": {
16
+ "kind": "bracket",
17
+ "at_least": 340000
18
+ },
19
+ "grade": "measured",
20
+ "units": "estimate",
21
+ "boundary": "Observed",
22
+ "source_ref": "mc-geometry-spec@06a0e5ac#measured-per-model-findings:gpt-5.6-oauth (operator-confirmed live)",
23
+ "observed_at": "2026-08-13T12:54:15Z"
24
+ },
25
+ "window.advertised": {
26
+ "value": {
27
+ "kind": "unknown",
28
+ "why": "never_measured"
29
+ },
30
+ "grade": "unknown",
31
+ "units": "provider",
32
+ "boundary": "Observed",
33
+ "source_ref": "codex-rs@32f4687b8c:models-manager/src/model_info.rs:125",
34
+ "observed_at": "2026-08-13T15:12:00Z"
35
+ },
36
+ "output.advertised": {
37
+ "value": {
38
+ "kind": "unknown",
39
+ "why": "never_measured"
40
+ },
41
+ "grade": "unknown",
42
+ "units": "provider",
43
+ "boundary": "Observed",
44
+ "source_ref": "codex-rs@32f4687b8c:protocol/src/openai_models.rs:409",
45
+ "observed_at": "2026-08-13T15:12:00Z"
46
+ }
47
+ },
48
+ "note": "window.advertised is UNKNOWN rather than 272000. The seed spec reads the 272k in codex-rs as a server-delivered advertisement; the source has it only in model_info_from_slug, the fallback for unrecognised slugs, beside used_fallback_model_metadata: true. Every other occurrence is a test fixture inheriting it. The server may also send 272k; the source does not establish that. output.advertised is unknown because ModelInfo carries no output field at all, so the client cannot request a cap and nothing states one."
49
+ },
50
+ {
51
+ "provider_id": "openai",
52
+ "model_id": "gpt-5.6",
53
+ "facts": {
54
+ "window.advertised": {
55
+ "value": {
56
+ "kind": "stated",
57
+ "value": 1050000
58
+ },
59
+ "grade": "provider_asserted_doc",
60
+ "units": "provider",
61
+ "boundary": "Observed",
62
+ "source_ref": "mc-geometry-spec@06a0e5ac#measured-per-model-findings:gpt-5.6-platform",
63
+ "observed_at": "2026-08-13T12:54:15Z"
64
+ },
65
+ "output.advertised": {
66
+ "value": {
67
+ "kind": "stated",
68
+ "value": 128000
69
+ },
70
+ "grade": "provider_asserted_doc",
71
+ "units": "provider",
72
+ "boundary": "Observed",
73
+ "source_ref": "mc-geometry-spec@06a0e5ac#measured-per-model-findings:gpt-5.6-platform",
74
+ "observed_at": "2026-08-13T12:54:15Z"
75
+ },
76
+ "geometry": {
77
+ "value": {
78
+ "kind": "stated",
79
+ "value": "shared_upfront"
80
+ },
81
+ "grade": "provider_asserted_doc",
82
+ "units": "provider",
83
+ "boundary": "Observed",
84
+ "source_ref": "https://platform.openai.com/docs/guides/conversation-state (read 2026-08-13) \u2014 'The context window is the maximum number of tokens that can be used in a single request. This max tokens number includes input, output, and reasoning tokens.'",
85
+ "observed_at": "2026-08-13T12:54:15Z"
86
+ }
87
+ },
88
+ "note": "GEOMETRY VERIFIED AGAINST OPENAI'S OWN DOCS 2026-08-13: 'The context window is the maximum number of tokens that can be used in a single request. This max tokens number includes input, output, and reasoning tokens.' That establishes the wall COUNTS the combined total, which is the half of shared_upfront this cell asserts. WHAT THE DOC DOES NOT ESTABLISH is the other half \u2014 whether an over-window request is rejected up front or truncated. The seed spec attributes rejection to `truncation: disabled`, implying the same endpoint truncates when truncation is enabled, and this page does not mention truncation at all (the API reference that would is behind a 403 from here). So shared_upfront is correct for the truncation-disabled path and is NOT established as a property of the provider. See the design note's section 12: the combined-and-truncating combination has no enum value, and this is the request mode that reaches it. The window and output numbers are relayed from the seed spec; the catalog agrees with both for this path, which is exactly why the access-path split matters \u2014 the same catalog row is right here and wrong for openai-chatgpt-oauth."
89
+ },
90
+ {
91
+ "provider_id": "anthropic",
92
+ "model_id": "claude-opus-5",
93
+ "facts": {
94
+ "window.advertised": {
95
+ "value": {
96
+ "kind": "stated",
97
+ "value": 1000000
98
+ },
99
+ "grade": "provider_asserted_doc",
100
+ "units": "provider",
101
+ "boundary": "Observed",
102
+ "source_ref": "https://docs.claude.com/en/docs/build-with-claude/context-windows (read 2026-08-13) \u2014 'Claude Opus 5 ... has a 1M-token context window on the Claude API, Amazon Bedrock, Google Cloud, and Microsoft Foundry'",
103
+ "observed_at": "2026-08-13T12:54:15Z"
104
+ },
105
+ "output.advertised": {
106
+ "value": {
107
+ "kind": "stated",
108
+ "value": 128000
109
+ },
110
+ "grade": "provider_asserted_doc",
111
+ "units": "provider",
112
+ "boundary": "Observed",
113
+ "source_ref": "https://docs.claude.com/en/docs/build-with-claude/context-windows (read 2026-08-13) \u2014 'a request to any model with a 1M-token context window can generate up to 128k output tokens (max_tokens)'",
114
+ "observed_at": "2026-08-13T12:54:15Z"
115
+ },
116
+ "geometry": {
117
+ "value": {
118
+ "kind": "stated",
119
+ "value": "shared_truncating"
120
+ },
121
+ "grade": "provider_asserted_doc",
122
+ "units": "provider",
123
+ "boundary": "Asserted",
124
+ "source_ref": "https://docs.claude.com/en/docs/build-with-claude/context-windows (read 2026-08-13) \u2014 'Context window overflow behavior'",
125
+ "observed_at": "2026-08-13T12:54:15Z"
126
+ }
127
+ },
128
+ "note": "VERIFIED AGAINST THE PRIMARY SOURCE 2026-08-13, replacing the seed spec as source_ref. The doc names Opus 5 explicitly in a list of 1M-window models, and states the 128k output cap as a property of any 1M-window model rather than of this model. NO access-path id minted: the window holds on the Claude API, Bedrock, Google Cloud and Microsoft Foundry alike, so by mint-on-divergence there is nothing to fork. GEOMETRY IS THE INTERESTING PART AND IT SPLITS. The prompt-only wall is universal: 'if the input alone already exceeds the model's context window, the API returns a 400 invalid_request_error (prompt is too long) ON EVERY MODEL'. What happens to over-window OUTPUT is version-gated AND header-controlled: 4.5+ accepts the request and stops with stop_reason model_context_window_exceeded, earlier models return a validation error, and earlier models can OPT IN to the newer behaviour with the model-context-window-exceeded-2025-08-26 beta header. So a pre-4.5 model's geometry depends on a request header \u2014 the second instance of the request-dependence recorded in the design note's section 12, and the first with a named mechanism. shared_truncating is correct for Opus 5 and must not be inherited by an older Claude."
129
+ },
130
+ {
131
+ "provider_id": "xai",
132
+ "model_id": "grok-4.6",
133
+ "facts": {
134
+ "window.enforced": {
135
+ "value": {
136
+ "kind": "stated",
137
+ "value": 500000
138
+ },
139
+ "grade": "measured",
140
+ "units": "provider",
141
+ "boundary": "Observed",
142
+ "source_ref": "mc-geometry-spec@06a0e5ac#measured-per-model-findings:grok-4.6",
143
+ "observed_at": "2026-08-13T12:54:15Z"
144
+ },
145
+ "output.default": {
146
+ "value": {
147
+ "kind": "stated",
148
+ "value": 128000
149
+ },
150
+ "grade": "provider_asserted_doc",
151
+ "units": "provider",
152
+ "boundary": "Observed",
153
+ "source_ref": "mc-geometry-spec@06a0e5ac#measured-per-model-findings:grok-4.6",
154
+ "observed_at": "2026-08-13T12:54:15Z"
155
+ },
156
+ "geometry": {
157
+ "value": {
158
+ "kind": "stated",
159
+ "value": "shared_truncating"
160
+ },
161
+ "grade": "measured",
162
+ "units": "provider",
163
+ "boundary": "Observed",
164
+ "source_ref": "mc-geometry-spec@06a0e5ac#provider-geometry-classes:xai (error text 'maximum prompt length is N' is a prompt-only wall)",
165
+ "observed_at": "2026-08-13T12:54:15Z"
166
+ },
167
+ "window.advertised": {
168
+ "value": {
169
+ "kind": "stated",
170
+ "value": 500000
171
+ },
172
+ "grade": "provider_asserted_doc",
173
+ "units": "provider",
174
+ "boundary": "Observed",
175
+ "source_ref": "https://docs.x.ai/developers/models/grok-4.6.md (read 2026-08-13) \u2014 'Context window: 500,000 tokens'",
176
+ "observed_at": "2026-08-13T16:30:00Z"
177
+ }
178
+ },
179
+ "note": "No output.enforced cell: the documented behaviour is no fixed cap, with the ceiling being window minus prompt. That is a FUNCTION of the request, not a constant, and this schema has no shape for it \u2014 geometry plus window is what a consumer needs to derive it. Writing a number here would state a constant that does not exist. The catalog's output=500000 equals its context and is a placeholder by the spec's own rule. This model arrived AFTER the embedded seed snapshot (seed fetched 2026-08-12T10:07:29Z, model first observed 16:12:49Z), so it cannot be join-checked against the seed; post_seed records how its existence was verified instead. ADVERTISED ADDED FROM XAI'S OWN MODEL PAGE 2026-08-13, and it AGREES with the measured enforced wall. That is the dataset's first corroboration rather than a correction, and it is worth recording as such: the advertised/enforced split exists because they CAN differ, not because they always do, and a split that only ever shows divergence would be evidence the measurement is biased toward cases someone went looking at. Two independent sources, one number. Note the two facts remain separate cells rather than being collapsed: they agree today, and collapsing them would destroy the ability to notice when they stop. The page states no output cap at all, which is consistent with the spec's 'no fixed cap' but does not establish it \u2014 an absent statement is not a statement of absence.",
180
+ "post_seed": {
181
+ "verified_at": "2026-08-13T15:12:00Z",
182
+ "evidence": "fusiform era history: existence observed present at 2026-08-12T16:12:49Z, changed between 15:42:49Z and 16:12:49Z",
183
+ "catalog_limit_at_verification": {
184
+ "context": 500000,
185
+ "output": 500000
186
+ }
187
+ }
188
+ },
189
+ {
190
+ "provider_id": "ollama-cloud",
191
+ "model_id": "deepseek-v4-flash",
192
+ "facts": {
193
+ "window.enforced": {
194
+ "value": {
195
+ "kind": "stated",
196
+ "value": 1048576
197
+ },
198
+ "grade": "provider_asserted_doc",
199
+ "units": "provider",
200
+ "boundary": "Observed",
201
+ "source_ref": "mc-geometry-spec@06a0e5ac#measured-per-model-findings:deepseek-v4-flash-ollama-cloud",
202
+ "observed_at": "2026-08-13T12:54:15Z"
203
+ },
204
+ "output.enforced": {
205
+ "value": {
206
+ "kind": "stated",
207
+ "value": 65536
208
+ },
209
+ "grade": "provider_asserted_doc",
210
+ "units": "provider",
211
+ "boundary": "Observed",
212
+ "source_ref": "https://github.com/ollama/ollama/issues/16890",
213
+ "observed_at": "2026-08-13T12:54:15Z"
214
+ }
215
+ },
216
+ "note": "The catalog row is wrong twice over here, which is why this cell leads the batch: output equals context so it is a placeholder by the spec's rule, AND the real cap is 16x smaller. A consumer trusting the row reserves 1M against a 64k wall and gets an HTTP 400. NOT written as a provider-wide wildcard: the evidence names this model, and asserting it for all 20 ollama-cloud models would manufacture a claim from absence. If the cap is genuinely path-wide, one report naming a second model promotes it."
217
+ },
218
+ {
219
+ "provider_id": "moonshotai",
220
+ "model_id": "kimi-k3",
221
+ "facts": {
222
+ "window.advertised": {
223
+ "value": {
224
+ "kind": "stated",
225
+ "value": 1048576
226
+ },
227
+ "grade": "provider_asserted_doc",
228
+ "units": "provider",
229
+ "boundary": "Observed",
230
+ "source_ref": "mc-geometry-spec@06a0e5ac#measured-per-model-findings:kimi-k3",
231
+ "observed_at": "2026-08-13T12:54:15Z"
232
+ },
233
+ "output.default": {
234
+ "value": {
235
+ "kind": "stated",
236
+ "value": 131072
237
+ },
238
+ "grade": "provider_asserted_doc",
239
+ "units": "provider",
240
+ "boundary": "Observed",
241
+ "source_ref": "mc-geometry-spec@06a0e5ac#measured-per-model-findings:kimi-k3",
242
+ "observed_at": "2026-08-13T12:54:15Z"
243
+ },
244
+ "output.advertised": {
245
+ "value": {
246
+ "kind": "stated",
247
+ "value": 1048576
248
+ },
249
+ "grade": "provider_asserted_doc",
250
+ "units": "provider",
251
+ "boundary": "Observed",
252
+ "source_ref": "mc-geometry-spec@06a0e5ac#measured-per-model-findings:kimi-k3",
253
+ "observed_at": "2026-08-13T12:54:15Z"
254
+ }
255
+ },
256
+ "note": "The clearest case for output.default existing as its own fact. models.dev publishes output=131072 for this model, and 131072 is the DEFAULT you get without asking \u2014 the cap is 1M, configurable. Some aggregators read the same 131k as the context window. One number, three wrong readings, and the split is what stops a consumer from inheriting any of them."
257
+ },
258
+ {
259
+ "provider_id": "google",
260
+ "model_id": "gemini-3.5-flash",
261
+ "facts": {
262
+ "window.advertised": {
263
+ "value": {
264
+ "kind": "stated",
265
+ "value": 1048576
266
+ },
267
+ "grade": "provider_asserted_doc",
268
+ "units": "provider",
269
+ "boundary": "Observed",
270
+ "source_ref": "mc-geometry-spec@06a0e5ac#measured-per-model-findings:gemini-3.5-flash",
271
+ "observed_at": "2026-08-13T12:54:15Z"
272
+ },
273
+ "output.advertised": {
274
+ "value": {
275
+ "kind": "stated",
276
+ "value": 65536
277
+ },
278
+ "grade": "provider_asserted_doc",
279
+ "units": "provider",
280
+ "boundary": "Observed",
281
+ "source_ref": "mc-geometry-spec@06a0e5ac#measured-per-model-findings:gemini-3.5-flash",
282
+ "observed_at": "2026-08-13T12:54:15Z"
283
+ },
284
+ "geometry": {
285
+ "value": {
286
+ "kind": "unknown",
287
+ "why": "never_measured"
288
+ },
289
+ "grade": "unknown",
290
+ "units": "provider",
291
+ "boundary": "Observed",
292
+ "source_ref": "https://ai.google.dev/gemini-api/docs/tokens (contradicts itself; see note)",
293
+ "observed_at": "2026-08-13T16:05:00Z"
294
+ }
295
+ },
296
+ "note": "NO antigravity id minted: 1M input and 65k output on both the Antigravity and generateContent paths, so nothing has diverged. Antigravity's self-compaction around 135k is harness behaviour, not a window, and does not belong in this dataset. Separate geometry means a smaller output request buys no input headroom \u2014 the input_token_limit is the usable input, full stop. GEOMETRY DOWNGRADED TO UNKNOWN 2026-08-13 after reading the primary source. The seed spec classifies Gemini as `separate` citing input_token_limit and output_token_limit as independent model constants. Those fields are real (https://ai.google.dev/api/models: 'Maximum number of input tokens allowed', 'Maximum number of output tokens available'), but the same docs page that demonstrates them states the opposite about the wall: 'The context window defines the combined limit of input and output tokens.' Two field constants and a combined wall are not contradictory \u2014 the fields can be per-side caps INSIDE a shared budget \u2014 so the field names do not establish `separate`. Neither reading is established by documentation alone; only a request that trades output for input can settle it."
297
+ },
298
+ {
299
+ "provider_id": "deepseek",
300
+ "model_id": "*",
301
+ "facts": {
302
+ "geometry": {
303
+ "value": {
304
+ "kind": "unknown",
305
+ "why": "never_measured"
306
+ },
307
+ "grade": "unknown",
308
+ "units": "provider",
309
+ "boundary": "Observed",
310
+ "source_ref": "magic-context@5ac4408d:packages/plugin/src/features/magic-context/overflow-detection.ts:68 \u2014 pattern tagged `combined`, attribution confirmed by MC 2026-08-13 as observed-emitting-the-string only",
311
+ "observed_at": "2026-08-13T17:05:00Z"
312
+ }
313
+ },
314
+ "note": "AN EXPLICIT REFUSAL, minted because a specific wrong inference is available. DeepSeek appears in MC's overflow table under the pattern `maximum context length is (N) tokens`, tagged `combined`. MC confirmed 2026-08-13 that the tag was assigned ONCE for the pattern, reasoned from OpenAI's documented semantics, and inherited by every provider observed emitting that string \u2014 so the per-provider evidence establishes that DeepSeek EMITS the text, not that its wall counts combined. Without this cell a future transcriber mining that table would mint `combined` for DeepSeek with an honest-looking source_ref, which is the inference this dataset exists to refuse. Wildcard because the claim is about the provider's wall and nothing model-specific is known."
315
+ },
316
+ {
317
+ "provider_id": "openrouter",
318
+ "model_id": "*",
319
+ "facts": {
320
+ "geometry": {
321
+ "value": {
322
+ "kind": "unknown",
323
+ "why": "not_single_valued_at_key"
324
+ },
325
+ "grade": "measured",
326
+ "units": "provider",
327
+ "boundary": "Observed",
328
+ "source_ref": "models.dev@2026-08-13: openrouter carries 348 models spanning other providers' catalogs; MC confirmed 2026-08-13 that the wall which fires belongs to whichever upstream served the request",
329
+ "observed_at": "2026-08-13T17:05:00Z"
330
+ }
331
+ },
332
+ "note": "NOT AN ABSENCE OF EVIDENCE \u2014 a positive, evidenced claim that this KEY cannot hold a single geometry. OpenRouter routes to heterogeneous backends, so the wall that fires belongs to whichever upstream served the request; measuring once yields a value correct for that routing decision and wrong for the next. GRADE IS `measured`, NOT `unknown`: the claim rests on evidence (the catalog shows 348 models spanning other providers' offerings; MC confirmed the routing behaviour), and a grade of unknown would say nobody has established it, which is false. This is the first cell where kind=unknown and grade!=unknown, and the two fields are doing different jobs exactly as designed: the VALUE is unknown, the CLAIM ABOUT WHY is measured. The reason value forbids promoting any measured report into a stated or bracket cell at this key without a routing discriminant \u2014 that clause is what makes it load-bearing rather than decorative."
333
+ }
334
+ ],
335
+ "source_revision_note": "Cells transcribed from mc-geometry-spec were read at c6a85d85 and their source_ref names 06a0e5ac, the current revision. The bump is verified rather than assumed: every row transcribed here is byte-identical between the two revisions (checked per row with git show). The Codex row DID change between them, and no cell here cites the spec for Codex \u2014 those cells cite codex-rs directly. Pointing at the newer revision matters because c6a85d85 carried a misattributed Codex number, and a reader resolving a source_ref should land on a document without a known bad row in it.",
336
+ "additive_note": "The reason value `not_single_valued_at_key` was added 2026-08-13 WITHOUT a schema version bump, deliberately. Bumping would trigger the file-level refusal rule and cost a consumer all 9 cells over one additive value affecting 1. Unbumped, a consumer that does not know the value skips that single cell and merges the other 8 \u2014 which is the correct degradation for an addition."
337
+ }
@@ -0,0 +1,198 @@
1
+ import { afterEach, beforeEach, describe, expect, test } from "bun:test";
2
+ import * as fs from "node:fs";
3
+ import * as os from "node:os";
4
+ import * as path from "node:path";
5
+ import { createTestTempDirFromPath } from "./test-temp-dir";
6
+
7
+ /**
8
+ * `announcement.ts` reads/writes a single `last_announced_version` file under
9
+ * `getMagicContextStorageDir()`. The behavior we test:
10
+ * 1. `markAnnouncementSeen` then `readLastAnnouncedVersion` round-trips
11
+ * 2. `shouldShowAnnouncement` returns false after a matching mark
12
+ * 3. `shouldShowAnnouncement` returns true after a non-matching (older) mark
13
+ * 4. `shouldShowAnnouncement` seeds state + returns false on first run / wiped
14
+ * sandbox (no prior file), so fresh installs and ephemeral envs aren't
15
+ * spammed with a changelog (issue #99)
16
+ * 5. Empty-version inputs are no-ops (don't crash, don't write garbage)
17
+ *
18
+ * We isolate writes by pointing `XDG_DATA_HOME` at a temp dir before requiring
19
+ * the module fresh per test, since the module captures the storage path at
20
+ * import time via `getMagicContextStorageDir()`.
21
+ */
22
+
23
+ let tmpRoot = "";
24
+ let originalXdg: string | undefined;
25
+
26
+ beforeEach(() => {
27
+ tmpRoot = createTestTempDirFromPath(path.join(os.tmpdir(), "mc-announcement-test-"));
28
+ originalXdg = process.env.XDG_DATA_HOME;
29
+ process.env.XDG_DATA_HOME = tmpRoot;
30
+ });
31
+
32
+ afterEach(() => {
33
+ if (originalXdg === undefined) {
34
+ delete process.env.XDG_DATA_HOME;
35
+ } else {
36
+ process.env.XDG_DATA_HOME = originalXdg;
37
+ }
38
+ try {
39
+ // maxRetries/retryDelay ride out transient EBUSY/EPERM on Windows.
40
+ fs.rmSync(tmpRoot, { recursive: true, force: true, maxRetries: 10, retryDelay: 100 });
41
+ } catch {
42
+ // best-effort
43
+ }
44
+ });
45
+
46
+ describe("announcement state persistence", () => {
47
+ test("round-trips a dismissed version through the file", async () => {
48
+ // Fresh import after XDG override so the module captures the temp path
49
+ const mod = await import(`./announcement?t=${Date.now()}-rt`);
50
+ const { readLastAnnouncedVersion, markAnnouncementSeen } = mod;
51
+
52
+ expect(readLastAnnouncedVersion()).toBe("");
53
+
54
+ markAnnouncementSeen("9.9.9");
55
+ expect(readLastAnnouncedVersion()).toBe("9.9.9");
56
+
57
+ markAnnouncementSeen("9.9.10");
58
+ expect(readLastAnnouncedVersion()).toBe("9.9.10");
59
+ });
60
+
61
+ test("ignores empty / zero-length version marks", async () => {
62
+ const mod = await import(`./announcement?t=${Date.now()}-empty`);
63
+ const { readLastAnnouncedVersion, markAnnouncementSeen } = mod;
64
+
65
+ markAnnouncementSeen("");
66
+ expect(readLastAnnouncedVersion()).toBe("");
67
+ });
68
+
69
+ test("creates the storage directory if it does not exist", async () => {
70
+ const mod = await import(`./announcement?t=${Date.now()}-mkdir`);
71
+ const { markAnnouncementSeen } = mod;
72
+
73
+ // Storage dir lives under tmpRoot + mmc — does not
74
+ // exist yet at the start of the test
75
+ const expectedDir = path.join(tmpRoot, "mmc");
76
+ expect(fs.existsSync(expectedDir)).toBe(false);
77
+
78
+ markAnnouncementSeen("0.21.7");
79
+
80
+ expect(fs.existsSync(expectedDir)).toBe(true);
81
+ expect(fs.readFileSync(path.join(expectedDir, "last_announced_version"), "utf-8")).toBe(
82
+ "0.21.7",
83
+ );
84
+ });
85
+
86
+ test("trims whitespace from stored version on read", async () => {
87
+ const mod = await import(`./announcement?t=${Date.now()}-trim`);
88
+ const { readLastAnnouncedVersion } = mod;
89
+
90
+ const dir = path.join(tmpRoot, "mmc");
91
+ fs.mkdirSync(dir, { recursive: true });
92
+ fs.writeFileSync(path.join(dir, "last_announced_version"), " 1.2.3 \n");
93
+
94
+ expect(readLastAnnouncedVersion()).toBe("1.2.3");
95
+ });
96
+ });
97
+
98
+ describe("shouldShowAnnouncement gating", () => {
99
+ test("returns false when the live version is already marked", async () => {
100
+ const mod = await import(`./announcement?t=${Date.now()}-match`);
101
+ const {
102
+ ANNOUNCEMENT_VERSION,
103
+ ANNOUNCEMENT_FEATURES,
104
+ markAnnouncementSeen,
105
+ shouldShowAnnouncement,
106
+ } = mod;
107
+
108
+ // Skip the test if announcements are currently disabled (empty constants)
109
+ // — the gate's empty-input behavior is covered separately below.
110
+ if (!ANNOUNCEMENT_VERSION || ANNOUNCEMENT_FEATURES.length === 0) {
111
+ return;
112
+ }
113
+
114
+ markAnnouncementSeen(ANNOUNCEMENT_VERSION);
115
+ expect(shouldShowAnnouncement()).toBe(false);
116
+ });
117
+
118
+ test("seeds state and returns false on first run / wiped sandbox (issue #99)", async () => {
119
+ const mod = await import(`./announcement?t=${Date.now()}-none`);
120
+ const {
121
+ ANNOUNCEMENT_VERSION,
122
+ ANNOUNCEMENT_FEATURES,
123
+ shouldShowAnnouncement,
124
+ readLastAnnouncedVersion,
125
+ } = mod;
126
+
127
+ if (!ANNOUNCEMENT_VERSION || ANNOUNCEMENT_FEATURES.length === 0) {
128
+ // When empty, the gate is always false regardless of state
129
+ expect(shouldShowAnnouncement()).toBe(false);
130
+ return;
131
+ }
132
+
133
+ // No mark exists yet (fresh install or ephemeral/wiped sandbox). The
134
+ // gate must NOT announce — it seeds the state to the current version and
135
+ // returns false, so first-run users and disposable containers are never
136
+ // spammed with a changelog they have no context for.
137
+ expect(readLastAnnouncedVersion()).toBe("");
138
+ expect(shouldShowAnnouncement()).toBe(false);
139
+ // The seed was written, so a subsequent check stays quiet too.
140
+ expect(readLastAnnouncedVersion()).toBe(ANNOUNCEMENT_VERSION);
141
+ expect(shouldShowAnnouncement()).toBe(false);
142
+ });
143
+
144
+ test("does not seed or advance state when an existing state file is unreadable/corrupt", async () => {
145
+ const mod = await import(`./announcement?t=${Date.now()}-corrupt`);
146
+ const { ANNOUNCEMENT_VERSION, ANNOUNCEMENT_FEATURES, shouldShowAnnouncement } = mod;
147
+
148
+ if (!ANNOUNCEMENT_VERSION || ANNOUNCEMENT_FEATURES.length === 0) {
149
+ expect(shouldShowAnnouncement()).toBe(false);
150
+ return;
151
+ }
152
+
153
+ const dir = path.join(tmpRoot, "mmc");
154
+ const file = path.join(dir, "last_announced_version");
155
+ fs.mkdirSync(dir, { recursive: true });
156
+ fs.writeFileSync(file, "");
157
+
158
+ expect(shouldShowAnnouncement()).toBe(false);
159
+ expect(fs.readFileSync(file, "utf-8")).toBe("");
160
+ });
161
+
162
+ test("returns true when a different (older) version is marked", async () => {
163
+ const mod = await import(`./announcement?t=${Date.now()}-older`);
164
+ const {
165
+ ANNOUNCEMENT_VERSION,
166
+ ANNOUNCEMENT_FEATURES,
167
+ markAnnouncementSeen,
168
+ shouldShowAnnouncement,
169
+ } = mod;
170
+
171
+ if (!ANNOUNCEMENT_VERSION || ANNOUNCEMENT_FEATURES.length === 0) {
172
+ return;
173
+ }
174
+
175
+ markAnnouncementSeen("0.0.0-pre-historic");
176
+ expect(shouldShowAnnouncement()).toBe(true);
177
+ });
178
+
179
+ test("does NOT re-announce on a downgrade (stored version is newer)", async () => {
180
+ const mod = await import(`./announcement?t=${Date.now()}-downgrade`);
181
+ const {
182
+ ANNOUNCEMENT_VERSION,
183
+ ANNOUNCEMENT_FEATURES,
184
+ markAnnouncementSeen,
185
+ shouldShowAnnouncement,
186
+ } = mod;
187
+
188
+ if (!ANNOUNCEMENT_VERSION || ANNOUNCEMENT_FEATURES.length === 0) {
189
+ return;
190
+ }
191
+
192
+ // Stored version is far newer than the running binary (user downgraded).
193
+ // A bare string-inequality gate would re-show the OLD announcement; the
194
+ // semver gate must stay quiet (current is NOT > stored).
195
+ markAnnouncementSeen("999.0.0");
196
+ expect(shouldShowAnnouncement()).toBe(false);
197
+ });
198
+ });