@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,4 +1,5 @@
1
- import type { ToolDescriptionMode, ToolDescriptionModeConfig } from '../types/config.js';
1
+ import type { EventBus } from '../kernel/events.js';
2
+ import type { DisabledToolMeta, ToolDescriptionMode, ToolDescriptionModeConfig } from '../types/config.js';
2
3
  import type { Tool } from '../types/tool.js';
3
4
  /**
4
5
  * A function that wraps (decorates) an existing tool. Receives the
@@ -26,11 +27,20 @@ export declare class ToolRegistry {
26
27
  private readonly tools;
27
28
  private readonly descriptionModes;
28
29
  /**
29
- * Set of tool names that are disabled (hidden from list(), get() and all
30
- * other public accessors). The underlying tool data stays in `_tools` so
31
- * re-enable is a constant-time operation.
30
+ * Disabled tool names plus the audit-trail metadata explaining WHY each
31
+ * one was disabled. `user` is the historical default (manual
32
+ * `/tool disable`); `auto-thinned` is the new path the auto-thinning
33
+ * pipeline writes so `/tool autothin undo` can restore the right subset.
34
+ * The underlying tool data stays in `_tools` so re-enable is constant-time.
32
35
  */
33
36
  private readonly _disabled;
37
+ /**
38
+ * Optional EventBus used by `thinUnderused()` to emit `tool.thinned`.
39
+ * Set via `setEventBus()` at boot — optional so the registry stays
40
+ * usable in pure unit tests and in code paths that never run the
41
+ * auto-thinning pipeline.
42
+ */
43
+ private _events;
34
44
  /** Monotonic version bumped on every registry mutation. */
35
45
  private _version;
36
46
  /** Cached `list()` result, frozen after build. Invalidated on _version change. */
@@ -99,16 +109,26 @@ export declare class ToolRegistry {
99
109
  };
100
110
  get(name: string): Tool | undefined;
101
111
  ownerOf(name: string): string | undefined;
112
+ /** Attach the EventBus so `thinUnderused()` can emit `tool.thinned`.
113
+ * Idempotent; safe to call multiple times at boot. */
114
+ setEventBus(events: EventBus | undefined): void;
102
115
  /**
103
116
  * Disable a tool by name. The tool is removed from all public accessors
104
117
  * (list(), get(), listByCategory(), listWithOwner()) so it does NOT
105
118
  * appear in the system prompt or provider request. The underlying
106
119
  * registration is preserved in memory — use `enable()` to restore it.
107
120
  *
121
+ * `reason` defaults to `'user'` for backward compatibility — every
122
+ * historical caller (CLI `/tool disable`, WebUI, subagent filter)
123
+ * writes a user-authored disable. The auto-thinning pipeline always
124
+ * passes `'auto-thinned'`.
125
+ *
108
126
  * @returns `true` if the tool was found and disabled; `false` if the
109
127
  * tool is not registered or is already disabled.
110
128
  */
111
- disable(name: string): boolean;
129
+ disable(name: string, reason?: 'user' | 'auto-thinned', meta?: {
130
+ caller?: string;
131
+ }): boolean;
112
132
  /**
113
133
  * Re-enable a previously disabled tool. The tool reappears in all
114
134
  * public accessors and will be included in the next system prompt /
@@ -123,24 +143,54 @@ export declare class ToolRegistry {
123
143
  * of tools that were re-enabled.
124
144
  */
125
145
  enableAll(): number;
146
+ /**
147
+ * Re-enable only the tools that were disabled by the auto-thinning
148
+ * pipeline (`reason === 'auto-thinned'` in `disabledToolMeta`). Manual
149
+ * user disables are preserved. Returns the names that were re-enabled.
150
+ */
151
+ enableAutoThinned(): string[];
126
152
  /**
127
153
  * Check whether a tool is currently disabled.
128
154
  */
129
155
  isDisabled(name: string): boolean;
