@wolfx/opencode-magic-context 0.26.0-patch.1 → 0.27.2-patch.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/dist/agents/dreamer.d.ts +19 -0
  2. package/dist/agents/dreamer.d.ts.map +1 -1
  3. package/dist/agents/hidden-agent-registrations.d.ts +67 -0
  4. package/dist/agents/hidden-agent-registrations.d.ts.map +1 -0
  5. package/dist/agents/historian.d.ts +1 -0
  6. package/dist/agents/historian.d.ts.map +1 -1
  7. package/dist/agents/permissions.d.ts +15 -44
  8. package/dist/agents/permissions.d.ts.map +1 -1
  9. package/dist/agents/smart-note-compiler.d.ts +2 -0
  10. package/dist/agents/smart-note-compiler.d.ts.map +1 -0
  11. package/dist/config/index.d.ts +1 -1
  12. package/dist/config/index.d.ts.map +1 -1
  13. package/dist/config/migrate-config-location.d.ts +97 -0
  14. package/dist/config/migrate-config-location.d.ts.map +1 -0
  15. package/dist/config/migrate-dreamer-v2.d.ts +37 -0
  16. package/dist/config/migrate-dreamer-v2.d.ts.map +1 -0
  17. package/dist/config/migrate-experimental.d.ts.map +1 -1
  18. package/dist/config/project-security.d.ts +3 -0
  19. package/dist/config/project-security.d.ts.map +1 -1
  20. package/dist/config/prune-config-leaf.d.ts.map +1 -1
  21. package/dist/config/schema/magic-context.d.ts +584 -60
  22. package/dist/config/schema/magic-context.d.ts.map +1 -1
  23. package/dist/features/magic-context/compaction-marker.d.ts +9 -3
  24. package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
  25. package/dist/features/magic-context/compartment-chunk-embedding.d.ts +1 -1
  26. package/dist/features/magic-context/compartment-chunk-embedding.d.ts.map +1 -1
  27. package/dist/features/magic-context/dreamer/classify-prompt.d.ts +50 -0
  28. package/dist/features/magic-context/dreamer/classify-prompt.d.ts.map +1 -0
  29. package/dist/features/magic-context/dreamer/classify.d.ts +22 -0
  30. package/dist/features/magic-context/dreamer/classify.d.ts.map +1 -0
  31. package/dist/features/magic-context/dreamer/cron.d.ts +72 -0
  32. package/dist/features/magic-context/dreamer/cron.d.ts.map +1 -0
  33. package/dist/features/magic-context/dreamer/evaluate-smart-notes.d.ts +30 -0
  34. package/dist/features/magic-context/dreamer/evaluate-smart-notes.d.ts.map +1 -0
  35. package/dist/features/magic-context/dreamer/index.d.ts +1 -3
  36. package/dist/features/magic-context/dreamer/index.d.ts.map +1 -1
  37. package/dist/features/magic-context/dreamer/lease.d.ts +44 -6
  38. package/dist/features/magic-context/dreamer/lease.d.ts.map +1 -1
  39. package/dist/features/magic-context/dreamer/maintain-docs-protected-enforcement.d.ts +13 -0
  40. package/dist/features/magic-context/dreamer/maintain-docs-protected-enforcement.d.ts.map +1 -0
  41. package/dist/features/magic-context/dreamer/map-memories-prompt.d.ts +36 -0
  42. package/dist/features/magic-context/dreamer/map-memories-prompt.d.ts.map +1 -0
  43. package/dist/features/magic-context/dreamer/map-memories.d.ts +22 -0
  44. package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -0
  45. package/dist/features/magic-context/dreamer/open-opencode-db.d.ts +7 -0
  46. package/dist/features/magic-context/dreamer/open-opencode-db.d.ts.map +1 -0
  47. package/dist/features/magic-context/dreamer/primer-seed.d.ts +25 -0
  48. package/dist/features/magic-context/dreamer/primer-seed.d.ts.map +1 -0
  49. package/dist/features/magic-context/dreamer/promote-primers.d.ts +21 -0
  50. package/dist/features/magic-context/dreamer/promote-primers.d.ts.map +1 -0
  51. package/dist/features/magic-context/dreamer/protected-regions.d.ts +19 -0
  52. package/dist/features/magic-context/dreamer/protected-regions.d.ts.map +1 -0
  53. package/dist/features/magic-context/dreamer/refresh-primers.d.ts +30 -0
  54. package/dist/features/magic-context/dreamer/refresh-primers.d.ts.map +1 -0
  55. package/dist/features/magic-context/dreamer/retrospective-learnings.d.ts +47 -0
  56. package/dist/features/magic-context/dreamer/retrospective-learnings.d.ts.map +1 -0
  57. package/dist/features/magic-context/dreamer/retrospective-orphan-sweep.d.ts +48 -0
  58. package/dist/features/magic-context/dreamer/retrospective-orphan-sweep.d.ts.map +1 -0
  59. package/dist/features/magic-context/dreamer/retrospective-raw-provider.d.ts +81 -0
  60. package/dist/features/magic-context/dreamer/retrospective-raw-provider.d.ts.map +1 -0
  61. package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts +8 -0
  62. package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts.map +1 -1
  63. package/dist/features/magic-context/dreamer/storage-task-schedule.d.ts +82 -0
  64. package/dist/features/magic-context/dreamer/storage-task-schedule.d.ts.map +1 -0
  65. package/dist/features/magic-context/dreamer/task-config.d.ts +28 -0
  66. package/dist/features/magic-context/dreamer/task-config.d.ts.map +1 -0
  67. package/dist/features/magic-context/dreamer/task-executor.d.ts +49 -0
  68. package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -0
  69. package/dist/features/magic-context/dreamer/task-gates.d.ts +29 -0
  70. package/dist/features/magic-context/dreamer/task-gates.d.ts.map +1 -0
  71. package/dist/features/magic-context/dreamer/task-prompts.d.ts +37 -6
  72. package/dist/features/magic-context/dreamer/task-prompts.d.ts.map +1 -1
  73. package/dist/features/magic-context/dreamer/task-registry.d.ts +48 -0
  74. package/dist/features/magic-context/dreamer/task-registry.d.ts.map +1 -0
  75. package/dist/features/magic-context/dreamer/task-scheduler.d.ts +88 -0
  76. package/dist/features/magic-context/dreamer/task-scheduler.d.ts.map +1 -0
  77. package/dist/features/magic-context/dreamer/verify-gate.d.ts +43 -0
  78. package/dist/features/magic-context/dreamer/verify-gate.d.ts.map +1 -0
  79. package/dist/features/magic-context/dreamer/verify-prompt.d.ts +41 -0
  80. package/dist/features/magic-context/dreamer/verify-prompt.d.ts.map +1 -0
  81. package/dist/features/magic-context/dreamer/verify.d.ts +43 -0
  82. package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -0
  83. package/dist/features/magic-context/git-commits/search-git-commits.d.ts +2 -0
  84. package/dist/features/magic-context/git-commits/search-git-commits.d.ts.map +1 -1
  85. package/dist/features/magic-context/git-commits/storage-git-commit-embeddings.d.ts +4 -4
  86. package/dist/features/magic-context/git-commits/storage-git-commit-embeddings.d.ts.map +1 -1
  87. package/dist/features/magic-context/index.d.ts +1 -0
  88. package/dist/features/magic-context/index.d.ts.map +1 -1
  89. package/dist/features/magic-context/memory/embedding-cache.d.ts +2 -2
  90. package/dist/features/magic-context/memory/embedding-cache.d.ts.map +1 -1
  91. package/dist/features/magic-context/memory/embedding-identity.d.ts.map +1 -1
  92. package/dist/features/magic-context/memory/embedding-openai.d.ts +12 -5
  93. package/dist/features/magic-context/memory/embedding-openai.d.ts.map +1 -1
  94. package/dist/features/magic-context/memory/embedding.d.ts +2 -2
  95. package/dist/features/magic-context/memory/embedding.d.ts.map +1 -1
  96. package/dist/features/magic-context/memory/index.d.ts +4 -1
  97. package/dist/features/magic-context/memory/index.d.ts.map +1 -1
  98. package/dist/features/magic-context/memory/memory-migration.d.ts +1 -0
  99. package/dist/features/magic-context/memory/memory-migration.d.ts.map +1 -1
  100. package/dist/features/magic-context/memory/promotion.d.ts +16 -4
  101. package/dist/features/magic-context/memory/promotion.d.ts.map +1 -1
  102. package/dist/features/magic-context/memory/storage-memory-embeddings.d.ts +2 -2
  103. package/dist/features/magic-context/memory/storage-memory-embeddings.d.ts.map +1 -1
  104. package/dist/features/magic-context/memory/storage-memory-verifications.d.ts +31 -0
  105. package/dist/features/magic-context/memory/storage-memory-verifications.d.ts.map +1 -0
  106. package/dist/features/magic-context/memory/storage-memory.d.ts +12 -1
  107. package/dist/features/magic-context/memory/storage-memory.d.ts.map +1 -1
  108. package/dist/features/magic-context/memory/types.d.ts +4 -0
  109. package/dist/features/magic-context/memory/types.d.ts.map +1 -1
  110. package/dist/features/magic-context/memory/verification-paths.d.ts +32 -0
  111. package/dist/features/magic-context/memory/verification-paths.d.ts.map +1 -0
  112. package/dist/features/magic-context/message-index.d.ts.map +1 -1
  113. package/dist/features/magic-context/migrations.d.ts.map +1 -1
  114. package/dist/features/magic-context/overflow-detection.d.ts.map +1 -1
  115. package/dist/features/magic-context/primer-clustering.d.ts +29 -0
  116. package/dist/features/magic-context/primer-clustering.d.ts.map +1 -0
  117. package/dist/features/magic-context/project-embedding-registry.d.ts +25 -1
  118. package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
  119. package/dist/features/magic-context/search.d.ts +12 -2
  120. package/dist/features/magic-context/search.d.ts.map +1 -1
  121. package/dist/features/magic-context/sidekick/agent.d.ts.map +1 -1
  122. package/dist/features/magic-context/smart-notes/capabilities.d.ts +31 -0
  123. package/dist/features/magic-context/smart-notes/capabilities.d.ts.map +1 -0
  124. package/dist/features/magic-context/smart-notes/compiler-prompt.d.ts +2 -0
  125. package/dist/features/magic-context/smart-notes/compiler-prompt.d.ts.map +1 -0
  126. package/dist/features/magic-context/smart-notes/compiler.d.ts +52 -0
  127. package/dist/features/magic-context/smart-notes/compiler.d.ts.map +1 -0
  128. package/dist/features/magic-context/smart-notes/index.d.ts +10 -0
  129. package/dist/features/magic-context/smart-notes/index.d.ts.map +1 -0
  130. package/dist/features/magic-context/smart-notes/runner.d.ts +18 -0
  131. package/dist/features/magic-context/smart-notes/runner.d.ts.map +1 -0
  132. package/dist/features/magic-context/smart-notes/sandbox-runner.d.ts +22 -0
  133. package/dist/features/magic-context/smart-notes/sandbox-runner.d.ts.map +1 -0
  134. package/dist/features/magic-context/smart-notes/schedule.d.ts +9 -0
  135. package/dist/features/magic-context/smart-notes/schedule.d.ts.map +1 -0
  136. package/dist/features/magic-context/smart-notes/ssrf-guard.d.ts +49 -0
  137. package/dist/features/magic-context/smart-notes/ssrf-guard.d.ts.map +1 -0
  138. package/dist/features/magic-context/smart-notes/storage.d.ts +27 -0
  139. package/dist/features/magic-context/smart-notes/storage.d.ts.map +1 -0
  140. package/dist/features/magic-context/smart-notes/types.d.ts +63 -0
  141. package/dist/features/magic-context/smart-notes/types.d.ts.map +1 -0
  142. package/dist/features/magic-context/storage-db.d.ts +5 -1
  143. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  144. package/dist/features/magic-context/storage-meta-persisted.d.ts +8 -4
  145. package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
  146. package/dist/features/magic-context/storage-meta-session.d.ts.map +1 -1
  147. package/dist/features/magic-context/storage-meta-shared.d.ts +3 -1
  148. package/dist/features/magic-context/storage-meta-shared.d.ts.map +1 -1
  149. package/dist/features/magic-context/storage-notes.d.ts +15 -0
  150. package/dist/features/magic-context/storage-notes.d.ts.map +1 -1
  151. package/dist/features/magic-context/storage-primers.d.ts +85 -0
  152. package/dist/features/magic-context/storage-primers.d.ts.map +1 -0
  153. package/dist/features/magic-context/storage-tags.d.ts +20 -0
  154. package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
  155. package/dist/features/magic-context/storage.d.ts +2 -1
  156. package/dist/features/magic-context/storage.d.ts.map +1 -1
  157. package/dist/features/magic-context/tagger.d.ts +6 -0
  158. package/dist/features/magic-context/tagger.d.ts.map +1 -1
  159. package/dist/features/magic-context/tool-owner-backfill.d.ts.map +1 -1
  160. package/dist/features/magic-context/transform-decision-log.d.ts +10 -0
  161. package/dist/features/magic-context/transform-decision-log.d.ts.map +1 -1
  162. package/dist/features/magic-context/types.d.ts +2 -0
  163. package/dist/features/magic-context/types.d.ts.map +1 -1
  164. package/dist/features/magic-context/user-memory/review-user-memories.d.ts +5 -0
  165. package/dist/features/magic-context/user-memory/review-user-memories.d.ts.map +1 -1
  166. package/dist/features/magic-context/user-memory/storage-user-memory.d.ts +18 -0
  167. package/dist/features/magic-context/user-memory/storage-user-memory.d.ts.map +1 -1
  168. package/dist/features/magic-context/v22-deferred-backfill.d.ts.map +1 -1
  169. package/dist/hooks/magic-context/auto-search-hint.d.ts.map +1 -1
  170. package/dist/hooks/magic-context/command-handler.d.ts +8 -15
  171. package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
  172. package/dist/hooks/magic-context/compaction-marker-manager.d.ts.map +1 -1
  173. package/dist/hooks/magic-context/compartment-parser.d.ts +9 -0
  174. package/dist/hooks/magic-context/compartment-parser.d.ts.map +1 -1
  175. package/dist/hooks/magic-context/compartment-prompt.d.ts +4 -1
  176. package/dist/hooks/magic-context/compartment-prompt.d.ts.map +1 -1
  177. package/dist/hooks/magic-context/compartment-runner-historian.d.ts +1 -0
  178. package/dist/hooks/magic-context/compartment-runner-historian.d.ts.map +1 -1
  179. package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
  180. package/dist/hooks/magic-context/compartment-runner-partial-recomp.d.ts.map +1 -1
  181. package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
  182. package/dist/hooks/magic-context/compartment-runner-types.d.ts +8 -0
  183. package/dist/hooks/magic-context/compartment-runner-types.d.ts.map +1 -1
  184. package/dist/hooks/magic-context/compartment-runner-validation.d.ts.map +1 -1
  185. package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
  186. package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts.map +1 -1
  187. package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
  188. package/dist/hooks/magic-context/event-resolvers.d.ts.map +1 -1
  189. package/dist/hooks/magic-context/historian-prompt.generated.d.ts +1 -1
  190. package/dist/hooks/magic-context/historian-prompt.generated.d.ts.map +1 -1
  191. package/dist/hooks/magic-context/historian-state-file.d.ts.map +1 -1
  192. package/dist/hooks/magic-context/hook-handlers.d.ts +2 -1
  193. package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -1
  194. package/dist/hooks/magic-context/hook.d.ts +1 -0
  195. package/dist/hooks/magic-context/hook.d.ts.map +1 -1
  196. package/dist/hooks/magic-context/inject-compartments.d.ts +0 -3
  197. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  198. package/dist/hooks/magic-context/send-session-notification.d.ts +2 -0
  199. package/dist/hooks/magic-context/send-session-notification.d.ts.map +1 -1
  200. package/dist/hooks/magic-context/system-prompt-hash.d.ts +17 -0
  201. package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
  202. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +8 -5
  203. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  204. package/dist/hooks/magic-context/transform.d.ts +0 -2
  205. package/dist/hooks/magic-context/transform.d.ts.map +1 -1
  206. package/dist/index.d.ts +2 -2
  207. package/dist/index.d.ts.map +1 -1
  208. package/dist/index.js +18046 -12830
  209. package/dist/plugin/dream-timer.d.ts +17 -9
  210. package/dist/plugin/dream-timer.d.ts.map +1 -1
  211. package/dist/plugin/embedding-bootstrap-helpers.d.ts +1 -1
  212. package/dist/plugin/embedding-bootstrap-helpers.d.ts.map +1 -1
  213. package/dist/plugin/embedding-bootstrap.d.ts.map +1 -1
  214. package/dist/plugin/hooks/create-session-hooks.d.ts +211 -0
  215. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  216. package/dist/plugin/instance-disposal.d.ts +2 -0
  217. package/dist/plugin/instance-disposal.d.ts.map +1 -0
  218. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  219. package/dist/shared/announcement.d.ts +1 -1
  220. package/dist/shared/announcement.d.ts.map +1 -1
  221. package/dist/shared/data-path.d.ts +30 -9
  222. package/dist/shared/data-path.d.ts.map +1 -1
  223. package/dist/shared/model-suggestion-retry.d.ts +48 -2
  224. package/dist/shared/model-suggestion-retry.d.ts.map +1 -1
  225. package/dist/shared/models-dev-cache.d.ts +23 -0
  226. package/dist/shared/models-dev-cache.d.ts.map +1 -1
  227. package/dist/shared/redaction.d.ts +7 -0
  228. package/dist/shared/redaction.d.ts.map +1 -0
  229. package/dist/shared/resolve-fallbacks.d.ts +12 -0
  230. package/dist/shared/resolve-fallbacks.d.ts.map +1 -1
  231. package/dist/shared/rpc-server.d.ts.map +1 -1
  232. package/dist/shared/rpc-types.d.ts +2 -0
  233. package/dist/shared/rpc-types.d.ts.map +1 -1
  234. package/dist/shared/subagent-runner.d.ts +12 -3
  235. package/dist/shared/subagent-runner.d.ts.map +1 -1
  236. package/dist/shared/tui-config.d.ts.map +1 -1
  237. package/dist/tools/ctx-memory/tools.d.ts.map +1 -1
  238. package/dist/tools/ctx-memory/types.d.ts.map +1 -1
  239. package/dist/tools/ctx-memory/verification-recording.d.ts +8 -0
  240. package/dist/tools/ctx-memory/verification-recording.d.ts.map +1 -0
  241. package/dist/tools/ctx-search/tools.d.ts.map +1 -1
  242. package/dist/tools/ctx-search/types.d.ts +1 -1
  243. package/dist/tools/ctx-search/types.d.ts.map +1 -1
  244. package/dist/tui/data/context-db.d.ts +2 -0
  245. package/dist/tui/data/context-db.d.ts.map +1 -1
  246. package/package.json +6 -1
  247. package/src/shared/announcement.test.ts +20 -0
  248. package/src/shared/announcement.ts +32 -7
  249. package/src/shared/data-path.test.ts +74 -9
  250. package/src/shared/data-path.ts +54 -10
  251. package/src/shared/model-suggestion-retry.test.ts +79 -2
  252. package/src/shared/model-suggestion-retry.ts +181 -3
  253. package/src/shared/models-dev-cache.test.ts +82 -0
  254. package/src/shared/models-dev-cache.ts +35 -0
  255. package/src/shared/redaction.test.ts +84 -0
  256. package/src/shared/redaction.ts +264 -0
  257. package/src/shared/resolve-fallbacks.ts +14 -0
  258. package/src/shared/rpc-server.ts +24 -0
  259. package/src/shared/rpc-types.ts +2 -0
  260. package/src/shared/subagent-runner.ts +12 -3
  261. package/src/shared/tui-config.test.ts +106 -0
  262. package/src/shared/tui-config.ts +75 -40
  263. package/src/tui/data/context-db.ts +12 -0
  264. package/src/tui/index.tsx +87 -17
  265. package/src/tui/slots/sidebar-content.tsx +4 -0
  266. package/dist/features/magic-context/dreamer/queue.d.ts +0 -55
  267. package/dist/features/magic-context/dreamer/queue.d.ts.map +0 -1
  268. package/dist/features/magic-context/dreamer/runner.d.ts +0 -92
  269. package/dist/features/magic-context/dreamer/runner.d.ts.map +0 -1
  270. package/dist/features/magic-context/dreamer/scheduler.d.ts +0 -29
  271. package/dist/features/magic-context/dreamer/scheduler.d.ts.map +0 -1
  272. package/dist/features/magic-context/key-files/aft-availability.d.ts +0 -11
  273. package/dist/features/magic-context/key-files/aft-availability.d.ts.map +0 -1
  274. package/dist/features/magic-context/key-files/identify-key-files.d.ts +0 -84
  275. package/dist/features/magic-context/key-files/identify-key-files.d.ts.map +0 -1
  276. package/dist/features/magic-context/key-files/project-key-files.d.ts +0 -42
  277. package/dist/features/magic-context/key-files/project-key-files.d.ts.map +0 -1
  278. package/dist/features/magic-context/key-files/read-history.d.ts +0 -26
  279. package/dist/features/magic-context/key-files/read-history.d.ts.map +0 -1
  280. package/dist/features/magic-context/key-files/read-stats.d.ts +0 -18
  281. package/dist/features/magic-context/key-files/read-stats.d.ts.map +0 -1
  282. package/dist/features/magic-context/key-files/storage-key-files.d.ts +0 -20
  283. package/dist/features/magic-context/key-files/storage-key-files.d.ts.map +0 -1
  284. package/dist/hooks/magic-context/key-files-block.d.ts +0 -27
  285. package/dist/hooks/magic-context/key-files-block.d.ts.map +0 -1
