@gaodefa/daocore 2026.5.54 → 2026.5.56

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 (1133) hide show
  1. package/dist/abort-DiC4Sznz.js +277 -0
  2. package/dist/abort.runtime-CQoHzKTf.js +2 -0
  3. package/dist/abort.runtime.js +1 -1
  4. package/dist/account-inspect-Dh7EWFPH.js +173 -0
  5. package/dist/accounts-BZStTFvH.js +107 -0
  6. package/dist/accounts-DOSIhc1G.js +107 -0
  7. package/dist/accounts-hM84k1b4.js +2 -0
  8. package/dist/accounts-j_TdtEpS.js +119 -0
  9. package/dist/acp-runtime-BK9aeb-F.js +26 -0
  10. package/dist/acp-spawn-B_TzMnCs.js +2 -0
  11. package/dist/acp-spawn-C-jSM9pB.js +1275 -0
  12. package/dist/acp-stateful-target-driver-Bs7j0_2y.js +89 -0
  13. package/dist/action-kill-BZimChzW.js +33 -0
  14. package/dist/action-runtime-CV2RGgay.js +469 -0
  15. package/dist/action-runtime-api-Di0XuJjs.js +2 -0
  16. package/dist/action-send-CGACS9au.js +39 -0
  17. package/dist/action-spawn-CaZbPxyj.js +47 -0
  18. package/dist/actions-CWN32SuY.js +161 -0
  19. package/dist/actions.runtime-COUjuN0A.js +5 -0
  20. package/dist/agent-7rrYnTDJ.js +3 -0
  21. package/dist/agent-command-DCD5KH4O.js +1367 -0
  22. package/dist/agent-components.runtime-CpszZAIK.js +10 -0
  23. package/dist/agent-components.runtime.js +1 -1
  24. package/dist/agent-harness-CEPgjZ3p.d.ts +146 -0
  25. package/dist/agent-harness-runtime-C8bm2G6W.js +180 -0
  26. package/dist/agent-harness-task-runtime-BIlxU__c.js +140 -0
  27. package/dist/agent-runner-execution-BwxMzaLo.js +1713 -0
  28. package/dist/agent-runner-utils-rclNBb27.js +266 -0
  29. package/dist/agent-runner.runtime-bHUq_x-t.js +3455 -0
  30. package/dist/agent-runner.runtime.js +1 -1
  31. package/dist/agent-runtime-xKSjW2h-.js +229 -0
  32. package/dist/agent-via-gateway-CmbxFwNI.js +463 -0
  33. package/dist/agent-zvVk5Gj7.js +2 -0
  34. package/dist/api-Bq22hQPa.js +2 -0
  35. package/dist/api-CFnwFx29.js +639 -0
  36. package/dist/api-ChHyXerl.js +6 -0
  37. package/dist/api-CwAgaVbv.js +2 -0
  38. package/dist/api-DuR1iuSt.js +3 -0
  39. package/dist/api-oLwjYZlQ.js +134 -0
  40. package/dist/apply-CYqNieX-.js +54 -0
  41. package/dist/apply-DhAs6lD_.js +41 -0
  42. package/dist/approval-handler.runtime-DKFYzDbX.js +130 -0
  43. package/dist/assistant-VvAy5G1q.js +291 -0
  44. package/dist/attachment-normalize-DXLRb1vV.js +225 -0
  45. package/dist/attempt-execution-ByHukLRQ.js +558 -0
  46. package/dist/attempt-execution.runtime-CB1K0mw-.js +3 -0
  47. package/dist/attempt-execution.runtime.js +1 -1
  48. package/dist/attempt-execution.shared-DUY-qllk.js +38 -0
  49. package/dist/attempt.prompt-helpers-OGgVyJYC.js +475 -0
  50. package/dist/attempt.tool-run-context-lCJOOyoF.js +2094 -0
  51. package/dist/binding-routing-V7qHnpr1.js +113 -0
  52. package/dist/binding-targets-DRZy-L0v.js +121 -0
  53. package/dist/bot-BRiKm0Sj.js +7894 -0
  54. package/dist/bot-deps-C7IwsRPN.js +2 -0
  55. package/dist/bot-deps-PET2I6SF.js +747 -0
  56. package/dist/bot-message-context.runtime-CToAd9y4.js +7 -0
  57. package/dist/bot-message-context.runtime.js +1 -1
  58. package/dist/bot-message-context.session.runtime-BUs3Wbbp.js +12 -0
  59. package/dist/bot-message-context.session.runtime.js +1 -1
  60. package/dist/bot-native-commands.delivery.runtime-BX5zaPEH.js +4 -0
  61. package/dist/bot-native-commands.delivery.runtime.js +1 -1
  62. package/dist/bot-native-commands.runtime-9tQ5_DNB.js +13 -0
  63. package/dist/bot-native-commands.runtime.js +1 -1
  64. package/dist/bridge-server-B5j8kXOX.js +113 -0
  65. package/dist/browser-cli-C2Zh3969.js +2 -0
  66. package/dist/browser-cli-C8xLyTcb.js +230 -0
  67. package/dist/browser-cli-actions-input-pLyGefrN.js +473 -0
  68. package/dist/browser-cli-actions-observe-yIc8XHto.js +81 -0
  69. package/dist/browser-cli-debug-XNnJPUBx.js +137 -0
  70. package/dist/browser-cli-inspect-bdB11tMm.js +104 -0
  71. package/dist/browser-cli-manage-DxyNyyfu.js +443 -0
  72. package/dist/browser-cli-resize-DTTYXJZe.js +26 -0
  73. package/dist/browser-cli-shared-NVP-6AKd.js +50 -0
  74. package/dist/browser-cli-state-CNGbNPwa.js +337 -0
  75. package/dist/browser-control-auth--sLVv1gk.js +2 -0
  76. package/dist/browser-profiles-DbqSFyjp.js +2 -0
  77. package/dist/browser-runtime-awhrDqeW.js +384 -0
  78. package/dist/build-D-2nejZD.js +257 -0
  79. package/dist/build-info.json +2 -2
  80. package/dist/bundled/boot-md/handler.js +2 -2
  81. package/dist/bundled/session-memory/handler.js +1 -1
  82. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  83. package/dist/capability-cli-BolcyA0G.js +1782 -0
  84. package/dist/channel-Aq5t-z3L.js +2126 -0
  85. package/dist/channel-BSgHNRHc.js +867 -0
  86. package/dist/channel-BspahFUv.js +238 -0
  87. package/dist/channel-C6iG1bMw.js +740 -0
  88. package/dist/channel-CGqfpV9W.js +481 -0
  89. package/dist/channel-CP4Ay-zH.js +1496 -0
  90. package/dist/channel-CXv96eif.js +362 -0
  91. package/dist/channel-DKtJJJmk.js +1134 -0
  92. package/dist/channel-DYaugblh.js +1777 -0
  93. package/dist/channel-Drfw8mPm.js +376 -0
  94. package/dist/channel-DsZ5FgWv.js +508 -0
  95. package/dist/channel-K5ieMY2B.js +1249 -0
  96. package/dist/channel-MXOd30fz.d.ts +427 -0
  97. package/dist/channel-TByHmphS.js +653 -0
  98. package/dist/channel-_qt56abp.js +955 -0
  99. package/dist/channel-actions.runtime-IJXVGMwr.js +265 -0
  100. package/dist/channel-actions.runtime.js +1 -1
  101. package/dist/channel-core-DI56iN4a.js +5 -0
  102. package/dist/channel-inbound-CLiXSx1p.js +80 -0
  103. package/dist/channel-jD9TGFqC.js +562 -0
  104. package/dist/channel-plugin-runtime-DbH-PJHG.js +998 -0
  105. package/dist/channel-runtime-qDFdfs2o.js +408 -0
  106. package/dist/channel-v10vtt5n.js +808 -0
  107. package/dist/channel-zuYcvD-Z.js +1556 -0
  108. package/dist/channel.runtime-CDU2dm0s.js +1008 -0
  109. package/dist/channel.runtime-CHdAXkYH.js +254 -0
  110. package/dist/channel.runtime-CLJRpc-h.js +88 -0
  111. package/dist/channel.runtime-CPcuYCrA.js +109 -0
  112. package/dist/channel.runtime-CyBKohZL.js +652 -0
  113. package/dist/channel.runtime-Cyt2i5vz.js +733 -0
  114. package/dist/channel.runtime-D0-a4fRP.js +21009 -0
  115. package/dist/channel.runtime-DoLjhXDx.js +4 -0
  116. package/dist/channel.runtime-w3cW8r41.js +2528 -0
  117. package/dist/channel.setup-BS1OC5oY.js +10 -0
  118. package/dist/channel.setup-DVAWbxPf.js +1098 -0
  119. package/dist/channel.setup-Dr17Z8Bs.js +343 -0
  120. package/dist/chat-CjtxdDLc.js +2666 -0
  121. package/dist/chrome-edHD-MwA.js +1503 -0
  122. package/dist/cli/run-main.js +5 -5
  123. package/dist/cli-D5u1KTqm.js +1341 -0
  124. package/dist/cli-compaction-C9Gf32ee.js +347 -0
  125. package/dist/cli-metadata-BRwOm0gD.js +22 -0
  126. package/dist/cli-runner-CHOYrtX0.js +2 -0
  127. package/dist/cli-runner-DoVHGCQ_.js +540 -0
  128. package/dist/cli-runner.runtime-CLMCxLS3.js +3 -0
  129. package/dist/cli-runner.runtime-zYfDdco2.js +4 -0
  130. package/dist/cli-runner.runtime.js +1 -1
  131. package/dist/cli-startup-metadata.json +8 -8
  132. package/dist/client-Cnjvcmyb.js +650 -0
  133. package/dist/client-adapter-e-8O4cOK.js +897 -0
  134. package/dist/client-factory-Ciknc94j.js +9 -0
  135. package/dist/command-auth-DptBVN5F.js +135 -0
  136. package/dist/command-handlers-I-N79aEc.js +1609 -0
  137. package/dist/command-registry-CEGc-tLO.js +9 -0
  138. package/dist/command-registry-DyH-S8Mq.js +4 -0
  139. package/dist/command-registry-core-Dm6muwXT.js +110 -0
  140. package/dist/command-status.runtime-BxXo4Lh8.js +90 -0
  141. package/dist/command-status.runtime.js +1 -1
  142. package/dist/commands-acp-D8Qo4y4s.js +74 -0
  143. package/dist/commands-compact.runtime-T8fDbiQ3.js +10 -0
  144. package/dist/commands-compact.runtime.js +1 -1
  145. package/dist/commands-handlers.runtime-BXbiNMgg.js +6154 -0
  146. package/dist/commands-handlers.runtime.js +1 -1
  147. package/dist/commands-status-C33sx-wg.js +16 -0
  148. package/dist/commands-status-ontnXxS9.js +3 -0
  149. package/dist/commands-status.runtime-ontnXxS9.js +3 -0
  150. package/dist/commands-status.runtime.js +1 -1
  151. package/dist/commands-subagents-control.runtime-Dj_eYE95.js +2 -0
  152. package/dist/commands-subagents-control.runtime-vdq632cp.js +3 -0
  153. package/dist/commands-subagents-control.runtime.js +1 -1
  154. package/dist/commands-system-prompt-C12SSIRK.js +162 -0
  155. package/dist/commands-system-prompt-CLwISYbJ.js +2 -0
  156. package/dist/commands.runtime-CpTdfFOn.js +176 -0
  157. package/dist/commands.runtime.js +1 -1
  158. package/dist/commitments/runtime.js +1 -1
  159. package/dist/compact-B_oM1_Kj.js +480 -0
  160. package/dist/compact-D1kBFth6.js +1141 -0
  161. package/dist/compact.runtime-DUkHrkr5.js +12 -0
  162. package/dist/compact.runtime.js +1 -1
  163. package/dist/completion-cli-jKzV4sfV.js +315 -0
  164. package/dist/computer-use-CSww5tMF.js +367 -0
  165. package/dist/config-B1vAgTvP.js +373 -0
  166. package/dist/config-DbqSFyjp.js +2 -0
  167. package/dist/config-mutations-CTSn5iBU.js +159 -0
  168. package/dist/context-engine-host-compat-Uh8zFTKI.js +2 -0
  169. package/dist/context-engine-host-compat-oT1wCKie.js +288 -0
  170. package/dist/context-engine-lifecycle-DuQ3Yn9Y.js +1274 -0
  171. package/dist/contracts-testkit-BXrbWjbk.d.ts +144 -0
  172. package/dist/control-auth-Bs45HadJ.js +114 -0
  173. package/dist/control-service-xpFmVcOh.js +145 -0
  174. package/dist/control-ui/assets/agents-349Jzsum.js +1008 -0
  175. package/dist/control-ui/assets/channel-config-extras-BnNR_swz.js +2 -0
  176. package/dist/control-ui/assets/channels-C-FOXVsa.js +367 -0
  177. package/dist/control-ui/assets/cron-D6P49xjt.js +1013 -0
  178. package/dist/control-ui/assets/debug-lLxykcQV.js +97 -0
  179. package/dist/control-ui/assets/index-Cid1wNBW.js +7406 -0
  180. package/dist/control-ui/assets/instances-BxPphF2v.js +57 -0
  181. package/dist/control-ui/assets/logs-BRU6QfhP.js +74 -0
  182. package/dist/control-ui/assets/nodes-CxK46Wj9.js +436 -0
  183. package/dist/control-ui/assets/sessions-C1yK0h-Z.js +399 -0
  184. package/dist/control-ui/assets/skills-CPV6XN_A.js +314 -0
  185. package/dist/control-ui/assets/skills-shared-Da78lt92.js +11 -0
  186. package/dist/control-ui/index.html +1 -1
  187. package/dist/control-ui/sw.js +1 -1
  188. package/dist/conversation-binding-runtime-x4mPNIxH.js +4 -0
  189. package/dist/conversation-runtime-DtEjS-G-.js +31 -0
  190. package/dist/core-DC7Ny2oO.js +282 -0
  191. package/dist/core-api-15EcrNg-.js +2 -0
  192. package/dist/core-api-BYZCq0RV.js +5 -0
  193. package/dist/crestodian/crestodian.js +1 -1
  194. package/dist/crestodian/rescue-message.js +1 -1
  195. package/dist/crestodian-D5kJCfGc.js +55 -0
  196. package/dist/daocore-tools-B3_b_UBy.js +11727 -0
  197. package/dist/delivery-DzhYKAIC.js +1002 -0
  198. package/dist/dialogue-CeR00F0b.js +37 -0
  199. package/dist/dir-fetch-tool-BN93HZEX.js +565 -0
  200. package/dist/dir-list-tool-GN9j9rZf.js +100 -0
  201. package/dist/direct-dm-DG_Y9uZa.js +64 -0
  202. package/dist/directive-handling.fast-lane-C6MB3gfj.js +68 -0
  203. package/dist/directive-handling.impl-DMd8DEIx.js +2 -0
  204. package/dist/directive-handling.impl-DiHRiklw.js +818 -0
  205. package/dist/directive-handling.model-selection-bFnPrpT5.js +122 -0
  206. package/dist/directive-handling.persist.runtime-BmUPRBpx.js +263 -0
  207. package/dist/directive-handling.persist.runtime.js +1 -1
  208. package/dist/dispatch-acp-transcript.runtime-BOd5NoBy.js +40 -0
  209. package/dist/dispatch-acp-transcript.runtime.js +1 -1
  210. package/dist/dispatch-acp.runtime-BAHKODIz.js +18 -0
  211. package/dist/dispatch-acp.runtime.js +1 -1
  212. package/dist/dispatch-nvTA16b0.js +1640 -0
  213. package/dist/doctor-BC74dYFO.js +6 -0
  214. package/dist/doctor-BYhXKI0q.js +2 -0
  215. package/dist/doctor-config-flow-DQGS37Mm.js +1741 -0
  216. package/dist/doctor-core-checks-Cbu28kU4.js +573 -0
  217. package/dist/doctor-core-checks-RYxzr9_s.js +2 -0
  218. package/dist/doctor-health-B_mD0NRM.js +65 -0
  219. package/dist/doctor-health-contributions-CXGagKlC.js +696 -0
  220. package/dist/doctor-lint-D3uAOXwJ.js +94 -0
  221. package/dist/doctor-state-integrity-BGTUWx8E.js +1231 -0
  222. package/dist/doctor-update-BEEW5jJq.js +58 -0
  223. package/dist/dynamic-tools-iaDgH2y8.js +486 -0
  224. package/dist/embedded-backend-CrWLS1VO.js +579 -0
  225. package/dist/embedded-gateway-stub.runtime-D1V-x8Xf.js +12 -0
  226. package/dist/embedded-gateway-stub.runtime.js +1 -1
  227. package/dist/exec-approvals-CtBpUdfe.js +149 -0
  228. package/dist/extensionAPI.js +1 -1
  229. package/dist/extensions/active-memory/index.js +1 -1
  230. package/dist/extensions/admin-http-rpc/index.js +1 -1
  231. package/dist/extensions/browser/browser-bridge.js +1 -1
  232. package/dist/extensions/browser/browser-config.js +4 -4
  233. package/dist/extensions/browser/browser-control-auth.js +2 -2
  234. package/dist/extensions/browser/browser-doctor.js +2 -2
  235. package/dist/extensions/browser/browser-maintenance.js +1 -1
  236. package/dist/extensions/browser/browser-profiles.js +2 -2
  237. package/dist/extensions/browser/browser-runtime-api.js +11 -11
  238. package/dist/extensions/browser/cli-metadata.js +1 -1
  239. package/dist/extensions/browser/index.js +1 -1
  240. package/dist/extensions/browser/plugin-registration.js +1 -1
  241. package/dist/extensions/browser/register.runtime.js +4 -4
  242. package/dist/extensions/browser/runtime-api.js +13 -13
  243. package/dist/extensions/browser/test-support.d.ts +1 -1
  244. package/dist/extensions/canvas/index.js +1 -1
  245. package/dist/extensions/clickclack/api.js +2 -2
  246. package/dist/extensions/clickclack/channel-plugin-api.js +1 -1
  247. package/dist/extensions/clickclack/runtime-api.js +2 -2
  248. package/dist/extensions/device-pair/api.js +1 -1
  249. package/dist/extensions/device-pair/pair-command-approve.js +1 -1
  250. package/dist/extensions/file-transfer/index.js +4 -4
  251. package/dist/extensions/image-generation-core/api.d.ts +1 -1
  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/runtime-api.js +3 -3
  255. package/dist/extensions/irc/api.js +2 -2
  256. package/dist/extensions/irc/channel-plugin-api.js +1 -1
  257. package/dist/extensions/llm-task/index.js +1 -1
  258. package/dist/extensions/mattermost/api.js +1 -1
  259. package/dist/extensions/mattermost/channel-plugin-api.js +1 -1
  260. package/dist/extensions/mattermost/channel-plugin-runtime.js +1 -1
  261. package/dist/extensions/mattermost/policy-api.js +1 -1
  262. package/dist/extensions/mattermost/runtime-api.js +2 -2
  263. package/dist/extensions/mattermost/slash-route-api.js +1 -1
  264. package/dist/extensions/memory-core/cli-metadata.js +1 -1
  265. package/dist/extensions/migrate-claude/apply.js +1 -1
  266. package/dist/extensions/migrate-claude/index.js +1 -1
  267. package/dist/extensions/migrate-claude/plan.js +1 -1
  268. package/dist/extensions/migrate-claude/provider.js +1 -1
  269. package/dist/extensions/migrate-claude/targets.js +1 -1
  270. package/dist/extensions/migrate-hermes/apply.js +1 -1
  271. package/dist/extensions/migrate-hermes/index.js +1 -1
  272. package/dist/extensions/migrate-hermes/model.js +1 -1
  273. package/dist/extensions/migrate-hermes/plan.js +1 -1
  274. package/dist/extensions/migrate-hermes/provider.js +1 -1
  275. package/dist/extensions/migrate-hermes/secrets.js +1 -1
  276. package/dist/extensions/migrate-hermes/targets.js +1 -1
  277. package/dist/extensions/policy/api.js +1 -1
  278. package/dist/extensions/policy/index.js +2 -2
  279. package/dist/extensions/signal/api.js +6 -6
  280. package/dist/extensions/signal/channel-plugin-api.js +1 -1
  281. package/dist/extensions/signal/reaction-runtime-api.js +1 -1
  282. package/dist/extensions/signal/runtime-api.js +7 -7
  283. package/dist/extensions/skill-workshop/api.js +1 -1
  284. package/dist/extensions/skill-workshop/index.js +2 -2
  285. package/dist/extensions/telegram/account-inspect-api.js +1 -1
  286. package/dist/extensions/telegram/api.js +11 -11
  287. package/dist/extensions/telegram/channel-plugin-api.js +2 -2
  288. package/dist/extensions/telegram/contract-api.js +3 -3
  289. package/dist/extensions/telegram/runtime-api.js +7 -7
  290. package/dist/extensions/telegram/security-audit-contract-api.js +1 -1
  291. package/dist/extensions/telegram/setup-plugin-api.js +1 -1
  292. package/dist/extensions/telegram/test-api.js +2 -2
  293. package/dist/extensions/video-generation-core/api.d.ts +1 -1
  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-6M7otZWJ.js +124 -0
  304. package/dist/file-write-tool-C7sxNalS.js +127 -0
  305. package/dist/format-BaYeBN8g.js +1145 -0
  306. package/dist/format-Gd-3cUBL.js +250 -0
  307. package/dist/gateway-cli-Do3zXVoA.js +435 -0
  308. package/dist/gateway-method-runtime-3Bh2bCrI.js +21 -0
  309. package/dist/get-reply-fC2lq4Bn.js +4689 -0
  310. package/dist/get-reply-from-config.runtime-BPyCiEfV.js +2 -0
  311. package/dist/get-reply-from-config.runtime.js +1 -1
  312. package/dist/graph-users-CJlHYK21.js +1419 -0
  313. package/dist/group-access-DOGbhNxW.js +112 -0
  314. package/dist/handle-action.guild-admin-CdoddJ3u.js +288 -0
  315. package/dist/harness-B-nCy5CA.js +61 -0
  316. package/dist/health-DTO8sQYx.js +4 -0
  317. package/dist/health-state-D8_oJguq.js +106 -0
  318. package/dist/heartbeat-runner-CyGiZsj3.js +5 -0
  319. package/dist/heartbeat-runner.runtime-D1dYoxzx.js +4 -0
  320. package/dist/heartbeat-runner.runtime.js +1 -1
  321. package/dist/hooks-DlPF6dZs.js +534 -0
  322. package/dist/inbound-direct-dm-runtime-DAejzdQq.js +2 -0
  323. package/dist/inbound-reply-dispatch-ccCfh5JF.js +148 -0
  324. package/dist/index.js +1 -1
  325. package/dist/init-DzayFaI9.js +59 -0
  326. package/dist/inline-buttons-6SL2p5Vu.js +40 -0
  327. package/dist/internal-events-CAA5utUP.js +90 -0
  328. package/dist/isolated-agent-B95d6tII.js +2 -0
  329. package/dist/isolated-agent-BAkur-kh.js +1118 -0
  330. package/dist/lifecycle-OYEvGSs_.js +571 -0
  331. package/dist/list.probe-D6_5AksK.js +449 -0
  332. package/dist/list.status-command-f0dAuxjW.js +789 -0
  333. package/dist/llm-slug-generator-DzjXXHiO.js +78 -0
  334. package/dist/llm-slug-generator.js +1 -1
  335. package/dist/local-dispatch.runtime-DE2f2WAa.js +9 -0
  336. package/dist/local-dispatch.runtime.js +1 -1
  337. package/dist/manager.runtime-DoBAFZ8r.js +2714 -0
  338. package/dist/manager.runtime.js +1 -1
  339. package/dist/markdown-to-line-DTEs6hVv.js +811 -0
  340. package/dist/mcp-http-CgKbc-pc.js +555 -0
  341. package/dist/mcp-http-x6Cwd0Yu.js +2 -0
  342. package/dist/media-understanding-provider-Bt2HA6p3.js +339 -0
  343. package/dist/message-actions-B7JwvxAS.js +145 -0
  344. package/dist/message-handler-BmkNxRDD.js +384 -0
  345. package/dist/message-handler-BsTTww09.js +1715 -0
  346. package/dist/message-handler.preflight-UPPmUa3q.js +1125 -0
  347. package/dist/message-handler.process-D0yb6UtD.js +1484 -0
  348. package/dist/model-j0YMhzJy.js +74 -0
  349. package/dist/model-selection-26YSj6pz.js +272 -0
  350. package/dist/models-BWABpoiz.js +104 -0
  351. package/dist/models-K85k5nnr.js +2 -0
  352. package/dist/models-cli-C7bbgiRD.js +256 -0
  353. package/dist/monitor-B6yOuR2r.js +834 -0
  354. package/dist/monitor-CIFjlXVi.js +60 -0
  355. package/dist/monitor-CWaPk_7V.js +1370 -0
  356. package/dist/monitor-Cs9Lo6bb.js +715 -0
  357. package/dist/monitor-DC_WFeow.js +4377 -0
  358. package/dist/monitor-Db2Zsmky.js +2788 -0
  359. package/dist/monitor-ZJLxyo1m.js +1657 -0
  360. package/dist/monitor-auth-9lbTrakT.js +179 -0
  361. package/dist/monitor-gMuNdFNL.js +2 -0
  362. package/dist/monitor-polling.runtime-rd2B_RoJ.js +883 -0
  363. package/dist/monitor-polling.runtime.js +1 -1
  364. package/dist/monitor-webhook.runtime-YytBaFht.js +387 -0
  365. package/dist/monitor-webhook.runtime.js +1 -1
  366. package/dist/monitor.account-CSzuEIqT.js +5233 -0
  367. package/dist/monitor.runtime-BiN5yYq0.js +2 -0
  368. package/dist/monitor.runtime.js +1 -1
  369. package/dist/monitor.webhook-DK1oH0sg.js +180 -0
  370. package/dist/node-cli-sessions-CRp1n9U4.js +1228 -0
  371. package/dist/openai-http-qVcPqpQN.js +824 -0
  372. package/dist/openresponses-http-BxeU2OF4.js +1173 -0
  373. package/dist/operations-Pr0GlIYC.js +805 -0
  374. package/dist/outbound-adapter-BaBC-WXA.js +543 -0
  375. package/dist/outbound-session-route-51WiyntM.js +45 -0
  376. package/dist/outbound.runtime-Drn1outO.js +2 -0
  377. package/dist/outbound.runtime.js +1 -1
  378. package/dist/pi-embedded-B2Z84wpp.js +3796 -0
  379. package/dist/pi-embedded-WaRss8a7.js +4 -0
  380. package/dist/pi-embedded.runtime-BXtJQU5L.js +4 -0
  381. package/dist/pi-embedded.runtime.js +1 -1
  382. package/dist/pi-tools--L-L_5qV.js +2413 -0
  383. package/dist/plan-C9P_Zx9I.js +81 -0
  384. package/dist/plan-DvGesBjU.js +112 -0
  385. package/dist/plugin-C946oTpr.js +12396 -0
  386. package/dist/plugin-app-cache-key-CA3Fk_MS.js +46 -0
  387. package/dist/plugin-enabled-Dl21DFci.js +233 -0
  388. package/dist/plugin-registration-M8OrW2uL.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-Dii4hVsM.js +1229 -0
  417. package/dist/plugins/runtime/index.js +4 -4
  418. package/dist/policy-BK63POC5.js +138 -0
  419. package/dist/policy-BVF5IwsA.js +680 -0
  420. package/dist/postinstall-inventory.json +485 -485
  421. package/dist/prepare.runtime-C4MmUS7q.js +732 -0
  422. package/dist/prepare.runtime.js +1 -1
  423. package/dist/preview-warnings-BzWg6XZO.js +392 -0
  424. package/dist/probe-BlRrdfJI.js +47 -0
  425. package/dist/probe-BmRhtWLq.js +2204 -0
  426. package/dist/probe-DM8yRYcU.js +2 -0
  427. package/dist/probe-ejeGnKS6.js +682 -0
  428. package/dist/program-BBjSDxOK.js +131 -0
  429. package/dist/provider-BQqi3nak.js +8735 -0
  430. package/dist/provider-CAW13htM.js +32 -0
  431. package/dist/provider-DToIle9H.js +152 -0
  432. package/dist/provider-dispatcher-DqZ7i_rd.js +22 -0
  433. package/dist/provider-dispatcher.runtime.js +1 -1
  434. package/dist/provider-qnh6YFNd.js +32 -0
  435. package/dist/provider-session.runtime-DMjJXSkF.js +9 -0
  436. package/dist/provider-session.runtime.js +1 -1
  437. package/dist/provider.runtime-D4ZzNUfo.js +2 -0
  438. package/dist/provider.runtime.js +1 -1
  439. package/dist/public-surface-loader-COAaBDuY.js +114 -0
  440. package/dist/pw-ai-4Dk5FtCe.js +3029 -0
  441. package/dist/pw-role-snapshot-CuQzm5NK.js +333 -0
  442. package/dist/reaction-level-ZgH5HPmP.js +19 -0
  443. package/dist/reaction-runtime-api-lrZlU8Ab.js +116 -0
  444. package/dist/realtime-transcription-provider-Ai-XHtXs.js +205 -0
  445. package/dist/register-CDhBb-x0.js +2178 -0
  446. package/dist/register.agent-DBiFgnVA.js +156 -0
  447. package/dist/register.crestodian-BxWP7RD3.js +24 -0
  448. package/dist/register.maintenance-CnCvd-hk.js +83 -0
  449. package/dist/register.runtime-CihNYXEU.js +54 -0
  450. package/dist/register.status-health-sessions-B0aNyEHy.js +282 -0
  451. package/dist/register.subclis-CLGUU8xn.js +31 -0
  452. package/dist/register.subclis-DwHGcc-o.js +3 -0
  453. package/dist/register.subclis-core-BtmmMq6c.js +273 -0
  454. package/dist/repair-sequencing-BjZ6HdVL.js +640 -0
  455. package/dist/reply-delivery-7xtGUhB9.js +196 -0
  456. package/dist/reply-runtime-Bts14dIE.js +11 -0
  457. package/dist/reply.runtime-BPyCiEfV.js +2 -0
  458. package/dist/reply.runtime.js +1 -1
  459. package/dist/request-CXg-P0JT.js +54 -0
  460. package/dist/resolve-allowlist-DFQmlgMw.js +220 -0
  461. package/dist/result-fallback-classifier-zyED1xtr.js +79 -0
  462. package/dist/route-C_y4jDQj.js +469 -0
  463. package/dist/route-resolution-Ds3w61Lx.js +274 -0
  464. package/dist/routes-CTG90Mv3.js +2 -0
  465. package/dist/routes-CxTVR0cX.js +3602 -0
  466. package/dist/run-DkpOzywN.js +1162 -0
  467. package/dist/run-attempt-C8drUXdL.js +7704 -0
  468. package/dist/run-command-BFRAg7du.js +23 -0
  469. package/dist/run-command-DdJMIAJV.js +2 -0
  470. package/dist/run-embedded.runtime-LQMkpF2y.js +4 -0
  471. package/dist/run-embedded.runtime.js +1 -1
  472. package/dist/run-execution-cli.runtime-0FeH38Px.js +4 -0
  473. package/dist/run-execution-cli.runtime.js +1 -1
  474. package/dist/run-executor.runtime.js +1 -1
  475. package/dist/run-subagent-registry.runtime-DpPQTC66.js +2 -0
  476. package/dist/run-subagent-registry.runtime.js +1 -1
  477. package/dist/runtime-B3ogObAE.js +438 -0
  478. package/dist/runtime-CPmMLEBj.js +1287 -0
  479. package/dist/runtime-CiJ6IGJc.js +6179 -0
  480. package/dist/runtime-api-BIeJjKVB.js +13 -0
  481. package/dist/runtime-api-BWSHkISv.js +3 -0
  482. package/dist/runtime-api-C2HmJspc.js +13 -0
  483. package/dist/runtime-api-C4WThy-0.js +24 -0
  484. package/dist/runtime-api-CTym-WGW.js +21 -0
  485. package/dist/runtime-api-QSTydHlX.js +17 -0
  486. package/dist/runtime-api-XBWYmn8F.js +4 -0
  487. package/dist/runtime-api.actions-bGxji7I2.js +3 -0
  488. package/dist/runtime-api.monitor-e7p7IfH1.js +6 -0
  489. package/dist/runtime-api.send-COhoRdi6.js +4 -0
  490. package/dist/runtime-api.threads-DFYlu1e-.js +2 -0
  491. package/dist/runtime-channel-CUJifY4W.js +2 -0
  492. package/dist/runtime-channel-CZWoqFu0.js +150 -0
  493. package/dist/runtime-embedded-pi.runtime-BIxr-MBr.js +2 -0
  494. package/dist/runtime-embedded-pi.runtime.js +1 -1
  495. package/dist/sanitize-outbound-DS3EW4FZ.js +127 -0
  496. package/dist/sdk-setup-tools-Dbu0ISil.js +8 -0
  497. package/dist/secrets-B2FsNqik.js +113 -0
  498. package/dist/security-audit-7dSJt583.js +118 -0
  499. package/dist/security-audit-C7nv2f1p.js +122 -0
  500. package/dist/security-audit.runtime-BjFxH4oO.js +2 -0
  501. package/dist/security-audit.runtime.js +1 -1
  502. package/dist/selection-CNuMWlGI.js +3 -0
  503. package/dist/selection-DSrTbfdV.js +16157 -0
  504. package/dist/send-Bt7s80wR.js +143 -0
  505. package/dist/send-CinwCGAp.js +1631 -0
  506. package/dist/send-Dhc5pazQ.js +192 -0
  507. package/dist/send-Dz6aPmRx.js +2 -0
  508. package/dist/send.components-C6Vc715w.js +2 -0
  509. package/dist/send.components-CZQvbNpy.js +500 -0
  510. package/dist/send.runtime-DjcCJNHz.js +2 -0
  511. package/dist/send.runtime.js +1 -1
  512. package/dist/server-C7zyrFv9.js +73 -0
  513. package/dist/server-DP_Qxv9p.js +24 -0
  514. package/dist/server-close.runtime.js +1 -1
  515. package/dist/server-context-9btqwxTM.js +2 -0
  516. package/dist/server-context-BWN2z4-J.js +955 -0
  517. package/dist/server-cron-ClWdOpAE.js +2989 -0
  518. package/dist/server-cron-DUfOPQkW.js +2 -0
  519. package/dist/server-maintenance-B4tgrBO5.js +167 -0
  520. package/dist/server-methods-BM3XCIWG.js +16494 -0
  521. package/dist/server-node-events-BUL_qMQZ.js +596 -0
  522. package/dist/server-plugin-bootstrap-D8ECRLtf.js +70 -0
  523. package/dist/server-plugins-ClApYARY.js +432 -0
  524. package/dist/server-reload-handlers-BsTBOEdp.js +714 -0
  525. package/dist/server-restart-sentinel-7LRUDz6N.js +2 -0
  526. package/dist/server-restart-sentinel-DTf-yNzJ.js +747 -0
  527. package/dist/server-runtime-services-3hlgWAb8.js +2 -0
  528. package/dist/server-runtime-services-D4epI5_k.js +267 -0
  529. package/dist/server-startup-early-C_ZWIblP.js +87 -0
  530. package/dist/server-startup-plugins-v2iGMqTe.js +113 -0
  531. package/dist/server-startup-post-attach-CNe0QrNc.js +716 -0
  532. package/dist/server-ws-runtime-hH14LVjT.js +349 -0
  533. package/dist/server.impl-VrV1FexC.js +2586 -0
  534. package/dist/service-CLQYUJAj.js +1446 -0
  535. package/dist/session-binding-B8dvxX2y.js +2 -0
  536. package/dist/session-binding-C2GrKek4.js +219 -0
  537. package/dist/session-kill-http-hFb4-8bg.js +121 -0
  538. package/dist/session-reset-service-CnDZw4-5.js +625 -0
  539. package/dist/session-route-D1tSy-VJ.js +93 -0
  540. package/dist/session-status.runtime-BdpmXmcH.js +2 -0
  541. package/dist/session-status.runtime.js +1 -1
  542. package/dist/session-subagent-reactivation.runtime-DUrd5FpN.js +2 -0
  543. package/dist/session-subagent-reactivation.runtime.js +1 -1
  544. package/dist/session-tab-registry-DRhbHQEm.js +521 -0
  545. package/dist/sessions-history-http-D2K0mGDk.js +430 -0
  546. package/dist/sessions.runtime-CfWr4fEQ.js +2 -0
  547. package/dist/sessions.runtime.js +1 -1
  548. package/dist/setup-api-COkXH76p.js +29 -0
  549. package/dist/setup-core-BdWBmyOC.js +174 -0
  550. package/dist/setup-surface-BV6Wc_S1.js +405 -0
  551. package/dist/setup-surface-CXqLNgjz.js +221 -0
  552. package/dist/setup-surface-Dl-mS95G.js +288 -0
  553. package/dist/setup-surface-Dn-hYgTO.js +320 -0
  554. package/dist/shared-client-BAvec-HA.js +2 -0
  555. package/dist/shared-client-Bk01En7M.js +629 -0
  556. package/dist/shared-soPxo6JL.js +121 -0
  557. package/dist/side-question-BAXAMJru.js +683 -0
  558. package/dist/skill-tool-dispatch.runtime-DaMjMQII.js +143 -0
  559. package/dist/skill-tool-dispatch.runtime.js +1 -1
  560. package/dist/slash-state-BZ06y0To.js +2166 -0
  561. package/dist/speech-provider-DwB37Ie_.js +184 -0
  562. package/dist/src-BsqijqVt.js +4256 -0
  563. package/dist/startup-context-CFODg9YM.js +313 -0
  564. package/dist/status-D3n01dp5.js +4 -0
  565. package/dist/status-DbZB702Q.js +3 -0
  566. package/dist/status-all-CCV1CGJz.js +573 -0
  567. package/dist/status-json-DZAKQD2Y.js +14 -0
  568. package/dist/status-json-command-BSE_pTG-.js +84 -0
  569. package/dist/status-runtime-shared-CKt3t6sE.js +283 -0
  570. package/dist/status-subagents.runtime-YuzmENDp.js +18 -0
  571. package/dist/status-subagents.runtime.js +1 -1
  572. package/dist/status-text-D9Zi8UnO.js +296 -0
  573. package/dist/status.command-CBTSvOW1.js +420 -0
  574. package/dist/status.command-CBnJpuXq.js +2 -0
  575. package/dist/status.command.text-runtime-VNORbsBS.js +15 -0
  576. package/dist/status.scan-BMinf8AZ.js +68 -0
  577. package/dist/status.scan-overview-B6kfuktS.js +444 -0
  578. package/dist/status.scan.fast-json-CRT_aiEX.js +2 -0
  579. package/dist/status.scan.fast-json-DmoXxjwC.js +127 -0
  580. package/dist/status.scan.runtime-mccN052p.js +479 -0
  581. package/dist/status.scan.runtime.js +1 -1
  582. package/dist/status.update-DAbNKHAA.js +86 -0
  583. package/dist/status.update-Dj_UDfud.js +2 -0
  584. package/dist/sticker-cache-B_K5GK1F.js +206 -0
  585. package/dist/sticker-vision.runtime-CLXVetAJ.js +17 -0
  586. package/dist/sticker-vision.runtime.js +1 -1
  587. package/dist/subagent-announce-CYVKLzpF.js +354 -0
  588. package/dist/subagent-announce-delivery-DGlpzYtu.js +958 -0
  589. package/dist/subagent-control-DdpvJydn.js +508 -0
  590. package/dist/subagent-hooks-CJ38n1yI.js +116 -0
  591. package/dist/subagent-hooks-CM8d7uom.js +230 -0
  592. package/dist/subagent-hooks-CWXgYgeR.js +2 -0
  593. package/dist/subagent-hooks-ChZlZfOE.js +146 -0
  594. package/dist/subagent-hooks-CsHFqBnn.js +2 -0
  595. package/dist/subagent-hooks-J6Z1owZi.js +2 -0
  596. package/dist/subagent-hooks-api-C6FcvHTT.js +23 -0
  597. package/dist/subagent-hooks-api-Cjv3KxcX.js +23 -0
  598. package/dist/subagent-hooks-api-DWfQ0N2_.js +22 -0
  599. package/dist/subagent-orphan-recovery-C2iu65pp.js +352 -0
  600. package/dist/subagent-registry-C__l22X7.js +2351 -0
  601. package/dist/subagent-registry-DsGh1uuc.js +3 -0
  602. package/dist/subagent-registry.runtime.js +1 -1
  603. package/dist/subagent-session-cleanup-BJK0KFuz.js +525 -0
  604. package/dist/subagent-spawn-xX_hbBgM.js +1164 -0
  605. package/dist/target-id-BcuunvtM.js +107 -0
  606. package/dist/targets-BgRpAISD.js +19 -0
  607. package/dist/targets-BynqpysF.js +19 -0
  608. package/dist/targets-noUOYK7d.js +44 -0
  609. package/dist/task-registry-control.runtime.js +1 -1
  610. package/dist/telegram/token.js +1 -1
  611. package/dist/test-fixtures-HY6a4nTW.d.ts +26 -0
  612. package/dist/testing-B0wf2Ir6.js +267 -0
  613. package/dist/text-report-DK79dOC4.js +695 -0
  614. package/dist/thread-bindings-BQal3jZo.js +8 -0
  615. package/dist/thread-bindings-BfMLiM2l.js +228 -0
  616. package/dist/thread-bindings-DJ8RMaTI.js +571 -0
  617. package/dist/thread-bindings-nJ5yQbn5.js +232 -0
  618. package/dist/thread-bindings.discord-api-Cy9zlCKJ.js +187 -0
  619. package/dist/thread-bindings.manager-BN6EeBr_.js +536 -0
  620. package/dist/thread-bindings.manager-REfgswjE.js +2 -0
  621. package/dist/thread-lifecycle-Di28EHnZ.js +1614 -0
  622. package/dist/token-CkH7nFWY.js +134 -0
  623. package/dist/tool-DqzQ3obs.js +139 -0
  624. package/dist/tool-actions.runtime--jhK-xmj.js +534 -0
  625. package/dist/tool-actions.runtime.js +1 -1
  626. package/dist/tool-resolution-D1-4S4j9.js +149 -0
  627. package/dist/tools-effective-inventory-JOMz2Ra6.js +204 -0
  628. package/dist/tools-invoke-http-C9N441MA.js +67 -0
  629. package/dist/tools-invoke-shared-DfSLo2Tr.js +200 -0
  630. package/dist/tts-DAeWj9Bb.js +66 -0
  631. package/dist/tui-CTCn5piF.js +4709 -0
  632. package/dist/tui-backend-By5bSm4p.js +256 -0
  633. package/dist/tui-cli-DTPrRo4_.js +37 -0
  634. package/dist/tui-t_WAdGfV.js +2 -0
  635. package/dist/typed-cases-D8uyQEzR.d.ts +68 -0
  636. package/dist/update-check-Dvu5Z_Jp.js +407 -0
  637. package/dist/update-cli-Bd5_MzQC.js +3664 -0
  638. package/dist/update-runner-B8GJeQ12.js +2390 -0
  639. package/dist/update-startup-B86---uS.js +2 -0
  640. package/dist/update-startup-C2tCNZ7v.js +339 -0
  641. package/dist/vision-tools-mjhp5ZJQ.js +1409 -0
  642. package/dist/web-search-DznJdih_.js +62 -0
  643. package/dist/web-search-provider.runtime-CbIP4C_P.js +328 -0
  644. package/dist/web-search-provider.runtime-D74o1ayv.js +2 -0
  645. package/dist/web-search-provider.runtime.js +1 -1
  646. package/dist/xai-oauth-B2dU9w_h.js +479 -0
  647. package/dist/xai-user-agent-CD1kt9ys.js +32 -0
  648. package/package.json +1 -1
  649. package/dist/abort-DbmSukS6.js +0 -277
  650. package/dist/abort.runtime-DfTphPUe.js +0 -2
  651. package/dist/account-inspect-CrOeeGkg.js +0 -173
  652. package/dist/accounts-CF5wlCaC.js +0 -119
  653. package/dist/accounts-CfFTGexZ.js +0 -107
  654. package/dist/accounts-Cr9iBKG5.js +0 -2
  655. package/dist/accounts-DdAZRSd-.js +0 -107
  656. package/dist/acp-runtime-B1CfWEsR.js +0 -26
  657. package/dist/acp-spawn-Bq8RHmXn.js +0 -1275
  658. package/dist/acp-spawn-BxyX0qDU.js +0 -2
  659. package/dist/acp-stateful-target-driver-y9Vk9ZkZ.js +0 -89
  660. package/dist/action-kill-Xr3eQUBu.js +0 -33
  661. package/dist/action-runtime-CweBFa8U.js +0 -469
  662. package/dist/action-runtime-api-DZY1J62H.js +0 -2
  663. package/dist/action-send-HdOQtFcz.js +0 -39
  664. package/dist/action-spawn-DWrPplrX.js +0 -47
  665. package/dist/actions-zZzXK7Ic.js +0 -161
  666. package/dist/actions.runtime-CK0aV6y4.js +0 -5
  667. package/dist/agent-command-DB0sppso.js +0 -1367
  668. package/dist/agent-components.runtime-Drdzm2-F.js +0 -10
  669. package/dist/agent-harness-CGtBwZh6.d.ts +0 -146
  670. package/dist/agent-harness-runtime-Btzminw9.js +0 -180
  671. package/dist/agent-harness-task-runtime-DWiDnwnT.js +0 -140
  672. package/dist/agent-nenZtwAX.js +0 -3
  673. package/dist/agent-runner-execution-Cun_PNBn.js +0 -1713
  674. package/dist/agent-runner-utils-BfF--s17.js +0 -266
  675. package/dist/agent-runner.runtime-vxDguHci.js +0 -3455
  676. package/dist/agent-runtime-C5xeqCn8.js +0 -229
  677. package/dist/agent-svdKN_62.js +0 -2
  678. package/dist/agent-via-gateway-DQa8cmBa.js +0 -463
  679. package/dist/api-BQxP3H11.js +0 -134
  680. package/dist/api-CT5SnVgO.js +0 -2
  681. package/dist/api-CtX70NwR.js +0 -2
  682. package/dist/api-CvUdFHq7.js +0 -6
  683. package/dist/api-DG9oHhm4.js +0 -639
  684. package/dist/api-DzfMdJ46.js +0 -3
  685. package/dist/apply-D8UoOoVD.js +0 -41
  686. package/dist/apply-DrHwBR1D.js +0 -54
  687. package/dist/approval-handler.runtime-CT8PWJ9W.js +0 -130
  688. package/dist/assistant-ByynDFnI.js +0 -291
  689. package/dist/attachment-normalize-DEAS_ziY.js +0 -225
  690. package/dist/attempt-execution-CQUmv8x2.js +0 -558
  691. package/dist/attempt-execution.runtime-AZYQQuAv.js +0 -3
  692. package/dist/attempt-execution.shared-2ZOaCHct.js +0 -38
  693. package/dist/attempt.prompt-helpers-B7ano4Xa.js +0 -475
  694. package/dist/attempt.tool-run-context-DBta4Vhq.js +0 -2094
  695. package/dist/binding-routing-DYUUioo1.js +0 -113
  696. package/dist/binding-targets-DthC_zAF.js +0 -121
  697. package/dist/bot-CHP8Hnzo.js +0 -7894
  698. package/dist/bot-deps-CLDgPV_x.js +0 -747
  699. package/dist/bot-deps-W9zVbYpY.js +0 -2
  700. package/dist/bot-message-context.runtime-B1-gGjAv.js +0 -7
  701. package/dist/bot-message-context.session.runtime-DUtlPLJq.js +0 -12
  702. package/dist/bot-native-commands.delivery.runtime-B2_Sb8-0.js +0 -4
  703. package/dist/bot-native-commands.runtime-pplrKHcn.js +0 -13
  704. package/dist/bridge-server-Du_qnIXr.js +0 -113
  705. package/dist/browser-cli-B2-Lzvd1.js +0 -230
  706. package/dist/browser-cli-actions-input-ZF6YYuIY.js +0 -473
  707. package/dist/browser-cli-actions-observe-DWLHFME1.js +0 -81
  708. package/dist/browser-cli-bTjCd41u.js +0 -2
  709. package/dist/browser-cli-debug-lzd4l2hl.js +0 -137
  710. package/dist/browser-cli-inspect-C5OnFKqx.js +0 -104
  711. package/dist/browser-cli-manage-BofwSOgU.js +0 -443
  712. package/dist/browser-cli-resize-CLs1i6Nu.js +0 -26
  713. package/dist/browser-cli-shared-6Jygx3GN.js +0 -50
  714. package/dist/browser-cli-state-BdoHl8ny.js +0 -337
  715. package/dist/browser-control-auth-DuI4vfIv.js +0 -2
  716. package/dist/browser-profiles-DkblgTjb.js +0 -2
  717. package/dist/browser-runtime-BiJKNDAE.js +0 -384
  718. package/dist/build-CrC0bToI.js +0 -257
  719. package/dist/capability-cli-BHlS8tBg.js +0 -1782
  720. package/dist/channel-5iqpbW6B.js +0 -867
  721. package/dist/channel-BW3tbxJQ.js +0 -1496
  722. package/dist/channel-BWo67yh1.js +0 -2126
  723. package/dist/channel-BdhbzWTg.d.ts +0 -427
  724. package/dist/channel-BsDZhXfM.js +0 -362
  725. package/dist/channel-C95y8CWt.js +0 -1556
  726. package/dist/channel-CMKGn1i6.js +0 -376
  727. package/dist/channel-CMUiDCTQ.js +0 -740
  728. package/dist/channel-CNvxy1bb.js +0 -808
  729. package/dist/channel-CQzh6Wn1.js +0 -653
  730. package/dist/channel-CchnfGMs.js +0 -481
  731. package/dist/channel-CjWH9zRX.js +0 -1777
  732. package/dist/channel-CjZoZfa2.js +0 -238
  733. package/dist/channel-DKHlpUHA.js +0 -1134
  734. package/dist/channel-DhZvHOpE.js +0 -562
  735. package/dist/channel-DtL_IvqV.js +0 -508
  736. package/dist/channel-GdNHqdaw.js +0 -1249
  737. package/dist/channel-ZkqVX5SL.js +0 -955
  738. package/dist/channel-actions.runtime-DYiOBQDx.js +0 -265
  739. package/dist/channel-core-CiUQ9zxC.js +0 -5
  740. package/dist/channel-inbound-Ctv6wSJ3.js +0 -80
  741. package/dist/channel-plugin-runtime-CgGpeLjf.js +0 -998
  742. package/dist/channel-runtime-CPbfvG0l.js +0 -408
  743. package/dist/channel.runtime-5ebeoN8j.js +0 -1008
  744. package/dist/channel.runtime-B2Olk7LG.js +0 -4
  745. package/dist/channel.runtime-B4CnXDGx.js +0 -652
  746. package/dist/channel.runtime-BzLoF_dR.js +0 -21009
  747. package/dist/channel.runtime-CNCIcAd6.js +0 -109
  748. package/dist/channel.runtime-C_--rR-H.js +0 -88
  749. package/dist/channel.runtime-CmK77Uxp.js +0 -254
  750. package/dist/channel.runtime-DF5K3pkO.js +0 -2528
  751. package/dist/channel.runtime-iKNOt2eM.js +0 -733
  752. package/dist/channel.setup-CxvbmJQ2.js +0 -343
  753. package/dist/channel.setup-CzdDnMh7.js +0 -1098
  754. package/dist/channel.setup-Sku9g-22.js +0 -10
  755. package/dist/chat-BV-WLur6.js +0 -2666
  756. package/dist/chrome-CBr1Nlj5.js +0 -1503
  757. package/dist/cli-compaction-CzfXx99c.js +0 -347
  758. package/dist/cli-lsMRD5BD.js +0 -1341
  759. package/dist/cli-metadata-Cpdwx3O7.js +0 -22
  760. package/dist/cli-runner-DFh20BoX.js +0 -2
  761. package/dist/cli-runner-DjgUGfBa.js +0 -540
  762. package/dist/cli-runner.runtime-Cjd2VdQI.js +0 -3
  763. package/dist/cli-runner.runtime-uAtVtWM7.js +0 -4
  764. package/dist/client-D-yT6rne.js +0 -650
  765. package/dist/client-adapter-PXk4JoQR.js +0 -897
  766. package/dist/client-factory-C9zVXY0y.js +0 -9
  767. package/dist/command-auth-PrmmYdot.js +0 -135
  768. package/dist/command-handlers-DuHt0qVp.js +0 -1609
  769. package/dist/command-registry-B_v8R74Z.js +0 -4
  770. package/dist/command-registry-QvQgQxqT.js +0 -9
  771. package/dist/command-registry-core-dLVpK66o.js +0 -110
  772. package/dist/command-status.runtime-DM3aUyTe.js +0 -90
  773. package/dist/commands-acp-DzUZwawt.js +0 -74
  774. package/dist/commands-compact.runtime-B6-Vv1CH.js +0 -10
  775. package/dist/commands-handlers.runtime-CaTYrYbd.js +0 -6154
  776. package/dist/commands-status-NuvnoSL-.js +0 -16
  777. package/dist/commands-status-SMWi-mj9.js +0 -3
  778. package/dist/commands-status.runtime-SMWi-mj9.js +0 -3
  779. package/dist/commands-subagents-control.runtime-Cm9cxI8S.js +0 -2
  780. package/dist/commands-subagents-control.runtime-e7gSoCXL.js +0 -3
  781. package/dist/commands-system-prompt-C9pVUDbu.js +0 -162
  782. package/dist/commands-system-prompt-JP4vOPVK.js +0 -2
  783. package/dist/commands.runtime-Dg6eg0rn.js +0 -176
  784. package/dist/compact-B2rH1SUd.js +0 -480
  785. package/dist/compact-D80suJg8.js +0 -1141
  786. package/dist/compact.runtime-D8nzDxmY.js +0 -12
  787. package/dist/completion-cli-DWxWi4aD.js +0 -315
  788. package/dist/computer-use-BGvZ1YTf.js +0 -367
  789. package/dist/config-DV-fdSq3.js +0 -373
  790. package/dist/config-DkblgTjb.js +0 -2
  791. package/dist/config-mutations-DsTp_oTJ.js +0 -159
  792. package/dist/context-engine-host-compat-BwIxzf7F.js +0 -2
  793. package/dist/context-engine-host-compat-CXhSw3Ub.js +0 -288
  794. package/dist/context-engine-lifecycle-CxxoOuT8.js +0 -1274
  795. package/dist/contracts-testkit-DQ4aMv6G.d.ts +0 -145
  796. package/dist/control-auth-Bb_hAwJF.js +0 -114
  797. package/dist/control-service-Dom28xYt.js +0 -145
  798. package/dist/control-ui/assets/agents-DMJErItb.js +0 -1008
  799. package/dist/control-ui/assets/channel-config-extras-CQFogyHL.js +0 -2
  800. package/dist/control-ui/assets/channels-COmQ5bEJ.js +0 -367
  801. package/dist/control-ui/assets/cron-BgDiOtPq.js +0 -1013
  802. package/dist/control-ui/assets/debug-CP7KL8PI.js +0 -97
  803. package/dist/control-ui/assets/index-CFimN7fp.js +0 -7406
  804. package/dist/control-ui/assets/instances-T40R2Roq.js +0 -57
  805. package/dist/control-ui/assets/logs-DSytJgRv.js +0 -74
  806. package/dist/control-ui/assets/nodes-BITxG1S6.js +0 -436
  807. package/dist/control-ui/assets/sessions-DzUKWCNC.js +0 -399
  808. package/dist/control-ui/assets/skills-CKgzk-rT.js +0 -314
  809. package/dist/control-ui/assets/skills-shared-B3UBasm_.js +0 -11
  810. package/dist/conversation-binding-runtime-BXeidhrY.js +0 -4
  811. package/dist/conversation-runtime-Das7yftQ.js +0 -31
  812. package/dist/core-AxrxO8_x.js +0 -282
  813. package/dist/core-api-BL4BNR1C.js +0 -5
  814. package/dist/core-api-Bnc3J2fe.js +0 -2
  815. package/dist/crestodian-CnfWHGFm.js +0 -55
  816. package/dist/daocore-tools-C1WpZGCu.js +0 -11727
  817. package/dist/delivery--FvYHWJO.js +0 -1002
  818. package/dist/dialogue-B40qxVGM.js +0 -37
  819. package/dist/dir-fetch-tool-fbOAtLfN.js +0 -565
  820. package/dist/dir-list-tool-BQ3k3hKf.js +0 -100
  821. package/dist/direct-dm-CuNsmrdk.js +0 -64
  822. package/dist/directive-handling.fast-lane-CQYYvYi_.js +0 -68
  823. package/dist/directive-handling.impl-DoLFcRUI.js +0 -2
  824. package/dist/directive-handling.impl-RsdNckR4.js +0 -818
  825. package/dist/directive-handling.model-selection-Ad4n0BBf.js +0 -122
  826. package/dist/directive-handling.persist.runtime-Dq8SQvB4.js +0 -263
  827. package/dist/dispatch-Bmw9mO6a.js +0 -1640
  828. package/dist/dispatch-acp-transcript.runtime-B7DKK79t.js +0 -40
  829. package/dist/dispatch-acp.runtime-cVH58wGq.js +0 -18
  830. package/dist/doctor-HffoL5ik.js +0 -6
  831. package/dist/doctor-Qg1Gj0PC.js +0 -2
  832. package/dist/doctor-config-flow-Dudp0oO_.js +0 -1741
  833. package/dist/doctor-core-checks-BTvmehLq.js +0 -573
  834. package/dist/doctor-core-checks-CcacCMGd.js +0 -2
  835. package/dist/doctor-health-DIu25ot8.js +0 -65
  836. package/dist/doctor-health-contributions-ZQUAiwng.js +0 -696
  837. package/dist/doctor-lint-C8RjoIYq.js +0 -94
  838. package/dist/doctor-state-integrity-D5NJcM0t.js +0 -1231
  839. package/dist/doctor-update-07o96Num.js +0 -58
  840. package/dist/dynamic-tools-BSIfb0RP.js +0 -486
  841. package/dist/embedded-backend-499B1IIV.js +0 -579
  842. package/dist/embedded-gateway-stub.runtime-Bqr2Z4Co.js +0 -12
  843. package/dist/exec-approvals-ClTqhSd7.js +0 -149
  844. package/dist/file-fetch-tool-CJu8umi9.js +0 -124
  845. package/dist/file-write-tool-Dz49CI0K.js +0 -127
  846. package/dist/format-DBhooCE7.js +0 -1145
  847. package/dist/format-DCronAhx.js +0 -250
  848. package/dist/gateway-cli-D21vxek0.js +0 -435
  849. package/dist/gateway-method-runtime-qsRZHdfx.js +0 -21
  850. package/dist/get-reply-D140C4TM.js +0 -4689
  851. package/dist/get-reply-from-config.runtime-CaM7M0Zp.js +0 -2
  852. package/dist/graph-users-cBY7anTM.js +0 -1419
  853. package/dist/group-access-CZOQhsjs.js +0 -112
  854. package/dist/handle-action.guild-admin-DjuZqjM2.js +0 -288
  855. package/dist/harness-XL58LNpX.js +0 -61
  856. package/dist/health-CFPXXpFW.js +0 -4
  857. package/dist/health-state-Bp0DOLCD.js +0 -106
  858. package/dist/heartbeat-runner-D_o-itnk.js +0 -5
  859. package/dist/heartbeat-runner.runtime-CPVGa3Gd.js +0 -4
  860. package/dist/hooks-Bx3n6o-5.js +0 -534
  861. package/dist/inbound-direct-dm-runtime-6nIJyODo.js +0 -2
  862. package/dist/inbound-reply-dispatch-CoeXQvL6.js +0 -148
  863. package/dist/init-C8Yc8LlO.js +0 -59
  864. package/dist/inline-buttons-BMPhhfsN.js +0 -40
  865. package/dist/internal-events-BS1EMi0C.js +0 -90
  866. package/dist/isolated-agent-Ct_AYfLb.js +0 -2
  867. package/dist/isolated-agent-DxVGoLjs.js +0 -1118
  868. package/dist/lifecycle-CGcqxM3V.js +0 -571
  869. package/dist/list.probe-R_AqbwD1.js +0 -449
  870. package/dist/list.status-command-DcaLppGJ.js +0 -789
  871. package/dist/llm-slug-generator-Bz1MaPt1.js +0 -78
  872. package/dist/local-dispatch.runtime-DnXAlwr7.js +0 -9
  873. package/dist/manager.runtime-1A0jFsbF.js +0 -2714
  874. package/dist/markdown-to-line-Gq4y1nH-.js +0 -811
  875. package/dist/mcp-http-BMgo3eu6.js +0 -2
  876. package/dist/mcp-http-BdgsyrHJ.js +0 -555
  877. package/dist/media-understanding-provider-CYrAwQ2G.js +0 -339
  878. package/dist/message-actions-DoFxM22K.js +0 -145
  879. package/dist/message-handler-CEvRtI9d.js +0 -384
  880. package/dist/message-handler-CJclaiC-.js +0 -1715
  881. package/dist/message-handler.preflight-DDVS50X3.js +0 -1125
  882. package/dist/message-handler.process-BuFXf8os.js +0 -1484
  883. package/dist/model-BqQrUk9a.js +0 -74
  884. package/dist/model-selection-2Lm1qMLE.js +0 -272
  885. package/dist/models-BjMdWXf2.js +0 -104
  886. package/dist/models-cli-RRK90p8k.js +0 -256
  887. package/dist/models-wWhwx_am.js +0 -2
  888. package/dist/monitor-C7VAs-uK.js +0 -834
  889. package/dist/monitor-CezSJDeG.js +0 -60
  890. package/dist/monitor-Cnzchc9n.js +0 -2788
  891. package/dist/monitor-Dcvw55ky.js +0 -4377
  892. package/dist/monitor-DuxFMl7d.js +0 -715
  893. package/dist/monitor-DxrfxRZL.js +0 -2
  894. package/dist/monitor-auth-UPQgTP9Y.js +0 -179
  895. package/dist/monitor-fYdQKsGp.js +0 -1370
  896. package/dist/monitor-polling.runtime-Db4NoLLg.js +0 -883
  897. package/dist/monitor-wcLtLTfx.js +0 -1657
  898. package/dist/monitor-webhook.runtime-DAr7kRbV.js +0 -387
  899. package/dist/monitor.account-C1mUBkKA.js +0 -5233
  900. package/dist/monitor.runtime-Bqj8vHGY.js +0 -2
  901. package/dist/monitor.webhook-Ir3T5B1s.js +0 -180
  902. package/dist/node-cli-sessions-MBQKJyrs.js +0 -1228
  903. package/dist/openai-http-9jmQ2o9Z.js +0 -824
  904. package/dist/openresponses-http-C3-s16Dp.js +0 -1173
  905. package/dist/operations-C1hhf_yC.js +0 -805
  906. package/dist/outbound-adapter-C5zBbuVO.js +0 -543
  907. package/dist/outbound-session-route-Bq_utu59.js +0 -45
  908. package/dist/outbound.runtime-QHoe8EWX.js +0 -2
  909. package/dist/pi-embedded-6xH25qP-.js +0 -4
  910. package/dist/pi-embedded-CkcV64LR.js +0 -3796
  911. package/dist/pi-embedded.runtime-CKpyReN5.js +0 -4
  912. package/dist/pi-tools-BbGodehg.js +0 -2413
  913. package/dist/plan-B_EcRdNP.js +0 -112
  914. package/dist/plan-DmMZJkHt.js +0 -81
  915. package/dist/plugin-CjfnnqXb.js +0 -12396
  916. package/dist/plugin-app-cache-key-Dak7S3ax.js +0 -46
  917. package/dist/plugin-enabled-B9wCs568.js +0 -233
  918. package/dist/plugin-registration-B3AVf0Xj.js +0 -88
  919. package/dist/plugin-service-C2toP50L.js +0 -1229
  920. package/dist/policy-B5jHUD04.js +0 -138
  921. package/dist/policy-C7_EFtGD.js +0 -680
  922. package/dist/prepare.runtime-C41yGgw-.js +0 -732
  923. package/dist/preview-warnings-rfGY8dVy.js +0 -392
  924. package/dist/probe-B0eSVoSm.js +0 -682
  925. package/dist/probe-CqAGxL6l.js +0 -2
  926. package/dist/probe-DFyoiqiI.js +0 -2204
  927. package/dist/probe-hR0HWnET.js +0 -47
  928. package/dist/program-CD73-5Xj.js +0 -131
  929. package/dist/provider-B0ujadL5.js +0 -32
  930. package/dist/provider-BxR_JJXW.js +0 -152
  931. package/dist/provider-C9mKa8qP.js +0 -32
  932. package/dist/provider-DbGPdInL.js +0 -8735
  933. package/dist/provider-dispatcher-CGPKPaP5.js +0 -22
  934. package/dist/provider-session.runtime-DKkydJWv.js +0 -9
  935. package/dist/provider.runtime-ChrWUTdG.js +0 -2
  936. package/dist/public-surface-loader-CMOWVmyY.js +0 -114
  937. package/dist/pw-ai-mygsAPX7.js +0 -3029
  938. package/dist/pw-role-snapshot-7_IMuYRR.js +0 -333
  939. package/dist/reaction-level-DFUu127f.js +0 -19
  940. package/dist/reaction-runtime-api-6LQnr6q_.js +0 -116
  941. package/dist/realtime-transcription-provider-LrzigbIT.js +0 -205
  942. package/dist/register-B9TeJvXU.js +0 -2178
  943. package/dist/register.agent-o9BDHbH2.js +0 -156
  944. package/dist/register.crestodian-BOUP_Pon.js +0 -24
  945. package/dist/register.maintenance-BC83-YdR.js +0 -83
  946. package/dist/register.runtime-DSHYrjtd.js +0 -54
  947. package/dist/register.status-health-sessions-BrkNpe59.js +0 -282
  948. package/dist/register.subclis-BS5Lj5wU.js +0 -3
  949. package/dist/register.subclis-QQq9COp0.js +0 -31
  950. package/dist/register.subclis-core-DnNechJo.js +0 -273
  951. package/dist/repair-sequencing-CqjW4_hd.js +0 -640
  952. package/dist/reply-delivery-KRwW1tqL.js +0 -196
  953. package/dist/reply-runtime-SSrAwVeQ.js +0 -11
  954. package/dist/reply.runtime-CaM7M0Zp.js +0 -2
  955. package/dist/request-CatWtIoq.js +0 -54
  956. package/dist/resolve-allowlist-Dxe9wc_Y.js +0 -220
  957. package/dist/result-fallback-classifier-B3kvqc2o.js +0 -79
  958. package/dist/route-BPWKlRDB.js +0 -469
  959. package/dist/route-resolution-BhkvdIUP.js +0 -274
  960. package/dist/routes-BOmtNSeT.js +0 -2
  961. package/dist/routes-Cr9bRW8t.js +0 -3602
  962. package/dist/run-attempt-DWBeHRdc.js +0 -7704
  963. package/dist/run-command-DNNFNkbv.js +0 -23
  964. package/dist/run-command-Kp7LWkQv.js +0 -2
  965. package/dist/run-embedded.runtime-BxV8m38U.js +0 -4
  966. package/dist/run-execution-cli.runtime-B9I1oAEO.js +0 -4
  967. package/dist/run-subagent-registry.runtime-BIsbEmUD.js +0 -2
  968. package/dist/run-vAv9-st8.js +0 -1162
  969. package/dist/runtime-BXJM8M8F.js +0 -1287
  970. package/dist/runtime-BodO4UZT.js +0 -438
  971. package/dist/runtime-C_5j10Cp.js +0 -6179
  972. package/dist/runtime-api-BbNLHCZ5.js +0 -24
  973. package/dist/runtime-api-HUquGiJa.js +0 -4
  974. package/dist/runtime-api-I6ur4A1S.js +0 -17
  975. package/dist/runtime-api-MQL0v6n2.js +0 -13
  976. package/dist/runtime-api-a340pYdX.js +0 -13
  977. package/dist/runtime-api-g_pGO9f3.js +0 -21
  978. package/dist/runtime-api-hLSYbpGH.js +0 -3
  979. package/dist/runtime-api.actions-CawQ9WKM.js +0 -3
  980. package/dist/runtime-api.monitor-DN3P4USq.js +0 -6
  981. package/dist/runtime-api.send-BIA6QfVI.js +0 -4
  982. package/dist/runtime-api.threads-DYnc3Jvu.js +0 -2
  983. package/dist/runtime-channel-CYlRNrxR.js +0 -150
  984. package/dist/runtime-channel-Ci0dC0Tq.js +0 -2
  985. package/dist/runtime-embedded-pi.runtime-Wc_lZOzO.js +0 -2
  986. package/dist/sanitize-outbound-BFrYI8F4.js +0 -127
  987. package/dist/sdk-setup-tools-DLjnnh3Y.js +0 -8
  988. package/dist/secrets-DibHCqDz.js +0 -113
  989. package/dist/security-audit-CyMhUYN9.js +0 -122
  990. package/dist/security-audit-DAk0I2g8.js +0 -118
  991. package/dist/security-audit.runtime-DtdxZcEG.js +0 -2
  992. package/dist/selection-BJ2yQ0yh.js +0 -16157
  993. package/dist/selection-CJ3YNIjG.js +0 -3
  994. package/dist/send-Ar9e_pA3.js +0 -1631
  995. package/dist/send-BN-3u18j.js +0 -2
  996. package/dist/send-BYlEXkEO.js +0 -143
  997. package/dist/send-BusufuyP.js +0 -192
  998. package/dist/send.components-C3FzEyYz.js +0 -500
  999. package/dist/send.components-CMi7rcIs.js +0 -2
  1000. package/dist/send.runtime-D-nw3p-S.js +0 -2
  1001. package/dist/server-CJVI2gjZ.js +0 -24
  1002. package/dist/server-DZl7k4VX.js +0 -73
  1003. package/dist/server-context-BAAz3W-8.js +0 -2
  1004. package/dist/server-context-BLrLchWj.js +0 -955
  1005. package/dist/server-cron-CiyrI-WY.js +0 -2
  1006. package/dist/server-cron-CzhteL8F.js +0 -2989
  1007. package/dist/server-maintenance-CDfLZpYN.js +0 -167
  1008. package/dist/server-methods-DQ0gaIXu.js +0 -16494
  1009. package/dist/server-node-events-D1TywtBI.js +0 -596
  1010. package/dist/server-plugin-bootstrap-ByEZkPkc.js +0 -70
  1011. package/dist/server-plugins-CEZ-W7dG.js +0 -432
  1012. package/dist/server-reload-handlers-DDXJwZWE.js +0 -714
  1013. package/dist/server-restart-sentinel-C9l1iG1h.js +0 -747
  1014. package/dist/server-restart-sentinel-CyweyjEa.js +0 -2
  1015. package/dist/server-runtime-services-BQ08Hyco.js +0 -2
  1016. package/dist/server-runtime-services-BjKoAkjM.js +0 -267
  1017. package/dist/server-startup-early-Ctjir66B.js +0 -87
  1018. package/dist/server-startup-plugins-C_Y62xZe.js +0 -113
  1019. package/dist/server-startup-post-attach-DCAmn6Ct.js +0 -716
  1020. package/dist/server-ws-runtime-CvN63X_w.js +0 -349
  1021. package/dist/server.impl-yHI7jtXF.js +0 -2586
  1022. package/dist/service-mHxeSPC2.js +0 -1446
  1023. package/dist/session-binding-DtmTypDj.js +0 -2
  1024. package/dist/session-binding-xtRKSQOW.js +0 -219
  1025. package/dist/session-kill-http-GnTgzcvZ.js +0 -121
  1026. package/dist/session-reset-service-Bw6li9Te.js +0 -625
  1027. package/dist/session-route-D-PISLLo.js +0 -93
  1028. package/dist/session-status.runtime-jiGvxIDK.js +0 -2
  1029. package/dist/session-subagent-reactivation.runtime-B9QimjvS.js +0 -2
  1030. package/dist/session-tab-registry-BoqXuTYc.js +0 -521
  1031. package/dist/sessions-history-http-CG934aaV.js +0 -430
  1032. package/dist/sessions.runtime-Cl91aZ2M.js +0 -2
  1033. package/dist/setup-api-DAqXqbGP.js +0 -29
  1034. package/dist/setup-core-Czt7XqlN.js +0 -174
  1035. package/dist/setup-surface-CHETBocT.js +0 -405
  1036. package/dist/setup-surface-CVtEDUic.js +0 -320
  1037. package/dist/setup-surface-YW9INYKN.js +0 -288
  1038. package/dist/setup-surface-utUyMdYz.js +0 -221
  1039. package/dist/shared-DwZ1ZQM4.js +0 -121
  1040. package/dist/shared-client-B2kMpTHH.js +0 -2
  1041. package/dist/shared-client-DHJbz0yn.js +0 -629
  1042. package/dist/side-question-Dlr5pcZK.js +0 -683
  1043. package/dist/skill-tool-dispatch.runtime-CbDumhVh.js +0 -143
  1044. package/dist/slash-state-BxzZ0Rmv.js +0 -2166
  1045. package/dist/speech-provider-INk_7d-9.js +0 -184
  1046. package/dist/src-DAMtNlRl.js +0 -4256
  1047. package/dist/startup-context-DhSjA04E.js +0 -313
  1048. package/dist/status-CHChLqRH.js +0 -3
  1049. package/dist/status-OYJF7NHg.js +0 -4
  1050. package/dist/status-all-CSz2mOkm.js +0 -573
  1051. package/dist/status-json-B5iKxsPt.js +0 -14
  1052. package/dist/status-json-command-B7mD_HM0.js +0 -84
  1053. package/dist/status-runtime-shared-tJ5_gXDE.js +0 -283
  1054. package/dist/status-subagents.runtime-UViaj6fy.js +0 -18
  1055. package/dist/status-text-D4yQvJnW.js +0 -296
  1056. package/dist/status.command-29iMh5b8.js +0 -420
  1057. package/dist/status.command-cDrXztZ4.js +0 -2
  1058. package/dist/status.command.text-runtime-CJLiLlec.js +0 -15
  1059. package/dist/status.scan-BnCyO_-1.js +0 -68
  1060. package/dist/status.scan-overview-8jfuH7wl.js +0 -444
  1061. package/dist/status.scan.fast-json-CyqrMrI6.js +0 -2
  1062. package/dist/status.scan.fast-json-D0y03alo.js +0 -127
  1063. package/dist/status.scan.runtime-DGbNNELT.js +0 -479
  1064. package/dist/status.update-C6moG8hY.js +0 -2
  1065. package/dist/status.update-Ch-d2YqJ.js +0 -86
  1066. package/dist/sticker-cache-CpE2UF0o.js +0 -206
  1067. package/dist/sticker-vision.runtime-C5lk740o.js +0 -17
  1068. package/dist/subagent-announce-DDensDxS.js +0 -354
  1069. package/dist/subagent-announce-delivery-16skgjOt.js +0 -958
  1070. package/dist/subagent-control-C2SGCamc.js +0 -508
  1071. package/dist/subagent-hooks-BqabvLsv.js +0 -2
  1072. package/dist/subagent-hooks-CGeDwTHC.js +0 -2
  1073. package/dist/subagent-hooks-CR0M3L4o.js +0 -146
  1074. package/dist/subagent-hooks-Dw9C-nUM.js +0 -2
  1075. package/dist/subagent-hooks-api-B03j55PK.js +0 -22
  1076. package/dist/subagent-hooks-api-B2i15coF.js +0 -23
  1077. package/dist/subagent-hooks-api-BcopR7NZ.js +0 -23
  1078. package/dist/subagent-hooks-eOUaLnxx.js +0 -116
  1079. package/dist/subagent-hooks-l4-8TBr2.js +0 -230
  1080. package/dist/subagent-orphan-recovery-CytpmJnf.js +0 -352
  1081. package/dist/subagent-registry-DTDYUst1.js +0 -2351
  1082. package/dist/subagent-registry-kGjRY7OP.js +0 -3
  1083. package/dist/subagent-session-cleanup-C7MqSx3u.js +0 -525
  1084. package/dist/subagent-spawn-DuLVHzht.js +0 -1164
  1085. package/dist/target-id-BqKER5JR.js +0 -107
  1086. package/dist/targets-DYNDWy1s.js +0 -44
  1087. package/dist/targets-DuRWAuVM.js +0 -19
  1088. package/dist/targets-aaR2Mlk_.js +0 -19
  1089. package/dist/test-fixtures-xgg7UsEw.d.ts +0 -27
  1090. package/dist/testing-7ayMtB6I.js +0 -267
  1091. package/dist/text-report-E0TZg1LV.js +0 -695
  1092. package/dist/thread-bindings-BzpAXUwZ.js +0 -232
  1093. package/dist/thread-bindings-Cu4J90KY.js +0 -8
  1094. package/dist/thread-bindings-D5o9c3aE.js +0 -228
  1095. package/dist/thread-bindings-DMy2kJ74.js +0 -571
  1096. package/dist/thread-bindings.discord-api-BDj-jkBV.js +0 -187
  1097. package/dist/thread-bindings.manager-C5jC_3Mo.js +0 -2
  1098. package/dist/thread-bindings.manager-CLK7FYoE.js +0 -536
  1099. package/dist/thread-lifecycle-DYeO0OTi.js +0 -1614
  1100. package/dist/token-Ccki3ia9.js +0 -134
  1101. package/dist/tool-BqIYC7Fz.js +0 -139
  1102. package/dist/tool-actions.runtime-Cjbhroli.js +0 -534
  1103. package/dist/tool-resolution-D4klFB4B.js +0 -149
  1104. package/dist/tools-effective-inventory-YuOuPKR8.js +0 -204
  1105. package/dist/tools-invoke-http-BmQFkxSN.js +0 -67
  1106. package/dist/tools-invoke-shared-DD4l34hg.js +0 -200
  1107. package/dist/tts-BAQZtO6A.js +0 -66
  1108. package/dist/tui-B-CC1PjA.js +0 -2
  1109. package/dist/tui-backend-DLm_nQL8.js +0 -256
  1110. package/dist/tui-cli-BfCs3qwc.js +0 -37
  1111. package/dist/tui-qi8Vakes.js +0 -4709
  1112. package/dist/typed-cases-cPb0tZig.d.ts +0 -68
  1113. package/dist/update-check-Dvp_oog_.js +0 -387
  1114. package/dist/update-cli-BP32xvfl.js +0 -3664
  1115. package/dist/update-runner-DnbwY3OV.js +0 -2390
  1116. package/dist/update-startup-3l7wPrqM.js +0 -339
  1117. package/dist/update-startup-C_peqiGI.js +0 -2
  1118. package/dist/vision-tools-De-gGPAw.js +0 -1409
  1119. package/dist/web-search-DJMus2yt.js +0 -62
  1120. package/dist/web-search-provider.runtime-6Md25pj8.js +0 -2
  1121. package/dist/web-search-provider.runtime-CBUbt7xF.js +0 -328
  1122. package/dist/xai-oauth-Cud_8Og7.js +0 -479
  1123. package/dist/xai-user-agent-dCQuZI6k.js +0 -32
  1124. /package/dist/{acp-runtime-backend-BQNm-KYC.js → acp-runtime-backend-C7YOcgPq.js} +0 -0
  1125. /package/dist/{channel-actions-CMUt5769.js → channel-actions-Blfq9sNz.js} +0 -0
  1126. /package/dist/{command-status-runtime-DXZZv5h_.js → command-status-runtime-D9nZ4WZF.js} +0 -0
  1127. /package/dist/{delegate-BTCHfZIj.js → delegate-BadknD7_.js} +0 -0
  1128. /package/dist/{dispatch-acp-DtdYZo4i.js → dispatch-acp-iub5P5an.js} +0 -0
  1129. /package/dist/{heartbeat-runner-BqUKIwmn.js → heartbeat-runner-l-pU94CG.js} +0 -0
  1130. /package/dist/{library-DavrGMix.js → library-DoNPigeh.js} +0 -0
  1131. /package/dist/{run-executor.runtime-DMU7greB.js → run-executor.runtime-BAkprH5Z.js} +0 -0
  1132. /package/dist/{shared-Kl_LS_vA.js → shared-BtQHfSwf.js} +0 -0
  1133. /package/dist/{test-support-BVVgDSdq.d.ts → types-DmtQKWjk.d.ts} +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-AxrxO8_x.js";
13
- import "./channel-core-CiUQ9zxC.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-6nIJyODo.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 };