@pixelzx/genesis 2026.5.3-2 → 2026.5.3-3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1066) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/.buildstamp +1 -1
  3. package/dist/abort-91r4UulC.js +201 -0
  4. package/dist/abort.runtime-B9mJXpA7.js +2 -0
  5. package/dist/abort.runtime.js +1 -1
  6. package/dist/accounts-47VdxmAV.js +2 -0
  7. package/dist/accounts-CuCpc987.js +107 -0
  8. package/dist/accounts-xW4yEmC0.js +104 -0
  9. package/dist/acp-cli-NxFXWO1M.js +2193 -0
  10. package/dist/acp-spawn-DbkpHyE1.js +1093 -0
  11. package/dist/acp-spawn-QASKm_on.js +2 -0
  12. package/dist/acp-stateful-target-driver-BHyMcz1t.js +89 -0
  13. package/dist/action-agents-6PpsUM02.js +67 -0
  14. package/dist/action-focus-B4kHRvRY.js +132 -0
  15. package/dist/action-help-C5lxx1KX.js +7 -0
  16. package/dist/action-info-oy2vw7kF.js +101 -0
  17. package/dist/action-kill-CD139kh2.js +33 -0
  18. package/dist/action-list-DZ9teqOY.js +21 -0
  19. package/dist/action-log-gxlq_2Rp.js +30 -0
  20. package/dist/action-send-BurQ0zyV.js +39 -0
  21. package/dist/action-spawn-DxOHnNm7.js +47 -0
  22. package/dist/action-unfocus-CugM3XlM.js +29 -0
  23. package/dist/actions.runtime--ihN7Wd6.js +5 -0
  24. package/dist/actions.runtime-ib-izjF7.js +18 -0
  25. package/dist/actions.runtime.js +1 -1
  26. package/dist/agent-command-C2ZVqozq.js +874 -0
  27. package/dist/agent-harness-runtime-DgUskfxp.js +144 -0
  28. package/dist/agent-lSBQDJ_c.js +2 -0
  29. package/dist/agent-runner-utils-CQHnUCgQ.js +239 -0
  30. package/dist/agent-runner.runtime-CVwomI1B.js +3455 -0
  31. package/dist/agent-runner.runtime.js +1 -1
  32. package/dist/agent-runtime-DJ7En7GB.js +18 -0
  33. package/dist/agents-CDEITLQb.js +5 -0
  34. package/dist/agents-NqAmW65Y.js +952 -0
  35. package/dist/aliases-8yRNckmx.js +2 -0
  36. package/dist/aliases-DA8MRgQS.js +96 -0
  37. package/dist/api-CJi25G9E.js +139 -0
  38. package/dist/api-Cu958cYM.js +5 -0
  39. package/dist/api-DkzCGtG_.js +3 -0
  40. package/dist/approval-gateway-resolver-DOKXw6ku.js +29 -0
  41. package/dist/approval-gateway-runtime-Bv8CqHQS.js +2 -0
  42. package/dist/approval-handler-runtime-ZtFxOtrw.js +439 -0
  43. package/dist/approval-native-runtime-DAtNdlUh.js +729 -0
  44. package/dist/attempt-execution.runtime-RtO9GkMH.js +509 -0
  45. package/dist/attempt-execution.runtime.js +1 -1
  46. package/dist/attempt.prompt-helpers-CBqQ9_m3.js +218 -0
  47. package/dist/attempt.tool-run-context-DpZtz1o7.js +933 -0
  48. package/dist/audit-C-2uIqda.js +939 -0
  49. package/dist/audit.runtime-CmbX_Mhw.js +7 -0
  50. package/dist/audit.runtime.js +1 -1
  51. package/dist/auth-DQKEcU2i.js +2 -0
  52. package/dist/auth-kVluPSY6.js +383 -0
  53. package/dist/auth-order-BrWB3inY.js +96 -0
  54. package/dist/auth-order-DCT4hb8Z.js +2 -0
  55. package/dist/bash-tools-CfLkHd-r.js +2824 -0
  56. package/dist/bash-tools-xGRQBXVi.js +3 -0
  57. package/dist/binding-routing-DcVihFHn.js +85 -0
  58. package/dist/binding-targets-CM036UnT.js +121 -0
  59. package/dist/bridge-server-IJqt4FlL.js +113 -0
  60. package/dist/browser-control-auth-D_ENihgB.js +2 -0
  61. package/dist/browser-node-runtime-CgC9vaCW.js +12 -0
  62. package/dist/browser-profiles-DXSDH0AX.js +2 -0
  63. package/dist/browser-runtime-DlIrKgom.js +387 -0
  64. package/dist/browser-setup-tools-CzwG2Hi7.js +13 -0
  65. package/dist/build-DyITSIDX.js +550 -0
  66. package/dist/build-info.json +3 -3
  67. package/dist/bundled/boot-md/handler.js +2 -2
  68. package/dist/bundled/session-memory/handler.js +1 -1
  69. package/dist/call-45FewBaL.js +329 -0
  70. package/dist/call-BqBKDI9u.js +3 -0
  71. package/dist/call.runtime-6-vv8hKu.js +2 -0
  72. package/dist/call.runtime.js +1 -1
  73. package/dist/capability-cli-mXxaAg87.js +1401 -0
  74. package/dist/catchup-DZItnQoF.js +300 -0
  75. package/dist/channel-4_07fZor.js +1174 -0
  76. package/dist/channel-BypEOihB.js +226 -0
  77. package/dist/channel-CPaewlgu.js +1802 -0
  78. package/dist/channel-CZ55XiAG.js +1320 -0
  79. package/dist/channel-Ccfv73or.js +595 -0
  80. package/dist/channel-CzsHgYiG.js +350 -0
  81. package/dist/channel-D4vHC37-.js +491 -0
  82. package/dist/channel-DRykWnyQ.js +1100 -0
  83. package/dist/channel-Dv_sqItB.js +840 -0
  84. package/dist/channel-Rka7SmcE.js +453 -0
  85. package/dist/channel-YXjNVZ70.js +297 -0
  86. package/dist/channel-core-BWePKW2T.js +5 -0
  87. package/dist/channel-inbound-B8tlgRz9.js +31 -0
  88. package/dist/channel-plugin-runtime-BSquEWfT.js +771 -0
  89. package/dist/channel-runtime-DyoiUzHM.js +425 -0
  90. package/dist/channel.runtime-BNUQYyCS.js +34702 -0
  91. package/dist/channel.runtime-BSYg7-dS.js +109 -0
  92. package/dist/channel.runtime-C3YAtGah.js +2364 -0
  93. package/dist/channel.runtime-CZggGgop.js +430 -0
  94. package/dist/channel.runtime-ZWHikPHo.js +89 -0
  95. package/dist/channel.runtime-aOaQbZea.js +4 -0
  96. package/dist/channel.runtime-puS1jfmK.js +576 -0
  97. package/dist/channel.runtime.js +1 -1
  98. package/dist/channel.setup-B2_426hq.js +10 -0
  99. package/dist/channels-cli-jNLEPssf.js +267 -0
  100. package/dist/channels-eG2v9IVY.js +827 -0
  101. package/dist/chat-BQEVN8XR.js +2757 -0
  102. package/dist/clawbot-cli-CSsLvJhI.js +9 -0
  103. package/dist/cli/daemon-cli.js +3 -3
  104. package/dist/cli-7D9AzMj2.js +219 -0
  105. package/dist/cli-CfP5iSkW.js +2 -0
  106. package/dist/cli-KSwNK8zo.js +72 -0
  107. package/dist/cli-LF3vrSmQ.js +2 -0
  108. package/dist/cli-runner-C-yyW9Mw.js +286 -0
  109. package/dist/cli-runner.runtime-BPTwiZtI.js +4 -0
  110. package/dist/cli-runner.runtime-CZ7aFUiV.js +3 -0
  111. package/dist/cli-runner.runtime.js +1 -1
  112. package/dist/cli-startup-metadata.json +2 -2
  113. package/dist/cli.runtime-BkxOxJn0.js +1261 -0
  114. package/dist/cli.runtime.js +1 -1
  115. package/dist/client-BeAVbxBQ.js +138 -0
  116. package/dist/client-DWrM2Yms.js +2742 -0
  117. package/dist/command-auth-TXkwHike.js +76 -0
  118. package/dist/command-config-resolution-BQUvy5ZL.js +2 -0
  119. package/dist/command-config-resolution-CiffKnhz.js +23 -0
  120. package/dist/command-config-resolution.runtime-DWe34jdz.js +2 -0
  121. package/dist/command-config-resolution.runtime.js +1 -1
  122. package/dist/command-registry-BI5Ce-0X.js +9 -0
  123. package/dist/command-registry-CZ-Rk9No.js +4 -0
  124. package/dist/command-registry-core-CqSjfb7e.js +104 -0
  125. package/dist/command-secret-gateway-RYlrkM8e.js +528 -0
  126. package/dist/command-status.runtime-9RuTTw7H.js +87 -0
  127. package/dist/command-status.runtime.js +1 -1
  128. package/dist/commands-acp-DNlM5COD.js +77 -0
  129. package/dist/commands-compact.runtime-Dbbx-Ps6.js +10 -0
  130. package/dist/commands-compact.runtime.js +1 -1
  131. package/dist/commands-handlers.runtime-J4HmYPML.js +4596 -0
  132. package/dist/commands-handlers.runtime.js +1 -1
  133. package/dist/commands-status-BpCtSlHL.js +16 -0
  134. package/dist/commands-status.runtime-B5lz9wwA.js +3 -0
  135. package/dist/commands-status.runtime.js +1 -1
  136. package/dist/commands-subagents-control.runtime-BlMDlblZ.js +2 -0
  137. package/dist/commands-subagents-control.runtime-RvrJJSNg.js +3 -0
  138. package/dist/commands-subagents-control.runtime.js +1 -1
  139. package/dist/commands-system-prompt-DuLI1Zhj.js +158 -0
  140. package/dist/commands-system-prompt-aXNuSW_q.js +2 -0
  141. package/dist/commands.runtime-Cvb5f7IP.js +166 -0
  142. package/dist/commands.runtime.js +1 -1
  143. package/dist/compact-CEtFY3x7.js +1118 -0
  144. package/dist/compact.runtime-BEuz-f53.js +12 -0
  145. package/dist/compact.runtime.js +1 -1
  146. package/dist/completion-cli-Du1dkhoP.js +313 -0
  147. package/dist/config-Mu4QhWzJ.js +248 -0
  148. package/dist/config-cli-DUUIMEUP.js +1073 -0
  149. package/dist/configure-DLxdFMCs.js +2 -0
  150. package/dist/configure-DQZRoD0Y.js +1244 -0
  151. package/dist/connect-options-CR5cdO4W.js +699 -0
  152. package/dist/control-auth-DLnHsBZt.js +125 -0
  153. package/dist/control-service-B035Oo8M.js +156 -0
  154. package/dist/control-ui/assets/agents-1LSJ-6PP.js +949 -0
  155. package/dist/control-ui/assets/channel-config-extras-BQz7hQLy.js +2 -0
  156. package/dist/control-ui/assets/channels-Pd3YLhy4.js +353 -0
  157. package/dist/control-ui/assets/cron-DME74GWr.js +933 -0
  158. package/dist/control-ui/assets/de-C0ZR8sDB.js +2 -0
  159. package/dist/control-ui/assets/debug-B4No9QzL.js +94 -0
  160. package/dist/control-ui/assets/es-C6bU_TtU.js +2 -0
  161. package/dist/control-ui/assets/format-CU5rVzG3.js +9 -0
  162. package/dist/control-ui/assets/fr-D5DeTmNv.js +2 -0
  163. package/dist/control-ui/assets/id-D2rVEDjJ.js +2 -0
  164. package/dist/control-ui/assets/index-BL88Y9ha.js +6308 -0
  165. package/dist/control-ui/assets/instances-BrcIASdv.js +57 -0
  166. package/dist/control-ui/assets/ja-JP-Dn3lisLY.js +2 -0
  167. package/dist/control-ui/assets/ko-DxD_1Zk0.js +2 -0
  168. package/dist/control-ui/assets/logs-BCK7QB61.js +74 -0
  169. package/dist/control-ui/assets/nodes-DBgRvAW9.js +436 -0
  170. package/dist/control-ui/assets/pl-DqfELhXe.js +2 -0
  171. package/dist/control-ui/assets/pt-BR-CyYqgZQ0.js +2 -0
  172. package/dist/control-ui/assets/sessions-xAeiynNF.js +306 -0
  173. package/dist/control-ui/assets/skills-DnzXHEWh.js +314 -0
  174. package/dist/control-ui/assets/skills-shared-DUcVMOWy.js +11 -0
  175. package/dist/control-ui/assets/string-coerce-Cdiw640X.js +3 -0
  176. package/dist/control-ui/assets/th-Cdunu1Yf.js +2 -0
  177. package/dist/control-ui/assets/tr-BVk27ysg.js +2 -0
  178. package/dist/control-ui/assets/uk-CI_KWzZt.js +2 -0
  179. package/dist/control-ui/assets/wallet-BDUGnhoA.js +195 -0
  180. package/dist/control-ui/assets/zh-CN-Iit1vnHx.js +2 -0
  181. package/dist/control-ui/assets/zh-TW-hVvjG-ie.js +2 -0
  182. package/dist/control-ui/index.html +3 -3
  183. package/dist/control-ui-BdRLK7I-.js +664 -0
  184. package/dist/conversation-id-BM-V07Pl.js +235 -0
  185. package/dist/conversation-id-BghRIfxG.js +38 -0
  186. package/dist/conversation-runtime-C4gObsh2.js +31 -0
  187. package/dist/core-ChqnJuFH.js +275 -0
  188. package/dist/cron-cli-C5Gndyos.js +713 -0
  189. package/dist/daemon-cli-ZzTGcINw.js +12 -0
  190. package/dist/delegate-BulXNglP.js +64 -0
  191. package/dist/detached-task-runtime-vv5lDMJn.js +73 -0
  192. package/dist/devices-cli-DIvpz4kL.js +496 -0
  193. package/dist/diagnostics-C8iZ-TW3.js +154 -0
  194. package/dist/direct-dm-DtDot5lO.js +64 -0
  195. package/dist/dispatch-CswKkiWZ.js +1131 -0
  196. package/dist/dispatch-acp-B6BY7PnM.js +981 -0
  197. package/dist/dispatch-acp-manager.runtime-9d1-ds6W.js +3 -0
  198. package/dist/dispatch-acp-manager.runtime.js +1 -1
  199. package/dist/dispatch-acp.runtime-B3XBEEra.js +19 -0
  200. package/dist/dispatch-acp.runtime.js +1 -1
  201. package/dist/doctor-device-pairing-B9xoU-b0.js +307 -0
  202. package/dist/doctor-gateway-daemon-flow-CBRay2wn.js +250 -0
  203. package/dist/doctor-gateway-health-Pv5QfyCN.js +60 -0
  204. package/dist/doctor-health-contributions-BQZqHOsI.js +486 -0
  205. package/dist/doctor-health-sIYTca3Z.js +59 -0
  206. package/dist/doctor-prompter-Bl7VEFRB.js +56 -0
  207. package/dist/doctor-workspace-status-COpJU_Sy.js +75 -0
  208. package/dist/dreaming-B-Ij18RW.js +1574 -0
  209. package/dist/dreaming-narrative-Dlq1B1wL.js +595 -0
  210. package/dist/embedded-gateway-stub.runtime-DxH4W_Ct.js +9 -0
  211. package/dist/embedded-gateway-stub.runtime.js +1 -1
  212. package/dist/embeddings-http-Dwm0-7xN.js +205 -0
  213. package/dist/entry.js +2 -2
  214. package/dist/exec-approvals-cli-NfwQ3x1C.js +498 -0
  215. package/dist/extensionAPI.js +1 -1
  216. package/dist/extensions/active-memory/index.js +1 -1
  217. package/dist/extensions/bluebubbles/api.js +3 -3
  218. package/dist/extensions/bluebubbles/channel-plugin-api.js +1 -1
  219. package/dist/extensions/browser/browser-bridge.js +1 -1
  220. package/dist/extensions/browser/browser-config.js +4 -4
  221. package/dist/extensions/browser/browser-control-auth.js +2 -2
  222. package/dist/extensions/browser/browser-doctor.js +2 -2
  223. package/dist/extensions/browser/browser-maintenance.js +2 -2
  224. package/dist/extensions/browser/browser-profiles.js +2 -2
  225. package/dist/extensions/browser/browser-runtime-api.js +10 -10
  226. package/dist/extensions/browser/index.js +1 -1
  227. package/dist/extensions/browser/plugin-registration.js +1 -1
  228. package/dist/extensions/browser/register.runtime.js +3 -3
  229. package/dist/extensions/browser/runtime-api.js +11 -11
  230. package/dist/extensions/browser/test-support.js +1 -1
  231. package/dist/extensions/device-pair/api.js +1 -1
  232. package/dist/extensions/device-pair/index.js +3 -3
  233. package/dist/extensions/device-pair/notify.js +1 -1
  234. package/dist/extensions/device-pair/pair-command-approve.js +1 -1
  235. package/dist/extensions/google-meet/index.js +2 -2
  236. package/dist/extensions/imessage/api.js +3 -3
  237. package/dist/extensions/imessage/channel-plugin-api.js +1 -1
  238. package/dist/extensions/imessage/runtime-api.js +3 -3
  239. package/dist/extensions/irc/api.js +2 -2
  240. package/dist/extensions/irc/channel-plugin-api.js +1 -1
  241. package/dist/extensions/line/api.js +2 -2
  242. package/dist/extensions/line/channel-plugin-api.js +1 -1
  243. package/dist/extensions/line/contract-api.js +1 -1
  244. package/dist/extensions/line/runtime-api.js +4 -4
  245. package/dist/extensions/line/setup-api.js +1 -1
  246. package/dist/extensions/llm-task/index.js +2 -2
  247. package/dist/extensions/lobster/index.js +3 -3
  248. package/dist/extensions/lobster/runtime-api.js +1 -1
  249. package/dist/extensions/mattermost/api.js +1 -1
  250. package/dist/extensions/mattermost/channel-plugin-api.js +1 -1
  251. package/dist/extensions/mattermost/channel-plugin-runtime.js +1 -1
  252. package/dist/extensions/mattermost/policy-api.js +1 -1
  253. package/dist/extensions/mattermost/runtime-api.js +4 -4
  254. package/dist/extensions/mattermost/slash-route-api.js +1 -1
  255. package/dist/extensions/memory-core/api.js +1 -1
  256. package/dist/extensions/memory-core/cli-metadata.js +2 -2
  257. package/dist/extensions/memory-core/index.js +3 -3
  258. package/dist/extensions/memory-lancedb/cli-metadata.js +1 -1
  259. package/dist/extensions/msteams/api.js +1 -1
  260. package/dist/extensions/msteams/channel-plugin-api.js +1 -1
  261. package/dist/extensions/msteams/runtime-api.js +3 -3
  262. package/dist/extensions/msteams/test-api.js +1 -1
  263. package/dist/extensions/nextcloud-talk/api.js +1 -1
  264. package/dist/extensions/nextcloud-talk/channel-plugin-api.js +1 -1
  265. package/dist/extensions/nextcloud-talk/runtime-api.js +2 -2
  266. package/dist/extensions/openshell/index.js +2 -2
  267. package/dist/extensions/signal/api.js +6 -6
  268. package/dist/extensions/signal/channel-plugin-api.js +1 -1
  269. package/dist/extensions/signal/reaction-runtime-api.js +1 -1
  270. package/dist/extensions/signal/runtime-api.js +7 -7
  271. package/dist/extensions/skill-workshop/api.js +1 -1
  272. package/dist/extensions/skill-workshop/index.js +1 -1
  273. package/dist/extensions/synology-chat/api.js +1 -1
  274. package/dist/extensions/synology-chat/channel-plugin-api.js +1 -1
  275. package/dist/extensions/tlon/api.js +2 -2
  276. package/dist/extensions/tlon/channel-plugin-api.js +1 -1
  277. package/dist/extensions/tlon/runtime-api.js +1 -1
  278. package/dist/extensions/tlon/test-api.js +1 -1
  279. package/dist/extensions/twitch/api.js +1 -1
  280. package/dist/extensions/twitch/channel-plugin-api.js +1 -1
  281. package/dist/extensions/twitch/setup-plugin-api.js +1 -1
  282. package/dist/extensions/zalo/api.js +3 -3
  283. package/dist/extensions/zalo/channel-plugin-api.js +1 -1
  284. package/dist/extensions/zalo/runtime-api.js +2 -2
  285. package/dist/extensions/zalo/setup-api.js +2 -2
  286. package/dist/extensions/zalouser/api.js +3 -3
  287. package/dist/extensions/zalouser/channel-plugin-api.js +1 -1
  288. package/dist/extensions/zalouser/runtime-api.js +6 -6
  289. package/dist/extensions/zalouser/setup-plugin-api.js +1 -1
  290. package/dist/extensions/zalouser/test-api.js +1 -1
  291. package/dist/fallbacks-BFYvKUnY.js +31 -0
  292. package/dist/fallbacks-Dln-Fm7a.js +2 -0
  293. package/dist/fallbacks-shared-BtC9lu5P.js +111 -0
  294. package/dist/gateway-CLjt4Ubu.js +115 -0
  295. package/dist/gateway-cli-jaaJ3fg-.js +1325 -0
  296. package/dist/gateway-rpc-B0bKGYQt.js +14 -0
  297. package/dist/gateway-rpc.runtime-CDyIcCe7.js +23 -0
  298. package/dist/gateway-rpc.runtime.js +1 -1
  299. package/dist/gateway-runtime-BxG-mEQr.js +15 -0
  300. package/dist/gateway-status-v2j9MIsq.js +584 -0
  301. package/dist/genesis-tools-CES2sMWo.js +8998 -0
  302. package/dist/genesis-tools.runtime-BzLXBcui.js +2 -0
  303. package/dist/genesis-tools.runtime.js +1 -1
  304. package/dist/get-reply-7p41dlff.js +3879 -0
  305. package/dist/get-reply-from-config.runtime-u3yCD2PM.js +2 -0
  306. package/dist/get-reply-from-config.runtime.js +1 -1
  307. package/dist/graph-users-IT2wmMx0.js +1337 -0
  308. package/dist/health-BFcoKWr0.js +469 -0
  309. package/dist/health-DRvLyY-r.js +3 -0
  310. package/dist/heartbeat-runner-BHjLQL2M.js +1292 -0
  311. package/dist/heartbeat-runner-DqEJGTLj.js +5 -0
  312. package/dist/heartbeat-runner.runtime-Cmx1SSZn.js +4 -0
  313. package/dist/heartbeat-runner.runtime.js +1 -1
  314. package/dist/hooks-cli-DDT-e8cJ.js +433 -0
  315. package/dist/http-endpoint-helpers-Dj8t0Siy.js +41 -0
  316. package/dist/http-utils-Dwz38Ezf.js +924 -0
  317. package/dist/image-fallbacks-D7OPvToB.js +31 -0
  318. package/dist/image-fallbacks-Dz8AR8dy.js +2 -0
  319. package/dist/inbound-reply-dispatch-DAPsCNCR.js +73 -0
  320. package/dist/index.js +2 -2
  321. package/dist/infra-runtime-DwyCbqnF.js +39 -0
  322. package/dist/init-ff-VGINj.js +59 -0
  323. package/dist/library-DJHGahez.js +45 -0
  324. package/dist/lifecycle-Wn699Yk2.js +229 -0
  325. package/dist/lifecycle-jhG_0376.js +571 -0
  326. package/dist/lifecycle.runtime-DEQnEWhs.js +2 -0
  327. package/dist/lifecycle.runtime.js +1 -1
  328. package/dist/list-BpmdsUg2.js +2 -0
  329. package/dist/list-Bx1ShIyl.js +1201 -0
  330. package/dist/list-CrwKhvg6.js +130 -0
  331. package/dist/list-DMu11V_u.js +2 -0
  332. package/dist/list.probe-uEkIls1j.js +419 -0
  333. package/dist/llm-slug-generator-CLSA0uws.js +79 -0
  334. package/dist/llm-slug-generator.js +1 -1
  335. package/dist/load-config-Dez1SxKa.js +35 -0
  336. package/dist/local-dispatch.runtime-Dxyktykf.js +8 -0
  337. package/dist/local-dispatch.runtime.js +1 -1
  338. package/dist/logs-cli-DrKLI45U.js +265 -0
  339. package/dist/logs-cli.runtime-WU3d8rj3.js +2 -0
  340. package/dist/logs-cli.runtime.js +1 -1
  341. package/dist/main-session-restart-recovery-CDpXwlsb.js +206 -0
  342. package/dist/managed-image-attachments-CTfAUhir.js +2 -0
  343. package/dist/managed-image-attachments-DwCKRLRN.js +635 -0
  344. package/dist/manager-C8C_r6-q.js +2057 -0
  345. package/dist/manager-DNh85N31.js +2 -0
  346. package/dist/markdown-to-line-CeMQCPsl.js +790 -0
  347. package/dist/mcp/plugin-tools-serve.js +1 -1
  348. package/dist/mcp-cli-CilsONVQ.js +724 -0
  349. package/dist/mcp-http-DMgw2M1d.js +529 -0
  350. package/dist/memory-core-host-runtime-cli-C4pnPS3_.js +9 -0
  351. package/dist/message-BodHPIzX.js +231 -0
  352. package/dist/message-action-runner-PKW742hU.js +1406 -0
  353. package/dist/message-action-runner-VdRgHq0O.js +2 -0
  354. package/dist/message-actions-C6yR-dy_.js +143 -0
  355. package/dist/message.gateway.runtime-CXGM9Aaa.js +2 -0
  356. package/dist/message.gateway.runtime.js +1 -1
  357. package/dist/method-scopes-Dut0EB9J.js +209 -0
  358. package/dist/models-cli-CZt8Jsll.js +219 -0
  359. package/dist/models-http-Dcpveulc.js +92 -0
  360. package/dist/monitor--Wv4TIXO.js +671 -0
  361. package/dist/monitor-82G9E74P.js +1237 -0
  362. package/dist/monitor-BbRyKgwH.js +2 -0
  363. package/dist/monitor-CC0s4dOX.js +1459 -0
  364. package/dist/monitor-CQsFb8eQ.js +788 -0
  365. package/dist/monitor-Co1hvULI.js +1661 -0
  366. package/dist/monitor-auth-6Kflwyie.js +207 -0
  367. package/dist/monitor-processing-B7uKpWo4.js +1974 -0
  368. package/dist/monitor.runtime-CSS_UmaS.js +2 -0
  369. package/dist/monitor.runtime.js +1 -1
  370. package/dist/monitor.webhook-DGN7_Sjs.js +180 -0
  371. package/dist/msteams-Cq2ldWey.js +35 -0
  372. package/dist/native-hook-relay-DtU42QnM.js +519 -0
  373. package/dist/nextcloud-talk-CkxtLN3A.js +17 -0
  374. package/dist/node-cli-BlCoOoMf.js +2506 -0
  375. package/dist/nodes-cli-BspoieXR.js +1046 -0
  376. package/dist/nodes-utils-CbFMjmDs.js +84 -0
  377. package/dist/nodes.helpers-K9f4_mBF.js +34 -0
  378. package/dist/notify-CyQE1_Xr.js +315 -0
  379. package/dist/onboard-BvLD3Wm8.js +632 -0
  380. package/dist/onboard-helpers-0XhcwDte.js +204 -0
  381. package/dist/onboard-helpers-B8ISwJON.js +6 -0
  382. package/dist/onboard-remote-BRM4DH6p.js +193 -0
  383. package/dist/onboard-remote-Blun0y8J.js +2 -0
  384. package/dist/onboard-skills-CTHeVmHt.js +2 -0
  385. package/dist/onboard-skills-D_29CQ3l.js +134 -0
  386. package/dist/openai-http-CFWiPGqM.js +500 -0
  387. package/dist/openresponses-http-8gJVvkvj.js +1128 -0
  388. package/dist/operator-approvals-client-CD4Ta4mU.js +68 -0
  389. package/dist/outbound.runtime-djlPw0h_.js +2 -0
  390. package/dist/outbound.runtime.js +1 -1
  391. package/dist/pair-command-approve-CJX4gh1-.js +44 -0
  392. package/dist/persistent-bindings.lifecycle-BW_emuP7.js +85 -0
  393. package/dist/persistent-bindings.lifecycle-C1SX_Q_K.js +2 -0
  394. package/dist/pi-embedded-DD7aPF12.js +2905 -0
  395. package/dist/pi-embedded-PW48UsXW.js +4 -0
  396. package/dist/pi-embedded.runtime-CqhLxSYX.js +4 -0
  397. package/dist/pi-embedded.runtime.js +1 -1
  398. package/dist/pi-tool-definition-adapter-C1Prxd-M.js +217 -0
  399. package/dist/pi-tools-pw6Tseqi.js +1057 -0
  400. package/dist/pi-tools.before-tool-call-BSfbqmdy.js +433 -0
  401. package/dist/pi-tools.before-tool-call-Vdpw6m1Q.js +2 -0
  402. package/dist/plugin-Bkk7yfMh.js +12195 -0
  403. package/dist/plugin-enabled-B7310bjm.js +140 -0
  404. package/dist/plugin-registration-ClydMGPd.js +23 -0
  405. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  406. package/dist/plugin-sdk/acp-binding-runtime.js +1 -1
  407. package/dist/plugin-sdk/acp-runtime.js +2 -2
  408. package/dist/plugin-sdk/agent-harness-runtime.js +5 -5
  409. package/dist/plugin-sdk/agent-harness.js +6 -6
  410. package/dist/plugin-sdk/agent-runtime.js +2 -2
  411. package/dist/plugin-sdk/approval-gateway-runtime.js +2 -2
  412. package/dist/plugin-sdk/approval-handler-runtime.js +3 -3
  413. package/dist/plugin-sdk/approval-runtime.js +1 -1
  414. package/dist/plugin-sdk/browser-node-runtime.js +4 -4
  415. package/dist/plugin-sdk/browser-setup-tools.js +3 -3
  416. package/dist/plugin-sdk/browser-support.js +7 -7
  417. package/dist/plugin-sdk/channel-core.js +2 -2
  418. package/dist/plugin-sdk/channel-inbound.js +2 -2
  419. package/dist/plugin-sdk/command-auth.js +1 -1
  420. package/dist/plugin-sdk/command-status-runtime.js +1 -1
  421. package/dist/plugin-sdk/compat.js +1 -1
  422. package/dist/plugin-sdk/conversation-binding-runtime.js +1 -1
  423. package/dist/plugin-sdk/conversation-runtime.js +3 -3
  424. package/dist/plugin-sdk/core.js +2 -2
  425. package/dist/plugin-sdk/direct-dm.js +1 -1
  426. package/dist/plugin-sdk/gateway-runtime.js +3 -3
  427. package/dist/plugin-sdk/inbound-reply-dispatch.js +1 -1
  428. package/dist/plugin-sdk/index.js +1 -1
  429. package/dist/plugin-sdk/infra-runtime.js +2 -2
  430. package/dist/plugin-sdk/irc.js +2 -2
  431. package/dist/plugin-sdk/matrix.js +1 -1
  432. package/dist/plugin-sdk/memory-core-host-runtime-cli.js +2 -2
  433. package/dist/plugin-sdk/memory-core.js +2 -2
  434. package/dist/plugin-sdk/msteams.js +2 -2
  435. package/dist/plugin-sdk/nextcloud-talk.js +2 -2
  436. package/dist/plugin-sdk/nostr.js +1 -1
  437. package/dist/plugin-sdk/reply-dispatch-runtime.js +1 -1
  438. package/dist/plugin-sdk/reply-runtime.js +4 -4
  439. package/dist/plugin-sdk/runtime-secret-resolution.js +1 -1
  440. package/dist/plugin-sdk/runtime.js +2 -2
  441. package/dist/plugin-sdk/session-visibility.js +1 -1
  442. package/dist/plugin-sdk/src/gateway/protocol/index.d.ts +43 -3
  443. package/dist/plugin-sdk/src/gateway/protocol/schema/protocol-schemas.d.ts +40 -0
  444. package/dist/plugin-sdk/src/gateway/protocol/schema/wallet.d.ts +44 -0
  445. package/dist/plugin-sdk/testing.js +4 -4
  446. package/dist/plugin-sdk/tlon.js +1 -1
  447. package/dist/plugin-sdk/zalo.js +1 -1
  448. package/dist/plugin-sdk/zalouser.js +1 -1
  449. package/dist/plugin-service-BuKwEFP2.js +2890 -0
  450. package/dist/plugins/runtime/index.js +1 -1
  451. package/dist/policy-B-SG_MoX.js +328 -0
  452. package/dist/postinstall-inventory.json +440 -440
  453. package/dist/prepare.runtime-DCvn4PA9.js +815 -0
  454. package/dist/prepare.runtime.js +1 -1
  455. package/dist/probe-BM2lSGpq.js +1443 -0
  456. package/dist/probe-C-OcrhHU.js +241 -0
  457. package/dist/probe-C-zomfHC.js +74 -0
  458. package/dist/probe-CktNHncO.js +2 -0
  459. package/dist/probe-DvEzC7Yt.js +2 -0
  460. package/dist/probe-UYnzau7s.js +2205 -0
  461. package/dist/probe-VShtyoQP.js +45 -0
  462. package/dist/program-B1Zbl29n.js +111 -0
  463. package/dist/prompt-select-styled-BFiy7KFb.js +20 -0
  464. package/dist/provider-dispatcher-C_R0buEs.js +22 -0
  465. package/dist/provider-dispatcher-DMjvnMg1.js +2 -0
  466. package/dist/qr-cli-CIMpiVqT.js +2 -0
  467. package/dist/qr-cli-Chl8J_dU.js +349 -0
  468. package/dist/reaction-runtime-api-BNJMHeSk.js +116 -0
  469. package/dist/reactions-2lggXKxe.js +998 -0
  470. package/dist/register-service-commands-ayYMhoTG.js +71 -0
  471. package/dist/register.agent-j81xGvIr.js +247 -0
  472. package/dist/register.configure-Ceqf8SV4.js +15 -0
  473. package/dist/register.maintenance-CS92zJrF.js +438 -0
  474. package/dist/register.message-BYxUGLpc.js +329 -0
  475. package/dist/register.onboard-YkI-xo9t.js +81 -0
  476. package/dist/register.runtime-CmvxwCiw.js +81 -0
  477. package/dist/register.runtime.js +1 -1
  478. package/dist/register.setup-CNdTgu3R.js +150 -0
  479. package/dist/register.status-health-sessions-BX2GmWTc.js +1215 -0
  480. package/dist/register.subclis-BeGY5cHF.js +3 -0
  481. package/dist/register.subclis-COA10rio.js +29 -0
  482. package/dist/register.subclis-core-DBrCeLqN.js +243 -0
  483. package/dist/register.wallet-D2TECwG5.js +159 -0
  484. package/dist/reply-dispatch-runtime-CNsrlQxq.js +13 -0
  485. package/dist/reply-runtime-Cqu1YNSD.js +11 -0
  486. package/dist/reply.runtime-DjHQKkER.js +2 -0
  487. package/dist/reply.runtime.js +1 -1
  488. package/dist/restart-health-BvQlMuSR.js +2 -0
  489. package/dist/restart-health-Ddm7Ehby.js +202 -0
  490. package/dist/root-help-3kWD5VLI.js +44 -0
  491. package/dist/routes-BCZzdzw2.js +2 -0
  492. package/dist/routes-CA0DoP7S.js +3340 -0
  493. package/dist/rpc-BzPBQ5ql.js +61 -0
  494. package/dist/rpc.runtime-B8NzeUIK.js +21 -0
  495. package/dist/rpc.runtime.js +1 -1
  496. package/dist/run-delivery.runtime-Cx2tDADi.js +530 -0
  497. package/dist/run-delivery.runtime.js +1 -1
  498. package/dist/run-embedded.runtime-B9SGhBV5.js +4 -0
  499. package/dist/run-embedded.runtime.js +1 -1
  500. package/dist/run-execution-cli.runtime-D3gnOlIV.js +4 -0
  501. package/dist/run-execution-cli.runtime.js +1 -1
  502. package/dist/run-executor.runtime-BwsKj4NN.js +277 -0
  503. package/dist/run-executor.runtime.js +1 -1
  504. package/dist/run-main-CJYy9aeX.js +516 -0
  505. package/dist/run-subagent-registry.runtime-CNCRhpSK.js +2 -0
  506. package/dist/run-subagent-registry.runtime.js +1 -1
  507. package/dist/run-wait-o2Yo35xt.js +135 -0
  508. package/dist/runtime-Co5LW-cY.js +973 -0
  509. package/dist/runtime-D98eGt1z.js +9 -0
  510. package/dist/runtime-api-DLRKboKD.js +4 -0
  511. package/dist/runtime-api-DW1jDnXG.js +9 -0
  512. package/dist/runtime-api-DqL2zvW_.js +14 -0
  513. package/dist/runtime-api-DtRkIQdm.js +9 -0
  514. package/dist/runtime-embedded-pi.runtime-_1BnpUsH.js +2 -0
  515. package/dist/runtime-embedded-pi.runtime.js +1 -1
  516. package/dist/runtime-internal-OmAlLFWl.js +2 -0
  517. package/dist/runtime-options-DXi_dUFt.js +275 -0
  518. package/dist/runtime-schema-Cao36tlZ.js +27748 -0
  519. package/dist/scan-CMs-eSKD.js +523 -0
  520. package/dist/scan-DaCjqwXa.js +2 -0
  521. package/dist/secrets-cli-DsCbOPd8.js +2101 -0
  522. package/dist/security-cli-DWpmdyKz.js +486 -0
  523. package/dist/selection-BY0XwQb0.js +7737 -0
  524. package/dist/selection-UBLsVuoF.js +2 -0
  525. package/dist/send-B7W0wAaA.js +156 -0
  526. package/dist/send-DVXD9_3G.js +102 -0
  527. package/dist/send.runtime-BkSytPZj.js +2 -0
  528. package/dist/send.runtime.js +1 -1
  529. package/dist/server-7ozS-gsn.js +77 -0
  530. package/dist/server-LmKuO2X1.js +13 -0
  531. package/dist/server-context-BdRn7wbe.js +2 -0
  532. package/dist/server-context-CC4pOAPX.js +846 -0
  533. package/dist/server-node-events-B677Q3os.js +481 -0
  534. package/dist/server-plugin-bootstrap-CR8RjVLB.js +2 -0
  535. package/dist/server-plugin-bootstrap-CYpLXOkm.js +11124 -0
  536. package/dist/server-restart-sentinel-Btcc7BTE.js +697 -0
  537. package/dist/server.impl-BkehWe_p.js +12726 -0
  538. package/dist/service-BWLndtz9.js +941 -0
  539. package/dist/session-kill-http-BN9Ql6UD.js +110 -0
  540. package/dist/session-reset-service-hNFKFmB3.js +471 -0
  541. package/dist/session-route-DErqiFgk.js +93 -0
  542. package/dist/session-status.runtime-Cu7JU8_U.js +2 -0
  543. package/dist/session-status.runtime.js +1 -1
  544. package/dist/session-subagent-reactivation.runtime-Bbagi0__.js +2 -0
  545. package/dist/session-subagent-reactivation.runtime.js +1 -1
  546. package/dist/session-tab-registry-D-OCT26z.js +491 -0
  547. package/dist/session-visibility-Ddr5Ae9L.js +147 -0
  548. package/dist/sessions-helpers-D0Kf9Ps4.js +304 -0
  549. package/dist/sessions-history-http-BmKrK99v.js +383 -0
  550. package/dist/sessions-patch-BtQ1tAvw.js +309 -0
  551. package/dist/sessions-resolve-BGLrS6vF.js +174 -0
  552. package/dist/sessions.runtime-CsAKVqcP.js +2 -0
  553. package/dist/sessions.runtime.js +1 -1
  554. package/dist/setup-C7ziOemv.js +495 -0
  555. package/dist/setup-api-CFdE6Bv6.js +29 -0
  556. package/dist/setup-core-DWygxvIO.js +176 -0
  557. package/dist/setup-core-IwixXKp3.js +171 -0
  558. package/dist/setup-surface--KMZi-cs.js +286 -0
  559. package/dist/setup-surface-Bo-J3N7I.js +403 -0
  560. package/dist/setup-surface-C-7l8TcU.js +219 -0
  561. package/dist/setup.finalize-D7dPxVDl.js +539 -0
  562. package/dist/setup.gateway-config-DmLcj4KK.js +250 -0
  563. package/dist/shared-CpqCPySw.js +76 -0
  564. package/dist/shared-D-tbPAY5.js +198 -0
  565. package/dist/shared-Dlx0gCmP.js +121 -0
  566. package/dist/slash-state-Cfz0x49w.js +1911 -0
  567. package/dist/src-BcGXLl_7.js +3974 -0
  568. package/dist/startup-context-oaWUXB8r.js +312 -0
  569. package/dist/status-B6NTLfIA.js +2 -0
  570. package/dist/status-BH2PSbt-.js +3 -0
  571. package/dist/status-BdqF0YGr.js +397 -0
  572. package/dist/status-C8o-eOFh.js +209 -0
  573. package/dist/status-D9GTZEx3.js +190 -0
  574. package/dist/status-all-CYFjOCcB.js +498 -0
  575. package/dist/status-json-command-DRbt8OgF.js +84 -0
  576. package/dist/status-json-wzJiFRSB.js +14 -0
  577. package/dist/status-runtime-shared-CI8_EqUP.js +257 -0
  578. package/dist/status-subagents.runtime-DrQmaLAc.js +18 -0
  579. package/dist/status-subagents.runtime.js +1 -1
  580. package/dist/status-text-DyIs2f8P.js +236 -0
  581. package/dist/status-yhOw1Z3M.js +2 -0
  582. package/dist/status.gateway-connection.runtime-Bjp2AscT.js +2 -0
  583. package/dist/status.gateway-connection.runtime.js +1 -1
  584. package/dist/status.gather-Blc_DKTK.js +2 -0
  585. package/dist/status.gather-CqgbE6TR.js +292 -0
  586. package/dist/status.runtime-DkTncdN7.js +2 -0
  587. package/dist/status.runtime.js +1 -1
  588. package/dist/status.scan-Dc4FTGEf.js +65 -0
  589. package/dist/status.scan-overview-B0rKBZWW.js +379 -0
  590. package/dist/status.scan.fast-json-BhqvblxV.js +2 -0
  591. package/dist/status.scan.fast-json-DI6a0Tv9.js +132 -0
  592. package/dist/status.summary-CoKGnSoy.js +214 -0
  593. package/dist/status.summary-DrWqIllD.js +2 -0
  594. package/dist/subagent-announce-CgnWmHmH.js +351 -0
  595. package/dist/subagent-announce-delivery-DHVVJyea.js +726 -0
  596. package/dist/subagent-announce-output-d58DNnV0.js +364 -0
  597. package/dist/subagent-control-DsUeBdrz.js +506 -0
  598. package/dist/subagent-followup.runtime-BKyKE6nN.js +68 -0
  599. package/dist/subagent-followup.runtime.js +1 -1
  600. package/dist/subagent-orphan-recovery-_O6G65C-.js +305 -0
  601. package/dist/subagent-registry-BYuzIniG.js +1753 -0
  602. package/dist/subagent-registry-D0GzSMp0.js +3 -0
  603. package/dist/subagent-registry.runtime.js +1 -1
  604. package/dist/subagent-spawn-B6iHzxd0.js +1005 -0
  605. package/dist/system-cli-DPiT7dwA.js +59 -0
  606. package/dist/targets-DOHhYtK7.js +67 -0
  607. package/dist/task-executor-Bxg0f08x.js +360 -0
  608. package/dist/task-owner-access-Ymx7tKev.js +74 -0
  609. package/dist/task-registry-CQnnTGmN.js +2366 -0
  610. package/dist/task-registry-delivery-runtime-BSBXpDV6.js +2 -0
  611. package/dist/task-registry-delivery-runtime-D-Za0_P9.js +3 -0
  612. package/dist/task-registry.maintenance-BZpViOdb.js +2 -0
  613. package/dist/task-registry.maintenance-r46lgwwF.js +416 -0
  614. package/dist/telegram/token.js +1 -1
  615. package/dist/testing-2KPIcA5D.js +575 -0
  616. package/dist/text-report-BJwJgnEZ.js +587 -0
  617. package/dist/tool-resolution-CjlqPoX2.js +90 -0
  618. package/dist/tools-effective-inventory-C5X-_cBY.js +152 -0
  619. package/dist/tools-invoke-http-Cza5U0A9.js +206 -0
  620. package/dist/trash-K2na6Iz1.js +24 -0
  621. package/dist/tui-cli-l39_SXF6.js +4573 -0
  622. package/dist/update-cli-Iq8wyl0W.js +1728 -0
  623. package/dist/upgrade-1nwb0oPp.js +1226 -0
  624. package/dist/video-generation-task-status-Du2MUfI2.js +163 -0
  625. package/dist/wait-for-idle-before-flush-hJ-dtR6o.js +5986 -0
  626. package/package.json +1 -1
  627. package/dist/abort-BSgJMMy0.js +0 -201
  628. package/dist/abort.runtime-DSaqOkLi.js +0 -2
  629. package/dist/accounts-BYrE99V8.js +0 -107
  630. package/dist/accounts-Cw3U0GZS.js +0 -104
  631. package/dist/accounts-D3rbUrwm.js +0 -2
  632. package/dist/acp-cli-DeB5Rsjc.js +0 -2193
  633. package/dist/acp-spawn-CB_1HLYK.js +0 -1093
  634. package/dist/acp-spawn-DC-CjxhI.js +0 -2
  635. package/dist/acp-stateful-target-driver-B5hgjDME.js +0 -89
  636. package/dist/action-agents-de8OAj0v.js +0 -67
  637. package/dist/action-focus-CrHvpYTM.js +0 -132
  638. package/dist/action-help-DPabNXHZ.js +0 -7
  639. package/dist/action-info-CWAj-tKU.js +0 -101
  640. package/dist/action-kill-BvKs859S.js +0 -33
  641. package/dist/action-list-fiRrNbSX.js +0 -21
  642. package/dist/action-log-dn5JEtP_.js +0 -30
  643. package/dist/action-send-8A83W-vV.js +0 -39
  644. package/dist/action-spawn-VIuLWipE.js +0 -47
  645. package/dist/action-unfocus-D70HiUtC.js +0 -29
  646. package/dist/actions.runtime-BR7boyHX.js +0 -18
  647. package/dist/actions.runtime-GiNRcV0z.js +0 -5
  648. package/dist/agent-63D0MSuN.js +0 -2
  649. package/dist/agent-command-DpCldQUr.js +0 -874
  650. package/dist/agent-harness-runtime-CuxCjKHu.js +0 -144
  651. package/dist/agent-runner-utils-2KK7Tvwt.js +0 -239
  652. package/dist/agent-runner.runtime-B7-jeAE1.js +0 -3455
  653. package/dist/agent-runtime-B0LeqEC4.js +0 -18
  654. package/dist/agents-BKMfctCm.js +0 -5
  655. package/dist/agents-C_pD02YQ.js +0 -952
  656. package/dist/aliases-COyeblK9.js +0 -2
  657. package/dist/aliases-y-1ktZ4q.js +0 -96
  658. package/dist/api-C4eLLyHi.js +0 -139
  659. package/dist/api-DDQ1U9Y1.js +0 -3
  660. package/dist/api-DE42IEbe.js +0 -5
  661. package/dist/approval-gateway-resolver-B1vyfdsY.js +0 -29
  662. package/dist/approval-gateway-runtime-BspnMTAu.js +0 -2
  663. package/dist/approval-handler-runtime-BrOWxNQ7.js +0 -439
  664. package/dist/approval-native-runtime-amzGMScp.js +0 -729
  665. package/dist/attempt-execution.runtime-Bmw2z2TO.js +0 -509
  666. package/dist/attempt.prompt-helpers-BI35hO5A.js +0 -218
  667. package/dist/attempt.tool-run-context-CdMIupu1.js +0 -933
  668. package/dist/audit-CHoh7JgT.js +0 -939
  669. package/dist/audit.runtime-CZORspf5.js +0 -7
  670. package/dist/auth-9Vcx6Cmf.js +0 -383
  671. package/dist/auth-Dm3T2Azg.js +0 -2
  672. package/dist/auth-order-D4kOyxOC.js +0 -96
  673. package/dist/auth-order-XAV7PznW.js +0 -2
  674. package/dist/bash-tools-DCcnMXV5.js +0 -3
  675. package/dist/bash-tools-RvcvKJ6T.js +0 -2824
  676. package/dist/binding-routing-Bn1RJI3D.js +0 -85
  677. package/dist/binding-targets-DOB7nrnI.js +0 -121
  678. package/dist/bridge-server-CNv6vH_N.js +0 -113
  679. package/dist/browser-control-auth-BW5AsYZM.js +0 -2
  680. package/dist/browser-node-runtime-e_5J-t2m.js +0 -12
  681. package/dist/browser-profiles-V--grSvf.js +0 -2
  682. package/dist/browser-runtime-K7qKfdJO.js +0 -387
  683. package/dist/browser-setup-tools-RQ8B4E_8.js +0 -13
  684. package/dist/build-IWaXKaQo.js +0 -550
  685. package/dist/call-DMoCOQgN.js +0 -329
  686. package/dist/call-DR29cjQ8.js +0 -3
  687. package/dist/call.runtime-CPFzabci.js +0 -2
  688. package/dist/capability-cli-BqaYg27d.js +0 -1401
  689. package/dist/catchup-CkMkjMjm.js +0 -300
  690. package/dist/channel-7-Cy5vdE.js +0 -1320
  691. package/dist/channel-B0LKbN9a.js +0 -1802
  692. package/dist/channel-C5SikvTn.js +0 -1174
  693. package/dist/channel-CGef-OxR.js +0 -1100
  694. package/dist/channel-CqHnAQJn.js +0 -350
  695. package/dist/channel-D3_wWplf.js +0 -595
  696. package/dist/channel-DRek8wwh.js +0 -453
  697. package/dist/channel-DYRwgk_C.js +0 -297
  698. package/dist/channel-DxbCZT0P.js +0 -226
  699. package/dist/channel-core-a5qj8qsH.js +0 -5
  700. package/dist/channel-inbound-CozRn3n-.js +0 -31
  701. package/dist/channel-plugin-runtime-DsiFaHL9.js +0 -771
  702. package/dist/channel-runtime-C8zLNzEP.js +0 -425
  703. package/dist/channel-v0PxXI_J.js +0 -491
  704. package/dist/channel-yHVk-YRx.js +0 -840
  705. package/dist/channel.runtime-C1rseTPL.js +0 -430
  706. package/dist/channel.runtime-Ci6Q1Cuv.js +0 -576
  707. package/dist/channel.runtime-CvOa3gYA.js +0 -109
  708. package/dist/channel.runtime-CwZodUOR.js +0 -34702
  709. package/dist/channel.runtime-DaP1Ann2.js +0 -89
  710. package/dist/channel.runtime-ie3egHX0.js +0 -4
  711. package/dist/channel.runtime-p_ELA91e.js +0 -2364
  712. package/dist/channel.setup-D1_1xjgF.js +0 -10
  713. package/dist/channels-Cx8uAXLx.js +0 -827
  714. package/dist/channels-cli-BCCSvZCu.js +0 -267
  715. package/dist/chat-CjH9IZPG.js +0 -2757
  716. package/dist/clawbot-cli-BW8txesR.js +0 -9
  717. package/dist/cli-BosrhIZ9.js +0 -72
  718. package/dist/cli-CHvS1B5Q.js +0 -2
  719. package/dist/cli-DJz9OCkF.js +0 -219
  720. package/dist/cli-DOiNFMc7.js +0 -2
  721. package/dist/cli-runner-CHk3q2MH.js +0 -286
  722. package/dist/cli-runner.runtime-mvuDOXO3.js +0 -4
  723. package/dist/cli-runner.runtime-rlm7f8Qi.js +0 -3
  724. package/dist/cli.runtime-BbTMs2tV.js +0 -1261
  725. package/dist/client-D1dJTyU7.js +0 -2722
  726. package/dist/client-JBM4I6b2.js +0 -138
  727. package/dist/command-auth-BbFsneAK.js +0 -76
  728. package/dist/command-config-resolution-DXhw734i.js +0 -23
  729. package/dist/command-config-resolution-poOTs26D.js +0 -2
  730. package/dist/command-config-resolution.runtime-BgBhROMr.js +0 -2
  731. package/dist/command-registry-BVFXhcOs.js +0 -4
  732. package/dist/command-registry-ClQXv5Dl.js +0 -9
  733. package/dist/command-registry-core-CAhTYQrv.js +0 -104
  734. package/dist/command-secret-gateway-DFTMkW7_.js +0 -528
  735. package/dist/command-status.runtime-DGPtSexy.js +0 -87
  736. package/dist/commands-acp-_nV8wWKt.js +0 -77
  737. package/dist/commands-compact.runtime-_vHyAiKz.js +0 -10
  738. package/dist/commands-handlers.runtime-CLi0aZTH.js +0 -4596
  739. package/dist/commands-status-HRJORs2e.js +0 -16
  740. package/dist/commands-status.runtime-CM9-gifT.js +0 -3
  741. package/dist/commands-subagents-control.runtime-BKBLELS1.js +0 -3
  742. package/dist/commands-subagents-control.runtime-Bv0x4ibi.js +0 -2
  743. package/dist/commands-system-prompt-B139cQlX.js +0 -2
  744. package/dist/commands-system-prompt-DuaobSBO.js +0 -158
  745. package/dist/commands.runtime-DSCXdZki.js +0 -166
  746. package/dist/compact-LzyN5PMu.js +0 -1118
  747. package/dist/compact.runtime-BJLpfnFS.js +0 -12
  748. package/dist/completion-cli-D8STecUS.js +0 -313
  749. package/dist/config-BrdI5ZyV.js +0 -248
  750. package/dist/config-cli-CdYXdQ9l.js +0 -1073
  751. package/dist/configure-07tFzclw.js +0 -1244
  752. package/dist/configure-CbEEjQYo.js +0 -2
  753. package/dist/connect-options-DqbkNROZ.js +0 -699
  754. package/dist/control-auth-DoDKg0VV.js +0 -125
  755. package/dist/control-service-BGluFHoB.js +0 -156
  756. package/dist/control-ui/assets/agents-DIlUBXrj.js +0 -949
  757. package/dist/control-ui/assets/channel-config-extras-BGlC1vk-.js +0 -2
  758. package/dist/control-ui/assets/channels-DkrHc4ne.js +0 -353
  759. package/dist/control-ui/assets/cron-B-r1qhzN.js +0 -933
  760. package/dist/control-ui/assets/de-4NcQrfyt.js +0 -2
  761. package/dist/control-ui/assets/debug-BNsI96cZ.js +0 -94
  762. package/dist/control-ui/assets/es-CrrRGWtR.js +0 -2
  763. package/dist/control-ui/assets/format-DPX2rt4X.js +0 -9
  764. package/dist/control-ui/assets/fr-D5W-tLOJ.js +0 -2
  765. package/dist/control-ui/assets/id-D553RZfz.js +0 -2
  766. package/dist/control-ui/assets/index-BNEyEtwP.js +0 -6308
  767. package/dist/control-ui/assets/instances-18Qi3xmu.js +0 -57
  768. package/dist/control-ui/assets/ja-JP-BqS1ssGF.js +0 -2
  769. package/dist/control-ui/assets/ko-CaE3K0VZ.js +0 -2
  770. package/dist/control-ui/assets/logs-DLWCXFsv.js +0 -74
  771. package/dist/control-ui/assets/nodes-BYrv5bpJ.js +0 -436
  772. package/dist/control-ui/assets/pl-CvV8uM6B.js +0 -2
  773. package/dist/control-ui/assets/pt-BR-DhkGCPIb.js +0 -2
  774. package/dist/control-ui/assets/sessions-Dzj0Stfl.js +0 -306
  775. package/dist/control-ui/assets/skills-CTsU9T-x.js +0 -314
  776. package/dist/control-ui/assets/skills-shared-DkdwCfRw.js +0 -11
  777. package/dist/control-ui/assets/string-coerce-Dq6kwRii.js +0 -3
  778. package/dist/control-ui/assets/th-BWa0iFp9.js +0 -2
  779. package/dist/control-ui/assets/tr-CIyWcYOQ.js +0 -2
  780. package/dist/control-ui/assets/uk-Dddui7S3.js +0 -2
  781. package/dist/control-ui/assets/wallet-DRK53ouz.js +0 -93
  782. package/dist/control-ui/assets/zh-CN-DrnaMCjT.js +0 -2
  783. package/dist/control-ui/assets/zh-TW-AAoU4b-j.js +0 -2
  784. package/dist/control-ui-e8ifrzMw.js +0 -664
  785. package/dist/conversation-id-D_Z9mqfh.js +0 -235
  786. package/dist/conversation-id-Dp8o7Hf7.js +0 -38
  787. package/dist/conversation-runtime-B1TCRdfm.js +0 -31
  788. package/dist/core-BTxiBxhe.js +0 -275
  789. package/dist/cron-cli-D5WHyG5z.js +0 -713
  790. package/dist/daemon-cli-CbJ5WTkZ.js +0 -12
  791. package/dist/delegate-Bvy2iFqj.js +0 -64
  792. package/dist/detached-task-runtime-CdQlbOaF.js +0 -73
  793. package/dist/devices-cli-CHKYPFQk.js +0 -496
  794. package/dist/diagnostics-DXBnZZDV.js +0 -154
  795. package/dist/direct-dm-DscQrdWj.js +0 -64
  796. package/dist/dispatch-CsJVa2_C.js +0 -1131
  797. package/dist/dispatch-acp-C5r7kMjF.js +0 -981
  798. package/dist/dispatch-acp-manager.runtime-BmaeIQYw.js +0 -3
  799. package/dist/dispatch-acp.runtime-CrPqsjE7.js +0 -19
  800. package/dist/doctor-device-pairing-BIWNe_Jn.js +0 -307
  801. package/dist/doctor-gateway-daemon-flow-B1w_mTCi.js +0 -250
  802. package/dist/doctor-gateway-health-PGrHhbuk.js +0 -60
  803. package/dist/doctor-health-CjIXOYaZ.js +0 -59
  804. package/dist/doctor-health-contributions-Gewam3A0.js +0 -486
  805. package/dist/doctor-prompter-C_nZk0eT.js +0 -56
  806. package/dist/doctor-workspace-status-HNtMY9tr.js +0 -75
  807. package/dist/dreaming-6bEi10m2.js +0 -1574
  808. package/dist/dreaming-narrative-C8-bcUG0.js +0 -595
  809. package/dist/embedded-gateway-stub.runtime-DBFo1O2n.js +0 -9
  810. package/dist/embeddings-http-DI8wVPpp.js +0 -205
  811. package/dist/exec-approvals-cli-CElurcBk.js +0 -498
  812. package/dist/fallbacks-B5Ph7HO-.js +0 -31
  813. package/dist/fallbacks-DVBCWaCR.js +0 -2
  814. package/dist/fallbacks-shared-DJEGkADy.js +0 -111
  815. package/dist/gateway-CjtKuAFO.js +0 -115
  816. package/dist/gateway-cli-UeLtu8Gv.js +0 -1325
  817. package/dist/gateway-rpc-E2ZcD2Pb.js +0 -14
  818. package/dist/gateway-rpc.runtime-D9oxEGVM.js +0 -23
  819. package/dist/gateway-runtime-DUkvmYNT.js +0 -15
  820. package/dist/gateway-status-B2yemMI1.js +0 -584
  821. package/dist/genesis-tools-DkQyKJJH.js +0 -8998
  822. package/dist/genesis-tools.runtime-C--92dxG.js +0 -2
  823. package/dist/get-reply-from-config.runtime-DVW2Z3Xz.js +0 -2
  824. package/dist/get-reply-qcf7h9-q.js +0 -3879
  825. package/dist/graph-users-C-ZMFjxP.js +0 -1337
  826. package/dist/health-CQgtKb-a.js +0 -469
  827. package/dist/health-CVQcF_SU.js +0 -3
  828. package/dist/heartbeat-runner-BMpI76oC.js +0 -1292
  829. package/dist/heartbeat-runner-tlqZ2QRH.js +0 -5
  830. package/dist/heartbeat-runner.runtime-BLaJ1moj.js +0 -4
  831. package/dist/hooks-cli-UJV1DwY_.js +0 -433
  832. package/dist/http-endpoint-helpers-BKYK0lXJ.js +0 -41
  833. package/dist/http-utils-CSMhLOmU.js +0 -924
  834. package/dist/image-fallbacks-B1kkwX5i.js +0 -31
  835. package/dist/image-fallbacks-BLVKYnSI.js +0 -2
  836. package/dist/inbound-reply-dispatch-KxpaEPy-.js +0 -73
  837. package/dist/infra-runtime-B7Bioutr.js +0 -39
  838. package/dist/init-BbDgno6y.js +0 -59
  839. package/dist/library-wOAms75w.js +0 -45
  840. package/dist/lifecycle--fVDSapD.js +0 -229
  841. package/dist/lifecycle-DsoPNmHR.js +0 -571
  842. package/dist/lifecycle.runtime-B6D7-MbQ.js +0 -2
  843. package/dist/list-B99x_eEq.js +0 -2
  844. package/dist/list-Bg9vO-vK.js +0 -1201
  845. package/dist/list-CJFvAL5B.js +0 -130
  846. package/dist/list-CXO2Pv7s.js +0 -2
  847. package/dist/list.probe-DvT83QeD.js +0 -419
  848. package/dist/llm-slug-generator-Dk-2o6wu.js +0 -79
  849. package/dist/load-config-DcSdLvU4.js +0 -35
  850. package/dist/local-dispatch.runtime-CeUL5zUz.js +0 -8
  851. package/dist/logs-cli-CkO4A9e_.js +0 -265
  852. package/dist/logs-cli.runtime-CjZMd8Ps.js +0 -2
  853. package/dist/main-session-restart-recovery-Yaowxz1V.js +0 -206
  854. package/dist/managed-image-attachments-BRkGH8id.js +0 -635
  855. package/dist/managed-image-attachments-CVQmQz19.js +0 -2
  856. package/dist/manager-ClvLmUep.js +0 -2057
  857. package/dist/manager-DLd5DOHM.js +0 -2
  858. package/dist/markdown-to-line-DdcFUlNP.js +0 -790
  859. package/dist/mcp-cli-Bg0n1yvO.js +0 -724
  860. package/dist/mcp-http-DwN4JtLF.js +0 -529
  861. package/dist/memory-core-host-runtime-cli-DokggwF4.js +0 -9
  862. package/dist/message-A6K1Uln8.js +0 -231
  863. package/dist/message-action-runner-By12iwmY.js +0 -1406
  864. package/dist/message-action-runner-DB7vQjDX.js +0 -2
  865. package/dist/message-actions-p0tyiJsp.js +0 -143
  866. package/dist/message.gateway.runtime-x9oPkfCV.js +0 -2
  867. package/dist/method-scopes-C2W7BZE-.js +0 -208
  868. package/dist/models-cli-BLajRwW5.js +0 -219
  869. package/dist/models-http-CbY-2ddw.js +0 -92
  870. package/dist/monitor-2gr47zvz.js +0 -2
  871. package/dist/monitor-CG9Xn5kb.js +0 -1237
  872. package/dist/monitor-CJXWP42d.js +0 -1661
  873. package/dist/monitor-V8PDbadr.js +0 -1459
  874. package/dist/monitor-Yea6MUcs.js +0 -671
  875. package/dist/monitor-_RMYsKC-.js +0 -788
  876. package/dist/monitor-auth-Ds-_E_h_.js +0 -207
  877. package/dist/monitor-processing-C7thbjUR.js +0 -1974
  878. package/dist/monitor.runtime-TBmnIKD-.js +0 -2
  879. package/dist/monitor.webhook-DSkuylzE.js +0 -180
  880. package/dist/msteams-KM-ToWtn.js +0 -35
  881. package/dist/native-hook-relay-BDz0eLdj.js +0 -519
  882. package/dist/nextcloud-talk-Bx1j4jh0.js +0 -17
  883. package/dist/node-cli-aEN8rLyY.js +0 -2506
  884. package/dist/nodes-cli-Dv0SFhFx.js +0 -1046
  885. package/dist/nodes-utils-DQExHgOK.js +0 -84
  886. package/dist/nodes.helpers-BkElz_SG.js +0 -34
  887. package/dist/notify-DH8p0jbK.js +0 -315
  888. package/dist/onboard-DKgQvVgg.js +0 -632
  889. package/dist/onboard-helpers-BLaaRiIQ.js +0 -204
  890. package/dist/onboard-helpers-CxDujxN_.js +0 -6
  891. package/dist/onboard-remote-BHcS99gt.js +0 -193
  892. package/dist/onboard-remote-CxD-xQ89.js +0 -2
  893. package/dist/onboard-skills-D2X91a-l.js +0 -2
  894. package/dist/onboard-skills-Z8VWQOTM.js +0 -134
  895. package/dist/openai-http-D6U8-gsV.js +0 -500
  896. package/dist/openresponses-http-8Gzpx-dY.js +0 -1128
  897. package/dist/operator-approvals-client-CPBdQHpS.js +0 -68
  898. package/dist/outbound.runtime-DyUVsM-o.js +0 -2
  899. package/dist/pair-command-approve-iifXVm-A.js +0 -44
  900. package/dist/persistent-bindings.lifecycle-D0KiOOHL.js +0 -2
  901. package/dist/persistent-bindings.lifecycle-Dg5f2-ZX.js +0 -85
  902. package/dist/pi-embedded-CIvfsFDK.js +0 -2905
  903. package/dist/pi-embedded-DfKObnKr.js +0 -4
  904. package/dist/pi-embedded.runtime-CSRgPcMe.js +0 -4
  905. package/dist/pi-tool-definition-adapter-BK1Jgz8u.js +0 -217
  906. package/dist/pi-tools-xZFkQObl.js +0 -1057
  907. package/dist/pi-tools.before-tool-call-Cvql1Guc.js +0 -433
  908. package/dist/pi-tools.before-tool-call-DM-LeYVv.js +0 -2
  909. package/dist/plugin-BCMcHdm8.js +0 -12195
  910. package/dist/plugin-enabled-CfU6MzpX.js +0 -140
  911. package/dist/plugin-registration-5A3P83yn.js +0 -23
  912. package/dist/plugin-service-C3tJzbuH.js +0 -2890
  913. package/dist/policy-C4Ko4jxG.js +0 -328
  914. package/dist/prepare.runtime-D73JEx7U.js +0 -815
  915. package/dist/probe-3YRw5INl.js +0 -2
  916. package/dist/probe-B1B8f2xn.js +0 -74
  917. package/dist/probe-BOowi-Kq.js +0 -45
  918. package/dist/probe-BTjPGJW1.js +0 -2
  919. package/dist/probe-BcltnB3e.js +0 -2205
  920. package/dist/probe-DIRzDUPK.js +0 -1443
  921. package/dist/probe-r4-jBkoJ.js +0 -241
  922. package/dist/program-Dfu5UhC1.js +0 -111
  923. package/dist/prompt-select-styled-Dbu9qalJ.js +0 -20
  924. package/dist/provider-dispatcher-4wt-ZeZZ.js +0 -2
  925. package/dist/provider-dispatcher-C2UhWO1m.js +0 -22
  926. package/dist/qr-cli-BuDd3ifv.js +0 -2
  927. package/dist/qr-cli-DqP37LYz.js +0 -349
  928. package/dist/reaction-runtime-api-Bvz0Pveq.js +0 -116
  929. package/dist/reactions-DN1UVx3u.js +0 -998
  930. package/dist/register-service-commands-DwSQt0X_.js +0 -71
  931. package/dist/register.agent-clbTKCyG.js +0 -247
  932. package/dist/register.configure-ByRQumwS.js +0 -15
  933. package/dist/register.maintenance-irO_yFnN.js +0 -438
  934. package/dist/register.message-BV2yRYIp.js +0 -329
  935. package/dist/register.onboard-DNcKmHVS.js +0 -81
  936. package/dist/register.runtime-BfeanYPK.js +0 -81
  937. package/dist/register.setup-DtWiNL2V.js +0 -150
  938. package/dist/register.status-health-sessions-D0SdMPNv.js +0 -1215
  939. package/dist/register.subclis-CQQMGIv7.js +0 -3
  940. package/dist/register.subclis-CYMsqdxE.js +0 -29
  941. package/dist/register.subclis-core-DWDlwb58.js +0 -243
  942. package/dist/register.wallet-CR3_wMxj.js +0 -159
  943. package/dist/reply-dispatch-runtime-C3eU1JDN.js +0 -13
  944. package/dist/reply-runtime-CDVJcLIY.js +0 -11
  945. package/dist/reply.runtime-CreZjwrI.js +0 -2
  946. package/dist/restart-health-D6gHXWN7.js +0 -202
  947. package/dist/restart-health-DPEaVmNm.js +0 -2
  948. package/dist/root-help-CtpK6G48.js +0 -44
  949. package/dist/routes-BLmIMxHE.js +0 -2
  950. package/dist/routes-DVK0yoCk.js +0 -3340
  951. package/dist/rpc-B284aspW.js +0 -61
  952. package/dist/rpc.runtime-_Lr6h1P2.js +0 -21
  953. package/dist/run-delivery.runtime-Vl9zviox.js +0 -530
  954. package/dist/run-embedded.runtime-BxfpUMvk.js +0 -4
  955. package/dist/run-execution-cli.runtime-DuoOsLmQ.js +0 -4
  956. package/dist/run-executor.runtime-CnNmatiS.js +0 -277
  957. package/dist/run-main-Bk3B1Ycl.js +0 -516
  958. package/dist/run-subagent-registry.runtime-DYsO0_RA.js +0 -2
  959. package/dist/run-wait-BMbf92lX.js +0 -135
  960. package/dist/runtime-CVfSbgJg.js +0 -973
  961. package/dist/runtime-D83Zw8_L.js +0 -9
  962. package/dist/runtime-api-BjXPh772.js +0 -9
  963. package/dist/runtime-api-BqLJECf1.js +0 -14
  964. package/dist/runtime-api-D0lP9bs_.js +0 -9
  965. package/dist/runtime-api-SC4yZOqC.js +0 -4
  966. package/dist/runtime-embedded-pi.runtime-BqxRowCu.js +0 -2
  967. package/dist/runtime-internal-BoBPttX5.js +0 -2
  968. package/dist/runtime-options-0mbgwVcn.js +0 -275
  969. package/dist/runtime-schema-DnS1dcv9.js +0 -27748
  970. package/dist/scan-0tDfQcbh.js +0 -523
  971. package/dist/scan-kap7E7fQ.js +0 -2
  972. package/dist/secrets-cli-C-MP3qxL.js +0 -2101
  973. package/dist/security-cli-YiMwABOV.js +0 -486
  974. package/dist/selection-B1YFEfhn.js +0 -7737
  975. package/dist/selection-yj1VeFgc.js +0 -2
  976. package/dist/send-ChDswQ8K.js +0 -102
  977. package/dist/send-m-3Wh6Ul.js +0 -156
  978. package/dist/send.runtime-HuAZWRMT.js +0 -2
  979. package/dist/server-1tAvo2uk.js +0 -77
  980. package/dist/server-CgWhiZaZ.js +0 -13
  981. package/dist/server-context-DC7VPNrP.js +0 -846
  982. package/dist/server-context-fbmj6rsw.js +0 -2
  983. package/dist/server-node-events-BMfbJz4h.js +0 -481
  984. package/dist/server-plugin-bootstrap-32-_V8s1.js +0 -11103
  985. package/dist/server-plugin-bootstrap-BOy3f_kr.js +0 -2
  986. package/dist/server-restart-sentinel-JaqT_c7z.js +0 -697
  987. package/dist/server.impl-ozoUfbJY.js +0 -12724
  988. package/dist/service-CHmvDejV.js +0 -926
  989. package/dist/session-kill-http-Bi16FXzX.js +0 -110
  990. package/dist/session-reset-service-0D6xi-ak.js +0 -471
  991. package/dist/session-route-CdIF_-j8.js +0 -93
  992. package/dist/session-status.runtime-BenL5h6z.js +0 -2
  993. package/dist/session-subagent-reactivation.runtime-VrwlEPse.js +0 -2
  994. package/dist/session-tab-registry-Cch43wvs.js +0 -491
  995. package/dist/session-visibility-BUY4AKE8.js +0 -147
  996. package/dist/sessions-helpers-C1ie4VY2.js +0 -304
  997. package/dist/sessions-history-http-DvqOoKZP.js +0 -383
  998. package/dist/sessions-patch-DIqqzD_r.js +0 -309
  999. package/dist/sessions-resolve-BI24rrsW.js +0 -174
  1000. package/dist/sessions.runtime-B8dy_jZO.js +0 -2
  1001. package/dist/setup-CIGRiYma.js +0 -495
  1002. package/dist/setup-api-C2z6aEmf.js +0 -29
  1003. package/dist/setup-core-DwswrxD9.js +0 -171
  1004. package/dist/setup-core-OrNOJ5Dt.js +0 -176
  1005. package/dist/setup-surface-DRkiJObE.js +0 -286
  1006. package/dist/setup-surface-Duar853m.js +0 -403
  1007. package/dist/setup-surface-te0vyu3k.js +0 -219
  1008. package/dist/setup.finalize-C4D2iTZK.js +0 -539
  1009. package/dist/setup.gateway-config-js5kJWDU.js +0 -250
  1010. package/dist/shared-BjQB2kM2.js +0 -76
  1011. package/dist/shared-CJH2czP-.js +0 -121
  1012. package/dist/shared-CcLhf2wk.js +0 -198
  1013. package/dist/slash-state-CKJGZHok.js +0 -1911
  1014. package/dist/src-CZ8XTjkB.js +0 -3974
  1015. package/dist/startup-context-BMpCePC2.js +0 -312
  1016. package/dist/status-BFeYb9-f.js +0 -2
  1017. package/dist/status-BOleDqu5.js +0 -190
  1018. package/dist/status-BgCUJLW2.js +0 -397
  1019. package/dist/status-DJ1sF6YO.js +0 -209
  1020. package/dist/status-DYJ_8ZJ7.js +0 -2
  1021. package/dist/status-all-CtEWqGEX.js +0 -498
  1022. package/dist/status-json-DTxIuLgj.js +0 -14
  1023. package/dist/status-json-command-CcMv7nYt.js +0 -84
  1024. package/dist/status-runtime-shared-DZDRmXg3.js +0 -257
  1025. package/dist/status-subagents.runtime-C-hQle1W.js +0 -18
  1026. package/dist/status-tDmBvO9G.js +0 -3
  1027. package/dist/status-text-BUpcmvrn.js +0 -236
  1028. package/dist/status.gateway-connection.runtime-wLOiGcpu.js +0 -2
  1029. package/dist/status.gather-B6sN0B8c.js +0 -2
  1030. package/dist/status.gather-BuL7jLue.js +0 -292
  1031. package/dist/status.runtime-_vK1iN8J.js +0 -2
  1032. package/dist/status.scan-CzfgmgTG.js +0 -65
  1033. package/dist/status.scan-overview-D_a6XXNl.js +0 -379
  1034. package/dist/status.scan.fast-json-Cyohwc40.js +0 -2
  1035. package/dist/status.scan.fast-json-EjCk_IC5.js +0 -132
  1036. package/dist/status.summary-DOPlWkvO.js +0 -2
  1037. package/dist/status.summary-SF9yDHoG.js +0 -214
  1038. package/dist/subagent-announce-delivery-BETmbzks.js +0 -726
  1039. package/dist/subagent-announce-eXVKLvvC.js +0 -351
  1040. package/dist/subagent-announce-output-DCnvTZwP.js +0 -364
  1041. package/dist/subagent-control-DOW_fAs-.js +0 -506
  1042. package/dist/subagent-followup.runtime-Bfdcsho3.js +0 -68
  1043. package/dist/subagent-orphan-recovery-B-_eOw_g.js +0 -305
  1044. package/dist/subagent-registry-B1giKhqf.js +0 -1753
  1045. package/dist/subagent-registry-C5VQw19R.js +0 -3
  1046. package/dist/subagent-spawn-C9Tn7SaR.js +0 -1005
  1047. package/dist/system-cli-CxNpT3gx.js +0 -59
  1048. package/dist/targets-dj8UJRJ6.js +0 -67
  1049. package/dist/task-executor-ICSmgHPw.js +0 -360
  1050. package/dist/task-owner-access-Do_-kA0r.js +0 -74
  1051. package/dist/task-registry-D5vWx8tX.js +0 -2366
  1052. package/dist/task-registry-delivery-runtime-NVZZb9QU.js +0 -3
  1053. package/dist/task-registry-delivery-runtime-yimT8mwg.js +0 -2
  1054. package/dist/task-registry.maintenance-B-hFV6uU.js +0 -2
  1055. package/dist/task-registry.maintenance-vCNDvYID.js +0 -416
  1056. package/dist/testing-DggItyHP.js +0 -575
  1057. package/dist/text-report-kxNx8vB8.js +0 -587
  1058. package/dist/tool-resolution-CfvU1QKh.js +0 -90
  1059. package/dist/tools-effective-inventory-JUjxx1jC.js +0 -152
  1060. package/dist/tools-invoke-http-B67672Wx.js +0 -206
  1061. package/dist/trash--zyy7_il.js +0 -24
  1062. package/dist/tui-cli-C9l1W8a5.js +0 -4573
  1063. package/dist/update-cli-CWD6kp5u.js +0 -1728
  1064. package/dist/upgrade-CtywVoEi.js +0 -1226
  1065. package/dist/video-generation-task-status-DtZ_rioL.js +0 -163
  1066. package/dist/wait-for-idle-before-flush-s-nJUXPe.js +0 -5986
