@gaodefa/daocore 2026.5.74 → 2026.5.75

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 (1066) hide show
  1. package/dist/abort-CB4Bin7P.js +277 -0
  2. package/dist/abort.runtime-C5imf3M6.js +2 -0
  3. package/dist/abort.runtime.js +1 -1
  4. package/dist/account-inspect-BrLOD3dL.js +173 -0
  5. package/dist/accounts-BJghihjE.js +107 -0
  6. package/dist/accounts-Cmmoz0Uc.js +119 -0
  7. package/dist/accounts-CtHQ9LlB.js +2 -0
  8. package/dist/accounts-D2XmsEdz.js +107 -0
  9. package/dist/acp-runtime-CsJkP6Eh.js +26 -0
  10. package/dist/acp-spawn-DrF63yyT.js +1275 -0
  11. package/dist/acp-spawn-ORtTG-uw.js +2 -0
  12. package/dist/acp-stateful-target-driver-XI6lnVTT.js +89 -0
  13. package/dist/action-kill-BkWa08iK.js +33 -0
  14. package/dist/action-runtime-CW2Fkm81.js +469 -0
  15. package/dist/action-runtime-api-LQHyxfBM.js +2 -0
  16. package/dist/action-send-BSTkpsKB.js +39 -0
  17. package/dist/action-spawn-CG0owoYM.js +47 -0
  18. package/dist/actions-BQH4Vf20.js +161 -0
  19. package/dist/actions.runtime-BwFgiJFE.js +5 -0
  20. package/dist/agent-B1k62jFg.js +3 -0
  21. package/dist/agent-CooPvAB8.js +2 -0
  22. package/dist/agent-command-Djll6bnb.js +1367 -0
  23. package/dist/agent-components.runtime-Bxmeq5SX.js +10 -0
  24. package/dist/agent-components.runtime.js +1 -1
  25. package/dist/agent-harness-runtime-Bt2xTt2z.js +180 -0
  26. package/dist/agent-harness-task-runtime-C6Sx-QFy.js +140 -0
  27. package/dist/agent-runner-execution-CUB1dxz1.js +1713 -0
  28. package/dist/agent-runner-utils-LoP2ghjB.js +266 -0
  29. package/dist/agent-runner.runtime-B6FEpN97.js +3455 -0
  30. package/dist/agent-runner.runtime.js +1 -1
  31. package/dist/agent-runtime-DDBYT9PU.js +229 -0
  32. package/dist/agent-via-gateway-Cac7aWXN.js +463 -0
  33. package/dist/api-C7_eM4X7.js +2 -0
  34. package/dist/api-CTv-thVP.js +2 -0
  35. package/dist/api-CyVlHCwr.js +6 -0
  36. package/dist/api-DfnW7Cwk.js +134 -0
  37. package/dist/api-mdeTtlMU.js +3 -0
  38. package/dist/api-rzVN_ShI.js +639 -0
  39. package/dist/apply-CA6OjGyH.js +41 -0
  40. package/dist/apply-YMZKb6rV.js +54 -0
  41. package/dist/approval-handler.runtime-Bo3XBEmS.js +130 -0
  42. package/dist/assistant-D0Y0TW8p.js +291 -0
  43. package/dist/attachment-normalize-CRqY0rzf.js +225 -0
  44. package/dist/attempt-execution-BL2-MkN9.js +558 -0
  45. package/dist/attempt-execution.runtime-BbkIPww8.js +3 -0
  46. package/dist/attempt-execution.runtime.js +1 -1
  47. package/dist/attempt-execution.shared-xgnVkNxr.js +38 -0
  48. package/dist/attempt.prompt-helpers--NxxT8xy.js +475 -0
  49. package/dist/attempt.tool-run-context-EsAayWh6.js +2094 -0
  50. package/dist/binding-routing-BIf2zYbn.js +113 -0
  51. package/dist/binding-targets-CnVPlLL3.js +121 -0
  52. package/dist/bot-BUkIAmq4.js +7894 -0
  53. package/dist/bot-deps-BDpF3-2x.js +747 -0
  54. package/dist/bot-deps-Ctxazu0z.js +2 -0
  55. package/dist/bot-message-context.runtime-Ddl-CF0g.js +7 -0
  56. package/dist/bot-message-context.runtime.js +1 -1
  57. package/dist/bot-message-context.session.runtime-BOBDJGi6.js +12 -0
  58. package/dist/bot-message-context.session.runtime.js +1 -1
  59. package/dist/bot-native-commands.delivery.runtime-Cp2bC1cm.js +4 -0
  60. package/dist/bot-native-commands.delivery.runtime.js +1 -1
  61. package/dist/bot-native-commands.runtime-BxOgiBSg.js +13 -0
  62. package/dist/bot-native-commands.runtime.js +1 -1
  63. package/dist/bridge-server-BD8gdvCj.js +113 -0
  64. package/dist/browser-cli-BxOiqtw0.js +230 -0
  65. package/dist/browser-cli-CQSbU4r7.js +2 -0
  66. package/dist/browser-cli-actions-input-CACwoXjH.js +473 -0
  67. package/dist/browser-cli-actions-observe-7y44Efff.js +81 -0
  68. package/dist/browser-cli-debug--cZDNVgZ.js +137 -0
  69. package/dist/browser-cli-inspect-Bjm1LYpb.js +104 -0
  70. package/dist/browser-cli-manage-BdoQAGZ5.js +443 -0
  71. package/dist/browser-cli-resize-CiWfi52U.js +26 -0
  72. package/dist/browser-cli-shared-Cf2UTok5.js +50 -0
  73. package/dist/browser-cli-state-BzSo9Zyo.js +337 -0
  74. package/dist/browser-control-auth-goBz3LrL.js +2 -0
  75. package/dist/browser-profiles-5QyWxduY.js +2 -0
  76. package/dist/browser-runtime-DpYYMv_-.js +384 -0
  77. package/dist/build-BOWwrF6B.js +257 -0
  78. package/dist/build-info.json +3 -3
  79. package/dist/bundled/boot-md/handler.js +2 -2
  80. package/dist/bundled/session-memory/handler.js +1 -1
  81. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  82. package/dist/capability-cli-p3b5r_A5.js +1782 -0
  83. package/dist/channel-8rtqtIC-.js +238 -0
  84. package/dist/channel-B2t80bjP.js +1556 -0
  85. package/dist/channel-BFgbA2E6.js +562 -0
  86. package/dist/channel-BPZSxEkQ.js +808 -0
  87. package/dist/channel-BibcrGJ7.js +955 -0
  88. package/dist/channel-Bj3a13bG.js +1777 -0
  89. package/dist/channel-Bsd0VVMJ.js +2126 -0
  90. package/dist/channel-C4Ouz2jY.js +481 -0
  91. package/dist/channel-CXcp2i5k.js +653 -0
  92. package/dist/channel-CZNxKVdH.js +1134 -0
  93. package/dist/channel-CfI-ubEB.js +740 -0
  94. package/dist/channel-CgNA5Zih.js +1496 -0
  95. package/dist/channel-D5n_k9F5.js +867 -0
  96. package/dist/channel-D7vJSPUF.js +1249 -0
  97. package/dist/channel-DcV0Ld4N.js +362 -0
  98. package/dist/channel-De73mgO_.js +508 -0
  99. package/dist/channel-Dmdu9Pzb.js +376 -0
  100. package/dist/channel-actions.runtime-CihZrf0M.js +265 -0
  101. package/dist/channel-actions.runtime.js +1 -1
  102. package/dist/channel-cGJKLfJe.d.ts +427 -0
  103. package/dist/channel-core-Ng_haxOP.js +5 -0
  104. package/dist/channel-inbound-Dz8i5Map.js +80 -0
  105. package/dist/channel-plugin-runtime-BGwpeswU.js +998 -0
  106. package/dist/channel-runtime-5xfHeIpP.js +408 -0
  107. package/dist/channel.runtime-3cv5PIqa.js +21009 -0
  108. package/dist/channel.runtime-B48fiEqP.js +109 -0
  109. package/dist/channel.runtime-B9omb8Je.js +733 -0
  110. package/dist/channel.runtime-BTnYLrjs.js +652 -0
  111. package/dist/channel.runtime-Bw4vm2KP.js +4 -0
  112. package/dist/channel.runtime-JZVnahXY.js +254 -0
  113. package/dist/channel.runtime-OyE1NDe4.js +2528 -0
  114. package/dist/channel.runtime-Q3Chs30P.js +1008 -0
  115. package/dist/channel.runtime-cGEI9b88.js +88 -0
  116. package/dist/channel.setup-BvvO8wUo.js +1098 -0
  117. package/dist/channel.setup-Cy2rvR1u.js +10 -0
  118. package/dist/channel.setup-Xo7BBamM.js +343 -0
  119. package/dist/chat-CfSmQsWK.js +2666 -0
  120. package/dist/chrome-CB8ELr8g.js +1503 -0
  121. package/dist/cli/run-main.js +5 -5
  122. package/dist/cli-CCnAoXu8.js +1341 -0
  123. package/dist/cli-compaction-C5z02QAR.js +347 -0
  124. package/dist/cli-metadata-VfQG__-m.js +22 -0
  125. package/dist/cli-runner-C8VlXbx6.js +2 -0
  126. package/dist/cli-runner-FnNwgi9z.js +540 -0
  127. package/dist/cli-runner.runtime-3y8ztIrM.js +4 -0
  128. package/dist/cli-runner.runtime-DjJNUNqh.js +3 -0
  129. package/dist/cli-runner.runtime.js +1 -1
  130. package/dist/cli-startup-metadata.json +8 -8
  131. package/dist/client-BxaKR3NR.js +650 -0
  132. package/dist/client-adapter-CD2eYE5u.js +897 -0
  133. package/dist/client-factory-wknOz0YZ.js +9 -0
  134. package/dist/command-auth-5oWRlAgW.js +135 -0
  135. package/dist/command-handlers-DRLCoUOI.js +1609 -0
  136. package/dist/command-registry-ClgHMh-P.js +4 -0
  137. package/dist/command-registry-Crw-ALyo.js +9 -0
  138. package/dist/command-registry-core-Q8mKRnm2.js +110 -0
  139. package/dist/command-status.runtime-Bv5-S6Jh.js +90 -0
  140. package/dist/command-status.runtime.js +1 -1
  141. package/dist/commands-acp-D7wwvhSb.js +74 -0
  142. package/dist/commands-compact.runtime-Do6XoPgi.js +10 -0
  143. package/dist/commands-compact.runtime.js +1 -1
  144. package/dist/commands-handlers.runtime-CQIeiOBs.js +6154 -0
  145. package/dist/commands-handlers.runtime.js +1 -1
  146. package/dist/commands-status--6Ec-6xl.js +3 -0
  147. package/dist/commands-status-B71V5ctj.js +16 -0
  148. package/dist/commands-status.runtime--6Ec-6xl.js +3 -0
  149. package/dist/commands-status.runtime.js +1 -1
  150. package/dist/commands-subagents-control.runtime-0bdHKGkh.js +2 -0
  151. package/dist/commands-subagents-control.runtime-C699ndyM.js +3 -0
  152. package/dist/commands-subagents-control.runtime.js +1 -1
  153. package/dist/commands-system-prompt-B-_6D_8o.js +2 -0
  154. package/dist/commands-system-prompt-Cf5S370X.js +162 -0
  155. package/dist/commands.runtime-C95VhDIj.js +176 -0
  156. package/dist/commands.runtime.js +1 -1
  157. package/dist/commitments/runtime.js +1 -1
  158. package/dist/compact-BUfPJl6J.js +1141 -0
  159. package/dist/compact-WFlFbfB-.js +480 -0
  160. package/dist/compact.runtime-CQnO12gG.js +12 -0
  161. package/dist/compact.runtime.js +1 -1
  162. package/dist/completion-cli-uJRHgHYJ.js +315 -0
  163. package/dist/computer-use-BqSdNbdx.js +367 -0
  164. package/dist/config-5QyWxduY.js +2 -0
  165. package/dist/config-D7UGquxF.js +373 -0
  166. package/dist/config-mutations-BcFxP9jF.js +159 -0
  167. package/dist/context-engine-host-compat-BBGC6Eb4.js +2 -0
  168. package/dist/context-engine-host-compat-Us6I7iiS.js +288 -0
  169. package/dist/context-engine-lifecycle-BRYjJ_xx.js +1274 -0
  170. package/dist/control-auth-Dz6wWtYF.js +114 -0
  171. package/dist/control-service-OTMJ16Vr.js +145 -0
  172. package/dist/control-ui/assets/agents-B6Fnnycd.js +1008 -0
  173. package/dist/control-ui/assets/channel-config-extras-Bfyy8zu1.js +2 -0
  174. package/dist/control-ui/assets/channels-Cz4PQN2A.js +367 -0
  175. package/dist/control-ui/assets/cron-CNn6C7Np.js +1013 -0
  176. package/dist/control-ui/assets/debug-D1moRGPg.js +97 -0
  177. package/dist/control-ui/assets/index-CWpjkFbm.js +7378 -0
  178. package/dist/control-ui/assets/instances-CD1vgemb.js +57 -0
  179. package/dist/control-ui/assets/logs-DFBfz91p.js +74 -0
  180. package/dist/control-ui/assets/nodes-D_ByFobS.js +436 -0
  181. package/dist/control-ui/assets/sessions-CI1Fspms.js +399 -0
  182. package/dist/control-ui/assets/skills-DtnIlsXa.js +314 -0
  183. package/dist/control-ui/assets/skills-shared-CxPIl_DL.js +11 -0
  184. package/dist/control-ui/index.html +1 -1
  185. package/dist/control-ui/sw.js +1 -1
  186. package/dist/conversation-binding-runtime-Qzm50Ztm.js +4 -0
  187. package/dist/conversation-runtime-B8IRh0X_.js +31 -0
  188. package/dist/core-B9JJc5bK.js +282 -0
  189. package/dist/core-api-BkLqoKIY.js +5 -0
  190. package/dist/core-api-D_qLiSVx.js +2 -0
  191. package/dist/crestodian/crestodian.js +1 -1
  192. package/dist/crestodian/rescue-message.js +1 -1
  193. package/dist/crestodian-Wce00VL9.js +55 -0
  194. package/dist/daocore-tools-BGfsn9OX.js +11727 -0
  195. package/dist/delivery-CKZNf6HN.js +1002 -0
  196. package/dist/dialogue-DMyfQ10Y.js +37 -0
  197. package/dist/dir-fetch-tool-Bodc_UiO.js +565 -0
  198. package/dist/dir-list-tool-DKdRgmE0.js +100 -0
  199. package/dist/direct-dm-gubxMBvV.js +64 -0
  200. package/dist/directive-handling.fast-lane-SIR-LK_X.js +68 -0
  201. package/dist/directive-handling.impl-CyETmsuZ.js +2 -0
  202. package/dist/directive-handling.impl-DBRFiFvk.js +818 -0
  203. package/dist/directive-handling.model-selection-DY-tmC6k.js +122 -0
  204. package/dist/directive-handling.persist.runtime-NzxgMnZ0.js +263 -0
  205. package/dist/directive-handling.persist.runtime.js +1 -1
  206. package/dist/dispatch-Cfc2X0Y6.js +1640 -0
  207. package/dist/dispatch-acp-transcript.runtime-QL350v4-.js +40 -0
  208. package/dist/dispatch-acp-transcript.runtime.js +1 -1
  209. package/dist/dispatch-acp.runtime-D3FviqFZ.js +18 -0
  210. package/dist/dispatch-acp.runtime.js +1 -1
  211. package/dist/doctor-C7gTSFfH.js +6 -0
  212. package/dist/doctor-DiHS_IQ0.js +2 -0
  213. package/dist/doctor-config-flow-B8FwXA-r.js +1741 -0
  214. package/dist/doctor-core-checks-BYeuryZ4.js +2 -0
  215. package/dist/doctor-core-checks-CnzzLGiH.js +573 -0
  216. package/dist/doctor-health-BnmOyTty.js +65 -0
  217. package/dist/doctor-health-contributions-ocQMPxjM.js +696 -0
  218. package/dist/doctor-lint-CjRi8o5u.js +94 -0
  219. package/dist/doctor-state-integrity-Dbu4NMz2.js +1231 -0
  220. package/dist/dynamic-tools-6zBBc1qr.js +486 -0
  221. package/dist/embedded-backend-BZOf3nmp.js +579 -0
  222. package/dist/embedded-gateway-stub.runtime-Bz0nKXhe.js +12 -0
  223. package/dist/embedded-gateway-stub.runtime.js +1 -1
  224. package/dist/exec-approvals-D7MoRNan.js +149 -0
  225. package/dist/extensionAPI.js +1 -1
  226. package/dist/extensions/active-memory/index.js +1 -1
  227. package/dist/extensions/admin-http-rpc/index.js +1 -1
  228. package/dist/extensions/browser/browser-bridge.js +1 -1
  229. package/dist/extensions/browser/browser-config.js +4 -4
  230. package/dist/extensions/browser/browser-control-auth.js +2 -2
  231. package/dist/extensions/browser/browser-doctor.js +2 -2
  232. package/dist/extensions/browser/browser-maintenance.js +1 -1
  233. package/dist/extensions/browser/browser-profiles.js +2 -2
  234. package/dist/extensions/browser/browser-runtime-api.js +11 -11
  235. package/dist/extensions/browser/cli-metadata.js +1 -1
  236. package/dist/extensions/browser/index.js +1 -1
  237. package/dist/extensions/browser/plugin-registration.js +1 -1
  238. package/dist/extensions/browser/register.runtime.js +4 -4
  239. package/dist/extensions/browser/runtime-api.js +13 -13
  240. package/dist/extensions/canvas/index.js +1 -1
  241. package/dist/extensions/clickclack/api.js +2 -2
  242. package/dist/extensions/clickclack/channel-plugin-api.js +1 -1
  243. package/dist/extensions/clickclack/runtime-api.js +2 -2
  244. package/dist/extensions/device-pair/api.js +1 -1
  245. package/dist/extensions/device-pair/pair-command-approve.js +1 -1
  246. package/dist/extensions/file-transfer/index.js +4 -4
  247. package/dist/extensions/imessage/api.js +2 -2
  248. package/dist/extensions/imessage/channel-plugin-api.js +1 -1
  249. package/dist/extensions/imessage/message-tool-api.d.ts +1 -1
  250. package/dist/extensions/imessage/runtime-api.js +3 -3
  251. package/dist/extensions/irc/api.js +2 -2
  252. package/dist/extensions/irc/channel-plugin-api.js +1 -1
  253. package/dist/extensions/llm-task/index.js +1 -1
  254. package/dist/extensions/mattermost/api.js +1 -1
  255. package/dist/extensions/mattermost/channel-plugin-api.js +1 -1
  256. package/dist/extensions/mattermost/channel-plugin-runtime.js +1 -1
  257. package/dist/extensions/mattermost/policy-api.js +1 -1
  258. package/dist/extensions/mattermost/runtime-api.js +2 -2
  259. package/dist/extensions/mattermost/slash-route-api.js +1 -1
  260. package/dist/extensions/memory-core/cli-metadata.js +1 -1
  261. package/dist/extensions/migrate-claude/apply.js +1 -1
  262. package/dist/extensions/migrate-claude/index.js +1 -1
  263. package/dist/extensions/migrate-claude/plan.js +1 -1
  264. package/dist/extensions/migrate-claude/provider.js +1 -1
  265. package/dist/extensions/migrate-claude/targets.js +1 -1
  266. package/dist/extensions/migrate-hermes/apply.js +1 -1
  267. package/dist/extensions/migrate-hermes/index.js +1 -1
  268. package/dist/extensions/migrate-hermes/model.js +1 -1
  269. package/dist/extensions/migrate-hermes/plan.js +1 -1
  270. package/dist/extensions/migrate-hermes/provider.js +1 -1
  271. package/dist/extensions/migrate-hermes/secrets.js +1 -1
  272. package/dist/extensions/migrate-hermes/targets.js +1 -1
  273. package/dist/extensions/policy/api.js +1 -1
  274. package/dist/extensions/policy/index.js +2 -2
  275. package/dist/extensions/signal/api.js +6 -6
  276. package/dist/extensions/signal/channel-plugin-api.js +1 -1
  277. package/dist/extensions/signal/reaction-runtime-api.js +1 -1
  278. package/dist/extensions/signal/runtime-api.js +7 -7
  279. package/dist/extensions/skill-workshop/api.js +1 -1
  280. package/dist/extensions/skill-workshop/index.js +2 -2
  281. package/dist/extensions/telegram/account-inspect-api.js +1 -1
  282. package/dist/extensions/telegram/api.js +11 -11
  283. package/dist/extensions/telegram/channel-plugin-api.js +2 -2
  284. package/dist/extensions/telegram/contract-api.js +3 -3
  285. package/dist/extensions/telegram/runtime-api.js +7 -7
  286. package/dist/extensions/telegram/security-audit-contract-api.js +1 -1
  287. package/dist/extensions/telegram/setup-plugin-api.js +1 -1
  288. package/dist/extensions/telegram/test-api.js +2 -2
  289. package/dist/extensions/webhooks/api.js +1 -1
  290. package/dist/extensions/webhooks/index.js +1 -1
  291. package/dist/extensions/xai/index.js +4 -4
  292. package/dist/extensions/xai/realtime-transcription-provider.js +1 -1
  293. package/dist/extensions/xai/speech-provider.js +1 -1
  294. package/dist/extensions/xai/test-api.js +1 -1
  295. package/dist/extensions/xai/tts.js +1 -1
  296. package/dist/extensions/xai/web-search.js +1 -1
  297. package/dist/extensions/xai/xai-oauth.js +1 -1
  298. package/dist/file-fetch-tool-UOp-kXiF.js +124 -0
  299. package/dist/file-write-tool-Bmics566.js +127 -0
  300. package/dist/format-BAPtahQp.js +1145 -0
  301. package/dist/gateway-cli-C9vWttAu.js +435 -0
  302. package/dist/gateway-method-runtime-cf2DQe_R.js +21 -0
  303. package/dist/get-reply-from-config.runtime-973T_WNQ.js +2 -0
  304. package/dist/get-reply-from-config.runtime.js +1 -1
  305. package/dist/get-reply-nFbvZyXJ.js +4689 -0
  306. package/dist/graph-users-DX3qj987.js +1419 -0
  307. package/dist/group-access-fUxE_esT.js +112 -0
  308. package/dist/handle-action.guild-admin-DzmixKDt.js +288 -0
  309. package/dist/harness-BvoaeM2G.js +61 -0
  310. package/dist/health-BNfYEJaa.js +4 -0
  311. package/dist/heartbeat-runner-DHFAz5O-.js +5 -0
  312. package/dist/heartbeat-runner.runtime-BTARhrNZ.js +4 -0
  313. package/dist/heartbeat-runner.runtime.js +1 -1
  314. package/dist/hooks-DxGU2YA5.js +534 -0
  315. package/dist/inbound-direct-dm-runtime-CAX9fltu.js +2 -0
  316. package/dist/inbound-reply-dispatch-T13MYtrr.js +148 -0
  317. package/dist/index.js +1 -1
  318. package/dist/init-DCCh5oSO.js +59 -0
  319. package/dist/inline-buttons-DaFc4jXn.js +40 -0
  320. package/dist/internal-events-Gz1ipxmh.js +90 -0
  321. package/dist/isolated-agent-CHUsxMC-.js +1118 -0
  322. package/dist/isolated-agent-K2nfnPOc.js +2 -0
  323. package/dist/lifecycle-kyB2yqsq.js +571 -0
  324. package/dist/list.probe-BSjy8u2p.js +449 -0
  325. package/dist/list.status-command-BxIAK-G5.js +789 -0
  326. package/dist/llm-slug-generator-BMH4faWD.js +78 -0
  327. package/dist/llm-slug-generator.js +1 -1
  328. package/dist/local-dispatch.runtime-DFy7ycDP.js +9 -0
  329. package/dist/local-dispatch.runtime.js +1 -1
  330. package/dist/manager.runtime-CPqoT9HS.js +2714 -0
  331. package/dist/manager.runtime.js +1 -1
  332. package/dist/markdown-to-line-DQuET8BD.js +811 -0
  333. package/dist/mcp-http-BTLfb7mN.js +555 -0
  334. package/dist/mcp-http-Bcx2IvUV.js +2 -0
  335. package/dist/media-understanding-provider-BXfXH9ER.js +339 -0
  336. package/dist/message-actions-O4ffm7Zz.js +145 -0
  337. package/dist/message-handler-B3NHGkvn.js +1715 -0
  338. package/dist/message-handler-Dm-49Yay.js +384 -0
  339. package/dist/message-handler.preflight-Dmy4TMmc.js +1125 -0
  340. package/dist/message-handler.process-BvIh9714.js +1484 -0
  341. package/dist/model-CiE38oM-.js +74 -0
  342. package/dist/model-selection-B4wj_z32.js +272 -0
  343. package/dist/models-DF0uMtab.js +2 -0
  344. package/dist/models-DupIeDpS.js +104 -0
  345. package/dist/models-cli-BKoIijSE.js +256 -0
  346. package/dist/monitor-BGkgqVYu.js +4377 -0
  347. package/dist/monitor-BJBnArAU.js +834 -0
  348. package/dist/monitor-C1L1aR0q.js +2788 -0
  349. package/dist/monitor-C3wAzu_q.js +2 -0
  350. package/dist/monitor-CN29zOnf.js +1370 -0
  351. package/dist/monitor-D7FhV0Qe.js +1657 -0
  352. package/dist/monitor-Dcy6FUPv.js +60 -0
  353. package/dist/monitor-Y4SvOC0z.js +715 -0
  354. package/dist/monitor-auth-B_73QHux.js +179 -0
  355. package/dist/monitor-polling.runtime-D3yoLMON.js +883 -0
  356. package/dist/monitor-polling.runtime.js +1 -1
  357. package/dist/monitor-webhook.runtime-CnchK0Ki.js +387 -0
  358. package/dist/monitor-webhook.runtime.js +1 -1
  359. package/dist/monitor.account-B0u_Xih0.js +5233 -0
  360. package/dist/monitor.runtime-9JVw9n8z.js +2 -0
  361. package/dist/monitor.runtime.js +1 -1
  362. package/dist/monitor.webhook-ixq3jhC8.js +180 -0
  363. package/dist/node-cli-sessions-C07qXjfH.js +1228 -0
  364. package/dist/openai-http-DL1i7Pdz.js +824 -0
  365. package/dist/openresponses-http-4vW7i5hM.js +1173 -0
  366. package/dist/operations-hyqHq47Z.js +805 -0
  367. package/dist/outbound-adapter-B2lF_Qp0.js +543 -0
  368. package/dist/outbound-session-route-CXbw-Zbl.js +45 -0
  369. package/dist/outbound.runtime-ROOz_EXD.js +2 -0
  370. package/dist/outbound.runtime.js +1 -1
  371. package/dist/pi-embedded-D23Jv1_v.js +4 -0
  372. package/dist/pi-embedded-LwXPGFfT.js +3796 -0
  373. package/dist/pi-embedded.runtime-Rk5rpqL7.js +4 -0
  374. package/dist/pi-embedded.runtime.js +1 -1
  375. package/dist/pi-tools-DqhrI9AL.js +2413 -0
  376. package/dist/plan-BCEMv5RF.js +112 -0
  377. package/dist/plan-BHwmpZjz.js +81 -0
  378. package/dist/plugin-app-cache-key-CWYPZS_p.js +46 -0
  379. package/dist/plugin-enabled-NkokTFHK.js +233 -0
  380. package/dist/plugin-oDyOB4UI.js +12396 -0
  381. package/dist/plugin-registration-CeH_6Is4.js +88 -0
  382. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  383. package/dist/plugin-sdk/acp-runtime-backend.js +1 -1
  384. package/dist/plugin-sdk/acp-runtime.js +2 -2
  385. package/dist/plugin-sdk/agent-harness-runtime.js +6 -6
  386. package/dist/plugin-sdk/agent-harness-task-runtime.js +1 -1
  387. package/dist/plugin-sdk/agent-harness.js +7 -7
  388. package/dist/plugin-sdk/agent-runtime.js +2 -2
  389. package/dist/plugin-sdk/channel-core.js +2 -2
  390. package/dist/plugin-sdk/channel-inbound.js +2 -2
  391. package/dist/plugin-sdk/channel-test-helpers.js +1 -1
  392. package/dist/plugin-sdk/command-auth.js +1 -1
  393. package/dist/plugin-sdk/command-status-runtime.js +1 -1
  394. package/dist/plugin-sdk/compat.js +1 -1
  395. package/dist/plugin-sdk/conversation-binding-runtime.js +2 -2
  396. package/dist/plugin-sdk/conversation-runtime.js +3 -3
  397. package/dist/plugin-sdk/core.js +2 -2
  398. package/dist/plugin-sdk/direct-dm.js +1 -1
  399. package/dist/plugin-sdk/gateway-method-runtime.js +1 -1
  400. package/dist/plugin-sdk/health.js +2 -2
  401. package/dist/plugin-sdk/inbound-reply-dispatch.js +1 -1
  402. package/dist/plugin-sdk/index.js +1 -1
  403. package/dist/plugin-sdk/mattermost.js +1 -1
  404. package/dist/plugin-sdk/plugin-test-contracts.js +2 -2
  405. package/dist/plugin-sdk/provider-test-contracts.js +4 -4
  406. package/dist/plugin-sdk/reply-runtime.js +4 -4
  407. package/dist/plugin-sdk/testing.js +2 -2
  408. package/dist/plugin-sdk/zalouser.js +1 -1
  409. package/dist/plugin-service-XeCZ8oFI.js +1229 -0
  410. package/dist/plugins/runtime/index.js +4 -4
  411. package/dist/policy-BsS7jXyV.js +138 -0
  412. package/dist/policy-dTLidj41.js +680 -0
  413. package/dist/prepare.runtime-CxSRhibQ.js +732 -0
  414. package/dist/prepare.runtime.js +1 -1
  415. package/dist/preview-warnings-CYO_Ec8j.js +392 -0
  416. package/dist/probe-B38i01ob.js +2 -0
  417. package/dist/probe-BfuwJZxZ.js +47 -0
  418. package/dist/probe-DaZ-zbpf.js +2204 -0
  419. package/dist/probe-TNHaSvg4.js +682 -0
  420. package/dist/program-BHDY7txk.js +131 -0
  421. package/dist/provider-B2OEKMgz.js +8735 -0
  422. package/dist/provider-BN5zYpXy.js +152 -0
  423. package/dist/provider-C5wk4Zq2.js +32 -0
  424. package/dist/provider-C_AVioxd.js +32 -0
  425. package/dist/provider-dispatcher-D8wmCCX8.js +22 -0
  426. package/dist/provider-dispatcher.runtime.js +1 -1
  427. package/dist/provider-session.runtime-B63XBUkk.js +9 -0
  428. package/dist/provider-session.runtime.js +1 -1
  429. package/dist/provider.runtime-D1lu1iBi.js +2 -0
  430. package/dist/provider.runtime.js +1 -1
  431. package/dist/public-surface-loader-ClnvswYD.js +114 -0
  432. package/dist/pw-ai-CUvQLjDl.js +3029 -0
  433. package/dist/pw-role-snapshot-DqOQm6b-.js +333 -0
  434. package/dist/reaction-level-DdxMc_S-.js +19 -0
  435. package/dist/reaction-runtime-api-DV5ADguG.js +116 -0
  436. package/dist/realtime-transcription-provider-Jx3qVPVX.js +205 -0
  437. package/dist/register-B6JqGeZm.js +2178 -0
  438. package/dist/register.agent-pQ55YbLM.js +156 -0
  439. package/dist/register.crestodian-DG48cq1n.js +24 -0
  440. package/dist/register.maintenance-CmyTyWfW.js +83 -0
  441. package/dist/register.runtime-Dc2ah3hl.js +54 -0
  442. package/dist/register.subclis-BNslxGzE.js +3 -0
  443. package/dist/register.subclis-BltgkX8W.js +31 -0
  444. package/dist/register.subclis-core-CXo28UGO.js +273 -0
  445. package/dist/repair-sequencing-SddJfHba.js +640 -0
  446. package/dist/reply-delivery-YOUVxLhE.js +196 -0
  447. package/dist/reply-runtime-Bic05q8u.js +11 -0
  448. package/dist/reply.runtime-973T_WNQ.js +2 -0
  449. package/dist/reply.runtime.js +1 -1
  450. package/dist/request-De-MLnVs.js +54 -0
  451. package/dist/resolve-allowlist-0P5Zm3Ih.js +220 -0
  452. package/dist/result-fallback-classifier-CRFWJOeW.js +79 -0
  453. package/dist/route-A4sH-KRJ.js +469 -0
  454. package/dist/route-resolution-BR89k_5k.js +274 -0
  455. package/dist/routes-BbmTgfa7.js +3602 -0
  456. package/dist/routes-H_X6d_BR.js +2 -0
  457. package/dist/run-C_HJBF46.js +1162 -0
  458. package/dist/run-attempt-DVUpjMzw.js +7704 -0
  459. package/dist/run-command-CtO053FV.js +23 -0
  460. package/dist/run-command-whpq0vSs.js +2 -0
  461. package/dist/run-embedded.runtime-z8KRAA9N.js +4 -0
  462. package/dist/run-embedded.runtime.js +1 -1
  463. package/dist/run-execution-cli.runtime-DP4sTGB3.js +4 -0
  464. package/dist/run-execution-cli.runtime.js +1 -1
  465. package/dist/run-executor.runtime.js +1 -1
  466. package/dist/run-subagent-registry.runtime-Ic4qjJAZ.js +2 -0
  467. package/dist/run-subagent-registry.runtime.js +1 -1
  468. package/dist/runtime-C84q1uWh.js +438 -0
  469. package/dist/runtime-DM-8CUG8.js +1287 -0
  470. package/dist/runtime-api-B92-eAFH.js +4 -0
  471. package/dist/runtime-api-BA-_f4wN.js +21 -0
  472. package/dist/runtime-api-C3x1bTUP.js +3 -0
  473. package/dist/runtime-api-C4J88HGc.js +13 -0
  474. package/dist/runtime-api-CBJPQTPG.js +24 -0
  475. package/dist/runtime-api-DI4rBaZp.js +17 -0
  476. package/dist/runtime-api-D_JIC4_F.js +13 -0
  477. package/dist/runtime-api.actions-Crwfcz27.js +3 -0
  478. package/dist/runtime-api.monitor-KeGId_a2.js +6 -0
  479. package/dist/runtime-api.send-DkmqVan7.js +4 -0
  480. package/dist/runtime-api.threads--LYxacx4.js +2 -0
  481. package/dist/runtime-channel-C0fX96Yx.js +2 -0
  482. package/dist/runtime-channel-CmXstmiO.js +150 -0
  483. package/dist/runtime-embedded-pi.runtime-C0nckPTh.js +2 -0
  484. package/dist/runtime-embedded-pi.runtime.js +1 -1
  485. package/dist/runtime-o-9rMitP.js +6179 -0
  486. package/dist/sanitize-outbound-BDtDO_r3.js +127 -0
  487. package/dist/sdk-setup-tools-Bw1sb2J0.js +8 -0
  488. package/dist/secrets-Cexd83PL.js +113 -0
  489. package/dist/security-audit-DeMasGQi.js +122 -0
  490. package/dist/security-audit-lZXBiK8a.js +118 -0
  491. package/dist/security-audit.runtime-B73uav0c.js +2 -0
  492. package/dist/security-audit.runtime.js +1 -1
  493. package/dist/selection-BPe1-NRx.js +16157 -0
  494. package/dist/selection-DtlsSu6t.js +3 -0
  495. package/dist/send-BP8O_f3_.js +2 -0
  496. package/dist/send-DB92XENW.js +192 -0
  497. package/dist/send-DPpvAomE.js +1631 -0
  498. package/dist/send-DUSg5J3j.js +143 -0
  499. package/dist/send.components-Beh2GSlI.js +500 -0
  500. package/dist/send.components-vjkB2tEO.js +2 -0
  501. package/dist/send.runtime-XHNBD8mm.js +2 -0
  502. package/dist/send.runtime.js +1 -1
  503. package/dist/server-CAQk-GlH.js +24 -0
  504. package/dist/server-Um3iJ7EL.js +73 -0
  505. package/dist/server-close.runtime.js +1 -1
  506. package/dist/server-context-Cq6Mf_Hx.js +2 -0
  507. package/dist/server-context-CxM3niUB.js +955 -0
  508. package/dist/server-cron-BSh0DjkH.js +2989 -0
  509. package/dist/server-cron-Csg1r2SE.js +2 -0
  510. package/dist/server-methods-CBPnwVD3.js +16499 -0
  511. package/dist/server-node-events-CZCahsw3.js +596 -0
  512. package/dist/server-plugin-bootstrap-DB4Iptzd.js +70 -0
  513. package/dist/server-plugins-BZIW7Sn8.js +432 -0
  514. package/dist/server-reload-handlers-V9f07KRC.js +714 -0
  515. package/dist/server-restart-sentinel-DSQyhuO9.js +2 -0
  516. package/dist/server-restart-sentinel-DnS4nSXg.js +747 -0
  517. package/dist/server-runtime-services-Da8S4dip.js +2 -0
  518. package/dist/server-runtime-services-hMwmCtz4.js +267 -0
  519. package/dist/server-startup-plugins-CFedlOir.js +113 -0
  520. package/dist/server-startup-post-attach-BC4ypGDV.js +716 -0
  521. package/dist/server-ws-runtime-BZdnJ8_f.js +349 -0
  522. package/dist/server.impl-JxdGpBse.js +2586 -0
  523. package/dist/service-CrRxM1s3.js +1446 -0
  524. package/dist/session-binding-B1kLTRx0.js +219 -0
  525. package/dist/session-binding-BhmP2qr8.js +2 -0
  526. package/dist/session-kill-http-hVTRFmxJ.js +121 -0
  527. package/dist/session-reset-service-NFIUAaub.js +625 -0
  528. package/dist/session-route-CAVGKfbY.js +93 -0
  529. package/dist/session-status.runtime-CAujMI0m.js +2 -0
  530. package/dist/session-status.runtime.js +1 -1
  531. package/dist/session-subagent-reactivation.runtime-CAD_WZE1.js +2 -0
  532. package/dist/session-subagent-reactivation.runtime.js +1 -1
  533. package/dist/session-tab-registry-BIhFQ2_N.js +521 -0
  534. package/dist/sessions-history-http-DTUCgSIv.js +430 -0
  535. package/dist/sessions.runtime-BhxJAIUl.js +2 -0
  536. package/dist/sessions.runtime.js +1 -1
  537. package/dist/setup-api-BaSNfjGt.js +29 -0
  538. package/dist/setup-core-Cv-UM5DV.js +174 -0
  539. package/dist/setup-surface-3iygBoSk.js +288 -0
  540. package/dist/setup-surface-BYu3PlXP.js +405 -0
  541. package/dist/setup-surface-BnCUx0xf.js +221 -0
  542. package/dist/setup-surface-DajEGPq9.js +320 -0
  543. package/dist/shared-DjUBdZw0.js +121 -0
  544. package/dist/shared-client-B364qsQs.js +2 -0
  545. package/dist/shared-client-vi4UjWgq.js +629 -0
  546. package/dist/side-question-Cfz-6Mik.js +683 -0
  547. package/dist/skill-tool-dispatch.runtime-BHi8qkm6.js +143 -0
  548. package/dist/skill-tool-dispatch.runtime.js +1 -1
  549. package/dist/slash-state-1yv6e-CZ.js +2166 -0
  550. package/dist/speech-provider-BBTLPoxz.js +184 -0
  551. package/dist/src-DQGUHoew.js +4256 -0
  552. package/dist/startup-context-CSXtIxM4.js +313 -0
  553. package/dist/status-subagents.runtime-Ce4XFNpI.js +18 -0
  554. package/dist/status-subagents.runtime.js +1 -1
  555. package/dist/status-text-B_aeJyIx.js +296 -0
  556. package/dist/sticker-cache-CyXfXSnD.js +206 -0
  557. package/dist/sticker-vision.runtime-CfEwepme.js +17 -0
  558. package/dist/sticker-vision.runtime.js +1 -1
  559. package/dist/subagent-announce-DJP9Deag.js +354 -0
  560. package/dist/subagent-announce-delivery-djkdPFWz.js +958 -0
  561. package/dist/subagent-control-C59CHxJT.js +508 -0
  562. package/dist/subagent-hooks-B7HsNzMr.js +230 -0
  563. package/dist/subagent-hooks-BPSvsSKo.js +2 -0
  564. package/dist/subagent-hooks-Bg-RSz4n.js +146 -0
  565. package/dist/subagent-hooks-BvAYM6MF.js +2 -0
  566. package/dist/subagent-hooks-DCga-z0P.js +2 -0
  567. package/dist/subagent-hooks-DpUUm-nC.js +116 -0
  568. package/dist/subagent-hooks-api-BfBPES7I.js +23 -0
  569. package/dist/subagent-hooks-api-Ct3H1JvT.js +23 -0
  570. package/dist/subagent-hooks-api-D-gcal8L.js +22 -0
  571. package/dist/subagent-orphan-recovery-TurbGwPo.js +352 -0
  572. package/dist/subagent-registry-Dcr5vJsh.js +3 -0
  573. package/dist/subagent-registry-almRMGiJ.js +2351 -0
  574. package/dist/subagent-registry.runtime.js +1 -1
  575. package/dist/subagent-session-cleanup-DStloUoa.js +525 -0
  576. package/dist/subagent-spawn-a5zQq79_.js +1164 -0
  577. package/dist/target-id-C0AUAPRt.js +107 -0
  578. package/dist/targets-9NQEAB_8.js +44 -0
  579. package/dist/targets-BX9hUOE0.js +19 -0
  580. package/dist/targets-uCQJMS9L.js +19 -0
  581. package/dist/task-registry-control.runtime.js +1 -1
  582. package/dist/telegram/token.js +1 -1
  583. package/dist/testing-CL4tSWlY.js +267 -0
  584. package/dist/thread-bindings-CuYgnJrA.js +232 -0
  585. package/dist/thread-bindings-DrLRFv9V.js +571 -0
  586. package/dist/thread-bindings-DuDBMJUH.js +8 -0
  587. package/dist/thread-bindings-DuPLUeEg.js +228 -0
  588. package/dist/thread-bindings.discord-api-CRkN3LO6.js +187 -0
  589. package/dist/thread-bindings.manager-U4vvV74R.js +2 -0
  590. package/dist/thread-bindings.manager-qvjQ7XrE.js +536 -0
  591. package/dist/thread-lifecycle-ebEJZlV8.js +1614 -0
  592. package/dist/token-BfUGddbB.js +134 -0
  593. package/dist/tool-DMbMn8SG.js +139 -0
  594. package/dist/tool-actions.runtime-3flyBx99.js +534 -0
  595. package/dist/tool-actions.runtime.js +1 -1
  596. package/dist/tool-resolution-CteuwLWG.js +149 -0
  597. package/dist/tools-effective-inventory-C3umjhj4.js +204 -0
  598. package/dist/tools-invoke-http-BPDxOpMS.js +67 -0
  599. package/dist/tools-invoke-shared-BgajIn1A.js +200 -0
  600. package/dist/tts-DWkHFEoO.js +66 -0
  601. package/dist/tui-BLuAg68O.js +2 -0
  602. package/dist/tui-backend-B_XhQILj.js +256 -0
  603. package/dist/tui-cli-C3L6mNyE.js +37 -0
  604. package/dist/tui-kx080n35.js +4709 -0
  605. package/dist/update-cli-Ca7CiQOc.js +3664 -0
  606. package/dist/vision-tools-V-w_kZa2.js +1409 -0
  607. package/dist/web-search-LuWKS3f2.js +62 -0
  608. package/dist/web-search-provider.runtime-CmbTFxDm.js +2 -0
  609. package/dist/web-search-provider.runtime-DZXMqd4W.js +328 -0
  610. package/dist/web-search-provider.runtime.js +1 -1
  611. package/dist/xai-oauth-C_tPwhEw.js +479 -0
  612. package/dist/xai-user-agent-C1zI5_IU.js +32 -0
  613. package/package.json +1 -1
  614. package/dist/abort-By1jCXcv.js +0 -277
  615. package/dist/abort.runtime-BUEReR-v.js +0 -2
  616. package/dist/account-inspect-DkuYTikX.js +0 -173
  617. package/dist/accounts-C19Qdo7I.js +0 -107
  618. package/dist/accounts-CjG0t0Cv.js +0 -119
  619. package/dist/accounts-CtWjp889.js +0 -2
  620. package/dist/accounts-qPTOizTg.js +0 -107
  621. package/dist/acp-runtime-CMLjiKa-.js +0 -26
  622. package/dist/acp-spawn-BGT-Px6Z.js +0 -1275
  623. package/dist/acp-spawn-CPO-hI4Y.js +0 -2
  624. package/dist/acp-stateful-target-driver-CDW_IRB4.js +0 -89
  625. package/dist/action-kill-B77KpIIQ.js +0 -33
  626. package/dist/action-runtime-EWSpHGrj.js +0 -469
  627. package/dist/action-runtime-api-bUNFqFoC.js +0 -2
  628. package/dist/action-send-DkQiw_fv.js +0 -39
  629. package/dist/action-spawn-noygtmpa.js +0 -47
  630. package/dist/actions-CPKTkTAD.js +0 -161
  631. package/dist/actions.runtime-eslFNzsP.js +0 -5
  632. package/dist/agent-CjNqqyKT.js +0 -3
  633. package/dist/agent-DaUQpTpc.js +0 -2
  634. package/dist/agent-command-DFcGb1lF.js +0 -1367
  635. package/dist/agent-components.runtime-_b4M39T5.js +0 -10
  636. package/dist/agent-harness-runtime-C09s_5eo.js +0 -180
  637. package/dist/agent-harness-task-runtime-wnzHUZZT.js +0 -140
  638. package/dist/agent-runner-execution-Bx_X59we.js +0 -1713
  639. package/dist/agent-runner-utils-hOwJODaJ.js +0 -266
  640. package/dist/agent-runner.runtime-LeZ65RXP.js +0 -3455
  641. package/dist/agent-runtime-Cio-RAUW.js +0 -229
  642. package/dist/agent-via-gateway-C06ks7Yk.js +0 -463
  643. package/dist/api-CBKedD81.js +0 -2
  644. package/dist/api-Ct1qM1Qp.js +0 -3
  645. package/dist/api-DN_WUxmH.js +0 -639
  646. package/dist/api-D_cLf5HR.js +0 -6
  647. package/dist/api-DhpRwVRC.js +0 -134
  648. package/dist/api-HHeiUqKx.js +0 -2
  649. package/dist/apply-CBc3t-6b.js +0 -41
  650. package/dist/apply-DP2LNAI1.js +0 -54
  651. package/dist/approval-handler.runtime-D3dVfQpz.js +0 -130
  652. package/dist/assistant-CJUhCzx1.js +0 -291
  653. package/dist/attachment-normalize-B7BuPwh0.js +0 -225
  654. package/dist/attempt-execution-C_zoopZx.js +0 -558
  655. package/dist/attempt-execution.runtime-BORPE4U7.js +0 -3
  656. package/dist/attempt-execution.shared-CVs8nY8C.js +0 -38
  657. package/dist/attempt.prompt-helpers-hRgWdd1i.js +0 -475
  658. package/dist/attempt.tool-run-context-kTuNRgCl.js +0 -2094
  659. package/dist/binding-routing-DODVC3IC.js +0 -113
  660. package/dist/binding-targets-AB_RKGdU.js +0 -121
  661. package/dist/bot-CSLsTmf1.js +0 -7894
  662. package/dist/bot-deps-DynTqfAM.js +0 -2
  663. package/dist/bot-deps-W46ftf2D.js +0 -747
  664. package/dist/bot-message-context.runtime-CYqi6a9-.js +0 -7
  665. package/dist/bot-message-context.session.runtime-zGfXe8D8.js +0 -12
  666. package/dist/bot-native-commands.delivery.runtime-Cl0_uLC6.js +0 -4
  667. package/dist/bot-native-commands.runtime-yy3akJPm.js +0 -13
  668. package/dist/bridge-server-B6ImaGh0.js +0 -113
  669. package/dist/browser-cli-CPNZpueD.js +0 -230
  670. package/dist/browser-cli-CntDlufK.js +0 -2
  671. package/dist/browser-cli-actions-input-DiJDRQCl.js +0 -473
  672. package/dist/browser-cli-actions-observe-9KtuDERW.js +0 -81
  673. package/dist/browser-cli-debug-lSi6c_Ol.js +0 -137
  674. package/dist/browser-cli-inspect-B5KmooQv.js +0 -104
  675. package/dist/browser-cli-manage-ClQjPfwK.js +0 -443
  676. package/dist/browser-cli-resize-DDY2Vnxq.js +0 -26
  677. package/dist/browser-cli-shared-KEAus8qW.js +0 -50
  678. package/dist/browser-cli-state-cmFcL-Ov.js +0 -337
  679. package/dist/browser-control-auth-B9USDwU2.js +0 -2
  680. package/dist/browser-profiles-wUaKqWjT.js +0 -2
  681. package/dist/browser-runtime-BMjauwo0.js +0 -384
  682. package/dist/build-Dpe0nJg9.js +0 -257
  683. package/dist/capability-cli-APHxOZ1-.js +0 -1782
  684. package/dist/channel--E_8Ztf3.js +0 -238
  685. package/dist/channel-3EQVZa8n.js +0 -2126
  686. package/dist/channel-BWohDmFY.js +0 -1777
  687. package/dist/channel-BfuypvUg.js +0 -562
  688. package/dist/channel-C-xJIqXb.js +0 -508
  689. package/dist/channel-C9ZiWsaI.js +0 -1496
  690. package/dist/channel-CWrkQgCl.js +0 -376
  691. package/dist/channel-CeYYSdzG.js +0 -740
  692. package/dist/channel-ClyBSyAK.js +0 -481
  693. package/dist/channel-Czs81UUj.d.ts +0 -427
  694. package/dist/channel-DG1b4zfh.js +0 -1134
  695. package/dist/channel-DW54rSJn.js +0 -1249
  696. package/dist/channel-DxjDXDxn.js +0 -867
  697. package/dist/channel-FomvCEVN.js +0 -955
  698. package/dist/channel-GKsXwHeD.js +0 -808
  699. package/dist/channel-WXdZaj61.js +0 -653
  700. package/dist/channel-actions.runtime-NGRDvF7V.js +0 -265
  701. package/dist/channel-core-DtMwDjjI.js +0 -5
  702. package/dist/channel-e8DrnKQ4.js +0 -1556
  703. package/dist/channel-inbound-DHAnp9B7.js +0 -80
  704. package/dist/channel-nELBI87_.js +0 -362
  705. package/dist/channel-plugin-runtime-Djo2BcWh.js +0 -998
  706. package/dist/channel-runtime-CAlo3fCO.js +0 -408
  707. package/dist/channel.runtime-B3Ul1RFH.js +0 -4
  708. package/dist/channel.runtime-B9St3ZA6.js +0 -2528
  709. package/dist/channel.runtime-BJQkhPRD.js +0 -109
  710. package/dist/channel.runtime-CK75RXGn.js +0 -652
  711. package/dist/channel.runtime-CToTSl-o.js +0 -254
  712. package/dist/channel.runtime-CmCC2X3-.js +0 -1008
  713. package/dist/channel.runtime-D9aRtIhc.js +0 -733
  714. package/dist/channel.runtime-awjkyecJ.js +0 -88
  715. package/dist/channel.runtime-j5gDw94U.js +0 -21009
  716. package/dist/channel.setup--MA2uXGh.js +0 -1098
  717. package/dist/channel.setup-CoJW0xXI.js +0 -343
  718. package/dist/channel.setup-Du2MwoWF.js +0 -10
  719. package/dist/chat-_rJvHV8g.js +0 -2666
  720. package/dist/chrome-Du8Sd8UD.js +0 -1503
  721. package/dist/cli-DmfcqkxN.js +0 -1341
  722. package/dist/cli-compaction-6W-_Qcqh.js +0 -347
  723. package/dist/cli-metadata-B4zGtsS4.js +0 -22
  724. package/dist/cli-runner-C2sL9k3L.js +0 -2
  725. package/dist/cli-runner-DppcV2AG.js +0 -540
  726. package/dist/cli-runner.runtime-CQLSyTQY.js +0 -4
  727. package/dist/cli-runner.runtime-CbEAn48-.js +0 -3
  728. package/dist/client-Dk9ROpNW.js +0 -650
  729. package/dist/client-adapter-ClI0hCmb.js +0 -897
  730. package/dist/client-factory-CaCu9BQF.js +0 -9
  731. package/dist/command-auth-6q0HyTu9.js +0 -135
  732. package/dist/command-handlers-DMAACmGz.js +0 -1609
  733. package/dist/command-registry-CfpDWtfY.js +0 -9
  734. package/dist/command-registry-Dnxqw0fv.js +0 -4
  735. package/dist/command-registry-core-D11J7oB_.js +0 -110
  736. package/dist/command-status.runtime-DrsPaVZw.js +0 -90
  737. package/dist/commands-acp-B4PDb6rs.js +0 -74
  738. package/dist/commands-compact.runtime-BmK2PNTw.js +0 -10
  739. package/dist/commands-handlers.runtime-C5hpRwAL.js +0 -6154
  740. package/dist/commands-status-CiZyKzzI.js +0 -3
  741. package/dist/commands-status-CzSWpd6s.js +0 -16
  742. package/dist/commands-status.runtime-CiZyKzzI.js +0 -3
  743. package/dist/commands-subagents-control.runtime-qc9m5MmZ.js +0 -3
  744. package/dist/commands-subagents-control.runtime-tWG0OlZd.js +0 -2
  745. package/dist/commands-system-prompt-6Q-vf5jq.js +0 -162
  746. package/dist/commands-system-prompt-FecWmCWC.js +0 -2
  747. package/dist/commands.runtime-DEt9uWfr.js +0 -176
  748. package/dist/compact-CgCjnQEP.js +0 -480
  749. package/dist/compact-D6t2ld0f.js +0 -1141
  750. package/dist/compact.runtime-CtoOHiEB.js +0 -12
  751. package/dist/completion-cli-CAHVBBDJ.js +0 -315
  752. package/dist/computer-use-CdIz1WHr.js +0 -367
  753. package/dist/config-CFxlEsAY.js +0 -373
  754. package/dist/config-mutations-6ioXU8Qg.js +0 -159
  755. package/dist/config-wUaKqWjT.js +0 -2
  756. package/dist/context-engine-host-compat-CFAOug91.js +0 -288
  757. package/dist/context-engine-host-compat-Cqe9ZyUZ.js +0 -2
  758. package/dist/context-engine-lifecycle-BjQwDRNw.js +0 -1274
  759. package/dist/control-auth-Du_jaEQB.js +0 -114
  760. package/dist/control-service-DIBBeoM_.js +0 -145
  761. package/dist/control-ui/assets/agents-BzOECW97.js +0 -1008
  762. package/dist/control-ui/assets/channel-config-extras-C-cqqjn3.js +0 -2
  763. package/dist/control-ui/assets/channels-B2c1DoAf.js +0 -367
  764. package/dist/control-ui/assets/cron-Dikdppj_.js +0 -1013
  765. package/dist/control-ui/assets/debug-BTcka11D.js +0 -97
  766. package/dist/control-ui/assets/index-BifhGgI4.js +0 -7378
  767. package/dist/control-ui/assets/instances-DnlcwLSs.js +0 -57
  768. package/dist/control-ui/assets/logs-CUGJL7Ia.js +0 -74
  769. package/dist/control-ui/assets/nodes-DuwS3hRY.js +0 -436
  770. package/dist/control-ui/assets/sessions-DtiOFwOv.js +0 -399
  771. package/dist/control-ui/assets/skills-shared-Y3plxrx2.js +0 -11
  772. package/dist/control-ui/assets/skills-yR0YXQld.js +0 -314
  773. package/dist/conversation-binding-runtime-BnDFNjpw.js +0 -4
  774. package/dist/conversation-runtime-DXfeo_YZ.js +0 -31
  775. package/dist/core-CwGP8lnn.js +0 -282
  776. package/dist/core-api-B3hgaGPY.js +0 -5
  777. package/dist/core-api-DhVgU6Pw.js +0 -2
  778. package/dist/crestodian-BQF8KHgB.js +0 -55
  779. package/dist/daocore-tools-DwFKEwEz.js +0 -11727
  780. package/dist/delivery-LkV1NN8a.js +0 -1002
  781. package/dist/dialogue-BIB1NqtA.js +0 -37
  782. package/dist/dir-fetch-tool-DyG20xlt.js +0 -565
  783. package/dist/dir-list-tool-BntISSEL.js +0 -100
  784. package/dist/direct-dm-Dfgmj_Rk.js +0 -64
  785. package/dist/directive-handling.fast-lane-CPtDyKdP.js +0 -68
  786. package/dist/directive-handling.impl-CuhOq-BS.js +0 -2
  787. package/dist/directive-handling.impl-SAvKobjF.js +0 -818
  788. package/dist/directive-handling.model-selection-3dnu2j_t.js +0 -122
  789. package/dist/directive-handling.persist.runtime-y8pN8w-i.js +0 -263
  790. package/dist/dispatch-C_JMxM3D.js +0 -1640
  791. package/dist/dispatch-acp-transcript.runtime-BA4jA5DL.js +0 -40
  792. package/dist/dispatch-acp.runtime-BhpXHUuZ.js +0 -18
  793. package/dist/doctor-CRMnQl-o.js +0 -6
  794. package/dist/doctor-DD_iqydP.js +0 -2
  795. package/dist/doctor-config-flow-BXKaaiSk.js +0 -1741
  796. package/dist/doctor-core-checks-CSYsZXuS.js +0 -573
  797. package/dist/doctor-core-checks-xGSa7eSt.js +0 -2
  798. package/dist/doctor-health-contributions-DVLNXMsN.js +0 -696
  799. package/dist/doctor-health-wIbh8NF6.js +0 -65
  800. package/dist/doctor-lint-Hq2tNUox.js +0 -94
  801. package/dist/doctor-state-integrity-CQQ1oMeP.js +0 -1231
  802. package/dist/dynamic-tools-B3DtJJJn.js +0 -486
  803. package/dist/embedded-backend-Cz0ZebJI.js +0 -579
  804. package/dist/embedded-gateway-stub.runtime-CIk1aOal.js +0 -12
  805. package/dist/exec-approvals-DqJA2OTf.js +0 -149
  806. package/dist/file-fetch-tool-BM0auSop.js +0 -124
  807. package/dist/file-write-tool-CshXwc98.js +0 -127
  808. package/dist/format-BrPefrQt.js +0 -1145
  809. package/dist/gateway-cli-UkR6BmcI.js +0 -435
  810. package/dist/gateway-method-runtime-ucwF-DHM.js +0 -21
  811. package/dist/get-reply-BJ1QFEY8.js +0 -4689
  812. package/dist/get-reply-from-config.runtime-Rm8cMH3e.js +0 -2
  813. package/dist/graph-users-D2gOcc5D.js +0 -1419
  814. package/dist/group-access-BkQ2ldY4.js +0 -112
  815. package/dist/handle-action.guild-admin-aiua5pA-.js +0 -288
  816. package/dist/harness-BT2riWLr.js +0 -61
  817. package/dist/health-CnVZ4T6j.js +0 -4
  818. package/dist/heartbeat-runner-Cjg3EgS1.js +0 -5
  819. package/dist/heartbeat-runner.runtime-CoC3qR61.js +0 -4
  820. package/dist/hooks-DlRvRnbJ.js +0 -534
  821. package/dist/inbound-direct-dm-runtime-BzQSanFy.js +0 -2
  822. package/dist/inbound-reply-dispatch-CDI1clh-.js +0 -148
  823. package/dist/init-pnw2iggs.js +0 -59
  824. package/dist/inline-buttons-Bh_p4ehq.js +0 -40
  825. package/dist/internal-events-u0Ov8uLt.js +0 -90
  826. package/dist/isolated-agent-By1ca-36.js +0 -2
  827. package/dist/isolated-agent-Zz-RQA7J.js +0 -1118
  828. package/dist/lifecycle-R9-dS5vo.js +0 -571
  829. package/dist/list.probe-CZLSVJOU.js +0 -449
  830. package/dist/list.status-command-BfFEfb9a.js +0 -789
  831. package/dist/llm-slug-generator-dCtCznm8.js +0 -78
  832. package/dist/local-dispatch.runtime-D9LP1xHX.js +0 -9
  833. package/dist/manager.runtime-6QpcwMf8.js +0 -2714
  834. package/dist/markdown-to-line-zbqRGuzM.js +0 -811
  835. package/dist/mcp-http-8c8x2bw2.js +0 -555
  836. package/dist/mcp-http-_a6CgNfk.js +0 -2
  837. package/dist/media-understanding-provider-CXP_WVXG.js +0 -339
  838. package/dist/message-actions-SByKheul.js +0 -145
  839. package/dist/message-handler-CKCY2qPA.js +0 -384
  840. package/dist/message-handler-StORmhkH.js +0 -1715
  841. package/dist/message-handler.preflight-BBcy1Vmz.js +0 -1125
  842. package/dist/message-handler.process-DC3NGb_U.js +0 -1484
  843. package/dist/model-qHmcK-wV.js +0 -74
  844. package/dist/model-selection-C_bNk70D.js +0 -272
  845. package/dist/models-0m6kj9Kh.js +0 -104
  846. package/dist/models-P3tVodj6.js +0 -2
  847. package/dist/models-cli-C_jhGL9M.js +0 -256
  848. package/dist/monitor-BK8o2fuJ.js +0 -2788
  849. package/dist/monitor-Bi5Al5Qq.js +0 -1657
  850. package/dist/monitor-CG3e3DTn.js +0 -4377
  851. package/dist/monitor-Cfa9dKXg.js +0 -1370
  852. package/dist/monitor-D3o4Su4a.js +0 -834
  853. package/dist/monitor-D5fMTlZ5.js +0 -60
  854. package/dist/monitor-DmPTU0tw.js +0 -715
  855. package/dist/monitor-DzgPE9f5.js +0 -2
  856. package/dist/monitor-auth-CVtN6J4_.js +0 -179
  857. package/dist/monitor-polling.runtime-Cg2e0kqq.js +0 -883
  858. package/dist/monitor-webhook.runtime-Dj1HmLMX.js +0 -387
  859. package/dist/monitor.account-BQImY6W4.js +0 -5233
  860. package/dist/monitor.runtime-CDK8uUpm.js +0 -2
  861. package/dist/monitor.webhook-DyEHhPJ1.js +0 -180
  862. package/dist/node-cli-sessions-Bv5PguQJ.js +0 -1228
  863. package/dist/openai-http-CIBLqlWd.js +0 -824
  864. package/dist/openresponses-http-DjoX4IHF.js +0 -1173
  865. package/dist/operations-DP1MZD9K.js +0 -805
  866. package/dist/outbound-adapter-BAwVSQlL.js +0 -543
  867. package/dist/outbound-session-route-DtqxN5uz.js +0 -45
  868. package/dist/outbound.runtime-DHPJ4ASv.js +0 -2
  869. package/dist/pi-embedded-BAC7pDy3.js +0 -4
  870. package/dist/pi-embedded-CNX1q8t8.js +0 -3796
  871. package/dist/pi-embedded.runtime-SbuDxtwm.js +0 -4
  872. package/dist/pi-tools-CnpfHiC0.js +0 -2413
  873. package/dist/plan-BNvONvjS.js +0 -81
  874. package/dist/plan-CADq4BFI.js +0 -112
  875. package/dist/plugin-D7gXSmDQ.js +0 -12396
  876. package/dist/plugin-app-cache-key-DrmlMiVI.js +0 -46
  877. package/dist/plugin-enabled-BoIsHSBf.js +0 -233
  878. package/dist/plugin-registration-yt9E-tcz.js +0 -88
  879. package/dist/plugin-service-BV0GV7gk.js +0 -1229
  880. package/dist/policy-D11pkH-F.js +0 -680
  881. package/dist/policy-DRVErS8F.js +0 -138
  882. package/dist/prepare.runtime-D5popyud.js +0 -732
  883. package/dist/preview-warnings-CdcHFLjy.js +0 -392
  884. package/dist/probe-BR_XxREj.js +0 -682
  885. package/dist/probe-CSkuj1Ki.js +0 -47
  886. package/dist/probe-DZHxSUyh.js +0 -2204
  887. package/dist/probe-DvUH7S2e.js +0 -2
  888. package/dist/program-Dp1JSnyB.js +0 -131
  889. package/dist/provider-4N9pa4vk.js +0 -32
  890. package/dist/provider-B6N1_oRM.js +0 -8735
  891. package/dist/provider-_W55dN19.js +0 -152
  892. package/dist/provider-dispatcher-BY0BKM51.js +0 -22
  893. package/dist/provider-session.runtime-CIMHFVsw.js +0 -9
  894. package/dist/provider-yjwJ7cEv.js +0 -32
  895. package/dist/provider.runtime-BXgHyxdL.js +0 -2
  896. package/dist/public-surface-loader-BtZpLAiq.js +0 -114
  897. package/dist/pw-ai-C8gW7XAX.js +0 -3029
  898. package/dist/pw-role-snapshot-DUCYIx3v.js +0 -333
  899. package/dist/reaction-level-D9FhYPnf.js +0 -19
  900. package/dist/reaction-runtime-api-C3r-xTtB.js +0 -116
  901. package/dist/realtime-transcription-provider-Ibc5MlDn.js +0 -205
  902. package/dist/register-C8HRj-Rv.js +0 -2178
  903. package/dist/register.agent-DRcH0h2g.js +0 -156
  904. package/dist/register.crestodian-Cc0_1XnJ.js +0 -24
  905. package/dist/register.maintenance-hDD-888W.js +0 -83
  906. package/dist/register.runtime-3KCk-rHT.js +0 -54
  907. package/dist/register.subclis-CrUZyRN9.js +0 -31
  908. package/dist/register.subclis-DGaNfEn8.js +0 -3
  909. package/dist/register.subclis-core-B5LkL2i6.js +0 -273
  910. package/dist/repair-sequencing-DSOttY24.js +0 -640
  911. package/dist/reply-delivery-CjS0vGdN.js +0 -196
  912. package/dist/reply-runtime-CEB3h2ID.js +0 -11
  913. package/dist/reply.runtime-Rm8cMH3e.js +0 -2
  914. package/dist/request-hp0T5HDv.js +0 -54
  915. package/dist/resolve-allowlist-BN__FO0F.js +0 -220
  916. package/dist/result-fallback-classifier-CfKrq2-s.js +0 -79
  917. package/dist/route-B2z32D9-.js +0 -469
  918. package/dist/route-resolution-B25jgDh8.js +0 -274
  919. package/dist/routes-CM95LS3k.js +0 -3602
  920. package/dist/routes-CUOimkJP.js +0 -2
  921. package/dist/run-CCrse9cU.js +0 -1162
  922. package/dist/run-attempt-Bp3H4oIM.js +0 -7704
  923. package/dist/run-command-9aTCc0HJ.js +0 -23
  924. package/dist/run-command-BuJ1fk8M.js +0 -2
  925. package/dist/run-embedded.runtime-CTprMJ8Z.js +0 -4
  926. package/dist/run-execution-cli.runtime-B05Oa61H.js +0 -4
  927. package/dist/run-subagent-registry.runtime-CJ0Hs8Pw.js +0 -2
  928. package/dist/runtime-CKKZ8Pcs.js +0 -438
  929. package/dist/runtime-Cdi7BCo3.js +0 -6179
  930. package/dist/runtime-D3XaGRT8.js +0 -1287
  931. package/dist/runtime-api-1yqMVS2P.js +0 -17
  932. package/dist/runtime-api-B2sZsZh8.js +0 -4
  933. package/dist/runtime-api-BgQT9LMm.js +0 -21
  934. package/dist/runtime-api-CsbGUmvA.js +0 -3
  935. package/dist/runtime-api-DpTi-PJ3.js +0 -24
  936. package/dist/runtime-api-c9O4luRc.js +0 -13
  937. package/dist/runtime-api-iiw2xe0i.js +0 -13
  938. package/dist/runtime-api.actions-BVrajshb.js +0 -3
  939. package/dist/runtime-api.monitor-BShOXy33.js +0 -6
  940. package/dist/runtime-api.send-BTuGzQtf.js +0 -4
  941. package/dist/runtime-api.threads-3cF-9XFp.js +0 -2
  942. package/dist/runtime-channel-CwZHOoMT.js +0 -2
  943. package/dist/runtime-channel-fHBJLcYG.js +0 -150
  944. package/dist/runtime-embedded-pi.runtime-Cgc2MHEr.js +0 -2
  945. package/dist/sanitize-outbound-DTdYOSuN.js +0 -127
  946. package/dist/sdk-setup-tools-DsgXMSJF.js +0 -8
  947. package/dist/secrets-xq1GA7Xo.js +0 -113
  948. package/dist/security-audit-Du_2AwxR.js +0 -122
  949. package/dist/security-audit-i1ehCFCk.js +0 -118
  950. package/dist/security-audit.runtime-nBiU375z.js +0 -2
  951. package/dist/selection-CZeNX1pE.js +0 -3
  952. package/dist/selection-DTrJ8MmR.js +0 -16157
  953. package/dist/send-79TPg_6c.js +0 -2
  954. package/dist/send-91PqXvSN.js +0 -192
  955. package/dist/send-C2reDA-B.js +0 -143
  956. package/dist/send-JRMzkOJi.js +0 -1631
  957. package/dist/send.components-Dv_9V1n4.js +0 -500
  958. package/dist/send.components-MeAhqv9J.js +0 -2
  959. package/dist/send.runtime-BXAcNcFW.js +0 -2
  960. package/dist/server-CFMwy7OB.js +0 -24
  961. package/dist/server-context-Dqwl703G.js +0 -955
  962. package/dist/server-context-wK29CPaJ.js +0 -2
  963. package/dist/server-cron-B1DKKd9L.js +0 -2
  964. package/dist/server-cron-i1RW7vPj.js +0 -2989
  965. package/dist/server-jF0fwwqG.js +0 -73
  966. package/dist/server-methods-CbFofeYw.js +0 -16499
  967. package/dist/server-node-events-DL9C2Zgb.js +0 -596
  968. package/dist/server-plugin-bootstrap-BpLRcl2N.js +0 -70
  969. package/dist/server-plugins-Bw4luxP4.js +0 -432
  970. package/dist/server-reload-handlers-Du2MmNNy.js +0 -714
  971. package/dist/server-restart-sentinel-Bi93NfH5.js +0 -747
  972. package/dist/server-restart-sentinel-CZQ5DtCS.js +0 -2
  973. package/dist/server-runtime-services-6xIr0oF5.js +0 -267
  974. package/dist/server-runtime-services-Bn_-QBG_.js +0 -2
  975. package/dist/server-startup-plugins-D67Ykogy.js +0 -113
  976. package/dist/server-startup-post-attach-DGj_JzsI.js +0 -716
  977. package/dist/server-ws-runtime-DY6Aw13I.js +0 -349
  978. package/dist/server.impl-6rbQJgzF.js +0 -2586
  979. package/dist/service-BniJ-ml1.js +0 -1446
  980. package/dist/session-binding-BCrf6P9-.js +0 -2
  981. package/dist/session-binding-Dv-7cruS.js +0 -219
  982. package/dist/session-kill-http-BJFrJrtN.js +0 -121
  983. package/dist/session-reset-service-BbWtWMwD.js +0 -625
  984. package/dist/session-route-DU5w8Y32.js +0 -93
  985. package/dist/session-status.runtime-BlQpbVG5.js +0 -2
  986. package/dist/session-subagent-reactivation.runtime-5Q01Ew9-.js +0 -2
  987. package/dist/session-tab-registry-BuYe4OOF.js +0 -521
  988. package/dist/sessions-history-http-DSsnYvkK.js +0 -430
  989. package/dist/sessions.runtime-BmeoWYRz.js +0 -2
  990. package/dist/setup-api-CKNdGNsP.js +0 -29
  991. package/dist/setup-core-DP5EwSY0.js +0 -174
  992. package/dist/setup-surface-BYCu55nE.js +0 -288
  993. package/dist/setup-surface-B_2igLCv.js +0 -405
  994. package/dist/setup-surface-BcnlyFJo.js +0 -221
  995. package/dist/setup-surface-BuTeC8Tu.js +0 -320
  996. package/dist/shared-RXlS1jcs.js +0 -121
  997. package/dist/shared-client-C3MyzMO-.js +0 -2
  998. package/dist/shared-client-ChFVc6qy.js +0 -629
  999. package/dist/side-question-C7XXJ3WJ.js +0 -683
  1000. package/dist/skill-tool-dispatch.runtime-D-KdTx1M.js +0 -143
  1001. package/dist/slash-state-Bkj8dL5a.js +0 -2166
  1002. package/dist/speech-provider-BunrBrCI.js +0 -184
  1003. package/dist/src-CEgolSf5.js +0 -4256
  1004. package/dist/startup-context-JB4BWjRi.js +0 -313
  1005. package/dist/status-subagents.runtime-Bp7aARu7.js +0 -18
  1006. package/dist/status-text-DN8S2Q1J.js +0 -296
  1007. package/dist/sticker-cache-Be-oBI7L.js +0 -206
  1008. package/dist/sticker-vision.runtime-Ba4krDPo.js +0 -17
  1009. package/dist/subagent-announce-C7j9VsZa.js +0 -354
  1010. package/dist/subagent-announce-delivery-CB4UtEg2.js +0 -958
  1011. package/dist/subagent-control-C4koBB2g.js +0 -508
  1012. package/dist/subagent-hooks-C6RmP8Ul.js +0 -2
  1013. package/dist/subagent-hooks-CrDfx1bX.js +0 -146
  1014. package/dist/subagent-hooks-Dh-10ODX.js +0 -116
  1015. package/dist/subagent-hooks-DjGGmJOs.js +0 -2
  1016. package/dist/subagent-hooks-Djrkg_r_.js +0 -230
  1017. package/dist/subagent-hooks-XiGzfcD1.js +0 -2
  1018. package/dist/subagent-hooks-api-BAuY6yAp.js +0 -23
  1019. package/dist/subagent-hooks-api-X4Wq3-bg.js +0 -22
  1020. package/dist/subagent-hooks-api-uGaYQ3ls.js +0 -23
  1021. package/dist/subagent-orphan-recovery-CiT4T6EK.js +0 -352
  1022. package/dist/subagent-registry-CJUOLPWx.js +0 -3
  1023. package/dist/subagent-registry-DkLEo8Gw.js +0 -2351
  1024. package/dist/subagent-session-cleanup-BXd7lwdo.js +0 -525
  1025. package/dist/subagent-spawn-C0nFUSkA.js +0 -1164
  1026. package/dist/target-id-C-_5ZyaM.js +0 -107
  1027. package/dist/targets-C6aOnm7M.js +0 -19
  1028. package/dist/targets-CeAvrPZY.js +0 -19
  1029. package/dist/targets-CiQWn-48.js +0 -44
  1030. package/dist/testing-dGXqtqph.js +0 -267
  1031. package/dist/thread-bindings-2it1TXRk.js +0 -228
  1032. package/dist/thread-bindings-BVsdSE6x.js +0 -232
  1033. package/dist/thread-bindings-CxRt4oO6.js +0 -571
  1034. package/dist/thread-bindings-Duucj0p6.js +0 -8
  1035. package/dist/thread-bindings.discord-api-5DrSBok8.js +0 -187
  1036. package/dist/thread-bindings.manager-8Evv-rZ-.js +0 -2
  1037. package/dist/thread-bindings.manager-Dqs05Cqt.js +0 -536
  1038. package/dist/thread-lifecycle-a9ORG_Qn.js +0 -1614
  1039. package/dist/token-Cd4ZyEet.js +0 -134
  1040. package/dist/tool-X8pfYjSy.js +0 -139
  1041. package/dist/tool-actions.runtime-Be5Jzai5.js +0 -534
  1042. package/dist/tool-resolution-BsitImc6.js +0 -149
  1043. package/dist/tools-effective-inventory-BZrHm8Fz.js +0 -204
  1044. package/dist/tools-invoke-http-ShL1W_9J.js +0 -67
  1045. package/dist/tools-invoke-shared-DeHgr_VB.js +0 -200
  1046. package/dist/tts-Ayx5XgJd.js +0 -66
  1047. package/dist/tui-BMb_k0zQ.js +0 -2
  1048. package/dist/tui-Cok5WLhQ.js +0 -4709
  1049. package/dist/tui-backend-ByoQP-cW.js +0 -256
  1050. package/dist/tui-cli-CUq3hRch.js +0 -37
  1051. package/dist/update-cli-CEgVV8KX.js +0 -3664
  1052. package/dist/vision-tools-l3OhetFy.js +0 -1409
  1053. package/dist/web-search-cDMQBezP.js +0 -62
  1054. package/dist/web-search-provider.runtime-Ckon24db.js +0 -2
  1055. package/dist/web-search-provider.runtime-bfpMar6S.js +0 -328
  1056. package/dist/xai-oauth-DI_oDf1M.js +0 -479
  1057. package/dist/xai-user-agent-C3kBfnkY.js +0 -32
  1058. /package/dist/{acp-runtime-backend-BZ5O5ObX.js → acp-runtime-backend-BetObVpx.js} +0 -0
  1059. /package/dist/{channel-actions-CgtkgM0g.js → channel-actions-DckqlhU7.js} +0 -0
  1060. /package/dist/{command-status-runtime-CP5giZCt.js → command-status-runtime-E16rrPc3.js} +0 -0
  1061. /package/dist/{delegate-BqgaH2oz.js → delegate-BSLYNrsG.js} +0 -0
  1062. /package/dist/{dispatch-acp-BZWxbCpX.js → dispatch-acp-D4tmhg9Q.js} +0 -0
  1063. /package/dist/{heartbeat-runner-Ci-DNWRz.js → heartbeat-runner-DVT5MIY3.js} +0 -0
  1064. /package/dist/{library-Be_uMwZR.js → library-DxK3LF7B.js} +0 -0
  1065. /package/dist/{run-executor.runtime-CMc4ImJr.js → run-executor.runtime-6pORvlOZ.js} +0 -0
  1066. /package/dist/{shared-RstjPNr2.js → shared-KCy8RvKa.js} +0 -0
