@mono-agent/agent-app 0.11.3 → 0.11.4

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 (345) hide show
  1. package/README.md +222 -26
  2. package/dist/adapter-send-tools-main.js +7 -1
  3. package/dist/adapter-send-tools-main.js.map +1 -1
  4. package/dist/adapter-send-tools.d.ts +19 -1
  5. package/dist/adapter-send-tools.d.ts.map +1 -1
  6. package/dist/adapter-send-tools.js +127 -13
  7. package/dist/adapter-send-tools.js.map +1 -1
  8. package/dist/app-config.d.ts.map +1 -1
  9. package/dist/app-config.js +15 -2
  10. package/dist/app-config.js.map +1 -1
  11. package/dist/app-controller-channels.d.ts +8 -0
  12. package/dist/app-controller-channels.d.ts.map +1 -0
  13. package/dist/app-controller-channels.js +207 -0
  14. package/dist/app-controller-channels.js.map +1 -0
  15. package/dist/app-controller-continuation.d.ts +26 -0
  16. package/dist/app-controller-continuation.d.ts.map +1 -0
  17. package/dist/app-controller-continuation.js +198 -0
  18. package/dist/app-controller-continuation.js.map +1 -0
  19. package/dist/app-controller-lifecycle.d.ts +6 -0
  20. package/dist/app-controller-lifecycle.d.ts.map +1 -0
  21. package/dist/app-controller-lifecycle.js +81 -0
  22. package/dist/app-controller-lifecycle.js.map +1 -0
  23. package/dist/app-controller-maintenance.d.ts +13 -0
  24. package/dist/app-controller-maintenance.d.ts.map +1 -0
  25. package/dist/app-controller-maintenance.js +180 -0
  26. package/dist/app-controller-maintenance.js.map +1 -0
  27. package/dist/app-controller-memory-health.d.ts +12 -0
  28. package/dist/app-controller-memory-health.d.ts.map +1 -0
  29. package/dist/app-controller-memory-health.js +160 -0
  30. package/dist/app-controller-memory-health.js.map +1 -0
  31. package/dist/app-controller-memory.d.ts +9 -0
  32. package/dist/app-controller-memory.d.ts.map +1 -0
  33. package/dist/app-controller-memory.js +83 -0
  34. package/dist/app-controller-memory.js.map +1 -0
  35. package/dist/app-controller-responder.d.ts +20 -0
  36. package/dist/app-controller-responder.d.ts.map +1 -0
  37. package/dist/app-controller-responder.js +246 -0
  38. package/dist/app-controller-responder.js.map +1 -0
  39. package/dist/app-controller-traceability.d.ts +25 -0
  40. package/dist/app-controller-traceability.d.ts.map +1 -0
  41. package/dist/app-controller-traceability.js +418 -0
  42. package/dist/app-controller-traceability.js.map +1 -0
  43. package/dist/app-controller-utils.d.ts +38 -0
  44. package/dist/app-controller-utils.d.ts.map +1 -0
  45. package/dist/app-controller-utils.js +185 -0
  46. package/dist/app-controller-utils.js.map +1 -0
  47. package/dist/app-controller.d.ts +400 -0
  48. package/dist/app-controller.d.ts.map +1 -0
  49. package/dist/app-controller.js +336 -0
  50. package/dist/app-controller.js.map +1 -0
  51. package/dist/app.d.ts +7 -115
  52. package/dist/app.d.ts.map +1 -1
  53. package/dist/app.js +6 -1912
  54. package/dist/app.js.map +1 -1
  55. package/dist/artifact-retention.d.ts +4 -0
  56. package/dist/artifact-retention.d.ts.map +1 -1
  57. package/dist/artifact-retention.js +38 -0
  58. package/dist/artifact-retention.js.map +1 -1
  59. package/dist/backfill.d.ts +3 -1
  60. package/dist/backfill.d.ts.map +1 -1
  61. package/dist/backfill.js +5 -1
  62. package/dist/backfill.js.map +1 -1
  63. package/dist/background-runtime.d.ts +27 -0
  64. package/dist/background-runtime.d.ts.map +1 -1
  65. package/dist/background-runtime.js +383 -205
  66. package/dist/background-runtime.js.map +1 -1
  67. package/dist/background-worker-lease.d.ts.map +1 -1
  68. package/dist/background-worker-lease.js +41 -241
  69. package/dist/background-worker-lease.js.map +1 -1
  70. package/dist/background.d.ts +31 -9
  71. package/dist/background.d.ts.map +1 -1
  72. package/dist/background.js +543 -272
  73. package/dist/background.js.map +1 -1
  74. package/dist/channel-drivers/cron.d.ts +11 -0
  75. package/dist/channel-drivers/cron.d.ts.map +1 -0
  76. package/dist/channel-drivers/cron.js +168 -0
  77. package/dist/channel-drivers/cron.js.map +1 -0
  78. package/dist/channel-drivers/live.d.ts +11 -0
  79. package/dist/channel-drivers/live.d.ts.map +1 -0
  80. package/dist/channel-drivers/live.js +47 -0
  81. package/dist/channel-drivers/live.js.map +1 -0
  82. package/dist/channel-drivers/native-notify.d.ts +27 -0
  83. package/dist/channel-drivers/native-notify.d.ts.map +1 -0
  84. package/dist/channel-drivers/native-notify.js +94 -0
  85. package/dist/channel-drivers/native-notify.js.map +1 -0
  86. package/dist/channel-drivers/openai-api.d.ts +7 -0
  87. package/dist/channel-drivers/openai-api.d.ts.map +1 -0
  88. package/dist/channel-drivers/openai-api.js +63 -0
  89. package/dist/channel-drivers/openai-api.js.map +1 -0
  90. package/dist/channel-drivers/shared.d.ts +4 -0
  91. package/dist/channel-drivers/shared.d.ts.map +1 -0
  92. package/dist/channel-drivers/shared.js +5 -0
  93. package/dist/channel-drivers/shared.js.map +1 -0
  94. package/dist/channel-drivers/slack.d.ts +14 -0
  95. package/dist/channel-drivers/slack.d.ts.map +1 -0
  96. package/dist/channel-drivers/slack.js +227 -0
  97. package/dist/channel-drivers/slack.js.map +1 -0
  98. package/dist/channel-drivers/telegram.d.ts +11 -0
  99. package/dist/channel-drivers/telegram.d.ts.map +1 -0
  100. package/dist/channel-drivers/telegram.js +244 -0
  101. package/dist/channel-drivers/telegram.js.map +1 -0
  102. package/dist/channel-drivers/tui.d.ts +15 -0
  103. package/dist/channel-drivers/tui.d.ts.map +1 -0
  104. package/dist/channel-drivers/tui.js +108 -0
  105. package/dist/channel-drivers/tui.js.map +1 -0
  106. package/dist/channel-drivers/webhook.d.ts +7 -0
  107. package/dist/channel-drivers/webhook.d.ts.map +1 -0
  108. package/dist/channel-drivers/webhook.js +115 -0
  109. package/dist/channel-drivers/webhook.js.map +1 -0
  110. package/dist/channels.d.ts +21 -81
  111. package/dist/channels.d.ts.map +1 -1
  112. package/dist/channels.js +11 -1174
  113. package/dist/channels.js.map +1 -1
  114. package/dist/cli-args.d.ts +121 -0
  115. package/dist/cli-args.d.ts.map +1 -0
  116. package/dist/cli-args.js +532 -0
  117. package/dist/cli-args.js.map +1 -0
  118. package/dist/cli-background-command.d.ts +59 -0
  119. package/dist/cli-background-command.d.ts.map +1 -0
  120. package/dist/cli-background-command.js +475 -0
  121. package/dist/cli-background-command.js.map +1 -0
  122. package/dist/cli-cancellation.d.ts +6 -0
  123. package/dist/cli-cancellation.d.ts.map +1 -0
  124. package/dist/cli-cancellation.js +23 -0
  125. package/dist/cli-cancellation.js.map +1 -0
  126. package/dist/cli-commands.d.ts +12 -0
  127. package/dist/cli-commands.d.ts.map +1 -0
  128. package/dist/cli-commands.js +306 -0
  129. package/dist/cli-commands.js.map +1 -0
  130. package/dist/cli-help.d.ts +11 -0
  131. package/dist/cli-help.d.ts.map +1 -0
  132. package/dist/cli-help.js +262 -0
  133. package/dist/cli-help.js.map +1 -0
  134. package/dist/cli-init-command.d.ts +60 -0
  135. package/dist/cli-init-command.d.ts.map +1 -0
  136. package/dist/cli-init-command.js +1910 -0
  137. package/dist/cli-init-command.js.map +1 -0
  138. package/dist/cli-install-skill-command.d.ts +3 -0
  139. package/dist/cli-install-skill-command.d.ts.map +1 -0
  140. package/dist/cli-install-skill-command.js +51 -0
  141. package/dist/cli-install-skill-command.js.map +1 -0
  142. package/dist/cli-sandbox-command.d.ts +10 -0
  143. package/dist/cli-sandbox-command.d.ts.map +1 -0
  144. package/dist/cli-sandbox-command.js +100 -0
  145. package/dist/cli-sandbox-command.js.map +1 -0
  146. package/dist/cli-validate-config-command.d.ts +36 -0
  147. package/dist/cli-validate-config-command.d.ts.map +1 -0
  148. package/dist/cli-validate-config-command.js +317 -0
  149. package/dist/cli-validate-config-command.js.map +1 -0
  150. package/dist/cli.d.ts +6 -248
  151. package/dist/cli.d.ts.map +1 -1
  152. package/dist/cli.js +6 -3792
  153. package/dist/cli.js.map +1 -1
  154. package/dist/config-reference.d.ts +2 -1
  155. package/dist/config-reference.d.ts.map +1 -1
  156. package/dist/config-reference.js +14 -3
  157. package/dist/config-reference.js.map +1 -1
  158. package/dist/configured-agent.d.ts +23 -0
  159. package/dist/configured-agent.d.ts.map +1 -1
  160. package/dist/configured-agent.js +89 -12
  161. package/dist/configured-agent.js.map +1 -1
  162. package/dist/continuation-dispatch-worker.d.ts +21 -0
  163. package/dist/continuation-dispatch-worker.d.ts.map +1 -0
  164. package/dist/continuation-dispatch-worker.js +425 -0
  165. package/dist/continuation-dispatch-worker.js.map +1 -0
  166. package/dist/continuation-http-routes.d.ts +15 -0
  167. package/dist/continuation-http-routes.d.ts.map +1 -0
  168. package/dist/continuation-http-routes.js +265 -0
  169. package/dist/continuation-http-routes.js.map +1 -0
  170. package/dist/continuation-operator-api.d.ts +18 -0
  171. package/dist/continuation-operator-api.d.ts.map +1 -0
  172. package/dist/continuation-operator-api.js +164 -0
  173. package/dist/continuation-operator-api.js.map +1 -0
  174. package/dist/continuation-origin-store.d.ts +19 -0
  175. package/dist/continuation-origin-store.d.ts.map +1 -0
  176. package/dist/continuation-origin-store.js +273 -0
  177. package/dist/continuation-origin-store.js.map +1 -0
  178. package/dist/continuation-service-errors.d.ts +18 -0
  179. package/dist/continuation-service-errors.d.ts.map +1 -0
  180. package/dist/continuation-service-errors.js +35 -0
  181. package/dist/continuation-service-errors.js.map +1 -0
  182. package/dist/continuation-service-helpers.d.ts +39 -0
  183. package/dist/continuation-service-helpers.d.ts.map +1 -0
  184. package/dist/continuation-service-helpers.js +308 -0
  185. package/dist/continuation-service-helpers.js.map +1 -0
  186. package/dist/continuation-service-origin.d.ts +55 -0
  187. package/dist/continuation-service-origin.d.ts.map +1 -0
  188. package/dist/continuation-service-origin.js +325 -0
  189. package/dist/continuation-service-origin.js.map +1 -0
  190. package/dist/continuation-service-types.d.ts +110 -0
  191. package/dist/continuation-service-types.d.ts.map +1 -0
  192. package/dist/continuation-service-types.js +11 -0
  193. package/dist/continuation-service-types.js.map +1 -0
  194. package/dist/continuation-service.d.ts +4 -97
  195. package/dist/continuation-service.d.ts.map +1 -1
  196. package/dist/continuation-service.js +9 -1525
  197. package/dist/continuation-service.js.map +1 -1
  198. package/dist/continuation-store-fs.d.ts +15 -0
  199. package/dist/continuation-store-fs.d.ts.map +1 -0
  200. package/dist/continuation-store-fs.js +247 -0
  201. package/dist/continuation-store-fs.js.map +1 -0
  202. package/dist/continuation-store-policy.d.ts +21 -0
  203. package/dist/continuation-store-policy.d.ts.map +1 -0
  204. package/dist/continuation-store-policy.js +278 -0
  205. package/dist/continuation-store-policy.js.map +1 -0
  206. package/dist/continuation-store-records.d.ts +9 -0
  207. package/dist/continuation-store-records.d.ts.map +1 -0
  208. package/dist/continuation-store-records.js +221 -0
  209. package/dist/continuation-store-records.js.map +1 -0
  210. package/dist/continuation-store-types.d.ts +173 -0
  211. package/dist/continuation-store-types.d.ts.map +1 -0
  212. package/dist/continuation-store-types.js +26 -0
  213. package/dist/continuation-store-types.js.map +1 -0
  214. package/dist/continuation-store.d.ts +4 -138
  215. package/dist/continuation-store.d.ts.map +1 -1
  216. package/dist/continuation-store.js +145 -1049
  217. package/dist/continuation-store.js.map +1 -1
  218. package/dist/doctor.d.ts +5 -0
  219. package/dist/doctor.d.ts.map +1 -1
  220. package/dist/doctor.js +575 -38
  221. package/dist/doctor.js.map +1 -1
  222. package/dist/init.d.ts +2 -0
  223. package/dist/init.d.ts.map +1 -1
  224. package/dist/init.js +92 -239
  225. package/dist/init.js.map +1 -1
  226. package/dist/interaction-bridge.d.ts +19 -0
  227. package/dist/interaction-bridge.d.ts.map +1 -1
  228. package/dist/interaction-bridge.js +130 -0
  229. package/dist/interaction-bridge.js.map +1 -1
  230. package/dist/launchd-logs.d.ts +91 -0
  231. package/dist/launchd-logs.d.ts.map +1 -0
  232. package/dist/launchd-logs.js +1499 -0
  233. package/dist/launchd-logs.js.map +1 -0
  234. package/dist/launchd.d.ts +27 -0
  235. package/dist/launchd.d.ts.map +1 -1
  236. package/dist/launchd.js +89 -10
  237. package/dist/launchd.js.map +1 -1
  238. package/dist/memory-command.d.ts +2 -0
  239. package/dist/memory-command.d.ts.map +1 -1
  240. package/dist/memory-command.js +161 -48
  241. package/dist/memory-command.js.map +1 -1
  242. package/dist/memory-recall-settings.d.ts +64 -0
  243. package/dist/memory-recall-settings.d.ts.map +1 -0
  244. package/dist/memory-recall-settings.js +51 -0
  245. package/dist/memory-recall-settings.js.map +1 -0
  246. package/dist/memory-recall.d.ts +7 -95
  247. package/dist/memory-recall.d.ts.map +1 -1
  248. package/dist/memory-recall.js +8 -143
  249. package/dist/memory-recall.js.map +1 -1
  250. package/dist/memory-rituals.d.ts +3 -3
  251. package/dist/memory-rituals.d.ts.map +1 -1
  252. package/dist/memory-rituals.js +16 -111
  253. package/dist/memory-rituals.js.map +1 -1
  254. package/dist/modules/catalog.js +2 -2
  255. package/dist/modules/catalog.js.map +1 -1
  256. package/dist/modules/known-tools.d.ts +8 -6
  257. package/dist/modules/known-tools.d.ts.map +1 -1
  258. package/dist/modules/known-tools.js +8 -6
  259. package/dist/modules/known-tools.js.map +1 -1
  260. package/dist/notify-destinations.d.ts +5 -0
  261. package/dist/notify-destinations.d.ts.map +1 -1
  262. package/dist/notify-destinations.js +7 -1
  263. package/dist/notify-destinations.js.map +1 -1
  264. package/dist/owner-private-lock.d.ts +95 -0
  265. package/dist/owner-private-lock.d.ts.map +1 -0
  266. package/dist/owner-private-lock.js +566 -0
  267. package/dist/owner-private-lock.js.map +1 -0
  268. package/dist/pi-oauth-login.d.ts +2 -0
  269. package/dist/pi-oauth-login.d.ts.map +1 -1
  270. package/dist/pi-oauth-login.js +39 -5
  271. package/dist/pi-oauth-login.js.map +1 -1
  272. package/dist/posted-message-index.d.ts +35 -16
  273. package/dist/posted-message-index.d.ts.map +1 -1
  274. package/dist/posted-message-index.js +1068 -52
  275. package/dist/posted-message-index.js.map +1 -1
  276. package/dist/posted-reply-history.d.ts +17 -0
  277. package/dist/posted-reply-history.d.ts.map +1 -0
  278. package/dist/posted-reply-history.js +169 -0
  279. package/dist/posted-reply-history.js.map +1 -0
  280. package/dist/proactive-notify.d.ts.map +1 -1
  281. package/dist/proactive-notify.js +6 -4
  282. package/dist/proactive-notify.js.map +1 -1
  283. package/dist/project-skills.d.ts +4 -0
  284. package/dist/project-skills.d.ts.map +1 -1
  285. package/dist/project-skills.js +99 -130
  286. package/dist/project-skills.js.map +1 -1
  287. package/dist/provider-setup.d.ts +0 -1
  288. package/dist/provider-setup.d.ts.map +1 -1
  289. package/dist/provider-setup.js +0 -3
  290. package/dist/provider-setup.js.map +1 -1
  291. package/dist/readiness-probe-worker.d.ts +61 -1
  292. package/dist/readiness-probe-worker.d.ts.map +1 -1
  293. package/dist/readiness-probe-worker.js +49 -56
  294. package/dist/readiness-probe-worker.js.map +1 -1
  295. package/dist/readiness-probe.d.ts +6 -9
  296. package/dist/readiness-probe.d.ts.map +1 -1
  297. package/dist/readiness-probe.js +23 -56
  298. package/dist/readiness-probe.js.map +1 -1
  299. package/dist/redact-secrets.d.ts +15 -0
  300. package/dist/redact-secrets.d.ts.map +1 -0
  301. package/dist/redact-secrets.js +65 -0
  302. package/dist/redact-secrets.js.map +1 -0
  303. package/dist/run-history.js +34 -24
  304. package/dist/run-history.js.map +1 -1
  305. package/dist/runtime-provenance.d.ts +8 -0
  306. package/dist/runtime-provenance.d.ts.map +1 -0
  307. package/dist/runtime-provenance.js +225 -0
  308. package/dist/runtime-provenance.js.map +1 -0
  309. package/dist/sandbox-manager.d.ts +4 -1
  310. package/dist/sandbox-manager.d.ts.map +1 -1
  311. package/dist/sandbox-manager.js +114 -273
  312. package/dist/sandbox-manager.js.map +1 -1
  313. package/dist/secure-file-replace.d.ts +49 -0
  314. package/dist/secure-file-replace.d.ts.map +1 -0
  315. package/dist/secure-file-replace.js +270 -0
  316. package/dist/secure-file-replace.js.map +1 -0
  317. package/dist/seen-conversations.d.ts +32 -5
  318. package/dist/seen-conversations.d.ts.map +1 -1
  319. package/dist/seen-conversations.js +145 -15
  320. package/dist/seen-conversations.js.map +1 -1
  321. package/dist/sessions.d.ts +20 -0
  322. package/dist/sessions.d.ts.map +1 -1
  323. package/dist/sessions.js +41 -6
  324. package/dist/sessions.js.map +1 -1
  325. package/dist/wizard/index.d.ts +2 -2
  326. package/dist/wizard/index.d.ts.map +1 -1
  327. package/dist/wizard/index.js +1 -1
  328. package/dist/wizard/index.js.map +1 -1
  329. package/dist/wizard/presets.d.ts +2 -1
  330. package/dist/wizard/presets.d.ts.map +1 -1
  331. package/dist/wizard/presets.js +2 -1
  332. package/dist/wizard/presets.js.map +1 -1
  333. package/dist/wizard/run.d.ts +0 -26
  334. package/dist/wizard/run.d.ts.map +1 -1
  335. package/dist/wizard/run.js +0 -53
  336. package/dist/wizard/run.js.map +1 -1
  337. package/package.json +21 -16
  338. package/schema/mono-agent.config.schema.json +17 -6
  339. package/skills/mono-agent-composer/SKILL.md +3 -3
  340. package/skills/mono-agent-composer/references/config-blueprint.md +41 -22
  341. package/skills/mono-agent-composer/references/discovery-questions.md +4 -4
  342. package/skills/mono-agent-composer/references/feature-coverage.md +14 -14
  343. package/skills/mono-agent-composer/references/package-map.md +3 -3
  344. package/skills/mono-agent-composer/references/playbooks.md +38 -20
  345. package/skills/mono-agent-composer/references/validation.md +16 -3