@@ -1,4 +1,6 @@
1
1
  import type { DreamerConfig } from "../config/schema/magic-context";
2
+ import { type RetrospectiveRawProvider } from "../features/magic-context/dreamer/retrospective-raw-provider";
3
+ import type { RawMessageProvider } from "../hooks/magic-context/read-session-chunk";
2
4
  import type { Database } from "../shared/sqlite";
3
5
  import type { PluginContext } from "./types";
4
6
  /**
@@ -12,21 +14,27 @@ interface ProjectRegistration {
12
14
  projectIdentity: string;
13
15
  client: PluginContext["client"];
14
16
  dreamerConfig?: DreamerConfig;
15
- experimentalUserMemories?: {
16
- enabled: boolean;
17
- promotionThreshold: number;
18
- };
19
- experimentalPinKeyFiles?: {
20
- enabled: boolean;
21
- token_budget: number;
22
- min_reads: number;
23
- };
24
17
  gitCommitIndexing?: {
25
18
  enabled: boolean;
26
19
  since_days: number;
27
20
  max_commits: number;
28
21
  };
29
22
  ensureRegistered: (directory: string, db: Database) => Promise<void>;
23
+ /**
24
+ * Per-registration retrospective raw-source provider factory. Each harness
25
+ * brings its own (the same way it brings its own `client`): OpenCode reads
26
+ * opencode.db, Pi reads its JSONL sessions. When omitted, the timer defaults
27
+ * to the OpenCode provider (preserving OpenCode behavior exactly).
28
+ */
29
+ retrospectiveRawProvider?: (db: Database, projectIdentity: string) => RetrospectiveRawProvider | null;
30
+ /**
31
+ * Per-registration primer raw-source provider factory for the SCHEDULED
32
+ * refresh-primers task. Pi supplies a JSONL-backed factory so the open-book
33
+ * primer seed renders the origin compartment's raw U:/TC: lines; OpenCode
34
+ * omits it (buildPrimerSeed reads opencode.db directly). When omitted on Pi,
35
+ * scheduled refresh-primers silently falls back to a closed-book seed.
36
+ */
37
+ primerRawProviderFactory?: (sessionId: string) => Promise<RawMessageProvider | null> | RawMessageProvider | null;
30
38
  }