156
+ /** Return the audit-trail metadata for a disabled tool, if any. */
157
+ disabledMeta(name: string): DisabledToolMeta | undefined;
130
158
  /**
131
159
  * Apply a list of tool names to disable. Tools not in the registry
132
160
  * are silently ignored so config can reference future tools without
133
- * error. Returns the number of tools actually disabled.
161
+ * error. Returns the number of tools actually disabled. Always
162
+ * tagged `reason: 'user'` — the auto-thinning pipeline uses
163
+ * `thinUnderused()` instead.
134
164
  */
135
165
  applyDisabled(names: readonly string[]): number;
136
166
  /**
137
- * Return the list of all disabled tool entries (tool + owner). Useful
138
- * for the /tools slash command to show disabled tools alongside
139
- * enabled ones.
167
+ * Apply the audit-trail metadata for a previously-disabled tool.
168
+ * Used at boot to restore `disabledToolMeta` (so the auto-thinned
169
+ * decision survives a restart). Does NOT mutate the disabled set
170
+ * itself — pair with `applyDisabled()` on the same names.
171
+ */
172
+ applyDisabledMeta(meta: Readonly<Record<string, DisabledToolMeta>>): number;
173
+ /**
174
+ * Disable every name in `candidates` that is currently registered and
175
+ * not already disabled, tagged with `reason: 'auto-thinned'`. Emits
176
+ * a `tool.thinned` event with the names that actually flipped.
177
+ *
178
+ * @returns `{ thinned, skipped }` so the caller can persist the
179
+ * decision to `disabledToolMeta` and report what was changed.
180
+ */
181
+ thinUnderused(candidates: readonly string[], caller: string): {
182
+ thinned: string[];
183
+ skipped: string[];
184
+ };
185
+ /**
186
+ * Return the list of all disabled tool entries (tool + owner + reason).
187
+ * Useful for the /tools slash command to show disabled tools alongside
188
+ * enabled ones, and for `/tool autothin status` to count the auto-thinned subset.
140
189
  */
141
190
  listDisabled(): {
142
191
  tool: Tool;
143
192
  owner: string;
193
+ meta: DisabledToolMeta;
144
194
  }[];
145
195
  list(): Tool[];
146
196
  /** Replace the direct provider surface. Pass `undefined` to expose the catalog. */