package/README.md CHANGED
@@ -6,6 +6,8 @@ channel plus traceability. Ships the
6
6
  `mono-agent` CLI (`init`, `auth`, `sandbox`, `validate`, `memory`, `tui`, `start`) so an agent folder works without
7
7
  hand-written composition code.
8
8
 
9
+ Setup has two deliberate wall-clock paths: flags or non-TTY input use the fast scaffold-only path (unless explicit `--auth` adds provider setup) and never claim readiness. Bare `mono-agent init` on a TTY makes one real no-tool model call per selected route before committing the scaffold, with timeouts of 90s for each cloud route and 240s for each local route.
10
+
9
11
  ## Category
10
12
 
11
13
  Category: `app`
@@ -109,7 +111,8 @@ paths, stale locks, invalid dotenv, conflicts, and Windows fail closed to manual
109
111
  interactive wizard can start the background agent it requires one disposable no-tool
110
112
  response from every selected runtime route and a complete validation report with
111
113
  every selected expectation ready. Cancellation, provider failure, timeout (90s
112
- cloud / 240s local per route), empty output, or any tool action fails the check.
114
+ for each cloud route and 240s for each local route), empty output, or any tool
115
+ action fails the check.
113
116
  Escape or Ctrl-C interrupts preflight; recovery can resume verified routes when
