@wrongstack/core 0.313.0 → 0.316.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 (343) hide show
  1. package/dist/chronicle/index.js +84 -6391
  2. package/dist/chronicle/legacy-journal-import.d.ts +0 -6
  3. package/dist/chronicle/metrics-ingest.d.ts +14 -0
  4. package/dist/chronicle/metrics-schema.d.ts +10 -1
  5. package/dist/chronicle/metrics-store.d.ts +20 -2
  6. package/dist/chronicle/project-server.js +98 -4874
  7. package/dist/chronicle/sink.d.ts +13 -0
  8. package/dist/chronicle/sqlite-journal.d.ts +20 -2
  9. package/dist/chunk-25LSLC3G.js +334 -0
  10. package/dist/chunk-27QIURLN.js +1073 -0
  11. package/dist/chunk-2FK4WTFF.js +207 -0
  12. package/dist/chunk-2YU4WVBW.js +134 -0
  13. package/dist/chunk-3AGWVSS7.js +4608 -0
  14. package/dist/chunk-3BDV7RL3.js +211 -0
  15. package/dist/chunk-3ECENVHL.js +325 -0
  16. package/dist/chunk-3XPVB7BA.js +135 -0
  17. package/dist/chunk-45WI72ZB.js +16884 -0
  18. package/dist/chunk-4BMVPOHO.js +3748 -0
  19. package/dist/chunk-4I7HGVVA.js +363 -0
  20. package/dist/chunk-4LCZVJVF.js +317 -0
  21. package/dist/chunk-4SJNS7OB.js +217 -0
  22. package/dist/chunk-4VWO3ZXL.js +342 -0
  23. package/dist/chunk-57GEWK5X.js +26 -0
  24. package/dist/chunk-5BMIE7QG.js +46 -0
  25. package/dist/chunk-5S437PRC.js +50 -0
  26. package/dist/chunk-5XDUGTKN.js +511 -0
  27. package/dist/chunk-5YPSXQXM.js +1443 -0
  28. package/dist/chunk-6FHWXLPT.js +10 -0
  29. package/dist/chunk-6H5GEOET.js +2406 -0
  30. package/dist/chunk-6NWEVFEL.js +151 -0
  31. package/dist/chunk-AYW5YINX.js +58 -0
  32. package/dist/chunk-B4AMLZPB.js +9 -0
  33. package/dist/chunk-B7F4WVP4.js +65 -0
  34. package/dist/chunk-BJHVULHO.js +55 -0
  35. package/dist/chunk-BPBKKBUK.js +2085 -0
  36. package/dist/chunk-BYD345OX.js +589 -0
  37. package/dist/chunk-C27KDLOX.js +279 -0
  38. package/dist/chunk-CU546ESW.js +597 -0
  39. package/dist/chunk-DLHHXUAM.js +172 -0
  40. package/dist/chunk-DOTHQSJ2.js +429 -0
  41. package/dist/chunk-DYLPMV4Q.js +711 -0
  42. package/dist/chunk-EODDVJBM.js +82 -0
  43. package/dist/chunk-F3JWNST7.js +361 -0
  44. package/dist/chunk-FC2ZGRF3.js +140 -0
  45. package/dist/chunk-FCBTO76Z.js +5786 -0
  46. package/dist/chunk-FHZVFYSL.js +396 -0
  47. package/dist/chunk-FNXVT7HF.js +52 -0
  48. package/dist/chunk-FWNLEZYG.js +259 -0
  49. package/dist/chunk-FXQLIX3K.js +211 -0
  50. package/dist/chunk-G5S3S5ZN.js +38 -0
  51. package/dist/chunk-GDQ7CZRQ.js +116 -0
  52. package/dist/chunk-GJJGJB2R.js +1374 -0
  53. package/dist/chunk-GTCU6DZ3.js +1 -0
  54. package/dist/chunk-HA4ZYA6T.js +178 -0
  55. package/dist/chunk-HI3JGZR2.js +188 -0
  56. package/dist/chunk-HMLIGAU7.js +395 -0
  57. package/dist/chunk-HXKZ7OBQ.js +303 -0
  58. package/dist/chunk-I7DALG7J.js +292 -0
  59. package/dist/chunk-IRUTEHCE.js +960 -0
  60. package/dist/chunk-IYFBFX34.js +86 -0
  61. package/dist/chunk-J2WRWR37.js +1104 -0
  62. package/dist/chunk-JFPJ6LLQ.js +129 -0
  63. package/dist/chunk-JMULFFLN.js +9 -0
  64. package/dist/chunk-JO4MGB6Z.js +1264 -0
  65. package/dist/chunk-JVKB2TBL.js +48 -0
  66. package/dist/chunk-JX7VBZDK.js +31 -0
  67. package/dist/chunk-K6BXGITA.js +931 -0
  68. package/dist/chunk-KDQJCT2J.js +45 -0
  69. package/dist/chunk-KJ2ZTQSL.js +47 -0
  70. package/dist/chunk-KZMSZV32.js +187 -0
  71. package/dist/chunk-LA7CLDRW.js +129 -0
  72. package/dist/chunk-LHOA5DWA.js +28 -0
  73. package/dist/chunk-LSMMOS2Z.js +119 -0
  74. package/dist/chunk-LX5QWLBL.js +27 -0
  75. package/dist/chunk-LXWCMQNJ.js +789 -0
  76. package/dist/chunk-M27LIEKV.js +2829 -0
  77. package/dist/chunk-MJPHJRAL.js +663 -0
  78. package/dist/chunk-MTL4O5YR.js +228 -0
  79. package/dist/chunk-NDBIPFNY.js +102 -0
  80. package/dist/chunk-NEMIWEXC.js +1199 -0
  81. package/dist/chunk-NHJ75HXY.js +1 -0
  82. package/dist/chunk-NIOAGFPB.js +1510 -0
  83. package/dist/chunk-NS52ISWS.js +355 -0
  84. package/dist/chunk-NSOFPKGT.js +5352 -0
  85. package/dist/chunk-NVIZG63R.js +757 -0
  86. package/dist/chunk-O37BQ65S.js +21 -0
  87. package/dist/chunk-OOYZPOXM.js +308 -0
  88. package/dist/chunk-OSGLYW5J.js +28 -0
  89. package/dist/chunk-PFCMSSUF.js +1640 -0
  90. package/dist/chunk-PFZO3C6H.js +14 -0
  91. package/dist/chunk-PGRVXIMY.js +158 -0
  92. package/dist/chunk-PHH7LD45.js +113 -0
  93. package/dist/chunk-PISBFBJN.js +109 -0
  94. package/dist/chunk-POOOIWE5.js +9 -0
  95. package/dist/chunk-PQNS3U7Z.js +1240 -0
  96. package/dist/chunk-QSTSJOCK.js +402 -0
  97. package/dist/chunk-RFQMOKWK.js +282 -0
  98. package/dist/chunk-RJIZEJ42.js +30 -0
  99. package/dist/chunk-RTOTNK3P.js +484 -0
  100. package/dist/chunk-RXKSDUAU.js +1172 -0
  101. package/dist/chunk-S45JPKQN.js +3317 -0
  102. package/dist/chunk-SAFHACFA.js +152 -0
  103. package/dist/chunk-SQJVFEBV.js +41 -0
  104. package/dist/chunk-SVT4RNTR.js +49 -0
  105. package/dist/chunk-SWUFN7XM.js +43 -0
  106. package/dist/chunk-SXMVYC5H.js +174 -0
  107. package/dist/chunk-SZ6AYUIZ.js +23 -0
  108. package/dist/chunk-TBRL2RCC.js +9 -0
  109. package/dist/chunk-TCCHINEF.js +655 -0
  110. package/dist/chunk-THEGTRAG.js +316 -0
  111. package/dist/chunk-TR4LQE7L.js +2256 -0
  112. package/dist/chunk-TRT2HRWZ.js +18 -0
  113. package/dist/chunk-TWJMGXCI.js +900 -0
  114. package/dist/chunk-U45AXT5D.js +1023 -0
  115. package/dist/chunk-U4FWBSO3.js +509 -0
  116. package/dist/chunk-UBGDX6FI.js +147 -0
  117. package/dist/chunk-UJILKYES.js +75 -0
  118. package/dist/chunk-ULMAQV3T.js +234 -0
  119. package/dist/chunk-VVBP6KGT.js +9 -0
  120. package/dist/chunk-W5VITDM2.js +168 -0
  121. package/dist/chunk-WAHQVNWT.js +194 -0
  122. package/dist/chunk-WBPVKEEE.js +227 -0
  123. package/dist/chunk-WGGYRBXH.js +5434 -0
  124. package/dist/chunk-WLYKU45P.js +5770 -0
  125. package/dist/chunk-WP7BVANJ.js +53 -0
  126. package/dist/chunk-WQQON3SV.js +473 -0
  127. package/dist/chunk-WQTOVMGV.js +119 -0
  128. package/dist/chunk-XBDP4QPW.js +7 -0
  129. package/dist/chunk-XEBHSJLT.js +103 -0
  130. package/dist/chunk-XF4VUMKW.js +231 -0
  131. package/dist/chunk-XQ2ECNK3.js +1 -0
  132. package/dist/chunk-Y5YXDM7D.js +74 -0
  133. package/dist/chunk-YOPAUVU4.js +2588 -0
  134. package/dist/chunk-YPT4A46F.js +362 -0
  135. package/dist/chunk-YWXT3JNM.js +425 -0
  136. package/dist/chunk-YY6APYUM.js +49 -0
  137. package/dist/chunk-Z2IJUO45.js +691 -0
  138. package/dist/chunk-ZHZ2Y2DH.js +1643 -0
  139. package/dist/chunk-ZT7JNIGX.js +152 -0
  140. package/dist/coordination/agent-monitor.d.ts +9 -1
  141. package/dist/coordination/agent-subagent-runner.d.ts +1 -1
  142. package/dist/coordination/agents/agent-prompts.d.ts +8 -0
  143. package/dist/coordination/agents/index.d.ts +33 -1
  144. package/dist/coordination/agents/index.js +184 -6269
  145. package/dist/coordination/agents/phase3-wave1-platform.d.ts +1 -3
  146. package/dist/coordination/agents/phase3-wave2-meta.d.ts +1 -3
  147. package/dist/coordination/agents/phase8-wave3-products.d.ts +1 -3
  148. package/dist/coordination/agents/phase9-wave4-platform-meta.d.ts +1 -3
  149. package/dist/coordination/agents/project-agent-identity.d.ts +11 -11
  150. package/dist/coordination/agents/types.d.ts +13 -2
  151. package/dist/coordination/brain-monitor.d.ts +30 -7
  152. package/dist/coordination/collab-debug.d.ts +1 -1
  153. package/dist/coordination/collab-pause.d.ts +1 -1
  154. package/dist/coordination/delegate-tool.d.ts +7 -5
  155. package/dist/coordination/director-kanban-queue-helpers.d.ts +1 -0
  156. package/dist/coordination/director-options.d.ts +7 -0
  157. package/dist/coordination/director-spawn-model.d.ts +17 -0
  158. package/dist/coordination/director-tools.d.ts +2 -2
  159. package/dist/coordination/director.d.ts +12 -0
  160. package/dist/coordination/dispatcher.d.ts +8 -0
  161. package/dist/coordination/fleet-bus.d.ts +35 -4
  162. package/dist/coordination/fleet-supervisor.d.ts +10 -2
  163. package/dist/coordination/fleet.d.ts +16 -7
  164. package/dist/coordination/index.d.ts +4 -0
  165. package/dist/coordination/index.js +402 -34324
  166. package/dist/coordination/kanban-dispatch-port.d.ts +2 -2
  167. package/dist/coordination/mailbox-http-router.d.ts +4 -3
  168. package/dist/coordination/mailbox-http-validation.d.ts +1 -1
  169. package/dist/coordination/mailbox-project-server.js +48 -3276
  170. package/dist/coordination/mailbox-types.d.ts +24 -6
  171. package/dist/coordination/model-tier-leader.d.ts +122 -0
  172. package/dist/coordination/model-tier.d.ts +122 -0
  173. package/dist/coordination/multi-agent-coordinator.d.ts +24 -0
  174. package/dist/coordination/origin-session.d.ts +16 -0
  175. package/dist/coordination/provider-status-tracker.d.ts +41 -5
  176. package/dist/coordination/session-note-hub.d.ts +44 -0
  177. package/dist/coordination/session-note-tool.d.ts +10 -0
  178. package/dist/core/agent.d.ts +15 -2
  179. package/dist/core/context.d.ts +22 -3
  180. package/dist/core/index.d.ts +2 -0
  181. package/dist/core/index.js +239 -12360
  182. package/dist/core/model-ref.js +5 -23
  183. package/dist/core/provider-runner.d.ts +36 -1
  184. package/dist/core/request-conversation-binding.d.ts +37 -0
  185. package/dist/core/session-notes.d.ts +25 -0
  186. package/dist/core/system-prompt-builder.d.ts +11 -2
  187. package/dist/core/system-prompt-variants.d.ts +78 -0
  188. package/dist/design/index.js +50 -1087
  189. package/dist/execution/auto-compaction-middleware.d.ts +11 -0
  190. package/dist/execution/autonomy-brain.d.ts +2 -1
  191. package/dist/execution/autonomy-prompt-contributor.d.ts +7 -2
  192. package/dist/execution/compaction-core.d.ts +4 -4
  193. package/dist/execution/eternal-autonomy.d.ts +1 -1
  194. package/dist/execution/index.d.ts +1 -1
  195. package/dist/execution/index.js +1615 -21895
  196. package/dist/execution/model-runtime.d.ts +0 -7
  197. package/dist/execution/parallel-eternal-engine.d.ts +7 -7
  198. package/dist/execution/prompt-enhancer.js +16 -535
  199. package/dist/execution/retry-policy.d.ts +31 -1
  200. package/dist/extension/index.js +7 -311
  201. package/dist/goal/index.js +33 -3435
  202. package/dist/hooks/index.js +14 -1138
  203. package/dist/hq/index.js +114 -5139
  204. package/dist/hq/persistence/event-log.d.ts +0 -1
  205. package/dist/hq/persistence.d.ts +4 -4
  206. package/dist/hq/protocol.js +21 -668
  207. package/dist/hq/publisher.d.ts +2 -0
  208. package/dist/index.d.ts +14 -11
  209. package/dist/index.js +1502 -92655
  210. package/dist/infrastructure/index.d.ts +4 -4
  211. package/dist/infrastructure/index.js +504 -5230
  212. package/dist/infrastructure/token-counter.d.ts +9 -0
  213. package/dist/kernel/events/agent-events.d.ts +77 -3
  214. package/dist/kernel/events/brain-events.d.ts +12 -0
  215. package/dist/kernel/events/provider-events.d.ts +22 -1
  216. package/dist/kernel/events/session-events.d.ts +14 -0
  217. package/dist/kernel/events/tool-events.d.ts +13 -0
  218. package/dist/kernel/index.js +14 -992
  219. package/dist/mailbox-attach.d.ts +1 -1
  220. package/dist/models/index.js +41 -1117
  221. package/dist/notifications/index.js +3 -108
  222. package/dist/observability/event-bridge.d.ts +25 -5
  223. package/dist/observability/index.d.ts +9 -8
  224. package/dist/observability/index.js +477 -631
  225. package/dist/observability/tool-usage-source.d.ts +65 -0
  226. package/dist/plugin/index.d.ts +5 -0
  227. package/dist/plugin/index.js +600 -14835
  228. package/dist/plugins/auto-review-plugin.d.ts +3 -2
  229. package/dist/plugins/review-finding-commands.d.ts +0 -8
  230. package/dist/plugins/review-finding-store.js +22 -0
  231. package/dist/plugins/review-finding-types.js +19 -0
  232. package/dist/plugins/review-report-integration.js +21 -0
  233. package/dist/plugins/review-report-store.js +20 -0
  234. package/dist/plugins/review-report-types.js +13 -0
  235. package/dist/prompts/index.js +14 -948
  236. package/dist/registry/index.js +9 -822
  237. package/dist/registry/tool-registry.d.ts +59 -9
  238. package/dist/registry-7N4O3E7W.js +14 -0
  239. package/dist/replay/index.js +6 -84
  240. package/dist/security/capabilities.d.ts +6 -0
  241. package/dist/security/file-permissions.d.ts +1 -1
  242. package/dist/security/index.js +161 -2235
  243. package/dist/security/permission-policy.d.ts +12 -1
  244. package/dist/security/secret-scrubber.d.ts +15 -0
  245. package/dist/session-catalog/index.d.ts +1 -0
  246. package/dist/session-catalog/index.js +41 -2103
  247. package/dist/session-catalog/project-server.js +59 -1435
  248. package/dist/session-catalog/protocol.d.ts +32 -1
  249. package/dist/session-catalog/registry.d.ts +17 -1
  250. package/dist/session-catalog/session-agents.d.ts +56 -0
  251. package/dist/session-catalog/store-rebuild.d.ts +14 -0
  252. package/dist/session-catalog/store-schema.d.ts +26 -0
  253. package/dist/session-catalog/store.d.ts +27 -1
  254. package/dist/session-note-attach.d.ts +9 -0
  255. package/dist/skills/index.js +35 -1578
  256. package/dist/statusline/index.d.ts +43 -0
  257. package/dist/statusline/index.js +102 -0
  258. package/dist/storage/board-store-port.d.ts +2 -2
  259. package/dist/storage/config-loader/in-project-policy.d.ts +29 -0
  260. package/dist/storage/config-loader.d.ts +3 -2
  261. package/dist/storage/file-session-writer.d.ts +4 -2
  262. package/dist/storage/goal-coordination.d.ts +6 -1
  263. package/dist/storage/goal-kanban.d.ts +4 -1
  264. package/dist/storage/index.d.ts +12 -4
  265. package/dist/storage/index.js +198 -15601
  266. package/dist/storage/input-history-store.d.ts +2 -4
  267. package/dist/storage/memory-curator.d.ts +133 -0
  268. package/dist/storage/session-agent-attribution.d.ts +39 -0
  269. package/dist/storage/session-doctor.d.ts +109 -0
  270. package/dist/storage/session-event-bridge.d.ts +5 -7
  271. package/dist/storage/session-outcome.d.ts +42 -0
  272. package/dist/storage/session-recovery.d.ts +55 -0
  273. package/dist/storage/session-store/load-session-data.d.ts +11 -0
  274. package/dist/storage/session-store/prune-helpers.d.ts +1 -1
  275. package/dist/storage/session-store/resume-session.d.ts +0 -2
  276. package/dist/storage/session-store/types.d.ts +8 -0
  277. package/dist/storage/session-store.d.ts +3 -3
  278. package/dist/storage/session-summary-tracker.d.ts +8 -1
  279. package/dist/storage/session-write-buffer.d.ts +18 -0
  280. package/dist/storage/session-writer-truncate.d.ts +2 -0
  281. package/dist/tasking/index.js +10 -676
  282. package/dist/tools/fallback-manage-tools.d.ts +6 -4
  283. package/dist/tools/index.js +52 -9590
  284. package/dist/tools/model-tier-set-tool.d.ts +66 -0
  285. package/dist/types/agent-bridge.d.ts +2 -1
  286. package/dist/types/config/autonomy.d.ts +5 -0
  287. package/dist/types/config/mcp-features.d.ts +7 -0
  288. package/dist/types/config/model-tiers.d.ts +148 -0
  289. package/dist/types/config/root.d.ts +9 -0
  290. package/dist/types/config/tools.d.ts +73 -0
  291. package/dist/types/config/ui.d.ts +1 -1
  292. package/dist/types/config.d.ts +1 -0
  293. package/dist/types/context.d.ts +2 -0
  294. package/dist/types/default-config.d.ts +6 -0
  295. package/dist/types/errors.d.ts +20 -1
  296. package/dist/types/index.d.ts +11 -9
  297. package/dist/types/index.js +131 -1342
  298. package/dist/types/multi-agent.d.ts +43 -0
  299. package/dist/types/plugin.d.ts +1 -1
  300. package/dist/types/provider-runner.d.ts +8 -0
  301. package/dist/types/provider.d.ts +15 -0
  302. package/dist/types/runtime-capability-manifest.d.ts +1 -1
  303. package/dist/types/secret-scrubber.d.ts +15 -0
  304. package/dist/types/session-markers.d.ts +37 -10
  305. package/dist/types/session-markers.js +8 -144
  306. package/dist/types/session-timeline.d.ts +197 -0
  307. package/dist/types/session-timeline.js +12 -0
  308. package/dist/types/session.d.ts +172 -11
  309. package/dist/types/system-prompt.d.ts +27 -0
  310. package/dist/utils/config-backup.d.ts +9 -1
  311. package/dist/utils/error.js +3 -4
  312. package/dist/utils/expect-defined.js +3 -9
  313. package/dist/utils/heap-watchdog.js +6 -706
  314. package/dist/utils/index.js +271 -5685
  315. package/dist/utils/message-invariants.d.ts +4 -1
  316. package/dist/utils/regex-guard.d.ts +1 -1
  317. package/dist/utils/sage-output-block.js +5 -42
  318. package/dist/utils/socket-path.d.ts +1 -1
  319. package/dist/utils/token-estimate.d.ts +6 -2
  320. package/dist/utils/wstack-paths.d.ts +2 -0
  321. package/dist/wiring/proxy-rewrite.d.ts +46 -0
  322. package/dist/wiring/proxy-rewrite.js +24 -121
  323. package/dist/worktree/index.js +6 -887
  324. package/instructions/agents/explore-companion.md +45 -18
  325. package/instructions/agents/memory-curator.md +34 -22
  326. package/instructions/coordination/director-preamble.md +12 -7
  327. package/instructions/coordination/subagent-baseline.md +26 -5
  328. package/instructions/leader-after-task.md +4 -1
  329. package/instructions/llm/chimera-review.md +30 -9
  330. package/instructions/llm/memory-curator.md +31 -0
  331. package/instructions/sections/tool/delegation-compact.md +2 -0
  332. package/instructions/sections/tool/delegation-full.md +5 -1
  333. package/instructions/sections/tool/mailbox-compact.md +5 -1
  334. package/instructions/sections/tool/mailbox-full.md +3 -0
  335. package/instructions/sections/tool/session-note-compact.md +3 -0
  336. package/instructions/sections/tool/session-note-full.md +15 -0
  337. package/instructions/system-lite.md +9 -4
  338. package/instructions/system-pro.md +66 -143
  339. package/instructions/system.md +73 -175
  340. package/package.json +32 -4
  341. package/dist/coordination/agents.d.ts +0 -8
  342. package/dist/coordination/transport.d.ts +0 -2
  343. package/dist/storage/session-writer/session-writer-summary-tracker.d.ts +0 -28