@@ -0,0 +1,2742 @@
1
+ import { a as normalizeLowercaseStringOrEmpty, c as normalizeOptionalString } from "./string-coerce-C1IzJjqi.js";
2
+ import { _ as resolveStateDir } from "./paths-DmR9mjUX.js";
3
+ import { n as VERSION } from "./version-BoqlEm3e.js";
4
+ import { n as ENV_SECRET_REF_ID_RE } from "./types.secrets-ews2W8BF.js";
5
+ import { n as FILE_SECRET_REF_ID_PATTERN, r as SECRET_PROVIDER_ALIAS_PATTERN, t as EXEC_SECRET_REF_ID_JSON_SCHEMA_PATTERN } from "./ref-contract-GkHI8jyU.js";
6
+ import { n as logError, t as logDebug } from "./logger-DxTAquCB.js";
7
+ import { a as isLoopbackHost, c as isSecureWebSocketUrl } from "./net-AycWGi8-.js";
8
+ import { n as resolveSafeTimeoutDelayMs } from "./timer-delay-Co_I1iPe.js";
9
+ import { n as normalizeDeviceAuthScopes, t as normalizeDeviceAuthRole } from "./device-auth-7WDS2Ilv.js";
10
+ import { t as safeParseJsonWithSchema } from "./zod-parse-DQfbYHdH.js";
11
+ import { a as signDevicePayload, i as publicKeyRawBase64UrlFromPem, n as loadOrCreateDeviceIdentity } from "./device-identity-CqT162U8.js";
12
+ import { t as normalizeFingerprint } from "./fingerprint-7eiODdmC.js";
13
+ import { t as rawDataToString } from "./ws-VGsesElb.js";
14
+ import { g as GATEWAY_CLIENT_NAMES, h as GATEWAY_CLIENT_MODES, m as GATEWAY_CLIENT_IDS } from "./message-channel-D2Y7UhTM.js";
15
+ import { t as normalizeDeviceMetadataForAuth } from "./device-metadata-normalization-3n9pnH3U.js";
16
+ import { l as readConnectErrorDetailCode, s as formatConnectErrorMessage, t as ConnectErrorDetailCodes, u as readConnectErrorRecoveryAdvice } from "./connect-error-details-AqnPMQnc.js";
17
+ import { t as INPUT_PROVENANCE_KIND_VALUES } from "./input-provenance-IJ6YNe09.js";
18
+ import { n as MAX_PLUGIN_APPROVAL_TIMEOUT_MS } from "./plugin-approvals-D_mI2Q6z.js";
19
+ import fs from "node:fs";
20
+ import path from "node:path";
21
+ import { randomUUID } from "node:crypto";
22
+ import { z } from "zod";
23
+ import { WebSocket as WebSocket$1 } from "ws";
24
+ import AjvPkg from "ajv";
25
+ import { Type } from "typebox";
26
+ //#region src/shared/device-auth-store.ts
27
+ function loadDeviceAuthTokenFromStore(params) {
28
+ const store = params.adapter.readStore();
29
+ if (!store || store.deviceId !== params.deviceId) return null;
30
+ const role = normalizeDeviceAuthRole(params.role);
31
+ const entry = store.tokens[role];
32
+ if (!entry || typeof entry.token !== "string") return null;
33
+ return entry;
34
+ }
35
+ function storeDeviceAuthTokenInStore(params) {
36
+ const role = normalizeDeviceAuthRole(params.role);
37
+ const existing = params.adapter.readStore();
38
+ const next = {
39
+ version: 1,
40
+ deviceId: params.deviceId,
41
+ tokens: existing && existing.deviceId === params.deviceId && existing.tokens ? { ...existing.tokens } : {}
42
+ };
43
+ const entry = {
44
+ token: params.token,
45
+ role,
46
+ scopes: normalizeDeviceAuthScopes(params.scopes),
47
+ updatedAtMs: Date.now()
48
+ };
49
+ next.tokens[role] = entry;
50
+ params.adapter.writeStore(next);
51
+ return entry;
52
+ }
53
+ function clearDeviceAuthTokenFromStore(params) {
54
+ const store = params.adapter.readStore();
55
+ if (!store || store.deviceId !== params.deviceId) return;
56
+ const role = normalizeDeviceAuthRole(params.role);
57
+ if (!store.tokens[role]) return;
58
+ const next = {
59
+ version: 1,
60
+ deviceId: store.deviceId,
61
+ tokens: { ...store.tokens }
62
+ };
63
+ delete next.tokens[role];
64
+ params.adapter.writeStore(next);
65
+ }
66
+ //#endregion
67
+ //#region src/infra/device-auth-store.ts
68
+ const DEVICE_AUTH_FILE = "device-auth.json";
69
+ const DeviceAuthStoreSchema = z.object({
70
+ version: z.literal(1),
71
+ deviceId: z.string(),
72
+ tokens: z.record(z.string(), z.unknown())
73
+ });
74
+ function resolveDeviceAuthPath(env = process.env) {
75
+ return path.join(resolveStateDir(env), "identity", DEVICE_AUTH_FILE);
76
+ }
77
+ function readStore(filePath) {
78
+ try {
79
+ if (!fs.existsSync(filePath)) return null;
80
+ return safeParseJsonWithSchema(DeviceAuthStoreSchema, fs.readFileSync(filePath, "utf8"));
81
+ } catch {
82
+ return null;
83
+ }
84
+ }
85
+ function writeStore(filePath, store) {
86
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
87
+ fs.writeFileSync(filePath, `${JSON.stringify(store, null, 2)}\n`, { mode: 384 });
88
+ try {
89
+ fs.chmodSync(filePath, 384);
90
+ } catch {}
91
+ }
92
+ function loadDeviceAuthToken(params) {
93
+ const filePath = resolveDeviceAuthPath(params.env);
94
+ return loadDeviceAuthTokenFromStore({
95
+ adapter: {
96
+ readStore: () => readStore(filePath),
97
+ writeStore: (_store) => {}
98
+ },
99
+ deviceId: params.deviceId,
100
+ role: params.role
101
+ });
102
+ }
103
+ function storeDeviceAuthToken(params) {
104
+ const filePath = resolveDeviceAuthPath(params.env);
105
+ return storeDeviceAuthTokenInStore({
106
+ adapter: {
107
+ readStore: () => readStore(filePath),
108
+ writeStore: (store) => writeStore(filePath, store)
109
+ },
110
+ deviceId: params.deviceId,
111
+ role: params.role,
112
+ token: params.token,
113
+ scopes: params.scopes
114
+ });
115
+ }
116
+ function clearDeviceAuthToken(params) {
117
+ const filePath = resolveDeviceAuthPath(params.env);
118
+ clearDeviceAuthTokenFromStore({
119
+ adapter: {
120
+ readStore: () => readStore(filePath),
121
+ writeStore: (store) => writeStore(filePath, store)
122
+ },
123
+ deviceId: params.deviceId,
124
+ role: params.role
125
+ });
126
+ }
127
+ //#endregion
128
+ //#region src/gateway/device-auth.ts
129
+ function buildDeviceAuthPayload(params) {
130
+ const scopes = params.scopes.join(",");
131
+ const token = params.token ?? "";
132
+ return [
133
+ "v2",
134
+ params.deviceId,
135
+ params.clientId,
136
+ params.clientMode,
137
+ params.role,
138
+ scopes,
139
+ String(params.signedAtMs),
140
+ token,
141
+ params.nonce
142
+ ].join("|");
143
+ }
144
+ function buildDeviceAuthPayloadV3(params) {
145
+ const scopes = params.scopes.join(",");
146
+ const token = params.token ?? "";
147
+ const platform = normalizeDeviceMetadataForAuth(params.platform);
148
+ const deviceFamily = normalizeDeviceMetadataForAuth(params.deviceFamily);
149
+ return [
150
+ "v3",
151
+ params.deviceId,
152
+ params.clientId,
153
+ params.clientMode,
154
+ params.role,
155
+ scopes,
156
+ String(params.signedAtMs),
157
+ token,
158
+ params.nonce,
159
+ platform,
160
+ deviceFamily
161
+ ].join("|");
162
+ }
163
+ //#endregion
164
+ //#region src/gateway/handshake-timeouts.ts
165
+ const DEFAULT_PREAUTH_HANDSHAKE_TIMEOUT_MS = 1e4;
166
+ const MAX_CONNECT_CHALLENGE_TIMEOUT_MS = DEFAULT_PREAUTH_HANDSHAKE_TIMEOUT_MS;
167
+ function clampConnectChallengeTimeoutMs(timeoutMs) {
168
+ return Math.max(250, Math.min(MAX_CONNECT_CHALLENGE_TIMEOUT_MS, timeoutMs));
169
+ }
170
+ function getConnectChallengeTimeoutMsFromEnv(env = process.env) {
171
+ const raw = env.GENESIS_CONNECT_CHALLENGE_TIMEOUT_MS;
172
+ if (raw) {
173
+ const parsed = Number(raw);
174
+ if (Number.isFinite(parsed) && parsed > 0) return parsed;
175
+ }
176
+ }
177
+ function resolveConnectChallengeTimeoutMs(timeoutMs) {
178
+ if (typeof timeoutMs === "number" && Number.isFinite(timeoutMs)) return clampConnectChallengeTimeoutMs(timeoutMs);
179
+ const envOverride = getConnectChallengeTimeoutMsFromEnv();
180
+ if (envOverride !== void 0) return clampConnectChallengeTimeoutMs(envOverride);
181
+ return DEFAULT_PREAUTH_HANDSHAKE_TIMEOUT_MS;
182
+ }
183
+ function getPreauthHandshakeTimeoutMsFromEnv(env = process.env) {
184
+ const configuredTimeout = env.GENESIS_HANDSHAKE_TIMEOUT_MS || env.VITEST && env.GENESIS_TEST_HANDSHAKE_TIMEOUT_MS;
185
+ if (configuredTimeout) {
186
+ const parsed = Number(configuredTimeout);
187
+ if (Number.isFinite(parsed) && parsed > 0) return parsed;
188
+ }
189
+ return DEFAULT_PREAUTH_HANDSHAKE_TIMEOUT_MS;
190
+ }
191
+ //#endregion
192
+ //#region src/agents/internal-event-contract.ts
193
+ const AGENT_INTERNAL_EVENT_TYPE_TASK_COMPLETION = "task_completion";
194
+ const AGENT_INTERNAL_EVENT_SOURCES = [
195
+ "subagent",
196
+ "cron",
197
+ "video_generation",
198
+ "music_generation"
199
+ ];
200
+ const AGENT_INTERNAL_EVENT_STATUSES = [
201
+ "ok",
202
+ "timeout",
203
+ "error",
204
+ "unknown"
205
+ ];
206
+ function parseSessionLabel(raw) {
207
+ if (typeof raw !== "string") return {
208
+ ok: false,
209
+ error: "invalid label: must be a string"
210
+ };
211
+ const trimmed = raw.trim();
212
+ if (!trimmed) return {
213
+ ok: false,
214
+ error: "invalid label: empty"
215
+ };
216
+ if (trimmed.length > 512) return {
217
+ ok: false,
218
+ error: `invalid label: too long (max 512)`
219
+ };
220
+ return {
221
+ ok: true,
222
+ label: trimmed
223
+ };
224
+ }
225
+ //#endregion
226
+ //#region src/gateway/protocol/schema/primitives.ts
227
+ const NonEmptyString = Type.String({ minLength: 1 });
228
+ const ChatSendSessionKeyString = Type.String({
229
+ minLength: 1,
230
+ maxLength: 512
231
+ });
232
+ const SessionLabelString = Type.String({
233
+ minLength: 1,
234
+ maxLength: 512
235
+ });
236
+ const InputProvenanceSchema = Type.Object({
237
+ kind: Type.String({ enum: [...INPUT_PROVENANCE_KIND_VALUES] }),
238
+ originSessionId: Type.Optional(Type.String()),
239
+ sourceSessionKey: Type.Optional(Type.String()),
240
+ sourceChannel: Type.Optional(Type.String()),
241
+ sourceTool: Type.Optional(Type.String())
242
+ }, { additionalProperties: false });
243
+ const GatewayClientIdSchema = Type.Enum(GATEWAY_CLIENT_IDS);
244
+ const GatewayClientModeSchema = Type.Enum(GATEWAY_CLIENT_MODES);
245
+ Type.Union([
246
+ Type.Literal("env"),
247
+ Type.Literal("file"),
248
+ Type.Literal("exec")
249
+ ]);
250
+ const SecretProviderAliasString = Type.String({ pattern: SECRET_PROVIDER_ALIAS_PATTERN.source });
251
+ const EnvSecretRefSchema = Type.Object({
252
+ source: Type.Literal("env"),
253
+ provider: SecretProviderAliasString,
254
+ id: Type.String({ pattern: ENV_SECRET_REF_ID_RE.source })
255
+ }, { additionalProperties: false });
256
+ const FileSecretRefSchema = Type.Object({
257
+ source: Type.Literal("file"),
258
+ provider: SecretProviderAliasString,
259
+ id: Type.String({ pattern: FILE_SECRET_REF_ID_PATTERN.source })
260
+ }, { additionalProperties: false });
261
+ const ExecSecretRefSchema = Type.Object({
262
+ source: Type.Literal("exec"),
263
+ provider: SecretProviderAliasString,
264
+ id: Type.String({ pattern: EXEC_SECRET_REF_ID_JSON_SCHEMA_PATTERN })
265
+ }, { additionalProperties: false });
266
+ const SecretRefSchema = Type.Union([
267
+ EnvSecretRefSchema,
268
+ FileSecretRefSchema,
269
+ ExecSecretRefSchema
270
+ ]);
271
+ const SecretInputSchema = Type.Union([Type.String(), SecretRefSchema]);
272
+ //#endregion
273
+ //#region src/gateway/protocol/schema/agent.ts
274
+ const AgentInternalEventSchema = Type.Object({
275
+ type: Type.Literal(AGENT_INTERNAL_EVENT_TYPE_TASK_COMPLETION),
276
+ source: Type.String({ enum: [...AGENT_INTERNAL_EVENT_SOURCES] }),
277
+ childSessionKey: Type.String(),
278
+ childSessionId: Type.Optional(Type.String()),
279
+ announceType: Type.String(),
280
+ taskLabel: Type.String(),
281
+ status: Type.String({ enum: [...AGENT_INTERNAL_EVENT_STATUSES] }),
282
+ statusLabel: Type.String(),
283
+ result: Type.String(),
284
+ mediaUrls: Type.Optional(Type.Array(Type.String())),
285
+ statsLine: Type.Optional(Type.String()),
286
+ replyInstruction: Type.String()
287
+ }, { additionalProperties: false });
288
+ Type.Object({
289
+ runId: NonEmptyString,
290
+ seq: Type.Integer({ minimum: 0 }),
291
+ stream: NonEmptyString,
292
+ ts: Type.Integer({ minimum: 0 }),
293
+ data: Type.Record(Type.String(), Type.Unknown())
294
+ }, { additionalProperties: false });
295
+ const MessageActionToolContextSchema = Type.Object({
296
+ currentChannelId: Type.Optional(Type.String()),
297
+ currentGraphChannelId: Type.Optional(Type.String()),
298
+ currentChannelProvider: Type.Optional(Type.String()),
299
+ currentThreadTs: Type.Optional(Type.String()),
300
+ currentMessageId: Type.Optional(Type.Union([Type.String(), Type.Number()])),
301
+ replyToMode: Type.Optional(Type.Union([
302
+ Type.Literal("off"),
303
+ Type.Literal("first"),
304
+ Type.Literal("all"),
305
+ Type.Literal("batched")
306
+ ])),
307
+ hasRepliedRef: Type.Optional(Type.Object({ value: Type.Boolean() }, { additionalProperties: false })),
308
+ skipCrossContextDecoration: Type.Optional(Type.Boolean())
309
+ }, { additionalProperties: false });
310
+ const MessageActionParamsSchema = Type.Object({
311
+ channel: NonEmptyString,
312
+ action: NonEmptyString,
313
+ params: Type.Record(Type.String(), Type.Unknown()),
314
+ accountId: Type.Optional(Type.String()),
315
+ requesterSenderId: Type.Optional(Type.String()),
316
+ senderIsOwner: Type.Optional(Type.Boolean()),
317
+ sessionKey: Type.Optional(Type.String()),
318
+ sessionId: Type.Optional(Type.String()),
319
+ agentId: Type.Optional(Type.String()),
320
+ toolContext: Type.Optional(MessageActionToolContextSchema),
321
+ idempotencyKey: NonEmptyString
322
+ }, { additionalProperties: false });
323
+ const SendParamsSchema = Type.Object({
324
+ to: NonEmptyString,
325
+ message: Type.Optional(Type.String()),
326
+ mediaUrl: Type.Optional(Type.String()),
327
+ mediaUrls: Type.Optional(Type.Array(Type.String())),
328
+ gifPlayback: Type.Optional(Type.Boolean()),
329
+ channel: Type.Optional(Type.String()),
330
+ accountId: Type.Optional(Type.String()),
331
+ agentId: Type.Optional(Type.String()),
332
+ replyToId: Type.Optional(Type.String()),
333
+ threadId: Type.Optional(Type.String()),
334
+ sessionKey: Type.Optional(Type.String()),
335
+ idempotencyKey: NonEmptyString
336
+ }, { additionalProperties: false });
337
+ const PollParamsSchema = Type.Object({
338
+ to: NonEmptyString,
339
+ question: NonEmptyString,
340
+ options: Type.Array(NonEmptyString, {
341
+ minItems: 2,
342
+ maxItems: 12
343
+ }),
344
+ maxSelections: Type.Optional(Type.Integer({
345
+ minimum: 1,
346
+ maximum: 12
347
+ })),
348
+ durationSeconds: Type.Optional(Type.Integer({
349
+ minimum: 1,
350
+ maximum: 604800
351
+ })),
352
+ durationHours: Type.Optional(Type.Integer({ minimum: 1 })),
353
+ silent: Type.Optional(Type.Boolean()),
354
+ isAnonymous: Type.Optional(Type.Boolean()),
355
+ threadId: Type.Optional(Type.String()),
356
+ channel: Type.Optional(Type.String()),
357
+ accountId: Type.Optional(Type.String()),
358
+ idempotencyKey: NonEmptyString
359
+ }, { additionalProperties: false });
360
+ const AgentParamsSchema = Type.Object({
361
+ message: NonEmptyString,
362
+ agentId: Type.Optional(NonEmptyString),
363
+ provider: Type.Optional(Type.String()),
364
+ model: Type.Optional(Type.String()),
365
+ to: Type.Optional(Type.String()),
366
+ replyTo: Type.Optional(Type.String()),
367
+ sessionId: Type.Optional(Type.String()),
368
+ sessionKey: Type.Optional(Type.String()),
369
+ thinking: Type.Optional(Type.String()),
370
+ deliver: Type.Optional(Type.Boolean()),
371
+ attachments: Type.Optional(Type.Array(Type.Unknown())),
372
+ channel: Type.Optional(Type.String()),
373
+ replyChannel: Type.Optional(Type.String()),
374
+ accountId: Type.Optional(Type.String()),
375
+ replyAccountId: Type.Optional(Type.String()),
376
+ threadId: Type.Optional(Type.String()),
377
+ groupId: Type.Optional(Type.String()),
378
+ groupChannel: Type.Optional(Type.String()),
379
+ groupSpace: Type.Optional(Type.String()),
380
+ timeout: Type.Optional(Type.Integer({ minimum: 0 })),
381
+ bestEffortDeliver: Type.Optional(Type.Boolean()),
382
+ lane: Type.Optional(Type.String()),
383
+ cleanupBundleMcpOnRunEnd: Type.Optional(Type.Boolean()),
384
+ extraSystemPrompt: Type.Optional(Type.String()),
385
+ bootstrapContextMode: Type.Optional(Type.Union([Type.Literal("full"), Type.Literal("lightweight")])),
386
+ bootstrapContextRunKind: Type.Optional(Type.Union([
387
+ Type.Literal("default"),
388
+ Type.Literal("heartbeat"),
389
+ Type.Literal("cron")
390
+ ])),
391
+ internalEvents: Type.Optional(Type.Array(AgentInternalEventSchema)),
392
+ inputProvenance: Type.Optional(InputProvenanceSchema),
393
+ idempotencyKey: NonEmptyString,
394
+ label: Type.Optional(SessionLabelString)
395
+ }, { additionalProperties: false });
396
+ const AgentIdentityParamsSchema = Type.Object({
397
+ agentId: Type.Optional(NonEmptyString),
398
+ sessionKey: Type.Optional(Type.String())
399
+ }, { additionalProperties: false });
400
+ Type.Object({
401
+ agentId: NonEmptyString,
402
+ name: Type.Optional(NonEmptyString),
403
+ avatar: Type.Optional(NonEmptyString),
404
+ emoji: Type.Optional(NonEmptyString)
405
+ }, { additionalProperties: false });
406
+ const AgentWaitParamsSchema = Type.Object({
407
+ runId: NonEmptyString,
408
+ timeoutMs: Type.Optional(Type.Integer({ minimum: 0 }))
409
+ }, { additionalProperties: false });
410
+ const WakeParamsSchema = Type.Object({
411
+ mode: Type.Union([Type.Literal("now"), Type.Literal("next-heartbeat")]),
412
+ text: NonEmptyString
413
+ }, { additionalProperties: true });
414
+ //#endregion
415
+ //#region src/gateway/protocol/schema/agents-models-skills.ts
416
+ const ModelChoiceSchema = Type.Object({
417
+ id: NonEmptyString,
418
+ name: NonEmptyString,
419
+ provider: NonEmptyString,
420
+ alias: Type.Optional(NonEmptyString),
421
+ contextWindow: Type.Optional(Type.Integer({ minimum: 1 })),
422
+ reasoning: Type.Optional(Type.Boolean())
423
+ }, { additionalProperties: false });
424
+ const AgentSummarySchema = Type.Object({
425
+ id: NonEmptyString,
426
+ name: Type.Optional(NonEmptyString),
427
+ identity: Type.Optional(Type.Object({
428
+ name: Type.Optional(NonEmptyString),
429
+ theme: Type.Optional(NonEmptyString),
430
+ emoji: Type.Optional(NonEmptyString),
431
+ avatar: Type.Optional(NonEmptyString),
432
+ avatarUrl: Type.Optional(NonEmptyString)
433
+ }, { additionalProperties: false })),
434
+ workspace: Type.Optional(NonEmptyString),
435
+ model: Type.Optional(Type.Object({
436
+ primary: Type.Optional(NonEmptyString),
437
+ fallbacks: Type.Optional(Type.Array(NonEmptyString))
438
+ }, { additionalProperties: false }))
439
+ }, { additionalProperties: false });
440
+ const AgentsListParamsSchema = Type.Object({}, { additionalProperties: false });
441
+ Type.Object({
442
+ defaultId: NonEmptyString,
443
+ mainKey: NonEmptyString,
444
+ scope: Type.Union([Type.Literal("per-sender"), Type.Literal("global")]),
445
+ agents: Type.Array(AgentSummarySchema)
446
+ }, { additionalProperties: false });
447
+ const AgentsCreateParamsSchema = Type.Object({
448
+ name: NonEmptyString,
449
+ workspace: NonEmptyString,
450
+ model: Type.Optional(NonEmptyString),
451
+ emoji: Type.Optional(Type.String()),
452
+ avatar: Type.Optional(Type.String())
453
+ }, { additionalProperties: false });
454
+ Type.Object({
455
+ ok: Type.Literal(true),
456
+ agentId: NonEmptyString,
457
+ name: NonEmptyString,
458
+ workspace: NonEmptyString,
459
+ model: Type.Optional(NonEmptyString)
460
+ }, { additionalProperties: false });
461
+ const AgentsUpdateParamsSchema = Type.Object({
462
+ agentId: NonEmptyString,
463
+ name: Type.Optional(NonEmptyString),
464
+ workspace: Type.Optional(NonEmptyString),
465
+ model: Type.Optional(NonEmptyString),
466
+ emoji: Type.Optional(Type.String()),
467
+ avatar: Type.Optional(Type.String())
468
+ }, { additionalProperties: false });
469
+ Type.Object({
470
+ ok: Type.Literal(true),
471
+ agentId: NonEmptyString
472
+ }, { additionalProperties: false });
473
+ const AgentsDeleteParamsSchema = Type.Object({
474
+ agentId: NonEmptyString,
475
+ deleteFiles: Type.Optional(Type.Boolean())
476
+ }, { additionalProperties: false });
477
+ Type.Object({
478
+ ok: Type.Literal(true),
479
+ agentId: NonEmptyString,
480
+ removedBindings: Type.Integer({ minimum: 0 })
481
+ }, { additionalProperties: false });
482
+ const AgentsFileEntrySchema = Type.Object({
483
+ name: NonEmptyString,
484
+ path: NonEmptyString,
485
+ missing: Type.Boolean(),
486
+ size: Type.Optional(Type.Integer({ minimum: 0 })),
487
+ updatedAtMs: Type.Optional(Type.Integer({ minimum: 0 })),
488
+ content: Type.Optional(Type.String())
489
+ }, { additionalProperties: false });
490
+ const AgentsFilesListParamsSchema = Type.Object({ agentId: NonEmptyString }, { additionalProperties: false });
491
+ Type.Object({
492
+ agentId: NonEmptyString,
493
+ workspace: NonEmptyString,
494
+ files: Type.Array(AgentsFileEntrySchema)
495
+ }, { additionalProperties: false });
496
+ const AgentsFilesGetParamsSchema = Type.Object({
497
+ agentId: NonEmptyString,
498
+ name: NonEmptyString
499
+ }, { additionalProperties: false });
500
+ Type.Object({
501
+ agentId: NonEmptyString,
502
+ workspace: NonEmptyString,
503
+ file: AgentsFileEntrySchema
504
+ }, { additionalProperties: false });
505
+ const AgentsFilesSetParamsSchema = Type.Object({
506
+ agentId: NonEmptyString,
507
+ name: NonEmptyString,
508
+ content: Type.String()
509
+ }, { additionalProperties: false });
510
+ Type.Object({
511
+ ok: Type.Literal(true),
512
+ agentId: NonEmptyString,
513
+ workspace: NonEmptyString,
514
+ file: AgentsFileEntrySchema
515
+ }, { additionalProperties: false });
516
+ const ModelsListParamsSchema = Type.Object({}, { additionalProperties: false });
517
+ Type.Object({ models: Type.Array(ModelChoiceSchema) }, { additionalProperties: false });
518
+ const SkillsStatusParamsSchema = Type.Object({ agentId: Type.Optional(NonEmptyString) }, { additionalProperties: false });
519
+ const SkillsBinsParamsSchema = Type.Object({}, { additionalProperties: false });
520
+ Type.Object({ bins: Type.Array(NonEmptyString) }, { additionalProperties: false });
521
+ const SkillsInstallParamsSchema = Type.Union([Type.Object({
522
+ name: NonEmptyString,
523
+ installId: NonEmptyString,
524
+ dangerouslyForceUnsafeInstall: Type.Optional(Type.Boolean()),
525
+ timeoutMs: Type.Optional(Type.Integer({ minimum: 1e3 }))
526
+ }, { additionalProperties: false }), Type.Object({
527
+ source: Type.Literal("clawhub"),
528
+ slug: NonEmptyString,
529
+ version: Type.Optional(NonEmptyString),
530
+ force: Type.Optional(Type.Boolean()),
531
+ timeoutMs: Type.Optional(Type.Integer({ minimum: 1e3 }))
532
+ }, { additionalProperties: false })]);
533
+ const SkillsUpdateParamsSchema = Type.Union([Type.Object({
534
+ skillKey: NonEmptyString,
535
+ enabled: Type.Optional(Type.Boolean()),
536
+ apiKey: Type.Optional(Type.String()),
537
+ env: Type.Optional(Type.Record(NonEmptyString, Type.String()))
538
+ }, { additionalProperties: false }), Type.Object({
539
+ source: Type.Literal("clawhub"),
540
+ slug: Type.Optional(NonEmptyString),
541
+ all: Type.Optional(Type.Boolean())
542
+ }, { additionalProperties: false })]);
543
+ const SkillsSearchParamsSchema = Type.Object({
544
+ query: Type.Optional(NonEmptyString),
545
+ limit: Type.Optional(Type.Integer({
546
+ minimum: 1,
547
+ maximum: 100
548
+ }))
549
+ }, { additionalProperties: false });
550
+ Type.Object({ results: Type.Array(Type.Object({
551
+ score: Type.Number(),
552
+ slug: NonEmptyString,
553
+ displayName: NonEmptyString,
554
+ summary: Type.Optional(Type.String()),
555
+ version: Type.Optional(NonEmptyString),
556
+ updatedAt: Type.Optional(Type.Integer())
557
+ }, { additionalProperties: false })) }, { additionalProperties: false });
558
+ const SkillsDetailParamsSchema = Type.Object({ slug: NonEmptyString }, { additionalProperties: false });
559
+ Type.Object({
560
+ skill: Type.Union([Type.Object({
561
+ slug: NonEmptyString,
562
+ displayName: NonEmptyString,
563
+ summary: Type.Optional(Type.String()),
564
+ tags: Type.Optional(Type.Record(NonEmptyString, Type.String())),
565
+ createdAt: Type.Integer(),
566
+ updatedAt: Type.Integer()
567
+ }, { additionalProperties: false }), Type.Null()]),
568
+ latestVersion: Type.Optional(Type.Union([Type.Object({
569
+ version: NonEmptyString,
570
+ createdAt: Type.Integer(),
571
+ changelog: Type.Optional(Type.String())
572
+ }, { additionalProperties: false }), Type.Null()])),
573
+ metadata: Type.Optional(Type.Union([Type.Object({
574
+ os: Type.Optional(Type.Union([Type.Array(Type.String()), Type.Null()])),
575
+ systems: Type.Optional(Type.Union([Type.Array(Type.String()), Type.Null()]))
576
+ }, { additionalProperties: false }), Type.Null()])),
577
+ owner: Type.Optional(Type.Union([Type.Object({
578
+ handle: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
579
+ displayName: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
580
+ image: Type.Optional(Type.Union([Type.String(), Type.Null()]))
581
+ }, { additionalProperties: false }), Type.Null()]))
582
+ }, { additionalProperties: false });
583
+ const ToolsCatalogParamsSchema = Type.Object({
584
+ agentId: Type.Optional(NonEmptyString),
585
+ includePlugins: Type.Optional(Type.Boolean())
586
+ }, { additionalProperties: false });
587
+ const ToolsEffectiveParamsSchema = Type.Object({
588
+ agentId: Type.Optional(NonEmptyString),
589
+ sessionKey: NonEmptyString
590
+ }, { additionalProperties: false });
591
+ const ToolCatalogProfileSchema = Type.Object({
592
+ id: Type.Union([
593
+ Type.Literal("minimal"),
594
+ Type.Literal("coding"),
595
+ Type.Literal("messaging"),
596
+ Type.Literal("full")
597
+ ]),
598
+ label: NonEmptyString
599
+ }, { additionalProperties: false });
600
+ const ToolCatalogEntrySchema = Type.Object({
601
+ id: NonEmptyString,
602
+ label: NonEmptyString,
603
+ description: Type.String(),
604
+ source: Type.Union([Type.Literal("core"), Type.Literal("plugin")]),
605
+ pluginId: Type.Optional(NonEmptyString),
606
+ optional: Type.Optional(Type.Boolean()),
607
+ defaultProfiles: Type.Array(Type.Union([
608
+ Type.Literal("minimal"),
609
+ Type.Literal("coding"),
610
+ Type.Literal("messaging"),
611
+ Type.Literal("full")
612
+ ]))
613
+ }, { additionalProperties: false });
614
+ const ToolCatalogGroupSchema = Type.Object({
615
+ id: NonEmptyString,
616
+ label: NonEmptyString,
617
+ source: Type.Union([Type.Literal("core"), Type.Literal("plugin")]),
618
+ pluginId: Type.Optional(NonEmptyString),
619
+ tools: Type.Array(ToolCatalogEntrySchema)
620
+ }, { additionalProperties: false });
621
+ Type.Object({
622
+ agentId: NonEmptyString,
623
+ profiles: Type.Array(ToolCatalogProfileSchema),
624
+ groups: Type.Array(ToolCatalogGroupSchema)
625
+ }, { additionalProperties: false });
626
+ const ToolsEffectiveEntrySchema = Type.Object({
627
+ id: NonEmptyString,
628
+ label: NonEmptyString,
629
+ description: Type.String(),
630
+ rawDescription: Type.String(),
631
+ source: Type.Union([
632
+ Type.Literal("core"),
633
+ Type.Literal("plugin"),
634
+ Type.Literal("channel")
635
+ ]),
636
+ pluginId: Type.Optional(NonEmptyString),
637
+ channelId: Type.Optional(NonEmptyString)
638
+ }, { additionalProperties: false });
639
+ const ToolsEffectiveGroupSchema = Type.Object({
640
+ id: Type.Union([
641
+ Type.Literal("core"),
642
+ Type.Literal("plugin"),
643
+ Type.Literal("channel")
644
+ ]),
645
+ label: NonEmptyString,
646
+ source: Type.Union([
647
+ Type.Literal("core"),
648
+ Type.Literal("plugin"),
649
+ Type.Literal("channel")
650
+ ]),
651
+ tools: Type.Array(ToolsEffectiveEntrySchema)
652
+ }, { additionalProperties: false });
653
+ Type.Object({
654
+ agentId: NonEmptyString,
655
+ profile: NonEmptyString,
656
+ groups: Type.Array(ToolsEffectiveGroupSchema)
657
+ }, { additionalProperties: false });
658
+ //#endregion
659
+ //#region src/gateway/protocol/schema/channels.ts
660
+ const TalkModeParamsSchema = Type.Object({
661
+ enabled: Type.Boolean(),
662
+ phase: Type.Optional(Type.String())
663
+ }, { additionalProperties: false });
664
+ const TalkConfigParamsSchema = Type.Object({ includeSecrets: Type.Optional(Type.Boolean()) }, { additionalProperties: false });
665
+ const TalkSpeakParamsSchema = Type.Object({
666
+ text: NonEmptyString,
667
+ voiceId: Type.Optional(Type.String()),
668
+ modelId: Type.Optional(Type.String()),
669
+ outputFormat: Type.Optional(Type.String()),
670
+ speed: Type.Optional(Type.Number()),
671
+ rateWpm: Type.Optional(Type.Integer({ minimum: 1 })),
672
+ stability: Type.Optional(Type.Number()),
673
+ similarity: Type.Optional(Type.Number()),
674
+ style: Type.Optional(Type.Number()),
675
+ speakerBoost: Type.Optional(Type.Boolean()),
676
+ seed: Type.Optional(Type.Integer({ minimum: 0 })),
677
+ normalize: Type.Optional(Type.String()),
678
+ language: Type.Optional(Type.String()),
679
+ latencyTier: Type.Optional(Type.Integer({ minimum: 0 }))
680
+ }, { additionalProperties: false });
681
+ const TalkRealtimeSessionParamsSchema = Type.Object({
682
+ sessionKey: Type.Optional(Type.String()),
683
+ provider: Type.Optional(Type.String()),
684
+ model: Type.Optional(Type.String()),
685
+ voice: Type.Optional(Type.String())
686
+ }, { additionalProperties: false });
687
+ const TalkRealtimeSessionResultSchema = Type.Object({
688
+ provider: NonEmptyString,
689
+ clientSecret: NonEmptyString,
690
+ model: Type.Optional(Type.String()),
691
+ voice: Type.Optional(Type.String()),
692
+ expiresAt: Type.Optional(Type.Number())
693
+ }, { additionalProperties: false });
694
+ const talkProviderFieldSchemas = { apiKey: Type.Optional(SecretInputSchema) };
695
+ const TalkProviderConfigSchema = Type.Object(talkProviderFieldSchemas, { additionalProperties: true });
696
+ const ResolvedTalkConfigSchema = Type.Object({
697
+ provider: Type.String(),
698
+ config: TalkProviderConfigSchema
699
+ }, { additionalProperties: false });
700
+ const TalkConfigSchema = Type.Object({
701
+ provider: Type.Optional(Type.String()),
702
+ providers: Type.Optional(Type.Record(Type.String(), TalkProviderConfigSchema)),
703
+ resolved: ResolvedTalkConfigSchema,
704
+ interruptOnSpeech: Type.Optional(Type.Boolean()),
705
+ silenceTimeoutMs: Type.Optional(Type.Integer({ minimum: 1 }))
706
+ }, { additionalProperties: false });
707
+ const TalkConfigResultSchema = Type.Object({ config: Type.Object({
708
+ talk: Type.Optional(TalkConfigSchema),
709
+ session: Type.Optional(Type.Object({ mainKey: Type.Optional(Type.String()) }, { additionalProperties: false })),
710
+ ui: Type.Optional(Type.Object({ seamColor: Type.Optional(Type.String()) }, { additionalProperties: false }))
711
+ }, { additionalProperties: false }) }, { additionalProperties: false });
712
+ const TalkSpeakResultSchema = Type.Object({
713
+ audioBase64: NonEmptyString,
714
+ provider: NonEmptyString,
715
+ outputFormat: Type.Optional(Type.String()),
716
+ voiceCompatible: Type.Optional(Type.Boolean()),
717
+ mimeType: Type.Optional(Type.String()),
718
+ fileExtension: Type.Optional(Type.String())
719
+ }, { additionalProperties: false });
720
+ const ChannelsStatusParamsSchema = Type.Object({
721
+ probe: Type.Optional(Type.Boolean()),
722
+ timeoutMs: Type.Optional(Type.Integer({ minimum: 0 }))
723
+ }, { additionalProperties: false });
724
+ const ChannelAccountSnapshotSchema = Type.Object({
725
+ accountId: NonEmptyString,
726
+ name: Type.Optional(Type.String()),
727
+ enabled: Type.Optional(Type.Boolean()),
728
+ configured: Type.Optional(Type.Boolean()),
729
+ linked: Type.Optional(Type.Boolean()),
730
+ running: Type.Optional(Type.Boolean()),
731
+ connected: Type.Optional(Type.Boolean()),
732
+ reconnectAttempts: Type.Optional(Type.Integer({ minimum: 0 })),
733
+ lastConnectedAt: Type.Optional(Type.Integer({ minimum: 0 })),
734
+ lastError: Type.Optional(Type.String()),
735
+ healthState: Type.Optional(Type.String()),
736
+ lastStartAt: Type.Optional(Type.Integer({ minimum: 0 })),
737
+ lastStopAt: Type.Optional(Type.Integer({ minimum: 0 })),
738
+ lastInboundAt: Type.Optional(Type.Integer({ minimum: 0 })),
739
+ lastOutboundAt: Type.Optional(Type.Integer({ minimum: 0 })),
740
+ lastTransportActivityAt: Type.Optional(Type.Integer({ minimum: 0 })),
741
+ busy: Type.Optional(Type.Boolean()),
742
+ activeRuns: Type.Optional(Type.Integer({ minimum: 0 })),
743
+ lastRunActivityAt: Type.Optional(Type.Integer({ minimum: 0 })),
744
+ lastProbeAt: Type.Optional(Type.Integer({ minimum: 0 })),
745
+ mode: Type.Optional(Type.String()),
746
+ dmPolicy: Type.Optional(Type.String()),
747
+ allowFrom: Type.Optional(Type.Array(Type.String())),
748
+ tokenSource: Type.Optional(Type.String()),
749
+ botTokenSource: Type.Optional(Type.String()),
750
+ appTokenSource: Type.Optional(Type.String()),
751
+ baseUrl: Type.Optional(Type.String()),
752
+ allowUnmentionedGroups: Type.Optional(Type.Boolean()),
753
+ cliPath: Type.Optional(Type.Union([Type.String(), Type.Null()])),
754
+ dbPath: Type.Optional(Type.Union([Type.String(), Type.Null()])),
755
+ port: Type.Optional(Type.Union([Type.Integer({ minimum: 0 }), Type.Null()])),
756
+ probe: Type.Optional(Type.Unknown()),
757
+ audit: Type.Optional(Type.Unknown()),
758
+ application: Type.Optional(Type.Unknown())
759
+ }, { additionalProperties: true });
760
+ const ChannelUiMetaSchema = Type.Object({
761
+ id: NonEmptyString,
762
+ label: NonEmptyString,
763
+ detailLabel: NonEmptyString,
764
+ systemImage: Type.Optional(Type.String())
765
+ }, { additionalProperties: false });
766
+ Type.Object({
767
+ ts: Type.Integer({ minimum: 0 }),
768
+ channelOrder: Type.Array(NonEmptyString),
769
+ channelLabels: Type.Record(NonEmptyString, NonEmptyString),
770
+ channelDetailLabels: Type.Optional(Type.Record(NonEmptyString, NonEmptyString)),
771
+ channelSystemImages: Type.Optional(Type.Record(NonEmptyString, NonEmptyString)),
772
+ channelMeta: Type.Optional(Type.Array(ChannelUiMetaSchema)),
773
+ channels: Type.Record(NonEmptyString, Type.Unknown()),
774
+ channelAccounts: Type.Record(NonEmptyString, Type.Array(ChannelAccountSnapshotSchema)),
775
+ channelDefaultAccountId: Type.Record(NonEmptyString, NonEmptyString)
776
+ }, { additionalProperties: false });
777
+ const ChannelsLogoutParamsSchema = Type.Object({
778
+ channel: NonEmptyString,
779
+ accountId: Type.Optional(Type.String())
780
+ }, { additionalProperties: false });
781
+ const ChannelsStartParamsSchema = Type.Object({
782
+ channel: NonEmptyString,
783
+ accountId: Type.Optional(Type.String())
784
+ }, { additionalProperties: false });
785
+ const WebLoginStartParamsSchema = Type.Object({
786
+ force: Type.Optional(Type.Boolean()),
787
+ timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })),
788
+ verbose: Type.Optional(Type.Boolean()),
789
+ accountId: Type.Optional(Type.String())
790
+ }, { additionalProperties: false });
791
+ const QrDataUrlSchema = Type.String({
792
+ maxLength: 16384,
793
+ pattern: "^data:image/png;base64,"
794
+ });
795
+ const WebLoginWaitParamsSchema = Type.Object({
796
+ timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })),
797
+ accountId: Type.Optional(Type.String()),
798
+ currentQrDataUrl: Type.Optional(QrDataUrlSchema)
799
+ }, { additionalProperties: false });
800
+ const COMMAND_DESCRIPTION_MAX_LENGTH = 2e3;
801
+ const BoundedNonEmptyString = (maxLength) => Type.String({
802
+ minLength: 1,
803
+ maxLength
804
+ });
805
+ const CommandSourceSchema = Type.Union([
806
+ Type.Literal("native"),
807
+ Type.Literal("skill"),
808
+ Type.Literal("plugin")
809
+ ]);
810
+ const CommandScopeSchema = Type.Union([
811
+ Type.Literal("text"),
812
+ Type.Literal("native"),
813
+ Type.Literal("both")
814
+ ]);
815
+ const CommandCategorySchema = Type.Union([
816
+ Type.Literal("session"),
817
+ Type.Literal("options"),
818
+ Type.Literal("status"),
819
+ Type.Literal("management"),
820
+ Type.Literal("media"),
821
+ Type.Literal("tools"),
822
+ Type.Literal("docks")
823
+ ]);
824
+ const CommandArgChoiceSchema = Type.Object({
825
+ value: Type.String({ maxLength: 200 }),
826
+ label: Type.String({ maxLength: 200 })
827
+ }, { additionalProperties: false });
828
+ const CommandArgSchema = Type.Object({
829
+ name: BoundedNonEmptyString(200),
830
+ description: Type.String({ maxLength: 500 }),
831
+ type: Type.Union([
832
+ Type.Literal("string"),
833
+ Type.Literal("number"),
834
+ Type.Literal("boolean")
835
+ ]),
836
+ required: Type.Optional(Type.Boolean()),
837
+ choices: Type.Optional(Type.Array(CommandArgChoiceSchema, { maxItems: 50 })),
838
+ dynamic: Type.Optional(Type.Boolean())
839
+ }, { additionalProperties: false });
840
+ const CommandEntrySchema = Type.Object({
841
+ name: BoundedNonEmptyString(200),
842
+ nativeName: Type.Optional(BoundedNonEmptyString(200)),
843
+ textAliases: Type.Optional(Type.Array(BoundedNonEmptyString(200), { maxItems: 20 })),
844
+ description: Type.String({ maxLength: COMMAND_DESCRIPTION_MAX_LENGTH }),
845
+ category: Type.Optional(CommandCategorySchema),
846
+ source: CommandSourceSchema,
847
+ scope: CommandScopeSchema,
848
+ acceptsArgs: Type.Boolean(),
849
+ args: Type.Optional(Type.Array(CommandArgSchema, { maxItems: 20 }))
850
+ }, { additionalProperties: false });
851
+ const CommandsListParamsSchema = Type.Object({
852
+ agentId: Type.Optional(NonEmptyString),
853
+ provider: Type.Optional(NonEmptyString),
854
+ scope: Type.Optional(CommandScopeSchema),
855
+ includeArgs: Type.Optional(Type.Boolean())
856
+ }, { additionalProperties: false });
857
+ Type.Object({ commands: Type.Array(CommandEntrySchema, { maxItems: 500 }) }, { additionalProperties: false });
858
+ //#endregion
859
+ //#region src/gateway/protocol/schema/config.ts
860
+ const ConfigSchemaLookupPathString = Type.String({
861
+ minLength: 1,
862
+ maxLength: 1024,
863
+ pattern: "^[A-Za-z0-9_./\\[\\]\\-*]+$"
864
+ });
865
+ const ConfigDeliveryContextSchema = Type.Object({
866
+ channel: Type.Optional(Type.String()),
867
+ to: Type.Optional(Type.String()),
868
+ accountId: Type.Optional(Type.String()),
869
+ threadId: Type.Optional(Type.Union([Type.String(), Type.Number()]))
870
+ }, { additionalProperties: false });
871
+ const ConfigGetParamsSchema = Type.Object({}, { additionalProperties: false });
872
+ const ConfigSetParamsSchema = Type.Object({
873
+ raw: NonEmptyString,
874
+ baseHash: Type.Optional(NonEmptyString)
875
+ }, { additionalProperties: false });
876
+ const ConfigApplyLikeParamsSchema = Type.Object({
877
+ raw: NonEmptyString,
878
+ baseHash: Type.Optional(NonEmptyString),
879
+ sessionKey: Type.Optional(Type.String()),
880
+ deliveryContext: Type.Optional(ConfigDeliveryContextSchema),
881
+ note: Type.Optional(Type.String()),
882
+ restartDelayMs: Type.Optional(Type.Integer({ minimum: 0 }))
883
+ }, { additionalProperties: false });
884
+ const ConfigApplyParamsSchema = ConfigApplyLikeParamsSchema;
885
+ const ConfigPatchParamsSchema = ConfigApplyLikeParamsSchema;
886
+ const ConfigSchemaParamsSchema = Type.Object({}, { additionalProperties: false });
887
+ const ConfigSchemaLookupParamsSchema = Type.Object({ path: ConfigSchemaLookupPathString }, { additionalProperties: false });
888
+ const UpdateRunParamsSchema = Type.Object({
889
+ sessionKey: Type.Optional(Type.String()),
890
+ deliveryContext: Type.Optional(ConfigDeliveryContextSchema),
891
+ note: Type.Optional(Type.String()),
892
+ restartDelayMs: Type.Optional(Type.Integer({ minimum: 0 })),
893
+ timeoutMs: Type.Optional(Type.Integer({ minimum: 1 }))
894
+ }, { additionalProperties: false });
895
+ const ConfigUiHintSchema = Type.Object({
896
+ label: Type.Optional(Type.String()),
897
+ help: Type.Optional(Type.String()),
898
+ tags: Type.Optional(Type.Array(Type.String())),
899
+ group: Type.Optional(Type.String()),
900
+ order: Type.Optional(Type.Integer()),
901
+ advanced: Type.Optional(Type.Boolean()),
902
+ sensitive: Type.Optional(Type.Boolean()),
903
+ placeholder: Type.Optional(Type.String()),
904
+ itemTemplate: Type.Optional(Type.Unknown())
905
+ }, { additionalProperties: false });
906
+ Type.Object({
907
+ schema: Type.Unknown(),
908
+ uiHints: Type.Record(Type.String(), ConfigUiHintSchema),
909
+ version: NonEmptyString,
910
+ generatedAt: NonEmptyString
911
+ }, { additionalProperties: false });
912
+ const ConfigSchemaLookupChildSchema = Type.Object({
913
+ key: NonEmptyString,
914
+ path: NonEmptyString,
915
+ type: Type.Optional(Type.Union([Type.String(), Type.Array(Type.String())])),
916
+ required: Type.Boolean(),
917
+ hasChildren: Type.Boolean(),
918
+ hint: Type.Optional(ConfigUiHintSchema),
919
+ hintPath: Type.Optional(Type.String())
920
+ }, { additionalProperties: false });
921
+ const ConfigSchemaLookupResultSchema = Type.Object({
922
+ path: NonEmptyString,
923
+ schema: Type.Unknown(),
924
+ hint: Type.Optional(ConfigUiHintSchema),
925
+ hintPath: Type.Optional(Type.String()),
926
+ children: Type.Array(ConfigSchemaLookupChildSchema)
927
+ }, { additionalProperties: false });
928
+ //#endregion
929
+ //#region src/gateway/protocol/schema/cron.ts
930
+ function cronAgentTurnPayloadSchema(params) {
931
+ return Type.Object({
932
+ kind: Type.Literal("agentTurn"),
933
+ message: params.message,
934
+ model: Type.Optional(Type.String()),
935
+ fallbacks: Type.Optional(Type.Array(Type.String())),
936
+ thinking: Type.Optional(Type.String()),
937
+ timeoutSeconds: Type.Optional(Type.Number({ minimum: 0 })),
938
+ allowUnsafeExternalContent: Type.Optional(Type.Boolean()),
939
+ lightContext: Type.Optional(Type.Boolean()),
940
+ toolsAllow: Type.Optional(params.toolsAllow)
941
+ }, { additionalProperties: false });
942
+ }
943
+ const CronSessionTargetSchema = Type.Union([
944
+ Type.Literal("main"),
945
+ Type.Literal("isolated"),
946
+ Type.Literal("current"),
947
+ Type.String({ pattern: "^session:.+" })
948
+ ]);
949
+ const CronWakeModeSchema = Type.Union([Type.Literal("next-heartbeat"), Type.Literal("now")]);
950
+ const CronRunStatusSchema = Type.Union([
951
+ Type.Literal("ok"),
952
+ Type.Literal("error"),
953
+ Type.Literal("skipped")
954
+ ]);
955
+ const CronSortDirSchema = Type.Union([Type.Literal("asc"), Type.Literal("desc")]);
956
+ const CronJobsEnabledFilterSchema = Type.Union([
957
+ Type.Literal("all"),
958
+ Type.Literal("enabled"),
959
+ Type.Literal("disabled")
960
+ ]);
961
+ const CronJobsSortBySchema = Type.Union([
962
+ Type.Literal("nextRunAtMs"),
963
+ Type.Literal("updatedAtMs"),
964
+ Type.Literal("name")
965
+ ]);
966
+ const CronRunsStatusFilterSchema = Type.Union([
967
+ Type.Literal("all"),
968
+ Type.Literal("ok"),
969
+ Type.Literal("error"),
970
+ Type.Literal("skipped")
971
+ ]);
972
+ const CronRunsStatusValueSchema = Type.Union([
973
+ Type.Literal("ok"),
974
+ Type.Literal("error"),
975
+ Type.Literal("skipped")
976
+ ]);
977
+ const CronDeliveryStatusSchema = Type.Union([
978
+ Type.Literal("delivered"),
979
+ Type.Literal("not-delivered"),
980
+ Type.Literal("unknown"),
981
+ Type.Literal("not-requested")
982
+ ]);
983
+ const CronFailoverReasonSchema = Type.Union([
984
+ Type.Literal("auth"),
985
+ Type.Literal("format"),
986
+ Type.Literal("rate_limit"),
987
+ Type.Literal("billing"),
988
+ Type.Literal("timeout"),
989
+ Type.Literal("model_not_found"),
990
+ Type.Literal("unknown")
991
+ ]);
992
+ const CronCommonOptionalFields = {
993
+ agentId: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
994
+ sessionKey: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
995
+ description: Type.Optional(Type.String()),
996
+ enabled: Type.Optional(Type.Boolean()),
997
+ deleteAfterRun: Type.Optional(Type.Boolean())
998
+ };
999
+ function cronIdOrJobIdParams(extraFields) {
1000
+ return Type.Union([Type.Object({
1001
+ id: NonEmptyString,
1002
+ ...extraFields
1003
+ }, { additionalProperties: false }), Type.Object({
1004
+ jobId: NonEmptyString,
1005
+ ...extraFields
1006
+ }, { additionalProperties: false })]);
1007
+ }
1008
+ const CronRunLogJobIdSchema = Type.String({
1009
+ minLength: 1,
1010
+ pattern: "^[^/\\\\]+$"
1011
+ });
1012
+ const CronScheduleSchema = Type.Union([
1013
+ Type.Object({
1014
+ kind: Type.Literal("at"),
1015
+ at: NonEmptyString
1016
+ }, { additionalProperties: false }),
1017
+ Type.Object({
1018
+ kind: Type.Literal("every"),
1019
+ everyMs: Type.Integer({ minimum: 1 }),
1020
+ anchorMs: Type.Optional(Type.Integer({ minimum: 0 }))
1021
+ }, { additionalProperties: false }),
1022
+ Type.Object({
1023
+ kind: Type.Literal("cron"),
1024
+ expr: NonEmptyString,
1025
+ tz: Type.Optional(Type.String()),
1026
+ staggerMs: Type.Optional(Type.Integer({ minimum: 0 }))
1027
+ }, { additionalProperties: false })
1028
+ ]);
1029
+ const CronPayloadSchema = Type.Union([Type.Object({
1030
+ kind: Type.Literal("systemEvent"),
1031
+ text: NonEmptyString
1032
+ }, { additionalProperties: false }), cronAgentTurnPayloadSchema({
1033
+ message: NonEmptyString,
1034
+ toolsAllow: Type.Array(Type.String())
1035
+ })]);
1036
+ const CronPayloadPatchSchema = Type.Union([Type.Object({
1037
+ kind: Type.Literal("systemEvent"),
1038
+ text: Type.Optional(NonEmptyString)
1039
+ }, { additionalProperties: false }), cronAgentTurnPayloadSchema({
1040
+ message: Type.Optional(NonEmptyString),
1041
+ toolsAllow: Type.Union([Type.Array(Type.String()), Type.Null()])
1042
+ })]);
1043
+ const CronFailureAlertSchema = Type.Object({
1044
+ after: Type.Optional(Type.Integer({ minimum: 1 })),
1045
+ channel: Type.Optional(Type.Union([Type.Literal("last"), NonEmptyString])),
1046
+ to: Type.Optional(Type.String()),
1047
+ cooldownMs: Type.Optional(Type.Integer({ minimum: 0 })),
1048
+ mode: Type.Optional(Type.Union([Type.Literal("announce"), Type.Literal("webhook")])),
1049
+ accountId: Type.Optional(NonEmptyString)
1050
+ }, { additionalProperties: false });
1051
+ const CronFailureDestinationSchema = Type.Object({
1052
+ channel: Type.Optional(Type.Union([Type.Literal("last"), NonEmptyString])),
1053
+ to: Type.Optional(Type.String()),
1054
+ accountId: Type.Optional(NonEmptyString),
1055
+ mode: Type.Optional(Type.Union([Type.Literal("announce"), Type.Literal("webhook")]))
1056
+ }, { additionalProperties: false });
1057
+ const CronDeliverySharedProperties = {
1058
+ channel: Type.Optional(Type.Union([Type.Literal("last"), NonEmptyString])),
1059
+ accountId: Type.Optional(NonEmptyString),
1060
+ bestEffort: Type.Optional(Type.Boolean()),
1061
+ failureDestination: Type.Optional(CronFailureDestinationSchema)
1062
+ };
1063
+ const CronDeliveryNoopSchema = Type.Object({
1064
+ mode: Type.Literal("none"),
1065
+ ...CronDeliverySharedProperties,
1066
+ to: Type.Optional(Type.String())
1067
+ }, { additionalProperties: false });
1068
+ const CronDeliveryAnnounceSchema = Type.Object({
1069
+ mode: Type.Literal("announce"),
1070
+ ...CronDeliverySharedProperties,
1071
+ to: Type.Optional(Type.String())
1072
+ }, { additionalProperties: false });
1073
+ const CronDeliveryWebhookSchema = Type.Object({
1074
+ mode: Type.Literal("webhook"),
1075
+ ...CronDeliverySharedProperties,
1076
+ to: NonEmptyString
1077
+ }, { additionalProperties: false });
1078
+ const CronDeliverySchema = Type.Union([
1079
+ CronDeliveryNoopSchema,
1080
+ CronDeliveryAnnounceSchema,
1081
+ CronDeliveryWebhookSchema
1082
+ ]);
1083
+ const CronDeliveryPatchSchema = Type.Object({
1084
+ mode: Type.Optional(Type.Union([
1085
+ Type.Literal("none"),
1086
+ Type.Literal("announce"),
1087
+ Type.Literal("webhook")
1088
+ ])),
1089
+ ...CronDeliverySharedProperties,
1090
+ to: Type.Optional(Type.String())
1091
+ }, { additionalProperties: false });
1092
+ const CronJobStateSchema = Type.Object({
1093
+ nextRunAtMs: Type.Optional(Type.Integer({ minimum: 0 })),
1094
+ runningAtMs: Type.Optional(Type.Integer({ minimum: 0 })),
1095
+ lastRunAtMs: Type.Optional(Type.Integer({ minimum: 0 })),
1096
+ lastRunStatus: Type.Optional(CronRunStatusSchema),
1097
+ lastStatus: Type.Optional(CronRunStatusSchema),
1098
+ lastError: Type.Optional(Type.String()),
1099
+ lastErrorReason: Type.Optional(CronFailoverReasonSchema),
1100
+ lastDurationMs: Type.Optional(Type.Integer({ minimum: 0 })),
1101
+ consecutiveErrors: Type.Optional(Type.Integer({ minimum: 0 })),
1102
+ lastDelivered: Type.Optional(Type.Boolean()),
1103
+ lastDeliveryStatus: Type.Optional(CronDeliveryStatusSchema),
1104
+ lastDeliveryError: Type.Optional(Type.String()),
1105
+ lastFailureAlertAtMs: Type.Optional(Type.Integer({ minimum: 0 }))
1106
+ }, { additionalProperties: false });
1107
+ Type.Object({
1108
+ id: NonEmptyString,
1109
+ agentId: Type.Optional(NonEmptyString),
1110
+ sessionKey: Type.Optional(NonEmptyString),
1111
+ name: NonEmptyString,
1112
+ description: Type.Optional(Type.String()),
1113
+ enabled: Type.Boolean(),
1114
+ deleteAfterRun: Type.Optional(Type.Boolean()),
1115
+ createdAtMs: Type.Integer({ minimum: 0 }),
1116
+ updatedAtMs: Type.Integer({ minimum: 0 }),
1117
+ schedule: CronScheduleSchema,
1118
+ sessionTarget: CronSessionTargetSchema,
1119
+ wakeMode: CronWakeModeSchema,
1120
+ payload: CronPayloadSchema,
1121
+ delivery: Type.Optional(CronDeliverySchema),
1122
+ failureAlert: Type.Optional(Type.Union([Type.Literal(false), CronFailureAlertSchema])),
1123
+ state: CronJobStateSchema
1124
+ }, { additionalProperties: false });
1125
+ const CronListParamsSchema = Type.Object({
1126
+ includeDisabled: Type.Optional(Type.Boolean()),
1127
+ limit: Type.Optional(Type.Integer({
1128
+ minimum: 1,
1129
+ maximum: 200
1130
+ })),
1131
+ offset: Type.Optional(Type.Integer({ minimum: 0 })),
1132
+ query: Type.Optional(Type.String()),
1133
+ enabled: Type.Optional(CronJobsEnabledFilterSchema),
1134
+ sortBy: Type.Optional(CronJobsSortBySchema),
1135
+ sortDir: Type.Optional(CronSortDirSchema)
1136
+ }, { additionalProperties: false });
1137
+ const CronStatusParamsSchema = Type.Object({}, { additionalProperties: false });
1138
+ const CronAddParamsSchema = Type.Object({
1139
+ name: NonEmptyString,
1140
+ ...CronCommonOptionalFields,
1141
+ schedule: CronScheduleSchema,
1142
+ sessionTarget: CronSessionTargetSchema,
1143
+ wakeMode: CronWakeModeSchema,
1144
+ payload: CronPayloadSchema,
1145
+ delivery: Type.Optional(CronDeliverySchema),
1146
+ failureAlert: Type.Optional(Type.Union([Type.Literal(false), CronFailureAlertSchema]))
1147
+ }, { additionalProperties: false });
1148
+ const CronUpdateParamsSchema = cronIdOrJobIdParams({ patch: Type.Object({
1149
+ name: Type.Optional(NonEmptyString),
1150
+ ...CronCommonOptionalFields,
1151
+ schedule: Type.Optional(CronScheduleSchema),
1152
+ sessionTarget: Type.Optional(CronSessionTargetSchema),
1153
+ wakeMode: Type.Optional(CronWakeModeSchema),
1154
+ payload: Type.Optional(CronPayloadPatchSchema),
1155
+ delivery: Type.Optional(CronDeliveryPatchSchema),
1156
+ failureAlert: Type.Optional(Type.Union([Type.Literal(false), CronFailureAlertSchema])),
1157
+ state: Type.Optional(Type.Partial(CronJobStateSchema))
1158
+ }, { additionalProperties: false }) });
1159
+ const CronRemoveParamsSchema = cronIdOrJobIdParams({});
1160
+ const CronRunParamsSchema = cronIdOrJobIdParams({ mode: Type.Optional(Type.Union([Type.Literal("due"), Type.Literal("force")])) });
1161
+ const CronRunsParamsSchema = Type.Object({
1162
+ scope: Type.Optional(Type.Union([Type.Literal("job"), Type.Literal("all")])),
1163
+ id: Type.Optional(CronRunLogJobIdSchema),
1164
+ jobId: Type.Optional(CronRunLogJobIdSchema),
1165
+ limit: Type.Optional(Type.Integer({
1166
+ minimum: 1,
1167
+ maximum: 200
1168
+ })),
1169
+ offset: Type.Optional(Type.Integer({ minimum: 0 })),
1170
+ statuses: Type.Optional(Type.Array(CronRunsStatusValueSchema, {
1171
+ minItems: 1,
1172
+ maxItems: 3
1173
+ })),
1174
+ status: Type.Optional(CronRunsStatusFilterSchema),
1175
+ deliveryStatuses: Type.Optional(Type.Array(CronDeliveryStatusSchema, {
1176
+ minItems: 1,
1177
+ maxItems: 4
1178
+ })),
1179
+ deliveryStatus: Type.Optional(CronDeliveryStatusSchema),
1180
+ query: Type.Optional(Type.String()),
1181
+ sortDir: Type.Optional(CronSortDirSchema)
1182
+ }, { additionalProperties: false });
1183
+ Type.Object({
1184
+ ts: Type.Integer({ minimum: 0 }),
1185
+ jobId: NonEmptyString,
1186
+ action: Type.Literal("finished"),
1187
+ status: Type.Optional(CronRunStatusSchema),
1188
+ error: Type.Optional(Type.String()),
1189
+ summary: Type.Optional(Type.String()),
1190
+ delivered: Type.Optional(Type.Boolean()),
1191
+ deliveryStatus: Type.Optional(CronDeliveryStatusSchema),
1192
+ deliveryError: Type.Optional(Type.String()),
1193
+ sessionId: Type.Optional(NonEmptyString),
1194
+ sessionKey: Type.Optional(NonEmptyString),
1195
+ runAtMs: Type.Optional(Type.Integer({ minimum: 0 })),
1196
+ durationMs: Type.Optional(Type.Integer({ minimum: 0 })),
1197
+ nextRunAtMs: Type.Optional(Type.Integer({ minimum: 0 })),
1198
+ model: Type.Optional(Type.String()),
1199
+ provider: Type.Optional(Type.String()),
1200
+ usage: Type.Optional(Type.Object({
1201
+ input_tokens: Type.Optional(Type.Number()),
1202
+ output_tokens: Type.Optional(Type.Number()),
1203
+ total_tokens: Type.Optional(Type.Number()),
1204
+ cache_read_tokens: Type.Optional(Type.Number()),
1205
+ cache_write_tokens: Type.Optional(Type.Number())
1206
+ }, { additionalProperties: false })),
1207
+ jobName: Type.Optional(Type.String())
1208
+ }, { additionalProperties: false });
1209
+ //#endregion
1210
+ //#region src/gateway/protocol/schema/error-codes.ts
1211
+ const ErrorCodes = {
1212
+ NOT_LINKED: "NOT_LINKED",
1213
+ NOT_PAIRED: "NOT_PAIRED",
1214
+ AGENT_TIMEOUT: "AGENT_TIMEOUT",
1215
+ INVALID_REQUEST: "INVALID_REQUEST",
1216
+ APPROVAL_NOT_FOUND: "APPROVAL_NOT_FOUND",
1217
+ UNAVAILABLE: "UNAVAILABLE"
1218
+ };
1219
+ function errorShape(code, message, opts) {
1220
+ return {
1221
+ code,
1222
+ message,
1223
+ ...opts
1224
+ };
1225
+ }
1226
+ //#endregion
1227
+ //#region src/gateway/protocol/schema/exec-approvals.ts
1228
+ const ExecApprovalsAllowlistEntrySchema = Type.Object({
1229
+ id: Type.Optional(NonEmptyString),
1230
+ pattern: Type.String(),
1231
+ argPattern: Type.Optional(Type.String()),
1232
+ lastUsedAt: Type.Optional(Type.Integer({ minimum: 0 })),
1233
+ lastUsedCommand: Type.Optional(Type.String()),
1234
+ lastResolvedPath: Type.Optional(Type.String())
1235
+ }, { additionalProperties: false });
1236
+ const ExecApprovalsPolicyFields = {
1237
+ security: Type.Optional(Type.String()),
1238
+ ask: Type.Optional(Type.String()),
1239
+ askFallback: Type.Optional(Type.String()),
1240
+ autoAllowSkills: Type.Optional(Type.Boolean())
1241
+ };
1242
+ const ExecApprovalsDefaultsSchema = Type.Object(ExecApprovalsPolicyFields, { additionalProperties: false });
1243
+ const ExecApprovalsAgentSchema = Type.Object({
1244
+ ...ExecApprovalsPolicyFields,
1245
+ allowlist: Type.Optional(Type.Array(ExecApprovalsAllowlistEntrySchema))
1246
+ }, { additionalProperties: false });
1247
+ const ExecApprovalsFileSchema = Type.Object({
1248
+ version: Type.Literal(1),
1249
+ socket: Type.Optional(Type.Object({
1250
+ path: Type.Optional(Type.String()),
1251
+ token: Type.Optional(Type.String())
1252
+ }, { additionalProperties: false })),
1253
+ defaults: Type.Optional(ExecApprovalsDefaultsSchema),
1254
+ agents: Type.Optional(Type.Record(Type.String(), ExecApprovalsAgentSchema))
1255
+ }, { additionalProperties: false });
1256
+ Type.Object({
1257
+ path: NonEmptyString,
1258
+ exists: Type.Boolean(),
1259
+ hash: NonEmptyString,
1260
+ file: ExecApprovalsFileSchema
1261
+ }, { additionalProperties: false });
1262
+ const ExecApprovalsGetParamsSchema = Type.Object({}, { additionalProperties: false });
1263
+ const ExecApprovalsSetParamsSchema = Type.Object({
1264
+ file: ExecApprovalsFileSchema,
1265
+ baseHash: Type.Optional(NonEmptyString)
1266
+ }, { additionalProperties: false });
1267
+ const ExecApprovalsNodeGetParamsSchema = Type.Object({ nodeId: NonEmptyString }, { additionalProperties: false });
1268
+ const ExecApprovalsNodeSetParamsSchema = Type.Object({
1269
+ nodeId: NonEmptyString,
1270
+ file: ExecApprovalsFileSchema,
1271
+ baseHash: Type.Optional(NonEmptyString)
1272
+ }, { additionalProperties: false });
1273
+ const ExecApprovalGetParamsSchema = Type.Object({ id: NonEmptyString }, { additionalProperties: false });
1274
+ const ExecApprovalRequestParamsSchema = Type.Object({
1275
+ id: Type.Optional(NonEmptyString),
1276
+ command: Type.Optional(NonEmptyString),
1277
+ commandArgv: Type.Optional(Type.Array(Type.String())),
1278
+ systemRunPlan: Type.Optional(Type.Object({
1279
+ argv: Type.Array(Type.String()),
1280
+ cwd: Type.Union([Type.String(), Type.Null()]),
1281
+ commandText: Type.String(),
1282
+ commandPreview: Type.Optional(Type.Union([Type.String(), Type.Null()])),
1283
+ agentId: Type.Union([Type.String(), Type.Null()]),
1284
+ sessionKey: Type.Union([Type.String(), Type.Null()]),
1285
+ mutableFileOperand: Type.Optional(Type.Union([Type.Object({
1286
+ argvIndex: Type.Integer({ minimum: 0 }),
1287
+ path: Type.String(),
1288
+ sha256: Type.String()
1289
+ }, { additionalProperties: false }), Type.Null()]))
1290
+ }, { additionalProperties: false })),
1291
+ env: Type.Optional(Type.Record(NonEmptyString, Type.String())),
1292
+ cwd: Type.Optional(Type.Union([Type.String(), Type.Null()])),
1293
+ nodeId: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
1294
+ host: Type.Optional(Type.Union([Type.String(), Type.Null()])),
1295
+ security: Type.Optional(Type.Union([Type.String(), Type.Null()])),
1296
+ ask: Type.Optional(Type.Union([Type.String(), Type.Null()])),
1297
+ agentId: Type.Optional(Type.Union([Type.String(), Type.Null()])),
1298
+ resolvedPath: Type.Optional(Type.Union([Type.String(), Type.Null()])),
1299
+ sessionKey: Type.Optional(Type.Union([Type.String(), Type.Null()])),
1300
+ turnSourceChannel: Type.Optional(Type.Union([Type.String(), Type.Null()])),
1301
+ turnSourceTo: Type.Optional(Type.Union([Type.String(), Type.Null()])),
1302
+ turnSourceAccountId: Type.Optional(Type.Union([Type.String(), Type.Null()])),
1303
+ turnSourceThreadId: Type.Optional(Type.Union([
1304
+ Type.String(),
1305
+ Type.Number(),
1306
+ Type.Null()
1307
+ ])),
1308
+ timeoutMs: Type.Optional(Type.Integer({ minimum: 1 })),
1309
+ twoPhase: Type.Optional(Type.Boolean())
1310
+ }, { additionalProperties: false });
1311
+ const ExecApprovalResolveParamsSchema = Type.Object({
1312
+ id: NonEmptyString,
1313
+ decision: NonEmptyString
1314
+ }, { additionalProperties: false });
1315
+ //#endregion
1316
+ //#region src/gateway/protocol/schema/devices.ts
1317
+ const DevicePairListParamsSchema = Type.Object({}, { additionalProperties: false });
1318
+ const DevicePairApproveParamsSchema = Type.Object({ requestId: NonEmptyString }, { additionalProperties: false });
1319
+ const DevicePairRejectParamsSchema = Type.Object({ requestId: NonEmptyString }, { additionalProperties: false });
1320
+ const DevicePairRemoveParamsSchema = Type.Object({ deviceId: NonEmptyString }, { additionalProperties: false });
1321
+ const DeviceTokenRotateParamsSchema = Type.Object({
1322
+ deviceId: NonEmptyString,
1323
+ role: NonEmptyString,
1324
+ scopes: Type.Optional(Type.Array(NonEmptyString))
1325
+ }, { additionalProperties: false });
1326
+ const DeviceTokenRevokeParamsSchema = Type.Object({
1327
+ deviceId: NonEmptyString,
1328
+ role: NonEmptyString
1329
+ }, { additionalProperties: false });
1330
+ Type.Object({
1331
+ requestId: NonEmptyString,
1332
+ deviceId: NonEmptyString,
1333
+ publicKey: NonEmptyString,
1334
+ displayName: Type.Optional(NonEmptyString),
1335
+ platform: Type.Optional(NonEmptyString),
1336
+ deviceFamily: Type.Optional(NonEmptyString),
1337
+ clientId: Type.Optional(NonEmptyString),
1338
+ clientMode: Type.Optional(NonEmptyString),
1339
+ role: Type.Optional(NonEmptyString),
1340
+ roles: Type.Optional(Type.Array(NonEmptyString)),
1341
+ scopes: Type.Optional(Type.Array(NonEmptyString)),
1342
+ remoteIp: Type.Optional(NonEmptyString),
1343
+ silent: Type.Optional(Type.Boolean()),
1344
+ isRepair: Type.Optional(Type.Boolean()),
1345
+ ts: Type.Integer({ minimum: 0 })
1346
+ }, { additionalProperties: false });
1347
+ Type.Object({
1348
+ requestId: NonEmptyString,
1349
+ deviceId: NonEmptyString,
1350
+ decision: NonEmptyString,
1351
+ ts: Type.Integer({ minimum: 0 })
1352
+ }, { additionalProperties: false });
1353
+ //#endregion
1354
+ //#region src/gateway/protocol/schema/snapshot.ts
1355
+ const PresenceEntrySchema = Type.Object({
1356
+ host: Type.Optional(NonEmptyString),
1357
+ ip: Type.Optional(NonEmptyString),
1358
+ version: Type.Optional(NonEmptyString),
1359
+ platform: Type.Optional(NonEmptyString),
1360
+ deviceFamily: Type.Optional(NonEmptyString),
1361
+ modelIdentifier: Type.Optional(NonEmptyString),
1362
+ mode: Type.Optional(NonEmptyString),
1363
+ lastInputSeconds: Type.Optional(Type.Integer({ minimum: 0 })),
1364
+ reason: Type.Optional(NonEmptyString),
1365
+ tags: Type.Optional(Type.Array(NonEmptyString)),
1366
+ text: Type.Optional(Type.String()),
1367
+ ts: Type.Integer({ minimum: 0 }),
1368
+ deviceId: Type.Optional(NonEmptyString),
1369
+ roles: Type.Optional(Type.Array(NonEmptyString)),
1370
+ scopes: Type.Optional(Type.Array(NonEmptyString)),
1371
+ instanceId: Type.Optional(NonEmptyString)
1372
+ }, { additionalProperties: false });
1373
+ const HealthSnapshotSchema = Type.Any();
1374
+ const SessionDefaultsSchema = Type.Object({
1375
+ defaultAgentId: NonEmptyString,
1376
+ mainKey: NonEmptyString,
1377
+ mainSessionKey: NonEmptyString,
1378
+ scope: Type.Optional(NonEmptyString)
1379
+ }, { additionalProperties: false });
1380
+ const StateVersionSchema = Type.Object({
1381
+ presence: Type.Integer({ minimum: 0 }),
1382
+ health: Type.Integer({ minimum: 0 })
1383
+ }, { additionalProperties: false });
1384
+ const SnapshotSchema = Type.Object({
1385
+ presence: Type.Array(PresenceEntrySchema),
1386
+ health: HealthSnapshotSchema,
1387
+ stateVersion: StateVersionSchema,
1388
+ uptimeMs: Type.Integer({ minimum: 0 }),
1389
+ configPath: Type.Optional(NonEmptyString),
1390
+ stateDir: Type.Optional(NonEmptyString),
1391
+ sessionDefaults: Type.Optional(SessionDefaultsSchema),
1392
+ authMode: Type.Optional(Type.Union([
1393
+ Type.Literal("none"),
1394
+ Type.Literal("token"),
1395
+ Type.Literal("password"),
1396
+ Type.Literal("trusted-proxy")
1397
+ ])),
1398
+ updateAvailable: Type.Optional(Type.Object({
1399
+ currentVersion: NonEmptyString,
1400
+ latestVersion: NonEmptyString,
1401
+ channel: NonEmptyString
1402
+ }))
1403
+ }, { additionalProperties: false });
1404
+ Type.Object({ ts: Type.Integer({ minimum: 0 }) }, { additionalProperties: false });
1405
+ Type.Object({
1406
+ reason: NonEmptyString,
1407
+ restartExpectedMs: Type.Optional(Type.Integer({ minimum: 0 }))
1408
+ }, { additionalProperties: false });
1409
+ const ConnectParamsSchema = Type.Object({
1410
+ minProtocol: Type.Integer({ minimum: 1 }),
1411
+ maxProtocol: Type.Integer({ minimum: 1 }),
1412
+ client: Type.Object({
1413
+ id: GatewayClientIdSchema,
1414
+ displayName: Type.Optional(NonEmptyString),
1415
+ version: NonEmptyString,
1416
+ platform: NonEmptyString,
1417
+ deviceFamily: Type.Optional(NonEmptyString),
1418
+ modelIdentifier: Type.Optional(NonEmptyString),
1419
+ mode: GatewayClientModeSchema,
1420
+ instanceId: Type.Optional(NonEmptyString)
1421
+ }, { additionalProperties: false }),
1422
+ caps: Type.Optional(Type.Array(NonEmptyString, { default: [] })),
1423
+ commands: Type.Optional(Type.Array(NonEmptyString)),
1424
+ permissions: Type.Optional(Type.Record(NonEmptyString, Type.Boolean())),
1425
+ pathEnv: Type.Optional(Type.String()),
1426
+ role: Type.Optional(NonEmptyString),
1427
+ scopes: Type.Optional(Type.Array(NonEmptyString)),
1428
+ device: Type.Optional(Type.Object({
1429
+ id: NonEmptyString,
1430
+ publicKey: NonEmptyString,
1431
+ signature: NonEmptyString,
1432
+ signedAt: Type.Integer({ minimum: 0 }),
1433
+ nonce: NonEmptyString
1434
+ }, { additionalProperties: false })),
1435
+ auth: Type.Optional(Type.Object({
1436
+ token: Type.Optional(Type.String()),
1437
+ bootstrapToken: Type.Optional(Type.String()),
1438
+ deviceToken: Type.Optional(Type.String()),
1439
+ password: Type.Optional(Type.String())
1440
+ }, { additionalProperties: false })),
1441
+ locale: Type.Optional(Type.String()),
1442
+ userAgent: Type.Optional(Type.String())
1443
+ }, { additionalProperties: false });
1444
+ Type.Object({
1445
+ type: Type.Literal("hello-ok"),
1446
+ protocol: Type.Integer({ minimum: 1 }),
1447
+ server: Type.Object({
1448
+ version: NonEmptyString,
1449
+ connId: NonEmptyString
1450
+ }, { additionalProperties: false }),
1451
+ features: Type.Object({
1452
+ methods: Type.Array(NonEmptyString),
1453
+ events: Type.Array(NonEmptyString)
1454
+ }, { additionalProperties: false }),
1455
+ snapshot: SnapshotSchema,
1456
+ canvasHostUrl: Type.Optional(NonEmptyString),
1457
+ auth: Type.Optional(Type.Object({
1458
+ deviceToken: Type.Optional(NonEmptyString),
1459
+ role: NonEmptyString,
1460
+ scopes: Type.Array(NonEmptyString),
1461
+ issuedAtMs: Type.Optional(Type.Integer({ minimum: 0 })),
1462
+ deviceTokens: Type.Optional(Type.Array(Type.Object({
1463
+ deviceToken: NonEmptyString,
1464
+ role: NonEmptyString,
1465
+ scopes: Type.Array(NonEmptyString),
1466
+ issuedAtMs: Type.Integer({ minimum: 0 })
1467
+ }, { additionalProperties: false })))
1468
+ }, { additionalProperties: false })),
1469
+ policy: Type.Object({
1470
+ maxPayload: Type.Integer({ minimum: 1 }),
1471
+ maxBufferedBytes: Type.Integer({ minimum: 1 }),
1472
+ tickIntervalMs: Type.Integer({ minimum: 1 })
1473
+ }, { additionalProperties: false })
1474
+ }, { additionalProperties: false });
1475
+ const ErrorShapeSchema = Type.Object({
1476
+ code: NonEmptyString,
1477
+ message: NonEmptyString,
1478
+ details: Type.Optional(Type.Unknown()),
1479
+ retryable: Type.Optional(Type.Boolean()),
1480
+ retryAfterMs: Type.Optional(Type.Integer({ minimum: 0 }))
1481
+ }, { additionalProperties: false });
1482
+ const RequestFrameSchema = Type.Object({
1483
+ type: Type.Literal("req"),
1484
+ id: NonEmptyString,
1485
+ method: NonEmptyString,
1486
+ params: Type.Optional(Type.Unknown())
1487
+ }, { additionalProperties: false });
1488
+ const ResponseFrameSchema = Type.Object({
1489
+ type: Type.Literal("res"),
1490
+ id: NonEmptyString,
1491
+ ok: Type.Boolean(),
1492
+ payload: Type.Optional(Type.Unknown()),
1493
+ error: Type.Optional(ErrorShapeSchema)
1494
+ }, { additionalProperties: false });
1495
+ const EventFrameSchema = Type.Object({
1496
+ type: Type.Literal("event"),
1497
+ event: NonEmptyString,
1498
+ payload: Type.Optional(Type.Unknown()),
1499
+ seq: Type.Optional(Type.Integer({ minimum: 0 })),
1500
+ stateVersion: Type.Optional(StateVersionSchema)
1501
+ }, { additionalProperties: false });
1502
+ Type.Union([
1503
+ RequestFrameSchema,
1504
+ ResponseFrameSchema,
1505
+ EventFrameSchema
1506
+ ], { discriminator: "type" });
1507
+ //#endregion
1508
+ //#region src/gateway/protocol/schema/logs-chat.ts
1509
+ const LogsTailParamsSchema = Type.Object({
1510
+ cursor: Type.Optional(Type.Integer({ minimum: 0 })),
1511
+ limit: Type.Optional(Type.Integer({
1512
+ minimum: 1,
1513
+ maximum: 5e3
1514
+ })),
1515
+ maxBytes: Type.Optional(Type.Integer({
1516
+ minimum: 1,
1517
+ maximum: 1e6
1518
+ }))
1519
+ }, { additionalProperties: false });
1520
+ Type.Object({
1521
+ file: NonEmptyString,
1522
+ cursor: Type.Integer({ minimum: 0 }),
1523
+ size: Type.Integer({ minimum: 0 }),
1524
+ lines: Type.Array(Type.String()),
1525
+ truncated: Type.Optional(Type.Boolean()),
1526
+ reset: Type.Optional(Type.Boolean())
1527
+ }, { additionalProperties: false });
1528
+ const ChatHistoryParamsSchema = Type.Object({
1529
+ sessionKey: NonEmptyString,
1530
+ limit: Type.Optional(Type.Integer({
1531
+ minimum: 1,
1532
+ maximum: 1e3
1533
+ })),
1534
+ maxChars: Type.Optional(Type.Integer({
1535
+ minimum: 1,
1536
+ maximum: 5e5
1537
+ }))
1538
+ }, { additionalProperties: false });
1539
+ const ChatSendParamsSchema = Type.Object({
1540
+ sessionKey: ChatSendSessionKeyString,
1541
+ message: Type.String(),
1542
+ thinking: Type.Optional(Type.String()),
1543
+ deliver: Type.Optional(Type.Boolean()),
1544
+ originatingChannel: Type.Optional(Type.String()),
1545
+ originatingTo: Type.Optional(Type.String()),
1546
+ originatingAccountId: Type.Optional(Type.String()),
1547
+ originatingThreadId: Type.Optional(Type.String()),
1548
+ attachments: Type.Optional(Type.Array(Type.Unknown())),
1549
+ timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })),
1550
+ systemInputProvenance: Type.Optional(InputProvenanceSchema),
1551
+ systemProvenanceReceipt: Type.Optional(Type.String()),
1552
+ idempotencyKey: NonEmptyString
1553
+ }, { additionalProperties: false });
1554
+ const ChatAbortParamsSchema = Type.Object({
1555
+ sessionKey: NonEmptyString,
1556
+ runId: Type.Optional(NonEmptyString)
1557
+ }, { additionalProperties: false });
1558
+ const ChatInjectParamsSchema = Type.Object({
1559
+ sessionKey: NonEmptyString,
1560
+ message: NonEmptyString,
1561
+ label: Type.Optional(Type.String({ maxLength: 100 }))
1562
+ }, { additionalProperties: false });
1563
+ const ChatEventSchema = Type.Object({
1564
+ runId: NonEmptyString,
1565
+ sessionKey: NonEmptyString,
1566
+ seq: Type.Integer({ minimum: 0 }),
1567
+ state: Type.Union([
1568
+ Type.Literal("delta"),
1569
+ Type.Literal("final"),
1570
+ Type.Literal("aborted"),
1571
+ Type.Literal("error")
1572
+ ]),
1573
+ message: Type.Optional(Type.Unknown()),
1574
+ errorMessage: Type.Optional(Type.String()),
1575
+ errorKind: Type.Optional(Type.Union([
1576
+ Type.Literal("refusal"),
1577
+ Type.Literal("timeout"),
1578
+ Type.Literal("rate_limit"),
1579
+ Type.Literal("context_length"),
1580
+ Type.Literal("unknown")
1581
+ ])),
1582
+ usage: Type.Optional(Type.Unknown()),
1583
+ stopReason: Type.Optional(Type.String())
1584
+ }, { additionalProperties: false });
1585
+ //#endregion
1586
+ //#region src/gateway/protocol/schema/nodes.ts
1587
+ const NodePendingWorkTypeSchema = Type.String({ enum: ["status.request", "location.request"] });
1588
+ const NodePendingWorkPrioritySchema = Type.String({ enum: ["normal", "high"] });
1589
+ const NodePairRequestParamsSchema = Type.Object({
1590
+ nodeId: NonEmptyString,
1591
+ displayName: Type.Optional(NonEmptyString),
1592
+ platform: Type.Optional(NonEmptyString),
1593
+ version: Type.Optional(NonEmptyString),
1594
+ coreVersion: Type.Optional(NonEmptyString),
1595
+ uiVersion: Type.Optional(NonEmptyString),
1596
+ deviceFamily: Type.Optional(NonEmptyString),
1597
+ modelIdentifier: Type.Optional(NonEmptyString),
1598
+ caps: Type.Optional(Type.Array(NonEmptyString)),
1599
+ commands: Type.Optional(Type.Array(NonEmptyString)),
1600
+ remoteIp: Type.Optional(NonEmptyString),
1601
+ silent: Type.Optional(Type.Boolean())
1602
+ }, { additionalProperties: false });
1603
+ const NodePairListParamsSchema = Type.Object({}, { additionalProperties: false });
1604
+ const NodePairApproveParamsSchema = Type.Object({ requestId: NonEmptyString }, { additionalProperties: false });
1605
+ const NodePairRejectParamsSchema = Type.Object({ requestId: NonEmptyString }, { additionalProperties: false });
1606
+ const NodePairVerifyParamsSchema = Type.Object({
1607
+ nodeId: NonEmptyString,
1608
+ token: NonEmptyString
1609
+ }, { additionalProperties: false });
1610
+ const NodeRenameParamsSchema = Type.Object({
1611
+ nodeId: NonEmptyString,
1612
+ displayName: NonEmptyString
1613
+ }, { additionalProperties: false });
1614
+ const NodeListParamsSchema = Type.Object({}, { additionalProperties: false });
1615
+ const NodePendingAckParamsSchema = Type.Object({ ids: Type.Array(NonEmptyString, { minItems: 1 }) }, { additionalProperties: false });
1616
+ const NodeDescribeParamsSchema = Type.Object({ nodeId: NonEmptyString }, { additionalProperties: false });
1617
+ const NodeInvokeParamsSchema = Type.Object({
1618
+ nodeId: NonEmptyString,
1619
+ command: NonEmptyString,
1620
+ params: Type.Optional(Type.Unknown()),
1621
+ timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })),
1622
+ idempotencyKey: NonEmptyString
1623
+ }, { additionalProperties: false });
1624
+ const NodeInvokeResultParamsSchema = Type.Object({
1625
+ id: NonEmptyString,
1626
+ nodeId: NonEmptyString,
1627
+ ok: Type.Boolean(),
1628
+ payload: Type.Optional(Type.Unknown()),
1629
+ payloadJSON: Type.Optional(Type.String()),
1630
+ error: Type.Optional(Type.Object({
1631
+ code: Type.Optional(NonEmptyString),
1632
+ message: Type.Optional(NonEmptyString)
1633
+ }, { additionalProperties: false }))
1634
+ }, { additionalProperties: false });
1635
+ const NodeEventParamsSchema = Type.Object({
1636
+ event: NonEmptyString,
1637
+ payload: Type.Optional(Type.Unknown()),
1638
+ payloadJSON: Type.Optional(Type.String())
1639
+ }, { additionalProperties: false });
1640
+ const NodePendingDrainParamsSchema = Type.Object({ maxItems: Type.Optional(Type.Integer({
1641
+ minimum: 1,
1642
+ maximum: 10
1643
+ })) }, { additionalProperties: false });
1644
+ const NodePendingDrainItemSchema = Type.Object({
1645
+ id: NonEmptyString,
1646
+ type: NodePendingWorkTypeSchema,
1647
+ priority: Type.String({ enum: [
1648
+ "default",
1649
+ "normal",
1650
+ "high"
1651
+ ] }),
1652
+ createdAtMs: Type.Integer({ minimum: 0 }),
1653
+ expiresAtMs: Type.Optional(Type.Union([Type.Integer({ minimum: 0 }), Type.Null()])),
1654
+ payload: Type.Optional(Type.Record(Type.String(), Type.Unknown()))
1655
+ }, { additionalProperties: false });
1656
+ Type.Object({
1657
+ nodeId: NonEmptyString,
1658
+ revision: Type.Integer({ minimum: 0 }),
1659
+ items: Type.Array(NodePendingDrainItemSchema),
1660
+ hasMore: Type.Boolean()
1661
+ }, { additionalProperties: false });
1662
+ const NodePendingEnqueueParamsSchema = Type.Object({
1663
+ nodeId: NonEmptyString,
1664
+ type: NodePendingWorkTypeSchema,
1665
+ priority: Type.Optional(NodePendingWorkPrioritySchema),
1666
+ expiresInMs: Type.Optional(Type.Integer({
1667
+ minimum: 1e3,
1668
+ maximum: 864e5
1669
+ })),
1670
+ wake: Type.Optional(Type.Boolean())
1671
+ }, { additionalProperties: false });
1672
+ Type.Object({
1673
+ nodeId: NonEmptyString,
1674
+ revision: Type.Integer({ minimum: 0 }),
1675
+ queued: NodePendingDrainItemSchema,
1676
+ wakeTriggered: Type.Boolean()
1677
+ }, { additionalProperties: false });
1678
+ Type.Object({
1679
+ id: NonEmptyString,
1680
+ nodeId: NonEmptyString,
1681
+ command: NonEmptyString,
1682
+ paramsJSON: Type.Optional(Type.String()),
1683
+ timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })),
1684
+ idempotencyKey: Type.Optional(NonEmptyString)
1685
+ }, { additionalProperties: false });
1686
+ //#endregion
1687
+ //#region src/gateway/protocol/schema/plugin-approvals.ts
1688
+ const PluginApprovalRequestParamsSchema = Type.Object({
1689
+ pluginId: Type.Optional(NonEmptyString),
1690
+ title: Type.String({
1691
+ minLength: 1,
1692
+ maxLength: 80
1693
+ }),
1694
+ description: Type.String({
1695
+ minLength: 1,
1696
+ maxLength: 256
1697
+ }),
1698
+ severity: Type.Optional(Type.String({ enum: [
1699
+ "info",
1700
+ "warning",
1701
+ "critical"
1702
+ ] })),
1703
+ toolName: Type.Optional(Type.String()),
1704
+ toolCallId: Type.Optional(Type.String()),
1705
+ agentId: Type.Optional(Type.String()),
1706
+ sessionKey: Type.Optional(Type.String()),
1707
+ turnSourceChannel: Type.Optional(Type.String()),
1708
+ turnSourceTo: Type.Optional(Type.String()),
1709
+ turnSourceAccountId: Type.Optional(Type.String()),
1710
+ turnSourceThreadId: Type.Optional(Type.Union([Type.String(), Type.Number()])),
1711
+ timeoutMs: Type.Optional(Type.Integer({
1712
+ minimum: 1,
1713
+ maximum: MAX_PLUGIN_APPROVAL_TIMEOUT_MS
1714
+ })),
1715
+ twoPhase: Type.Optional(Type.Boolean())
1716
+ }, { additionalProperties: false });
1717
+ const PluginApprovalResolveParamsSchema = Type.Object({
1718
+ id: NonEmptyString,
1719
+ decision: NonEmptyString
1720
+ }, { additionalProperties: false });
1721
+ //#endregion
1722
+ //#region src/gateway/protocol/schema/push.ts
1723
+ const ApnsEnvironmentSchema = Type.String({ enum: ["sandbox", "production"] });
1724
+ const PushTestParamsSchema = Type.Object({
1725
+ nodeId: NonEmptyString,
1726
+ title: Type.Optional(Type.String()),
1727
+ body: Type.Optional(Type.String()),
1728
+ environment: Type.Optional(ApnsEnvironmentSchema)
1729
+ }, { additionalProperties: false });
1730
+ Type.Object({
1731
+ ok: Type.Boolean(),
1732
+ status: Type.Integer(),
1733
+ apnsId: Type.Optional(Type.String()),
1734
+ reason: Type.Optional(Type.String()),
1735
+ tokenSuffix: Type.String(),
1736
+ topic: Type.String(),
1737
+ environment: ApnsEnvironmentSchema,
1738
+ transport: Type.String({ enum: ["direct", "relay"] })
1739
+ }, { additionalProperties: false });
1740
+ Type.Object({}, { additionalProperties: false });
1741
+ const SecretsResolveParamsSchema = Type.Object({
1742
+ commandName: NonEmptyString,
1743
+ targetIds: Type.Array(NonEmptyString)
1744
+ }, { additionalProperties: false });
1745
+ const SecretsResolveAssignmentSchema = Type.Object({
1746
+ path: Type.Optional(NonEmptyString),
1747
+ pathSegments: Type.Array(NonEmptyString),
1748
+ value: Type.Unknown()
1749
+ }, { additionalProperties: false });
1750
+ const SecretsResolveResultSchema = Type.Object({
1751
+ ok: Type.Optional(Type.Boolean()),
1752
+ assignments: Type.Optional(Type.Array(SecretsResolveAssignmentSchema)),
1753
+ diagnostics: Type.Optional(Type.Array(NonEmptyString)),
1754
+ inactiveRefPaths: Type.Optional(Type.Array(NonEmptyString))
1755
+ }, { additionalProperties: false });
1756
+ //#endregion
1757
+ //#region src/gateway/protocol/schema/sessions.ts
1758
+ const SessionCompactionCheckpointReasonSchema = Type.Union([
1759
+ Type.Literal("manual"),
1760
+ Type.Literal("auto-threshold"),
1761
+ Type.Literal("overflow-retry"),
1762
+ Type.Literal("timeout-retry")
1763
+ ]);
1764
+ const SessionCompactionTranscriptReferenceSchema = Type.Object({
1765
+ sessionId: NonEmptyString,
1766
+ sessionFile: Type.Optional(NonEmptyString),
1767
+ leafId: Type.Optional(NonEmptyString),
1768
+ entryId: Type.Optional(NonEmptyString)
1769
+ }, { additionalProperties: false });
1770
+ const SessionCompactionCheckpointSchema = Type.Object({
1771
+ checkpointId: NonEmptyString,
1772
+ sessionKey: NonEmptyString,
1773
+ sessionId: NonEmptyString,
1774
+ createdAt: Type.Integer({ minimum: 0 }),
1775
+ reason: SessionCompactionCheckpointReasonSchema,
1776
+ tokensBefore: Type.Optional(Type.Integer({ minimum: 0 })),
1777
+ tokensAfter: Type.Optional(Type.Integer({ minimum: 0 })),
1778
+ summary: Type.Optional(Type.String()),
1779
+ firstKeptEntryId: Type.Optional(NonEmptyString),
1780
+ preCompaction: SessionCompactionTranscriptReferenceSchema,
1781
+ postCompaction: SessionCompactionTranscriptReferenceSchema
1782
+ }, { additionalProperties: false });
1783
+ const SessionsListParamsSchema = Type.Object({
1784
+ limit: Type.Optional(Type.Integer({ minimum: 1 })),
1785
+ activeMinutes: Type.Optional(Type.Integer({ minimum: 1 })),
1786
+ includeGlobal: Type.Optional(Type.Boolean()),
1787
+ includeUnknown: Type.Optional(Type.Boolean()),
1788
+ includeDerivedTitles: Type.Optional(Type.Boolean()),
1789
+ includeLastMessage: Type.Optional(Type.Boolean()),
1790
+ label: Type.Optional(SessionLabelString),
1791
+ spawnedBy: Type.Optional(NonEmptyString),
1792
+ agentId: Type.Optional(NonEmptyString),
1793
+ search: Type.Optional(Type.String())
1794
+ }, { additionalProperties: false });
1795
+ const SessionsPreviewParamsSchema = Type.Object({
1796
+ keys: Type.Array(NonEmptyString, { minItems: 1 }),
1797
+ limit: Type.Optional(Type.Integer({ minimum: 1 })),
1798
+ maxChars: Type.Optional(Type.Integer({ minimum: 20 }))
1799
+ }, { additionalProperties: false });
1800
+ const SessionsResolveParamsSchema = Type.Object({
1801
+ key: Type.Optional(NonEmptyString),
1802
+ sessionId: Type.Optional(NonEmptyString),
1803
+ label: Type.Optional(SessionLabelString),
1804
+ agentId: Type.Optional(NonEmptyString),
1805
+ spawnedBy: Type.Optional(NonEmptyString),
1806
+ includeGlobal: Type.Optional(Type.Boolean()),
1807
+ includeUnknown: Type.Optional(Type.Boolean())
1808
+ }, { additionalProperties: false });
1809
+ const SessionsCreateParamsSchema = Type.Object({
1810
+ key: Type.Optional(NonEmptyString),
1811
+ agentId: Type.Optional(NonEmptyString),
1812
+ label: Type.Optional(SessionLabelString),
1813
+ model: Type.Optional(NonEmptyString),
1814
+ parentSessionKey: Type.Optional(NonEmptyString),
1815
+ task: Type.Optional(Type.String()),
1816
+ message: Type.Optional(Type.String())
1817
+ }, { additionalProperties: false });
1818
+ const SessionsSendParamsSchema = Type.Object({
1819
+ key: NonEmptyString,
1820
+ message: Type.String(),
1821
+ thinking: Type.Optional(Type.String()),
1822
+ attachments: Type.Optional(Type.Array(Type.Unknown())),
1823
+ timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })),
1824
+ idempotencyKey: Type.Optional(NonEmptyString)
1825
+ }, { additionalProperties: false });
1826
+ const SessionsMessagesSubscribeParamsSchema = Type.Object({ key: NonEmptyString }, { additionalProperties: false });
1827
+ const SessionsMessagesUnsubscribeParamsSchema = Type.Object({ key: NonEmptyString }, { additionalProperties: false });
1828
+ const SessionsAbortParamsSchema = Type.Object({
1829
+ key: NonEmptyString,
1830
+ runId: Type.Optional(NonEmptyString)
1831
+ }, { additionalProperties: false });
1832
+ const SessionsPatchParamsSchema = Type.Object({
1833
+ key: NonEmptyString,
1834
+ label: Type.Optional(Type.Union([SessionLabelString, Type.Null()])),
1835
+ thinkingLevel: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
1836
+ fastMode: Type.Optional(Type.Union([Type.Boolean(), Type.Null()])),
1837
+ verboseLevel: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
1838
+ traceLevel: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
1839
+ reasoningLevel: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
1840
+ responseUsage: Type.Optional(Type.Union([
1841
+ Type.Literal("off"),
1842
+ Type.Literal("tokens"),
1843
+ Type.Literal("full"),
1844
+ Type.Literal("on"),
1845
+ Type.Null()
1846
+ ])),
1847
+ elevatedLevel: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
1848
+ execHost: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
1849
+ execSecurity: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
1850
+ execAsk: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
1851
+ execNode: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
1852
+ model: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
1853
+ spawnedBy: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
1854
+ spawnedWorkspaceDir: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
1855
+ spawnDepth: Type.Optional(Type.Union([Type.Integer({ minimum: 0 }), Type.Null()])),
1856
+ subagentRole: Type.Optional(Type.Union([
1857
+ Type.Literal("orchestrator"),
1858
+ Type.Literal("leaf"),
1859
+ Type.Null()
1860
+ ])),
1861
+ subagentControlScope: Type.Optional(Type.Union([
1862
+ Type.Literal("children"),
1863
+ Type.Literal("none"),
1864
+ Type.Null()
1865
+ ])),
1866
+ sendPolicy: Type.Optional(Type.Union([
1867
+ Type.Literal("allow"),
1868
+ Type.Literal("deny"),
1869
+ Type.Null()
1870
+ ])),
1871
+ groupActivation: Type.Optional(Type.Union([
1872
+ Type.Literal("mention"),
1873
+ Type.Literal("always"),
1874
+ Type.Null()
1875
+ ]))
1876
+ }, { additionalProperties: false });
1877
+ const SessionsResetParamsSchema = Type.Object({
1878
+ key: NonEmptyString,
1879
+ reason: Type.Optional(Type.Union([Type.Literal("new"), Type.Literal("reset")]))
1880
+ }, { additionalProperties: false });
1881
+ const SessionsDeleteParamsSchema = Type.Object({
1882
+ key: NonEmptyString,
1883
+ deleteTranscript: Type.Optional(Type.Boolean()),
1884
+ emitLifecycleHooks: Type.Optional(Type.Boolean())
1885
+ }, { additionalProperties: false });
1886
+ const SessionsCompactParamsSchema = Type.Object({
1887
+ key: NonEmptyString,
1888
+ maxLines: Type.Optional(Type.Integer({ minimum: 1 }))
1889
+ }, { additionalProperties: false });
1890
+ const SessionsCompactionListParamsSchema = Type.Object({ key: NonEmptyString }, { additionalProperties: false });
1891
+ const SessionsCompactionGetParamsSchema = Type.Object({
1892
+ key: NonEmptyString,
1893
+ checkpointId: NonEmptyString
1894
+ }, { additionalProperties: false });
1895
+ const SessionsCompactionBranchParamsSchema = Type.Object({
1896
+ key: NonEmptyString,
1897
+ checkpointId: NonEmptyString
1898
+ }, { additionalProperties: false });
1899
+ const SessionsCompactionRestoreParamsSchema = Type.Object({
1900
+ key: NonEmptyString,
1901
+ checkpointId: NonEmptyString
1902
+ }, { additionalProperties: false });
1903
+ Type.Object({
1904
+ ok: Type.Literal(true),
1905
+ key: NonEmptyString,
1906
+ checkpoints: Type.Array(SessionCompactionCheckpointSchema)
1907
+ }, { additionalProperties: false });
1908
+ Type.Object({
1909
+ ok: Type.Literal(true),
1910
+ key: NonEmptyString,
1911
+ checkpoint: SessionCompactionCheckpointSchema
1912
+ }, { additionalProperties: false });
1913
+ Type.Object({
1914
+ ok: Type.Literal(true),
1915
+ sourceKey: NonEmptyString,
1916
+ key: NonEmptyString,
1917
+ sessionId: NonEmptyString,
1918
+ checkpoint: SessionCompactionCheckpointSchema,
1919
+ entry: Type.Object({
1920
+ sessionId: NonEmptyString,
1921
+ updatedAt: Type.Integer({ minimum: 0 })
1922
+ }, { additionalProperties: true })
1923
+ }, { additionalProperties: false });
1924
+ Type.Object({
1925
+ ok: Type.Literal(true),
1926
+ key: NonEmptyString,
1927
+ sessionId: NonEmptyString,
1928
+ checkpoint: SessionCompactionCheckpointSchema,
1929
+ entry: Type.Object({
1930
+ sessionId: NonEmptyString,
1931
+ updatedAt: Type.Integer({ minimum: 0 })
1932
+ }, { additionalProperties: true })
1933
+ }, { additionalProperties: false });
1934
+ const SessionsUsageParamsSchema = Type.Object({
1935
+ key: Type.Optional(NonEmptyString),
1936
+ startDate: Type.Optional(Type.String({ pattern: "^\\d{4}-\\d{2}-\\d{2}$" })),
1937
+ endDate: Type.Optional(Type.String({ pattern: "^\\d{4}-\\d{2}-\\d{2}$" })),
1938
+ mode: Type.Optional(Type.Union([
1939
+ Type.Literal("utc"),
1940
+ Type.Literal("gateway"),
1941
+ Type.Literal("specific")
1942
+ ])),
1943
+ utcOffset: Type.Optional(Type.String({ pattern: "^UTC[+-]\\d{1,2}(?::[0-5]\\d)?$" })),
1944
+ limit: Type.Optional(Type.Integer({ minimum: 1 })),
1945
+ includeContextWeight: Type.Optional(Type.Boolean())
1946
+ }, { additionalProperties: false });
1947
+ //#endregion
1948
+ //#region src/gateway/protocol/schema/wallet.ts
1949
+ const WalletChainSchema = Type.Union([
1950
+ Type.Literal("btc"),
1951
+ Type.Literal("evm"),
1952
+ Type.Literal("sol"),
1953
+ Type.Literal("trx"),
1954
+ Type.Literal("xmr")
1955
+ ]);
1956
+ const WalletSummaryParamsSchema = Type.Object({ includeBalances: Type.Optional(Type.Boolean()) }, { additionalProperties: false });
1957
+ const WalletRecoveryPhraseModeSchema = Type.Union([Type.Literal("generate"), Type.Literal("import")]);
1958
+ const WalletRecoveryPhraseSetParamsSchema = Type.Object({
1959
+ mode: WalletRecoveryPhraseModeSchema,
1960
+ passphrase: Type.String({
1961
+ minLength: 1,
1962
+ maxLength: 16 * 1024
1963
+ }),
1964
+ mnemonic: Type.Optional(Type.String({
1965
+ minLength: 1,
1966
+ maxLength: 64 * 1024
1967
+ })),
1968
+ overwrite: Type.Optional(Type.Boolean())
1969
+ }, { additionalProperties: false });
1970
+ const WalletPublicAccountSchema = Type.Object({
1971
+ id: Type.String({ minLength: 1 }),
1972
+ chain: WalletChainSchema,
1973
+ address: Type.String({ minLength: 1 }),
1974
+ label: Type.Optional(Type.String()),
1975
+ network: Type.Optional(Type.String()),
1976
+ derivationPath: Type.Optional(Type.String()),
1977
+ createdAt: Type.String(),
1978
+ updatedAt: Type.String()
1979
+ }, { additionalProperties: false });
1980
+ const WalletBalanceSchema = Type.Object({
1981
+ chain: WalletChainSchema,
1982
+ accountId: Type.String({ minLength: 1 }),
1983
+ address: Type.String({ minLength: 1 }),
1984
+ network: Type.Optional(Type.String()),
1985
+ asset: Type.String({ minLength: 1 }),
1986
+ amountAtomic: Type.String(),
1987
+ amount: Type.String(),
1988
+ confirmedAmountAtomic: Type.Optional(Type.String()),
1989
+ pendingAmountAtomic: Type.Optional(Type.String())
1990
+ }, { additionalProperties: false });
1991
+ const WalletSummaryResultSchema = Type.Object({
1992
+ enabled: Type.Boolean(),
1993
+ keystore: Type.Object({
1994
+ exists: Type.Boolean(),
1995
+ locked: Type.Boolean()
1996
+ }, { additionalProperties: false }),
1997
+ primaryAccount: Type.Optional(Type.String()),
1998
+ accounts: Type.Array(WalletPublicAccountSchema),
1999
+ balances: Type.Optional(Type.Array(WalletBalanceSchema)),
2000
+ warnings: Type.Array(Type.String())
2001
+ }, { additionalProperties: false });
2002
+ const WalletRecoveryPhraseSetResultSchema = Type.Object({
2003
+ mnemonicGenerated: Type.Boolean(),
2004
+ mnemonic: Type.Optional(Type.String({ minLength: 1 })),
2005
+ summary: WalletSummaryResultSchema
2006
+ }, { additionalProperties: false });
2007
+ //#endregion
2008
+ //#region src/gateway/protocol/schema/wizard.ts
2009
+ const WizardRunStatusSchema = Type.Union([
2010
+ Type.Literal("running"),
2011
+ Type.Literal("done"),
2012
+ Type.Literal("cancelled"),
2013
+ Type.Literal("error")
2014
+ ]);
2015
+ const WizardStartParamsSchema = Type.Object({
2016
+ mode: Type.Optional(Type.Union([Type.Literal("local"), Type.Literal("remote")])),
2017
+ workspace: Type.Optional(Type.String())
2018
+ }, { additionalProperties: false });
2019
+ const WizardAnswerSchema = Type.Object({
2020
+ stepId: NonEmptyString,
2021
+ value: Type.Optional(Type.Unknown())
2022
+ }, { additionalProperties: false });
2023
+ const WizardNextParamsSchema = Type.Object({
2024
+ sessionId: NonEmptyString,
2025
+ answer: Type.Optional(WizardAnswerSchema)
2026
+ }, { additionalProperties: false });
2027
+ const WizardSessionIdParamsSchema = Type.Object({ sessionId: NonEmptyString }, { additionalProperties: false });
2028
+ const WizardCancelParamsSchema = WizardSessionIdParamsSchema;
2029
+ const WizardStatusParamsSchema = WizardSessionIdParamsSchema;
2030
+ const WizardStepOptionSchema = Type.Object({
2031
+ value: Type.Unknown(),
2032
+ label: NonEmptyString,
2033
+ hint: Type.Optional(Type.String())
2034
+ }, { additionalProperties: false });
2035
+ const WizardStepSchema = Type.Object({
2036
+ id: NonEmptyString,
2037
+ type: Type.Union([
2038
+ Type.Literal("note"),
2039
+ Type.Literal("select"),
2040
+ Type.Literal("text"),
2041
+ Type.Literal("confirm"),
2042
+ Type.Literal("multiselect"),
2043
+ Type.Literal("progress"),
2044
+ Type.Literal("action")
2045
+ ]),
2046
+ title: Type.Optional(Type.String()),
2047
+ message: Type.Optional(Type.String()),
2048
+ options: Type.Optional(Type.Array(WizardStepOptionSchema)),
2049
+ initialValue: Type.Optional(Type.Unknown()),
2050
+ placeholder: Type.Optional(Type.String()),
2051
+ sensitive: Type.Optional(Type.Boolean()),
2052
+ executor: Type.Optional(Type.Union([Type.Literal("gateway"), Type.Literal("client")]))
2053
+ }, { additionalProperties: false });
2054
+ const WizardResultFields = {
2055
+ done: Type.Boolean(),
2056
+ step: Type.Optional(WizardStepSchema),
2057
+ status: Type.Optional(WizardRunStatusSchema),
2058
+ error: Type.Optional(Type.String())
2059
+ };
2060
+ Type.Object(WizardResultFields, { additionalProperties: false });
2061
+ Type.Object({
2062
+ sessionId: NonEmptyString,
2063
+ ...WizardResultFields
2064
+ }, { additionalProperties: false });
2065
+ Type.Object({
2066
+ status: WizardRunStatusSchema,
2067
+ error: Type.Optional(Type.String())
2068
+ }, { additionalProperties: false });
2069
+ //#endregion
2070
+ //#region src/gateway/protocol/index.ts
2071
+ const ajv = new AjvPkg({
2072
+ allErrors: true,
2073
+ strict: false,
2074
+ removeAdditional: false
2075
+ });
2076
+ const validateCommandsListParams = ajv.compile(CommandsListParamsSchema);
2077
+ const validateConnectParams = ajv.compile(ConnectParamsSchema);
2078
+ const validateRequestFrame = ajv.compile(RequestFrameSchema);
2079
+ const validateResponseFrame = ajv.compile(ResponseFrameSchema);
2080
+ const validateEventFrame = ajv.compile(EventFrameSchema);
2081
+ const validateMessageActionParams = ajv.compile(MessageActionParamsSchema);
2082
+ const validateSendParams = ajv.compile(SendParamsSchema);
2083
+ const validatePollParams = ajv.compile(PollParamsSchema);
2084
+ const validateAgentParams = ajv.compile(AgentParamsSchema);
2085
+ const validateAgentIdentityParams = ajv.compile(AgentIdentityParamsSchema);
2086
+ const validateAgentWaitParams = ajv.compile(AgentWaitParamsSchema);
2087
+ const validateWakeParams = ajv.compile(WakeParamsSchema);
2088
+ const validateAgentsListParams = ajv.compile(AgentsListParamsSchema);
2089
+ const validateAgentsCreateParams = ajv.compile(AgentsCreateParamsSchema);
2090
+ const validateAgentsUpdateParams = ajv.compile(AgentsUpdateParamsSchema);
2091
+ const validateAgentsDeleteParams = ajv.compile(AgentsDeleteParamsSchema);
2092
+ const validateAgentsFilesListParams = ajv.compile(AgentsFilesListParamsSchema);
2093
+ const validateAgentsFilesGetParams = ajv.compile(AgentsFilesGetParamsSchema);
2094
+ const validateAgentsFilesSetParams = ajv.compile(AgentsFilesSetParamsSchema);
2095
+ const validateNodePairRequestParams = ajv.compile(NodePairRequestParamsSchema);
2096
+ const validateNodePairListParams = ajv.compile(NodePairListParamsSchema);
2097
+ const validateNodePairApproveParams = ajv.compile(NodePairApproveParamsSchema);
2098
+ const validateNodePairRejectParams = ajv.compile(NodePairRejectParamsSchema);
2099
+ const validateNodePairVerifyParams = ajv.compile(NodePairVerifyParamsSchema);
2100
+ const validateNodeRenameParams = ajv.compile(NodeRenameParamsSchema);
2101
+ const validateNodeListParams = ajv.compile(NodeListParamsSchema);
2102
+ const validateNodePendingAckParams = ajv.compile(NodePendingAckParamsSchema);
2103
+ const validateNodeDescribeParams = ajv.compile(NodeDescribeParamsSchema);
2104
+ const validateNodeInvokeParams = ajv.compile(NodeInvokeParamsSchema);
2105
+ const validateNodeInvokeResultParams = ajv.compile(NodeInvokeResultParamsSchema);
2106
+ const validateNodeEventParams = ajv.compile(NodeEventParamsSchema);
2107
+ const validateNodePendingDrainParams = ajv.compile(NodePendingDrainParamsSchema);
2108
+ const validateNodePendingEnqueueParams = ajv.compile(NodePendingEnqueueParamsSchema);
2109
+ const validatePushTestParams = ajv.compile(PushTestParamsSchema);
2110
+ const validateSecretsResolveParams = ajv.compile(SecretsResolveParamsSchema);
2111
+ const validateSecretsResolveResult = ajv.compile(SecretsResolveResultSchema);
2112
+ const validateSessionsListParams = ajv.compile(SessionsListParamsSchema);
2113
+ const validateSessionsPreviewParams = ajv.compile(SessionsPreviewParamsSchema);
2114
+ const validateSessionsResolveParams = ajv.compile(SessionsResolveParamsSchema);
2115
+ const validateSessionsCreateParams = ajv.compile(SessionsCreateParamsSchema);
2116
+ const validateSessionsSendParams = ajv.compile(SessionsSendParamsSchema);
2117
+ const validateSessionsMessagesSubscribeParams = ajv.compile(SessionsMessagesSubscribeParamsSchema);
2118
+ const validateSessionsMessagesUnsubscribeParams = ajv.compile(SessionsMessagesUnsubscribeParamsSchema);
2119
+ const validateSessionsAbortParams = ajv.compile(SessionsAbortParamsSchema);
2120
+ const validateSessionsPatchParams = ajv.compile(SessionsPatchParamsSchema);
2121
+ const validateSessionsResetParams = ajv.compile(SessionsResetParamsSchema);
2122
+ const validateSessionsDeleteParams = ajv.compile(SessionsDeleteParamsSchema);
2123
+ const validateSessionsCompactParams = ajv.compile(SessionsCompactParamsSchema);
2124
+ const validateSessionsCompactionListParams = ajv.compile(SessionsCompactionListParamsSchema);
2125
+ const validateSessionsCompactionGetParams = ajv.compile(SessionsCompactionGetParamsSchema);
2126
+ const validateSessionsCompactionBranchParams = ajv.compile(SessionsCompactionBranchParamsSchema);
2127
+ const validateSessionsCompactionRestoreParams = ajv.compile(SessionsCompactionRestoreParamsSchema);
2128
+ const validateSessionsUsageParams = ajv.compile(SessionsUsageParamsSchema);
2129
+ const validateConfigGetParams = ajv.compile(ConfigGetParamsSchema);
2130
+ const validateConfigSetParams = ajv.compile(ConfigSetParamsSchema);
2131
+ const validateConfigApplyParams = ajv.compile(ConfigApplyParamsSchema);
2132
+ const validateConfigPatchParams = ajv.compile(ConfigPatchParamsSchema);
2133
+ const validateConfigSchemaParams = ajv.compile(ConfigSchemaParamsSchema);
2134
+ const validateConfigSchemaLookupParams = ajv.compile(ConfigSchemaLookupParamsSchema);
2135
+ const validateConfigSchemaLookupResult = ajv.compile(ConfigSchemaLookupResultSchema);
2136
+ const validateWizardStartParams = ajv.compile(WizardStartParamsSchema);
2137
+ const validateWizardNextParams = ajv.compile(WizardNextParamsSchema);
2138
+ const validateWizardCancelParams = ajv.compile(WizardCancelParamsSchema);
2139
+ const validateWizardStatusParams = ajv.compile(WizardStatusParamsSchema);
2140
+ const validateTalkModeParams = ajv.compile(TalkModeParamsSchema);
2141
+ const validateTalkConfigParams = ajv.compile(TalkConfigParamsSchema);
2142
+ ajv.compile(TalkConfigResultSchema);
2143
+ const validateTalkRealtimeSessionParams = ajv.compile(TalkRealtimeSessionParamsSchema);
2144
+ ajv.compile(TalkRealtimeSessionResultSchema);
2145
+ const validateTalkSpeakParams = ajv.compile(TalkSpeakParamsSchema);
2146
+ ajv.compile(TalkSpeakResultSchema);
2147
+ const validateChannelsStatusParams = ajv.compile(ChannelsStatusParamsSchema);
2148
+ const validateChannelsStartParams = ajv.compile(ChannelsStartParamsSchema);
2149
+ const validateChannelsLogoutParams = ajv.compile(ChannelsLogoutParamsSchema);
2150
+ const validateModelsListParams = ajv.compile(ModelsListParamsSchema);
2151
+ const validateSkillsStatusParams = ajv.compile(SkillsStatusParamsSchema);
2152
+ const validateToolsCatalogParams = ajv.compile(ToolsCatalogParamsSchema);
2153
+ const validateToolsEffectiveParams = ajv.compile(ToolsEffectiveParamsSchema);
2154
+ const validateSkillsBinsParams = ajv.compile(SkillsBinsParamsSchema);
2155
+ const validateSkillsInstallParams = ajv.compile(SkillsInstallParamsSchema);
2156
+ const validateSkillsUpdateParams = ajv.compile(SkillsUpdateParamsSchema);
2157
+ const validateSkillsSearchParams = ajv.compile(SkillsSearchParamsSchema);
2158
+ const validateSkillsDetailParams = ajv.compile(SkillsDetailParamsSchema);
2159
+ const validateCronListParams = ajv.compile(CronListParamsSchema);
2160
+ const validateCronStatusParams = ajv.compile(CronStatusParamsSchema);
2161
+ const validateCronAddParams = ajv.compile(CronAddParamsSchema);
2162
+ const validateCronUpdateParams = ajv.compile(CronUpdateParamsSchema);
2163
+ const validateCronRemoveParams = ajv.compile(CronRemoveParamsSchema);
2164
+ const validateCronRunParams = ajv.compile(CronRunParamsSchema);
2165
+ const validateCronRunsParams = ajv.compile(CronRunsParamsSchema);
2166
+ const validateDevicePairListParams = ajv.compile(DevicePairListParamsSchema);
2167
+ const validateDevicePairApproveParams = ajv.compile(DevicePairApproveParamsSchema);
2168
+ const validateDevicePairRejectParams = ajv.compile(DevicePairRejectParamsSchema);
2169
+ const validateDevicePairRemoveParams = ajv.compile(DevicePairRemoveParamsSchema);
2170
+ const validateDeviceTokenRotateParams = ajv.compile(DeviceTokenRotateParamsSchema);
2171
+ const validateDeviceTokenRevokeParams = ajv.compile(DeviceTokenRevokeParamsSchema);
2172
+ const validateExecApprovalsGetParams = ajv.compile(ExecApprovalsGetParamsSchema);
2173
+ const validateExecApprovalsSetParams = ajv.compile(ExecApprovalsSetParamsSchema);
2174
+ const validateExecApprovalGetParams = ajv.compile(ExecApprovalGetParamsSchema);
2175
+ const validateExecApprovalRequestParams = ajv.compile(ExecApprovalRequestParamsSchema);
2176
+ const validateExecApprovalResolveParams = ajv.compile(ExecApprovalResolveParamsSchema);
2177
+ const validatePluginApprovalRequestParams = ajv.compile(PluginApprovalRequestParamsSchema);
2178
+ const validatePluginApprovalResolveParams = ajv.compile(PluginApprovalResolveParamsSchema);
2179
+ const validateExecApprovalsNodeGetParams = ajv.compile(ExecApprovalsNodeGetParamsSchema);
2180
+ const validateExecApprovalsNodeSetParams = ajv.compile(ExecApprovalsNodeSetParamsSchema);
2181
+ const validateLogsTailParams = ajv.compile(LogsTailParamsSchema);
2182
+ const validateChatHistoryParams = ajv.compile(ChatHistoryParamsSchema);
2183
+ const validateChatSendParams = ajv.compile(ChatSendParamsSchema);
2184
+ const validateChatAbortParams = ajv.compile(ChatAbortParamsSchema);
2185
+ const validateChatInjectParams = ajv.compile(ChatInjectParamsSchema);
2186
+ ajv.compile(ChatEventSchema);
2187
+ const validateUpdateRunParams = ajv.compile(UpdateRunParamsSchema);
2188
+ const validateWebLoginStartParams = ajv.compile(WebLoginStartParamsSchema);
2189
+ const validateWebLoginWaitParams = ajv.compile(WebLoginWaitParamsSchema);
2190
+ const validateWalletSummaryParams = ajv.compile(WalletSummaryParamsSchema);
2191
+ ajv.compile(WalletSummaryResultSchema);
2192
+ const validateWalletRecoveryPhraseSetParams = ajv.compile(WalletRecoveryPhraseSetParamsSchema);
2193
+ ajv.compile(WalletRecoveryPhraseSetResultSchema);
2194
+ function formatValidationErrors(errors) {
2195
+ if (!errors?.length) return "unknown validation error";
2196
+ const parts = [];
2197
+ for (const err of errors) {
2198
+ const keyword = typeof err?.keyword === "string" ? err.keyword : "";
2199
+ const instancePath = typeof err?.instancePath === "string" ? err.instancePath : "";
2200
+ if (keyword === "additionalProperties") {
2201
+ const additionalProperty = (err?.params)?.additionalProperty;
2202
+ if (typeof additionalProperty === "string" && additionalProperty.trim()) {
2203
+ const where = instancePath ? `at ${instancePath}` : "at root";
2204
+ parts.push(`${where}: unexpected property '${additionalProperty}'`);
2205
+ continue;
2206
+ }
2207
+ }
2208
+ const message = typeof err?.message === "string" && err.message.trim() ? err.message : "validation error";
2209
+ const where = instancePath ? `at ${instancePath}: ` : "";
2210
+ parts.push(`${where}${message}`);
2211
+ }
2212
+ const unique = Array.from(new Set(parts.filter((part) => part.trim())));
2213
+ if (!unique.length) return ajv.errorsText(errors, { separator: "; " }) || "unknown validation error";
2214
+ return unique.join("; ");
2215
+ }
2216
+ //#endregion
2217
+ //#region src/gateway/client.ts
2218
+ var GatewayClientRequestError = class extends Error {
2219
+ constructor(error) {
2220
+ super(formatConnectErrorMessage({
2221
+ message: error.message,
2222
+ details: error.details
2223
+ }));
2224
+ this.name = "GatewayClientRequestError";
2225
+ this.gatewayCode = error.code ?? "UNAVAILABLE";
2226
+ this.details = error.details;
2227
+ this.retryable = error.retryable === true;
2228
+ this.retryAfterMs = error.retryAfterMs;
2229
+ }
2230
+ };
2231
+ function readConnectChallengeTimeoutOverride(opts) {
2232
+ if (typeof opts.connectChallengeTimeoutMs === "number" && Number.isFinite(opts.connectChallengeTimeoutMs)) return opts.connectChallengeTimeoutMs;
2233
+ if (typeof opts.connectDelayMs === "number" && Number.isFinite(opts.connectDelayMs)) return opts.connectDelayMs;
2234
+ }
2235
+ function isGatewayClientStoppedError(err) {
2236
+ const message = err instanceof Error ? err.message : String(err);
2237
+ return message === "gateway client stopped" || message === "Error: gateway client stopped";
2238
+ }
2239
+ function resolveGatewayClientConnectChallengeTimeoutMs(opts) {
2240
+ return resolveConnectChallengeTimeoutMs(readConnectChallengeTimeoutOverride(opts));
2241
+ }
2242
+ const FORCE_STOP_TERMINATE_GRACE_MS = 250;
2243
+ const STOP_AND_WAIT_TIMEOUT_MS = 1e3;
2244
+ var GatewayClient = class {
2245
+ constructor(opts) {
2246
+ this.ws = null;
2247
+ this.pending = /* @__PURE__ */ new Map();
2248
+ this.backoffMs = 1e3;
2249
+ this.closed = false;
2250
+ this.lastSeq = null;
2251
+ this.connectNonce = null;
2252
+ this.connectSent = false;
2253
+ this.connectTimer = null;
2254
+ this.pendingDeviceTokenRetry = false;
2255
+ this.deviceTokenRetryBudgetUsed = false;
2256
+ this.pendingConnectErrorDetailCode = null;
2257
+ this.lastTick = null;
2258
+ this.tickIntervalMs = 3e4;
2259
+ this.tickTimer = null;
2260
+ this.pendingStop = null;
2261
+ this.socketOpened = false;
2262
+ this.opts = {
2263
+ ...opts,
2264
+ deviceIdentity: opts.deviceIdentity === null ? void 0 : opts.deviceIdentity ?? loadOrCreateDeviceIdentity()
2265
+ };
2266
+ this.requestTimeoutMs = typeof opts.requestTimeoutMs === "number" && Number.isFinite(opts.requestTimeoutMs) ? resolveSafeTimeoutDelayMs(opts.requestTimeoutMs) : 3e4;
2267
+ }
2268
+ start() {
2269
+ if (this.closed) return;
2270
+ this.clearConnectChallengeTimeout();
2271
+ this.connectNonce = null;
2272
+ this.connectSent = false;
2273
+ const url = this.opts.url ?? "ws://127.0.0.1:18789";
2274
+ if (this.opts.tlsFingerprint && !url.startsWith("wss://")) {
2275
+ this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway tls fingerprint requires wss:// gateway url"));
2276
+ return;
2277
+ }
2278
+ const allowPrivateWs = process.env.GENESIS_ALLOW_INSECURE_PRIVATE_WS === "1";
2279
+ if (!isSecureWebSocketUrl(url, { allowPrivateWs })) {
2280
+ let displayHost = url;
2281
+ try {
2282
+ displayHost = new URL(url).hostname || url;
2283
+ } catch {}
2284
+ const error = /* @__PURE__ */ new Error(`SECURITY ERROR: Cannot connect to "${displayHost}" over plaintext ws://. Both credentials and chat data would be exposed to network interception. Use wss:// for remote URLs. Safe defaults: keep gateway.bind=loopback and connect via SSH tunnel (ssh -N -L 18789:127.0.0.1:18789 user@gateway-host), or use Tailscale Serve/Funnel. ` + (allowPrivateWs ? "" : "Break-glass (trusted private networks only): set GENESIS_ALLOW_INSECURE_PRIVATE_WS=1. ") + "Run `genesis doctor --fix` for guidance.");
2285
+ this.opts.onConnectError?.(error);
2286
+ return;
2287
+ }
2288
+ const wsOptions = { maxPayload: 25 * 1024 * 1024 };
2289
+ if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
2290
+ wsOptions.rejectUnauthorized = false;
2291
+ wsOptions.checkServerIdentity = (_host, cert) => {
2292
+ const fingerprintValue = typeof cert === "object" && cert && "fingerprint256" in cert ? cert.fingerprint256 ?? "" : "";
2293
+ const fingerprint = normalizeFingerprint(typeof fingerprintValue === "string" ? fingerprintValue : "");
2294
+ const expected = normalizeFingerprint(this.opts.tlsFingerprint ?? "");
2295
+ if (!expected) return;
2296
+ if (!fingerprint) return /* @__PURE__ */ new Error("Missing server TLS fingerprint");
2297
+ if (fingerprint !== expected) return /* @__PURE__ */ new Error("Server TLS fingerprint mismatch");
2298
+ };
2299
+ }
2300
+ const ws = new WebSocket$1(url, wsOptions);
2301
+ this.ws = ws;
2302
+ this.socketOpened = false;
2303
+ this.connectNonce = null;
2304
+ this.connectSent = false;
2305
+ this.clearConnectChallengeTimeout();
2306
+ ws.on("open", () => {
2307
+ this.socketOpened = true;
2308
+ if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
2309
+ const tlsError = this.validateTlsFingerprint();
2310
+ if (tlsError) {
2311
+ this.opts.onConnectError?.(tlsError);
2312
+ this.ws?.close(1008, tlsError.message);
2313
+ return;
2314
+ }
2315
+ }
2316
+ this.beginPreauthHandshake();
2317
+ });
2318
+ ws.on("message", (data) => this.handleMessage(rawDataToString(data)));
2319
+ ws.on("close", (code, reason) => {
2320
+ const reasonText = rawDataToString(reason);
2321
+ const connectErrorDetailCode = this.pendingConnectErrorDetailCode;
2322
+ this.pendingConnectErrorDetailCode = null;
2323
+ if (this.ws === ws) this.ws = null;
2324
+ this.socketOpened = false;
2325
+ this.resolvePendingStop(ws);
2326
+ if (code === 1008 && normalizeLowercaseStringOrEmpty(reasonText).includes("device token mismatch") && !this.opts.token && !this.opts.password && this.opts.deviceIdentity) {
2327
+ const deviceId = this.opts.deviceIdentity.deviceId;
2328
+ const role = this.opts.role ?? "operator";
2329
+ try {
2330
+ clearDeviceAuthToken({
2331
+ deviceId,
2332
+ role
2333
+ });
2334
+ logDebug(`cleared stale device-auth token for device ${deviceId}`);
2335
+ } catch (err) {
2336
+ logDebug(`failed clearing stale device-auth token for device ${deviceId}: ${String(err)}`);
2337
+ }
2338
+ }
2339
+ this.flushPendingErrors(/* @__PURE__ */ new Error(`gateway closed (${code}): ${reasonText}`));
2340
+ if (this.shouldPauseReconnectAfterAuthFailure(connectErrorDetailCode)) {
2341
+ this.opts.onClose?.(code, reasonText);
2342
+ return;
2343
+ }
2344
+ this.scheduleReconnect();
2345
+ this.opts.onClose?.(code, reasonText);
2346
+ });
2347
+ ws.on("error", (err) => {
2348
+ logDebug(`gateway client error: ${String(err)}`);
2349
+ if (!this.connectSent) this.opts.onConnectError?.(err instanceof Error ? err : new Error(String(err)));
2350
+ });
2351
+ }
2352
+ stop() {
2353
+ this.beginStop();
2354
+ }
2355
+ async stopAndWait(opts) {
2356
+ const stopPromise = this.beginStop();
2357
+ if (!stopPromise) return;
2358
+ const timeoutMs = typeof opts?.timeoutMs === "number" && Number.isFinite(opts.timeoutMs) ? Math.max(1, Math.floor(opts.timeoutMs)) : STOP_AND_WAIT_TIMEOUT_MS;
2359
+ let timeout = null;
2360
+ try {
2361
+ await Promise.race([stopPromise, new Promise((_, reject) => {
2362
+ timeout = setTimeout(() => {
2363
+ reject(/* @__PURE__ */ new Error(`gateway client stop timed out after ${timeoutMs}ms`));
2364
+ }, timeoutMs);
2365
+ timeout.unref?.();
2366
+ })]);
2367
+ } finally {
2368
+ if (timeout) clearTimeout(timeout);
2369
+ }
2370
+ }
2371
+ beginStop() {
2372
+ this.closed = true;
2373
+ this.pendingDeviceTokenRetry = false;
2374
+ this.deviceTokenRetryBudgetUsed = false;
2375
+ this.pendingConnectErrorDetailCode = null;
2376
+ if (this.tickTimer) {
2377
+ clearInterval(this.tickTimer);
2378
+ this.tickTimer = null;
2379
+ }
2380
+ this.clearConnectChallengeTimeout();
2381
+ if (this.pendingStop) {
2382
+ this.flushPendingErrors(/* @__PURE__ */ new Error("gateway client stopped"));
2383
+ return this.pendingStop.promise;
2384
+ }
2385
+ const ws = this.ws;
2386
+ this.ws = null;
2387
+ if (ws) {
2388
+ const stopPromise = this.createPendingStop(ws);
2389
+ ws.close();
2390
+ setTimeout(() => {
2391
+ try {
2392
+ ws.terminate();
2393
+ } catch {}
2394
+ this.resolvePendingStop(ws);
2395
+ }, FORCE_STOP_TERMINATE_GRACE_MS).unref?.();
2396
+ this.flushPendingErrors(/* @__PURE__ */ new Error("gateway client stopped"));
2397
+ return stopPromise;
2398
+ }
2399
+ this.flushPendingErrors(/* @__PURE__ */ new Error("gateway client stopped"));
2400
+ return null;
2401
+ }
2402
+ createPendingStop(ws) {
2403
+ if (this.pendingStop?.ws === ws) return this.pendingStop.promise;
2404
+ let resolve;
2405
+ const promise = new Promise((res) => {
2406
+ resolve = res;
2407
+ });
2408
+ this.pendingStop = {
2409
+ ws,
2410
+ promise,
2411
+ resolve
2412
+ };
2413
+ return promise;
2414
+ }
2415
+ resolvePendingStop(ws) {
2416
+ if (this.pendingStop?.ws !== ws) return;
2417
+ const { resolve } = this.pendingStop;
2418
+ this.pendingStop = null;
2419
+ resolve();
2420
+ }
2421
+ sendConnect() {
2422
+ if (this.connectSent) return;
2423
+ const nonce = normalizeOptionalString(this.connectNonce) ?? "";
2424
+ if (!nonce) {
2425
+ this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway connect challenge missing nonce"));
2426
+ this.ws?.close(1008, "connect challenge missing nonce");
2427
+ return;
2428
+ }
2429
+ this.connectSent = true;
2430
+ this.clearConnectChallengeTimeout();
2431
+ const role = this.opts.role ?? "operator";
2432
+ const { authToken, authBootstrapToken, authDeviceToken, authPassword, signatureToken, resolvedDeviceToken, storedToken, storedScopes, usingStoredDeviceToken } = this.selectConnectAuth(role);
2433
+ if (this.pendingDeviceTokenRetry && authDeviceToken) this.pendingDeviceTokenRetry = false;
2434
+ const auth = authToken || authBootstrapToken || authPassword || resolvedDeviceToken ? {
2435
+ token: authToken,
2436
+ bootstrapToken: authBootstrapToken,
2437
+ deviceToken: authDeviceToken ?? resolvedDeviceToken,
2438
+ password: authPassword
2439
+ } : void 0;
2440
+ const signedAtMs = Date.now();
2441
+ const scopes = this.resolveConnectScopes({
2442
+ usingStoredDeviceToken,
2443
+ storedScopes
2444
+ });
2445
+ const platform = this.opts.platform ?? process.platform;
2446
+ const device = (() => {
2447
+ if (!this.opts.deviceIdentity) return;
2448
+ const payload = buildDeviceAuthPayloadV3({
2449
+ deviceId: this.opts.deviceIdentity.deviceId,
2450
+ clientId: this.opts.clientName ?? GATEWAY_CLIENT_NAMES.GATEWAY_CLIENT,
2451
+ clientMode: this.opts.mode ?? GATEWAY_CLIENT_MODES.BACKEND,
2452
+ role,
2453
+ scopes,
2454
+ signedAtMs,
2455
+ token: signatureToken ?? null,
2456
+ nonce,
2457
+ platform,
2458
+ deviceFamily: this.opts.deviceFamily
2459
+ });
2460
+ const signature = signDevicePayload(this.opts.deviceIdentity.privateKeyPem, payload);
2461
+ return {
2462
+ id: this.opts.deviceIdentity.deviceId,
2463
+ publicKey: publicKeyRawBase64UrlFromPem(this.opts.deviceIdentity.publicKeyPem),
2464
+ signature,
2465
+ signedAt: signedAtMs,
2466
+ nonce
2467
+ };
2468
+ })();
2469
+ const params = {
2470
+ minProtocol: this.opts.minProtocol ?? 4,
2471
+ maxProtocol: this.opts.maxProtocol ?? 4,
2472
+ client: {
2473
+ id: this.opts.clientName ?? GATEWAY_CLIENT_NAMES.GATEWAY_CLIENT,
2474
+ displayName: this.opts.clientDisplayName,
2475
+ version: this.opts.clientVersion ?? VERSION,
2476
+ platform,
2477
+ deviceFamily: this.opts.deviceFamily,
2478
+ mode: this.opts.mode ?? GATEWAY_CLIENT_MODES.BACKEND,
2479
+ instanceId: this.opts.instanceId
2480
+ },
2481
+ caps: Array.isArray(this.opts.caps) ? this.opts.caps : [],
2482
+ commands: Array.isArray(this.opts.commands) ? this.opts.commands : void 0,
2483
+ permissions: this.opts.permissions && typeof this.opts.permissions === "object" ? this.opts.permissions : void 0,
2484
+ pathEnv: this.opts.pathEnv,
2485
+ auth,
2486
+ role,
2487
+ scopes,
2488
+ device
2489
+ };
2490
+ this.request("connect", params).then((helloOk) => {
2491
+ this.pendingDeviceTokenRetry = false;
2492
+ this.deviceTokenRetryBudgetUsed = false;
2493
+ this.pendingConnectErrorDetailCode = null;
2494
+ const authInfo = helloOk?.auth;
2495
+ if (authInfo?.deviceToken && this.opts.deviceIdentity) storeDeviceAuthToken({
2496
+ deviceId: this.opts.deviceIdentity.deviceId,
2497
+ role: authInfo.role ?? role,
2498
+ token: authInfo.deviceToken,
2499
+ scopes: authInfo.scopes ?? []
2500
+ });
2501
+ this.backoffMs = 1e3;
2502
+ this.tickIntervalMs = typeof helloOk.policy?.tickIntervalMs === "number" ? helloOk.policy.tickIntervalMs : 3e4;
2503
+ this.lastTick = Date.now();
2504
+ this.startTickWatch();
2505
+ this.opts.onHelloOk?.(helloOk);
2506
+ }).catch((err) => {
2507
+ this.pendingConnectErrorDetailCode = err instanceof GatewayClientRequestError ? readConnectErrorDetailCode(err.details) : null;
2508
+ if (this.shouldRetryWithStoredDeviceToken({
2509
+ error: err,
2510
+ explicitGatewayToken: normalizeOptionalString(this.opts.token),
2511
+ resolvedDeviceToken,
2512
+ storedToken: storedToken ?? void 0
2513
+ })) {
2514
+ this.pendingDeviceTokenRetry = true;
2515
+ this.deviceTokenRetryBudgetUsed = true;
2516
+ this.backoffMs = Math.min(this.backoffMs, 250);
2517
+ }
2518
+ this.opts.onConnectError?.(err instanceof Error ? err : new Error(String(err)));
2519
+ const msg = `gateway connect failed: ${String(err)}`;
2520
+ if (this.opts.mode === GATEWAY_CLIENT_MODES.PROBE || isGatewayClientStoppedError(err)) logDebug(msg);
2521
+ else logError(msg);
2522
+ this.ws?.close(1008, "connect failed");
2523
+ });
2524
+ }
2525
+ resolveConnectScopes(params) {
2526
+ if (params.usingStoredDeviceToken && Array.isArray(params.storedScopes) && params.storedScopes.length > 0) return params.storedScopes;
2527
+ return this.opts.scopes ?? ["operator.admin"];
2528
+ }
2529
+ loadStoredDeviceAuth(role) {
2530
+ if (!this.opts.deviceIdentity) return null;
2531
+ const storedAuth = loadDeviceAuthToken({
2532
+ deviceId: this.opts.deviceIdentity.deviceId,
2533
+ role
2534
+ });
2535
+ if (!storedAuth) return null;
2536
+ return {
2537
+ token: storedAuth.token,
2538
+ scopes: storedAuth.scopes
2539
+ };
2540
+ }
2541
+ shouldPauseReconnectAfterAuthFailure(detailCode) {
2542
+ if (!detailCode) return false;
2543
+ if (detailCode === ConnectErrorDetailCodes.AUTH_TOKEN_MISSING || detailCode === ConnectErrorDetailCodes.AUTH_BOOTSTRAP_TOKEN_INVALID || detailCode === ConnectErrorDetailCodes.AUTH_PASSWORD_MISSING || detailCode === ConnectErrorDetailCodes.AUTH_PASSWORD_MISMATCH || detailCode === ConnectErrorDetailCodes.AUTH_RATE_LIMITED || detailCode === ConnectErrorDetailCodes.PAIRING_REQUIRED || detailCode === ConnectErrorDetailCodes.CONTROL_UI_DEVICE_IDENTITY_REQUIRED || detailCode === ConnectErrorDetailCodes.DEVICE_IDENTITY_REQUIRED) return true;
2544
+ if (detailCode !== ConnectErrorDetailCodes.AUTH_TOKEN_MISMATCH) return false;
2545
+ if (this.pendingDeviceTokenRetry) return false;
2546
+ if (!this.isTrustedDeviceRetryEndpoint()) return true;
2547
+ return this.deviceTokenRetryBudgetUsed;
2548
+ }
2549
+ shouldRetryWithStoredDeviceToken(params) {
2550
+ if (this.deviceTokenRetryBudgetUsed) return false;
2551
+ if (params.resolvedDeviceToken) return false;
2552
+ if (!params.explicitGatewayToken || !params.storedToken) return false;
2553
+ if (!this.isTrustedDeviceRetryEndpoint()) return false;
2554
+ if (!(params.error instanceof GatewayClientRequestError)) return false;
2555
+ const detailCode = readConnectErrorDetailCode(params.error.details);
2556
+ const advice = readConnectErrorRecoveryAdvice(params.error.details);
2557
+ const retryWithDeviceTokenRecommended = advice.recommendedNextStep === "retry_with_device_token";
2558
+ return advice.canRetryWithDeviceToken === true || retryWithDeviceTokenRecommended || detailCode === ConnectErrorDetailCodes.AUTH_TOKEN_MISMATCH;
2559
+ }
2560
+ isTrustedDeviceRetryEndpoint() {
2561
+ const rawUrl = this.opts.url ?? "ws://127.0.0.1:18789";
2562
+ try {
2563
+ const parsed = new URL(rawUrl);
2564
+ const protocol = parsed.protocol === "https:" ? "wss:" : parsed.protocol === "http:" ? "ws:" : parsed.protocol;
2565
+ if (isLoopbackHost(parsed.hostname)) return true;
2566
+ return protocol === "wss:" && Boolean(this.opts.tlsFingerprint?.trim());
2567
+ } catch {
2568
+ return false;
2569
+ }
2570
+ }
2571
+ selectConnectAuth(role) {
2572
+ const explicitGatewayToken = normalizeOptionalString(this.opts.token);
2573
+ const explicitBootstrapToken = normalizeOptionalString(this.opts.bootstrapToken);
2574
+ const explicitDeviceToken = normalizeOptionalString(this.opts.deviceToken);
2575
+ const authPassword = normalizeOptionalString(this.opts.password);
2576
+ const storedAuth = this.loadStoredDeviceAuth(role);
2577
+ const storedToken = storedAuth?.token ?? null;
2578
+ const storedScopes = storedAuth?.scopes;
2579
+ const shouldUseDeviceRetryToken = this.pendingDeviceTokenRetry && !explicitDeviceToken && Boolean(explicitGatewayToken) && Boolean(storedToken) && this.isTrustedDeviceRetryEndpoint();
2580
+ const resolvedDeviceToken = explicitDeviceToken ?? (shouldUseDeviceRetryToken || !(explicitGatewayToken || authPassword) && (!explicitBootstrapToken || Boolean(storedToken)) ? storedToken ?? void 0 : void 0);
2581
+ const reusingStoredDeviceToken = Boolean(resolvedDeviceToken) && !explicitDeviceToken && Boolean(storedToken) && resolvedDeviceToken === storedToken;
2582
+ const authToken = explicitGatewayToken ?? resolvedDeviceToken;
2583
+ const authBootstrapToken = !explicitGatewayToken && !resolvedDeviceToken ? explicitBootstrapToken : void 0;
2584
+ return {
2585
+ authToken,
2586
+ authBootstrapToken,
2587
+ authDeviceToken: shouldUseDeviceRetryToken ? storedToken ?? void 0 : void 0,
2588
+ authPassword,
2589
+ signatureToken: authToken ?? authBootstrapToken ?? void 0,
2590
+ resolvedDeviceToken,
2591
+ storedToken: storedToken ?? void 0,
2592
+ storedScopes,
2593
+ usingStoredDeviceToken: reusingStoredDeviceToken
2594
+ };
2595
+ }
2596
+ handleMessage(raw) {
2597
+ try {
2598
+ const parsed = JSON.parse(raw);
2599
+ if (validateEventFrame(parsed)) {
2600
+ this.lastTick = Date.now();
2601
+ const evt = parsed;
2602
+ if (evt.event === "connect.challenge") {
2603
+ const payload = evt.payload;
2604
+ const nonce = payload && typeof payload.nonce === "string" ? payload.nonce : null;
2605
+ if (!nonce || nonce.trim().length === 0) {
2606
+ this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway connect challenge missing nonce"));
2607
+ this.ws?.close(1008, "connect challenge missing nonce");
2608
+ return;
2609
+ }
2610
+ this.connectNonce = nonce.trim();
2611
+ if (this.socketOpened) this.sendConnect();
2612
+ return;
2613
+ }
2614
+ const seq = typeof evt.seq === "number" ? evt.seq : null;
2615
+ if (seq !== null) {
2616
+ if (this.lastSeq !== null && seq > this.lastSeq + 1) this.opts.onGap?.({
2617
+ expected: this.lastSeq + 1,
2618
+ received: seq
2619
+ });
2620
+ this.lastSeq = seq;
2621
+ }
2622
+ if (evt.event === "tick") this.lastTick = Date.now();
2623
+ this.opts.onEvent?.(evt);
2624
+ return;
2625
+ }
2626
+ if (validateResponseFrame(parsed)) {
2627
+ this.lastTick = Date.now();
2628
+ const pending = this.pending.get(parsed.id);
2629
+ if (!pending) return;
2630
+ const status = parsed.payload?.status;
2631
+ if (pending.expectFinal && status === "accepted") return;
2632
+ this.pending.delete(parsed.id);
2633
+ if (pending.timeout) clearTimeout(pending.timeout);
2634
+ if (parsed.ok) pending.resolve(parsed.payload);
2635
+ else pending.reject(new GatewayClientRequestError({
2636
+ code: parsed.error?.code,
2637
+ message: parsed.error?.message ?? "unknown error",
2638
+ details: parsed.error?.details,
2639
+ retryable: parsed.error?.retryable,
2640
+ retryAfterMs: parsed.error?.retryAfterMs
2641
+ }));
2642
+ }
2643
+ } catch (err) {
2644
+ logDebug(`gateway client parse error: ${String(err)}`);
2645
+ }
2646
+ }
2647
+ beginPreauthHandshake() {
2648
+ if (this.connectSent) return;
2649
+ if (this.connectNonce && !this.connectSent) {
2650
+ this.armConnectChallengeTimeout();
2651
+ this.sendConnect();
2652
+ return;
2653
+ }
2654
+ this.armConnectChallengeTimeout();
2655
+ }
2656
+ clearConnectChallengeTimeout() {
2657
+ if (this.connectTimer) {
2658
+ clearTimeout(this.connectTimer);
2659
+ this.connectTimer = null;
2660
+ }
2661
+ }
2662
+ armConnectChallengeTimeout() {
2663
+ const connectChallengeTimeoutMs = resolveGatewayClientConnectChallengeTimeoutMs(this.opts);
2664
+ const armedAt = Date.now();
2665
+ this.clearConnectChallengeTimeout();
2666
+ this.connectTimer = setTimeout(() => {
2667
+ if (this.connectSent || this.ws?.readyState !== WebSocket$1.OPEN) return;
2668
+ const elapsedMs = Date.now() - armedAt;
2669
+ this.opts.onConnectError?.(/* @__PURE__ */ new Error(`gateway connect challenge timeout (waited ${elapsedMs}ms, limit ${connectChallengeTimeoutMs}ms)`));
2670
+ this.ws?.close(1008, "connect challenge timeout");
2671
+ }, connectChallengeTimeoutMs);
2672
+ }
2673
+ scheduleReconnect() {
2674
+ if (this.closed) return;
2675
+ if (this.tickTimer) {
2676
+ clearInterval(this.tickTimer);
2677
+ this.tickTimer = null;
2678
+ }
2679
+ const delay = this.backoffMs;
2680
+ this.backoffMs = Math.min(this.backoffMs * 2, 3e4);
2681
+ setTimeout(() => this.start(), delay).unref();
2682
+ }
2683
+ flushPendingErrors(err) {
2684
+ for (const [, p] of this.pending) {
2685
+ if (p.timeout) clearTimeout(p.timeout);
2686
+ p.reject(err);
2687
+ }
2688
+ this.pending.clear();
2689
+ }
2690
+ startTickWatch() {
2691
+ if (this.tickTimer) clearInterval(this.tickTimer);
2692
+ const rawMinInterval = this.opts.tickWatchMinIntervalMs;
2693
+ const minInterval = typeof rawMinInterval === "number" && Number.isFinite(rawMinInterval) ? Math.max(1, Math.min(3e4, rawMinInterval)) : 1e3;
2694
+ const interval = Math.max(this.tickIntervalMs, minInterval);
2695
+ this.tickTimer = setInterval(() => {
2696
+ if (this.closed) return;
2697
+ if (!this.lastTick) return;
2698
+ if (this.pending.size > 0) return;
2699
+ if (Date.now() - this.lastTick > this.tickIntervalMs * 2) this.ws?.close(4e3, "tick timeout");
2700
+ }, interval);
2701
+ }
2702
+ validateTlsFingerprint() {
2703
+ if (!this.opts.tlsFingerprint || !this.ws) return null;
2704
+ const expected = normalizeFingerprint(this.opts.tlsFingerprint);
2705
+ if (!expected) return /* @__PURE__ */ new Error("gateway tls fingerprint missing");
2706
+ const socket = this.ws._socket;
2707
+ if (!socket || typeof socket.getPeerCertificate !== "function") return /* @__PURE__ */ new Error("gateway tls fingerprint unavailable");
2708
+ const fingerprint = normalizeFingerprint(socket.getPeerCertificate()?.fingerprint256 ?? "");
2709
+ if (!fingerprint) return /* @__PURE__ */ new Error("gateway tls fingerprint unavailable");
2710
+ if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
2711
+ return null;
2712
+ }
2713
+ async request(method, params, opts) {
2714
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
2715
+ const id = randomUUID();
2716
+ const frame = {
2717
+ type: "req",
2718
+ id,
2719
+ method,
2720
+ params
2721
+ };
2722
+ if (!validateRequestFrame(frame)) throw new Error(`invalid request frame: ${JSON.stringify(validateRequestFrame.errors, null, 2)}`);
2723
+ const expectFinal = opts?.expectFinal === true;
2724
+ const timeoutMs = opts?.timeoutMs === null ? null : typeof opts?.timeoutMs === "number" && Number.isFinite(opts.timeoutMs) ? resolveSafeTimeoutDelayMs(opts.timeoutMs) : expectFinal ? null : this.requestTimeoutMs;
2725
+ const p = new Promise((resolve, reject) => {
2726
+ const timeout = timeoutMs === null ? null : setTimeout(() => {
2727
+ this.pending.delete(id);
2728
+ reject(/* @__PURE__ */ new Error(`gateway request timeout for ${method}`));
2729
+ }, timeoutMs);
2730
+ this.pending.set(id, {
2731
+ resolve: (value) => resolve(value),
2732
+ reject,
2733
+ expectFinal,
2734
+ timeout
2735
+ });
2736
+ });
2737
+ this.ws.send(JSON.stringify(frame));
2738
+ return p;
2739
+ }
2740
+ };
2741
+ //#endregion
2742
+ export { validateNodeDescribeParams as $, validateWalletSummaryParams as $t, validateCronAddParams as A, validateSessionsMessagesSubscribeParams as At, validateDevicePairRemoveParams as B, validateSkillsInstallParams as Bt, validateConfigGetParams as C, validateSessionsCompactionBranchParams as Ct, validateConfigSchemaParams as D, validateSessionsCreateParams as Dt, validateConfigSchemaLookupResult as E, validateSessionsCompactionRestoreParams as Et, validateCronStatusParams as F, validateSessionsResolveParams as Ft, validateExecApprovalResolveParams as G, validateTalkModeParams as Gt, validateDeviceTokenRotateParams as H, validateSkillsStatusParams as Ht, validateCronUpdateParams as I, validateSessionsSendParams as It, validateExecApprovalsNodeSetParams as J, validateToolsCatalogParams as Jt, validateExecApprovalsGetParams as K, validateTalkRealtimeSessionParams as Kt, validateDevicePairApproveParams as L, validateSessionsUsageParams as Lt, validateCronRemoveParams as M, validateSessionsPatchParams as Mt, validateCronRunParams as N, validateSessionsPreviewParams as Nt, validateConfigSetParams as O, validateSessionsDeleteParams as Ot, validateCronRunsParams as P, validateSessionsResetParams as Pt, validateModelsListParams as Q, validateWalletRecoveryPhraseSetParams as Qt, validateDevicePairListParams as R, validateSkillsBinsParams as Rt, validateConfigApplyParams as S, validateSessionsCompactParams as St, validateConfigSchemaLookupParams as T, validateSessionsCompactionListParams as Tt, validateExecApprovalGetParams as U, validateSkillsUpdateParams as Ut, validateDeviceTokenRevokeParams as V, validateSkillsSearchParams as Vt, validateExecApprovalRequestParams as W, validateTalkConfigParams as Wt, validateLogsTailParams as X, validateUpdateRunParams as Xt, validateExecApprovalsSetParams as Y, validateToolsEffectiveParams as Yt, validateMessageActionParams as Z, validateWakeParams as Zt, validateChatAbortParams as _, validateRequestFrame as _t, validateAgentParams as a, validateWizardStatusParams as an, validateNodePairListParams as at, validateChatSendParams as b, validateSendParams as bt, validateAgentsDeleteParams as c, COMMAND_DESCRIPTION_MAX_LENGTH as cn, validateNodePairVerifyParams as ct, validateAgentsFilesSetParams as d, buildDeviceAuthPayload as dn, validateNodePendingEnqueueParams as dt, validateWebLoginStartParams as en, validateNodeEventParams as et, validateAgentsListParams as f, buildDeviceAuthPayloadV3 as fn, validateNodeRenameParams as ft, validateChannelsStatusParams as g, validatePushTestParams as gt, validateChannelsStartParams as h, validatePollParams as ht, validateAgentIdentityParams as i, validateWizardStartParams as in, validateNodePairApproveParams as it, validateCronListParams as j, validateSessionsMessagesUnsubscribeParams as jt, validateConnectParams as k, validateSessionsListParams as kt, validateAgentsFilesGetParams as l, parseSessionLabel as ln, validateNodePendingAckParams as lt, validateChannelsLogoutParams as m, validatePluginApprovalResolveParams as mt, GatewayClientRequestError as n, validateWizardCancelParams as nn, validateNodeInvokeResultParams as nt, validateAgentWaitParams as o, ErrorCodes as on, validateNodePairRejectParams as ot, validateAgentsUpdateParams as p, validatePluginApprovalRequestParams as pt, validateExecApprovalsNodeGetParams as q, validateTalkSpeakParams as qt, formatValidationErrors as r, validateWizardNextParams as rn, validateNodeListParams as rt, validateAgentsCreateParams as s, errorShape as sn, validateNodePairRequestParams as st, GatewayClient as t, validateWebLoginWaitParams as tn, validateNodeInvokeParams as tt, validateAgentsFilesListParams as u, getPreauthHandshakeTimeoutMsFromEnv as un, validateNodePendingDrainParams as ut, validateChatHistoryParams as v, validateSecretsResolveParams as vt, validateConfigPatchParams as w, validateSessionsCompactionGetParams as wt, validateCommandsListParams as x, validateSessionsAbortParams as xt, validateChatInjectParams as y, validateSecretsResolveResult as yt, validateDevicePairRejectParams as z, validateSkillsDetailParams as zt };