114
117
  the non-secret plan fingerprint still matches, restart all checks, edit choices,
115
118
  or cancel. Authentication repair clears every prior route proof because it can
@@ -177,6 +180,34 @@ name the canonical config. Readiness requires one live launchd-owned trace PID,
177
180
  the exact durable snapshot, and, for configuration, a reachable TUI endpoint.
178
181
  Stop succeeds only after both launchd unload and worker death are proven.
179
182
 
183
+ `mono-agent validate` (and its `doctor` alias) reports the provenance of the CLI
184
+ producing the report in its Runtime provenance section: a private managed marker
185
+ whose freshly recomputed installed closure and coherent current manifest validate
186
+ names its full closure id plus sanitized install metadata; other executions report
187
+ `dev (unmanaged)`. With `--consumer`, this remains the validator CLI's provenance,
188
+ not an attestation of a separately running daemon.
189
+
190
+ Managed launchd stdout/stderr use a fixed automatic policy: each active file
191
+ and each of three retained generations is capped at 5 MiB. A separate one-shot
192
+ LaunchAgent checks every five minutes. When maintenance is needed it takes the
193
+ same per-config lifecycle lock, verifies the existing main plist, proves the
194
+ worker stopped, and commits owner-only bounded tails through per-agent,
195
+ fsynced deterministic stages plus a recoverable journal. A separate per-agent
196
+ lifecycle intent is atomically published as `stopping` before bootout, promoted
197
+ to `stopped` only after launchd unload and every observed PID's death, and
198
+ changed to `restoring` before bootstrap invalidates that old stop proof. It is
199
+ removed only after the exact plist is rechecked and its worker is live. An
200
+ interrupted pre-proof pass whose launchd PID is gone fails closed; durable
201
+ `stopped` rotation can resume without authorizing another agent or an intentionally
202
+ stopped service.
203
+ Start and restart perform
204
+ the same stopped-writer maintenance before loading helper then worker; stop
205
+ unloads the helper first and removes both definitions. Unsafe paths or a changed
206
+ plist fail closed without following links or resurrecting a stopped service.
207
+ `mono-agent validate` / `doctor` only inspect metadata and report exact active,
208
+ retained, and total bytes for safely inspected files; unsafe or unreadable byte
209
+ inventory is unavailable. They never rotate or chmod logs.
210
+
180
211
  Guided readiness uses a worker-reproducible environment rather than the launching