@@ -0,0 +1,14 @@
1
+ import {
2
+ ProjectSessionRegistry,
3
+ getProjectSessionRegistry,
4
+ hasProjectSessionRegistry
5
+ } from "./chunk-4I7HGVVA.js";
6
+ import "./chunk-F3JWNST7.js";
7
+ import "./chunk-AYW5YINX.js";
8
+ import "./chunk-POOOIWE5.js";
9
+ export {
10
+ ProjectSessionRegistry,
11
+ getProjectSessionRegistry,
12
+ hasProjectSessionRegistry
13
+ };
14
+ //# sourceMappingURL=registry-7N4O3E7W.js.map
@@ -1,87 +1,9 @@
1
- // src/replay/hash.ts
2
- import { createHash } from "node:crypto";
3
- function stableStringify(value) {
4
- return JSON.stringify(sortKeys(value));
5
- }
6
- function sortKeys(value) {
7
- if (Array.isArray(value)) return value.map(sortKeys);
8
- if (value && typeof value === "object") {
9
- const obj = value;
10
- const sorted = {};
11
- for (const key of Object.keys(obj).sort()) {
12
- sorted[key] = sortKeys(obj[key]);
13
- }
14
- return sorted;
15
- }
16
- return value;
17
- }
18
- function semanticMessage(message) {
19
- const { ts: _ts, _estTokens: _estimate, origin: _origin, ...semantic } = message;
20
- return semantic;
21
- }
22
- function hashRequest(request) {
23
- const payload = {
24
- model: request.model,
25
- system: request.system,
26
- messages: request.messages.map(semanticMessage),
27
- tools: request.tools,
28
- maxTokens: request.maxTokens,
29
- temperature: request.temperature,
30
- topP: request.topP,
31
- stopSequences: request.stopSequences,
32
- toolChoice: request.toolChoice
33
- };
34
- const json = stableStringify(payload);
35
- const digest = createHash("sha256").update(json, "utf8").digest("hex");
36
- return `sha256:${digest}`;
37
- }
38
-
39
- // src/replay/replay-provider-runner.ts
40
- var ReplayProviderRunner = class {
41
- constructor(inner, opts) {
42
- this.inner = inner;
43
- this.opts = opts;
44
- }
45
- inner;
46
- opts;
47
- /** Resolve the target session for this call. See {@link ReplayProviderRunnerOptions.sessionId}. */
48
- resolveSessionId() {
49
- const { sessionId } = this.opts;
50
- return typeof sessionId === "function" ? sessionId() : sessionId;
51
- }
52
- async run(runOpts) {
53
- const hash = hashRequest(runOpts.request);
54
- const sessionId = this.resolveSessionId();
55
- const cached = await this.opts.log.lookup(sessionId, hash);
56
- if (this.opts.mode === "replay") {
57
- if (!cached) {
58
- this.opts.logger?.warn?.(
59
- `replay: no recorded response for hash ${hash} (model ${runOpts.request.model})`
60
- );
61
- throw new Error(
62
- `ReplayProviderRunner: no recorded response for hash ${hash} in session ${sessionId}. Either the request changed since recording, or this session has no replay log.`
63
- );
64
- }
65
- this.opts.logger?.debug?.(
66
- `replay: served cached response for hash ${hash} (recorded ${cached.ts})`
67
- );
68
- return cached.response;
69
- }
70
- if (this.opts.mode === "auto" && cached) {
71
- this.opts.logger?.debug?.(
72
- `replay: auto-hit hash ${hash}, served cached response`
73
- );
74
- return cached.response;
75
- }
76
- const response = await this.inner.run(runOpts);
77
- await this.opts.log.record({
78
- sessionId,
79
- request: runOpts.request,
80
- response
81
- });
82
- return response;
83
- }
84
- };
1
+ import {
2
+ ReplayProviderRunner
3
+ } from "../chunk-BJHVULHO.js";
4
+ import {
5
+ hashRequest
6
+ } from "../chunk-SWUFN7XM.js";
85
7
  export {
86
8
  ReplayProviderRunner,
87
9
  hashRequest
@@ -45,6 +45,12 @@ export declare const ToolCapabilities: {
45
45
  readonly NET_OUTBOUND: 'net.outbound';
46
46
  /** Can mutate in-memory session todos only. */
47
47
  readonly SESSION_TODO: 'session.todo';
48
+ /**
49
+ * Can post an ephemeral same-session note to the leader or a peer
50
+ * (`session_note` / `session.note`). In-process only — not the durable
51
+ * cross-session mailbox (`coordination.mail`).
52
+ */
53
+ readonly SESSION_NOTE: 'session.note';
48
54
  /** Can park after-task `<nextsteps>` suggestions for the current turn. */
49
55
  readonly SESSION_NEXTSTEPS: 'session.nextsteps';
50
56
  /** Can mutate in-memory session mode only. */
@@ -14,5 +14,5 @@
14
14
  *
15
15
  * @module security/file-permissions
16
16
  */
17
- export { restrictDirPermissions, restrictFilePermissions, SECRET_DIR_MODE, SECRET_FILE_MODE, type RestrictPermissionsOptions, } from '@wrongstack/persistence';
17
+ export { restrictDirPermissions, restrictFilePermissions, SECRET_DIR_MODE, SECRET_FILE_MODE } from '@wrongstack/persistence';
18
18
  //# sourceMappingURL=file-permissions.d.ts.map