@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.
- package/CHANGELOG.md +6 -0
- package/dist/.buildstamp +1 -1
- package/dist/abort-91r4UulC.js +201 -0
- package/dist/abort.runtime-B9mJXpA7.js +2 -0
- package/dist/abort.runtime.js +1 -1
- package/dist/accounts-47VdxmAV.js +2 -0
- package/dist/accounts-CuCpc987.js +107 -0
- package/dist/accounts-xW4yEmC0.js +104 -0
- package/dist/acp-cli-NxFXWO1M.js +2193 -0
- package/dist/acp-spawn-DbkpHyE1.js +1093 -0
- package/dist/acp-spawn-QASKm_on.js +2 -0
- package/dist/acp-stateful-target-driver-BHyMcz1t.js +89 -0
- package/dist/action-agents-6PpsUM02.js +67 -0
- package/dist/action-focus-B4kHRvRY.js +132 -0
- package/dist/action-help-C5lxx1KX.js +7 -0
- package/dist/action-info-oy2vw7kF.js +101 -0
- package/dist/action-kill-CD139kh2.js +33 -0
- package/dist/action-list-DZ9teqOY.js +21 -0
- package/dist/action-log-gxlq_2Rp.js +30 -0
- package/dist/action-send-BurQ0zyV.js +39 -0
- package/dist/action-spawn-DxOHnNm7.js +47 -0
- package/dist/action-unfocus-CugM3XlM.js +29 -0
- package/dist/actions.runtime--ihN7Wd6.js +5 -0
- package/dist/actions.runtime-ib-izjF7.js +18 -0
- package/dist/actions.runtime.js +1 -1
- package/dist/agent-command-C2ZVqozq.js +874 -0
- package/dist/agent-harness-runtime-DgUskfxp.js +144 -0
- package/dist/agent-lSBQDJ_c.js +2 -0
- package/dist/agent-runner-utils-CQHnUCgQ.js +239 -0
- package/dist/agent-runner.runtime-CVwomI1B.js +3455 -0
- package/dist/agent-runner.runtime.js +1 -1
- package/dist/agent-runtime-DJ7En7GB.js +18 -0
- package/dist/agents-CDEITLQb.js +5 -0
- package/dist/agents-NqAmW65Y.js +952 -0
- package/dist/aliases-8yRNckmx.js +2 -0
- package/dist/aliases-DA8MRgQS.js +96 -0
- package/dist/api-CJi25G9E.js +139 -0
- package/dist/api-Cu958cYM.js +5 -0
- package/dist/api-DkzCGtG_.js +3 -0
- package/dist/approval-gateway-resolver-DOKXw6ku.js +29 -0
- package/dist/approval-gateway-runtime-Bv8CqHQS.js +2 -0
- package/dist/approval-handler-runtime-ZtFxOtrw.js +439 -0
- package/dist/approval-native-runtime-DAtNdlUh.js +729 -0
- package/dist/attempt-execution.runtime-RtO9GkMH.js +509 -0
- package/dist/attempt-execution.runtime.js +1 -1
- package/dist/attempt.prompt-helpers-CBqQ9_m3.js +218 -0
- package/dist/attempt.tool-run-context-DpZtz1o7.js +933 -0
- package/dist/audit-C-2uIqda.js +939 -0
- package/dist/audit.runtime-CmbX_Mhw.js +7 -0
- package/dist/audit.runtime.js +1 -1
- package/dist/auth-DQKEcU2i.js +2 -0
- package/dist/auth-kVluPSY6.js +383 -0
- package/dist/auth-order-BrWB3inY.js +96 -0
- package/dist/auth-order-DCT4hb8Z.js +2 -0
- package/dist/bash-tools-CfLkHd-r.js +2824 -0
- package/dist/bash-tools-xGRQBXVi.js +3 -0
- package/dist/binding-routing-DcVihFHn.js +85 -0
- package/dist/binding-targets-CM036UnT.js +121 -0
- package/dist/bridge-server-IJqt4FlL.js +113 -0
- package/dist/browser-control-auth-D_ENihgB.js +2 -0
- package/dist/browser-node-runtime-CgC9vaCW.js +12 -0
- package/dist/browser-profiles-DXSDH0AX.js +2 -0
- package/dist/browser-runtime-DlIrKgom.js +387 -0
- package/dist/browser-setup-tools-CzwG2Hi7.js +13 -0
- package/dist/build-DyITSIDX.js +550 -0
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +1 -1
- package/dist/call-45FewBaL.js +329 -0
- package/dist/call-BqBKDI9u.js +3 -0
- package/dist/call.runtime-6-vv8hKu.js +2 -0
- package/dist/call.runtime.js +1 -1
- package/dist/capability-cli-mXxaAg87.js +1401 -0
- package/dist/catchup-DZItnQoF.js +300 -0
- package/dist/channel-4_07fZor.js +1174 -0
- package/dist/channel-BypEOihB.js +226 -0
- package/dist/channel-CPaewlgu.js +1802 -0
- package/dist/channel-CZ55XiAG.js +1320 -0
- package/dist/channel-Ccfv73or.js +595 -0
- package/dist/channel-CzsHgYiG.js +350 -0
- package/dist/channel-D4vHC37-.js +491 -0
- package/dist/channel-DRykWnyQ.js +1100 -0
- package/dist/channel-Dv_sqItB.js +840 -0
- package/dist/channel-Rka7SmcE.js +453 -0
- package/dist/channel-YXjNVZ70.js +297 -0
- package/dist/channel-core-BWePKW2T.js +5 -0
- package/dist/channel-inbound-B8tlgRz9.js +31 -0
- package/dist/channel-plugin-runtime-BSquEWfT.js +771 -0
- package/dist/channel-runtime-DyoiUzHM.js +425 -0
- package/dist/channel.runtime-BNUQYyCS.js +34702 -0
- package/dist/channel.runtime-BSYg7-dS.js +109 -0
- package/dist/channel.runtime-C3YAtGah.js +2364 -0
- package/dist/channel.runtime-CZggGgop.js +430 -0
- package/dist/channel.runtime-ZWHikPHo.js +89 -0
- package/dist/channel.runtime-aOaQbZea.js +4 -0
- package/dist/channel.runtime-puS1jfmK.js +576 -0
- package/dist/channel.runtime.js +1 -1
- package/dist/channel.setup-B2_426hq.js +10 -0
- package/dist/channels-cli-jNLEPssf.js +267 -0
- package/dist/channels-eG2v9IVY.js +827 -0
- package/dist/chat-BQEVN8XR.js +2757 -0
- package/dist/clawbot-cli-CSsLvJhI.js +9 -0
- package/dist/cli/daemon-cli.js +3 -3
- package/dist/cli-7D9AzMj2.js +219 -0
- package/dist/cli-CfP5iSkW.js +2 -0
- package/dist/cli-KSwNK8zo.js +72 -0
- package/dist/cli-LF3vrSmQ.js +2 -0
- package/dist/cli-runner-C-yyW9Mw.js +286 -0
- package/dist/cli-runner.runtime-BPTwiZtI.js +4 -0
- package/dist/cli-runner.runtime-CZ7aFUiV.js +3 -0
- package/dist/cli-runner.runtime.js +1 -1
- package/dist/cli-startup-metadata.json +2 -2
- package/dist/cli.runtime-BkxOxJn0.js +1261 -0
- package/dist/cli.runtime.js +1 -1
- package/dist/client-BeAVbxBQ.js +138 -0
- package/dist/client-DWrM2Yms.js +2742 -0
- package/dist/command-auth-TXkwHike.js +76 -0
- package/dist/command-config-resolution-BQUvy5ZL.js +2 -0
- package/dist/command-config-resolution-CiffKnhz.js +23 -0
- package/dist/command-config-resolution.runtime-DWe34jdz.js +2 -0
- package/dist/command-config-resolution.runtime.js +1 -1
- package/dist/command-registry-BI5Ce-0X.js +9 -0
- package/dist/command-registry-CZ-Rk9No.js +4 -0
- package/dist/command-registry-core-CqSjfb7e.js +104 -0
- package/dist/command-secret-gateway-RYlrkM8e.js +528 -0
- package/dist/command-status.runtime-9RuTTw7H.js +87 -0
- package/dist/command-status.runtime.js +1 -1
- package/dist/commands-acp-DNlM5COD.js +77 -0
- package/dist/commands-compact.runtime-Dbbx-Ps6.js +10 -0
- package/dist/commands-compact.runtime.js +1 -1
- package/dist/commands-handlers.runtime-J4HmYPML.js +4596 -0
- package/dist/commands-handlers.runtime.js +1 -1
- package/dist/commands-status-BpCtSlHL.js +16 -0
- package/dist/commands-status.runtime-B5lz9wwA.js +3 -0
- package/dist/commands-status.runtime.js +1 -1
- package/dist/commands-subagents-control.runtime-BlMDlblZ.js +2 -0
- package/dist/commands-subagents-control.runtime-RvrJJSNg.js +3 -0
- package/dist/commands-subagents-control.runtime.js +1 -1
- package/dist/commands-system-prompt-DuLI1Zhj.js +158 -0
- package/dist/commands-system-prompt-aXNuSW_q.js +2 -0
- package/dist/commands.runtime-Cvb5f7IP.js +166 -0
- package/dist/commands.runtime.js +1 -1
- package/dist/compact-CEtFY3x7.js +1118 -0
- package/dist/compact.runtime-BEuz-f53.js +12 -0
- package/dist/compact.runtime.js +1 -1
- package/dist/completion-cli-Du1dkhoP.js +313 -0
- package/dist/config-Mu4QhWzJ.js +248 -0
- package/dist/config-cli-DUUIMEUP.js +1073 -0
- package/dist/configure-DLxdFMCs.js +2 -0
- package/dist/configure-DQZRoD0Y.js +1244 -0
- package/dist/connect-options-CR5cdO4W.js +699 -0
- package/dist/control-auth-DLnHsBZt.js +125 -0
- package/dist/control-service-B035Oo8M.js +156 -0
- package/dist/control-ui/assets/agents-1LSJ-6PP.js +949 -0
- package/dist/control-ui/assets/channel-config-extras-BQz7hQLy.js +2 -0
- package/dist/control-ui/assets/channels-Pd3YLhy4.js +353 -0
- package/dist/control-ui/assets/cron-DME74GWr.js +933 -0
- package/dist/control-ui/assets/de-C0ZR8sDB.js +2 -0
- package/dist/control-ui/assets/debug-B4No9QzL.js +94 -0
- package/dist/control-ui/assets/es-C6bU_TtU.js +2 -0
- package/dist/control-ui/assets/format-CU5rVzG3.js +9 -0
- package/dist/control-ui/assets/fr-D5DeTmNv.js +2 -0
- package/dist/control-ui/assets/id-D2rVEDjJ.js +2 -0
- package/dist/control-ui/assets/index-BL88Y9ha.js +6308 -0
- package/dist/control-ui/assets/instances-BrcIASdv.js +57 -0
- package/dist/control-ui/assets/ja-JP-Dn3lisLY.js +2 -0
- package/dist/control-ui/assets/ko-DxD_1Zk0.js +2 -0
- package/dist/control-ui/assets/logs-BCK7QB61.js +74 -0
- package/dist/control-ui/assets/nodes-DBgRvAW9.js +436 -0
- package/dist/control-ui/assets/pl-DqfELhXe.js +2 -0
- package/dist/control-ui/assets/pt-BR-CyYqgZQ0.js +2 -0
- package/dist/control-ui/assets/sessions-xAeiynNF.js +306 -0
- package/dist/control-ui/assets/skills-DnzXHEWh.js +314 -0
- package/dist/control-ui/assets/skills-shared-DUcVMOWy.js +11 -0
- package/dist/control-ui/assets/string-coerce-Cdiw640X.js +3 -0
- package/dist/control-ui/assets/th-Cdunu1Yf.js +2 -0
- package/dist/control-ui/assets/tr-BVk27ysg.js +2 -0
- package/dist/control-ui/assets/uk-CI_KWzZt.js +2 -0
- package/dist/control-ui/assets/wallet-BDUGnhoA.js +195 -0
- package/dist/control-ui/assets/zh-CN-Iit1vnHx.js +2 -0
- package/dist/control-ui/assets/zh-TW-hVvjG-ie.js +2 -0
- package/dist/control-ui/index.html +3 -3
- package/dist/control-ui-BdRLK7I-.js +664 -0
- package/dist/conversation-id-BM-V07Pl.js +235 -0
- package/dist/conversation-id-BghRIfxG.js +38 -0
- package/dist/conversation-runtime-C4gObsh2.js +31 -0
- package/dist/core-ChqnJuFH.js +275 -0
- package/dist/cron-cli-C5Gndyos.js +713 -0
- package/dist/daemon-cli-ZzTGcINw.js +12 -0
- package/dist/delegate-BulXNglP.js +64 -0
- package/dist/detached-task-runtime-vv5lDMJn.js +73 -0
- package/dist/devices-cli-DIvpz4kL.js +496 -0
- package/dist/diagnostics-C8iZ-TW3.js +154 -0
- package/dist/direct-dm-DtDot5lO.js +64 -0
- package/dist/dispatch-CswKkiWZ.js +1131 -0
- package/dist/dispatch-acp-B6BY7PnM.js +981 -0
- package/dist/dispatch-acp-manager.runtime-9d1-ds6W.js +3 -0
- package/dist/dispatch-acp-manager.runtime.js +1 -1
- package/dist/dispatch-acp.runtime-B3XBEEra.js +19 -0
- package/dist/dispatch-acp.runtime.js +1 -1
- package/dist/doctor-device-pairing-B9xoU-b0.js +307 -0
- package/dist/doctor-gateway-daemon-flow-CBRay2wn.js +250 -0
- package/dist/doctor-gateway-health-Pv5QfyCN.js +60 -0
- package/dist/doctor-health-contributions-BQZqHOsI.js +486 -0
- package/dist/doctor-health-sIYTca3Z.js +59 -0
- package/dist/doctor-prompter-Bl7VEFRB.js +56 -0
- package/dist/doctor-workspace-status-COpJU_Sy.js +75 -0
- package/dist/dreaming-B-Ij18RW.js +1574 -0
- package/dist/dreaming-narrative-Dlq1B1wL.js +595 -0
- package/dist/embedded-gateway-stub.runtime-DxH4W_Ct.js +9 -0
- package/dist/embedded-gateway-stub.runtime.js +1 -1
- package/dist/embeddings-http-Dwm0-7xN.js +205 -0
- package/dist/entry.js +2 -2
- package/dist/exec-approvals-cli-NfwQ3x1C.js +498 -0
- package/dist/extensionAPI.js +1 -1
- package/dist/extensions/active-memory/index.js +1 -1
- package/dist/extensions/bluebubbles/api.js +3 -3
- package/dist/extensions/bluebubbles/channel-plugin-api.js +1 -1
- package/dist/extensions/browser/browser-bridge.js +1 -1
- package/dist/extensions/browser/browser-config.js +4 -4
- package/dist/extensions/browser/browser-control-auth.js +2 -2
- package/dist/extensions/browser/browser-doctor.js +2 -2
- package/dist/extensions/browser/browser-maintenance.js +2 -2
- package/dist/extensions/browser/browser-profiles.js +2 -2
- package/dist/extensions/browser/browser-runtime-api.js +10 -10
- package/dist/extensions/browser/index.js +1 -1
- package/dist/extensions/browser/plugin-registration.js +1 -1
- package/dist/extensions/browser/register.runtime.js +3 -3
- package/dist/extensions/browser/runtime-api.js +11 -11
- package/dist/extensions/browser/test-support.js +1 -1
- package/dist/extensions/device-pair/api.js +1 -1
- package/dist/extensions/device-pair/index.js +3 -3
- package/dist/extensions/device-pair/notify.js +1 -1
- package/dist/extensions/device-pair/pair-command-approve.js +1 -1
- package/dist/extensions/google-meet/index.js +2 -2
- package/dist/extensions/imessage/api.js +3 -3
- package/dist/extensions/imessage/channel-plugin-api.js +1 -1
- package/dist/extensions/imessage/runtime-api.js +3 -3
- package/dist/extensions/irc/api.js +2 -2
- package/dist/extensions/irc/channel-plugin-api.js +1 -1
- package/dist/extensions/line/api.js +2 -2
- package/dist/extensions/line/channel-plugin-api.js +1 -1
- package/dist/extensions/line/contract-api.js +1 -1
- package/dist/extensions/line/runtime-api.js +4 -4
- package/dist/extensions/line/setup-api.js +1 -1
- package/dist/extensions/llm-task/index.js +2 -2
- package/dist/extensions/lobster/index.js +3 -3
- package/dist/extensions/lobster/runtime-api.js +1 -1
- package/dist/extensions/mattermost/api.js +1 -1
- package/dist/extensions/mattermost/channel-plugin-api.js +1 -1
- package/dist/extensions/mattermost/channel-plugin-runtime.js +1 -1
- package/dist/extensions/mattermost/policy-api.js +1 -1
- package/dist/extensions/mattermost/runtime-api.js +4 -4
- package/dist/extensions/mattermost/slash-route-api.js +1 -1
- package/dist/extensions/memory-core/api.js +1 -1
- package/dist/extensions/memory-core/cli-metadata.js +2 -2
- package/dist/extensions/memory-core/index.js +3 -3
- package/dist/extensions/memory-lancedb/cli-metadata.js +1 -1
- package/dist/extensions/msteams/api.js +1 -1
- package/dist/extensions/msteams/channel-plugin-api.js +1 -1
- package/dist/extensions/msteams/runtime-api.js +3 -3
- package/dist/extensions/msteams/test-api.js +1 -1
- package/dist/extensions/nextcloud-talk/api.js +1 -1
- package/dist/extensions/nextcloud-talk/channel-plugin-api.js +1 -1
- package/dist/extensions/nextcloud-talk/runtime-api.js +2 -2
- package/dist/extensions/openshell/index.js +2 -2
- package/dist/extensions/signal/api.js +6 -6
- package/dist/extensions/signal/channel-plugin-api.js +1 -1
- package/dist/extensions/signal/reaction-runtime-api.js +1 -1
- package/dist/extensions/signal/runtime-api.js +7 -7
- package/dist/extensions/skill-workshop/api.js +1 -1
- package/dist/extensions/skill-workshop/index.js +1 -1
- package/dist/extensions/synology-chat/api.js +1 -1
- package/dist/extensions/synology-chat/channel-plugin-api.js +1 -1
- package/dist/extensions/tlon/api.js +2 -2
- package/dist/extensions/tlon/channel-plugin-api.js +1 -1
- package/dist/extensions/tlon/runtime-api.js +1 -1
- package/dist/extensions/tlon/test-api.js +1 -1
- package/dist/extensions/twitch/api.js +1 -1
- package/dist/extensions/twitch/channel-plugin-api.js +1 -1
- package/dist/extensions/twitch/setup-plugin-api.js +1 -1
- package/dist/extensions/zalo/api.js +3 -3
- package/dist/extensions/zalo/channel-plugin-api.js +1 -1
- package/dist/extensions/zalo/runtime-api.js +2 -2
- package/dist/extensions/zalo/setup-api.js +2 -2
- package/dist/extensions/zalouser/api.js +3 -3
- package/dist/extensions/zalouser/channel-plugin-api.js +1 -1
- package/dist/extensions/zalouser/runtime-api.js +6 -6
- package/dist/extensions/zalouser/setup-plugin-api.js +1 -1
- package/dist/extensions/zalouser/test-api.js +1 -1
- package/dist/fallbacks-BFYvKUnY.js +31 -0
- package/dist/fallbacks-Dln-Fm7a.js +2 -0
- package/dist/fallbacks-shared-BtC9lu5P.js +111 -0
- package/dist/gateway-CLjt4Ubu.js +115 -0
- package/dist/gateway-cli-jaaJ3fg-.js +1325 -0
- package/dist/gateway-rpc-B0bKGYQt.js +14 -0
- package/dist/gateway-rpc.runtime-CDyIcCe7.js +23 -0
- package/dist/gateway-rpc.runtime.js +1 -1
- package/dist/gateway-runtime-BxG-mEQr.js +15 -0
- package/dist/gateway-status-v2j9MIsq.js +584 -0
- package/dist/genesis-tools-CES2sMWo.js +8998 -0
- package/dist/genesis-tools.runtime-BzLXBcui.js +2 -0
- package/dist/genesis-tools.runtime.js +1 -1
- package/dist/get-reply-7p41dlff.js +3879 -0
- package/dist/get-reply-from-config.runtime-u3yCD2PM.js +2 -0
- package/dist/get-reply-from-config.runtime.js +1 -1
- package/dist/graph-users-IT2wmMx0.js +1337 -0
- package/dist/health-BFcoKWr0.js +469 -0
- package/dist/health-DRvLyY-r.js +3 -0
- package/dist/heartbeat-runner-BHjLQL2M.js +1292 -0
- package/dist/heartbeat-runner-DqEJGTLj.js +5 -0
- package/dist/heartbeat-runner.runtime-Cmx1SSZn.js +4 -0
- package/dist/heartbeat-runner.runtime.js +1 -1
- package/dist/hooks-cli-DDT-e8cJ.js +433 -0
- package/dist/http-endpoint-helpers-Dj8t0Siy.js +41 -0
- package/dist/http-utils-Dwz38Ezf.js +924 -0
- package/dist/image-fallbacks-D7OPvToB.js +31 -0
- package/dist/image-fallbacks-Dz8AR8dy.js +2 -0
- package/dist/inbound-reply-dispatch-DAPsCNCR.js +73 -0
- package/dist/index.js +2 -2
- package/dist/infra-runtime-DwyCbqnF.js +39 -0
- package/dist/init-ff-VGINj.js +59 -0
- package/dist/library-DJHGahez.js +45 -0
- package/dist/lifecycle-Wn699Yk2.js +229 -0
- package/dist/lifecycle-jhG_0376.js +571 -0
- package/dist/lifecycle.runtime-DEQnEWhs.js +2 -0
- package/dist/lifecycle.runtime.js +1 -1
- package/dist/list-BpmdsUg2.js +2 -0
- package/dist/list-Bx1ShIyl.js +1201 -0
- package/dist/list-CrwKhvg6.js +130 -0
- package/dist/list-DMu11V_u.js +2 -0
- package/dist/list.probe-uEkIls1j.js +419 -0
- package/dist/llm-slug-generator-CLSA0uws.js +79 -0
- package/dist/llm-slug-generator.js +1 -1
- package/dist/load-config-Dez1SxKa.js +35 -0
- package/dist/local-dispatch.runtime-Dxyktykf.js +8 -0
- package/dist/local-dispatch.runtime.js +1 -1
- package/dist/logs-cli-DrKLI45U.js +265 -0
- package/dist/logs-cli.runtime-WU3d8rj3.js +2 -0
- package/dist/logs-cli.runtime.js +1 -1
- package/dist/main-session-restart-recovery-CDpXwlsb.js +206 -0
- package/dist/managed-image-attachments-CTfAUhir.js +2 -0
- package/dist/managed-image-attachments-DwCKRLRN.js +635 -0
- package/dist/manager-C8C_r6-q.js +2057 -0
- package/dist/manager-DNh85N31.js +2 -0
- package/dist/markdown-to-line-CeMQCPsl.js +790 -0
- package/dist/mcp/plugin-tools-serve.js +1 -1
- package/dist/mcp-cli-CilsONVQ.js +724 -0
- package/dist/mcp-http-DMgw2M1d.js +529 -0
- package/dist/memory-core-host-runtime-cli-C4pnPS3_.js +9 -0
- package/dist/message-BodHPIzX.js +231 -0
- package/dist/message-action-runner-PKW742hU.js +1406 -0
- package/dist/message-action-runner-VdRgHq0O.js +2 -0
- package/dist/message-actions-C6yR-dy_.js +143 -0
- package/dist/message.gateway.runtime-CXGM9Aaa.js +2 -0
- package/dist/message.gateway.runtime.js +1 -1
- package/dist/method-scopes-Dut0EB9J.js +209 -0
- package/dist/models-cli-CZt8Jsll.js +219 -0
- package/dist/models-http-Dcpveulc.js +92 -0
- package/dist/monitor--Wv4TIXO.js +671 -0
- package/dist/monitor-82G9E74P.js +1237 -0
- package/dist/monitor-BbRyKgwH.js +2 -0
- package/dist/monitor-CC0s4dOX.js +1459 -0
- package/dist/monitor-CQsFb8eQ.js +788 -0
- package/dist/monitor-Co1hvULI.js +1661 -0
- package/dist/monitor-auth-6Kflwyie.js +207 -0
- package/dist/monitor-processing-B7uKpWo4.js +1974 -0
- package/dist/monitor.runtime-CSS_UmaS.js +2 -0
- package/dist/monitor.runtime.js +1 -1
- package/dist/monitor.webhook-DGN7_Sjs.js +180 -0
- package/dist/msteams-Cq2ldWey.js +35 -0
- package/dist/native-hook-relay-DtU42QnM.js +519 -0
- package/dist/nextcloud-talk-CkxtLN3A.js +17 -0
- package/dist/node-cli-BlCoOoMf.js +2506 -0
- package/dist/nodes-cli-BspoieXR.js +1046 -0
- package/dist/nodes-utils-CbFMjmDs.js +84 -0
- package/dist/nodes.helpers-K9f4_mBF.js +34 -0
- package/dist/notify-CyQE1_Xr.js +315 -0
- package/dist/onboard-BvLD3Wm8.js +632 -0
- package/dist/onboard-helpers-0XhcwDte.js +204 -0
- package/dist/onboard-helpers-B8ISwJON.js +6 -0
- package/dist/onboard-remote-BRM4DH6p.js +193 -0
- package/dist/onboard-remote-Blun0y8J.js +2 -0
- package/dist/onboard-skills-CTHeVmHt.js +2 -0
- package/dist/onboard-skills-D_29CQ3l.js +134 -0
- package/dist/openai-http-CFWiPGqM.js +500 -0
- package/dist/openresponses-http-8gJVvkvj.js +1128 -0
- package/dist/operator-approvals-client-CD4Ta4mU.js +68 -0
- package/dist/outbound.runtime-djlPw0h_.js +2 -0
- package/dist/outbound.runtime.js +1 -1
- package/dist/pair-command-approve-CJX4gh1-.js +44 -0
- package/dist/persistent-bindings.lifecycle-BW_emuP7.js +85 -0
- package/dist/persistent-bindings.lifecycle-C1SX_Q_K.js +2 -0
- package/dist/pi-embedded-DD7aPF12.js +2905 -0
- package/dist/pi-embedded-PW48UsXW.js +4 -0
- package/dist/pi-embedded.runtime-CqhLxSYX.js +4 -0
- package/dist/pi-embedded.runtime.js +1 -1
- package/dist/pi-tool-definition-adapter-C1Prxd-M.js +217 -0
- package/dist/pi-tools-pw6Tseqi.js +1057 -0
- package/dist/pi-tools.before-tool-call-BSfbqmdy.js +433 -0
- package/dist/pi-tools.before-tool-call-Vdpw6m1Q.js +2 -0
- package/dist/plugin-Bkk7yfMh.js +12195 -0
- package/dist/plugin-enabled-B7310bjm.js +140 -0
- package/dist/plugin-registration-ClydMGPd.js +23 -0
- package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
- package/dist/plugin-sdk/acp-binding-runtime.js +1 -1
- package/dist/plugin-sdk/acp-runtime.js +2 -2
- package/dist/plugin-sdk/agent-harness-runtime.js +5 -5
- package/dist/plugin-sdk/agent-harness.js +6 -6
- package/dist/plugin-sdk/agent-runtime.js +2 -2
- package/dist/plugin-sdk/approval-gateway-runtime.js +2 -2
- package/dist/plugin-sdk/approval-handler-runtime.js +3 -3
- package/dist/plugin-sdk/approval-runtime.js +1 -1
- package/dist/plugin-sdk/browser-node-runtime.js +4 -4
- package/dist/plugin-sdk/browser-setup-tools.js +3 -3
- package/dist/plugin-sdk/browser-support.js +7 -7
- package/dist/plugin-sdk/channel-core.js +2 -2
- package/dist/plugin-sdk/channel-inbound.js +2 -2
- package/dist/plugin-sdk/command-auth.js +1 -1
- package/dist/plugin-sdk/command-status-runtime.js +1 -1
- package/dist/plugin-sdk/compat.js +1 -1
- package/dist/plugin-sdk/conversation-binding-runtime.js +1 -1
- package/dist/plugin-sdk/conversation-runtime.js +3 -3
- package/dist/plugin-sdk/core.js +2 -2
- package/dist/plugin-sdk/direct-dm.js +1 -1
- package/dist/plugin-sdk/gateway-runtime.js +3 -3
- package/dist/plugin-sdk/inbound-reply-dispatch.js +1 -1
- package/dist/plugin-sdk/index.js +1 -1
- package/dist/plugin-sdk/infra-runtime.js +2 -2
- package/dist/plugin-sdk/irc.js +2 -2
- package/dist/plugin-sdk/matrix.js +1 -1
- package/dist/plugin-sdk/memory-core-host-runtime-cli.js +2 -2
- package/dist/plugin-sdk/memory-core.js +2 -2
- package/dist/plugin-sdk/msteams.js +2 -2
- package/dist/plugin-sdk/nextcloud-talk.js +2 -2
- package/dist/plugin-sdk/nostr.js +1 -1
- package/dist/plugin-sdk/reply-dispatch-runtime.js +1 -1
- package/dist/plugin-sdk/reply-runtime.js +4 -4
- package/dist/plugin-sdk/runtime-secret-resolution.js +1 -1
- package/dist/plugin-sdk/runtime.js +2 -2
- package/dist/plugin-sdk/session-visibility.js +1 -1
- package/dist/plugin-sdk/src/gateway/protocol/index.d.ts +43 -3
- package/dist/plugin-sdk/src/gateway/protocol/schema/protocol-schemas.d.ts +40 -0
- package/dist/plugin-sdk/src/gateway/protocol/schema/wallet.d.ts +44 -0
- package/dist/plugin-sdk/testing.js +4 -4
- package/dist/plugin-sdk/tlon.js +1 -1
- package/dist/plugin-sdk/zalo.js +1 -1
- package/dist/plugin-sdk/zalouser.js +1 -1
- package/dist/plugin-service-BuKwEFP2.js +2890 -0
- package/dist/plugins/runtime/index.js +1 -1
- package/dist/policy-B-SG_MoX.js +328 -0
- package/dist/postinstall-inventory.json +440 -440
- package/dist/prepare.runtime-DCvn4PA9.js +815 -0
- package/dist/prepare.runtime.js +1 -1
- package/dist/probe-BM2lSGpq.js +1443 -0
- package/dist/probe-C-OcrhHU.js +241 -0
- package/dist/probe-C-zomfHC.js +74 -0
- package/dist/probe-CktNHncO.js +2 -0
- package/dist/probe-DvEzC7Yt.js +2 -0
- package/dist/probe-UYnzau7s.js +2205 -0
- package/dist/probe-VShtyoQP.js +45 -0
- package/dist/program-B1Zbl29n.js +111 -0
- package/dist/prompt-select-styled-BFiy7KFb.js +20 -0
- package/dist/provider-dispatcher-C_R0buEs.js +22 -0
- package/dist/provider-dispatcher-DMjvnMg1.js +2 -0
- package/dist/qr-cli-CIMpiVqT.js +2 -0
- package/dist/qr-cli-Chl8J_dU.js +349 -0
- package/dist/reaction-runtime-api-BNJMHeSk.js +116 -0
- package/dist/reactions-2lggXKxe.js +998 -0
- package/dist/register-service-commands-ayYMhoTG.js +71 -0
- package/dist/register.agent-j81xGvIr.js +247 -0
- package/dist/register.configure-Ceqf8SV4.js +15 -0
- package/dist/register.maintenance-CS92zJrF.js +438 -0
- package/dist/register.message-BYxUGLpc.js +329 -0
- package/dist/register.onboard-YkI-xo9t.js +81 -0
- package/dist/register.runtime-CmvxwCiw.js +81 -0
- package/dist/register.runtime.js +1 -1
- package/dist/register.setup-CNdTgu3R.js +150 -0
- package/dist/register.status-health-sessions-BX2GmWTc.js +1215 -0
- package/dist/register.subclis-BeGY5cHF.js +3 -0
- package/dist/register.subclis-COA10rio.js +29 -0
- package/dist/register.subclis-core-DBrCeLqN.js +243 -0
- package/dist/register.wallet-D2TECwG5.js +159 -0
- package/dist/reply-dispatch-runtime-CNsrlQxq.js +13 -0
- package/dist/reply-runtime-Cqu1YNSD.js +11 -0
- package/dist/reply.runtime-DjHQKkER.js +2 -0
- package/dist/reply.runtime.js +1 -1
- package/dist/restart-health-BvQlMuSR.js +2 -0
- package/dist/restart-health-Ddm7Ehby.js +202 -0
- package/dist/root-help-3kWD5VLI.js +44 -0
- package/dist/routes-BCZzdzw2.js +2 -0
- package/dist/routes-CA0DoP7S.js +3340 -0
- package/dist/rpc-BzPBQ5ql.js +61 -0
- package/dist/rpc.runtime-B8NzeUIK.js +21 -0
- package/dist/rpc.runtime.js +1 -1
- package/dist/run-delivery.runtime-Cx2tDADi.js +530 -0
- package/dist/run-delivery.runtime.js +1 -1
- package/dist/run-embedded.runtime-B9SGhBV5.js +4 -0
- package/dist/run-embedded.runtime.js +1 -1
- package/dist/run-execution-cli.runtime-D3gnOlIV.js +4 -0
- package/dist/run-execution-cli.runtime.js +1 -1
- package/dist/run-executor.runtime-BwsKj4NN.js +277 -0
- package/dist/run-executor.runtime.js +1 -1
- package/dist/run-main-CJYy9aeX.js +516 -0
- package/dist/run-subagent-registry.runtime-CNCRhpSK.js +2 -0
- package/dist/run-subagent-registry.runtime.js +1 -1
- package/dist/run-wait-o2Yo35xt.js +135 -0
- package/dist/runtime-Co5LW-cY.js +973 -0
- package/dist/runtime-D98eGt1z.js +9 -0
- package/dist/runtime-api-DLRKboKD.js +4 -0
- package/dist/runtime-api-DW1jDnXG.js +9 -0
- package/dist/runtime-api-DqL2zvW_.js +14 -0
- package/dist/runtime-api-DtRkIQdm.js +9 -0
- package/dist/runtime-embedded-pi.runtime-_1BnpUsH.js +2 -0
- package/dist/runtime-embedded-pi.runtime.js +1 -1
- package/dist/runtime-internal-OmAlLFWl.js +2 -0
- package/dist/runtime-options-DXi_dUFt.js +275 -0
- package/dist/runtime-schema-Cao36tlZ.js +27748 -0
- package/dist/scan-CMs-eSKD.js +523 -0
- package/dist/scan-DaCjqwXa.js +2 -0
- package/dist/secrets-cli-DsCbOPd8.js +2101 -0
- package/dist/security-cli-DWpmdyKz.js +486 -0
- package/dist/selection-BY0XwQb0.js +7737 -0
- package/dist/selection-UBLsVuoF.js +2 -0
- package/dist/send-B7W0wAaA.js +156 -0
- package/dist/send-DVXD9_3G.js +102 -0
- package/dist/send.runtime-BkSytPZj.js +2 -0
- package/dist/send.runtime.js +1 -1
- package/dist/server-7ozS-gsn.js +77 -0
- package/dist/server-LmKuO2X1.js +13 -0
- package/dist/server-context-BdRn7wbe.js +2 -0
- package/dist/server-context-CC4pOAPX.js +846 -0
- package/dist/server-node-events-B677Q3os.js +481 -0
- package/dist/server-plugin-bootstrap-CR8RjVLB.js +2 -0
- package/dist/server-plugin-bootstrap-CYpLXOkm.js +11124 -0
- package/dist/server-restart-sentinel-Btcc7BTE.js +697 -0
- package/dist/server.impl-BkehWe_p.js +12726 -0
- package/dist/service-BWLndtz9.js +941 -0
- package/dist/session-kill-http-BN9Ql6UD.js +110 -0
- package/dist/session-reset-service-hNFKFmB3.js +471 -0
- package/dist/session-route-DErqiFgk.js +93 -0
- package/dist/session-status.runtime-Cu7JU8_U.js +2 -0
- package/dist/session-status.runtime.js +1 -1
- package/dist/session-subagent-reactivation.runtime-Bbagi0__.js +2 -0
- package/dist/session-subagent-reactivation.runtime.js +1 -1
- package/dist/session-tab-registry-D-OCT26z.js +491 -0
- package/dist/session-visibility-Ddr5Ae9L.js +147 -0
- package/dist/sessions-helpers-D0Kf9Ps4.js +304 -0
- package/dist/sessions-history-http-BmKrK99v.js +383 -0
- package/dist/sessions-patch-BtQ1tAvw.js +309 -0
- package/dist/sessions-resolve-BGLrS6vF.js +174 -0
- package/dist/sessions.runtime-CsAKVqcP.js +2 -0
- package/dist/sessions.runtime.js +1 -1
- package/dist/setup-C7ziOemv.js +495 -0
- package/dist/setup-api-CFdE6Bv6.js +29 -0
- package/dist/setup-core-DWygxvIO.js +176 -0
- package/dist/setup-core-IwixXKp3.js +171 -0
- package/dist/setup-surface--KMZi-cs.js +286 -0
- package/dist/setup-surface-Bo-J3N7I.js +403 -0
- package/dist/setup-surface-C-7l8TcU.js +219 -0
- package/dist/setup.finalize-D7dPxVDl.js +539 -0
- package/dist/setup.gateway-config-DmLcj4KK.js +250 -0
- package/dist/shared-CpqCPySw.js +76 -0
- package/dist/shared-D-tbPAY5.js +198 -0
- package/dist/shared-Dlx0gCmP.js +121 -0
- package/dist/slash-state-Cfz0x49w.js +1911 -0
- package/dist/src-BcGXLl_7.js +3974 -0
- package/dist/startup-context-oaWUXB8r.js +312 -0
- package/dist/status-B6NTLfIA.js +2 -0
- package/dist/status-BH2PSbt-.js +3 -0
- package/dist/status-BdqF0YGr.js +397 -0
- package/dist/status-C8o-eOFh.js +209 -0
- package/dist/status-D9GTZEx3.js +190 -0
- package/dist/status-all-CYFjOCcB.js +498 -0
- package/dist/status-json-command-DRbt8OgF.js +84 -0
- package/dist/status-json-wzJiFRSB.js +14 -0
- package/dist/status-runtime-shared-CI8_EqUP.js +257 -0
- package/dist/status-subagents.runtime-DrQmaLAc.js +18 -0
- package/dist/status-subagents.runtime.js +1 -1
- package/dist/status-text-DyIs2f8P.js +236 -0
- package/dist/status-yhOw1Z3M.js +2 -0
- package/dist/status.gateway-connection.runtime-Bjp2AscT.js +2 -0
- package/dist/status.gateway-connection.runtime.js +1 -1
- package/dist/status.gather-Blc_DKTK.js +2 -0
- package/dist/status.gather-CqgbE6TR.js +292 -0
- package/dist/status.runtime-DkTncdN7.js +2 -0
- package/dist/status.runtime.js +1 -1
- package/dist/status.scan-Dc4FTGEf.js +65 -0
- package/dist/status.scan-overview-B0rKBZWW.js +379 -0
- package/dist/status.scan.fast-json-BhqvblxV.js +2 -0
- package/dist/status.scan.fast-json-DI6a0Tv9.js +132 -0
- package/dist/status.summary-CoKGnSoy.js +214 -0
- package/dist/status.summary-DrWqIllD.js +2 -0
- package/dist/subagent-announce-CgnWmHmH.js +351 -0
- package/dist/subagent-announce-delivery-DHVVJyea.js +726 -0
- package/dist/subagent-announce-output-d58DNnV0.js +364 -0
- package/dist/subagent-control-DsUeBdrz.js +506 -0
- package/dist/subagent-followup.runtime-BKyKE6nN.js +68 -0
- package/dist/subagent-followup.runtime.js +1 -1
- package/dist/subagent-orphan-recovery-_O6G65C-.js +305 -0
- package/dist/subagent-registry-BYuzIniG.js +1753 -0
- package/dist/subagent-registry-D0GzSMp0.js +3 -0
- package/dist/subagent-registry.runtime.js +1 -1
- package/dist/subagent-spawn-B6iHzxd0.js +1005 -0
- package/dist/system-cli-DPiT7dwA.js +59 -0
- package/dist/targets-DOHhYtK7.js +67 -0
- package/dist/task-executor-Bxg0f08x.js +360 -0
- package/dist/task-owner-access-Ymx7tKev.js +74 -0
- package/dist/task-registry-CQnnTGmN.js +2366 -0
- package/dist/task-registry-delivery-runtime-BSBXpDV6.js +2 -0
- package/dist/task-registry-delivery-runtime-D-Za0_P9.js +3 -0
- package/dist/task-registry.maintenance-BZpViOdb.js +2 -0
- package/dist/task-registry.maintenance-r46lgwwF.js +416 -0
- package/dist/telegram/token.js +1 -1
- package/dist/testing-2KPIcA5D.js +575 -0
- package/dist/text-report-BJwJgnEZ.js +587 -0
- package/dist/tool-resolution-CjlqPoX2.js +90 -0
- package/dist/tools-effective-inventory-C5X-_cBY.js +152 -0
- package/dist/tools-invoke-http-Cza5U0A9.js +206 -0
- package/dist/trash-K2na6Iz1.js +24 -0
- package/dist/tui-cli-l39_SXF6.js +4573 -0
- package/dist/update-cli-Iq8wyl0W.js +1728 -0
- package/dist/upgrade-1nwb0oPp.js +1226 -0
- package/dist/video-generation-task-status-Du2MUfI2.js +163 -0
- package/dist/wait-for-idle-before-flush-hJ-dtR6o.js +5986 -0
- package/package.json +1 -1
- package/dist/abort-BSgJMMy0.js +0 -201
- package/dist/abort.runtime-DSaqOkLi.js +0 -2
- package/dist/accounts-BYrE99V8.js +0 -107
- package/dist/accounts-Cw3U0GZS.js +0 -104
- package/dist/accounts-D3rbUrwm.js +0 -2
- package/dist/acp-cli-DeB5Rsjc.js +0 -2193
- package/dist/acp-spawn-CB_1HLYK.js +0 -1093
- package/dist/acp-spawn-DC-CjxhI.js +0 -2
- package/dist/acp-stateful-target-driver-B5hgjDME.js +0 -89
- package/dist/action-agents-de8OAj0v.js +0 -67
- package/dist/action-focus-CrHvpYTM.js +0 -132
- package/dist/action-help-DPabNXHZ.js +0 -7
- package/dist/action-info-CWAj-tKU.js +0 -101
- package/dist/action-kill-BvKs859S.js +0 -33
- package/dist/action-list-fiRrNbSX.js +0 -21
- package/dist/action-log-dn5JEtP_.js +0 -30
- package/dist/action-send-8A83W-vV.js +0 -39
- package/dist/action-spawn-VIuLWipE.js +0 -47
- package/dist/action-unfocus-D70HiUtC.js +0 -29
- package/dist/actions.runtime-BR7boyHX.js +0 -18
- package/dist/actions.runtime-GiNRcV0z.js +0 -5
- package/dist/agent-63D0MSuN.js +0 -2
- package/dist/agent-command-DpCldQUr.js +0 -874
- package/dist/agent-harness-runtime-CuxCjKHu.js +0 -144
- package/dist/agent-runner-utils-2KK7Tvwt.js +0 -239
- package/dist/agent-runner.runtime-B7-jeAE1.js +0 -3455
- package/dist/agent-runtime-B0LeqEC4.js +0 -18
- package/dist/agents-BKMfctCm.js +0 -5
- package/dist/agents-C_pD02YQ.js +0 -952
- package/dist/aliases-COyeblK9.js +0 -2
- package/dist/aliases-y-1ktZ4q.js +0 -96
- package/dist/api-C4eLLyHi.js +0 -139
- package/dist/api-DDQ1U9Y1.js +0 -3
- package/dist/api-DE42IEbe.js +0 -5
- package/dist/approval-gateway-resolver-B1vyfdsY.js +0 -29
- package/dist/approval-gateway-runtime-BspnMTAu.js +0 -2
- package/dist/approval-handler-runtime-BrOWxNQ7.js +0 -439
- package/dist/approval-native-runtime-amzGMScp.js +0 -729
- package/dist/attempt-execution.runtime-Bmw2z2TO.js +0 -509
- package/dist/attempt.prompt-helpers-BI35hO5A.js +0 -218
- package/dist/attempt.tool-run-context-CdMIupu1.js +0 -933
- package/dist/audit-CHoh7JgT.js +0 -939
- package/dist/audit.runtime-CZORspf5.js +0 -7
- package/dist/auth-9Vcx6Cmf.js +0 -383
- package/dist/auth-Dm3T2Azg.js +0 -2
- package/dist/auth-order-D4kOyxOC.js +0 -96
- package/dist/auth-order-XAV7PznW.js +0 -2
- package/dist/bash-tools-DCcnMXV5.js +0 -3
- package/dist/bash-tools-RvcvKJ6T.js +0 -2824
- package/dist/binding-routing-Bn1RJI3D.js +0 -85
- package/dist/binding-targets-DOB7nrnI.js +0 -121
- package/dist/bridge-server-CNv6vH_N.js +0 -113
- package/dist/browser-control-auth-BW5AsYZM.js +0 -2
- package/dist/browser-node-runtime-e_5J-t2m.js +0 -12
- package/dist/browser-profiles-V--grSvf.js +0 -2
- package/dist/browser-runtime-K7qKfdJO.js +0 -387
- package/dist/browser-setup-tools-RQ8B4E_8.js +0 -13
- package/dist/build-IWaXKaQo.js +0 -550
- package/dist/call-DMoCOQgN.js +0 -329
- package/dist/call-DR29cjQ8.js +0 -3
- package/dist/call.runtime-CPFzabci.js +0 -2
- package/dist/capability-cli-BqaYg27d.js +0 -1401
- package/dist/catchup-CkMkjMjm.js +0 -300
- package/dist/channel-7-Cy5vdE.js +0 -1320
- package/dist/channel-B0LKbN9a.js +0 -1802
- package/dist/channel-C5SikvTn.js +0 -1174
- package/dist/channel-CGef-OxR.js +0 -1100
- package/dist/channel-CqHnAQJn.js +0 -350
- package/dist/channel-D3_wWplf.js +0 -595
- package/dist/channel-DRek8wwh.js +0 -453
- package/dist/channel-DYRwgk_C.js +0 -297
- package/dist/channel-DxbCZT0P.js +0 -226
- package/dist/channel-core-a5qj8qsH.js +0 -5
- package/dist/channel-inbound-CozRn3n-.js +0 -31
- package/dist/channel-plugin-runtime-DsiFaHL9.js +0 -771
- package/dist/channel-runtime-C8zLNzEP.js +0 -425
- package/dist/channel-v0PxXI_J.js +0 -491
- package/dist/channel-yHVk-YRx.js +0 -840
- package/dist/channel.runtime-C1rseTPL.js +0 -430
- package/dist/channel.runtime-Ci6Q1Cuv.js +0 -576
- package/dist/channel.runtime-CvOa3gYA.js +0 -109
- package/dist/channel.runtime-CwZodUOR.js +0 -34702
- package/dist/channel.runtime-DaP1Ann2.js +0 -89
- package/dist/channel.runtime-ie3egHX0.js +0 -4
- package/dist/channel.runtime-p_ELA91e.js +0 -2364
- package/dist/channel.setup-D1_1xjgF.js +0 -10
- package/dist/channels-Cx8uAXLx.js +0 -827
- package/dist/channels-cli-BCCSvZCu.js +0 -267
- package/dist/chat-CjH9IZPG.js +0 -2757
- package/dist/clawbot-cli-BW8txesR.js +0 -9
- package/dist/cli-BosrhIZ9.js +0 -72
- package/dist/cli-CHvS1B5Q.js +0 -2
- package/dist/cli-DJz9OCkF.js +0 -219
- package/dist/cli-DOiNFMc7.js +0 -2
- package/dist/cli-runner-CHk3q2MH.js +0 -286
- package/dist/cli-runner.runtime-mvuDOXO3.js +0 -4
- package/dist/cli-runner.runtime-rlm7f8Qi.js +0 -3
- package/dist/cli.runtime-BbTMs2tV.js +0 -1261
- package/dist/client-D1dJTyU7.js +0 -2722
- package/dist/client-JBM4I6b2.js +0 -138
- package/dist/command-auth-BbFsneAK.js +0 -76
- package/dist/command-config-resolution-DXhw734i.js +0 -23
- package/dist/command-config-resolution-poOTs26D.js +0 -2
- package/dist/command-config-resolution.runtime-BgBhROMr.js +0 -2
- package/dist/command-registry-BVFXhcOs.js +0 -4
- package/dist/command-registry-ClQXv5Dl.js +0 -9
- package/dist/command-registry-core-CAhTYQrv.js +0 -104
- package/dist/command-secret-gateway-DFTMkW7_.js +0 -528
- package/dist/command-status.runtime-DGPtSexy.js +0 -87
- package/dist/commands-acp-_nV8wWKt.js +0 -77
- package/dist/commands-compact.runtime-_vHyAiKz.js +0 -10
- package/dist/commands-handlers.runtime-CLi0aZTH.js +0 -4596
- package/dist/commands-status-HRJORs2e.js +0 -16
- package/dist/commands-status.runtime-CM9-gifT.js +0 -3
- package/dist/commands-subagents-control.runtime-BKBLELS1.js +0 -3
- package/dist/commands-subagents-control.runtime-Bv0x4ibi.js +0 -2
- package/dist/commands-system-prompt-B139cQlX.js +0 -2
- package/dist/commands-system-prompt-DuaobSBO.js +0 -158
- package/dist/commands.runtime-DSCXdZki.js +0 -166
- package/dist/compact-LzyN5PMu.js +0 -1118
- package/dist/compact.runtime-BJLpfnFS.js +0 -12
- package/dist/completion-cli-D8STecUS.js +0 -313
- package/dist/config-BrdI5ZyV.js +0 -248
- package/dist/config-cli-CdYXdQ9l.js +0 -1073
- package/dist/configure-07tFzclw.js +0 -1244
- package/dist/configure-CbEEjQYo.js +0 -2
- package/dist/connect-options-DqbkNROZ.js +0 -699
- package/dist/control-auth-DoDKg0VV.js +0 -125
- package/dist/control-service-BGluFHoB.js +0 -156
- package/dist/control-ui/assets/agents-DIlUBXrj.js +0 -949
- package/dist/control-ui/assets/channel-config-extras-BGlC1vk-.js +0 -2
- package/dist/control-ui/assets/channels-DkrHc4ne.js +0 -353
- package/dist/control-ui/assets/cron-B-r1qhzN.js +0 -933
- package/dist/control-ui/assets/de-4NcQrfyt.js +0 -2
- package/dist/control-ui/assets/debug-BNsI96cZ.js +0 -94
- package/dist/control-ui/assets/es-CrrRGWtR.js +0 -2
- package/dist/control-ui/assets/format-DPX2rt4X.js +0 -9
- package/dist/control-ui/assets/fr-D5W-tLOJ.js +0 -2
- package/dist/control-ui/assets/id-D553RZfz.js +0 -2
- package/dist/control-ui/assets/index-BNEyEtwP.js +0 -6308
- package/dist/control-ui/assets/instances-18Qi3xmu.js +0 -57
- package/dist/control-ui/assets/ja-JP-BqS1ssGF.js +0 -2
- package/dist/control-ui/assets/ko-CaE3K0VZ.js +0 -2
- package/dist/control-ui/assets/logs-DLWCXFsv.js +0 -74
- package/dist/control-ui/assets/nodes-BYrv5bpJ.js +0 -436
- package/dist/control-ui/assets/pl-CvV8uM6B.js +0 -2
- package/dist/control-ui/assets/pt-BR-DhkGCPIb.js +0 -2
- package/dist/control-ui/assets/sessions-Dzj0Stfl.js +0 -306
- package/dist/control-ui/assets/skills-CTsU9T-x.js +0 -314
- package/dist/control-ui/assets/skills-shared-DkdwCfRw.js +0 -11
- package/dist/control-ui/assets/string-coerce-Dq6kwRii.js +0 -3
- package/dist/control-ui/assets/th-BWa0iFp9.js +0 -2
- package/dist/control-ui/assets/tr-CIyWcYOQ.js +0 -2
- package/dist/control-ui/assets/uk-Dddui7S3.js +0 -2
- package/dist/control-ui/assets/wallet-DRK53ouz.js +0 -93
- package/dist/control-ui/assets/zh-CN-DrnaMCjT.js +0 -2
- package/dist/control-ui/assets/zh-TW-AAoU4b-j.js +0 -2
- package/dist/control-ui-e8ifrzMw.js +0 -664
- package/dist/conversation-id-D_Z9mqfh.js +0 -235
- package/dist/conversation-id-Dp8o7Hf7.js +0 -38
- package/dist/conversation-runtime-B1TCRdfm.js +0 -31
- package/dist/core-BTxiBxhe.js +0 -275
- package/dist/cron-cli-D5WHyG5z.js +0 -713
- package/dist/daemon-cli-CbJ5WTkZ.js +0 -12
- package/dist/delegate-Bvy2iFqj.js +0 -64
- package/dist/detached-task-runtime-CdQlbOaF.js +0 -73
- package/dist/devices-cli-CHKYPFQk.js +0 -496
- package/dist/diagnostics-DXBnZZDV.js +0 -154
- package/dist/direct-dm-DscQrdWj.js +0 -64
- package/dist/dispatch-CsJVa2_C.js +0 -1131
- package/dist/dispatch-acp-C5r7kMjF.js +0 -981
- package/dist/dispatch-acp-manager.runtime-BmaeIQYw.js +0 -3
- package/dist/dispatch-acp.runtime-CrPqsjE7.js +0 -19
- package/dist/doctor-device-pairing-BIWNe_Jn.js +0 -307
- package/dist/doctor-gateway-daemon-flow-B1w_mTCi.js +0 -250
- package/dist/doctor-gateway-health-PGrHhbuk.js +0 -60
- package/dist/doctor-health-CjIXOYaZ.js +0 -59
- package/dist/doctor-health-contributions-Gewam3A0.js +0 -486
- package/dist/doctor-prompter-C_nZk0eT.js +0 -56
- package/dist/doctor-workspace-status-HNtMY9tr.js +0 -75
- package/dist/dreaming-6bEi10m2.js +0 -1574
- package/dist/dreaming-narrative-C8-bcUG0.js +0 -595
- package/dist/embedded-gateway-stub.runtime-DBFo1O2n.js +0 -9
- package/dist/embeddings-http-DI8wVPpp.js +0 -205
- package/dist/exec-approvals-cli-CElurcBk.js +0 -498
- package/dist/fallbacks-B5Ph7HO-.js +0 -31
- package/dist/fallbacks-DVBCWaCR.js +0 -2
- package/dist/fallbacks-shared-DJEGkADy.js +0 -111
- package/dist/gateway-CjtKuAFO.js +0 -115
- package/dist/gateway-cli-UeLtu8Gv.js +0 -1325
- package/dist/gateway-rpc-E2ZcD2Pb.js +0 -14
- package/dist/gateway-rpc.runtime-D9oxEGVM.js +0 -23
- package/dist/gateway-runtime-DUkvmYNT.js +0 -15
- package/dist/gateway-status-B2yemMI1.js +0 -584
- package/dist/genesis-tools-DkQyKJJH.js +0 -8998
- package/dist/genesis-tools.runtime-C--92dxG.js +0 -2
- package/dist/get-reply-from-config.runtime-DVW2Z3Xz.js +0 -2
- package/dist/get-reply-qcf7h9-q.js +0 -3879
- package/dist/graph-users-C-ZMFjxP.js +0 -1337
- package/dist/health-CQgtKb-a.js +0 -469
- package/dist/health-CVQcF_SU.js +0 -3
- package/dist/heartbeat-runner-BMpI76oC.js +0 -1292
- package/dist/heartbeat-runner-tlqZ2QRH.js +0 -5
- package/dist/heartbeat-runner.runtime-BLaJ1moj.js +0 -4
- package/dist/hooks-cli-UJV1DwY_.js +0 -433
- package/dist/http-endpoint-helpers-BKYK0lXJ.js +0 -41
- package/dist/http-utils-CSMhLOmU.js +0 -924
- package/dist/image-fallbacks-B1kkwX5i.js +0 -31
- package/dist/image-fallbacks-BLVKYnSI.js +0 -2
- package/dist/inbound-reply-dispatch-KxpaEPy-.js +0 -73
- package/dist/infra-runtime-B7Bioutr.js +0 -39
- package/dist/init-BbDgno6y.js +0 -59
- package/dist/library-wOAms75w.js +0 -45
- package/dist/lifecycle--fVDSapD.js +0 -229
- package/dist/lifecycle-DsoPNmHR.js +0 -571
- package/dist/lifecycle.runtime-B6D7-MbQ.js +0 -2
- package/dist/list-B99x_eEq.js +0 -2
- package/dist/list-Bg9vO-vK.js +0 -1201
- package/dist/list-CJFvAL5B.js +0 -130
- package/dist/list-CXO2Pv7s.js +0 -2
- package/dist/list.probe-DvT83QeD.js +0 -419
- package/dist/llm-slug-generator-Dk-2o6wu.js +0 -79
- package/dist/load-config-DcSdLvU4.js +0 -35
- package/dist/local-dispatch.runtime-CeUL5zUz.js +0 -8
- package/dist/logs-cli-CkO4A9e_.js +0 -265
- package/dist/logs-cli.runtime-CjZMd8Ps.js +0 -2
- package/dist/main-session-restart-recovery-Yaowxz1V.js +0 -206
- package/dist/managed-image-attachments-BRkGH8id.js +0 -635
- package/dist/managed-image-attachments-CVQmQz19.js +0 -2
- package/dist/manager-ClvLmUep.js +0 -2057
- package/dist/manager-DLd5DOHM.js +0 -2
- package/dist/markdown-to-line-DdcFUlNP.js +0 -790
- package/dist/mcp-cli-Bg0n1yvO.js +0 -724
- package/dist/mcp-http-DwN4JtLF.js +0 -529
- package/dist/memory-core-host-runtime-cli-DokggwF4.js +0 -9
- package/dist/message-A6K1Uln8.js +0 -231
- package/dist/message-action-runner-By12iwmY.js +0 -1406
- package/dist/message-action-runner-DB7vQjDX.js +0 -2
- package/dist/message-actions-p0tyiJsp.js +0 -143
- package/dist/message.gateway.runtime-x9oPkfCV.js +0 -2
- package/dist/method-scopes-C2W7BZE-.js +0 -208
- package/dist/models-cli-BLajRwW5.js +0 -219
- package/dist/models-http-CbY-2ddw.js +0 -92
- package/dist/monitor-2gr47zvz.js +0 -2
- package/dist/monitor-CG9Xn5kb.js +0 -1237
- package/dist/monitor-CJXWP42d.js +0 -1661
- package/dist/monitor-V8PDbadr.js +0 -1459
- package/dist/monitor-Yea6MUcs.js +0 -671
- package/dist/monitor-_RMYsKC-.js +0 -788
- package/dist/monitor-auth-Ds-_E_h_.js +0 -207
- package/dist/monitor-processing-C7thbjUR.js +0 -1974
- package/dist/monitor.runtime-TBmnIKD-.js +0 -2
- package/dist/monitor.webhook-DSkuylzE.js +0 -180
- package/dist/msteams-KM-ToWtn.js +0 -35
- package/dist/native-hook-relay-BDz0eLdj.js +0 -519
- package/dist/nextcloud-talk-Bx1j4jh0.js +0 -17
- package/dist/node-cli-aEN8rLyY.js +0 -2506
- package/dist/nodes-cli-Dv0SFhFx.js +0 -1046
- package/dist/nodes-utils-DQExHgOK.js +0 -84
- package/dist/nodes.helpers-BkElz_SG.js +0 -34
- package/dist/notify-DH8p0jbK.js +0 -315
- package/dist/onboard-DKgQvVgg.js +0 -632
- package/dist/onboard-helpers-BLaaRiIQ.js +0 -204
- package/dist/onboard-helpers-CxDujxN_.js +0 -6
- package/dist/onboard-remote-BHcS99gt.js +0 -193
- package/dist/onboard-remote-CxD-xQ89.js +0 -2
- package/dist/onboard-skills-D2X91a-l.js +0 -2
- package/dist/onboard-skills-Z8VWQOTM.js +0 -134
- package/dist/openai-http-D6U8-gsV.js +0 -500
- package/dist/openresponses-http-8Gzpx-dY.js +0 -1128
- package/dist/operator-approvals-client-CPBdQHpS.js +0 -68
- package/dist/outbound.runtime-DyUVsM-o.js +0 -2
- package/dist/pair-command-approve-iifXVm-A.js +0 -44
- package/dist/persistent-bindings.lifecycle-D0KiOOHL.js +0 -2
- package/dist/persistent-bindings.lifecycle-Dg5f2-ZX.js +0 -85
- package/dist/pi-embedded-CIvfsFDK.js +0 -2905
- package/dist/pi-embedded-DfKObnKr.js +0 -4
- package/dist/pi-embedded.runtime-CSRgPcMe.js +0 -4
- package/dist/pi-tool-definition-adapter-BK1Jgz8u.js +0 -217
- package/dist/pi-tools-xZFkQObl.js +0 -1057
- package/dist/pi-tools.before-tool-call-Cvql1Guc.js +0 -433
- package/dist/pi-tools.before-tool-call-DM-LeYVv.js +0 -2
- package/dist/plugin-BCMcHdm8.js +0 -12195
- package/dist/plugin-enabled-CfU6MzpX.js +0 -140
- package/dist/plugin-registration-5A3P83yn.js +0 -23
- package/dist/plugin-service-C3tJzbuH.js +0 -2890
- package/dist/policy-C4Ko4jxG.js +0 -328
- package/dist/prepare.runtime-D73JEx7U.js +0 -815
- package/dist/probe-3YRw5INl.js +0 -2
- package/dist/probe-B1B8f2xn.js +0 -74
- package/dist/probe-BOowi-Kq.js +0 -45
- package/dist/probe-BTjPGJW1.js +0 -2
- package/dist/probe-BcltnB3e.js +0 -2205
- package/dist/probe-DIRzDUPK.js +0 -1443
- package/dist/probe-r4-jBkoJ.js +0 -241
- package/dist/program-Dfu5UhC1.js +0 -111
- package/dist/prompt-select-styled-Dbu9qalJ.js +0 -20
- package/dist/provider-dispatcher-4wt-ZeZZ.js +0 -2
- package/dist/provider-dispatcher-C2UhWO1m.js +0 -22
- package/dist/qr-cli-BuDd3ifv.js +0 -2
- package/dist/qr-cli-DqP37LYz.js +0 -349
- package/dist/reaction-runtime-api-Bvz0Pveq.js +0 -116
- package/dist/reactions-DN1UVx3u.js +0 -998
- package/dist/register-service-commands-DwSQt0X_.js +0 -71
- package/dist/register.agent-clbTKCyG.js +0 -247
- package/dist/register.configure-ByRQumwS.js +0 -15
- package/dist/register.maintenance-irO_yFnN.js +0 -438
- package/dist/register.message-BV2yRYIp.js +0 -329
- package/dist/register.onboard-DNcKmHVS.js +0 -81
- package/dist/register.runtime-BfeanYPK.js +0 -81
- package/dist/register.setup-DtWiNL2V.js +0 -150
- package/dist/register.status-health-sessions-D0SdMPNv.js +0 -1215
- package/dist/register.subclis-CQQMGIv7.js +0 -3
- package/dist/register.subclis-CYMsqdxE.js +0 -29
- package/dist/register.subclis-core-DWDlwb58.js +0 -243
- package/dist/register.wallet-CR3_wMxj.js +0 -159
- package/dist/reply-dispatch-runtime-C3eU1JDN.js +0 -13
- package/dist/reply-runtime-CDVJcLIY.js +0 -11
- package/dist/reply.runtime-CreZjwrI.js +0 -2
- package/dist/restart-health-D6gHXWN7.js +0 -202
- package/dist/restart-health-DPEaVmNm.js +0 -2
- package/dist/root-help-CtpK6G48.js +0 -44
- package/dist/routes-BLmIMxHE.js +0 -2
- package/dist/routes-DVK0yoCk.js +0 -3340
- package/dist/rpc-B284aspW.js +0 -61
- package/dist/rpc.runtime-_Lr6h1P2.js +0 -21
- package/dist/run-delivery.runtime-Vl9zviox.js +0 -530
- package/dist/run-embedded.runtime-BxfpUMvk.js +0 -4
- package/dist/run-execution-cli.runtime-DuoOsLmQ.js +0 -4
- package/dist/run-executor.runtime-CnNmatiS.js +0 -277
- package/dist/run-main-Bk3B1Ycl.js +0 -516
- package/dist/run-subagent-registry.runtime-DYsO0_RA.js +0 -2
- package/dist/run-wait-BMbf92lX.js +0 -135
- package/dist/runtime-CVfSbgJg.js +0 -973
- package/dist/runtime-D83Zw8_L.js +0 -9
- package/dist/runtime-api-BjXPh772.js +0 -9
- package/dist/runtime-api-BqLJECf1.js +0 -14
- package/dist/runtime-api-D0lP9bs_.js +0 -9
- package/dist/runtime-api-SC4yZOqC.js +0 -4
- package/dist/runtime-embedded-pi.runtime-BqxRowCu.js +0 -2
- package/dist/runtime-internal-BoBPttX5.js +0 -2
- package/dist/runtime-options-0mbgwVcn.js +0 -275
- package/dist/runtime-schema-DnS1dcv9.js +0 -27748
- package/dist/scan-0tDfQcbh.js +0 -523
- package/dist/scan-kap7E7fQ.js +0 -2
- package/dist/secrets-cli-C-MP3qxL.js +0 -2101
- package/dist/security-cli-YiMwABOV.js +0 -486
- package/dist/selection-B1YFEfhn.js +0 -7737
- package/dist/selection-yj1VeFgc.js +0 -2
- package/dist/send-ChDswQ8K.js +0 -102
- package/dist/send-m-3Wh6Ul.js +0 -156
- package/dist/send.runtime-HuAZWRMT.js +0 -2
- package/dist/server-1tAvo2uk.js +0 -77
- package/dist/server-CgWhiZaZ.js +0 -13
- package/dist/server-context-DC7VPNrP.js +0 -846
- package/dist/server-context-fbmj6rsw.js +0 -2
- package/dist/server-node-events-BMfbJz4h.js +0 -481
- package/dist/server-plugin-bootstrap-32-_V8s1.js +0 -11103
- package/dist/server-plugin-bootstrap-BOy3f_kr.js +0 -2
- package/dist/server-restart-sentinel-JaqT_c7z.js +0 -697
- package/dist/server.impl-ozoUfbJY.js +0 -12724
- package/dist/service-CHmvDejV.js +0 -926
- package/dist/session-kill-http-Bi16FXzX.js +0 -110
- package/dist/session-reset-service-0D6xi-ak.js +0 -471
- package/dist/session-route-CdIF_-j8.js +0 -93
- package/dist/session-status.runtime-BenL5h6z.js +0 -2
- package/dist/session-subagent-reactivation.runtime-VrwlEPse.js +0 -2
- package/dist/session-tab-registry-Cch43wvs.js +0 -491
- package/dist/session-visibility-BUY4AKE8.js +0 -147
- package/dist/sessions-helpers-C1ie4VY2.js +0 -304
- package/dist/sessions-history-http-DvqOoKZP.js +0 -383
- package/dist/sessions-patch-DIqqzD_r.js +0 -309
- package/dist/sessions-resolve-BI24rrsW.js +0 -174
- package/dist/sessions.runtime-B8dy_jZO.js +0 -2
- package/dist/setup-CIGRiYma.js +0 -495
- package/dist/setup-api-C2z6aEmf.js +0 -29
- package/dist/setup-core-DwswrxD9.js +0 -171
- package/dist/setup-core-OrNOJ5Dt.js +0 -176
- package/dist/setup-surface-DRkiJObE.js +0 -286
- package/dist/setup-surface-Duar853m.js +0 -403
- package/dist/setup-surface-te0vyu3k.js +0 -219
- package/dist/setup.finalize-C4D2iTZK.js +0 -539
- package/dist/setup.gateway-config-js5kJWDU.js +0 -250
- package/dist/shared-BjQB2kM2.js +0 -76
- package/dist/shared-CJH2czP-.js +0 -121
- package/dist/shared-CcLhf2wk.js +0 -198
- package/dist/slash-state-CKJGZHok.js +0 -1911
- package/dist/src-CZ8XTjkB.js +0 -3974
- package/dist/startup-context-BMpCePC2.js +0 -312
- package/dist/status-BFeYb9-f.js +0 -2
- package/dist/status-BOleDqu5.js +0 -190
- package/dist/status-BgCUJLW2.js +0 -397
- package/dist/status-DJ1sF6YO.js +0 -209
- package/dist/status-DYJ_8ZJ7.js +0 -2
- package/dist/status-all-CtEWqGEX.js +0 -498
- package/dist/status-json-DTxIuLgj.js +0 -14
- package/dist/status-json-command-CcMv7nYt.js +0 -84
- package/dist/status-runtime-shared-DZDRmXg3.js +0 -257
- package/dist/status-subagents.runtime-C-hQle1W.js +0 -18
- package/dist/status-tDmBvO9G.js +0 -3
- package/dist/status-text-BUpcmvrn.js +0 -236
- package/dist/status.gateway-connection.runtime-wLOiGcpu.js +0 -2
- package/dist/status.gather-B6sN0B8c.js +0 -2
- package/dist/status.gather-BuL7jLue.js +0 -292
- package/dist/status.runtime-_vK1iN8J.js +0 -2
- package/dist/status.scan-CzfgmgTG.js +0 -65
- package/dist/status.scan-overview-D_a6XXNl.js +0 -379
- package/dist/status.scan.fast-json-Cyohwc40.js +0 -2
- package/dist/status.scan.fast-json-EjCk_IC5.js +0 -132
- package/dist/status.summary-DOPlWkvO.js +0 -2
- package/dist/status.summary-SF9yDHoG.js +0 -214
- package/dist/subagent-announce-delivery-BETmbzks.js +0 -726
- package/dist/subagent-announce-eXVKLvvC.js +0 -351
- package/dist/subagent-announce-output-DCnvTZwP.js +0 -364
- package/dist/subagent-control-DOW_fAs-.js +0 -506
- package/dist/subagent-followup.runtime-Bfdcsho3.js +0 -68
- package/dist/subagent-orphan-recovery-B-_eOw_g.js +0 -305
- package/dist/subagent-registry-B1giKhqf.js +0 -1753
- package/dist/subagent-registry-C5VQw19R.js +0 -3
- package/dist/subagent-spawn-C9Tn7SaR.js +0 -1005
- package/dist/system-cli-CxNpT3gx.js +0 -59
- package/dist/targets-dj8UJRJ6.js +0 -67
- package/dist/task-executor-ICSmgHPw.js +0 -360
- package/dist/task-owner-access-Do_-kA0r.js +0 -74
- package/dist/task-registry-D5vWx8tX.js +0 -2366
- package/dist/task-registry-delivery-runtime-NVZZb9QU.js +0 -3
- package/dist/task-registry-delivery-runtime-yimT8mwg.js +0 -2
- package/dist/task-registry.maintenance-B-hFV6uU.js +0 -2
- package/dist/task-registry.maintenance-vCNDvYID.js +0 -416
- package/dist/testing-DggItyHP.js +0 -575
- package/dist/text-report-kxNx8vB8.js +0 -587
- package/dist/tool-resolution-CfvU1QKh.js +0 -90
- package/dist/tools-effective-inventory-JUjxx1jC.js +0 -152
- package/dist/tools-invoke-http-B67672Wx.js +0 -206
- package/dist/trash--zyy7_il.js +0 -24
- package/dist/tui-cli-C9l1W8a5.js +0 -4573
- package/dist/update-cli-CWD6kp5u.js +0 -1728
- package/dist/upgrade-CtywVoEi.js +0 -1226
- package/dist/video-generation-task-status-DtZ_rioL.js +0 -163
- 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 };
|