181
212
  shell: durable `.env` values, entered selected secrets, the resolved Pi auth path,
182
213
  and operational values such as `PATH`/`HOME`. Shell-only provider credentials and
@@ -215,10 +246,20 @@ allow-all on MCP-capable routes; a restrictive `tools.allowedTools` must name
215
246
  `disallowedTools` can remove it. Direct OpenCode and other MCP-incompatible
216
247
  routes suppress it. Its `list` and `inspect` actions can read only completed
217
248
  prior runs in the exact current conversation bucket and return bounded,
218
- redacted, normalized evidence. They exclude the current/running run, other
219
- conversations or rollover buckets, system prompts, reasoning, recalled memory,
220
- turn-context payloads, and raw artifact paths; historical text is marked
221
- untrusted.
249
+ normalized evidence. Structured projected values first pass through the shared
250
+ observability redactor: non-numeric values under sensitive-looking object keys
251
+ are redacted; numeric values under matched keys are retained; free text is not
252
+ content-scanned or scrubbed. `RunHistory` then applies an additional projection
253
+ sanitizer. In that second pass, numeric values under `credential`, `private_key`,
254
+ and `bearer` can remain visible; numeric values under `apiKey`, `token`,
255
+ `client_secret`, `password`, `authorization`, and `cookie` are redacted.
256
+ Assignment-shaped password or secret prose is content-scanned and replaced with
257
+ the diagnostic or tool-result omission sentinel. An optionally quoted assignment
258
+ value is exempt only when its complete value is exactly `[redacted]`; any prefix
259
+ or suffix is omitted. Results exclude the
260
+ current/running run, other conversations or rollover buckets, system prompts,
261
+ reasoning, recalled memory, turn-context payloads, and raw artifact paths;
262
+ historical text is marked untrusted.
222
263
 
223
264
  For missing context, the agent should use active conversation history first,
224
265
  `MemoryRecall` for intentionally captured durable facts, and `RunHistory` for
@@ -311,27 +352,182 @@ await app.stop();
311
352
 
312
353
  ## Public API
313
354
 