@@ -1,1496 +0,0 @@
1
- import { i as formatErrorMessage } from "./errors-D_oyTIw2.js";
2
- import { t as DEFAULT_ACCOUNT_ID } from "./account-id-B32J-iNN.js";
3
- import { Et as array, Nn as record, Rn as string, Tn as object, Zn as unknown, dn as literal, wn as number, yt as _enum } from "./schemas-Del5uzR8.js";
4
- import { t as safeParseJsonWithSchema } from "./zod-parse-B4dzFRWI.js";
5
- import { t as privateFileStore } from "./private-file-store-C_5ZwE9L.js";
6
- import { r as buildChannelConfigSchema } from "./config-schema-CpJ4LFf2.js";
7
- import { o as resolveStableChannelMessageIngress } from "./runtime-W39pAdFK.js";
8
- import { l as createScopedDmSecurityResolver, u as createTopLevelChannelConfigAdapter } from "./channel-config-helpers-CQb9YOAn.js";
9
- import { n as formatPairingApproveHint } from "./helpers-DII7kv8Y.js";
10
- import "./error-runtime--zM-GsR-.js";
11
- import { n as describeAccountSnapshot } from "./account-helpers-BEXOONiv.js";
12
- import { i as createChatChannelPlugin, t as buildChannelOutboundSessionRoute, u as stripChannelTargetPrefix } from "./core-CwGP8lnn.js";
13
- import "./channel-core-DtMwDjjI.js";
14
- import { t as createPluginRuntimeStore } from "./runtime-store-BSkCngaf.js";
15
- import "./security-runtime-Q5KQBgu1.js";
16
- import { t as createDirectDmPreCryptoGuardPolicy } from "./direct-dm-guard-policy-Bi3caG-G.js";
17
- import { c as collectStatusIssuesFromLastError, d as createDefaultChannelRuntimeState, u as createComputedAccountStatusAdapter } from "./status-helpers-nyf_mfYa.js";
18
- import { r as buildTrafficStatusSummary, t as buildPassiveChannelStatusSummary } from "./extension-shared-D6I0yOLZ.js";
19
- import "./channel-ingress-runtime-BZvnfysR.js";
20
- import { k as createChannelMessageAdapterFromOutbound } from "./channel-message-BzXIpZDL.js";
21
- import { n as createChannelPairingController } from "./channel-pairing-BQeyBt0a.js";
22
- import { t as attachChannelToResult } from "./channel-send-result-swFdRKhg.js";
23
- import { n as NostrProfileSchema, t as NostrConfigSchema } from "./config-schema-C-NqMGUr.js";
24
- import { a as resolveNostrAccount, c as SimplePool, d as verifyEvent, f as cbc, g as randomBytes, h as hexToBytes, i as resolveDefaultNostrAccountId, l as finalizeEvent, m as secp256k1, n as nostrSetupWizard, o as normalizePubkey, p as base64, r as listNostrAccountIds, s as validatePrivateKey, t as nostrSetupAdapter, u as getPublicKey } from "./setup-surface-Cf3nizr7.js";
25
- import { i as DEFAULT_RELAYS } from "./setup-adapter-DMuZmn45.js";
26
- import path from "node:path";
27
- import os from "node:os";
28
- //#region node_modules/nostr-tools/lib/esm/nip04.js
29
- var utf8Decoder = new TextDecoder("utf-8");
30
- var utf8Encoder = new TextEncoder();
31
- function encrypt(secretKey, pubkey, text) {
32
- const privkey = secretKey instanceof Uint8Array ? secretKey : hexToBytes(secretKey);
33
- const normalizedKey = getNormalizedX(secp256k1.getSharedSecret(privkey, hexToBytes("02" + pubkey)));
34
- let iv = Uint8Array.from(randomBytes(16));
35
- let plaintext = utf8Encoder.encode(text);
36
- let ciphertext = cbc(normalizedKey, iv).encrypt(plaintext);
37
- return `${base64.encode(new Uint8Array(ciphertext))}?iv=${base64.encode(new Uint8Array(iv.buffer))}`;
38
- }
39
- function decrypt(secretKey, pubkey, data) {
40
- const privkey = secretKey instanceof Uint8Array ? secretKey : hexToBytes(secretKey);
41
- let [ctb64, ivb64] = data.split("?iv=");
42
- let normalizedKey = getNormalizedX(secp256k1.getSharedSecret(privkey, hexToBytes("02" + pubkey)));
43
- let iv = base64.decode(ivb64);
44
- let ciphertext = base64.decode(ctb64);
45
- let plaintext = cbc(normalizedKey, iv).decrypt(ciphertext);
46
- return utf8Decoder.decode(plaintext);
47
- }
48
- function getNormalizedX(key) {
49
- return key.slice(1, 33);
50
- }
51
- //#endregion
52
- //#region extensions/nostr/src/metrics.ts
53
- /**
54
- * Create a metrics collector instance.
55
- * Optionally pass an onMetric callback to receive real-time metric events.
56
- */
57
- function createMetrics(onMetric) {
58
- let eventsReceived = 0;
59
- let eventsProcessed = 0;
60
- let eventsDuplicate = 0;
61
- const eventsRejected = {
62
- invalidShape: 0,
63
- wrongKind: 0,
64
- stale: 0,
65
- future: 0,
66
- rateLimited: 0,
67
- invalidSignature: 0,
68
- oversizedCiphertext: 0,
69
- oversizedPlaintext: 0,
70
- decryptFailed: 0,
71
- selfMessage: 0
72
- };
73
- const relays = /* @__PURE__ */ new Map();
74
- const rateLimiting = {
75
- perSenderHits: 0,
76
- globalHits: 0
77
- };
78
- const decrypt = {
79
- success: 0,
80
- failure: 0
81
- };
82
- const memory = {
83
- seenTrackerSize: 0,
84
- rateLimiterEntries: 0
85
- };
86
- function getOrCreateRelay(url) {
87
- let relay = relays.get(url);
88
- if (!relay) {
89
- relay = {
90
- connects: 0,
91
- disconnects: 0,
92
- reconnects: 0,
93
- errors: 0,
94
- messagesReceived: {
95
- event: 0,
96
- eose: 0,
97
- closed: 0,
98
- notice: 0,
99
- ok: 0,
100
- auth: 0
101
- },
102
- circuitBreakerState: "closed",
103
- circuitBreakerOpens: 0,
104
- circuitBreakerCloses: 0
105
- };
106
- relays.set(url, relay);
107
- }
108
- return relay;
109
- }
110
- function emit(name, value = 1, labels) {
111
- if (onMetric) onMetric({
112
- name,
113
- value,
114
- timestamp: Date.now(),
115
- labels
116
- });
117
- const relayUrl = labels?.relay;
118
- switch (name) {
119
- case "event.received":
120
- eventsReceived += value;
121
- break;
122
- case "event.processed":
123
- eventsProcessed += value;
124
- break;
125
- case "event.duplicate":
126
- eventsDuplicate += value;
127
- break;
128
- case "event.rejected.invalid_shape":
129
- eventsRejected.invalidShape += value;
130
- break;
131
- case "event.rejected.wrong_kind":
132
- eventsRejected.wrongKind += value;
133
- break;
134
- case "event.rejected.stale":
135
- eventsRejected.stale += value;
136
- break;
137
- case "event.rejected.future":
138
- eventsRejected.future += value;
139
- break;
140
- case "event.rejected.rate_limited":
141
- eventsRejected.rateLimited += value;
142
- break;
143
- case "event.rejected.invalid_signature":
144
- eventsRejected.invalidSignature += value;
145
- break;
146
- case "event.rejected.oversized_ciphertext":
147
- eventsRejected.oversizedCiphertext += value;
148
- break;
149
- case "event.rejected.oversized_plaintext":
150
- eventsRejected.oversizedPlaintext += value;
151
- break;
152
- case "event.rejected.decrypt_failed":
153
- eventsRejected.decryptFailed += value;
154
- break;
155
- case "event.rejected.self_message":
156
- eventsRejected.selfMessage += value;
157
- break;
158
- case "relay.connect":
159
- if (relayUrl) getOrCreateRelay(relayUrl).connects += value;
160
- break;
161
- case "relay.disconnect":
162
- if (relayUrl) getOrCreateRelay(relayUrl).disconnects += value;
163
- break;
164
- case "relay.reconnect":
165
- if (relayUrl) getOrCreateRelay(relayUrl).reconnects += value;
166
- break;
167
- case "relay.error":
168
- if (relayUrl) getOrCreateRelay(relayUrl).errors += value;
169
- break;
170
- case "relay.message.event":
171
- if (relayUrl) getOrCreateRelay(relayUrl).messagesReceived.event += value;
172
- break;
173
- case "relay.message.eose":
174
- if (relayUrl) getOrCreateRelay(relayUrl).messagesReceived.eose += value;
175
- break;
176
- case "relay.message.closed":
177
- if (relayUrl) getOrCreateRelay(relayUrl).messagesReceived.closed += value;
178
- break;
179
- case "relay.message.notice":
180
- if (relayUrl) getOrCreateRelay(relayUrl).messagesReceived.notice += value;
181
- break;
182
- case "relay.message.ok":
183
- if (relayUrl) getOrCreateRelay(relayUrl).messagesReceived.ok += value;
184
- break;
185
- case "relay.message.auth":
186
- if (relayUrl) getOrCreateRelay(relayUrl).messagesReceived.auth += value;
187
- break;
188
- case "relay.circuit_breaker.open":
189
- if (relayUrl) {
190
- const r = getOrCreateRelay(relayUrl);
191
- r.circuitBreakerState = "open";
192
- r.circuitBreakerOpens += value;
193
- }
194
- break;
195
- case "relay.circuit_breaker.close":
196
- if (relayUrl) {
197
- const r = getOrCreateRelay(relayUrl);
198
- r.circuitBreakerState = "closed";
199
- r.circuitBreakerCloses += value;
200
- }
201
- break;
202
- case "relay.circuit_breaker.half_open":
203
- if (relayUrl) getOrCreateRelay(relayUrl).circuitBreakerState = "half_open";
204
- break;
205
- case "rate_limit.per_sender":
206
- rateLimiting.perSenderHits += value;
207
- break;
208
- case "rate_limit.global":
209
- rateLimiting.globalHits += value;
210
- break;
211
- case "decrypt.success":
212
- decrypt.success += value;
213
- break;
214
- case "decrypt.failure":
215
- decrypt.failure += value;
216
- break;
217
- case "memory.seen_tracker_size":
218
- memory.seenTrackerSize = value;
219
- break;
220
- case "memory.rate_limiter_entries":
221
- memory.rateLimiterEntries = value;
222
- break;
223
- }
224
- }
225
- function getSnapshot() {
226
- const relaysObj = {};
227
- for (const [url, stats] of relays) relaysObj[url] = {
228
- ...stats,
229
- messagesReceived: { ...stats.messagesReceived }
230
- };
231
- return {
232
- eventsReceived,
233
- eventsProcessed,
234
- eventsDuplicate,
235
- eventsRejected: { ...eventsRejected },
236
- relays: relaysObj,
237
- rateLimiting: { ...rateLimiting },
238
- decrypt: { ...decrypt },
239
- memory: { ...memory },
240
- snapshotAt: Date.now()
241
- };
242
- }
243
- function reset() {
244
- eventsReceived = 0;
245
- eventsProcessed = 0;
246
- eventsDuplicate = 0;
247
- Object.assign(eventsRejected, {
248
- invalidShape: 0,
249
- wrongKind: 0,
250
- stale: 0,
251
- future: 0,
252
- rateLimited: 0,
253
- invalidSignature: 0,
254
- oversizedCiphertext: 0,
255
- oversizedPlaintext: 0,
256
- decryptFailed: 0,
257
- selfMessage: 0
258
- });
259
- relays.clear();
260
- rateLimiting.perSenderHits = 0;
261
- rateLimiting.globalHits = 0;
262
- decrypt.success = 0;
263
- decrypt.failure = 0;
264
- memory.seenTrackerSize = 0;
265
- memory.rateLimiterEntries = 0;
266
- }
267
- return {
268
- emit,
269
- getSnapshot,
270
- reset
271
- };
272
- }
273
- /**
274
- * Create a no-op metrics instance (for when metrics are disabled).
275
- */
276
- function createNoopMetrics() {
277
- const emptySnapshot = {
278
- eventsReceived: 0,
279
- eventsProcessed: 0,
280
- eventsDuplicate: 0,
281
- eventsRejected: {
282
- invalidShape: 0,
283
- wrongKind: 0,
284
- stale: 0,
285
- future: 0,
286
- rateLimited: 0,
287
- invalidSignature: 0,
288
- oversizedCiphertext: 0,
289
- oversizedPlaintext: 0,
290
- decryptFailed: 0,
291
- selfMessage: 0
292
- },
293
- relays: {},
294
- rateLimiting: {
295
- perSenderHits: 0,
296
- globalHits: 0
297
- },
298
- decrypt: {
299
- success: 0,
300
- failure: 0
301
- },
302
- memory: {
303
- seenTrackerSize: 0,
304
- rateLimiterEntries: 0
305
- },
306
- snapshotAt: 0
307
- };
308
- return {
309
- emit: () => {},
310
- getSnapshot: () => ({
311
- ...emptySnapshot,
312
- snapshotAt: Date.now()
313
- }),
314
- reset: () => {}
315
- };
316
- }
317
- //#endregion
318
- //#region extensions/nostr/src/nostr-profile-core.ts
319
- /**
320
- * Convert our config profile schema to NIP-01 content format.
321
- * Strips undefined fields and validates URLs.
322
- */
323
- function profileToContent(profile) {
324
- const validated = NostrProfileSchema.parse(profile);
325
- const content = {};
326
- if (validated.name !== void 0) content.name = validated.name;
327
- if (validated.displayName !== void 0) content.display_name = validated.displayName;
328
- if (validated.about !== void 0) content.about = validated.about;
329
- if (validated.picture !== void 0) content.picture = validated.picture;
330
- if (validated.banner !== void 0) content.banner = validated.banner;
331
- if (validated.website !== void 0) content.website = validated.website;
332
- if (validated.nip05 !== void 0) content.nip05 = validated.nip05;
333
- if (validated.lud16 !== void 0) content.lud16 = validated.lud16;
334
- return content;
335
- }
336
- /**
337
- * Convert NIP-01 content format back to our config profile schema.
338
- * Useful for importing existing profiles from relays.
339
- */
340
- function contentToProfile(content) {
341
- const profile = {};
342
- if (content.name !== void 0) profile.name = content.name;
343
- if (content.display_name !== void 0) profile.displayName = content.display_name;
344
- if (content.about !== void 0) profile.about = content.about;
345
- if (content.picture !== void 0) profile.picture = content.picture;
346
- if (content.banner !== void 0) profile.banner = content.banner;
347
- if (content.website !== void 0) profile.website = content.website;
348
- if (content.nip05 !== void 0) profile.nip05 = content.nip05;
349
- if (content.lud16 !== void 0) profile.lud16 = content.lud16;
350
- return profile;
351
- }
352
- //#endregion
353
- //#region extensions/nostr/src/nostr-profile.ts
354
- /**
355
- * Nostr Profile Management (NIP-01 kind:0)
356
- *
357
- * Profile events are "replaceable" - the latest created_at wins.
358
- * This module handles profile event creation and publishing.
359
- */
360
- /**
361
- * Create a signed kind:0 profile event.
362
- *
363
- * @param sk - Private key as Uint8Array (32 bytes)
364
- * @param profile - Profile data to include
365
- * @param lastPublishedAt - Previous profile timestamp (for monotonic guarantee)
366
- * @returns Signed Nostr event
367
- */
368
- function createProfileEvent(sk, profile, lastPublishedAt) {
369
- const content = profileToContent(profile);
370
- const contentJson = JSON.stringify(content);
371
- const now = Math.floor(Date.now() / 1e3);
372
- return finalizeEvent({
373
- kind: 0,
374
- content: contentJson,
375
- tags: [],
376
- created_at: lastPublishedAt !== void 0 ? Math.max(now, lastPublishedAt + 1) : now
377
- }, sk);
378
- }
379
- /** Per-relay publish timeout (ms) */
380
- const RELAY_PUBLISH_TIMEOUT_MS = 5e3;
381
- /**
382
- * Publish a profile event to multiple relays.
383
- *
384
- * Best-effort: publishes to all relays in parallel, reports per-relay results.
385
- * Does NOT retry automatically - caller should handle retries if needed.
386
- *
387
- * @param pool - SimplePool instance for relay connections
388
- * @param relays - Array of relay WebSocket URLs
389
- * @param event - Signed profile event (kind:0)
390
- * @returns Publish results with successes and failures
391
- */
392
- async function publishProfileEvent(pool, relays, event) {
393
- const successes = [];
394
- const failures = [];
395
- const publishPromises = relays.map(async (relay) => {
396
- try {
397
- const timeoutPromise = new Promise((_, reject) => {
398
- setTimeout(() => reject(/* @__PURE__ */ new Error("timeout")), RELAY_PUBLISH_TIMEOUT_MS);
399
- });
400
- await Promise.race([...pool.publish([relay], event), timeoutPromise]);
401
- successes.push(relay);
402
- } catch (err) {
403
- const errorMessage = formatErrorMessage(err);
404
- failures.push({
405
- relay,
406
- error: errorMessage
407
- });
408
- }
409
- });
410
- await Promise.all(publishPromises);
411
- return {
412
- eventId: event.id,
413
- successes,
414
- failures,
415
- createdAt: event.created_at
416
- };
417
- }
418
- /**
419
- * Create and publish a profile event in one call.
420
- *
421
- * @param pool - SimplePool instance
422
- * @param sk - Private key as Uint8Array
423
- * @param relays - Array of relay URLs
424
- * @param profile - Profile data
425
- * @param lastPublishedAt - Previous timestamp for monotonic ordering
426
- * @returns Publish results
427
- */
428
- async function publishProfile(pool, sk, relays, profile, lastPublishedAt) {
429
- return publishProfileEvent(pool, relays, createProfileEvent(sk, profile, lastPublishedAt));
430
- }
431
- //#endregion
432
- //#region extensions/nostr/src/runtime.ts
433
- const { setRuntime: setNostrRuntime, getRuntime: getNostrRuntime } = createPluginRuntimeStore({
434
- pluginId: "nostr",
435
- errorMessage: "Nostr runtime not initialized"
436
- });
437
- //#endregion
438
- //#region extensions/nostr/src/nostr-state-store.ts
439
- const STORE_VERSION = 2;
440
- const PROFILE_STATE_VERSION = 1;
441
- const NullableFiniteNumberSchema = number().finite().nullable().catch(null);
442
- const NostrBusStateV1Schema = object({
443
- version: literal(1),
444
- lastProcessedAt: NullableFiniteNumberSchema,
445
- gatewayStartedAt: NullableFiniteNumberSchema
446
- });
447
- const NostrBusStateSchema = object({
448
- version: literal(2),
449
- lastProcessedAt: NullableFiniteNumberSchema,
450
- gatewayStartedAt: NullableFiniteNumberSchema,
451
- recentEventIds: array(unknown()).catch([]).transform((ids) => ids.filter((id) => typeof id === "string"))
452
- });
453
- const NostrProfileStateSchema = object({
454
- version: literal(1),
455
- lastPublishedAt: NullableFiniteNumberSchema,
456
- lastPublishedEventId: string().nullable().catch(null),
457
- lastPublishResults: record(string(), _enum([
458
- "ok",
459
- "failed",
460
- "timeout"
461
- ])).nullable().catch(null)
462
- });
463
- function normalizeAccountId(accountId) {
464
- const trimmed = accountId?.trim();
465
- if (!trimmed) return "default";
466
- return trimmed.replace(/[^a-z0-9._-]+/gi, "_");
467
- }
468
- function resolveNostrStatePath(accountId, env = process.env) {
469
- const stateDir = getNostrRuntime().state.resolveStateDir(env, os.homedir);
470
- const normalized = normalizeAccountId(accountId);
471
- return path.join(stateDir, "nostr", `bus-state-${normalized}.json`);
472
- }
473
- function resolveNostrProfileStatePath(accountId, env = process.env) {
474
- const stateDir = getNostrRuntime().state.resolveStateDir(env, os.homedir);
475
- const normalized = normalizeAccountId(accountId);
476
- return path.join(stateDir, "nostr", `profile-state-${normalized}.json`);
477
- }
478
- function safeParseState(raw) {
479
- const parsedV2 = safeParseJsonWithSchema(NostrBusStateSchema, raw);
480
- if (parsedV2) return parsedV2;
481
- const parsedV1 = safeParseJsonWithSchema(NostrBusStateV1Schema, raw);
482
- if (!parsedV1) return null;
483
- return {
484
- version: 2,
485
- lastProcessedAt: parsedV1.lastProcessedAt,
486
- gatewayStartedAt: parsedV1.gatewayStartedAt,
487
- recentEventIds: []
488
- };
489
- }
490
- async function readNostrBusState(params) {
491
- const filePath = resolveNostrStatePath(params.accountId, params.env);
492
- try {
493
- const raw = await privateFileStore(path.dirname(filePath)).readTextIfExists(path.basename(filePath));
494
- if (raw === null) return null;
495
- return safeParseState(raw);
496
- } catch {
497
- return null;
498
- }
499
- }
500
- async function writeNostrBusState(params) {
501
- const filePath = resolveNostrStatePath(params.accountId, params.env);
502
- const payload = {
503
- version: STORE_VERSION,
504
- lastProcessedAt: params.lastProcessedAt,
505
- gatewayStartedAt: params.gatewayStartedAt,
506
- recentEventIds: (params.recentEventIds ?? []).filter((x) => typeof x === "string")
507
- };
508
- await privateFileStore(path.dirname(filePath)).writeJson(path.basename(filePath), payload, { trailingNewline: true });
509
- }
510
- /**
511
- * Determine the `since` timestamp for subscription.
512
- * Returns the later of: lastProcessedAt or gatewayStartedAt (both from disk),
513
- * falling back to `now` for fresh starts.
514
- */
515
- function computeSinceTimestamp(state, nowSec = Math.floor(Date.now() / 1e3)) {
516
- if (!state) return nowSec;
517
- const candidates = [state.lastProcessedAt, state.gatewayStartedAt].filter((t) => t !== null && t > 0);
518
- if (candidates.length === 0) return nowSec;
519
- return Math.max(...candidates);
520
- }
521
- function safeParseProfileState(raw) {
522
- return safeParseJsonWithSchema(NostrProfileStateSchema, raw);
523
- }
524
- async function readNostrProfileState(params) {
525
- const filePath = resolveNostrProfileStatePath(params.accountId, params.env);
526
- try {
527
- const raw = await privateFileStore(path.dirname(filePath)).readTextIfExists(path.basename(filePath));
528
- if (raw === null) return null;
529
- return safeParseProfileState(raw);
530
- } catch {
531
- return null;
532
- }
533
- }
534
- async function writeNostrProfileState(params) {
535
- const filePath = resolveNostrProfileStatePath(params.accountId, params.env);
536
- const payload = {
537
- version: PROFILE_STATE_VERSION,
538
- lastPublishedAt: params.lastPublishedAt,
539
- lastPublishedEventId: params.lastPublishedEventId,
540
- lastPublishResults: params.lastPublishResults
541
- };
542
- await privateFileStore(path.dirname(filePath)).writeJson(path.basename(filePath), payload, { trailingNewline: true });
543
- }
544
- //#endregion
545
- //#region extensions/nostr/src/seen-tracker.ts
546
- /**
547
- * Create a new seen tracker with LRU eviction and TTL expiration.
548
- */
549
- function createSeenTracker(options) {
550
- const maxEntries = options?.maxEntries ?? 1e5;
551
- const ttlMs = options?.ttlMs ?? 3600 * 1e3;
552
- const pruneIntervalMs = options?.pruneIntervalMs ?? 600 * 1e3;
553
- const entries = /* @__PURE__ */ new Map();
554
- let head = null;
555
- let tail = null;
556
- function moveToFront(id) {
557
- const entry = entries.get(id);
558
- if (!entry) return;
559
- if (head === id) return;
560
- if (entry.prev) {
561
- const prevEntry = entries.get(entry.prev);
562
- if (prevEntry) prevEntry.next = entry.next;
563
- }
564
- if (entry.next) {
565
- const nextEntry = entries.get(entry.next);
566
- if (nextEntry) nextEntry.prev = entry.prev;
567
- }
568
- if (tail === id) tail = entry.prev;
569
- entry.prev = null;
570
- entry.next = head;
571
- if (head) {
572
- const headEntry = entries.get(head);
573
- if (headEntry) headEntry.prev = id;
574
- }
575
- head = id;
576
- if (!tail) tail = id;
577
- }
578
- function removeFromList(id) {
579
- const entry = entries.get(id);
580
- if (!entry) return;
581
- if (entry.prev) {
582
- const prevEntry = entries.get(entry.prev);
583
- if (prevEntry) prevEntry.next = entry.next;
584
- } else head = entry.next;
585
- if (entry.next) {
586
- const nextEntry = entries.get(entry.next);
587
- if (nextEntry) nextEntry.prev = entry.prev;
588
- } else tail = entry.prev;
589
- }
590
- function evictLRU() {
591
- if (!tail) return;
592
- const idToEvict = tail;
593
- removeFromList(idToEvict);
594
- entries.delete(idToEvict);
595
- }
596
- function insertAtFront(id, seenAt) {
597
- const newEntry = {
598
- seenAt,
599
- prev: null,
600
- next: head
601
- };
602
- if (head) {
603
- const headEntry = entries.get(head);
604
- if (headEntry) headEntry.prev = id;
605
- }
606
- entries.set(id, newEntry);
607
- head = id;
608
- if (!tail) tail = id;
609
- }
610
- function pruneExpired() {
611
- const now = Date.now();
612
- const toDelete = [];
613
- for (const [id, entry] of entries) if (now - entry.seenAt > ttlMs) toDelete.push(id);
614
- for (const id of toDelete) {
615
- removeFromList(id);
616
- entries.delete(id);
617
- }
618
- }
619
- let pruneTimer;
620
- if (pruneIntervalMs > 0) {
621
- pruneTimer = setInterval(pruneExpired, pruneIntervalMs);
622
- if (pruneTimer.unref) pruneTimer.unref();
623
- }
624
- function add(id) {
625
- const now = Date.now();
626
- const existing = entries.get(id);
627
- if (existing) {
628
- existing.seenAt = now;
629
- moveToFront(id);
630
- return;
631
- }
632
- while (entries.size >= maxEntries) evictLRU();
633
- insertAtFront(id, now);
634
- }
635
- function has(id) {
636
- const entry = entries.get(id);
637
- if (!entry) {
638
- add(id);
639
- return false;
640
- }
641
- if (Date.now() - entry.seenAt > ttlMs) {
642
- removeFromList(id);
643
- entries.delete(id);
644
- add(id);
645
- return false;
646
- }
647
- entry.seenAt = Date.now();
648
- moveToFront(id);
649
- return true;
650
- }
651
- function peek(id) {
652
- const entry = entries.get(id);
653
- if (!entry) return false;
654
- if (Date.now() - entry.seenAt > ttlMs) {
655
- removeFromList(id);
656
- entries.delete(id);
657
- return false;
658
- }
659
- return true;
660
- }
661
- function deleteEntry(id) {
662
- if (entries.has(id)) {
663
- removeFromList(id);
664
- entries.delete(id);
665
- }
666
- }
667
- function clear() {
668
- entries.clear();
669
- head = null;
670
- tail = null;
671
- }
672
- function size() {
673
- return entries.size;
674
- }
675
- function stop() {
676
- if (pruneTimer) {
677
- clearInterval(pruneTimer);
678
- pruneTimer = void 0;
679
- }
680
- }
681
- function seed(ids) {
682
- const now = Date.now();
683
- for (let i = ids.length - 1; i >= 0; i--) {
684
- const id = ids[i];
685
- if (!entries.has(id) && entries.size < maxEntries) insertAtFront(id, now);
686
- }
687
- }
688
- return {
689
- has,
690
- add,
691
- peek,
692
- delete: deleteEntry,
693
- clear,
694
- size,
695
- stop,
696
- seed
697
- };
698
- }
699
- //#endregion
700
- //#region extensions/nostr/src/nostr-bus.ts
701
- const STARTUP_LOOKBACK_SEC = 120;
702
- const MAX_PERSISTED_EVENT_IDS = 5e3;
703
- const STATE_PERSIST_DEBOUNCE_MS = 5e3;
704
- const DEFAULT_INBOUND_GUARD_POLICY = createDirectDmPreCryptoGuardPolicy();
705
- const CIRCUIT_BREAKER_THRESHOLD = 5;
706
- const CIRCUIT_BREAKER_RESET_MS = 3e4;
707
- const HEALTH_WINDOW_MS = 6e4;
708
- function createFixedWindowRateLimiter(params) {
709
- const windowMs = Math.max(1, Math.floor(params.windowMs));
710
- const maxRequests = Math.max(1, Math.floor(params.maxRequests));
711
- const maxTrackedKeys = Math.max(1, Math.floor(params.maxTrackedKeys));
712
- const state = /* @__PURE__ */ new Map();
713
- const touch = (key, value) => {
714
- state.delete(key);
715
- state.set(key, value);
716
- };
717
- const prune = (nowMs) => {
718
- for (const [key, entry] of state) if (nowMs - entry.windowStartMs >= windowMs) state.delete(key);
719
- while (state.size > maxTrackedKeys) {
720
- const oldest = state.keys().next().value;
721
- if (!oldest) break;
722
- state.delete(oldest);
723
- }
724
- };
725
- return {
726
- isRateLimited: (key, nowMs = Date.now()) => {
727
- if (!key) return false;
728
- prune(nowMs);
729
- const existing = state.get(key);
730
- if (!existing || nowMs - existing.windowStartMs >= windowMs) {
731
- touch(key, {
732
- count: 1,
733
- windowStartMs: nowMs
734
- });
735
- return false;
736
- }
737
- const nextCount = existing.count + 1;
738
- touch(key, {
739
- count: nextCount,
740
- windowStartMs: existing.windowStartMs
741
- });
742
- return nextCount > maxRequests;
743
- },
744
- size: () => state.size,
745
- clear: () => state.clear()
746
- };
747
- }
748
- function createCircuitBreaker(relay, metrics, threshold = CIRCUIT_BREAKER_THRESHOLD, resetMs = CIRCUIT_BREAKER_RESET_MS) {
749
- const state = {
750
- state: "closed",
751
- failures: 0,
752
- lastFailure: 0,
753
- lastSuccess: Date.now()
754
- };
755
- return {
756
- canAttempt() {
757
- if (state.state === "closed") return true;
758
- if (state.state === "open") {
759
- if (Date.now() - state.lastFailure >= resetMs) {
760
- state.state = "half_open";
761
- metrics.emit("relay.circuit_breaker.half_open", 1, { relay });
762
- return true;
763
- }
764
- return false;
765
- }
766
- return true;
767
- },
768
- recordSuccess() {
769
- if (state.state === "half_open") {
770
- state.state = "closed";
771
- state.failures = 0;
772
- metrics.emit("relay.circuit_breaker.close", 1, { relay });
773
- } else if (state.state === "closed") state.failures = 0;
774
- state.lastSuccess = Date.now();
775
- },
776
- recordFailure() {
777
- state.failures++;
778
- state.lastFailure = Date.now();
779
- if (state.state === "half_open") {
780
- state.state = "open";
781
- metrics.emit("relay.circuit_breaker.open", 1, { relay });
782
- } else if (state.state === "closed" && state.failures >= threshold) {
783
- state.state = "open";
784
- metrics.emit("relay.circuit_breaker.open", 1, { relay });
785
- }
786
- },
787
- getState() {
788
- return state.state;
789
- }
790
- };
791
- }
792
- function createRelayHealthTracker() {
793
- const stats = /* @__PURE__ */ new Map();
794
- function getOrCreate(relay) {
795
- let s = stats.get(relay);
796
- if (!s) {
797
- s = {
798
- successCount: 0,
799
- failureCount: 0,
800
- latencySum: 0,
801
- latencyCount: 0,
802
- lastSuccess: 0,
803
- lastFailure: 0
804
- };
805
- stats.set(relay, s);
806
- }
807
- return s;
808
- }
809
- return {
810
- recordSuccess(relay, latencyMs) {
811
- const s = getOrCreate(relay);
812
- s.successCount++;
813
- s.latencySum += latencyMs;
814
- s.latencyCount++;
815
- s.lastSuccess = Date.now();
816
- },
817
- recordFailure(relay) {
818
- const s = getOrCreate(relay);
819
- s.failureCount++;
820
- s.lastFailure = Date.now();
821
- },
822
- getScore(relay) {
823
- const s = stats.get(relay);
824
- if (!s) return .5;
825
- const total = s.successCount + s.failureCount;
826
- if (total === 0) return .5;
827
- const successRate = s.successCount / total;
828
- const now = Date.now();
829
- const recencyBonus = s.lastSuccess > s.lastFailure ? Math.max(0, 1 - (now - s.lastSuccess) / HEALTH_WINDOW_MS) * .2 : 0;
830
- const avgLatency = s.latencyCount > 0 ? s.latencySum / s.latencyCount : 1e3;
831
- const latencyPenalty = Math.min(.2, avgLatency / 1e4);
832
- return Math.max(0, Math.min(1, successRate + recencyBonus - latencyPenalty));
833
- },
834
- getSortedRelays(relays) {
835
- return [...relays].toSorted((a, b) => this.getScore(b) - this.getScore(a));
836
- }
837
- };
838
- }
839
- /**
840
- * Start the Nostr DM bus - subscribes to NIP-04 encrypted DMs
841
- */
842
- async function startNostrBus(options) {
843
- const { privateKey, relays = DEFAULT_RELAYS, onMessage, authorizeSender, onError, onEose, onMetric, maxSeenEntries = 1e5, seenTtlMs = 3600 * 1e3 } = options;
844
- const sk = validatePrivateKey(privateKey);
845
- const pk = getPublicKey(sk);
846
- const pool = new SimplePool();
847
- const accountId = options.accountId ?? pk.slice(0, 16);
848
- const gatewayStartedAt = Math.floor(Date.now() / 1e3);
849
- const guardPolicy = createDirectDmPreCryptoGuardPolicy({
850
- ...DEFAULT_INBOUND_GUARD_POLICY,
851
- ...options.guardPolicy,
852
- rateLimit: {
853
- ...DEFAULT_INBOUND_GUARD_POLICY.rateLimit,
854
- ...options.guardPolicy?.rateLimit
855
- }
856
- });
857
- const metrics = onMetric ? createMetrics(onMetric) : createNoopMetrics();
858
- const seen = createSeenTracker({
859
- maxEntries: maxSeenEntries,
860
- ttlMs: seenTtlMs
861
- });
862
- const circuitBreakers = /* @__PURE__ */ new Map();
863
- const healthTracker = createRelayHealthTracker();
864
- for (const relay of relays) circuitBreakers.set(relay, createCircuitBreaker(relay, metrics));
865
- const state = await readNostrBusState({ accountId });
866
- const baseSince = computeSinceTimestamp(state, gatewayStartedAt);
867
- const since = Math.max(0, baseSince - STARTUP_LOOKBACK_SEC);
868
- if (state?.recentEventIds?.length) seen.seed(state.recentEventIds);
869
- await writeNostrBusState({
870
- accountId,
871
- lastProcessedAt: state?.lastProcessedAt ?? gatewayStartedAt,
872
- gatewayStartedAt,
873
- recentEventIds: state?.recentEventIds ?? []
874
- });
875
- let pendingWrite;
876
- let lastProcessedAt = state?.lastProcessedAt ?? gatewayStartedAt;
877
- let recentEventIds = (state?.recentEventIds ?? []).slice(-5e3);
878
- function scheduleStatePersist(eventCreatedAt, eventId) {
879
- lastProcessedAt = Math.max(lastProcessedAt, eventCreatedAt);
880
- recentEventIds.push(eventId);
881
- if (recentEventIds.length > MAX_PERSISTED_EVENT_IDS) recentEventIds = recentEventIds.slice(-5e3);
882
- if (pendingWrite) clearTimeout(pendingWrite);
883
- pendingWrite = setTimeout(() => {
884
- writeNostrBusState({
885
- accountId,
886
- lastProcessedAt,
887
- gatewayStartedAt,
888
- recentEventIds
889
- }).catch((err) => onError?.(err, "persist state"));
890
- }, STATE_PERSIST_DEBOUNCE_MS);
891
- }
892
- const inflight = /* @__PURE__ */ new Set();
893
- const perSenderRateLimiter = createFixedWindowRateLimiter({
894
- windowMs: guardPolicy.rateLimit.windowMs,
895
- maxRequests: guardPolicy.rateLimit.maxPerSenderPerWindow,
896
- maxTrackedKeys: guardPolicy.rateLimit.maxTrackedSenderKeys
897
- });
898
- const globalRateLimiter = createFixedWindowRateLimiter({
899
- windowMs: guardPolicy.rateLimit.windowMs,
900
- maxRequests: guardPolicy.rateLimit.maxGlobalPerWindow,
901
- maxTrackedKeys: 1
902
- });
903
- const updateRateLimiterSizeMetric = () => {
904
- metrics.emit("memory.rate_limiter_entries", perSenderRateLimiter.size() + globalRateLimiter.size());
905
- };
906
- async function handleEvent(event) {
907
- try {
908
- metrics.emit("event.received");
909
- if (seen.peek(event.id) || inflight.has(event.id)) {
910
- metrics.emit("event.duplicate");
911
- return;
912
- }
913
- inflight.add(event.id);
914
- const markSeen = () => {
915
- seen.add(event.id);
916
- metrics.emit("memory.seen_tracker_size", seen.size());
917
- };
918
- const rejectAndMarkSeen = (metric) => {
919
- markSeen();
920
- metrics.emit(metric);
921
- };
922
- if (event.pubkey === pk) {
923
- rejectAndMarkSeen("event.rejected.self_message");
924
- return;
925
- }
926
- if (event.created_at < since) {
927
- rejectAndMarkSeen("event.rejected.stale");
928
- return;
929
- }
930
- if (event.created_at > Math.floor(Date.now() / 1e3) + guardPolicy.maxFutureSkewSec) {
931
- metrics.emit("event.rejected.future");
932
- return;
933
- }
934
- if (!guardPolicy.allowedKinds.includes(event.kind)) {
935
- rejectAndMarkSeen("event.rejected.wrong_kind");
936
- return;
937
- }
938
- let targetsUs = false;
939
- for (const t of event.tags) if (t[0] === "p" && t[1] === pk) {
940
- targetsUs = true;
941
- break;
942
- }
943
- if (!targetsUs) {
944
- rejectAndMarkSeen("event.rejected.wrong_kind");
945
- return;
946
- }
947
- const replyTo = async (text) => {
948
- await sendEncryptedDm(pool, sk, event.pubkey, text, relays, metrics, circuitBreakers, healthTracker, onError);
949
- };
950
- const rejectIfGlobalRateLimited = () => {
951
- updateRateLimiterSizeMetric();
952
- if (globalRateLimiter.isRateLimited("global")) {
953
- metrics.emit("rate_limit.global");
954
- metrics.emit("event.rejected.rate_limited");
955
- updateRateLimiterSizeMetric();
956
- return true;
957
- }
958
- updateRateLimiterSizeMetric();
959
- return false;
960
- };
961
- const rejectIfVerifiedSenderRateLimited = () => {
962
- updateRateLimiterSizeMetric();
963
- if (perSenderRateLimiter.isRateLimited(event.pubkey)) {
964
- metrics.emit("rate_limit.per_sender");
965
- metrics.emit("event.rejected.rate_limited");
966
- updateRateLimiterSizeMetric();
967
- return true;
968
- }
969
- updateRateLimiterSizeMetric();
970
- return false;
971
- };
972
- if (Buffer.byteLength(event.content, "utf8") > guardPolicy.maxCiphertextBytes) {
973
- if (rejectIfGlobalRateLimited()) return;
974
- rejectAndMarkSeen("event.rejected.oversized_ciphertext");
975
- return;
976
- }
977
- if (rejectIfGlobalRateLimited()) return;
978
- if (!verifyEvent(event)) {
979
- rejectAndMarkSeen("event.rejected.invalid_signature");
980
- onError?.(/* @__PURE__ */ new Error("Invalid signature"), `event ${event.id}`);
981
- return;
982
- }
983
- if (rejectIfVerifiedSenderRateLimited()) return;
984
- if (authorizeSender) {
985
- if (await authorizeSender({
986
- senderPubkey: event.pubkey,
987
- reply: replyTo
988
- }) !== "allow") {
989
- markSeen();
990
- return;
991
- }
992
- }
993
- let plaintext;
994
- try {
995
- plaintext = decrypt(sk, event.pubkey, event.content);
996
- metrics.emit("decrypt.success");
997
- } catch (err) {
998
- markSeen();
999
- metrics.emit("decrypt.failure");
1000
- metrics.emit("event.rejected.decrypt_failed");
1001
- onError?.(err, `decrypt from ${event.pubkey}`);
1002
- return;
1003
- }
1004
- if (Buffer.byteLength(plaintext, "utf8") > guardPolicy.maxPlaintextBytes) {
1005
- markSeen();
1006
- metrics.emit("event.rejected.oversized_plaintext");
1007
- return;
1008
- }
1009
- await onMessage(event.pubkey, plaintext, replyTo, {
1010
- eventId: event.id,
1011
- createdAt: event.created_at
1012
- });
1013
- markSeen();
1014
- metrics.emit("event.processed");
1015
- scheduleStatePersist(event.created_at, event.id);
1016
- } catch (err) {
1017
- onError?.(err, `event ${event.id}`);
1018
- } finally {
1019
- inflight.delete(event.id);
1020
- }
1021
- }
1022
- const sub = pool.subscribeMany(relays, [{
1023
- kinds: [4],
1024
- "#p": [pk],
1025
- since
1026
- }], {
1027
- onevent: handleEvent,
1028
- oneose: () => {
1029
- for (const relay of relays) metrics.emit("relay.message.eose", 1, { relay });
1030
- onEose?.(relays.join(", "));
1031
- },
1032
- onclose: (reason) => {
1033
- for (const relay of relays) {
1034
- metrics.emit("relay.message.closed", 1, { relay });
1035
- options.onDisconnect?.(relay);
1036
- }
1037
- onError?.(/* @__PURE__ */ new Error(`Subscription closed: ${reason.join(", ")}`), "subscription");
1038
- }
1039
- });
1040
- const sendDm = async (toPubkey, text) => {
1041
- await sendEncryptedDm(pool, sk, toPubkey, text, relays, metrics, circuitBreakers, healthTracker, onError);
1042
- };
1043
- const publishProfile$1 = async (profile) => {
1044
- const result = await publishProfile(pool, sk, relays, profile, (await readNostrProfileState({ accountId }))?.lastPublishedAt ?? void 0);
1045
- const publishResults = {};
1046
- for (const relay of result.successes) publishResults[relay] = "ok";
1047
- for (const { relay, error } of result.failures) publishResults[relay] = error === "timeout" ? "timeout" : "failed";
1048
- await writeNostrProfileState({
1049
- accountId,
1050
- lastPublishedAt: result.createdAt,
1051
- lastPublishedEventId: result.eventId,
1052
- lastPublishResults: publishResults
1053
- });
1054
- return result;
1055
- };
1056
- const getProfileState = async () => {
1057
- const state = await readNostrProfileState({ accountId });
1058
- return {
1059
- lastPublishedAt: state?.lastPublishedAt ?? null,
1060
- lastPublishedEventId: state?.lastPublishedEventId ?? null,
1061
- lastPublishResults: state?.lastPublishResults ?? null
1062
- };
1063
- };
1064
- return {
1065
- close: () => {
1066
- sub.close();
1067
- seen.stop();
1068
- perSenderRateLimiter.clear();
1069
- globalRateLimiter.clear();
1070
- if (pendingWrite) {
1071
- clearTimeout(pendingWrite);
1072
- writeNostrBusState({
1073
- accountId,
1074
- lastProcessedAt,
1075
- gatewayStartedAt,
1076
- recentEventIds
1077
- }).catch((err) => onError?.(err, "persist state on close"));
1078
- }
1079
- },
1080
- publicKey: pk,
1081
- sendDm,
1082
- getMetrics: () => metrics.getSnapshot(),
1083
- publishProfile: publishProfile$1,
1084
- getProfileState
1085
- };
1086
- }
1087
- /**
1088
- * Send an encrypted DM to a pubkey
1089
- */
1090
- async function sendEncryptedDm(pool, sk, toPubkey, text, relays, metrics, circuitBreakers, healthTracker, onError) {
1091
- const reply = finalizeEvent({
1092
- kind: 4,
1093
- content: encrypt(sk, toPubkey, text),
1094
- tags: [["p", toPubkey]],
1095
- created_at: Math.floor(Date.now() / 1e3)
1096
- }, sk);
1097
- const sortedRelays = healthTracker.getSortedRelays(relays);
1098
- let lastError;
1099
- for (const relay of sortedRelays) {
1100
- const cb = circuitBreakers.get(relay);
1101
- if (cb && !cb.canAttempt()) continue;
1102
- const startTime = Date.now();
1103
- try {
1104
- const [publishPromise] = pool.publish([relay], reply);
1105
- if (!publishPromise) throw new Error(`Failed to create publish promise for relay ${relay}`);
1106
- await publishPromise;
1107
- const latency = Date.now() - startTime;
1108
- cb?.recordSuccess();
1109
- healthTracker.recordSuccess(relay, latency);
1110
- return;
1111
- } catch (err) {
1112
- lastError = err;
1113
- const latency = Date.now() - startTime;
1114
- cb?.recordFailure();
1115
- healthTracker.recordFailure(relay);
1116
- metrics.emit("relay.error", 1, {
1117
- relay,
1118
- latency
1119
- });
1120
- onError?.(lastError, `publish to ${relay}`);
1121
- }
1122
- }
1123
- throw new Error(`Failed to publish to any relay: ${lastError?.message}`);
1124
- }
1125
- //#endregion
1126
- //#region extensions/nostr/src/gateway.ts
1127
- const activeBuses = /* @__PURE__ */ new Map();
1128
- const metricsSnapshots = /* @__PURE__ */ new Map();
1129
- const ACCESS_GROUP_PREFIX = "accessGroup:";
1130
- function parseNostrAccessGroupAllowFromEntry(entry) {
1131
- const trimmed = entry.trim();
1132
- if (!trimmed.startsWith(ACCESS_GROUP_PREFIX)) return null;
1133
- return trimmed.slice(12).trim() || null;
1134
- }
1135
- function normalizeNostrAllowEntry(entry) {
1136
- const trimmed = entry.trim();
1137
- if (!trimmed) return null;
1138
- if (trimmed === "*") return "*";
1139
- const accessGroup = parseNostrAccessGroupAllowFromEntry(trimmed);
1140
- if (accessGroup) return `accessGroup:${accessGroup}`;
1141
- try {
1142
- return normalizePubkey(trimmed.replace(/^nostr:/i, ""));
1143
- } catch {
1144
- return null;
1145
- }
1146
- }
1147
- function normalizeNostrSenderPubkey(value) {
1148
- try {
1149
- return normalizePubkey(value);
1150
- } catch {
1151
- return null;
1152
- }
1153
- }
1154
- const nostrIngressIdentity = {
1155
- key: "nostr-pubkey",
1156
- normalizeEntry: normalizeNostrAllowEntry,
1157
- normalizeSubject: normalizeNostrSenderPubkey,
1158
- sensitivity: "pii",
1159
- entryIdPrefix: "nostr-entry"
1160
- };
1161
- const startNostrGatewayAccount = async (ctx) => {
1162
- const account = ctx.account;
1163
- ctx.setStatus({
1164
- accountId: account.accountId,
1165
- publicKey: account.publicKey
1166
- });
1167
- ctx.log?.info?.(`[${account.accountId}] starting Nostr provider (pubkey: ${account.publicKey})`);
1168
- if (!account.configured) throw new Error("Nostr private key not configured");
1169
- const runtime = getNostrRuntime();
1170
- const pairing = createChannelPairingController({
1171
- core: runtime,
1172
- channel: "nostr",
1173
- accountId: account.accountId
1174
- });
1175
- const resolveInboundAccess = async (senderPubkey, rawBody) => await resolveStableChannelMessageIngress({
1176
- channelId: "nostr",
1177
- accountId: account.accountId,
1178
- identity: nostrIngressIdentity,
1179
- cfg: ctx.cfg,
1180
- useDefaultPairingStore: true,
1181
- subject: { stableId: senderPubkey },
1182
- conversation: {
1183
- kind: "direct",
1184
- id: senderPubkey
1185
- },
1186
- dmPolicy: account.config.dmPolicy ?? "pairing",
1187
- allowFrom: account.config.allowFrom,
1188
- command: runtime.channel.commands.shouldComputeCommandAuthorized(rawBody, ctx.cfg) ? { modeWhenAccessGroupsOff: "configured" } : void 0
1189
- });
1190
- let busHandle = null;
1191
- const authorizeSender = async (input) => {
1192
- const resolved = await resolveInboundAccess(input.senderId, "");
1193
- if (resolved.senderAccess.decision === "allow") return "allow";
1194
- if (resolved.senderAccess.decision === "pairing") {
1195
- await pairing.issueChallenge({
1196
- senderId: input.senderId,
1197
- senderIdLine: `Your Nostr pubkey: ${input.senderId}`,
1198
- sendPairingReply: input.reply,
1199
- onCreated: () => {
1200
- ctx.log?.debug?.(`[${account.accountId}] nostr pairing request sender=${input.senderId}`);
1201
- },
1202
- onReplyError: (err) => {
1203
- ctx.log?.warn?.(`[${account.accountId}] nostr pairing reply failed for ${input.senderId}: ${String(err)}`);
1204
- }
1205
- });
1206
- return "pairing";
1207
- }
1208
- ctx.log?.debug?.(`[${account.accountId}] blocked Nostr sender ${input.senderId} (${resolved.senderAccess.reasonCode})`);
1209
- return "block";
1210
- };
1211
- const bus = await startNostrBus({
1212
- accountId: account.accountId,
1213
- privateKey: account.privateKey,
1214
- relays: account.relays,
1215
- authorizeSender: async ({ senderPubkey, reply }) => await authorizeSender({
1216
- senderId: senderPubkey,
1217
- reply
1218
- }),
1219
- onMessage: async (senderPubkey, text, reply, meta) => {
1220
- const resolvedAccess = await resolveInboundAccess(senderPubkey, text);
1221
- if (resolvedAccess.senderAccess.decision !== "allow") {
1222
- ctx.log?.warn?.(`[${account.accountId}] dropping Nostr DM after preflight drift (${senderPubkey}, ${resolvedAccess.senderAccess.reasonCode})`);
1223
- return;
1224
- }
1225
- const { dispatchInboundDirectDmWithRuntime } = await import("./inbound-direct-dm-runtime-BzQSanFy.js");
1226
- await dispatchInboundDirectDmWithRuntime({
1227
- cfg: ctx.cfg,
1228
- runtime,
1229
- channel: "nostr",
1230
- channelLabel: "Nostr",
1231
- accountId: account.accountId,
1232
- peer: {
1233
- kind: "direct",
1234
- id: senderPubkey
1235
- },
1236
- senderId: senderPubkey,
1237
- senderAddress: `nostr:${senderPubkey}`,
1238
- recipientAddress: `nostr:${account.publicKey}`,
1239
- conversationLabel: senderPubkey,
1240
- rawBody: text,
1241
- messageId: meta.eventId,
1242
- timestamp: meta.createdAt * 1e3,
1243
- commandAuthorized: resolvedAccess.commandAccess.requested ? resolvedAccess.commandAccess.authorized : void 0,
1244
- deliver: async (payload) => {
1245
- const outboundText = payload && typeof payload === "object" && "text" in payload ? payload.text ?? "" : "";
1246
- if (!outboundText.trim()) return;
1247
- const tableMode = runtime.channel.text.resolveMarkdownTableMode({
1248
- cfg: ctx.cfg,
1249
- channel: "nostr",
1250
- accountId: account.accountId
1251
- });
1252
- await reply(runtime.channel.text.convertMarkdownTables(outboundText, tableMode));
1253
- },
1254
- onRecordError: (err) => {
1255
- ctx.log?.error?.(`[${account.accountId}] failed recording Nostr inbound session: ${String(err)}`);
1256
- },
1257
- onDispatchError: (err, info) => {
1258
- ctx.log?.error?.(`[${account.accountId}] Nostr ${info.kind} reply failed: ${String(err)}`);
1259
- }
1260
- });
1261
- },
1262
- onError: (error, context) => {
1263
- ctx.log?.error?.(`[${account.accountId}] Nostr error (${context}): ${error.message}`);
1264
- },
1265
- onConnect: (relay) => {
1266
- ctx.log?.debug?.(`[${account.accountId}] Connected to relay: ${relay}`);
1267
- },
1268
- onDisconnect: (relay) => {
1269
- ctx.log?.debug?.(`[${account.accountId}] Disconnected from relay: ${relay}`);
1270
- },
1271
- onEose: (relays) => {
1272
- ctx.log?.debug?.(`[${account.accountId}] EOSE received from relays: ${relays}`);
1273
- },
1274
- onMetric: (event) => {
1275
- if (event.name.startsWith("event.rejected.")) ctx.log?.debug?.(`[${account.accountId}] Metric: ${event.name} ${JSON.stringify(event.labels)}`);
1276
- else if (event.name === "relay.circuit_breaker.open") ctx.log?.warn?.(`[${account.accountId}] Circuit breaker opened for relay: ${event.labels?.relay}`);
1277
- else if (event.name === "relay.circuit_breaker.close") ctx.log?.info?.(`[${account.accountId}] Circuit breaker closed for relay: ${event.labels?.relay}`);
1278
- else if (event.name === "relay.error") ctx.log?.debug?.(`[${account.accountId}] Relay error: ${event.labels?.relay}`);
1279
- if (busHandle) metricsSnapshots.set(account.accountId, busHandle.getMetrics());
1280
- }
1281
- });
1282
- busHandle = bus;
1283
- activeBuses.set(account.accountId, bus);
1284
- ctx.log?.info?.(`[${account.accountId}] Nostr provider started, connected to ${account.relays.length} relay(s)`);
1285
- return { stop: () => {
1286
- bus.close();
1287
- activeBuses.delete(account.accountId);
1288
- metricsSnapshots.delete(account.accountId);
1289
- ctx.log?.info?.(`[${account.accountId}] Nostr provider stopped`);
1290
- } };
1291
- };
1292
- const nostrPairingTextAdapter = {
1293
- idLabel: "nostrPubkey",
1294
- message: "Your pairing request has been approved!",
1295
- normalizeAllowEntry: (entry) => {
1296
- try {
1297
- return normalizePubkey(entry.trim().replace(/^nostr:/i, ""));
1298
- } catch {
1299
- return entry.trim();
1300
- }
1301
- },
1302
- notify: async ({ cfg, id, message, accountId }) => {
1303
- const bus = activeBuses.get(accountId ?? resolveDefaultNostrAccountId(cfg));
1304
- if (bus) await bus.sendDm(id, message);
1305
- }
1306
- };
1307
- const nostrOutboundAdapter = {
1308
- deliveryMode: "direct",
1309
- textChunkLimit: 4e3,
1310
- deliveryCapabilities: { durableFinal: {
1311
- text: true,
1312
- messageSendingHooks: true
1313
- } },
1314
- sendText: async ({ cfg, to, text, accountId }) => {
1315
- const core = getNostrRuntime();
1316
- const aid = accountId ?? resolveDefaultNostrAccountId(cfg);
1317
- const bus = activeBuses.get(aid);
1318
- if (!bus) throw new Error(`Nostr bus not running for account ${aid}`);
1319
- const tableMode = core.channel.text.resolveMarkdownTableMode({
1320
- cfg,
1321
- channel: "nostr",
1322
- accountId: aid
1323
- });
1324
- const message = core.channel.text.convertMarkdownTables(text ?? "", tableMode);
1325
- const normalizedTo = normalizePubkey(to);
1326
- await bus.sendDm(normalizedTo, message);
1327
- return attachChannelToResult("nostr", {
1328
- to: normalizedTo,
1329
- messageId: `nostr-${Date.now()}`
1330
- });
1331
- }
1332
- };
1333
- function getActiveNostrBuses() {
1334
- return new Map(activeBuses);
1335
- }
1336
- //#endregion
1337
- //#region extensions/nostr/src/session-route.ts
1338
- function resolveNostrOutboundSessionRoute(params) {
1339
- const target = stripChannelTargetPrefix(params.target, "nostr");
1340
- if (!target) return null;
1341
- return buildChannelOutboundSessionRoute({
1342
- cfg: params.cfg,
1343
- agentId: params.agentId,
1344
- channel: "nostr",
1345
- accountId: params.accountId,
1346
- peer: {
1347
- kind: "direct",
1348
- id: target
1349
- },
1350
- chatType: "direct",
1351
- from: `nostr:${target}`,
1352
- to: `nostr:${target}`
1353
- });
1354
- }
1355
- //#endregion
1356
- //#region extensions/nostr/src/channel.ts
1357
- const resolveNostrDmPolicy = createScopedDmSecurityResolver({
1358
- channelKey: "nostr",
1359
- resolvePolicy: (account) => account.config.dmPolicy,
1360
- resolveAllowFrom: (account) => account.config.allowFrom,
1361
- policyPathSuffix: "dmPolicy",
1362
- defaultPolicy: "pairing",
1363
- approveHint: formatPairingApproveHint("nostr"),
1364
- normalizeEntry: (raw) => {
1365
- try {
1366
- return normalizePubkey(raw.trim().replace(/^nostr:/i, ""));
1367
- } catch {
1368
- return raw.trim();
1369
- }
1370
- }
1371
- });
1372
- const nostrConfigAdapter = createTopLevelChannelConfigAdapter({
1373
- sectionKey: "nostr",
1374
- resolveAccount: (cfg) => resolveNostrAccount({ cfg }),
1375
- listAccountIds: listNostrAccountIds,
1376
- defaultAccountId: resolveDefaultNostrAccountId,
1377
- deleteMode: "clear-fields",
1378
- clearBaseFields: [
1379
- "name",
1380
- "defaultAccount",
1381
- "privateKey",
1382
- "relays",
1383
- "dmPolicy",
1384
- "allowFrom",
1385
- "profile"
1386
- ],
1387
- resolveAllowFrom: (account) => account.config.allowFrom,
1388
- formatAllowFrom: (allowFrom) => allowFrom.map((entry) => String(entry).trim()).filter(Boolean).map((entry) => {
1389
- if (entry === "*") return "*";
1390
- try {
1391
- return normalizePubkey(entry);
1392
- } catch {
1393
- return entry;
1394
- }
1395
- }).filter(Boolean)
1396
- });
1397
- const nostrMessageAdapter = createChannelMessageAdapterFromOutbound({
1398
- id: "nostr",
1399
- outbound: nostrOutboundAdapter
1400
- });
1401
- const nostrPlugin = createChatChannelPlugin({
1402
- base: {
1403
- id: "nostr",
1404
- meta: {
1405
- id: "nostr",
1406
- label: "Nostr",
1407
- selectionLabel: "Nostr",
1408
- docsPath: "/channels/nostr",
1409
- docsLabel: "nostr",
1410
- blurb: "Decentralized DMs via Nostr relays (NIP-04)",
1411
- order: 100
1412
- },
1413
- capabilities: {
1414
- chatTypes: ["direct"],
1415
- media: false
1416
- },
1417
- reload: { configPrefixes: ["channels.nostr"] },
1418
- configSchema: buildChannelConfigSchema(NostrConfigSchema),
1419
- setup: nostrSetupAdapter,
1420
- setupWizard: nostrSetupWizard,
1421
- config: {
1422
- ...nostrConfigAdapter,
1423
- isConfigured: (account) => account.configured,
1424
- describeAccount: (account) => describeAccountSnapshot({
1425
- account,
1426
- configured: account.configured,
1427
- extra: { publicKey: account.publicKey }
1428
- })
1429
- },
1430
- messaging: {
1431
- targetPrefixes: ["nostr"],
1432
- normalizeTarget: (target) => {
1433
- const cleaned = target.trim().replace(/^nostr:/i, "");
1434
- try {
1435
- return normalizePubkey(cleaned);
1436
- } catch {
1437
- return cleaned;
1438
- }
1439
- },
1440
- targetResolver: {
1441
- looksLikeId: (input) => {
1442
- const trimmed = input.trim();
1443
- return trimmed.startsWith("npub1") || /^[0-9a-fA-F]{64}$/.test(trimmed);
1444
- },
1445
- hint: "<npub|hex pubkey|nostr:npub...>"
1446
- },
1447
- resolveOutboundSessionRoute: (params) => resolveNostrOutboundSessionRoute(params)
1448
- },
1449
- message: nostrMessageAdapter,
1450
- status: { ...createComputedAccountStatusAdapter({
1451
- defaultRuntime: createDefaultChannelRuntimeState(DEFAULT_ACCOUNT_ID),
1452
- collectStatusIssues: (accounts) => collectStatusIssuesFromLastError("nostr", accounts),
1453
- buildChannelSummary: ({ snapshot }) => buildPassiveChannelStatusSummary(snapshot, { publicKey: snapshot.publicKey ?? null }),
1454
- resolveAccountSnapshot: ({ account, runtime }) => ({
1455
- accountId: account.accountId,
1456
- name: account.name,
1457
- enabled: account.enabled,
1458
- configured: account.configured,
1459
- extra: {
1460
- publicKey: account.publicKey,
1461
- profile: account.profile,
1462
- ...buildTrafficStatusSummary(runtime)
1463
- }
1464
- })
1465
- }) },
1466
- gateway: { startAccount: startNostrGatewayAccount }
1467
- },
1468
- pairing: { text: nostrPairingTextAdapter },
1469
- security: { resolveDmPolicy: resolveNostrDmPolicy },
1470
- outbound: nostrOutboundAdapter
1471
- });
1472
- /**
1473
- * Publish a profile (kind:0) for a Nostr account.
1474
- * @param accountId - Account ID (defaults to "default")
1475
- * @param profile - Profile data to publish
1476
- * @returns Publish results with successes and failures
1477
- * @throws Error if account is not running
1478
- */
1479
- async function publishNostrProfile(accountId, profile) {
1480
- const resolvedAccountId = accountId ?? "default";
1481
- const bus = getActiveNostrBuses().get(resolvedAccountId);
1482
- if (!bus) throw new Error(`Nostr bus not running for account ${resolvedAccountId}`);
1483
- return bus.publishProfile(profile);
1484
- }
1485
- /**
1486
- * Get profile publish state for a Nostr account.
1487
- * @param accountId - Account ID (defaults to "default")
1488
- * @returns Profile publish state or null if account not running
1489
- */
1490
- async function getNostrProfileState(accountId = DEFAULT_ACCOUNT_ID) {
1491
- const bus = getActiveNostrBuses().get(accountId);
1492
- if (!bus) return null;
1493
- return bus.getProfileState();
1494
- }
1495
- //#endregion
1496
- export { setNostrRuntime as a, getNostrRuntime as i, nostrPlugin as n, contentToProfile as o, publishNostrProfile as r, getNostrProfileState as t };