31
39
  /**
32
40
  * Register the calling project with the process-wide dream + maintenance
@@ -1 +1 @@
1
- {"version":3,"file":"dream-timer.d.ts","sourceRoot":"","sources":["../../src/plugin/dream-timer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAkBpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAK7C;;;;;GAKG;AACH,UAAU,mBAAmB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,wBAAwB,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,uBAAuB,CAAC,EAAE;QACtB,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,iBAAiB,CAAC,EAAE;QAChB,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE;AA2BD;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CACzC,IAAI,EAAE,mBAAmB,GAC1B,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC,CA6DnC"}
1
+ {"version":3,"file":"dream-timer.d.ts","sourceRoot":"","sources":["../../src/plugin/dream-timer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AASpE,OAAO,EAEH,KAAK,wBAAwB,EAChC,MAAM,8DAA8D,CAAC;AA4BtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAGpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAO7C;;;;;GAKG;AACH,UAAU,mBAAmB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,iBAAiB,CAAC,EAAE;QAChB,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,CACvB,EAAE,EAAE,QAAQ,EACZ,eAAe,EAAE,MAAM,KACtB,wBAAwB,GAAG,IAAI,CAAC;IACrC;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,CACvB,SAAS,EAAE,MAAM,KAChB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,kBAAkB,GAAG,IAAI,CAAC;CACvE;AA+CD;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CACzC,IAAI,EAAE,mBAAmB,GAC1B,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC,CAyDnC"}
@@ -1,6 +1,6 @@
1
1
  import type { EmbeddingConfig } from "../config/schema/magic-context";
2
2
  import type { Database } from "../shared/sqlite";
3
- export type LoadOutcome = "ok" | "project-file-parse-error" | "project-file-io-error" | "schema-recovery" | "substitution-failure";
3
+ export type LoadOutcome = "ok" | "project-file-parse-error" | "project-file-io-error" | "legacy-config-unmigrated" | "schema-recovery" | "substitution-failure";
4
4
  export interface EmbeddingLoadResultDetailed<TConfig extends {
5
5
  embedding: EmbeddingConfig;
6
6
  }> {
@@ -1 +1 @@
1
- {"version":3,"file":"embedding-bootstrap-helpers.d.ts","sourceRoot":"","sources":["../../src/plugin/embedding-bootstrap-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAMtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,WAAW,GACjB,IAAI,GACJ,0BAA0B,GAC1B,uBAAuB,GACvB,iBAAiB,GACjB,sBAAsB,CAAC;AAE7B,MAAM,WAAW,2BAA2B,CAAC,OAAO,SAAS;IAAE,SAAS,EAAE,eAAe,CAAA;CAAE;IACvF,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE;QACL,UAAU,EAAE,WAAW,CAAC;QACxB,aAAa,EAAE,WAAW,CAAC;KAC9B,CAAC;IACF,oBAAoB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9F,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACnC;AAED,eAAO,MAAM,wBAAwB,aAWnC,CAAC;AAEH,eAAO,MAAM,kCAAkC,aAAmD,CAAC;AAsBnG,wBAAgB,qBAAqB,CACjC,QAAQ,EAAE,2BAA2B,CAAC;IAAE,SAAS,EAAE,eAAe,CAAA;CAAE,CAAC,GACtE,OAAO,CA0BT;AAED,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,2BAA2B,CAAC;IAAE,SAAS,EAAE,eAAe,CAAA;CAAE,CAAC,GACtE,MAAM,CAkBR;AAED,wBAAgB,oBAAoB,CAChC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,2BAA2B,CAAC;IAAE,SAAS,EAAE,eAAe,CAAA;CAAE,CAAC,GACtE,IAAI,CAiBN;AAED,wBAAgB,mBAAmB,CAC/B,EAAE,EAAE,QAAQ,EACZ,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,2BAA2B,CAAC;IAAE,SAAS,EAAE,eAAe,CAAA;CAAE,CAAC,GACtE,OAAO,CAeT;AAED,wBAAgB,wCAAwC,IAAI,IAAI,CAE/D"}
1
+ {"version":3,"file":"embedding-bootstrap-helpers.d.ts","sourceRoot":"","sources":["../../src/plugin/embedding-bootstrap-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAOtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,WAAW,GACjB,IAAI,GACJ,0BAA0B,GAC1B,uBAAuB,GACvB,0BAA0B,GAC1B,iBAAiB,GACjB,sBAAsB,CAAC;AAE7B,MAAM,WAAW,2BAA2B,CAAC,OAAO,SAAS;IAAE,SAAS,EAAE,eAAe,CAAA;CAAE;IACvF,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE;QACL,UAAU,EAAE,WAAW,CAAC;QACxB,aAAa,EAAE,WAAW,CAAC;KAC9B,CAAC;IACF,oBAAoB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9F,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACnC;AAED,eAAO,MAAM,wBAAwB,aAgBnC,CAAC;AAmBH,eAAO,MAAM,kCAAkC,aAAmD,CAAC;AAsBnG,wBAAgB,qBAAqB,CACjC,QAAQ,EAAE,2BAA2B,CAAC;IAAE,SAAS,EAAE,eAAe,CAAA;CAAE,CAAC,GACtE,OAAO,CAoCT;AAED,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,2BAA2B,CAAC;IAAE,SAAS,EAAE,eAAe,CAAA;CAAE,CAAC,GACtE,MAAM,CAkBR;AAED,wBAAgB,oBAAoB,CAChC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,2BAA2B,CAAC;IAAE,SAAS,EAAE,eAAe,CAAA;CAAE,CAAC,GACtE,IAAI,CAiBN;AAED,wBAAgB,mBAAmB,CAC/B,EAAE,EAAE,QAAQ,EACZ,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,2BAA2B,CAAC;IAAE,SAAS,EAAE,eAAe,CAAA;CAAE,CAAC,GACtE,OAAO,CAsBT;AAED,wBAAgB,wCAAwC,IAAI,IAAI,CAE/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"embedding-bootstrap.d.ts","sourceRoot":"","sources":["../../src/plugin/embedding-bootstrap.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,wBAAsB,4CAA4C,CAC9D,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,QAAQ,GACb,OAAO,CAAC,IAAI,CAAC,CAqBf"}
1
+ {"version":3,"file":"embedding-bootstrap.d.ts","sourceRoot":"","sources":["../../src/plugin/embedding-bootstrap.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,wBAAsB,4CAA4C,CAC9D,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,QAAQ,GACb,OAAO,CAAC,IAAI,CAAC,CAef"}
@@ -1,6 +1,217 @@
1
1
  import type { MagicContextPluginConfig } from "../../config";
2
2
  import type { LiveSessionState } from "../../hooks/magic-context/live-session-state";
3
3
  import type { PluginContext } from "../types";
4
+ /**
5
+ * Map the full plugin config down to the per-session hook config. Pure and
6
+ * exported so it can be unit-tested directly — without a module-level
7
+ * `mock.module` of the hooks barrel, which in Bun leaks process-globally across
8
+ * test files (mock.restore() does not undo it) and corrupts sibling suites that
9
+ * import the real hook shape.
10
+ */
11
+ export declare function buildMagicContextHookConfig(pluginConfig: MagicContextPluginConfig): {
12
+ protected_tags: number;
13
+ ctx_reduce_enabled: boolean;
14
+ cache_ttl: string | {
15
+ [modelKey: string]: string;
16
+ default: string;
17
+ };
18
+ clear_reasoning_age: number;
19
+ toast_duration_ms: number | undefined;
20
+ execute_threshold_percentage: number | {
21
+ [modelKey: string]: number;
22
+ default: number;
23
+ };
24
+ execute_threshold_tokens: {
25
+ [modelKey: string]: number | undefined;
26
+ default?: number;
27
+ } | undefined;
28
+ historian: {
29
+ two_pass: boolean;
30
+ disallowed_tools: ("*" | "read" | "aft_outline" | "aft_zoom" | "aft_search")[];
31
+ model?: string | undefined;
32
+ temperature?: number | undefined;
33
+ top_p?: number | undefined;
34
+ prompt?: string | undefined;
35
+ tools?: Record<string, boolean> | undefined;
36
+ disable?: boolean | undefined;
37
+ description?: string | undefined;
38
+ mode?: "subagent" | "primary" | "all" | undefined;
39
+ color?: string | undefined;
40
+ maxSteps?: number | undefined;
41
+ permission?: {
42
+ edit?: "deny" | "allow" | "ask" | undefined;
43
+ bash?: "deny" | "allow" | "ask" | Record<string, "deny" | "allow" | "ask"> | undefined;
44
+ webfetch?: "deny" | "allow" | "ask" | undefined;
45
+ doom_loop?: "deny" | "allow" | "ask" | undefined;
46
+ external_directory?: "deny" | "allow" | "ask" | undefined;
47
+ } | undefined;
48
+ maxTokens?: number | undefined;
49
+ variant?: string | undefined;
50
+ fallback_models?: string | string[] | undefined;
51
+ thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
52
+ } | undefined;
53
+ history_budget_percentage: number;
54
+ historian_timeout_ms: number;
55
+ memory: {
56
+ enabled: boolean;
57
+ injection_budget_tokens: number;
58
+ auto_promote: boolean;
59
+ retrieval_count_promotion_threshold: number;
60
+ auto_search: {
61
+ enabled: boolean;
62
+ score_threshold: number;
63
+ min_prompt_chars: number;
64
+ };
65
+ git_commit_indexing: {
66
+ enabled: boolean;
67
+ since_days: number;
68
+ max_commits: number;
69
+ };
70
+ };
71
+ sidekick: {
72
+ timeout_ms: number;
73
+ model?: string | undefined;
74
+ temperature?: number | undefined;
75
+ top_p?: number | undefined;
76
+ prompt?: string | undefined;
77
+ tools?: Record<string, boolean> | undefined;
78
+ disable?: boolean | undefined;
79
+ description?: string | undefined;
80
+ mode?: "subagent" | "primary" | "all" | undefined;
81
+ color?: string | undefined;
82
+ maxSteps?: number | undefined;
83
+ permission?: {
84
+ edit?: "deny" | "allow" | "ask" | undefined;
85
+ bash?: "deny" | "allow" | "ask" | Record<string, "deny" | "allow" | "ask"> | undefined;
86
+ webfetch?: "deny" | "allow" | "ask" | undefined;
87
+ doom_loop?: "deny" | "allow" | "ask" | undefined;
88
+ external_directory?: "deny" | "allow" | "ask" | undefined;
89
+ } | undefined;
90
+ maxTokens?: number | undefined;
91
+ variant?: string | undefined;
92
+ fallback_models?: string | string[] | undefined;
93
+ system_prompt?: string | undefined;
94
+ thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
95
+ } | undefined;
96
+ dreamer: {
97
+ tasks: {
98
+ "map-memories": {
99
+ schedule: string;
100
+ timeout_minutes: number;
101
+ model?: string | undefined;
102
+ fallback_models?: string | string[] | undefined;
103
+ thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
104
+ };
105
+ verify: {
106
+ schedule: string;
107
+ timeout_minutes: number;
108
+ model?: string | undefined;
109
+ fallback_models?: string | string[] | undefined;
110
+ thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
111
+ };
112
+ "verify-broad": {
113
+ schedule: string;
114
+ timeout_minutes: number;
115
+ model?: string | undefined;
116
+ fallback_models?: string | string[] | undefined;
117
+ thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
118
+ };
119
+ curate: {
120
+ schedule: string;
121
+ timeout_minutes: number;
122
+ model?: string | undefined;
123
+ fallback_models?: string | string[] | undefined;
124
+ thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
125
+ };
126
+ "classify-memories": {
127
+ schedule: string;
128
+ timeout_minutes: number;
129
+ model?: string | undefined;
130
+ fallback_models?: string | string[] | undefined;
131
+ thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
132
+ };
133
+ retrospective: {
134
+ schedule: string;
135
+ timeout_minutes: number;
136
+ model?: string | undefined;
137
+ fallback_models?: string | string[] | undefined;
138
+ thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
139
+ };
140
+ "maintain-docs": {
141
+ schedule: string;
142
+ timeout_minutes: number;
143
+ model?: string | undefined;
144
+ fallback_models?: string | string[] | undefined;
145
+ thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
146
+ };
147
+ "evaluate-smart-notes": {
148
+ schedule: string;
149
+ timeout_minutes: number;
150
+ model?: string | undefined;
151
+ fallback_models?: string | string[] | undefined;
152
+ thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
153
+ };
154
+ "review-user-memories": {
155
+ schedule: string;
156
+ timeout_minutes: number;
157
+ model?: string | undefined;
158
+ fallback_models?: string | string[] | undefined;
159
+ thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
160
+ promotion_threshold?: number | undefined;
161
+ };
162
+ "promote-primers": {
163
+ schedule: string;
164
+ timeout_minutes: number;
165
+ model?: string | undefined;
166
+ fallback_models?: string | string[] | undefined;
167
+ thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
168
+ promotion_threshold?: number | undefined;
169
+ };
170
+ "refresh-primers": {
171
+ schedule: string;
172
+ timeout_minutes: number;
173
+ model?: string | undefined;
174
+ fallback_models?: string | string[] | undefined;
175
+ thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
176
+ };
177
+ };
178
+ inject_docs: boolean;
179
+ model?: string | undefined;
180
+ temperature?: number | undefined;
181
+ top_p?: number | undefined;
182
+ prompt?: string | undefined;
183
+ tools?: Record<string, boolean> | undefined;
184
+ disable?: boolean | undefined;
185
+ description?: string | undefined;
186
+ mode?: "subagent" | "primary" | "all" | undefined;
187
+ color?: string | undefined;
188
+ maxSteps?: number | undefined;
189
+ permission?: {
190
+ edit?: "deny" | "allow" | "ask" | undefined;
191
+ bash?: "deny" | "allow" | "ask" | Record<string, "deny" | "allow" | "ask"> | undefined;
192
+ webfetch?: "deny" | "allow" | "ask" | undefined;
193
+ doom_loop?: "deny" | "allow" | "ask" | undefined;
194
+ external_directory?: "deny" | "allow" | "ask" | undefined;
195
+ } | undefined;
196
+ maxTokens?: number | undefined;
197
+ variant?: string | undefined;
198
+ fallback_models?: string | string[] | undefined;
199
+ thinking_level?: "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | undefined;
200
+ } | undefined;
201
+ commit_cluster_trigger: {
202
+ enabled: boolean;
203
+ min_clusters: number;
204
+ };
205
+ system_prompt_injection: {
206
+ enabled: boolean;
207
+ skip_signatures: string[];
208
+ };
209
+ temporal_awareness: boolean;
210
+ caveman_text_compression: {
211
+ enabled: boolean;
212
+ min_chars: number;
213
+ };
214
+ };
4
215
  export declare function createSessionHooks(args: {
5
216
  ctx: PluginContext;
6
217
  pluginConfig: MagicContextPluginConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"create-session-hooks.d.ts","sourceRoot":"","sources":["../../../src/plugin/hooks/create-session-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAO7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACrC,GAAG,EAAE,aAAa,CAAC;IACnB,YAAY,EAAE,wBAAwB,CAAC;IACvC,gBAAgB,EAAE,gBAAgB,CAAC;CACtC;;;;;;qBAwD0uK,CAAC;;;;;;;;;;;;qBAA93D,CAAC;mBAAyB,CAAC;iBAAuB,CAAC;iBAAuB,CAAC;0BAAc,CAAC;uBAAiB,CAAC;;;;;;0BAAw7kC,CAAC;;;;;;EADl5rC"}
1
+ {"version":3,"file":"create-session-hooks.d.ts","sourceRoot":"","sources":["../../../src/plugin/hooks/create-session-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAO7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BjF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACrC,GAAG,EAAE,aAAa,CAAC;IACnB,YAAY,EAAE,wBAAwB,CAAC;IACvC,gBAAgB,EAAE,gBAAgB,CAAC;CACtC;;;;;;qBA+B+zJ,CAAC;;;;;;;;;;;;qBAA7lD,CAAC;mBAAyB,CAAC;iBAAuB,CAAC;iBAAuB,CAAC;0BAAc,CAAC;uBAAiB,CAAC;;;;;;0BAAgjmC,CAAC;;;;;;EADh4sC"}
@@ -0,0 +1,2 @@
1
+ export declare function isDisposedInstanceDirectory(ownDirectory: string, disposedDirectory: string): boolean;
2
+ //# sourceMappingURL=instance-disposal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-disposal.d.ts","sourceRoot":"","sources":["../../src/plugin/instance-disposal.ts"],"names":[],"mappings":"AAEA,wBAAgB,2BAA2B,CACvC,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,GAC1B,OAAO,CAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-handlers.d.ts","sourceRoot":"","sources":["../../src/plugin/rpc-handlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGzE,OAAO,EACH,KAAK,eAAe,IAAI,QAAQ,EAGnC,MAAM,mCAAmC,CAAC;AAc3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAqBlF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAe,eAAe,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AA0FtF,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,qBAAqB,CAAC,EAAE,MAAM,EAK9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,eAAe,CA2VjB;AAED,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,qBAAqB,CAAC,EAAE,MAAM,GAC/B,YAAY,CA+Jd;AA4BD;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,qBAAqB,EAChC,IAAI,EAAE;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,gBAAgB,CAAC;CACtC,GACF,IAAI,CA4ON"}
1
+ {"version":3,"file":"rpc-handlers.d.ts","sourceRoot":"","sources":["../../src/plugin/rpc-handlers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGzE,OAAO,EACH,KAAK,eAAe,IAAI,QAAQ,EAGnC,MAAM,mCAAmC,CAAC;AAc3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAqBlF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAe,eAAe,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AA0FtF,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,qBAAqB,CAAC,EAAE,MAAM,EAK9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,eAAe,CA2VjB;AAED,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,qBAAqB,CAAC,EAAE,MAAM,GAC/B,YAAY,CAyKd;AA4BD;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,qBAAqB,EAChC,IAAI,EAAE;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,gBAAgB,CAAC;CACtC,GACF,IAAI,CAyPN"}
@@ -18,7 +18,7 @@
18
18
  * Bump only when there are user-visible changes worth a startup dialog.
19
19
  * Does NOT need to match the published package version.
20
20
  */
21
- export declare const ANNOUNCEMENT_VERSION = "0.26.0";
21
+ export declare const ANNOUNCEMENT_VERSION = "0.27.0";
22
22
  /**
23
23
  * Short, user-facing bullet strings. Keep each line ~80 chars or shorter so the
24
24
  * TUI dialog renders cleanly without horizontal scroll on a typical terminal.
@@ -1 +1 @@
1
- {"version":3,"file":"announcement.d.ts","sourceRoot":"","sources":["../../src/shared/announcement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAMvD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,qDAAqD,CAAC;AAyBtF;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAGjD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAS1D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAehD"}
1
+ {"version":3,"file":"announcement.d.ts","sourceRoot":"","sources":["../../src/shared/announcement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAoBH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAMvD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,qDAAqD,CAAC;AAyBtF;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAGjD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAS1D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CA0BhD"}
@@ -47,28 +47,50 @@ export declare function getMagicContextHistorianDir(harness?: HarnessId): string
47
47
  /**
48
48
  * Project-local magic-context artifact directory.
49
49
  *
50
- * Layout: `<project-directory>/.magic-context/`
50
+ * Layout: `<project-directory>/.cortexkit/magic-context/`
51
51
  *
52
52
  * Used for artifacts that the historian/recomp pipeline writes during a run
53
53
  * and that the model is asked to read via its native Read tool. OpenCode's
54
54
  * `external_directory` permission system asks the user before reading any
55
55
  * file outside the project directory or its worktree, which interrupts every
56
56
  * historian run when artifacts live under `os.tmpdir()`. Writing under the
57
- * project's own `.magic-context/` subtree falls inside the project boundary
58
- * and never triggers a permission prompt.
57
+ * project's own `.cortexkit/` subtree falls inside the project boundary and
58
+ * never triggers a permission prompt.
59
59
  *
60
- * Using a harness-agnostic name (`/.magic-context/` rather than
61
- * `/.opencode/`) ensures the same path works for both OpenCode and Pi.
60
+ * `.cortexkit/` is the shared CortexKit per-project dir (also holds the
61
+ * project config `magic-context.jsonc`). Because these artifacts are transient
62
+ * debug dumps that shouldn't dirty the user's repo, the first write also drops
63
+ * a fenced-block `.gitignore` entry ignoring this subdir (see
64
+ * ensureCortexKitArtifactGitignore) while leaving `*.jsonc` config tracked.
65
+ *
66
+ * Migration note: artifacts used to live under `.opencode/magic-context/`. We
67
+ * cut the write path forward only — old transient dumps are git-ignored and
68
+ * regenerated, so they are intentionally NOT migrated (left to be cleaned).
62
69
  *
63
70
  * Logger does NOT use this — log files stay in the per-harness tmp subtree
64
71
  * because they are written by the plugin process itself (no model-side Read
65
72
  * tool call, no permission prompt) and span sessions/projects.
66
73
  */
67
74
  export declare function getProjectMagicContextDir(directory: string): string;
75
+ /**
76
+ * Ensure `<project>/.cortexkit/.gitignore` ignores Magic Context's transient
77
+ * artifact subdir (`magic-context/`) without touching anything else in the
78
+ * shared `.cortexkit/` dir — the project config `magic-context.jsonc` stays
79
+ * tracked, and any sibling module's (e.g. AFT's) entries are preserved.
80
+ *
81
+ * Uses the shared CortexKit fenced-block convention: each module owns exactly
82
+ * its `# >>> cortexkit:<module>` … `# <<< cortexkit:<module>` block and appends
83
+ * it idempotently (no-op when its own guard line is already present). This lets
84
+ * multiple cortexkit modules coexist in one `.gitignore` without clobbering.
85
+ *
86
+ * Best-effort: a write failure never blocks an artifact write (the caller
87
+ * already degrades gracefully on its own write failures).
88
+ */
89
+ export declare function ensureCortexKitArtifactGitignore(directory: string): void;
68
90
  /**
69
91
  * Project-local historian artifact directory.
70
92
  *
71
- * Layout: `<project-directory>/.magic-context/historian/`
93
+ * Layout: `<project-directory>/.opencode/magic-context/historian/`
72
94
  *
73
95
  * Used for:
74
96
  * - existing-state offload XMLs that long historian/recomp passes write
@@ -76,9 +98,8 @@ export declare function getProjectMagicContextDir(directory: string): string;
76
98
  * - validation-failure dump XMLs preserved for debugging
77
99
  *
78
100
  * Callers must `mkdirSync(dir, { recursive: true })` before writing — the
79
- * `.magic-context/` parent may not exist on a fresh project, and write
80
- * failures here must degrade gracefully (e.g. historian falls back to inline
81
- * state).
101
+ * `.opencode/` parent may not exist on a fresh project, and write failures
102
+ * here must degrade gracefully (e.g. historian falls back to inline state).
82
103
  */
83
104
  export declare function getProjectMagicContextHistorianDir(directory: string): string;
84
105
  export declare function getOpenCodeStorageDir(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"data-path.d.ts","sourceRoot":"","sources":["../../src/shared/data-path.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAEvD,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,SAAwB,GAAG,MAAM,CAEhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,SAAwB,GAAG,MAAM,CAEhF;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,SAAwB,GAAG,MAAM,CAErF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kCAAkC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED;;;;;;GAMG;AACH,wBAAgB,uCAAuC,IAAI,MAAM,CAEhE;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
1
+ {"version":3,"file":"data-path.d.ts","sourceRoot":"","sources":["../../src/shared/data-path.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAEvD,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,SAAwB,GAAG,MAAM,CAEhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,SAAwB,GAAG,MAAM,CAEhF;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,SAAwB,GAAG,MAAM,CAErF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnE;AAKD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAkBxE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kCAAkC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED;;;;;;GAMG;AACH,wBAAgB,uCAAuC,IAAI,MAAM,CAEhE;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
@@ -1,13 +1,13 @@
1
1
  import type { createOpencodeClient } from "@opencode-ai/sdk";
2
2
  type Client = ReturnType<typeof createOpencodeClient>;
3
- type PromptBody = {
3
+ export type PromptBody = {
4
4
  model?: {
5
5
  providerID: string;
6
6
  modelID: string;
7
7
  };
8
8
  [key: string]: unknown;
9
9
  };
10
- type PromptArgs = {
10
+ export type PromptArgs = {
11
11
  path: {
12
12
  id: string;
13
13
  };
@@ -15,6 +15,21 @@ type PromptArgs = {
15
15
  signal?: AbortSignal;
16
16
  [key: string]: unknown;
17
17
  };
18
+ export interface PromptAttemptInfo {
19
+ /** Human-readable model label used in logs ("primary" or "provider/model"). */
20
+ label: string;
21
+ /** Zero-based attempt index: 0 is primary, 1+ are fallback models. */
22
+ attemptIndex: number;
23
+ /** True for configured fallback models, false for the primary attempt. */
24
+ isFallback: boolean;
25
+ /** Total attempted models including the primary and all configured fallbacks. */
26
+ totalAttempts: number;
27
+ /** Explicit model override for this attempt, when one was supplied. */
28
+ model?: {
29
+ providerID: string;
30
+ modelID: string;
31
+ };
32
+ }
18
33
  export interface PromptRetryOptions {
19
34
  timeoutMs?: number;
20
35
  /** External abort signal — cancels the in-flight LLM prompt immediately when aborted */
@@ -43,6 +58,24 @@ export interface PromptRetryOptions {
43
58
  */
44
59
  callContext?: string;
45
60
  }
61
+ export interface ValidatedPromptRetryOptions<TOutput, TValidated> extends PromptRetryOptions {
62
+ /**
63
+ * Fetch the output produced by the just-completed prompt attempt. This is
64
+ * intentionally caller-owned because OpenCode exposes results via session
65
+ * messages and each caller validates a different shape.
66
+ */
67
+ fetchOutput: (args: PromptArgs, attempt: PromptAttemptInfo) => Promise<TOutput>;
68
+ /**
69
+ * Validate and optionally transform the fetched output. Throw to reject this
70
+ * model's output and advance to the next configured fallback model.
71
+ */
72
+ validateOutput: (output: TOutput, attempt: PromptAttemptInfo) => TValidated | Promise<TValidated>;
73
+ }
74
+ export interface ValidatedPromptRetryResult<TOutput, TValidated> {
75
+ output: TOutput;
76
+ validated: TValidated;
77
+ attempt: PromptAttemptInfo;
78
+ }
46
79
  export interface ModelSuggestionInfo {
47
80
  providerID: string;
48
81
  modelID: string;
@@ -64,5 +97,18 @@ export declare function parseModelSuggestion(error: unknown): ModelSuggestionInf
64
97
  * been updated to thread a chain.
65
98
  */
66
99
  export declare function promptSyncWithModelSuggestionRetry(client: Client, args: PromptArgs, options?: PromptRetryOptions): Promise<void>;
100
+ /**
101
+ * Run a prompt with model fallback support, but accept an attempt only after the
102
+ * caller validates the model's actual output. This covers "empty success" cases
103
+ * where the provider/OpenCode prompt call completes successfully but the subagent
104
+ * produced no usable assistant text / JSON.
105
+ *
106
+ * The happy path is still one prompt + one caller-owned output fetch: callers
107
+ * should use the returned output instead of fetching messages a second time.
108
+ * Validation failures are retryable across configured fallback models. If every
109
+ * attempt produces invalid output (or otherwise fails retryably), the first
110
+ * failure is re-thrown so callers surface the original failure semantics.
111
+ */
112
+ export declare function promptSyncWithValidatedOutputRetry<TOutput, TValidated = TOutput>(client: Client, args: PromptArgs, options: ValidatedPromptRetryOptions<TOutput, TValidated>): Promise<ValidatedPromptRetryResult<TOutput, TValidated>>;
67
113
  export {};
68
114
  //# sourceMappingURL=model-suggestion-retry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-suggestion-retry.d.ts","sourceRoot":"","sources":["../../src/shared/model-suggestion-retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAM7D,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEtD,KAAK,UAAU,GAAG;IACd,KAAK,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B,CAAC;AAEF,KAAK,UAAU,GAAG;IACd,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,kBAAkB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wFAAwF;IACxF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;;;;;;;;;OAcG;IACH,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACtB;AAiBD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CA4C/E;AA6JD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kCAAkC,CACpD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,kBAAuB,GACjC,OAAO,CAAC,IAAI,CAAC,CAgFf"}
1
+ {"version":3,"file":"model-suggestion-retry.d.ts","sourceRoot":"","sources":["../../src/shared/model-suggestion-retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAM7D,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAOtD,MAAM,MAAM,UAAU,GAAG;IACrB,KAAK,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACrB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAC9B,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,UAAU,EAAE,OAAO,CAAC;IACpB,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,KAAK,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAED,MAAM,WAAW,kBAAkB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wFAAwF;IACxF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;;;;;;;;;OAcG;IACH,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B,CAAC,OAAO,EAAE,UAAU,CAAE,SAAQ,kBAAkB;IACxF;;;;OAIG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChF;;;OAGG;IACH,cAAc,EAAE,CACZ,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,iBAAiB,KACzB,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,0BAA0B,CAAC,OAAO,EAAE,UAAU;IAC3D,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,UAAU,CAAC;IACtB,OAAO,EAAE,iBAAiB,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACtB;AAiBD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CA4C/E;AAqKD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kCAAkC,CACpD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,kBAAuB,GACjC,OAAO,CAAC,IAAI,CAAC,CAgFf;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAsB,kCAAkC,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,EAClF,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,2BAA2B,CAAC,OAAO,EAAE,UAAU,CAAC,GAC1D,OAAO,CAAC,0BAA0B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAgG1D"}
@@ -59,6 +59,29 @@ export declare function refreshModelLimitsFromApi(client: OpencodeClientLike, op
59
59
  retries?: number;
60
60
  retryDelayMs?: number;
61
61
  }): Promise<void>;
62
+ /**
63
+ * Re-warm the limit cache ONCE per process, after auth is provably live.
64
+ *
65
+ * The startup warm (index.ts) can run before the user's provider auth is
66
+ * loaded. When it does, an auth-conditional limit patch hasn't applied yet, so
67
+ * `config.providers()` returns the RAW catalog limit (e.g. OpenAI gpt-5.5 OAuth
68
+ * is downshifted to a 272k input cap by OpenCode's Codex auth plugin only when
69
+ * `ctx.auth.type === "oauth"`; before auth loads it reports the raw 922k). That
70
+ * too-high value gets cached AND persisted as last-known-good, survives
71
+ * restarts, and the existing recovery only re-resolves a too-LOW limit
72
+ * (overflow / `percentage > 100`), so a too-HIGH one never self-corrects: the
73
+ * sidebar shows huge headroom while the backend rejects at the real cap (#179).
74
+ *
75
+ * The first `message.updated` carrying usage tokens proves a request succeeded,
76
+ * so auth + providers are fully resolved. Re-warming there overwrites any stale
77
+ * pre-auth limit with the live auth-adjusted one. Idempotent and cheap: a single
78
+ * `config.providers()` round-trip, then a no-op for the rest of the process. The
79
+ * latch is set before the await so concurrent `message.updated` events don't
80
+ * stack duplicate warms; a failed warm resets it so a later message retries.
81
+ */
82
+ export declare function refreshModelLimitsAfterAuthOnce(client: OpencodeClientLike): Promise<void>;
83
+ /** Test-only: reset the after-auth re-warm latch between cases. */
84
+ export declare function resetAuthRewarmLatchForTest(): void;
62
85
  /**
63
86
  * Resolve a model's prompt limit from OpenCode's SDK (`config.providers()`),
64
87
  * the single source of truth: it already merges models.dev + compiled-in
@@ -1 +1 @@
1
- {"version":3,"file":"models-dev-cache.d.ts","sourceRoot":"","sources":["../../src/shared/models-dev-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAQH,UAAU,kBAAkB;IACxB,MAAM,EAAE;QACJ,SAAS,EAAE,MAAM,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE;gBAAE,SAAS,CAAC,EAAE,OAAO,CAAA;aAAE,CAAA;SAAE,CAAC,CAAC;KAChE,CAAC;CACL;AASD,eAAO,MAAM,cAAc,QAAS,CAAC;AACrC,eAAO,MAAM,cAAc,UAAY,CAAC;AAExC;;kFAEkF;AAClF,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,IAAI,MAAM,CAEtE;AA+HD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,yBAAyB,CAC3C,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD,OAAO,CAAC,IAAI,CAAC,CAUf;AA+DD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI1F;AA6BD,gFAAgF;AAChF,wBAAgB,mBAAmB,IAAI,IAAI,CAI1C;AAED,oDAAoD;AACpD,wBAAgB,sBAAsB,IAAI;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB,CAMA"}
1
+ {"version":3,"file":"models-dev-cache.d.ts","sourceRoot":"","sources":["../../src/shared/models-dev-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAQH,UAAU,kBAAkB;IACxB,MAAM,EAAE;QACJ,SAAS,EAAE,MAAM,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE;gBAAE,SAAS,CAAC,EAAE,OAAO,CAAA;aAAE,CAAA;SAAE,CAAC,CAAC;KAChE,CAAC;CACL;AASD,eAAO,MAAM,cAAc,QAAS,CAAC;AACrC,eAAO,MAAM,cAAc,UAAY,CAAC;AAExC;;kFAEkF;AAClF,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,IAAI,MAAM,CAEtE;AA+HD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,yBAAyB,CAC3C,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD,OAAO,CAAC,IAAI,CAAC,CAUf;AAKD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,+BAA+B,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAK/F;AAED,mEAAmE;AACnE,wBAAgB,2BAA2B,IAAI,IAAI,CAElD;AA+DD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI1F;AA6BD,gFAAgF;AAChF,wBAAgB,mBAAmB,IAAI,IAAI,CAI1C;AAED,oDAAoD;AACpD,wBAAgB,sBAAsB,IAAI;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB,CAMA"}
@@ -0,0 +1,7 @@
1
+ export declare function isSecretKey(key: string): boolean;
2
+ export declare function sanitizePathString(value: string): string;
3
+ export declare function redactSecretText(value: string): string;
4
+ export declare function sanitizeDiagnosticText(value: string): string;
5
+ export declare function hasShareabilitySensitiveText(text: string): boolean;
6
+ export declare function sanitizeConfigValue(value: unknown, keyPath?: string[]): unknown;
7
+ //# sourceMappingURL=redaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../src/shared/redaction.ts"],"names":[],"mappings":"AAyEA,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAkChD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAcxD;AA0ED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAatD;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5D;AAsBD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOlE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,MAAM,EAAO,GAAG,OAAO,CAkBnF"}
@@ -29,4 +29,16 @@ export declare function parseProviderModel(spec: string): {
29
29
  providerID: string;
30
30
  modelID: string;
31
31
  } | null;
32
+ /**
33
+ * Build the `{ model: { providerID, modelID } }` fragment for an OpenCode prompt
34
+ * body from a `provider/model` spec string, or `{}` when the spec is absent or
35
+ * unparseable (the session falls back to its default model). Spread into a
36
+ * `client.session.prompt` body.
37
+ */
38
+ export declare function modelBodyField(spec: string | undefined): {
39
+ model?: {
40
+ providerID: string;
41
+ modelID: string;
42
+ };
43
+ };
32
44
  //# sourceMappingURL=resolve-fallbacks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-fallbacks.d.ts","sourceRoot":"","sources":["../../src/shared/resolve-fallbacks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAChC,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,GACtD,MAAM,EAAE,CAGV;AA2BD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAO/F"}
1
+ {"version":3,"file":"resolve-fallbacks.d.ts","sourceRoot":"","sources":["../../src/shared/resolve-fallbacks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAChC,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,GACtD,MAAM,EAAE,CAGV;AA2BD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAO/F;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG;IACtD,KAAK,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD,CAIA"}
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-server.d.ts","sourceRoot":"","sources":["../../src/shared/rpc-server.ts"],"names":[],"mappings":"AAcA,KAAK,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAexF,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAc;IAK/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;gBAE7C,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKjD,sCAAsC;IACtC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAIjD,6DAA6D;IACvD,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IA2D9B,OAAO,CAAC,uBAAuB;IAgB/B,8CAA8C;IAC9C,IAAI,IAAI,IAAI;IAYZ,OAAO,CAAC,QAAQ;CA6EnB"}
1
+ {"version":3,"file":"rpc-server.d.ts","sourceRoot":"","sources":["../../src/shared/rpc-server.ts"],"names":[],"mappings":"AAgBA,KAAK,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAexF,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAc;IAK/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;gBAE7C,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKjD,sCAAsC;IACtC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAIjD,6DAA6D;IACvD,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAiF9B,OAAO,CAAC,uBAAuB;IAgB/B,8CAA8C;IAC9C,IAAI,IAAI,IAAI;IAYZ,OAAO,CAAC,QAAQ;CA6EnB"}
@@ -122,6 +122,8 @@ export interface StatusDetail extends SidebarSnapshot {
122
122
  historyBlockTokens: number;
123
123
  compressionBudget: number | null;
124
124
  compressionUsage: string | null;
125
+ /** Effective configured toast duration in ms after config resolution. */
126
+ toastDurationMs: number;
125
127
  }
126
128
  /** Embedding coverage for `/ctx-embed` status (mirrors getEmbeddingCoverageStatus). */
127
129
  export interface EmbedDetail {
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-types.d.ts","sourceRoot":"","sources":["../../src/shared/rpc-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc-types.d.ts","sourceRoot":"","sources":["../../src/shared/rpc-types.ts"],"names":[],"mappings":"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"}