314
- - `startMonoAgentApp(options)` → `MonoAgentApp` (statuses, cached typed
315
- `memoryHealth`, `applyConfigChange`, `startChannelIfConfigured`, `stop`).
316
- - `defaultChannelDrivers(overrides)` plus built-in per-channel
317
- `create<Channel>ChannelDriver(overrides)` factories with test seams.
318
- - `createConfiguredAgentRuntime`, `createConfiguredAgentHarness`,
319
- `createConfiguredAgentResponder`, and `createConfiguredMemory` for
320
- transport-free programmatic composition from a loaded `MonoAgentConfig`.
321
- - `createBroadcastRunRecorder` for publishing recorder lifecycle events to a
322
- live run-event sink.
323
- - `initMonoAgentFolder(options)` / `validateMonoAgentFolder(options)`. Init results
324
- expose precise `changes`, `secretPersistence`, and canonical `identityRole`
325
- created/preserved/planned outcomes; the compatibility `secretsPersisted` flag
326
- is true only after a committed secret write.
327
- - `MONO_AGENT_APP_FIELD_GROUPS` and the `resolveApp*` traceability/artifact
328
- resolvers.
329
- - `runCli(argv)` / `parseCliArgs(argv)` backing the `mono-agent` bin.
330
- - Managed configuration CLI lifecycle: macOS `mono-agent tui --configure`
331
- against the background agent (`--local` is ordinary chat only), plus managed
332
- project-skill drift/update through `install-skill --project`.
333
- - Managed SRT lifecycle: `sandboxRuntimeStatus`, `setupManagedSrt`, and
334
- `checkSandboxRuntime` (also exposed as `mono-agent sandbox status|setup|check`).
355
+ <!-- public-api-inventory:start -->
356
+ <!-- Generated by scripts/generate-public-api-docs.mjs. Do not edit by hand. -->
357
+
358
+ Every symbol exported by each public code entrypoint is listed below.
359
+
360
+ **`@mono-agent/agent-app`**
361
+
362
+ ```text
363
+ AppTraceDefaults
364
+ BroadcastRunContext
365
+ COMPOSER_SKILL_NAME
366
+ CONTINUATION_CLAIM_TOKEN_ENV
367
+ CONTINUATION_CLAIM_TOKEN_HEADER
368
+ CONTINUATION_CLAIM_URL_ENV
369
+ CONTINUATION_CLAIM_URL_HEADER
370
+ CONTINUATION_FINGERPRINT_ENV
371
+ CONTINUATION_FINGERPRINT_HEADER
372
+ CONTINUATION_MODE_ENV
373
+ CONTINUATION_MODE_HEADER
374
+ CONTINUATION_STATES
375
+ ChannelDriver
376
+ ChannelDriverOverrides
377
+ ChannelId
378
+ ChannelStartInput
379
+ ChannelStatus
380
+ ConfigApplyResult
381
+ ConfiguredAgentHarnessOptions
382
+ ConfiguredAgentResponderOptions
383
+ ConfiguredAgentRuntimeOptions
384
+ ConsumerContractFixtureOptions
385
+ ConsumerContractFixtureResult
386
+ ConsumerContractIssue
387
+ ConsumerContractName
388
+ ConsumerContractSectionStatus
389
+ ContinuationClaimCapability
390
+ ContinuationDeliveryReceipt
391
+ ContinuationHealthSnapshot
392
+ ContinuationHistoryRecordInput
393
+ ContinuationHistoryRecordResult
394
+ ContinuationLimits
395
+ ContinuationMode
396
+ ContinuationNativeDeliveryInput
397
+ ContinuationNativeDeliveryResult
398
+ ContinuationProtocolError
399
+ ContinuationRetentionOptions
400
+ ContinuationServiceHandle
401
+ ContinuationServiceLogger
402
+ ContinuationServiceOptions
403
+ ContinuationSettings
404
+ ContinuationState
405
+ ContinuationStatusSnapshot
406
+ ContinuationStoreStats
407
+ ContinuationSynthesisAvailability
408
+ ContinuationSynthesisInput
409
+ ContinuationSynthesisResult
410
+ ContinuationSynthesisUnavailableError
411
+ ContinuationTerminalState
412
+ CronChannelOverrides
413
+ DEFAULT_CONTINUATION_LIMITS
414
+ DEFAULT_CONTINUATION_SERVICE_PORT
415
+ ExporterStatus
416
+ InitFileChange
417
+ InitFileChangeKind
418
+ InitMonoAgentFolderOptions
419
+ InitMonoAgentFolderResult
420
+ InstallSkillOptions
421
+ InstallSkillResult
422
+ InstallSkillTarget
423
+ IssueContinuationCapabilityInput
424
+ MANAGED_SRT_LOCK_SHA256
425
+ MANAGED_SRT_PACKAGE
426
+ MANAGED_SRT_VERSION
427
+ ManagedSrtSetupOptions
428
+ ManagedSrtSetupResult
429
+ MemoryRitualSchedule
430
+ MonoAgentApp
431
+ MonoAgentAppConfigInput
432
+ MonoAgentAppLogger
433
+ MonoAgentAppOptions
434
+ NamedContinuationRoute
435
+ OpenAIApiChannelOverrides
436
+ PreflightResult
437
+ RUN_HISTORY_MCP_SERVER_NAME
438
+ RUN_HISTORY_TOOL_NAME
439
+ ResolvedExporter
440
+ RunContinuationCommandOptions
441
+ RunHistoryBinding
442
+ RunHistoryRuntimeExtension
443
+ RunHistoryRuntimeExtensionOptions
444
+ RunningChannel
445
+ RunningRituals
446
+ SandboxCheckResult
447
+ SandboxCommandDependencies
448
+ SandboxFunctionalCheck
449
+ SandboxManagerOptions
450
+ SandboxRuntimeStatus
451
+ SecretEnvRefusalCode
452
+ SecretPersistenceOutcome
453
+ SecretPersistenceStatus
454
+ SlackChannelOverrides
455
+ StartMemoryRitualsInput
456
+ TERMINAL_CONTINUATION_STATES
457
+ TelegramChannelOverrides
458
+ TraceabilityStatus
459
+ ValidateMonoAgentFolderOptions
460
+ ValidationReport
461
+ ValidationSection
462
+ ValidationStatus
463
+ WebhookChannelOverrides
464
+ badge
465
+ canonicalContinuationJson
466
+ channelBadge
467
+ checkSandboxRuntime
468
+ computeColorEnabled
469
+ configuredRuntimeFallbackModels
470
+ configuredRuntimeModels
471
+ consumerContractNames
472
+ consumerContractRunSummaryStatuses
473
+ continuationDigest
474
+ continuationOperatorToken
475
+ createBroadcastRunRecorder
476
+ createConfiguredAgentHarness
477
+ createConfiguredAgentResponder
478
+ createConfiguredAgentRuntime
479
+ createConfiguredMemory
480
+ createCronChannelDriver
481
+ createOpenAIApiChannelDriver
482
+ createRunHistoryRuntimeExtension
483
+ createRunHistoryServer
484
+ createSlackChannelDriver
485
+ createTelegramChannelDriver
486
+ createWebhookChannelDriver
487
+ defaultChannelDrivers
488
+ ensureStartable
489
+ hasConfiguredRuntimeFallbacks
490
+ healthBadge
491
+ initMonoAgentFolder
492
+ installComposerSkill
493
+ isAppCoreConfigError
494
+ isColorEnabled
495
+ isContinuationMode
496
+ isContinuationState
497
+ isRunHistoryToolAllowed
498
+ keyValue
499
+ loadAppCoreConfig
500
+ loadCliEnvFile
501
+ loadContinuationSettings
502
+ managedSrtInstallRoot
503
+ normalizeContinuationReplyTarget
504
+ parseCliArgs
505
+ phoenixAppBaseUrl
506
+ printAppStatus
507
+ renderHelp
508
+ resolveAppArtifactDir
509
+ resolveAppObservabilityExporters
510
+ resolveAppTraceHeartbeatMs
511
+ resolveAppTraceRegistryDir
512
+ resolveAppTraceSourceId
513
+ resolveAppTraceSourceLabel
514
+ resolveAppTraceStaleAfterMs
515
+ resolveChannelDrivers
516
+ rule
517
+ runCli
518
+ runContinuationCommand
519
+ runSandboxCommand
520
+ sandboxRuntimeStatus
521
+ setupManagedSrt
522
+ startContinuationService
523
+ startMemoryRituals
524
+ startMonoAgentApp
525
+ style
526
+ validateConsumerContractFixture
527
+ validateMonoAgentFolder
528
+ ```
529
+
530
+ <!-- public-api-inventory:end -->
335
531
 