@@ -1,26 +1,8 @@
1
- // src/core/model-ref.ts
2
- function parseModelRef(ref) {
3
- const trimmed = ref.trim();
4
- const slash = trimmed.indexOf("/");
5
- if (slash !== -1) {
6
- return {
7
- provider: trimmed.slice(0, slash) || void 0,
8
- model: trimmed.slice(slash + 1).trim()
9
- };
10
- }
11
- const parts = trimmed.split(/\s+/);
12
- if (parts.length >= 2) {
13
- return { provider: parts[0], model: parts.slice(1).join(" ") };
14
- }
15
- return { model: trimmed };
16
- }
17
- function formatModelRef(ref, defaultProvider) {
18
- const provider = ref.provider ?? defaultProvider;
19
- return provider ? `${provider}/${ref.model}` : ref.model;
20
- }
21
- function normalizeModelRef(ref, defaultProvider) {
22
- return formatModelRef(parseModelRef(ref), defaultProvider);
23
- }
1
+ import {
2
+ formatModelRef,
3
+ normalizeModelRef,
4
+ parseModelRef
5
+ } from "../chunk-RJIZEJ42.js";
24
6
  export {
25
7
  formatModelRef,
26
8
  normalizeModelRef,
@@ -1,9 +1,10 @@
1
+ import type { ProviderModelStatusTracker } from '../coordination/provider-status-tracker.js';
1
2
  import type { EventBus } from '../kernel/events.js';
3
+ import type { AgentContext } from '../types/context.js';
2
4
  import type { Logger } from '../types/logger.js';
3
5
  import type { Tracer } from '../types/observability.js';
4
6
  import type { Provider, Request, Response } from '../types/provider.js';
5
7
  import type { RetryPolicy } from '../types/retry-policy.js';
6
- import type { AgentContext } from '../types/context.js';
7
8
  export interface RunProviderOptions {
8
9
  provider: Provider;
9
10
  request: Request;
@@ -13,12 +14,46 @@ export interface RunProviderOptions {
13
14
  retry: RetryPolicy;
14
15
  logger: Logger;
15
16
  tracer?: Tracer | undefined;
17
+ /**
18
+ * Shared provider/model waiting room. When present this runner refuses to
19
+ * put a quarantined (provider, model) pair on the wire and reports every
20
+ * wire outcome back into it. See {@link runProviderWithRetry}.
21
+ */
22
+ statusTracker?: ProviderModelStatusTracker | undefined;
16
23
  }
24
+ /**
25
+ * Marks a ProviderError whose failure has already been written to the waiting
26
+ * room, so an outer layer (the `fallback-model` extension) does not count the
27
+ * same wire failure twice. `Symbol.for` because the error crosses esbuild
28
+ * subpath-bundle boundaries where class identity is not preserved.
29
+ */
30
+ export declare const PROVIDER_FAILURE_TRACKED: unique symbol;
31
+ /** True when a previous layer already recorded this error in the waiting room. */
32
+ export declare function isProviderFailureTracked(err: unknown): boolean;
17
33
  /**
18
34
  * Call a provider with the retry policy applied. Emits `provider.retry`
19
35
  * before each retry and `provider.error` once when the retries are
20
36
  * exhausted. Streaming providers route through the streaming-response
21
37
  * builder so deltas reach the renderer.
38
+ *
39
+ * ## Waiting-room middleware
40
+ *
41
+ * This function is the ONE funnel every agent-loop provider call passes
42
+ * through — leader turns, subagent turns, and every hop the `fallback-model`
43
+ * extension takes (its chain calls back into this runner). When
44
+ * `statusTracker` is supplied it therefore acts as the last line of defence
45
+ * for the provider waiting room:
46
+ *
47
+ * - **Pre-flight**: a quarantined (provider, model) pair never reaches the
48
+ * wire. A synthetic fallback-worthy 429 is thrown instead, so an outer
49
+ * fallback chain rotates to the next candidate exactly as it would for a
50
+ * real rate limit — but no HTTP request, and no billing, happens.
51
+ * - **Post-flight**: every success and every terminal failure is recorded,
52
+ * independent of which extensions are installed. Before this, the ONLY
53
+ * writer was the `fallback-model` extension; anything running without it
54
+ * (or any failure whose class identity did not survive a bundle boundary)
55
+ * left the waiting room empty and the same doomed model was picked again
56
+ * on the very next spawn.
22
57
  */
23
58
  export declare function runProviderWithRetry(opts: RunProviderOptions): Promise<Response>;
24
59
  //# sourceMappingURL=provider-runner.d.ts.map
@@ -0,0 +1,37 @@
1
+ /**
2
+ * The conversation that owns one concrete LLM request.
3
+ *
4
+ * The request pipeline is SHARED: one instance serves every conversation the
5
+ * process is running, and its payload is a bare `Request` with no session on
6
+ * it. That was fine when a process meant a conversation. With four WebUI tabs
7
+ * it means a middleware can only answer "what did the project configure",
8
+ * never "what did THIS tab configure" — which is how a reasoning effort chosen
9
+ * in one tab ended up on every other tab's next request.
10
+ *
11
+ * A side-channel rather than a field on `Request`, for the same reason
12
+ * `request-provider-binding.ts` is one: `Request` is the wire shape, and
13
+ * adding non-wire fields to it invites providers to serialise them.
14
+ *
15
+ * Binding is best-effort by design. A request built outside the agent loop
16
+ * (compaction, one-shot helpers, the brain) carries no conversation, and every
17
+ * reader must fall back to the process-wide answer — which is exactly the
18
+ * behaviour those callers had before.
19
+ *
20
+ * @module request-conversation-binding
21
+ */
22
+ import type { Request } from '../types/provider.js';
23
+ /** The slice of a conversation a request-pipeline middleware may consult. */
24
+ export interface RequestConversation {
25
+ /** The conversation's own meta bag — per-session preferences live here. */
26
+ meta: Record<string, unknown>;
27
+ }
28
+ export declare function bindRequestConversation(request: Request, conversation: RequestConversation): void;
29
+ export declare function conversationBoundToRequest(request: Request): RequestConversation | undefined;
30
+ /**
31
+ * Carry the binding onto a request a middleware just copied.
32
+ *
33
+ * Middleware conventionally returns `{ ...req }`, which is a NEW object and
34
+ * therefore unbound — so the middleware after it would see no conversation.
35
+ */
36
+ export declare function inheritRequestConversation(from: Request, to: Request): void;
37
+ //# sourceMappingURL=request-conversation-binding.d.ts.map
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Same-session agent notes — ephemeral inbox on the live Context.
3
+ *
4
+ * Distinct from `/btw` (user mid-run steering) and from mailbox (durable
5
+ * cross-session mail). A note is posted in-process, queued here, and folded
6
+ * into the recipient's conversation at the next iteration boundary.
7
+ *
8
+ * @module session-notes
9
+ */
10
+ import type { Context } from './context.js';
11
+ export type SessionNoteKind = 'note' | 'result' | 'ask' | 'steer';
12
+ export interface SessionNote {
13
+ from: string;
14
+ kind: SessionNoteKind;
15
+ body: string;
16
+ subject?: string | undefined;
17
+ }
18
+ /** Queue a note for this agent's next iteration. Returns pending count. */
19
+ export declare function enqueueSessionNote(ctx: Context, note: SessionNote): number;
20
+ export declare function pendingSessionNoteCount(ctx: Context): number;
21
+ /** Read and clear pending notes in FIFO order. */
22
+ export declare function consumeSessionNotes(ctx: Context): SessionNote[];
23
+ /** Compact block the agent reads at the iteration boundary. */
24
+ export declare function buildSessionNoteBlock(notes: SessionNote[]): string;
25
+ //# sourceMappingURL=session-notes.d.ts.map
@@ -7,7 +7,7 @@ import type { BuildContext, ModelCapabilities, SystemPromptBuilder, SystemPrompt
7
7
  import type { SystemPromptContributor } from '../types/system-prompt-contributor.js';
8
8
  import { type InstructionBundle, type InstructionBundlePaths } from './instruction-bundle.js';
9
9
  import { type InstructionTemplateContext } from './instruction-template.js';
10
- export { type EffectiveShell, effectiveShell, shellGuidanceBlock } from './system-prompt-shell.js';
10
+ export { effectiveShell, shellGuidanceBlock } from './system-prompt-shell.js';
11
11
  export declare const LAYER_1_IDENTITY: string;
12
12
  /**
13
13
  * Compose the layer-1 identity from the bundled default plus any override.
@@ -155,7 +155,8 @@ export declare class DefaultSystemPromptBuilder implements SystemPromptBuilder {
155
155
  * join, leave, or change status.
156
156
  */
157
157
  private _toolsUsageCache?;
158
- private _instructionBundle?;
158
+ /** Instruction bundle per identity variant — see `instructions()`. */
159
+ private readonly _instructionBundles;
159
160
  /**
160
161
  * Cached rendered identity layer. Keyed the same way as `_toolsUsageCache`:
161
162
  * the ToolRegistry snapshot keeps the array reference stable until a registry
@@ -206,6 +207,14 @@ export declare class DefaultSystemPromptBuilder implements SystemPromptBuilder {
206
207
  * provider's prefix cache before the identity block is reached.
207
208
  */
208
209
  private buildIdentity;
210
+ /**
211
+ * The instruction bundle for one identity variant.
212
+ *
213
+ * Cached per variant rather than once for the builder: four conversations
214
+ * share this instance and each picks its own identity, so a single memoised
215
+ * bundle handed whichever variant loaded first to all of them. At most three
216
+ * entries exist ('default' | 'lite' | 'pro').
217
+ */
209
218
  private instructions;
210
219
  /**
211
220
  * Cached plan content keyed by (planPath, mtimeMs). The plan is read
@@ -0,0 +1,78 @@
1
+ /**
2
+ * The shared catalogue of system-prompt identity variants - Lite / Standard /
3
+ * Pro - plus the per-variant token estimate every surface shows before a user
4
+ * commits to one.
5
+ *
6
+ * This lives in core because three surfaces need the same answer: the CLI's
7
+ * startup menu, the WebUI's new-session modal, and any host that wants to
8
+ * report which variant a session is running. Each of them would otherwise
9
+ * re-derive the label set, the ordering, and - worse - the token count. A
10
+ * count computed a second way drifts from the one the builder actually emits,
11
+ * which is the number the user is choosing on.
12
+ */
13
+ import { type SystemInstructionVariant } from './instruction-bundle.js';
14
+ /** Menu order + display labels. `default` is shown as "Standard". */
15
+ export declare const SYSTEM_PROMPT_VARIANT_OPTIONS: ReadonlyArray<{
16
+ variant: SystemInstructionVariant;
17
+ label: string;
18
+ hint: string;
19
+ }>;
20
+ /** All selectable variants, in menu order. */
21
+ export declare const SYSTEM_PROMPT_VARIANTS: readonly SystemInstructionVariant[];
22
+ /** Narrow an untrusted value (WS payload, config file, CLI flag) to a variant. */
23
+ export declare function isSystemInstructionVariant(value: unknown): value is SystemInstructionVariant;
24
+ /** Human label for a variant; falls back to the raw id for an unknown value. */
25
+ export declare function systemPromptVariantLabel(variant: SystemInstructionVariant): string;
26
+ /** Instruction dirs used to resolve the identity text per variant. */
27
+ export interface SystemPromptVariantPaths {
28
+ /** Profile override directory, e.g. `~/.wrongstack/profiles/<name>/instructions`. */
29
+ globalDir?: string | undefined;
30
+ /** Project override directory, e.g. `<project>/.wrongstack/instructions`. */
31
+ projectDir?: string | undefined;
32
+ }
33
+ /**
34
+ * Estimate the tokens of the system identity block each variant injects.
35
+ *
36
+ * Resolution goes through the same `loadInstructionBundle` the
37
+ * SystemPromptBuilder runs (bundled -> global -> project, later layers override
38
+ * `system.identity`), and composition goes through the builder's own
39
+ * `buildIdentityLayer`. Calling the real composer matters: when the identity
40
+ * came from the *project* layer, WS-016 makes the builder emit the bundled
41
+ * identity PLUS a `<project-supplied-instructions>` delimiter block PLUS the
42
+ * project text rather than replacing the identity. Counting
43
+ * `bundle.system.identity` alone therefore under-reports a project override by
44
+ * the whole bundled prompt - exactly the case a repo that ships its own
45
+ * `system-pro.md` hits.
46
+ *
47
+ * The figure is an **upper bound**, not `/context` parity: `buildIdentityLayer`
48
+ * is called without an `InstructionTemplateContext`, which by its own contract
49
+ * keeps the full text, so `ws:if` blocks for tools the live request never
50
+ * registers are still counted. Erring high is the right direction for a picker
51
+ * whose purpose is comparing variant cost, and every figure is rendered with a
52
+ * leading tilde.
53
+ */
54
+ export declare function countSystemPromptTokens(paths: SystemPromptVariantPaths): Promise<Record<SystemInstructionVariant, number>>;
55
+ /**
56
+ * Read the variant the user explicitly saved to the profile config file.
57
+ *
58
+ * The config loader materializes `systemPrompt: { variant: 'default' }` for
59
+ * every config (see the config-loader defaults), so the in-memory Config cannot
60
+ * distinguish "user chose Standard" from "never chose". Only the raw file can:
61
+ * {@link persistSystemPromptVariant} writes the key explicitly, so its presence
62
+ * on disk is the signal that a selection was made. Absence (first run, or a
63
+ * config edited before this feature existed) returns undefined, and the caller
64
+ * shows the full picker instead of a one-line confirmation.
65
+ */
66
+ export declare function readSavedSystemPromptVariant(configPath: string): Promise<SystemInstructionVariant | undefined>;
67
+ /**
68
+ * Persist the chosen variant to the profile config file so the next boot can
69
+ * offer a one-line "Continue with these?" gate. Mirrors the launch-choices
70
+ * writer: read the existing JSON, mutate only the `systemPrompt` block, write
71
+ * back atomically with mode 0600. Other fields (including encrypted secrets)
72
+ * pass through round-trip unchanged.
73
+ *
74
+ * @throws when the config file exists but is corrupt (same policy as the
75
+ * launch-choices writer - never overwrite unreadable user config silently).
76
+ */
77
+ export declare function persistSystemPromptVariant(configPath: string, variant: SystemInstructionVariant): Promise<void>;
78
+ //# sourceMappingURL=system-prompt-variants.d.ts.map