@wrongstack/core 0.313.1 → 0.316.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/dist/chronicle/index.js +31 -31
  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 +39 -31
  7. package/dist/chronicle/sink.d.ts +13 -0
  8. package/dist/chronicle/sqlite-journal.d.ts +20 -2
  9. package/dist/{chunk-WOEZV3Q4.js → chunk-25LSLC3G.js} +2 -1
  10. package/dist/{chunk-AI4LLQ2U.js → chunk-27QIURLN.js} +229 -12
  11. package/dist/{chunk-I45KAW2N.js → chunk-3AGWVSS7.js} +38 -450
  12. package/dist/chunk-3BDV7RL3.js +211 -0
  13. package/dist/{chunk-NFAYHPRH.js → chunk-3ECENVHL.js} +10 -8
  14. package/dist/{chunk-FW5LDDMJ.js → chunk-45WI72ZB.js} +1576 -1156
  15. package/dist/{chunk-AT4V4XGI.js → chunk-4BMVPOHO.js} +539 -313
  16. package/dist/{chunk-YBUJCZ57.js → chunk-4I7HGVVA.js} +17 -5
  17. package/dist/{chunk-JVGPR3TS.js → chunk-4LCZVJVF.js} +7 -55
  18. package/dist/{chunk-4ZHTKJHM.js → chunk-4SJNS7OB.js} +36 -2
  19. package/dist/{chunk-AD7ZFZCS.js → chunk-5BMIE7QG.js} +3 -3
  20. package/dist/{chunk-IQ35HMQL.js → chunk-5YPSXQXM.js} +71 -24
  21. package/dist/chunk-6FHWXLPT.js +10 -0
  22. package/dist/{chunk-FIV4IJL7.js → chunk-6H5GEOET.js} +163 -20
  23. package/dist/{chunk-VB3H5WWB.js → chunk-6NWEVFEL.js} +2 -2
  24. package/dist/{chunk-E6I5RXVK.js → chunk-AYW5YINX.js} +2 -2
  25. package/dist/{chunk-DEIQMBD2.js → chunk-B7F4WVP4.js} +2 -2
  26. package/dist/{chunk-XQ2XGIBF.js → chunk-BPBKKBUK.js} +6 -7
  27. package/dist/{chunk-K4YUNKU7.js → chunk-BYD345OX.js} +2 -2
  28. package/dist/{chunk-LZDDLNCZ.js → chunk-C27KDLOX.js} +4 -4
  29. package/dist/{chunk-6AKOTGLM.js → chunk-CU546ESW.js} +7 -7
  30. package/dist/{chunk-ZZ4V3WIZ.js → chunk-DLHHXUAM.js} +10 -1
  31. package/dist/{chunk-BAKVJLEV.js → chunk-DOTHQSJ2.js} +28 -16
  32. package/dist/{chunk-KBZGE6LN.js → chunk-DYLPMV4Q.js} +4 -3
  33. package/dist/{chunk-52RTVH4M.js → chunk-F3JWNST7.js} +2 -2
  34. package/dist/{chunk-WEBMSQP2.js → chunk-FC2ZGRF3.js} +21 -4
  35. package/dist/{chunk-FHAMQS7Q.js → chunk-FCBTO76Z.js} +76 -146
  36. package/dist/{chunk-4LJJYBAU.js → chunk-FHZVFYSL.js} +9 -1
  37. package/dist/{chunk-W4A6QA3D.js → chunk-FWNLEZYG.js} +4 -3
  38. package/dist/{chunk-OJZEX73F.js → chunk-GDQ7CZRQ.js} +5 -1
  39. package/dist/{chunk-QVOVMXJR.js → chunk-GJJGJB2R.js} +32 -9
  40. package/dist/{chunk-4XV6IR37.js → chunk-HI3JGZR2.js} +7 -6
  41. package/dist/{chunk-FSWCWSTS.js → chunk-HMLIGAU7.js} +26 -26
  42. package/dist/{chunk-PFXFQQRT.js → chunk-HXKZ7OBQ.js} +7 -43
  43. package/dist/{chunk-2FQL4PDC.js → chunk-I7DALG7J.js} +5 -5
  44. package/dist/{chunk-GM54GJBU.js → chunk-IRUTEHCE.js} +3 -3
  45. package/dist/{chunk-TYW2GI5I.js → chunk-J2WRWR37.js} +40 -13
  46. package/dist/{chunk-ZEHUCJHY.js → chunk-JFPJ6LLQ.js} +2 -2
  47. package/dist/chunk-JMULFFLN.js +9 -0
  48. package/dist/{chunk-RD6DEE36.js → chunk-JO4MGB6Z.js} +94 -8
  49. package/dist/{chunk-5DSMEVA4.js → chunk-K6BXGITA.js} +7 -7
  50. package/dist/{chunk-O74MJHXU.js → chunk-KZMSZV32.js} +2 -2
  51. package/dist/{chunk-GFJOMSHG.js → chunk-LA7CLDRW.js} +6 -2
  52. package/dist/{chunk-M2WF6AXG.js → chunk-LSMMOS2Z.js} +7 -3
  53. package/dist/{chunk-ASX6AW36.js → chunk-LXWCMQNJ.js} +3 -3
  54. package/dist/{chunk-WZO23AWO.js → chunk-M27LIEKV.js} +72 -22
  55. package/dist/{chunk-JTHKOYWU.js → chunk-MJPHJRAL.js} +15 -15
  56. package/dist/{chunk-G5AAKEEZ.js → chunk-MTL4O5YR.js} +5 -5
  57. package/dist/chunk-NHJ75HXY.js +1 -0
  58. package/dist/{chunk-ZYU2YOJ6.js → chunk-NIOAGFPB.js} +29 -15
  59. package/dist/{chunk-Y2GE5TSI.js → chunk-NS52ISWS.js} +2 -2
  60. package/dist/{chunk-UIWONWVG.js → chunk-NSOFPKGT.js} +541 -148
  61. package/dist/{chunk-RCQYT2I4.js → chunk-NVIZG63R.js} +2 -2
  62. package/dist/{chunk-EPC3GZD4.js → chunk-OOYZPOXM.js} +2 -2
  63. package/dist/{chunk-7ZHZE5EO.js → chunk-OSGLYW5J.js} +2 -2
  64. package/dist/{chunk-CE4ZOCOI.js → chunk-PFCMSSUF.js} +9 -9
  65. package/dist/{chunk-GFXZTHNI.js → chunk-PGRVXIMY.js} +5 -5
  66. package/dist/{chunk-JJPMWPB6.js → chunk-PISBFBJN.js} +6 -6
  67. package/dist/chunk-POOOIWE5.js +9 -0
  68. package/dist/{chunk-5RP3QTRL.js → chunk-PQNS3U7Z.js} +20 -3
  69. package/dist/{chunk-3E244UDA.js → chunk-QSTSJOCK.js} +52 -6
  70. package/dist/{chunk-YUPMXOGP.js → chunk-RFQMOKWK.js} +3 -3
  71. package/dist/chunk-RTOTNK3P.js +484 -0
  72. package/dist/{chunk-SN2DQRL6.js → chunk-RXKSDUAU.js} +7 -7
  73. package/dist/{chunk-T3KGZBU5.js → chunk-S45JPKQN.js} +189 -43
  74. package/dist/{chunk-YNCVSFGF.js → chunk-SAFHACFA.js} +4 -1
  75. package/dist/{chunk-KI4L2DUL.js → chunk-TCCHINEF.js} +114 -19
  76. package/dist/{chunk-AWNQ6ED6.js → chunk-THEGTRAG.js} +7 -2
  77. package/dist/{chunk-2KKODIQU.js → chunk-TR4LQE7L.js} +15 -15
  78. package/dist/{chunk-GPQ3NJPR.js → chunk-TWJMGXCI.js} +3 -3
  79. package/dist/{chunk-H72H4XDU.js → chunk-U45AXT5D.js} +9 -9
  80. package/dist/{chunk-62V2AFVG.js → chunk-U4FWBSO3.js} +160 -73
  81. package/dist/{chunk-A455ATZB.js → chunk-UBGDX6FI.js} +8 -1
  82. package/dist/chunk-UJILKYES.js +75 -0
  83. package/dist/{chunk-KSJ5UTP7.js → chunk-ULMAQV3T.js} +84 -4
  84. package/dist/{chunk-CB2HFKTP.js → chunk-VVBP6KGT.js} +1 -1
  85. package/dist/{chunk-RPOA7IAE.js → chunk-W5VITDM2.js} +43 -25
  86. package/dist/{chunk-QRTG4XTI.js → chunk-WAHQVNWT.js} +7 -1
  87. package/dist/{chunk-SQP64RCS.js → chunk-WGGYRBXH.js} +3019 -2976
  88. package/dist/{chunk-K3G6JBUC.js → chunk-WLYKU45P.js} +679 -141
  89. package/dist/chunk-WP7BVANJ.js +53 -0
  90. package/dist/{chunk-GAZEWQEZ.js → chunk-XF4VUMKW.js} +2 -2
  91. package/dist/{chunk-PAAWLLZX.js → chunk-Y5YXDM7D.js} +2 -2
  92. package/dist/{chunk-65RDIOR2.js → chunk-YOPAUVU4.js} +162 -44
  93. package/dist/{chunk-FFSX2QDQ.js → chunk-YPT4A46F.js} +3 -3
  94. package/dist/chunk-YWXT3JNM.js +425 -0
  95. package/dist/{chunk-EFEHDQGY.js → chunk-ZHZ2Y2DH.js} +64 -10
  96. package/dist/{chunk-CQQL4ZOQ.js → chunk-ZT7JNIGX.js} +4 -3
  97. package/dist/coordination/agent-monitor.d.ts +9 -1
  98. package/dist/coordination/agent-subagent-runner.d.ts +1 -1
  99. package/dist/coordination/agents/agent-prompts.d.ts +8 -0
  100. package/dist/coordination/agents/index.d.ts +33 -1
  101. package/dist/coordination/agents/index.js +52 -22
  102. package/dist/coordination/agents/phase3-wave1-platform.d.ts +1 -3
  103. package/dist/coordination/agents/phase3-wave2-meta.d.ts +1 -3
  104. package/dist/coordination/agents/phase8-wave3-products.d.ts +1 -3
  105. package/dist/coordination/agents/phase9-wave4-platform-meta.d.ts +1 -3
  106. package/dist/coordination/agents/project-agent-identity.d.ts +11 -11
  107. package/dist/coordination/agents/types.d.ts +13 -2
  108. package/dist/coordination/brain-monitor.d.ts +30 -7
  109. package/dist/coordination/collab-debug.d.ts +1 -1
  110. package/dist/coordination/collab-pause.d.ts +1 -1
  111. package/dist/coordination/delegate-tool.d.ts +7 -5
  112. package/dist/coordination/director-kanban-queue-helpers.d.ts +1 -0
  113. package/dist/coordination/director-options.d.ts +7 -0
  114. package/dist/coordination/director-spawn-model.d.ts +17 -0
  115. package/dist/coordination/director-tools.d.ts +2 -2
  116. package/dist/coordination/director.d.ts +12 -0
  117. package/dist/coordination/dispatcher.d.ts +8 -0
  118. package/dist/coordination/fleet-bus.d.ts +35 -4
  119. package/dist/coordination/fleet-supervisor.d.ts +10 -2
  120. package/dist/coordination/fleet.d.ts +16 -7
  121. package/dist/coordination/index.d.ts +4 -0
  122. package/dist/coordination/index.js +86 -49
  123. package/dist/coordination/kanban-dispatch-port.d.ts +2 -2
  124. package/dist/coordination/mailbox-http-router.d.ts +4 -3
  125. package/dist/coordination/mailbox-http-validation.d.ts +1 -1
  126. package/dist/coordination/mailbox-project-server.js +15 -15
  127. package/dist/coordination/mailbox-types.d.ts +24 -6
  128. package/dist/coordination/model-tier-leader.d.ts +122 -0
  129. package/dist/coordination/model-tier.d.ts +122 -0
  130. package/dist/coordination/multi-agent-coordinator.d.ts +24 -0
  131. package/dist/coordination/origin-session.d.ts +16 -0
  132. package/dist/coordination/provider-status-tracker.d.ts +37 -5
  133. package/dist/coordination/session-note-hub.d.ts +44 -0
  134. package/dist/coordination/session-note-tool.d.ts +10 -0
  135. package/dist/core/agent.d.ts +1 -1
  136. package/dist/core/context.d.ts +22 -3
  137. package/dist/core/index.d.ts +2 -0
  138. package/dist/core/index.js +130 -38
  139. package/dist/core/request-conversation-binding.d.ts +37 -0
  140. package/dist/core/session-notes.d.ts +25 -0
  141. package/dist/core/system-prompt-builder.d.ts +11 -2
  142. package/dist/core/system-prompt-variants.d.ts +78 -0
  143. package/dist/design/index.js +3 -3
  144. package/dist/execution/auto-compaction-middleware.d.ts +11 -0
  145. package/dist/execution/autonomy-brain.d.ts +2 -1
  146. package/dist/execution/autonomy-prompt-contributor.d.ts +7 -2
  147. package/dist/execution/compaction-core.d.ts +4 -4
  148. package/dist/execution/eternal-autonomy.d.ts +1 -1
  149. package/dist/execution/index.js +138 -129
  150. package/dist/execution/model-runtime.d.ts +0 -7
  151. package/dist/execution/parallel-eternal-engine.d.ts +7 -7
  152. package/dist/extension/index.js +3 -3
  153. package/dist/goal/index.js +6 -6
  154. package/dist/hooks/index.js +3 -3
  155. package/dist/hq/index.js +14 -12
  156. package/dist/hq/persistence/event-log.d.ts +0 -1
  157. package/dist/hq/persistence.d.ts +4 -4
  158. package/dist/hq/publisher.d.ts +2 -0
  159. package/dist/index.d.ts +14 -11
  160. package/dist/index.js +728 -635
  161. package/dist/infrastructure/index.d.ts +4 -4
  162. package/dist/infrastructure/index.js +281 -260
  163. package/dist/infrastructure/token-counter.d.ts +9 -0
  164. package/dist/kernel/events/agent-events.d.ts +77 -3
  165. package/dist/kernel/events/brain-events.d.ts +12 -0
  166. package/dist/kernel/events/provider-events.d.ts +7 -1
  167. package/dist/kernel/events/session-events.d.ts +14 -0
  168. package/dist/kernel/events/tool-events.d.ts +13 -0
  169. package/dist/kernel/index.js +4 -4
  170. package/dist/mailbox-attach.d.ts +1 -1
  171. package/dist/models/index.js +10 -9
  172. package/dist/observability/event-bridge.d.ts +25 -5
  173. package/dist/observability/index.d.ts +9 -8
  174. package/dist/observability/index.js +459 -351
  175. package/dist/observability/tool-usage-source.d.ts +65 -0
  176. package/dist/plugin/index.d.ts +5 -0
  177. package/dist/plugin/index.js +66 -50
  178. package/dist/plugins/auto-review-plugin.d.ts +3 -2
  179. package/dist/plugins/review-finding-commands.d.ts +0 -8
  180. package/dist/{review-finding-store-DKAV3AS6.js → plugins/review-finding-store.js} +7 -6
  181. package/dist/plugins/review-finding-types.js +19 -0
  182. package/dist/plugins/review-report-integration.js +21 -0
  183. package/dist/{review-report-store-OWY3EC3N.js → plugins/review-report-store.js} +7 -6
  184. package/dist/plugins/review-report-types.js +13 -0
  185. package/dist/prompts/index.js +5 -5
  186. package/dist/registry/index.js +3 -3
  187. package/dist/registry/tool-registry.d.ts +59 -9
  188. package/dist/{registry-R23UBE7H.js → registry-7N4O3E7W.js} +5 -5
  189. package/dist/security/capabilities.d.ts +6 -0
  190. package/dist/security/file-permissions.d.ts +1 -1
  191. package/dist/security/index.js +47 -33
  192. package/dist/security/permission-policy.d.ts +12 -1
  193. package/dist/security/secret-scrubber.d.ts +15 -0
  194. package/dist/session-catalog/index.d.ts +1 -0
  195. package/dist/session-catalog/index.js +19 -14
  196. package/dist/session-catalog/project-server.js +30 -13
  197. package/dist/session-catalog/protocol.d.ts +32 -1
  198. package/dist/session-catalog/registry.d.ts +17 -1
  199. package/dist/session-catalog/session-agents.d.ts +56 -0
  200. package/dist/session-catalog/store-rebuild.d.ts +14 -0
  201. package/dist/session-catalog/store-schema.d.ts +26 -0
  202. package/dist/session-catalog/store.d.ts +27 -1
  203. package/dist/session-note-attach.d.ts +9 -0
  204. package/dist/skills/index.js +5 -5
  205. package/dist/statusline/index.d.ts +43 -0
  206. package/dist/statusline/index.js +102 -0
  207. package/dist/storage/board-store-port.d.ts +2 -2
  208. package/dist/storage/config-loader/in-project-policy.d.ts +29 -0
  209. package/dist/storage/config-loader.d.ts +3 -2
  210. package/dist/storage/file-session-writer.d.ts +4 -2
  211. package/dist/storage/goal-coordination.d.ts +6 -1
  212. package/dist/storage/goal-kanban.d.ts +4 -1
  213. package/dist/storage/index.d.ts +12 -4
  214. package/dist/storage/index.js +76 -61
  215. package/dist/storage/input-history-store.d.ts +2 -4
  216. package/dist/storage/memory-curator.d.ts +133 -0
  217. package/dist/storage/session-agent-attribution.d.ts +39 -0
  218. package/dist/storage/session-doctor.d.ts +109 -0
  219. package/dist/storage/session-event-bridge.d.ts +5 -7
  220. package/dist/storage/session-outcome.d.ts +42 -0
  221. package/dist/storage/session-recovery.d.ts +55 -0
  222. package/dist/storage/session-store/load-session-data.d.ts +11 -0
  223. package/dist/storage/session-store/prune-helpers.d.ts +1 -1
  224. package/dist/storage/session-store/resume-session.d.ts +0 -2
  225. package/dist/storage/session-store/types.d.ts +8 -0
  226. package/dist/storage/session-store.d.ts +3 -3
  227. package/dist/storage/session-summary-tracker.d.ts +8 -1
  228. package/dist/storage/session-write-buffer.d.ts +18 -0
  229. package/dist/storage/session-writer-truncate.d.ts +2 -0
  230. package/dist/tasking/index.js +2 -2
  231. package/dist/tools/fallback-manage-tools.d.ts +6 -4
  232. package/dist/tools/index.js +21 -21
  233. package/dist/tools/model-tier-set-tool.d.ts +66 -0
  234. package/dist/types/agent-bridge.d.ts +2 -1
  235. package/dist/types/config/mcp-features.d.ts +7 -0
  236. package/dist/types/config/model-tiers.d.ts +148 -0
  237. package/dist/types/config/root.d.ts +9 -0
  238. package/dist/types/config/tools.d.ts +73 -0
  239. package/dist/types/config.d.ts +1 -0
  240. package/dist/types/context.d.ts +2 -0
  241. package/dist/types/default-config.d.ts +6 -0
  242. package/dist/types/errors.d.ts +2 -1
  243. package/dist/types/index.d.ts +11 -9
  244. package/dist/types/index.js +25 -15
  245. package/dist/types/multi-agent.d.ts +43 -0
  246. package/dist/types/plugin.d.ts +1 -1
  247. package/dist/types/provider.d.ts +15 -0
  248. package/dist/types/runtime-capability-manifest.d.ts +1 -1
  249. package/dist/types/secret-scrubber.d.ts +15 -0
  250. package/dist/types/session-markers.d.ts +37 -10
  251. package/dist/types/session-markers.js +1 -1
  252. package/dist/types/session-timeline.d.ts +197 -0
  253. package/dist/types/session-timeline.js +12 -0
  254. package/dist/types/session.d.ts +172 -11
  255. package/dist/types/system-prompt.d.ts +27 -0
  256. package/dist/utils/config-backup.d.ts +9 -1
  257. package/dist/utils/heap-watchdog.js +2 -2
  258. package/dist/utils/index.js +50 -48
  259. package/dist/utils/message-invariants.d.ts +4 -1
  260. package/dist/utils/regex-guard.d.ts +1 -1
  261. package/dist/utils/socket-path.d.ts +1 -1
  262. package/dist/utils/token-estimate.d.ts +6 -2
  263. package/dist/utils/wstack-paths.d.ts +2 -0
  264. package/dist/wiring/proxy-rewrite.d.ts +28 -0
  265. package/dist/wiring/proxy-rewrite.js +7 -1
  266. package/dist/worktree/index.js +2 -2
  267. package/instructions/agents/explore-companion.md +45 -18
  268. package/instructions/agents/memory-curator.md +34 -22
  269. package/instructions/coordination/director-preamble.md +12 -7
  270. package/instructions/coordination/subagent-baseline.md +26 -5
  271. package/instructions/leader-after-task.md +4 -1
  272. package/instructions/llm/chimera-review.md +30 -9
  273. package/instructions/llm/memory-curator.md +31 -0
  274. package/instructions/sections/tool/delegation-compact.md +2 -0
  275. package/instructions/sections/tool/delegation-full.md +5 -1
  276. package/instructions/sections/tool/mailbox-compact.md +5 -1
  277. package/instructions/sections/tool/mailbox-full.md +3 -0
  278. package/instructions/sections/tool/session-note-compact.md +3 -0
  279. package/instructions/sections/tool/session-note-full.md +15 -0
  280. package/instructions/system-lite.md +9 -4
  281. package/instructions/system-pro.md +66 -143
  282. package/instructions/system.md +73 -175
  283. package/package.json +33 -5
  284. package/dist/chunk-2BUUIMQB.js +0 -225
  285. package/dist/chunk-FAYRX2AD.js +0 -13
  286. package/dist/chunk-H5E77KUJ.js +0 -15
  287. package/dist/chunk-M7BS2K6U.js +0 -1
  288. package/dist/coordination/agents.d.ts +0 -8
  289. package/dist/coordination/transport.d.ts +0 -2
  290. package/dist/storage/session-writer/session-writer-summary-tracker.d.ts +0 -28