336
532
  ## Dependency Boundary
337
533
 
@@ -15,11 +15,17 @@ async function main() {
15
15
  settings.telegram?.apiRoot,
16
16
  settings.telegram?.askBridge?.bridgeUrl,
17
17
  settings.askUser?.bridgeUrl,
18
+ childConfig.deliveryHistory?.bridgeUrl,
18
19
  ].filter((value) => value !== undefined),
19
20
  });
20
21
  const removeProxyLifecycle = proxy === undefined ? () => { } : installProxyLifecycle(proxy);
21
22
  try {
22
- const httpOptions = proxy === undefined ? {} : { fetchImpl: proxy.fetchImpl };
23
+ const httpOptions = {
24
+ ...(proxy === undefined ? {} : { fetchImpl: proxy.fetchImpl }),
25
+ ...(childConfig.deliveryHistory === undefined
26
+ ? {}
27
+ : { deliveryHistory: childConfig.deliveryHistory }),
28
+ };
23
29
  const clients = await createAdapterSendToolsClients(settings, httpOptions);
24
30
  const server = await createAdapterSendToolsServer(settings, clients, childConfig.indexing, httpOptions);
25
31
  await server.connect(new StdioServerTransport());
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-send-tools-main.js","sourceRoot":"","sources":["../src/adapter-send-tools-main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter-send-tools-main.js","sourceRoot":"","sources":["../src/adapter-send-tools-main.ts"],"names":[],"mappings":"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"}
@@ -70,6 +70,22 @@ export interface AdapterSendToolsClients {
70
70
  }
71
71
  export interface AdapterSendToolsHttpOptions {
72
72
  readonly fetchImpl?: typeof fetch;
73
+ readonly deliveryHistory?: AdapterSendToolsDeliveryHistory;
74
+ }
75
+ export interface AdapterSendToolsDeliveryHistory {
76
+ readonly bridgeUrl: string;
77
+ readonly bridgeToken: string;
78
+ }
79
+ export interface AdapterSendToolsDeliveryHistoryCapabilityIssuer {
80
+ issueDeliveryHistoryCapability(input: {
81
+ readonly runId: string;
82
+ readonly producerConversationId: string;
83
+ readonly allowedChannels: readonly ("slack" | "telegram")[];
84
+ }): {
85
+ readonly url: string;
86
+ readonly token: string;
87
+ release(): void;
88
+ };
73
89
  }
74
90
  export interface AdapterSendToolsRuntimeExtension {
75
91
  readonly runtimeOptions: {
@@ -127,6 +143,7 @@ export interface AdapterSendToolsChildContext {
127
143
  readonly indexPath?: string;
128
144
  readonly runOutputDir?: string;
129
145
  readonly runOutputIdentity?: FileIdentity;
146
+ readonly deliveryHistory?: AdapterSendToolsDeliveryHistory;
130
147
  }
131
148
  export interface AdapterSendToolsInteractionEnv {
132
149
  readonly bridgeUrl: string;
@@ -138,6 +155,7 @@ export interface AdapterSendToolsChildConfig {
138
155
  readonly input: MonoAgentAppConfigInput;
139
156
  readonly allowedTools: readonly string[];
140
157
  readonly indexing?: AdapterSendToolsIndexing;
158
+ readonly deliveryHistory?: AdapterSendToolsDeliveryHistory;
141
159
  }
142
160
  export declare function adapterSendToolsChildConfigFromEnv(env: Record<string, string | undefined>, cwd: string): AdapterSendToolsChildConfig;
143
161
  export declare function adapterSendToolsMcpServerSpec(configPath: string, cwd: string, allowedTools: readonly string[], context?: AdapterSendToolsChildContext, interaction?: AdapterSendToolsInteractionEnv): Record<string, unknown>;
@@ -147,7 +165,7 @@ export declare function adapterSendToolsMcpServerSpec(configPath: string, cwd: s
147
165
  * configured, forwards both to the child so a `SlackSendMessage` post is linked
148
166
  * back to this conversation (so a later in-thread reply resumes it).
149
167
  */
150
- export declare function createAdapterSendToolsRuntimeExtension(configPath: string, cwd: string, allowedTools: readonly string[], indexPath?: string, interaction?: AdapterSendToolsInteractionEnv, runOutputRoot?: string): (input: AdapterSendToolsRequestInput) => Promise<AdapterSendToolsRuntimeExtension>;
168
+ export declare function createAdapterSendToolsRuntimeExtension(configPath: string, cwd: string, allowedTools: readonly string[], indexPath?: string, interaction?: AdapterSendToolsInteractionEnv, runOutputRoot?: string, deliveryHistoryCapabilityIssuer?: AdapterSendToolsDeliveryHistoryCapabilityIssuer): (input: AdapterSendToolsRequestInput) => Promise<AdapterSendToolsRuntimeExtension>;
151
169
  export declare function createAdapterSendToolsClients(settings: AdapterSendToolsSettings, options?: AdapterSendToolsHttpOptions): Promise<AdapterSendToolsClients>;
152
170
  export declare function createAdapterSendToolsServer(settings: AdapterSendToolsSettings, clients: AdapterSendToolsClients, indexing?: AdapterSendToolsIndexing, options?: AdapterSendToolsHttpOptions): Promise<McpServer>;
153
171
  interface FileIdentity {
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-send-tools.d.ts","sourceRoot":"","sources":["../src/adapter-send-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter-send-tools.d.ts","sourceRoot":"","sources":["../src/adapter-send-tools.ts"],"names":[],"mappings":"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"}
@@ -133,6 +133,9 @@ export function adapterSendToolsMcpEnv(configPath, allowedTools, context, intera
133
133
  MONO_AGENT_ADAPTER_TOOLS_RUN_OUTPUT_DEV: String(context.runOutputIdentity.dev),
134
134
  MONO_AGENT_ADAPTER_TOOLS_RUN_OUTPUT_INO: String(context.runOutputIdentity.ino),
135
135
  }),
136
+ // Reserved app-owned credentials must override inherited host environment.
137
+ MONO_AGENT_ADAPTER_TOOLS_HISTORY_BRIDGE_URL: context?.deliveryHistory?.bridgeUrl ?? "",
138
+ MONO_AGENT_ADAPTER_TOOLS_HISTORY_BRIDGE_TOKEN: context?.deliveryHistory?.bridgeToken ?? "",
136
139
  ...(interaction === undefined
137
140
  ? {}
138
141
  : {
@@ -149,12 +152,20 @@ export function adapterSendToolsChildConfigFromEnv(env, cwd) {
149
152
  }
150
153
  const conversationId = optionalString(env.MONO_AGENT_ADAPTER_TOOLS_PRODUCING_CONVERSATION_ID);
151
154
  const indexPath = optionalString(env.MONO_AGENT_ADAPTER_TOOLS_POST_INDEX_PATH);
155
+ const historyBridgeUrl = optionalString(env.MONO_AGENT_ADAPTER_TOOLS_HISTORY_BRIDGE_URL);
156
+ const historyBridgeToken = optionalString(env.MONO_AGENT_ADAPTER_TOOLS_HISTORY_BRIDGE_TOKEN);
157
+ if ((historyBridgeUrl === undefined) !== (historyBridgeToken === undefined)) {
158
+ throw new Error("adapter-send-tools: delivery-history bridge URL and token must either both be present or both be absent.");
159
+ }
152
160
  // Both must be present to index; either alone is a misconfiguration we simply skip.
153
161
  const indexing = conversationId !== undefined && indexPath !== undefined ? { conversationId, indexPath } : undefined;
154
162
  return {
155
163
  input: { env, cwd, configPath },
156
164
  allowedTools: parseAllowedToolNames(env.MONO_AGENT_ADAPTER_TOOLS_ALLOWED_TOOLS),
157
165
  ...(indexing === undefined ? {} : { indexing }),
166
+ ...(historyBridgeUrl === undefined || historyBridgeToken === undefined
167
+ ? {}
168
+ : { deliveryHistory: { bridgeUrl: historyBridgeUrl, bridgeToken: historyBridgeToken } }),
158
169
  };
159
170
  }
160
171
  export function adapterSendToolsMcpServerSpec(configPath, cwd, allowedTools, context, interaction) {
@@ -185,7 +196,7 @@ export function adapterSendToolsMcpServerSpec(configPath, cwd, allowedTools, con
185
196
  * configured, forwards both to the child so a `SlackSendMessage` post is linked
186
197
  * back to this conversation (so a later in-thread reply resumes it).
187
198
  */
188
- export function createAdapterSendToolsRuntimeExtension(configPath, cwd, allowedTools, indexPath, interaction, runOutputRoot) {
199
+ export function createAdapterSendToolsRuntimeExtension(configPath, cwd, allowedTools, indexPath, interaction, runOutputRoot, deliveryHistoryCapabilityIssuer) {
189
200
  return async (input) => {
190
201
  const conversationId = input?.request?.conversationId;
191
202
  const runId = input?.runId;
@@ -194,6 +205,20 @@ export function createAdapterSendToolsRuntimeExtension(configPath, cwd, allowedT
194
205
  const runOutput = runOutputRoot === undefined || !hasRunId
195
206
  ? undefined
196
207
  : await ensureAdapterRunOutputDir(runOutputRoot, runId);
208
+ const deliveryHistoryChannels = [
209
+ ...(allowedTools.includes("SlackSendMessage") ? ["slack"] : []),
210
+ ...(allowedTools.includes("TelegramSendMessage") ? ["telegram"] : []),
211
+ ];
212
+ const deliveryHistory = !hasRunId
213
+ || !hasConversation
214
+ || deliveryHistoryCapabilityIssuer === undefined
215
+ || deliveryHistoryChannels.length === 0
216
+ ? undefined
217
+ : deliveryHistoryCapabilityIssuer.issueDeliveryHistoryCapability({
218
+ runId,
219
+ producerConversationId: conversationId,
220
+ allowedChannels: deliveryHistoryChannels,
221
+ });
197
222
  // The conversation id is forwarded whenever known — AskUser targets it even
198
223
  // without indexing; the index path additionally enables posted-message links.
199
224
  const context = hasConversation || hasRunId
@@ -204,6 +229,14 @@ export function createAdapterSendToolsRuntimeExtension(configPath, cwd, allowedT
204
229
  ...(runOutput === undefined
205
230
  ? {}
206
231
  : { runOutputDir: runOutput.path, runOutputIdentity: runOutput.identity }),
232
+ ...(deliveryHistory === undefined
233
+ ? {}
234
+ : {
235
+ deliveryHistory: {
236
+ bridgeUrl: deliveryHistory.url,
237
+ bridgeToken: deliveryHistory.token,
238
+ },
239
+ }),
207
240
  }
208
241
  : undefined;
209
242
  return {
@@ -212,7 +245,9 @@ export function createAdapterSendToolsRuntimeExtension(configPath, cwd, allowedT
212
245
  [ADAPTER_SEND_TOOLS_MCP_SERVER_NAME]: adapterSendToolsMcpServerSpec(configPath, cwd, allowedTools, context, interaction),
213
246
  },
214
247
  },
215
- cleanup: async () => { },
248
+ cleanup: async () => {
249
+ deliveryHistory?.release();
250
+ },
216
251
  settleCleanup: async () => {
217
252
  if (runOutput !== undefined) {
218
253
  await removeOwnedDirectory(runOutput.path, runOutput.identity);
@@ -243,7 +278,7 @@ export async function createAdapterSendToolsServer(settings, clients, indexing,
243
278
  const server = new McpServer({ name: "agent-adapter-send-tools", version: "0.3.0" });
244
279
  if (settings.slack !== undefined && clients.slack !== undefined) {
245
280
  const adapter = await loadSlackModule();
246
- registerSlackSendTool(server, settings.slack, clients.slack, adapter.formatMarkdownForSlack, indexing);
281
+ registerSlackSendTool(server, settings.slack, clients.slack, adapter.formatMarkdownForSlack, indexing, options.deliveryHistory, options.fetchImpl ?? globalThis.fetch);
247
282
  }
248
283
  if (settings.telegram !== undefined && clients.telegram !== undefined) {
249
284
  // Loaded once here (not per-register-call) because registerTelegramAskTool
@@ -251,7 +286,7 @@ export async function createAdapterSendToolsServer(settings, clients, indexing,
251
286
  // schema, at registration time — not deferred into the request handler.
252
287
  const adapter = await loadTelegramModule();
253
288
  if (settings.telegram.tools.send) {
254
- registerTelegramSendTool(server, settings.telegram, clients.telegram);
289
+ registerTelegramSendTool(server, settings.telegram, clients.telegram, options.deliveryHistory, options.fetchImpl ?? globalThis.fetch);
255
290
  }
256
291
  if (settings.telegram.tools.ask) {
257
292
  registerTelegramAskTool(server, settings.telegram, clients.telegram, adapter, options.fetchImpl ?? globalThis.fetch);
@@ -404,7 +439,55 @@ async function sendAskProgress(extra, elapsedSeconds) {
404
439
  // Keep-alive only; a lost notification must never fail the ask.
405
440
  }
406
441
  }
407
- function registerSlackSendTool(server, settings, client, formatMarkdownForSlack, indexing) {
442
+ const DELIVERY_HISTORY_BRIDGE_TIMEOUT_MS = 2_000;
443
+ async function recordAdapterDeliveryHistory(input) {
444
+ if (input.settings === undefined)
445
+ return undefined;
446
+ try {
447
+ const response = await input.fetchImpl(new URL("/v1/delivery-history", input.settings.bridgeUrl), {
448
+ method: "POST",
449
+ headers: {
450
+ authorization: `Bearer ${input.settings.bridgeToken}`,
451
+ "content-type": "application/json",
452
+ },
453
+ body: JSON.stringify({
454
+ conversationId: input.conversationId,
455
+ text: input.text,
456
+ idempotencyKey: input.idempotencyKey,
457
+ }),
458
+ signal: AbortSignal.timeout(DELIVERY_HISTORY_BRIDGE_TIMEOUT_MS),
459
+ });
460
+ if (response.status === 202)
461
+ return { accepted: true, code: "queued" };
462
+ if (response.status === 400)
463
+ return { accepted: false, code: "history_record_invalid" };
464
+ if (response.status === 401)
465
+ return { accepted: false, code: "history_capability_rejected" };
466
+ if (response.status === 403)
467
+ return { accepted: false, code: "history_capability_scope_rejected" };
468
+ if (response.status === 501)
469
+ return { accepted: false, code: "history_record_unavailable" };
470
+ if (response.status === 503)
471
+ return { accepted: false, code: "history_record_failed" };
472
+ return { accepted: false, code: `history_bridge_http_${String(response.status)}` };
473
+ }
474
+ catch {
475
+ return { accepted: false, code: "history_bridge_unreachable" };
476
+ }
477
+ }
478
+ function deliveryHistorySummary(outcomes) {
479
+ const present = outcomes.filter((outcome) => outcome !== undefined);
480
+ if (present.length === 0)
481
+ return undefined;
482
+ const failed = present.find((outcome) => !outcome.accepted);
483
+ return failed ?? { accepted: true, code: "queued" };
484
+ }
485
+ function withDeliveryHistoryWarning(message, history) {
486
+ return history?.accepted === false
487
+ ? `${message} Delivery succeeded, but destination history was not queued (${history.code}).`
488
+ : message;
489
+ }
490
+ function registerSlackSendTool(server, settings, client, formatMarkdownForSlack, indexing, deliveryHistory, fetchImpl = globalThis.fetch) {
408
491
  server.registerTool("SlackSendMessage", {
409
492
  title: "Send Slack message",
410
493
  description: "Send a message to an allowed Slack channel or DM ID using the configured Slack adapter bot token.",
@@ -422,6 +505,7 @@ function registerSlackSendTool(server, settings, client, formatMarkdownForSlack,
422
505
  const text = mrkdwn ? formatMarkdownForSlack(args.text) : args.text;
423
506
  const chunks = splitTextByCodePoints(text, SLACK_SEND_MESSAGE_MAX_CHARS);
424
507
  const results = [];
508
+ const historyOutcomes = [];
425
509
  for (const chunk of chunks) {
426
510
  const result = await client.chatPostMessage({
427
511
  channel: args.channel.trim(),
@@ -432,9 +516,19 @@ function registerSlackSendTool(server, settings, client, formatMarkdownForSlack,
432
516
  ...(args.unfurl_media === undefined ? {} : { unfurl_media: args.unfurl_media }),
433
517
  }, { signal: extra.signal });
434
518
  results.push(result);
435
- // Link every posted chunk back to this conversation so an in-thread reply can
436
- // resume it. Best-effort: appendPostedMessage never throws, so a failed index
437
- // write can never fail the send.
519
+ const historyOutcome = await recordAdapterDeliveryHistory({
520
+ settings: deliveryHistory,
521
+ fetchImpl,
522
+ conversationId: `slack:${result.channel}:${args.thread_ts?.trim() || result.ts}`,
523
+ text: chunk,
524
+ idempotencyKey: `adapter-send:slack:${result.channel}:${result.ts}`,
525
+ });
526
+ historyOutcomes.push(historyOutcome);
527
+ // Link every confirmed posted chunk back to its producing conversation.
528
+ // The history attempt always settles first; an accepted cross-conversation
529
+ // record is therefore durable before the alias appears. A rejected or
530
+ // unreachable best-effort history path remains visible in the tool result
531
+ // but must never regress the existing producer-reply routing contract.
438
532
  if (indexing !== undefined) {
439
533
  await appendPostedMessage(indexing.indexPath, {
440
534
  channelId: result.channel,
@@ -451,21 +545,28 @@ function registerSlackSendTool(server, settings, client, formatMarkdownForSlack,
451
545
  const message = results.length === 1
452
546
  ? `Sent Slack message to ${firstResult.channel} at ${firstResult.ts}.`
453
547
  : `Sent ${String(results.length)} Slack messages to ${firstResult.channel} starting at ${firstResult.ts}.`;
548
+ const history = deliveryHistorySummary(historyOutcomes);
454
549
  return {
455
- content: [{ type: "text", text: message }],
550
+ content: [{ type: "text", text: withDeliveryHistoryWarning(message, history) }],
456
551
  structuredContent: results.length === 1
457
- ? { ok: true, channel: firstResult.channel, ts: firstResult.ts }
552
+ ? {
553
+ ok: true,
554
+ channel: firstResult.channel,
555
+ ts: firstResult.ts,
556
+ ...(history === undefined ? {} : { history }),
557
+ }
458
558
  : {
459
559
  ok: true,
460
560
  channel: firstResult.channel,
461
561
  ts: firstResult.ts,
462
562
  chunkCount: results.length,
463
563
  chunks: chunkRefs,
564
+ ...(history === undefined ? {} : { history }),
464
565
  },
465
566
  };
466
567
  });
467
568
  }
468
- function registerTelegramSendTool(server, settings, client) {
569
+ function registerTelegramSendTool(server, settings, client, deliveryHistory, fetchImpl = globalThis.fetch) {
469
570
  server.registerTool("TelegramSendMessage", {
470
571
  title: "Send Telegram message",
471
572
  description: "Send a message to an allowed Telegram chat using the configured Telegram adapter bot token.",
@@ -485,9 +586,22 @@ function registerTelegramSendTool(server, settings, client) {
485
586
  ...(args.reply_to_message_id === undefined ? {} : { reply_to_message_id: args.reply_to_message_id }),
486
587
  ...(args.disable_web_page_preview === undefined ? {} : { disable_web_page_preview: args.disable_web_page_preview }),
487
588
  }, { signal: extra.signal });
589
+ const history = await recordAdapterDeliveryHistory({
590
+ settings: deliveryHistory,
591
+ fetchImpl,
592
+ conversationId: `telegram:${String(result.chat.id)}`,
593
+ text: args.text,
594
+ idempotencyKey: `adapter-send:telegram:${String(result.chat.id)}:${String(result.message_id)}`,
595
+ });
596
+ const message = `Sent Telegram message ${result.message_id} to ${String(result.chat.id)}.`;
488
597
  return {
489
- content: [{ type: "text", text: `Sent Telegram message ${result.message_id} to ${String(result.chat.id)}.` }],
490
- structuredContent: { ok: true, chat_id: result.chat.id, message_id: result.message_id },
598
+ content: [{ type: "text", text: withDeliveryHistoryWarning(message, history) }],
599
+ structuredContent: {
600
+ ok: true,
601
+ chat_id: result.chat.id,
602
+ message_id: result.message_id,
603
+ ...(history === undefined ? {} : { history }),
604
+ },
491
605
  };
492
606
  });
493
607
  }