@gaodefa/daocore 2026.5.48 → 2026.5.51

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 (1125) hide show
  1. package/dist/abort-fu5ot-XT.js +277 -0
  2. package/dist/abort.runtime-D5daoBjn.js +2 -0
  3. package/dist/abort.runtime.js +1 -1
  4. package/dist/account-inspect-BzG5-Rgz.js +173 -0
  5. package/dist/accounts-CPcG2JIz.js +107 -0
  6. package/dist/accounts-CiDgcaPY.js +2 -0
  7. package/dist/accounts-DcI0wEyL.js +107 -0
  8. package/dist/accounts-xBYbyTsZ.js +119 -0
  9. package/dist/acp-runtime-DpVkymzf.js +26 -0
  10. package/dist/acp-spawn-CbNHSZr-.js +1275 -0
  11. package/dist/acp-spawn-DFG0HgXi.js +2 -0
  12. package/dist/acp-stateful-target-driver-pz6XosZ9.js +89 -0
  13. package/dist/action-kill-DJuPSfgy.js +33 -0
  14. package/dist/action-runtime-DxnMH2dB.js +469 -0
  15. package/dist/action-runtime-api-Dvo3Gbll.js +2 -0
  16. package/dist/action-send-WtfSYfhf.js +39 -0
  17. package/dist/action-spawn-CA4-_H9p.js +47 -0
  18. package/dist/actions-BQ2B4Vhj.js +161 -0
  19. package/dist/actions.runtime-Bw0OZtGG.js +5 -0
  20. package/dist/agent-CsPtASj4.js +2 -0
  21. package/dist/agent-command-DeA1YV0L.js +1367 -0
  22. package/dist/agent-components.runtime-CP2KCzTj.js +10 -0
  23. package/dist/agent-components.runtime.js +1 -1
  24. package/dist/agent-harness-runtime-hAssTrVq.js +180 -0
  25. package/dist/agent-harness-task-runtime-VSFzRIbH.js +140 -0
  26. package/dist/agent-rg2WmmbX.js +3 -0
  27. package/dist/agent-runner-execution-lRuwJobi.js +1713 -0
  28. package/dist/agent-runner-utils-Bluglnku.js +266 -0
  29. package/dist/agent-runner.runtime-B709koec.js +3455 -0
  30. package/dist/agent-runner.runtime.js +1 -1
  31. package/dist/agent-runtime-DKr0TX79.js +229 -0
  32. package/dist/agent-via-gateway-J8tTS5o6.js +463 -0
  33. package/dist/api-BVSGXSkS.js +3 -0
  34. package/dist/api-C7LbY8d2.js +6 -0
  35. package/dist/api-ClLB89eP.js +2 -0
  36. package/dist/api-D7kpdmvQ.js +2 -0
  37. package/dist/api-DJaf27mk.js +639 -0
  38. package/dist/api-XpFyLrKp.js +134 -0
  39. package/dist/apply-CHHI0r0H.js +41 -0
  40. package/dist/apply-DoQ4g3Kr.js +54 -0
  41. package/dist/approval-handler.runtime-Jbt7zH9f.js +130 -0
  42. package/dist/assistant-DQw33Vzx.js +291 -0
  43. package/dist/attachment-normalize-CrbLuYsp.js +225 -0
  44. package/dist/attempt-execution-DkgSHSVj.js +558 -0
  45. package/dist/attempt-execution.runtime-DCcD7P4g.js +3 -0
  46. package/dist/attempt-execution.runtime.js +1 -1
  47. package/dist/attempt-execution.shared-Cok8CE9p.js +38 -0
  48. package/dist/attempt.prompt-helpers-Kok600qT.js +475 -0
  49. package/dist/attempt.tool-run-context-C5nkRM5Y.js +2094 -0
  50. package/dist/binding-routing-BILfy0c8.js +113 -0
  51. package/dist/binding-targets-BrYDo8Jx.js +121 -0
  52. package/dist/bot-CxJsNrtp.js +7894 -0
  53. package/dist/bot-deps-BWdw7DXt.js +2 -0
  54. package/dist/bot-deps-BbL_ePix.js +747 -0
  55. package/dist/bot-message-context.runtime-qkq-RzJY.js +7 -0
  56. package/dist/bot-message-context.runtime.js +1 -1
  57. package/dist/bot-message-context.session.runtime-CxuxYsNb.js +12 -0
  58. package/dist/bot-message-context.session.runtime.js +1 -1
  59. package/dist/bot-native-commands.delivery.runtime-BOjc08fe.js +4 -0
  60. package/dist/bot-native-commands.delivery.runtime.js +1 -1
  61. package/dist/bot-native-commands.runtime-LtWQYEai.js +13 -0
  62. package/dist/bot-native-commands.runtime.js +1 -1
  63. package/dist/bridge-server-BvrlsnvW.js +113 -0
  64. package/dist/browser-cli-BmH-wDEt.js +230 -0
  65. package/dist/browser-cli-D7JUe5WT.js +2 -0
  66. package/dist/browser-cli-actions-input-BtCjZh2W.js +473 -0
  67. package/dist/browser-cli-actions-observe-CKCy--u8.js +81 -0
  68. package/dist/browser-cli-debug-D7KF3hoB.js +137 -0
  69. package/dist/browser-cli-inspect-B5_Q_bKp.js +104 -0
  70. package/dist/browser-cli-manage-BNRyXUfb.js +443 -0
  71. package/dist/browser-cli-resize-BR9dybJM.js +26 -0
  72. package/dist/browser-cli-shared-ZfP-ZP1r.js +50 -0
  73. package/dist/browser-cli-state-BJRQ87Hp.js +337 -0
  74. package/dist/browser-control-auth-C1ZlS07R.js +2 -0
  75. package/dist/browser-profiles-BLgaJJYW.js +2 -0
  76. package/dist/browser-runtime-CX-EDgFi.js +384 -0
  77. package/dist/build-DOEtxYaU.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-Mj0McddT.js +1782 -0
  83. package/dist/channel-BDvizmrp.js +1556 -0
  84. package/dist/channel-C749d8mG.js +376 -0
  85. package/dist/channel-CWP6h4W5.js +1134 -0
  86. package/dist/channel-CgzMA_Q0.js +2126 -0
  87. package/dist/channel-Chx_WUyI.js +867 -0
  88. package/dist/channel-Ctnzf_tM.js +238 -0
  89. package/dist/channel-CusFbCv9.js +653 -0
  90. package/dist/channel-D5jjabnb.js +1249 -0
  91. package/dist/channel-DF-fw8lK.js +1496 -0
  92. package/dist/channel-DKAG-w5b.js +481 -0
  93. package/dist/channel-DSbpV7ax.js +808 -0
  94. package/dist/channel-DiN2VJEK.js +955 -0
  95. package/dist/channel-DvN94bvt.js +740 -0
  96. package/dist/channel-DxtVMwdk.js +508 -0
  97. package/dist/channel-GubQ1f0C.js +362 -0
  98. package/dist/channel-MXOd30fz.d.ts +427 -0
  99. package/dist/channel-actions.runtime-DEb9ZniG.js +265 -0
  100. package/dist/channel-actions.runtime.js +1 -1
  101. package/dist/channel-core-Dr6fp5Ub.js +5 -0
  102. package/dist/channel-inbound-FG-Mc5xc.js +80 -0
  103. package/dist/channel-plugin-runtime-hiqeg-_c.js +998 -0
  104. package/dist/channel-rej8M5lJ.js +1777 -0
  105. package/dist/channel-runtime-DJp4CruI.js +408 -0
  106. package/dist/channel-z0v-MMYk.js +562 -0
  107. package/dist/channel.runtime-1o_vRC84.js +109 -0
  108. package/dist/channel.runtime-BXrIcht7.js +254 -0
  109. package/dist/channel.runtime-C9opTci8.js +2528 -0
  110. package/dist/channel.runtime-CBvyS9OE.js +1008 -0
  111. package/dist/channel.runtime-CSwcAfTq.js +88 -0
  112. package/dist/channel.runtime-DKFrmmAg.js +652 -0
  113. package/dist/channel.runtime-DTBcVFL7.js +733 -0
  114. package/dist/channel.runtime-E2IhUtz8.js +4 -0
  115. package/dist/channel.runtime-s8LoLneR.js +21009 -0
  116. package/dist/channel.setup-BU4bp4OI.js +10 -0
  117. package/dist/channel.setup-CpygZ2ZG.js +343 -0
  118. package/dist/channel.setup-Z7jM_Q-v.js +1098 -0
  119. package/dist/chat-BQA8JGz8.js +2666 -0
  120. package/dist/chrome-YaZdp6CU.js +1503 -0
  121. package/dist/cli/run-main.js +5 -5
  122. package/dist/cli-DvGvBxMy.js +1341 -0
  123. package/dist/cli-compaction-0ER1653L.js +347 -0
  124. package/dist/cli-metadata-BJX-MSNl.js +22 -0
  125. package/dist/cli-runner-BGc4U7E0.js +2 -0
  126. package/dist/cli-runner-CH30meJN.js +540 -0
  127. package/dist/cli-runner.runtime-BqU9giS7.js +4 -0
  128. package/dist/cli-runner.runtime-D14IpD46.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-DqnCi7vL.js +650 -0
  132. package/dist/client-adapter-BKZ5qBVY.js +897 -0
  133. package/dist/client-factory-BbBpLxaP.js +9 -0
  134. package/dist/command-auth-fZ1DLCTo.js +135 -0
  135. package/dist/command-handlers-CHbhwC1N.js +1609 -0
  136. package/dist/command-registry-_Oons836.js +4 -0
  137. package/dist/command-registry-core-Btb-M6JE.js +110 -0
  138. package/dist/command-registry-gWuCKROh.js +9 -0
  139. package/dist/command-status.runtime-DLav1SGb.js +90 -0
  140. package/dist/command-status.runtime.js +1 -1
  141. package/dist/commands-acp-DVbINB4V.js +74 -0
  142. package/dist/commands-compact.runtime-CqQIDvM8.js +10 -0
  143. package/dist/commands-compact.runtime.js +1 -1
  144. package/dist/commands-handlers.runtime-DJBGEdTB.js +6154 -0
  145. package/dist/commands-handlers.runtime.js +1 -1
  146. package/dist/commands-status-BaDacW0z.js +3 -0
  147. package/dist/commands-status-CTZ-HwUc.js +16 -0
  148. package/dist/commands-status.runtime-BaDacW0z.js +3 -0
  149. package/dist/commands-status.runtime.js +1 -1
  150. package/dist/commands-subagents-control.runtime-B6SOliNd.js +2 -0
  151. package/dist/commands-subagents-control.runtime-DTdEiA7w.js +3 -0
  152. package/dist/commands-subagents-control.runtime.js +1 -1
  153. package/dist/commands-system-prompt-BAdsJpn8.js +162 -0
  154. package/dist/commands-system-prompt-CX5iT-44.js +2 -0
  155. package/dist/commands.runtime-DObObKfz.js +176 -0
  156. package/dist/commands.runtime.js +1 -1
  157. package/dist/commitments/runtime.js +1 -1
  158. package/dist/compact-Bs_eAw33.js +480 -0
  159. package/dist/compact-Ck7hE3ba.js +1141 -0
  160. package/dist/compact.runtime-el4EYgrW.js +12 -0
  161. package/dist/compact.runtime.js +1 -1
  162. package/dist/completion-cli-BbDnqYnS.js +315 -0
  163. package/dist/computer-use-GvCUpEEf.js +367 -0
  164. package/dist/config-BLgaJJYW.js +2 -0
  165. package/dist/config-FCIVG4Db.js +373 -0
  166. package/dist/config-mutations-BIPJigAd.js +159 -0
  167. package/dist/context-engine-host-compat--OOY7QEI.js +2 -0
  168. package/dist/context-engine-host-compat-DYVeYR5u.js +288 -0
  169. package/dist/context-engine-lifecycle-DAB4GWd5.js +1274 -0
  170. package/dist/control-auth-BekRscGw.js +114 -0
  171. package/dist/control-service-Hg9bqOzH.js +145 -0
  172. package/dist/control-ui/apple-touch-icon.png +0 -0
  173. package/dist/control-ui/assets/agents-BRFjPVUQ.js +1008 -0
  174. package/dist/control-ui/assets/channel-config-extras-BySqgsd3.js +2 -0
  175. package/dist/control-ui/assets/channels-CC3sudX4.js +367 -0
  176. package/dist/control-ui/assets/cron-D0s06fzI.js +1013 -0
  177. package/dist/control-ui/assets/debug-9oq9PYZU.js +97 -0
  178. package/dist/control-ui/assets/index-ChE1ypG4.js +7381 -0
  179. package/dist/control-ui/assets/instances-k9LggJet.js +57 -0
  180. package/dist/control-ui/assets/logs-DKvc2q9b.js +74 -0
  181. package/dist/control-ui/assets/nodes-Bn7kmEGE.js +436 -0
  182. package/dist/control-ui/assets/sessions-0K-_jD8O.js +399 -0
  183. package/dist/control-ui/assets/skills-C9d4OZr_.js +314 -0
  184. package/dist/control-ui/assets/skills-shared-Bv7GgVjx.js +11 -0
  185. package/dist/control-ui/favicon-32.png +0 -0
  186. package/dist/control-ui/favicon-512.png +0 -0
  187. package/dist/control-ui/index.html +1 -1
  188. package/dist/control-ui/manifest.webmanifest +19 -6
  189. package/dist/control-ui/sw.js +1 -1
  190. package/dist/conversation-binding-runtime-CC1fW5Mc.js +4 -0
  191. package/dist/conversation-runtime-YK1oLoen.js +31 -0
  192. package/dist/core-D9SaX41X.js +282 -0
  193. package/dist/core-api-6x_6ros_.js +2 -0
  194. package/dist/core-api-DQaZ_B6s.js +5 -0
  195. package/dist/crestodian/crestodian.js +1 -1
  196. package/dist/crestodian/rescue-message.js +1 -1
  197. package/dist/crestodian-DLJAlHQO.js +55 -0
  198. package/dist/daocore-tools-DnGMRYJ5.js +11727 -0
  199. package/dist/delivery-dlloZivQ.js +1002 -0
  200. package/dist/dialogue-BQcF-xHi.js +37 -0
  201. package/dist/dir-fetch-tool-BmkLMRQd.js +565 -0
  202. package/dist/dir-list-tool-lJdvGnnr.js +100 -0
  203. package/dist/direct-dm-BfzS7vxm.js +64 -0
  204. package/dist/directive-handling.fast-lane-BdYkpgfF.js +68 -0
  205. package/dist/directive-handling.impl-DRIFqx-C.js +818 -0
  206. package/dist/directive-handling.impl-DoXcyCdO.js +2 -0
  207. package/dist/directive-handling.model-selection-xgiP4xbL.js +122 -0
  208. package/dist/directive-handling.persist.runtime-Dl-jD_0m.js +263 -0
  209. package/dist/directive-handling.persist.runtime.js +1 -1
  210. package/dist/dispatch-acp-transcript.runtime-B-PwrS4S.js +40 -0
  211. package/dist/dispatch-acp-transcript.runtime.js +1 -1
  212. package/dist/dispatch-acp.runtime-CQHluA8f.js +18 -0
  213. package/dist/dispatch-acp.runtime.js +1 -1
  214. package/dist/dispatch-kxJ95i3A.js +1640 -0
  215. package/dist/doctor-3QQaqcgK.js +2 -0
  216. package/dist/doctor-B9I7SuuU.js +6 -0
  217. package/dist/doctor-config-flow-DZQY34yK.js +1741 -0
  218. package/dist/doctor-core-checks-C_o9kgoZ.js +2 -0
  219. package/dist/doctor-core-checks-jWtsa4Nz.js +573 -0
  220. package/dist/doctor-health-BJ5wJFg5.js +65 -0
  221. package/dist/doctor-health-contributions-DxNPaNU6.js +696 -0
  222. package/dist/doctor-lint-DQrwNSTd.js +94 -0
  223. package/dist/doctor-state-integrity-Ctb6H9Pr.js +1231 -0
  224. package/dist/doctor-update-BZrZGmOg.js +58 -0
  225. package/dist/dynamic-tools-B9sHtLKs.js +486 -0
  226. package/dist/embedded-backend-CVEWr5Vd.js +579 -0
  227. package/dist/embedded-gateway-stub.runtime-BUl3fCUr.js +12 -0
  228. package/dist/embedded-gateway-stub.runtime.js +1 -1
  229. package/dist/exec-approvals-U0VRo553.js +149 -0
  230. package/dist/extensionAPI.js +1 -1
  231. package/dist/extensions/active-memory/index.js +1 -1
  232. package/dist/extensions/admin-http-rpc/index.js +1 -1
  233. package/dist/extensions/browser/browser-bridge.js +1 -1
  234. package/dist/extensions/browser/browser-config.js +4 -4
  235. package/dist/extensions/browser/browser-control-auth.js +2 -2
  236. package/dist/extensions/browser/browser-doctor.js +2 -2
  237. package/dist/extensions/browser/browser-maintenance.js +1 -1
  238. package/dist/extensions/browser/browser-profiles.js +2 -2
  239. package/dist/extensions/browser/browser-runtime-api.js +11 -11
  240. package/dist/extensions/browser/cli-metadata.js +1 -1
  241. package/dist/extensions/browser/index.js +1 -1
  242. package/dist/extensions/browser/plugin-registration.js +1 -1
  243. package/dist/extensions/browser/register.runtime.js +4 -4
  244. package/dist/extensions/browser/runtime-api.js +13 -13
  245. package/dist/extensions/canvas/index.js +1 -1
  246. package/dist/extensions/clickclack/api.js +2 -2
  247. package/dist/extensions/clickclack/channel-plugin-api.js +1 -1
  248. package/dist/extensions/clickclack/runtime-api.js +2 -2
  249. package/dist/extensions/device-pair/api.js +1 -1
  250. package/dist/extensions/device-pair/pair-command-approve.js +1 -1
  251. package/dist/extensions/file-transfer/index.js +4 -4
  252. package/dist/extensions/imessage/api.js +2 -2
  253. package/dist/extensions/imessage/channel-plugin-api.js +1 -1
  254. package/dist/extensions/imessage/message-tool-api.d.ts +1 -1
  255. package/dist/extensions/imessage/runtime-api.js +3 -3
  256. package/dist/extensions/irc/api.js +2 -2
  257. package/dist/extensions/irc/channel-plugin-api.js +1 -1
  258. package/dist/extensions/llm-task/index.js +1 -1
  259. package/dist/extensions/mattermost/api.js +1 -1
  260. package/dist/extensions/mattermost/channel-plugin-api.js +1 -1
  261. package/dist/extensions/mattermost/channel-plugin-runtime.js +1 -1
  262. package/dist/extensions/mattermost/policy-api.js +1 -1
  263. package/dist/extensions/mattermost/runtime-api.js +2 -2
  264. package/dist/extensions/mattermost/slash-route-api.js +1 -1
  265. package/dist/extensions/memory-core/cli-metadata.js +1 -1
  266. package/dist/extensions/migrate-claude/apply.js +1 -1
  267. package/dist/extensions/migrate-claude/index.js +1 -1
  268. package/dist/extensions/migrate-claude/plan.js +1 -1
  269. package/dist/extensions/migrate-claude/provider.js +1 -1
  270. package/dist/extensions/migrate-claude/targets.js +1 -1
  271. package/dist/extensions/migrate-hermes/apply.js +1 -1
  272. package/dist/extensions/migrate-hermes/index.js +1 -1
  273. package/dist/extensions/migrate-hermes/model.js +1 -1
  274. package/dist/extensions/migrate-hermes/plan.js +1 -1
  275. package/dist/extensions/migrate-hermes/provider.js +1 -1
  276. package/dist/extensions/migrate-hermes/secrets.js +1 -1
  277. package/dist/extensions/migrate-hermes/targets.js +1 -1
  278. package/dist/extensions/policy/api.js +1 -1
  279. package/dist/extensions/policy/index.js +2 -2
  280. package/dist/extensions/signal/api.js +6 -6
  281. package/dist/extensions/signal/channel-plugin-api.js +1 -1
  282. package/dist/extensions/signal/reaction-runtime-api.js +1 -1
  283. package/dist/extensions/signal/runtime-api.js +7 -7
  284. package/dist/extensions/skill-workshop/api.js +1 -1
  285. package/dist/extensions/skill-workshop/index.js +2 -2
  286. package/dist/extensions/telegram/account-inspect-api.js +1 -1
  287. package/dist/extensions/telegram/api.js +11 -11
  288. package/dist/extensions/telegram/channel-plugin-api.js +2 -2
  289. package/dist/extensions/telegram/contract-api.js +3 -3
  290. package/dist/extensions/telegram/runtime-api.js +7 -7
  291. package/dist/extensions/telegram/security-audit-contract-api.js +1 -1
  292. package/dist/extensions/telegram/setup-plugin-api.js +1 -1
  293. package/dist/extensions/telegram/test-api.js +2 -2
  294. package/dist/extensions/webhooks/api.js +1 -1
  295. package/dist/extensions/webhooks/index.js +1 -1
  296. package/dist/extensions/xai/index.js +4 -4
  297. package/dist/extensions/xai/realtime-transcription-provider.js +1 -1
  298. package/dist/extensions/xai/speech-provider.js +1 -1
  299. package/dist/extensions/xai/test-api.js +1 -1
  300. package/dist/extensions/xai/tts.js +1 -1
  301. package/dist/extensions/xai/web-search.js +1 -1
  302. package/dist/extensions/xai/xai-oauth.js +1 -1
  303. package/dist/file-fetch-tool-PskYnfdX.js +124 -0
  304. package/dist/file-write-tool-BWMKcxSs.js +127 -0
  305. package/dist/format-DCronAhx.js +250 -0
  306. package/dist/format-Dk3-Jpqj.js +1145 -0
  307. package/dist/gateway-cli-BEtRyNAV.js +435 -0
  308. package/dist/gateway-method-runtime-Ba3mc5Ui.js +21 -0
  309. package/dist/get-reply-B-kNh5PS.js +4689 -0
  310. package/dist/get-reply-from-config.runtime-D-49TKR5.js +2 -0
  311. package/dist/get-reply-from-config.runtime.js +1 -1
  312. package/dist/graph-users-DIK-qpar.js +1419 -0
  313. package/dist/group-access-B6LDV7nR.js +112 -0
  314. package/dist/handle-action.guild-admin-Dz9DREmk.js +288 -0
  315. package/dist/harness-CJWitSNk.js +61 -0
  316. package/dist/health-SAxsj7q2.js +4 -0
  317. package/dist/health-state-Bp0DOLCD.js +106 -0
  318. package/dist/heartbeat-runner-D2IpmXX0.js +5 -0
  319. package/dist/heartbeat-runner.runtime-BKwSStf9.js +4 -0
  320. package/dist/heartbeat-runner.runtime.js +1 -1
  321. package/dist/hooks-C9V4TVXi.js +534 -0
  322. package/dist/inbound-direct-dm-runtime-C-KKlFVB.js +2 -0
  323. package/dist/inbound-reply-dispatch-3Kvtrdcn.js +148 -0
  324. package/dist/index.js +1 -1
  325. package/dist/init-BGepd_Xi.js +59 -0
  326. package/dist/inline-buttons-Dqa993W-.js +40 -0
  327. package/dist/internal-events-hTD06P4Z.js +90 -0
  328. package/dist/isolated-agent-C30IhhQ4.js +1118 -0
  329. package/dist/isolated-agent-D9rwsYrc.js +2 -0
  330. package/dist/lifecycle-lYxX16zr.js +571 -0
  331. package/dist/list.probe-BuLNPfwh.js +449 -0
  332. package/dist/list.status-command-C9FwGWNZ.js +789 -0
  333. package/dist/llm-slug-generator-DEOtPI7b.js +78 -0
  334. package/dist/llm-slug-generator.js +1 -1
  335. package/dist/local-dispatch.runtime-D2mwqssZ.js +9 -0
  336. package/dist/local-dispatch.runtime.js +1 -1
  337. package/dist/manager.runtime-eqnbDApb.js +2714 -0
  338. package/dist/manager.runtime.js +1 -1
  339. package/dist/markdown-to-line-n4E_Ss2j.js +811 -0
  340. package/dist/mcp-http-DG2YDXx1.js +555 -0
  341. package/dist/mcp-http-DiGvYUK1.js +2 -0
  342. package/dist/media-understanding-provider-BAzC42im.js +339 -0
  343. package/dist/message-actions-DfM9sh0u.js +145 -0
  344. package/dist/message-handler-D3j7tiLC.js +1715 -0
  345. package/dist/message-handler-PdqXVaqc.js +384 -0
  346. package/dist/message-handler.preflight-DVTL11NJ.js +1125 -0
  347. package/dist/message-handler.process-Beo6fyUz.js +1484 -0
  348. package/dist/model-DiiSzCXH.js +74 -0
  349. package/dist/model-selection-CeDXYcsy.js +272 -0
  350. package/dist/models-BecxnLfn.js +104 -0
  351. package/dist/models-BxPknoYN.js +2 -0
  352. package/dist/models-cli-CmGPOjEx.js +256 -0
  353. package/dist/monitor-B2qfveOv.js +60 -0
  354. package/dist/monitor-BIKmDw4B.js +2 -0
  355. package/dist/monitor-CJXHxvh-.js +1657 -0
  356. package/dist/monitor-CqndMsTS.js +4377 -0
  357. package/dist/monitor-Dg9KC5G4.js +834 -0
  358. package/dist/monitor-IbL8Gw1Y.js +2788 -0
  359. package/dist/monitor-LxpNUkve.js +1370 -0
  360. package/dist/monitor-auth-EPov6Z4x.js +179 -0
  361. package/dist/monitor-i7_7ne6w.js +715 -0
  362. package/dist/monitor-polling.runtime-BRFuwAQo.js +883 -0
  363. package/dist/monitor-polling.runtime.js +1 -1
  364. package/dist/monitor-webhook.runtime-CGyP4NKq.js +387 -0
  365. package/dist/monitor-webhook.runtime.js +1 -1
  366. package/dist/monitor.account-L5cJkJbV.js +5233 -0
  367. package/dist/monitor.runtime-Caq1xo2T.js +2 -0
  368. package/dist/monitor.runtime.js +1 -1
  369. package/dist/monitor.webhook-CWo_j5xt.js +180 -0
  370. package/dist/node-cli-sessions-Dlrq3Hrt.js +1228 -0
  371. package/dist/openai-http-Cbs9WY_K.js +824 -0
  372. package/dist/openresponses-http-Djc1TNo5.js +1173 -0
  373. package/dist/operations-CePwJ_bf.js +805 -0
  374. package/dist/outbound-adapter-Cmcx_Msg.js +543 -0
  375. package/dist/outbound-session-route-DIvKTIer.js +45 -0
  376. package/dist/outbound.runtime-BCm1uM9e.js +2 -0
  377. package/dist/outbound.runtime.js +1 -1
  378. package/dist/pi-embedded-BGYOawy9.js +3796 -0
  379. package/dist/pi-embedded-s_XN5zci.js +4 -0
  380. package/dist/pi-embedded.runtime-Iv_ADnNC.js +4 -0
  381. package/dist/pi-embedded.runtime.js +1 -1
  382. package/dist/pi-tools-b-Wh6fBG.js +2413 -0
  383. package/dist/plan-9Cb-QHmS.js +112 -0
  384. package/dist/plan-DOX8mLZM.js +81 -0
  385. package/dist/plugin-CRqD5XqH.js +12396 -0
  386. package/dist/plugin-app-cache-key-BKpHiVS2.js +46 -0
  387. package/dist/plugin-enabled-BEi_lYEW.js +233 -0
  388. package/dist/plugin-registration-D99tHdMd.js +88 -0
  389. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  390. package/dist/plugin-sdk/acp-runtime-backend.js +1 -1
  391. package/dist/plugin-sdk/acp-runtime.js +2 -2
  392. package/dist/plugin-sdk/agent-harness-runtime.js +6 -6
  393. package/dist/plugin-sdk/agent-harness-task-runtime.js +1 -1
  394. package/dist/plugin-sdk/agent-harness.js +7 -7
  395. package/dist/plugin-sdk/agent-runtime.js +2 -2
  396. package/dist/plugin-sdk/channel-core.js +2 -2
  397. package/dist/plugin-sdk/channel-inbound.js +2 -2
  398. package/dist/plugin-sdk/channel-test-helpers.js +1 -1
  399. package/dist/plugin-sdk/command-auth.js +1 -1
  400. package/dist/plugin-sdk/command-status-runtime.js +1 -1
  401. package/dist/plugin-sdk/compat.js +1 -1
  402. package/dist/plugin-sdk/conversation-binding-runtime.js +2 -2
  403. package/dist/plugin-sdk/conversation-runtime.js +3 -3
  404. package/dist/plugin-sdk/core.js +2 -2
  405. package/dist/plugin-sdk/direct-dm.js +1 -1
  406. package/dist/plugin-sdk/gateway-method-runtime.js +1 -1
  407. package/dist/plugin-sdk/health.js +2 -2
  408. package/dist/plugin-sdk/inbound-reply-dispatch.js +1 -1
  409. package/dist/plugin-sdk/index.js +1 -1
  410. package/dist/plugin-sdk/mattermost.js +1 -1
  411. package/dist/plugin-sdk/plugin-test-contracts.js +2 -2
  412. package/dist/plugin-sdk/provider-test-contracts.js +4 -4
  413. package/dist/plugin-sdk/reply-runtime.js +4 -4
  414. package/dist/plugin-sdk/testing.js +2 -2
  415. package/dist/plugin-sdk/zalouser.js +1 -1
  416. package/dist/plugin-service-DBTlrK7m.js +1229 -0
  417. package/dist/plugins/runtime/index.js +4 -4
  418. package/dist/policy-B-G2ltps.js +680 -0
  419. package/dist/policy-DCljYbZL.js +138 -0
  420. package/dist/prepare.runtime-Ewb81gRo.js +732 -0
  421. package/dist/prepare.runtime.js +1 -1
  422. package/dist/preview-warnings-DhWnG_r-.js +392 -0
  423. package/dist/probe-Bqu475Tv.js +2204 -0
  424. package/dist/probe-CRWUBMuB.js +682 -0
  425. package/dist/probe-Dm3lYN25.js +47 -0
  426. package/dist/probe-LLx6ayxG.js +2 -0
  427. package/dist/program-vxEyXm2e.js +131 -0
  428. package/dist/provider-B2aKgXI0.js +32 -0
  429. package/dist/provider-BUYMN3uZ.js +152 -0
  430. package/dist/provider-BlBfyHXO.js +32 -0
  431. package/dist/provider-D3O0zKex.js +8735 -0
  432. package/dist/provider-dispatcher-CYuX21il.js +22 -0
  433. package/dist/provider-dispatcher.runtime.js +1 -1
  434. package/dist/provider-session.runtime-xIOzPEA7.js +9 -0
  435. package/dist/provider-session.runtime.js +1 -1
  436. package/dist/provider.runtime-C94TKQWq.js +2 -0
  437. package/dist/provider.runtime.js +1 -1
  438. package/dist/public-surface-loader-CDa3nA_L.js +114 -0
  439. package/dist/pw-ai-BH_nTHa5.js +3029 -0
  440. package/dist/pw-role-snapshot-BPi5ipRX.js +333 -0
  441. package/dist/reaction-level-CSHisLIF.js +19 -0
  442. package/dist/reaction-runtime-api-D5YNDU-7.js +116 -0
  443. package/dist/realtime-transcription-provider-B6-wne03.js +205 -0
  444. package/dist/register-AeYt54B0.js +2178 -0
  445. package/dist/register.agent-DuW_Cioa.js +156 -0
  446. package/dist/register.crestodian-DfuAvHf8.js +24 -0
  447. package/dist/register.maintenance-DhSW2XSZ.js +83 -0
  448. package/dist/register.runtime-CYWai1dl.js +54 -0
  449. package/dist/register.status-health-sessions-BrkNpe59.js +282 -0
  450. package/dist/register.subclis-B4c9g5v0.js +31 -0
  451. package/dist/register.subclis-Do4TSxcj.js +3 -0
  452. package/dist/register.subclis-core-Dm9-Cc4K.js +273 -0
  453. package/dist/repair-sequencing-CKX_OEBn.js +640 -0
  454. package/dist/reply-delivery-Dx31Fawb.js +196 -0
  455. package/dist/reply-runtime-DyCbxbOD.js +11 -0
  456. package/dist/reply.runtime-D-49TKR5.js +2 -0
  457. package/dist/reply.runtime.js +1 -1
  458. package/dist/request-CZtiBI4R.js +54 -0
  459. package/dist/resolve-allowlist-C-WRtkEq.js +220 -0
  460. package/dist/result-fallback-classifier-BkI5uV-W.js +79 -0
  461. package/dist/route-BEeC4HAl.js +469 -0
  462. package/dist/route-resolution-CHA13yYB.js +274 -0
  463. package/dist/routes-CfBm1qOU.js +2 -0
  464. package/dist/routes-DsgV54GJ.js +3602 -0
  465. package/dist/run-DL8UkH0h.js +1162 -0
  466. package/dist/run-attempt-D0qv7bs7.js +7704 -0
  467. package/dist/run-command-BWyjy--D.js +23 -0
  468. package/dist/run-command-IDml3oWg.js +2 -0
  469. package/dist/run-embedded.runtime-DeIZpKHe.js +4 -0
  470. package/dist/run-embedded.runtime.js +1 -1
  471. package/dist/run-execution-cli.runtime-yf9gfWAm.js +4 -0
  472. package/dist/run-execution-cli.runtime.js +1 -1
  473. package/dist/run-executor.runtime.js +1 -1
  474. package/dist/run-subagent-registry.runtime-oZs4xMMU.js +2 -0
  475. package/dist/run-subagent-registry.runtime.js +1 -1
  476. package/dist/runtime-BDbGwqGy.js +6179 -0
  477. package/dist/runtime-Bwn06s0u.js +438 -0
  478. package/dist/runtime-CD6WyVpL.js +1287 -0
  479. package/dist/runtime-api-BzvORSkx.js +4 -0
  480. package/dist/runtime-api-CAORRCZU.js +17 -0
  481. package/dist/runtime-api-CZGRk5D1.js +24 -0
  482. package/dist/runtime-api-CZm1iIlw.js +13 -0
  483. package/dist/runtime-api-D0d1LZvp.js +21 -0
  484. package/dist/runtime-api-DPIkVTDM.js +3 -0
  485. package/dist/runtime-api-DbQDZRSI.js +13 -0
  486. package/dist/runtime-api.actions-CuYXLj2I.js +3 -0
  487. package/dist/runtime-api.monitor-BPMqlEBC.js +6 -0
  488. package/dist/runtime-api.send-cXGaIwD8.js +4 -0
  489. package/dist/runtime-api.threads-DF6EqVSY.js +2 -0
  490. package/dist/runtime-channel-B2dCbld0.js +2 -0
  491. package/dist/runtime-channel-BfzwZ133.js +150 -0
  492. package/dist/runtime-embedded-pi.runtime-Bz4-Me2g.js +2 -0
  493. package/dist/runtime-embedded-pi.runtime.js +1 -1
  494. package/dist/sanitize-outbound-52UJkVc2.js +127 -0
  495. package/dist/sdk-setup-tools-DzA0rD_t.js +8 -0
  496. package/dist/secrets-BzY28DjS.js +113 -0
  497. package/dist/security-audit-B_x9Bqsd.js +122 -0
  498. package/dist/security-audit-CaX5F2YD.js +118 -0
  499. package/dist/security-audit.runtime-BZFJXu8H.js +2 -0
  500. package/dist/security-audit.runtime.js +1 -1
  501. package/dist/selection-B4V4O6zr.js +16157 -0
  502. package/dist/selection-Cp7REh-j.js +3 -0
  503. package/dist/send-C8NgsGx0.js +2 -0
  504. package/dist/send-CktHKbVL.js +192 -0
  505. package/dist/send-DSDSSxuo.js +1631 -0
  506. package/dist/send-I0iE28XZ.js +143 -0
  507. package/dist/send.components-CdYNwUR8.js +500 -0
  508. package/dist/send.components-DDmsziVe.js +2 -0
  509. package/dist/send.runtime-DEr6-5Rp.js +2 -0
  510. package/dist/send.runtime.js +1 -1
  511. package/dist/server-Bdu2XxWz.js +24 -0
  512. package/dist/server-BnVdhBLM.js +73 -0
  513. package/dist/server-close.runtime.js +1 -1
  514. package/dist/server-context-B7bIBpAz.js +2 -0
  515. package/dist/server-context-BlPO5a-j.js +955 -0
  516. package/dist/server-cron-3tDiqp95.js +2989 -0
  517. package/dist/server-cron-Ckfa7HkP.js +2 -0
  518. package/dist/server-maintenance-CDfLZpYN.js +167 -0
  519. package/dist/server-methods-BNAICSKA.js +16494 -0
  520. package/dist/server-node-events-BSp5sE0Q.js +596 -0
  521. package/dist/server-plugin-bootstrap-Noai-kpp.js +70 -0
  522. package/dist/server-plugins-DYPvxv5q.js +432 -0
  523. package/dist/server-reload-handlers-I8gCBw7C.js +714 -0
  524. package/dist/server-restart-sentinel-Bykg5_Sm.js +747 -0
  525. package/dist/server-restart-sentinel-Dz8m-1uN.js +2 -0
  526. package/dist/server-runtime-services-B2DpVh1J.js +2 -0
  527. package/dist/server-runtime-services-DPDcSogD.js +267 -0
  528. package/dist/server-startup-early-Ctjir66B.js +87 -0
  529. package/dist/server-startup-plugins-DHFkcvFX.js +113 -0
  530. package/dist/server-startup-post-attach-BvKY1MjB.js +716 -0
  531. package/dist/server-ws-runtime-DbsgWSNE.js +349 -0
  532. package/dist/server.impl-DkzYcRnc.js +2586 -0
  533. package/dist/service-oKCE97n8.js +1446 -0
  534. package/dist/session-binding-BCYHcgKv.js +219 -0
  535. package/dist/session-binding-Dbc5SyV1.js +2 -0
  536. package/dist/session-kill-http-MtEei2A_.js +121 -0
  537. package/dist/session-reset-service-BetsGXPL.js +625 -0
  538. package/dist/session-route-BNumUO6m.js +93 -0
  539. package/dist/session-status.runtime-8-kVkZLZ.js +2 -0
  540. package/dist/session-status.runtime.js +1 -1
  541. package/dist/session-subagent-reactivation.runtime-C4xmUBc4.js +2 -0
  542. package/dist/session-subagent-reactivation.runtime.js +1 -1
  543. package/dist/session-tab-registry-DldD575V.js +521 -0
  544. package/dist/sessions-history-http-Dh8uuG7K.js +430 -0
  545. package/dist/sessions.runtime-CTD1EISY.js +2 -0
  546. package/dist/sessions.runtime.js +1 -1
  547. package/dist/setup-api-ClFwxmWg.js +29 -0
  548. package/dist/setup-core-DF053J7r.js +174 -0
  549. package/dist/setup-surface-C3vtcmut.js +221 -0
  550. package/dist/setup-surface-hKgM61lK.js +288 -0
  551. package/dist/setup-surface-kl5kIfCD.js +405 -0
  552. package/dist/setup-surface-o44p_EZs.js +320 -0
  553. package/dist/shared-DuNbDPVK.js +121 -0
  554. package/dist/shared-client-BGdKzX6-.js +2 -0
  555. package/dist/shared-client-DiaCaBiw.js +629 -0
  556. package/dist/side-question-vADB_V7t.js +683 -0
  557. package/dist/skill-tool-dispatch.runtime-DeTiaxln.js +143 -0
  558. package/dist/skill-tool-dispatch.runtime.js +1 -1
  559. package/dist/slash-state-TiAtCc3B.js +2166 -0
  560. package/dist/speech-provider-Dko5aOz2.js +184 -0
  561. package/dist/src-Bczx7izw.js +4256 -0
  562. package/dist/startup-context-sYE5tS1C.js +313 -0
  563. package/dist/status-CHChLqRH.js +3 -0
  564. package/dist/status-OYJF7NHg.js +4 -0
  565. package/dist/status-all-CSz2mOkm.js +573 -0
  566. package/dist/status-json-B5iKxsPt.js +14 -0
  567. package/dist/status-json-command-B7mD_HM0.js +84 -0
  568. package/dist/status-runtime-shared-tJ5_gXDE.js +283 -0
  569. package/dist/status-subagents.runtime-B79dVmOZ.js +18 -0
  570. package/dist/status-subagents.runtime.js +1 -1
  571. package/dist/status-text-CNV3Xo_z.js +296 -0
  572. package/dist/status.command-29iMh5b8.js +420 -0
  573. package/dist/status.command-cDrXztZ4.js +2 -0
  574. package/dist/status.command.text-runtime-CJLiLlec.js +15 -0
  575. package/dist/status.scan-BnCyO_-1.js +68 -0
  576. package/dist/status.scan-overview-8jfuH7wl.js +444 -0
  577. package/dist/status.scan.fast-json-CyqrMrI6.js +2 -0
  578. package/dist/status.scan.fast-json-D0y03alo.js +127 -0
  579. package/dist/status.scan.runtime-DGbNNELT.js +479 -0
  580. package/dist/status.scan.runtime.js +1 -1
  581. package/dist/status.update-C6moG8hY.js +2 -0
  582. package/dist/status.update-Ch-d2YqJ.js +86 -0
  583. package/dist/sticker-cache-ClnmeK7n.js +206 -0
  584. package/dist/sticker-vision.runtime-DKWYX_Z0.js +17 -0
  585. package/dist/sticker-vision.runtime.js +1 -1
  586. package/dist/subagent-announce-BxgiPcah.js +354 -0
  587. package/dist/subagent-announce-delivery-M73wDt9b.js +958 -0
  588. package/dist/subagent-control-Svp4alxT.js +508 -0
  589. package/dist/subagent-hooks-B8fQ4SB-.js +2 -0
  590. package/dist/subagent-hooks-Bide9UGs.js +2 -0
  591. package/dist/subagent-hooks-BroJYfmc.js +116 -0
  592. package/dist/subagent-hooks-CeLaGy0S.js +2 -0
  593. package/dist/subagent-hooks-D0jzCSJB.js +230 -0
  594. package/dist/subagent-hooks-DMtU9Utn.js +146 -0
  595. package/dist/subagent-hooks-api-6X1AhZ92.js +23 -0
  596. package/dist/subagent-hooks-api-C3hw2s-7.js +22 -0
  597. package/dist/subagent-hooks-api-D0utPXhG.js +23 -0
  598. package/dist/subagent-orphan-recovery-DlyXF_8M.js +352 -0
  599. package/dist/subagent-registry-Ct9aaUSq.js +2351 -0
  600. package/dist/subagent-registry-_ThKY_a5.js +3 -0
  601. package/dist/subagent-registry.runtime.js +1 -1
  602. package/dist/subagent-session-cleanup-D9jhUKCY.js +525 -0
  603. package/dist/subagent-spawn-Bl5_-Qro.js +1164 -0
  604. package/dist/target-id-DgUyIiaj.js +107 -0
  605. package/dist/targets-CV6YGekF.js +19 -0
  606. package/dist/targets-Ct6zFYUl.js +19 -0
  607. package/dist/targets-DQxwAOx5.js +44 -0
  608. package/dist/task-registry-control.runtime.js +1 -1
  609. package/dist/telegram/token.js +1 -1
  610. package/dist/testing-JsUCJjUs.js +267 -0
  611. package/dist/text-report-E0TZg1LV.js +695 -0
  612. package/dist/thread-bindings-BJJr5qB6.js +232 -0
  613. package/dist/thread-bindings-BVe9r2rW.js +571 -0
  614. package/dist/thread-bindings-p78_o8d0.js +228 -0
  615. package/dist/thread-bindings-yvtEoUyM.js +8 -0
  616. package/dist/thread-bindings.discord-api-DpdJ31xq.js +187 -0
  617. package/dist/thread-bindings.manager-DkA46uP3.js +536 -0
  618. package/dist/thread-bindings.manager-MVNj26UO.js +2 -0
  619. package/dist/thread-lifecycle-CLhulJIV.js +1614 -0
  620. package/dist/token-VGmXler6.js +134 -0
  621. package/dist/tool-BJkgiGjR.js +139 -0
  622. package/dist/tool-actions.runtime-DhrT4z_Z.js +534 -0
  623. package/dist/tool-actions.runtime.js +1 -1
  624. package/dist/tool-resolution-BJLcYvry.js +149 -0
  625. package/dist/tools-effective-inventory-D1c6J-sI.js +204 -0
  626. package/dist/tools-invoke-http-B-k9cOYf.js +67 -0
  627. package/dist/tools-invoke-shared-qMHGnaLY.js +200 -0
  628. package/dist/tts-CmxOJYRq.js +66 -0
  629. package/dist/tui-BcRfXYtK.js +2 -0
  630. package/dist/tui-ChmyCc_c.js +4709 -0
  631. package/dist/tui-backend-BOAgkU7O.js +256 -0
  632. package/dist/tui-cli-C_1WxXuf.js +37 -0
  633. package/dist/update-check-Dvp_oog_.js +387 -0
  634. package/dist/update-cli-CBJVr7p3.js +3664 -0
  635. package/dist/update-runner-DHzvirfV.js +2379 -0
  636. package/dist/update-startup-3l7wPrqM.js +339 -0
  637. package/dist/update-startup-C_peqiGI.js +2 -0
  638. package/dist/vision-tools-BIOoLPOZ.js +1409 -0
  639. package/dist/web-search-8-XCZJzj.js +62 -0
  640. package/dist/web-search-provider.runtime-BORgiL3n.js +2 -0
  641. package/dist/web-search-provider.runtime-CCXm-JLK.js +328 -0
  642. package/dist/web-search-provider.runtime.js +1 -1
  643. package/dist/xai-oauth-CcxHOluD.js +479 -0
  644. package/dist/xai-user-agent-BE2MgJak.js +32 -0
  645. package/package.json +1 -1
  646. package/dist/abort-Bp4IXIaT.js +0 -277
  647. package/dist/abort.runtime-yT20lVm3.js +0 -2
  648. package/dist/account-inspect-Braq4T5C.js +0 -173
  649. package/dist/accounts-B73T487L.js +0 -2
  650. package/dist/accounts-Byqhka0B.js +0 -107
  651. package/dist/accounts-C6REvXTb.js +0 -107
  652. package/dist/accounts-DHkZahnb.js +0 -119
  653. package/dist/acp-runtime-CsYu7oyf.js +0 -26
  654. package/dist/acp-spawn-BpcanpjB.js +0 -2
  655. package/dist/acp-spawn-CXnfFZet.js +0 -1275
  656. package/dist/acp-stateful-target-driver-dbQl7Cls.js +0 -89
  657. package/dist/action-kill-CmrHUh6-.js +0 -33
  658. package/dist/action-runtime-Nz_MTd85.js +0 -469
  659. package/dist/action-runtime-api-NVBTHRJ0.js +0 -2
  660. package/dist/action-send-Bw28r8YX.js +0 -39
  661. package/dist/action-spawn-Db3goKdw.js +0 -47
  662. package/dist/actions-CZEEFK0T.js +0 -161
  663. package/dist/actions.runtime-f4FlBapO.js +0 -5
  664. package/dist/agent-BFrHijEI.js +0 -3
  665. package/dist/agent-BvTZZujh.js +0 -2
  666. package/dist/agent-command-CexUxiL4.js +0 -1367
  667. package/dist/agent-components.runtime-Bv--4UUq.js +0 -10
  668. package/dist/agent-harness-runtime-_4Ou4ZI_.js +0 -180
  669. package/dist/agent-harness-task-runtime-D0TI6yGM.js +0 -140
  670. package/dist/agent-runner-execution-BWvPnRM1.js +0 -1713
  671. package/dist/agent-runner-utils-hmda0Lyc.js +0 -266
  672. package/dist/agent-runner.runtime-6MrZPOYP.js +0 -3455
  673. package/dist/agent-runtime-Cnq13raf.js +0 -229
  674. package/dist/agent-via-gateway-Cux4caUy.js +0 -463
  675. package/dist/api-0vV8JjoW.js +0 -2
  676. package/dist/api-4kojV9vT.js +0 -639
  677. package/dist/api-C4dZHG-E.js +0 -2
  678. package/dist/api-DFDhOB71.js +0 -134
  679. package/dist/api-Dd41e_NF.js +0 -3
  680. package/dist/api-DqSBNv8i.js +0 -6
  681. package/dist/apply-DnknmYSP.js +0 -41
  682. package/dist/apply-XMFoVMgK.js +0 -54
  683. package/dist/approval-handler.runtime-BIKhPCUE.js +0 -130
  684. package/dist/assistant-Cfzr-QfG.js +0 -291
  685. package/dist/attachment-normalize-Bqthqujs.js +0 -225
  686. package/dist/attempt-execution-Cc2IUiUY.js +0 -558
  687. package/dist/attempt-execution.runtime-C1pnC5CL.js +0 -3
  688. package/dist/attempt-execution.shared-DR-LL9H1.js +0 -38
  689. package/dist/attempt.prompt-helpers-DvfaNdO_.js +0 -475
  690. package/dist/attempt.tool-run-context-Fk3-iLKA.js +0 -2094
  691. package/dist/binding-routing-BjRihOZ8.js +0 -113
  692. package/dist/binding-targets-D3vQIPpu.js +0 -121
  693. package/dist/bot-BzKQljl1.js +0 -7894
  694. package/dist/bot-deps-CHJno4Xv.js +0 -747
  695. package/dist/bot-deps-CTU3vOGH.js +0 -2
  696. package/dist/bot-message-context.runtime-DPAocg_K.js +0 -7
  697. package/dist/bot-message-context.session.runtime-cWFJiTXb.js +0 -12
  698. package/dist/bot-native-commands.delivery.runtime-BBiSJ9qu.js +0 -4
  699. package/dist/bot-native-commands.runtime-BoWjkHEv.js +0 -13
  700. package/dist/bridge-server-BnWfM8E9.js +0 -113
  701. package/dist/browser-cli-CKSNhiVi.js +0 -230
  702. package/dist/browser-cli-CsC0lbjc.js +0 -2
  703. package/dist/browser-cli-actions-input-1PFDZ0_b.js +0 -473
  704. package/dist/browser-cli-actions-observe-DfH0Y9FC.js +0 -81
  705. package/dist/browser-cli-debug-hj-w-s9t.js +0 -137
  706. package/dist/browser-cli-inspect-CxxMD86J.js +0 -104
  707. package/dist/browser-cli-manage-DOn9OEh_.js +0 -443
  708. package/dist/browser-cli-resize-BFHf-RqV.js +0 -26
  709. package/dist/browser-cli-shared-Ca_pACoG.js +0 -50
  710. package/dist/browser-cli-state-CCIHMGkC.js +0 -337
  711. package/dist/browser-control-auth-dTGAuDxC.js +0 -2
  712. package/dist/browser-profiles-CjXJJdop.js +0 -2
  713. package/dist/browser-runtime-DrNsVpfv.js +0 -384
  714. package/dist/build-QfdWbTGY.js +0 -257
  715. package/dist/capability-cli-D7nQY4qe.js +0 -1782
  716. package/dist/channel-13BBMvGu.js +0 -1496
  717. package/dist/channel-B9qWcqGg.js +0 -562
  718. package/dist/channel-BB9gjVcH.js +0 -362
  719. package/dist/channel-BM_u9Kct.js +0 -508
  720. package/dist/channel-BdhbzWTg.d.ts +0 -427
  721. package/dist/channel-CQbX6z1g.js +0 -740
  722. package/dist/channel-CXkMpUA_.js +0 -1134
  723. package/dist/channel-CcENPjLR.js +0 -1556
  724. package/dist/channel-CfgfbGDs.js +0 -808
  725. package/dist/channel-D6JtLARW.js +0 -955
  726. package/dist/channel-D6klawjQ.js +0 -867
  727. package/dist/channel-DFTg6l_Y.js +0 -1777
  728. package/dist/channel-DI30oIzM.js +0 -238
  729. package/dist/channel-Dwmhp2QK.js +0 -376
  730. package/dist/channel-DyOJHorx.js +0 -481
  731. package/dist/channel-DzLAzPz_.js +0 -1249
  732. package/dist/channel-ZshGzzZU.js +0 -2126
  733. package/dist/channel-actions.runtime-BPuh-LPy.js +0 -265
  734. package/dist/channel-core-Cip0DXqW.js +0 -5
  735. package/dist/channel-inbound-nxJGbY-L.js +0 -80
  736. package/dist/channel-kn7WFIV-.js +0 -653
  737. package/dist/channel-plugin-runtime-D2mUAQP6.js +0 -998
  738. package/dist/channel-runtime-DWbCQz0-.js +0 -408
  739. package/dist/channel.runtime-BRLds_50.js +0 -1008
  740. package/dist/channel.runtime-BYk5D3KV.js +0 -652
  741. package/dist/channel.runtime-Bd5GuqVD.js +0 -4
  742. package/dist/channel.runtime-BhiiHau6.js +0 -109
  743. package/dist/channel.runtime-CKnG96oM.js +0 -254
  744. package/dist/channel.runtime-DbuDXi8A.js +0 -2528
  745. package/dist/channel.runtime-DfQ7lbcl.js +0 -21009
  746. package/dist/channel.runtime-DhzR3IQP.js +0 -733
  747. package/dist/channel.runtime-SnJqiMZZ.js +0 -88
  748. package/dist/channel.setup-0jZeZ91N.js +0 -1098
  749. package/dist/channel.setup-C3aSMtNe.js +0 -343
  750. package/dist/channel.setup-x_GPUW2e.js +0 -10
  751. package/dist/chat-DyxY_o5e.js +0 -2666
  752. package/dist/chrome-CUytWLO5.js +0 -1503
  753. package/dist/cli-BnAifbUH.js +0 -1341
  754. package/dist/cli-compaction-BsDXzDbB.js +0 -347
  755. package/dist/cli-metadata-C2ez_EOq.js +0 -22
  756. package/dist/cli-runner-Df8f6aib.js +0 -2
  757. package/dist/cli-runner-N-xuwavW.js +0 -540
  758. package/dist/cli-runner.runtime-BZgB5Wze.js +0 -3
  759. package/dist/cli-runner.runtime-CzWSBiUX.js +0 -4
  760. package/dist/client-BSznX-Sw.js +0 -650
  761. package/dist/client-adapter-CvuAhGRl.js +0 -897
  762. package/dist/client-factory-Dl9ZpTlR.js +0 -9
  763. package/dist/command-auth-Cp3qho7_.js +0 -135
  764. package/dist/command-handlers-7evBobOS.js +0 -1609
  765. package/dist/command-registry-BTdu515H.js +0 -4
  766. package/dist/command-registry-MW7FkJ_Y.js +0 -9
  767. package/dist/command-registry-core-COtKps6g.js +0 -110
  768. package/dist/command-status.runtime-HmI60xl3.js +0 -90
  769. package/dist/commands-acp-NnHhockz.js +0 -74
  770. package/dist/commands-compact.runtime-wJDJ6VWY.js +0 -10
  771. package/dist/commands-handlers.runtime-CDlvieOM.js +0 -6154
  772. package/dist/commands-status-CJsUMgIw.js +0 -16
  773. package/dist/commands-status-j5QdKUbl.js +0 -3
  774. package/dist/commands-status.runtime-j5QdKUbl.js +0 -3
  775. package/dist/commands-subagents-control.runtime-BfOBOw5t.js +0 -3
  776. package/dist/commands-subagents-control.runtime-CALs_ywD.js +0 -2
  777. package/dist/commands-system-prompt-BnMuvo_P.js +0 -2
  778. package/dist/commands-system-prompt-BqcYl8m9.js +0 -162
  779. package/dist/commands.runtime-DMhewKIp.js +0 -176
  780. package/dist/compact-B4Hs8o3S.js +0 -1141
  781. package/dist/compact-CKxyl7Ak.js +0 -480
  782. package/dist/compact.runtime-BPnE7Lia.js +0 -12
  783. package/dist/completion-cli-dN803PIC.js +0 -315
  784. package/dist/computer-use-DI-JbifZ.js +0 -367
  785. package/dist/config-CA7Mb3IV.js +0 -373
  786. package/dist/config-CjXJJdop.js +0 -2
  787. package/dist/config-mutations-CIt7XNeY.js +0 -159
  788. package/dist/context-engine-host-compat-C0PN-GqB.js +0 -288
  789. package/dist/context-engine-host-compat-r4dLJY0h.js +0 -2
  790. package/dist/context-engine-lifecycle-BgedIp9C.js +0 -1274
  791. package/dist/control-auth-BNpGd-Kk.js +0 -114
  792. package/dist/control-service-kce7bfHU.js +0 -145
  793. package/dist/control-ui/assets/agents-DYF7Shwp.js +0 -1008
  794. package/dist/control-ui/assets/channel-config-extras-BeVJ9wQW.js +0 -2
  795. package/dist/control-ui/assets/channels-B8hQJyN1.js +0 -367
  796. package/dist/control-ui/assets/cron-DEY9YxY4.js +0 -1013
  797. package/dist/control-ui/assets/debug-B4Pj_8SV.js +0 -97
  798. package/dist/control-ui/assets/index-BIr_za5p.js +0 -7370
  799. package/dist/control-ui/assets/instances-DBjo0xZX.js +0 -57
  800. package/dist/control-ui/assets/logs-Btu3zodR.js +0 -74
  801. package/dist/control-ui/assets/nodes-BNsG2ZQZ.js +0 -436
  802. package/dist/control-ui/assets/sessions-DVGZAenz.js +0 -399
  803. package/dist/control-ui/assets/skills-BOO5gAI1.js +0 -314
  804. package/dist/control-ui/assets/skills-shared-Ce6HjZf-.js +0 -11
  805. package/dist/conversation-binding-runtime-CUUOaxkw.js +0 -4
  806. package/dist/conversation-runtime-CAGsRmgG.js +0 -31
  807. package/dist/core-DDHeEXv5.js +0 -282
  808. package/dist/core-api-BfuO-na1.js +0 -5
  809. package/dist/core-api-YA03piFN.js +0 -2
  810. package/dist/crestodian-BvNBIbgT.js +0 -55
  811. package/dist/daocore-tools-V8Z6YbCA.js +0 -11727
  812. package/dist/delivery-CqDMMxF-.js +0 -1002
  813. package/dist/dialogue-C7jN6TtR.js +0 -37
  814. package/dist/dir-fetch-tool-DKizoBAo.js +0 -565
  815. package/dist/dir-list-tool-CMSe1Gic.js +0 -100
  816. package/dist/direct-dm-CNDGhZHH.js +0 -64
  817. package/dist/directive-handling.fast-lane-BNDUrJm9.js +0 -68
  818. package/dist/directive-handling.impl-CNMskvfI.js +0 -2
  819. package/dist/directive-handling.impl-DkSnupbX.js +0 -818
  820. package/dist/directive-handling.model-selection-DrYH2dJi.js +0 -122
  821. package/dist/directive-handling.persist.runtime-Bf1g-e09.js +0 -263
  822. package/dist/dispatch-BqXq6928.js +0 -1640
  823. package/dist/dispatch-acp-transcript.runtime-B8OLBkcv.js +0 -40
  824. package/dist/dispatch-acp.runtime-CFRlXnm3.js +0 -18
  825. package/dist/doctor-C8zSecbl.js +0 -6
  826. package/dist/doctor-DmE-4kn4.js +0 -2
  827. package/dist/doctor-config-flow-CiEbrb8s.js +0 -1741
  828. package/dist/doctor-core-checks-B3G8nJ2e.js +0 -573
  829. package/dist/doctor-core-checks-BeflOFTE.js +0 -2
  830. package/dist/doctor-health-Ali-Hxdp.js +0 -65
  831. package/dist/doctor-health-contributions-CXfgIUQd.js +0 -696
  832. package/dist/doctor-lint-B5IHZCxG.js +0 -94
  833. package/dist/doctor-state-integrity-BjeDtfbq.js +0 -1231
  834. package/dist/doctor-update-CG2msB2K.js +0 -58
  835. package/dist/dynamic-tools-D5gHaas6.js +0 -486
  836. package/dist/embedded-backend-BLW2WQJF.js +0 -579
  837. package/dist/embedded-gateway-stub.runtime-DbUedhpy.js +0 -12
  838. package/dist/exec-approvals-CwwQA-_B.js +0 -149
  839. package/dist/file-fetch-tool-CekPjemC.js +0 -124
  840. package/dist/file-write-tool-C7-UYxXN.js +0 -127
  841. package/dist/format-BrgWhpMP.js +0 -1145
  842. package/dist/format-C-lnTES_.js +0 -250
  843. package/dist/gateway-cli-BIl9ooav.js +0 -435
  844. package/dist/gateway-method-runtime-B3nJGqAy.js +0 -21
  845. package/dist/get-reply-CCGEqENF.js +0 -4689
  846. package/dist/get-reply-from-config.runtime-1bVL6Eaa.js +0 -2
  847. package/dist/graph-users-CCkJYdwo.js +0 -1419
  848. package/dist/group-access-BrcrVhTm.js +0 -112
  849. package/dist/handle-action.guild-admin-8EfNNvKz.js +0 -288
  850. package/dist/harness-BNsomB7U.js +0 -61
  851. package/dist/health-CJOAk46r.js +0 -4
  852. package/dist/health-state-CETJtly-.js +0 -106
  853. package/dist/heartbeat-runner-BjAnHwan.js +0 -5
  854. package/dist/heartbeat-runner.runtime-BhQDpIvL.js +0 -4
  855. package/dist/hooks-CAleL-fH.js +0 -534
  856. package/dist/inbound-direct-dm-runtime-aWeBKeRE.js +0 -2
  857. package/dist/inbound-reply-dispatch-DvWaNCgR.js +0 -148
  858. package/dist/init-D_kHY2_L.js +0 -59
  859. package/dist/inline-buttons-CBfC5L_C.js +0 -40
  860. package/dist/internal-events-DR7M-R-k.js +0 -90
  861. package/dist/isolated-agent-BSwvfJdq.js +0 -1118
  862. package/dist/isolated-agent-B_H2wb6F.js +0 -2
  863. package/dist/lifecycle-BsPQk14E.js +0 -571
  864. package/dist/list.probe-DVPoP_gs.js +0 -449
  865. package/dist/list.status-command-YLSxt2nU.js +0 -789
  866. package/dist/llm-slug-generator-DMXCuj_8.js +0 -78
  867. package/dist/local-dispatch.runtime-ByJpKbzY.js +0 -9
  868. package/dist/manager.runtime-Cbd4Wkzv.js +0 -2714
  869. package/dist/markdown-to-line-UROW4ICU.js +0 -811
  870. package/dist/mcp-http-Bs04-o36.js +0 -2
  871. package/dist/mcp-http-DusJ-yus.js +0 -555
  872. package/dist/media-understanding-provider-DJ2PVD5L.js +0 -339
  873. package/dist/message-actions-BOhsMU7S.js +0 -145
  874. package/dist/message-handler-BUvaTnYL.js +0 -384
  875. package/dist/message-handler-DsiaQGjj.js +0 -1715
  876. package/dist/message-handler.preflight-COR7HHaa.js +0 -1125
  877. package/dist/message-handler.process-Cnlh9kQt.js +0 -1484
  878. package/dist/model-CrGV78vh.js +0 -74
  879. package/dist/model-selection-BkMRVKvT.js +0 -272
  880. package/dist/models-CAsfL9Yc.js +0 -104
  881. package/dist/models-DAHwZzdm.js +0 -2
  882. package/dist/models-cli-NVAexFpF.js +0 -256
  883. package/dist/monitor-BHLuAWAQ.js +0 -2
  884. package/dist/monitor-BbTVo-eV.js +0 -715
  885. package/dist/monitor-CLLyEX0R.js +0 -2788
  886. package/dist/monitor-CTR3lVMb.js +0 -834
  887. package/dist/monitor-Cl2p6Juz.js +0 -60
  888. package/dist/monitor-D5rBDT5w.js +0 -4377
  889. package/dist/monitor-DyRkvAJd.js +0 -1370
  890. package/dist/monitor-IiG3eV5_.js +0 -1657
  891. package/dist/monitor-auth-D_0zoeLn.js +0 -179
  892. package/dist/monitor-polling.runtime-BXzw5egF.js +0 -883
  893. package/dist/monitor-webhook.runtime-C3arPPzi.js +0 -387
  894. package/dist/monitor.account-DrVGHE8V.js +0 -5233
  895. package/dist/monitor.runtime-DPEbukZB.js +0 -2
  896. package/dist/monitor.webhook-jkAnTCQb.js +0 -180
  897. package/dist/node-cli-sessions-DcVj-6eN.js +0 -1228
  898. package/dist/openai-http-CmoI0e7t.js +0 -824
  899. package/dist/openresponses-http-Bi3LSGUc.js +0 -1173
  900. package/dist/operations-9LkwgILD.js +0 -805
  901. package/dist/outbound-adapter-xUTnrNGD.js +0 -543
  902. package/dist/outbound-session-route-CBXkht6a.js +0 -45
  903. package/dist/outbound.runtime-CAgimRZ1.js +0 -2
  904. package/dist/pi-embedded-BKpKsszm.js +0 -4
  905. package/dist/pi-embedded-DmeQCwCt.js +0 -3796
  906. package/dist/pi-embedded.runtime-C283Wor9.js +0 -4
  907. package/dist/pi-tools-B0nJW7W4.js +0 -2413
  908. package/dist/plan-BILA3XMN.js +0 -81
  909. package/dist/plan-DHXchBJq.js +0 -112
  910. package/dist/plugin-CHLmrL9G.js +0 -12396
  911. package/dist/plugin-app-cache-key-C-_klURZ.js +0 -46
  912. package/dist/plugin-enabled-DzYMnPpm.js +0 -233
  913. package/dist/plugin-registration-DLrh8AB5.js +0 -88
  914. package/dist/plugin-service-xm4tv2oM.js +0 -1229
  915. package/dist/policy-BUSsfT7A.js +0 -138
  916. package/dist/policy-BwwL6sP2.js +0 -680
  917. package/dist/prepare.runtime-Dcrb22a5.js +0 -732
  918. package/dist/preview-warnings-Cx__1X43.js +0 -392
  919. package/dist/probe-CevnbYpq.js +0 -682
  920. package/dist/probe-CoEDhBiC.js +0 -2204
  921. package/dist/probe-ConXyeqE.js +0 -2
  922. package/dist/probe-D-jU5onR.js +0 -47
  923. package/dist/program-BBwmibpa.js +0 -131
  924. package/dist/provider--7lUimtp.js +0 -152
  925. package/dist/provider-CCGQtVNI.js +0 -8735
  926. package/dist/provider-DVMSF8i8.js +0 -32
  927. package/dist/provider-R_TaXN59.js +0 -32
  928. package/dist/provider-dispatcher-CYkb3lfL.js +0 -22
  929. package/dist/provider-session.runtime-DzG2BUE9.js +0 -9
  930. package/dist/provider.runtime-D1-pMnoj.js +0 -2
  931. package/dist/public-surface-loader-BZisefzq.js +0 -114
  932. package/dist/pw-ai-Cbau3n7J.js +0 -3029
  933. package/dist/pw-role-snapshot-HeQTrxIk.js +0 -333
  934. package/dist/reaction-level-uJ8tiLpH.js +0 -19
  935. package/dist/reaction-runtime-api-BKUvK5Wn.js +0 -116
  936. package/dist/realtime-transcription-provider-Daix0e58.js +0 -205
  937. package/dist/register-Dj9j6LEv.js +0 -2178
  938. package/dist/register.agent-OiMUcpgI.js +0 -156
  939. package/dist/register.crestodian-CbqhJMEx.js +0 -24
  940. package/dist/register.maintenance-CQILEqsM.js +0 -83
  941. package/dist/register.runtime-BwfUZoFY.js +0 -54
  942. package/dist/register.status-health-sessions-DF6wxmsG.js +0 -282
  943. package/dist/register.subclis-BR2kCzHF.js +0 -31
  944. package/dist/register.subclis-Wd-wKmYg.js +0 -3
  945. package/dist/register.subclis-core-DS7RVqtY.js +0 -273
  946. package/dist/repair-sequencing-DvQQmyrq.js +0 -640
  947. package/dist/reply-delivery-ohbM16VN.js +0 -196
  948. package/dist/reply-runtime-qGOCyyux.js +0 -11
  949. package/dist/reply.runtime-1bVL6Eaa.js +0 -2
  950. package/dist/request-CC3c4Svm.js +0 -54
  951. package/dist/resolve-allowlist-vAhCe75e.js +0 -220
  952. package/dist/result-fallback-classifier-CZtnXmbx.js +0 -79
  953. package/dist/route-resolution-CXaxgYtw.js +0 -274
  954. package/dist/route-uo5aoUdQ.js +0 -469
  955. package/dist/routes-BqtrHP28.js +0 -2
  956. package/dist/routes-pIjFm3n0.js +0 -3602
  957. package/dist/run-DYwW1kIR.js +0 -1162
  958. package/dist/run-attempt-B2GDG3uT.js +0 -7704
  959. package/dist/run-command-CbUIDjYf.js +0 -2
  960. package/dist/run-command-DHOIYQm_.js +0 -23
  961. package/dist/run-embedded.runtime-g47oIqaL.js +0 -4
  962. package/dist/run-execution-cli.runtime-zQ48ZAc5.js +0 -4
  963. package/dist/run-subagent-registry.runtime-CXj8K_pJ.js +0 -2
  964. package/dist/runtime-CjTLh1Zl.js +0 -6179
  965. package/dist/runtime-NVf_F_HM.js +0 -1287
  966. package/dist/runtime-Z5_yALHT.js +0 -438
  967. package/dist/runtime-api-BExObylL.js +0 -17
  968. package/dist/runtime-api-BfCI6iAu.js +0 -3
  969. package/dist/runtime-api-BkzOHOsq.js +0 -13
  970. package/dist/runtime-api-BtVSnSI4.js +0 -4
  971. package/dist/runtime-api-DLHn_SE-.js +0 -24
  972. package/dist/runtime-api-_nsdMn3H.js +0 -13
  973. package/dist/runtime-api-qMRycIAN.js +0 -21
  974. package/dist/runtime-api.actions-UmkTxLGC.js +0 -3
  975. package/dist/runtime-api.monitor-JDAShUxC.js +0 -6
  976. package/dist/runtime-api.send-B65J_Lod.js +0 -4
  977. package/dist/runtime-api.threads-B7tsKPA_.js +0 -2
  978. package/dist/runtime-channel-Bs6XTsp4.js +0 -150
  979. package/dist/runtime-channel-C3WZVBBg.js +0 -2
  980. package/dist/runtime-embedded-pi.runtime-P8AdyyIu.js +0 -2
  981. package/dist/sanitize-outbound-Bt4-FGfp.js +0 -127
  982. package/dist/sdk-setup-tools-CfyJODAu.js +0 -8
  983. package/dist/secrets-DjmhS0YO.js +0 -113
  984. package/dist/security-audit-CKVBQPWN.js +0 -118
  985. package/dist/security-audit-D9IeXoG3.js +0 -122
  986. package/dist/security-audit.runtime-CYMQTOM9.js +0 -2
  987. package/dist/selection--wvE7VOv.js +0 -16157
  988. package/dist/selection-y-7QPgGA.js +0 -3
  989. package/dist/send-BlmkYrI0.js +0 -1631
  990. package/dist/send-CbkEX0QM.js +0 -143
  991. package/dist/send-Cmn4RsqA.js +0 -192
  992. package/dist/send-Dug9BZ9D.js +0 -2
  993. package/dist/send.components-CyaKuD2L.js +0 -500
  994. package/dist/send.components-PcOc-Ovz.js +0 -2
  995. package/dist/send.runtime-xY6hEtyv.js +0 -2
  996. package/dist/server-BnGgr3PE.js +0 -73
  997. package/dist/server-DSUxFJfU.js +0 -24
  998. package/dist/server-context-CLKwYCyu.js +0 -955
  999. package/dist/server-context-CYVPTQQC.js +0 -2
  1000. package/dist/server-cron-B1jBiRyb.js +0 -2989
  1001. package/dist/server-cron-X77jGOEU.js +0 -2
  1002. package/dist/server-maintenance-Y0NvZrH-.js +0 -167
  1003. package/dist/server-methods-BBnXSrf2.js +0 -16494
  1004. package/dist/server-node-events-BUsL79RS.js +0 -596
  1005. package/dist/server-plugin-bootstrap-ALp-FJwj.js +0 -70
  1006. package/dist/server-plugins-ufO_8NhB.js +0 -432
  1007. package/dist/server-reload-handlers-CPiyHZtT.js +0 -714
  1008. package/dist/server-restart-sentinel-CQk6eeWM.js +0 -747
  1009. package/dist/server-restart-sentinel-D3cRaMdv.js +0 -2
  1010. package/dist/server-runtime-services-Bu0xO9C9.js +0 -2
  1011. package/dist/server-runtime-services-DXP2sVWQ.js +0 -267
  1012. package/dist/server-startup-early-5UM54scV.js +0 -87
  1013. package/dist/server-startup-plugins-CQ_pYS5Y.js +0 -113
  1014. package/dist/server-startup-post-attach-Ja8NHfJQ.js +0 -716
  1015. package/dist/server-ws-runtime-DNH4m_Ix.js +0 -349
  1016. package/dist/server.impl-BXCtVnO2.js +0 -2586
  1017. package/dist/service-wi5zUseG.js +0 -1446
  1018. package/dist/session-binding-BUfCOB1r.js +0 -219
  1019. package/dist/session-binding-DBdZdGMb.js +0 -2
  1020. package/dist/session-kill-http-PtCc8zMl.js +0 -121
  1021. package/dist/session-reset-service-BOBmro8l.js +0 -625
  1022. package/dist/session-route-CJUmMLQC.js +0 -93
  1023. package/dist/session-status.runtime-C10K54fr.js +0 -2
  1024. package/dist/session-subagent-reactivation.runtime-DfIyTUKb.js +0 -2
  1025. package/dist/session-tab-registry-DQbVw6TC.js +0 -521
  1026. package/dist/sessions-history-http-BX2MupcW.js +0 -430
  1027. package/dist/sessions.runtime-C2inYyN4.js +0 -2
  1028. package/dist/setup-api-LkhGnkD8.js +0 -29
  1029. package/dist/setup-core-CinEapxM.js +0 -174
  1030. package/dist/setup-surface-BCtf5vsv.js +0 -221
  1031. package/dist/setup-surface-BlIPVefp.js +0 -320
  1032. package/dist/setup-surface-CfGI8GXG.js +0 -288
  1033. package/dist/setup-surface-Cpi2A6hH.js +0 -405
  1034. package/dist/shared-D57heBsq.js +0 -121
  1035. package/dist/shared-client-BNqlZyQZ.js +0 -2
  1036. package/dist/shared-client-DkXSWGuf.js +0 -629
  1037. package/dist/side-question-CJpQXQwO.js +0 -683
  1038. package/dist/skill-tool-dispatch.runtime-DFIYzLB7.js +0 -143
  1039. package/dist/slash-state-PVFVXsf5.js +0 -2166
  1040. package/dist/speech-provider-BYMES40R.js +0 -184
  1041. package/dist/src-Cig0nIaB.js +0 -4256
  1042. package/dist/startup-context-BhCfCVUP.js +0 -313
  1043. package/dist/status-BUGiySd0.js +0 -3
  1044. package/dist/status-CCUVxq2T.js +0 -4
  1045. package/dist/status-all-DVmRki9n.js +0 -573
  1046. package/dist/status-json-C9yB-I_P.js +0 -14
  1047. package/dist/status-json-command-DLiHHY4-.js +0 -84
  1048. package/dist/status-runtime-shared-CVVr1-B8.js +0 -283
  1049. package/dist/status-subagents.runtime-Dnd_-sFp.js +0 -18
  1050. package/dist/status-text-Bv7B6Qvi.js +0 -296
  1051. package/dist/status.command-CgQ_YxAV.js +0 -2
  1052. package/dist/status.command-DljDx7Pt.js +0 -420
  1053. package/dist/status.command.text-runtime-HPfXUUVK.js +0 -15
  1054. package/dist/status.scan-XGVKT6BH.js +0 -68
  1055. package/dist/status.scan-overview-BdO_Dwpk.js +0 -444
  1056. package/dist/status.scan.fast-json-BbfAYFaX.js +0 -2
  1057. package/dist/status.scan.fast-json-CixCI_VT.js +0 -127
  1058. package/dist/status.scan.runtime-c77nmHB8.js +0 -479
  1059. package/dist/status.update-CgJc9Ame.js +0 -2
  1060. package/dist/status.update-DxUx2UCj.js +0 -86
  1061. package/dist/sticker-cache-zbRCf5UY.js +0 -206
  1062. package/dist/sticker-vision.runtime-D8hb_hbK.js +0 -17
  1063. package/dist/subagent-announce-D-tCpxB7.js +0 -354
  1064. package/dist/subagent-announce-delivery-CV9sHBb8.js +0 -958
  1065. package/dist/subagent-control-B71yROQ1.js +0 -508
  1066. package/dist/subagent-hooks-5z9r_kyU.js +0 -230
  1067. package/dist/subagent-hooks-B9N4nO9J.js +0 -2
  1068. package/dist/subagent-hooks-Bqm8GC4e.js +0 -116
  1069. package/dist/subagent-hooks-CH64M3D2.js +0 -2
  1070. package/dist/subagent-hooks-YX204bTO.js +0 -2
  1071. package/dist/subagent-hooks-api-22u-zraT.js +0 -23
  1072. package/dist/subagent-hooks-api-CZbBhZq3.js +0 -23
  1073. package/dist/subagent-hooks-api-Ji-FhB1I.js +0 -22
  1074. package/dist/subagent-hooks-yIneGe_q.js +0 -146
  1075. package/dist/subagent-orphan-recovery-BR2b7ZZK.js +0 -352
  1076. package/dist/subagent-registry-7llbjThI.js +0 -2351
  1077. package/dist/subagent-registry-IXRntXRj.js +0 -3
  1078. package/dist/subagent-session-cleanup-Ckvz5u4B.js +0 -525
  1079. package/dist/subagent-spawn-28HeMeKx.js +0 -1164
  1080. package/dist/target-id-CGBWkCke.js +0 -107
  1081. package/dist/targets-B8kgW-Y8.js +0 -19
  1082. package/dist/targets-BhYsYz4Q.js +0 -44
  1083. package/dist/targets-Dl-MgHWz.js +0 -19
  1084. package/dist/testing-CwJ9EDFR.js +0 -267
  1085. package/dist/text-report-97aYC9pB.js +0 -695
  1086. package/dist/thread-bindings-B6t8Q4ba.js +0 -8
  1087. package/dist/thread-bindings-B9f-_sFy.js +0 -571
  1088. package/dist/thread-bindings-CJDUpwXD.js +0 -228
  1089. package/dist/thread-bindings-DxvjdbzW.js +0 -232
  1090. package/dist/thread-bindings.discord-api-CnRP-DSi.js +0 -187
  1091. package/dist/thread-bindings.manager-2B6_nSpQ.js +0 -536
  1092. package/dist/thread-bindings.manager-C_n--VnJ.js +0 -2
  1093. package/dist/thread-lifecycle-C2hLLuqe.js +0 -1614
  1094. package/dist/token-Bo7-r-aE.js +0 -134
  1095. package/dist/tool-BLIlzoql.js +0 -139
  1096. package/dist/tool-actions.runtime-CXZ0UNkZ.js +0 -534
  1097. package/dist/tool-resolution-BqtQFCPq.js +0 -149
  1098. package/dist/tools-effective-inventory-DABx239z.js +0 -204
  1099. package/dist/tools-invoke-http-8pjepRT1.js +0 -67
  1100. package/dist/tools-invoke-shared-l5WK0ntS.js +0 -200
  1101. package/dist/tts-BIYGM92g.js +0 -66
  1102. package/dist/tui-DCykl3IU.js +0 -4709
  1103. package/dist/tui-DzUa_vFQ.js +0 -2
  1104. package/dist/tui-backend-BJUtldXg.js +0 -256
  1105. package/dist/tui-cli-C-Q6SJc7.js +0 -37
  1106. package/dist/update-check-BKUpUW-v.js +0 -372
  1107. package/dist/update-cli-DA6H6wa0.js +0 -3664
  1108. package/dist/update-runner-C680U-SL.js +0 -2379
  1109. package/dist/update-startup-D26cmPn-.js +0 -2
  1110. package/dist/update-startup-XLbXHCT1.js +0 -339
  1111. package/dist/vision-tools-DJ4y7cV-.js +0 -1409
  1112. package/dist/web-search-DpV8PBBY.js +0 -62
  1113. package/dist/web-search-provider.runtime-Bmvff7rR.js +0 -2
  1114. package/dist/web-search-provider.runtime-CY9JJJoF.js +0 -328
  1115. package/dist/xai-oauth-gj-8ubLa.js +0 -479
  1116. package/dist/xai-user-agent-D4JRRc1W.js +0 -32
  1117. /package/dist/{acp-runtime-backend-DL9bHzqW.js → acp-runtime-backend-DFDX5U10.js} +0 -0
  1118. /package/dist/{channel-actions-CMf4W2nb.js → channel-actions-DMH2vVzJ.js} +0 -0
  1119. /package/dist/{command-status-runtime-CFttYerC.js → command-status-runtime-Du_onNYh.js} +0 -0
  1120. /package/dist/{delegate-D6LGFAf5.js → delegate-CDb4qcfr.js} +0 -0
  1121. /package/dist/{dispatch-acp-aDmm-ClP.js → dispatch-acp-0Se8OniI.js} +0 -0
  1122. /package/dist/{heartbeat-runner-CA3FnKVt.js → heartbeat-runner-BdsqQ3pi.js} +0 -0
  1123. /package/dist/{library-Bwpqe3Xn.js → library-CsfrQOyp.js} +0 -0
  1124. /package/dist/{run-executor.runtime-BDRmO1Qf.js → run-executor.runtime-OlsZwyZw.js} +0 -0
  1125. /package/dist/{shared-DMRXpVQc.js → shared-DxV6gup5.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-DDHeEXv5.js";
13
- import "./channel-core-Cip0DXqW.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-YAmKOwAT.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-D9HaNHKN.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-aWeBKeRE.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 };