@@ -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
@@ -28,12 +28,12 @@ import {
28
28
  setActiveKit,
29
29
  setDesignOverrides,
30
30
  verifyFiles
31
- } from "../chunk-5DSMEVA4.js";
31
+ } from "../chunk-K6BXGITA.js";
32
+ import "../chunk-FC2ZGRF3.js";
33
+ import "../chunk-SAFHACFA.js";
32
34
  import {
33
35
  isDesignStack
34
36
  } from "../chunk-G5S3S5ZN.js";
35
- import "../chunk-WEBMSQP2.js";
36
- import "../chunk-YNCVSFGF.js";
37
37
 
38
38
  // src/execution/design-materialize.ts
39
39
  var SCALE_PREFIXES = [
@@ -138,6 +138,17 @@ export declare class AutoCompactionMiddleware {
138
138
  * the middleware passes every iteration straight through without estimating
139
139
  * tokens or compacting. */
140
140
  setEnabled(enabled: boolean): void;
141
+ /**
142
+ * Is auto-compaction on for THIS conversation?
143
+ *
144
+ * `contextAutoCompact` is a per-tab preference, and a WebUI runs four tabs
145
+ * through this one middleware instance. The host used to express "off" by
146
+ * removing the middleware from the shared pipeline, which turned it off for
147
+ * every tab at once; a session that sets its own value now decides for
148
+ * itself, and `this._enabled` remains the answer for hosts that keep no
149
+ * per-session value.
150
+ */
151
+ private enabledFor;
141
152
  handler(): MiddlewareHandler<Context>;
142
153
  /**
143
154
  * Full-request token total for the current context.
@@ -26,7 +26,8 @@ import type { EventBus } from '../kernel/events.js';
26
26
  import type { Provider } from '../types/provider.js';
27
27
  import type { BrainCircuitBreaker } from './brain-circuit.js';
28
28
  import { type BrainLlmTarget, DEFAULT_BRAIN_MAX_TOKENS, readLlmDenyKind, buildBrainUserMessage, withDecisionDigest, completeBrainLlm, completeBrainLlmDetailed, extractConfidence, isNonAnswer, parseFreeTextDecision, parseOptionDecision } from './autonomy-brain-llm.js';
29
- export { type BrainLlmTarget, DEFAULT_BRAIN_MAX_TOKENS, buildBrainUserMessage, withDecisionDigest, completeBrainLlm, completeBrainLlmDetailed, extractConfidence, isNonAnswer, parseFreeTextDecision, parseOptionDecision, readLlmDenyKind, };
29
+ export type { BrainLlmTarget };
30
+ export { DEFAULT_BRAIN_MAX_TOKENS, buildBrainUserMessage, withDecisionDigest, completeBrainLlm, completeBrainLlmDetailed, extractConfidence, isNonAnswer, parseFreeTextDecision, parseOptionDecision, readLlmDenyKind, };
30
31
  export interface AutonomyBrainOptions {
31
32
  /** LLM provider for decision-making. Ignored when `targets` is non-empty. */
32
33
  provider?: Provider | undefined;
@@ -14,6 +14,7 @@
14
14
  * counter) changes each turn without invalidating the upstream prefix
15
15
  * cache.
16
16
  */
17
+ import type { BuildContext } from '../types/system-prompt.js';
17
18
  import type { SystemPromptContributor } from '../types/system-prompt-contributor.js';
18
19
  export interface AutonomyPromptContributorOptions {
19
20
  /** Absolute path to the project's `goal.json`. */
@@ -24,9 +25,13 @@ export interface AutonomyPromptContributorOptions {
24
25
  * leak into interactive runs that happen to have a goal on disk and
25
26
  * teach the model loop-control markers it shouldn't emit.
26
27
  *
27
- * Typical wiring: enable while `eternal` or `eternal-parallel` autonomy is active.
28
+ * Typical wiring: enable while `eternal` or `eternal-parallel` autonomy is
29
+ * active. Receives the build context so the answer can come from the
30
+ * CONVERSATION being built for (`ctx.autonomy`) rather than a process-wide
31
+ * mode ref — with four tabs on one process, that ref is whichever tab last
32
+ * changed it.
28
33
  */
29
- enabled: () => boolean;
34
+ enabled: (ctx: BuildContext) => boolean;
30
35
  /** Number of journal entries to include in the recent-tail block. Default 5. */
31
36
  journalTailSize?: number | undefined;
32
37
  }
@@ -1,7 +1,7 @@
1
1
  import { estimateMessageTokens } from '../utils/token-estimate.js';
2
- export { buildSmartDigest, type ContentScore, extractText, hasLargeToolResult, hasToolUse, scoreMessage, } from './compaction-scoring.js';
3
- export { collapseAcknowledgedToolReceipts, eliseAcknowledgedToolResults, eliseOldToolResults, type EliseResult, findPreserveStart, isElidedResultContent, isElidedToolInput, normalizePathKey, readPathOf, setCompactionDebugLogger, summarizeToolResultElision, summarizeToolUseInputElision, } from './compaction-elision.js';
4
- export { buildLosslessDigest, type DedupResult, dedupStaleReads, elideMessageToolIo, enforceHardBudget, findExchangeStart, findSafeBoundary, type HardBudgetResult, hasTextContent, headTailTruncate, truncateMessageText, } from './compaction-budget.js';
5
- export { CompactionSummaryCache, type CompactionSummaryCacheOptions, compactionSummaryKey, isPlaceholderSummary, PLACEHOLDER_SUMMARIES, } from './compaction-summary-cache.js';
2
+ export { type ContentScore, buildSmartDigest, extractText, hasLargeToolResult, hasToolUse, scoreMessage, } from './compaction-scoring.js';
3
+ export { type EliseResult, collapseAcknowledgedToolReceipts, eliseAcknowledgedToolResults, eliseOldToolResults, findPreserveStart, isElidedResultContent, isElidedToolInput, normalizePathKey, readPathOf, setCompactionDebugLogger, summarizeToolResultElision, summarizeToolUseInputElision, } from './compaction-elision.js';
4
+ export { buildLosslessDigest, dedupStaleReads, elideMessageToolIo, enforceHardBudget, findExchangeStart, findSafeBoundary, hasTextContent, headTailTruncate, truncateMessageText } from './compaction-budget.js';
5
+ export { CompactionSummaryCache, compactionSummaryKey, isPlaceholderSummary, PLACEHOLDER_SUMMARIES } from './compaction-summary-cache.js';
6
6
  export declare const estimateMessages: typeof estimateMessageTokens;
7
7
  //# sourceMappingURL=compaction-core.d.ts.map
@@ -12,7 +12,7 @@
12
12
  * user wants "sittin sene". Failures are logged and the loop continues
13
13
  * with a different source on the next tick.
14
14
  */
15
- export type { EternalAutonomyOptions, EternalEngineState, IterationStage } from './eternal-autonomy-types.js';
15
+ export type { EternalAutonomyOptions, EternalEngineState, IterationStage, } from './eternal-autonomy-types.js';
16
16
  import type { EternalAutonomyOptions, EternalEngineState } from './eternal-autonomy-types.js';
17
17
  export declare class EternalAutonomyEngine {
18
18
  private readonly opts;