@noxsoft/anima 2.0.2 → 2.0.4
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/README.md +1260 -28
- package/dist/accounts-Bth3PpPD.js +260 -0
- package/dist/accounts-D8CPKNkN.js +259 -0
- package/dist/acp-cli-ByK6lS6c.js +1081 -0
- package/dist/acp-cli-CaQCjIw4.js +1084 -0
- package/dist/agent-BgIkqd3F.js +725 -0
- package/dist/agent-N5BDcge4.js +725 -0
- package/dist/agent-events-COH7NDW2.js +182 -0
- package/dist/agent-scope-CPphqq-U.js +452 -0
- package/dist/agent-scope-DZgptr9J.js +452 -0
- package/dist/agent-scope-cj2QCT6R.js +112 -0
- package/dist/agents-NEudYMdg.js +774 -0
- package/dist/agents.config-Bujs-NIy.js +182 -0
- package/dist/agents.config-jp7OLssr.js +182 -0
- package/dist/argv-BMZMiW7v.js +73 -0
- package/dist/audit-C-UJhfdv.js +2401 -0
- package/dist/audit-CeCO7SK5.js +2401 -0
- package/dist/auth-BNZsOHGF.js +648 -0
- package/dist/auth-DMPZWzEa.js +639 -0
- package/dist/auth-choice-5VnaGMD-.js +2681 -0
- package/dist/auth-choice-DA2k4vs8.js +2681 -0
- package/dist/auth-health-B7FqA26_.js +149 -0
- package/dist/auth-health-VO_MPqVX.js +149 -0
- package/dist/auth-profiles-BDrNYX_n.js +1564 -0
- package/dist/auth-profiles-CxSHydjn.js +2689 -0
- package/dist/banner-BtDZPRzi.js +294 -0
- package/dist/browser-cli-8yQMpxb8.js +1679 -0
- package/dist/browser-cli-Czg3JtDH.js +1676 -0
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +16 -16
- package/dist/bundled/bootstrap-extra-files/handler.js +4 -4
- package/dist/bundled/command-logger/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +5 -5
- package/dist/call-BIzCaKZb.js +282 -0
- package/dist/call-BYDpTVCZ.js +282 -0
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/catalog-CqKiUgu6.js +185 -0
- package/dist/catalog-DMfEg-oK.js +185 -0
- package/dist/channel-options-BrtCtyrT.js +32 -0
- package/dist/channel-options-CO21Gl8p.js +33 -0
- package/dist/channel-selection-Bbm1lq3P.js +51 -0
- package/dist/channel-selection-CqcX7Ocw.js +51 -0
- package/dist/channel-web-DrsT6OAE.js +2162 -0
- package/dist/channels-cli-Juyh1S6n.js +1304 -0
- package/dist/channels-cli-zNvi1m5c.js +1306 -0
- package/dist/channels-status-issues-CqzqshW4.js +18 -0
- package/dist/channels-status-issues-DdJdO866.js +18 -0
- package/dist/chrome-C4dOMO8z.js +1601 -0
- package/dist/chrome-DdcDzAtH.js +1629 -0
- package/dist/chrome-U3DRzjJD.js +1601 -0
- package/dist/chunk-D2nLsrEW.js +348 -0
- package/dist/clack-prompter-BI3RDW5w.js +92 -0
- package/dist/clack-prompter-Dwr1m_IZ.js +92 -0
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/cli-C3cpDaz8.js +99 -0
- package/dist/cli-CjWUGdGC.js +101 -0
- package/dist/cli-session-BVjY_XrW.js +5463 -0
- package/dist/cli-session-gtuYN2Iq.js +5408 -0
- package/dist/client-Dswwze5_.js +1692 -0
- package/dist/client-LRKFjo4A.js +1692 -0
- package/dist/clipboard-BZKS9O1u.js +31 -0
- package/dist/clipboard-DES8b1AM.js +31 -0
- package/dist/command-format-CP1YTNCl.js +52 -0
- package/dist/command-format-CVL4K5cj.js +52 -0
- package/dist/command-format-G6N2zghg.js +38 -0
- package/dist/command-registry-BBvNvysr.js +248 -0
- package/dist/commands-AZ3n8Y2c.js +726 -0
- package/dist/commands-BMnD_QRY.js +726 -0
- package/dist/commands-registry-cFqZ6Ib4.js +766 -0
- package/dist/commands-registry-q13H7ng5.js +766 -0
- package/dist/common-CX5458fH.js +287 -0
- package/dist/common-DJbnT8ws.js +287 -0
- package/dist/completion-cli-BADRBcIl.js +432 -0
- package/dist/completion-cli-DMQgiObF.js +431 -0
- package/dist/config-CU-Axg8P.js +5704 -0
- package/dist/config-DaqbUdkI.js +5705 -0
- package/dist/config-cli-BPlbwiuA.js +244 -0
- package/dist/config-cli-DXgZJkPU.js +247 -0
- package/dist/config-guard-Ba49JNds.js +76 -0
- package/dist/config-guard-Cu0qMKZJ.js +93 -0
- package/dist/config-kVVm5EYV.js +6523 -0
- package/dist/config-sync-CzLnLTXt.js +91 -0
- package/dist/config-sync-DuydxPWx.js +91 -0
- package/dist/configure-CHgacLyi.js +960 -0
- package/dist/configure-DfHXDa1L.js +959 -0
- package/dist/context-DzgXOckU.js +60 -0
- package/dist/control-service-8_wKHwBa.js +72 -0
- package/dist/control-service-BtL1Jto_.js +72 -0
- package/dist/cron-cli-BCzSR2c0.js +448 -0
- package/dist/cron-cli-CCWNkykU.js +451 -0
- package/dist/daemon-cli-Bjkbu9Vy.js +565 -0
- package/dist/daemon-cli-CmlHcC1J.js +566 -0
- package/dist/daemon-cli.js +16 -16
- package/dist/daemon-runtime-C0tz7VAC.js +460 -0
- package/dist/daemon-runtime-rUTqCVwJ.js +460 -0
- package/dist/deliver-BBggsviM.js +1097 -0
- package/dist/deliver-CePITOl8.js +1162 -0
- package/dist/deliver-DFnVaetP.js +1097 -0
- package/dist/delivery-queue-BJQK3oh5.js +220 -0
- package/dist/deps-CeEKhrp7.js +42 -0
- package/dist/devices-cli-DQrDMrZH.js +198 -0
- package/dist/devices-cli-Oe-A1Dv0.js +195 -0
- package/dist/diagnostics-DxMFrBLO.js +35 -0
- package/dist/diagnostics-m79ZlMmZ.js +35 -0
- package/dist/directory-cli-BL6h8cGF.js +246 -0
- package/dist/directory-cli-Cjgmi_sj.js +243 -0
- package/dist/dispatcher-DAFbQM-c.js +100 -0
- package/dist/dispatcher-DNd40gUn.js +100 -0
- package/dist/dist-CqDI82ei.js +929 -0
- package/dist/dist-DnHRxR5U.js +929 -0
- package/dist/dns-cli-CFtV3BXK.js +200 -0
- package/dist/dns-cli-NyIHvQ5S.js +197 -0
- package/dist/dock-BdXLb5oY.js +753 -0
- package/dist/dock-jYICmNcI.js +753 -0
- package/dist/docs-cli-CrOaIK_H.js +161 -0
- package/dist/docs-cli-D_cmJDSr.js +159 -0
- package/dist/doctor-BpGxKrBl.js +1815 -0
- package/dist/doctor-D12wNQPU.js +1813 -0
- package/dist/doctor-completion-DeOfofek.js +92 -0
- package/dist/doctor-completion-DwjqdEcK.js +92 -0
- package/dist/doctor-config-flow-BI3mpkbd.js +1232 -0
- package/dist/doctor-config-flow-wMHheFkC.js +1232 -0
- package/dist/engine-BCtL-AMw.js +563 -0
- package/dist/engine-Bk_UT413.js +563 -0
- package/dist/entry.js +5 -5
- package/dist/env-v6411I8h.js +32 -0
- package/dist/exec-B7sUS164.js +1167 -0
- package/dist/exec-approvals-CroGJRUg.js +1221 -0
- package/dist/exec-approvals-cli-BTxF_RsH.js +371 -0
- package/dist/exec-approvals-cli-n1gyGwH2.js +368 -0
- package/dist/exec-mhSykkaa.js +255 -0
- package/dist/extensionAPI.js +3 -3
- package/dist/frontmatter-BmHq0vRD.js +204 -0
- package/dist/gateway-cli-DDBadlrS.js +19971 -0
- package/dist/gateway-cli-IZNkOMBe.js +19972 -0
- package/dist/gateway-rpc-Dtx8HN-n.js +28 -0
- package/dist/gateway-rpc-L2PVSqGj.js +28 -0
- package/dist/github-copilot-auth-DKyqDaGU.js +1418 -0
- package/dist/github-copilot-auth-DXpOMSd3.js +1418 -0
- package/dist/gmail-setup-utils-BKNczIJ9.js +428 -0
- package/dist/gmail-setup-utils-co0ppccC.js +428 -0
- package/dist/health-Bm8ZTvC3.js +1253 -0
- package/dist/health-DUf1gt4E.js +1258 -0
- package/dist/health-format-BksT6F68.js +208 -0
- package/dist/health-format-uzh1xYLD.js +208 -0
- package/dist/heartbeat-visibility-1TJb1Zao.js +98 -0
- package/dist/heartbeat-visibility-CwodtdcX.js +98 -0
- package/dist/help-format-C6cv_aZp.js +17 -0
- package/dist/helpers-N-uSFKOn.js +10 -0
- package/dist/hooks-cli-1POsXqOl.js +993 -0
- package/dist/hooks-cli-BGjILbze.js +991 -0
- package/dist/hooks-status-DE07n5RC.js +356 -0
- package/dist/hooks-status-Du-d1jde.js +356 -0
- package/dist/image-ops-B_AYV3tp.js +541 -0
- package/dist/image-ops-Bp0C6Mvr.js +541 -0
- package/dist/index.js +82 -82
- package/dist/init-9A0s7bWG.js +122 -0
- package/dist/init-DoyCHJDC.js +122 -0
- package/dist/installs-D1C9wHAq.js +383 -0
- package/dist/installs-Dh4dHayM.js +383 -0
- package/dist/ipv4-DCItfaJo.js +1964 -0
- package/dist/ipv4-DSOUVx0i.js +1964 -0
- package/dist/lanes-BvSnHq2h.js +232 -0
- package/dist/lifecycle-core-BY4WIf9g.js +388 -0
- package/dist/lifecycle-core-TQKyXO-6.js +387 -0
- package/dist/links-CNu_8RZl.js +15 -0
- package/dist/links-D2tt2ouh.js +15 -0
- package/dist/llm-slug-generator.js +4 -4
- package/dist/logging-BIeRw0WR.js +15 -0
- package/dist/logging-C7lb3Vjc.js +15 -0
- package/dist/login-DXWKewA2.js +59 -0
- package/dist/login-Fhh4uWmf.js +61 -0
- package/dist/login-pPs3UO38.js +61 -0
- package/dist/login-qr-CevLD8cV.js +326 -0
- package/dist/login-qr-GF2JMIy-.js +323 -0
- package/dist/login-qr-ZYYKD6Yt.js +321 -0
- package/dist/logs-cli-CzXbX8HZ.js +242 -0
- package/dist/logs-cli-D9ngH9PF.js +245 -0
- package/dist/manager-BD5rA3w0.js +3244 -0
- package/dist/manager-BDPgBQSH.js +3246 -0
- package/dist/manager-DRWMWM--.js +3244 -0
- package/dist/manifest-registry-DbvPaBXY.js +748 -0
- package/dist/manifest-registry-kHX_MFa1.js +748 -0
- package/dist/markdown-tables-CqwihY2m.js +347 -0
- package/dist/markdown-tables-DJV7eAJZ.js +348 -0
- package/dist/media-lUqN-0O9.js +1342 -0
- package/dist/memory-cli-BLXSpgnN.js +868 -0
- package/dist/memory-cli-BcGVkkRJ.js +869 -0
- package/dist/message-channel-D_jIO87f.js +110 -0
- package/dist/migrate-BpVOar4L.js +157 -0
- package/dist/migrate-CkgGDkWy.js +157 -0
- package/dist/model-selection-Cqt6aJ0G.js +2691 -0
- package/dist/models-CExsNQPH.js +2510 -0
- package/dist/models-cli-Ba3Jmwev.js +2739 -0
- package/dist/models-cli-iDAlsbL2.js +258 -0
- package/dist/net-0A_zcaQD.js +218 -0
- package/dist/node-cli-ATmwCXIk.js +1319 -0
- package/dist/node-cli-DYFR_V25.js +1322 -0
- package/dist/node-service-CN4LqR1A.js +67 -0
- package/dist/node-service-CWt3MdSC.js +67 -0
- package/dist/nodes-cli-BeVmhTz3.js +1197 -0
- package/dist/nodes-cli-QeJIfa18.js +1200 -0
- package/dist/nodes-screen-DHyWAlla.js +234 -0
- package/dist/nodes-screen-qs3jRBPk.js +234 -0
- package/dist/note-CSlg2BnB.js +73 -0
- package/dist/note-Ctvglhp1.js +73 -0
- package/dist/npm-registry-spec-DQd4M22q.js +351 -0
- package/dist/npm-registry-spec-PxisIMts.js +351 -0
- package/dist/onboard-DeruD10m.js +1166 -0
- package/dist/onboard-SAcu5N6N.js +1165 -0
- package/dist/onboard-channels-C4iSfFXR.js +672 -0
- package/dist/onboard-channels-oVTVgoyg.js +672 -0
- package/dist/onboard-helpers-B8roRwLP.js +365 -0
- package/dist/onboard-helpers-Dgh26hgP.js +365 -0
- package/dist/onboarding-Bi-ac8we.js +911 -0
- package/dist/onboarding-C2gjB2u8.js +910 -0
- package/dist/orchestrator-DlbAYMQP.js +357 -0
- package/dist/orchestrator-DlwVRVDA.js +357 -0
- package/dist/outbound-CkKgc6iR.js +2062 -0
- package/dist/outbound-Vfm5yDh3.js +214 -0
- package/dist/outbound-bs_VK51X.js +214 -0
- package/dist/outbound-send-deps-DDjiMfEL.js +55 -0
- package/dist/pairing-cli-CJYeuEik.js +118 -0
- package/dist/pairing-cli-mqopHI8s.js +121 -0
- package/dist/pairing-store-BsXzUDPv.js +388 -0
- package/dist/pairing-store-DoNj00-X.js +388 -0
- package/dist/path-env-C_xpiG8l.js +89 -0
- package/dist/path-env-DSSMHu5A.js +89 -0
- package/dist/paths-B1vRVCad.js +126 -0
- package/dist/paths-BMuHNFxg.js +238 -0
- package/dist/paths-BXQQzXGQ.js +129 -0
- package/dist/paths-Buw_geoe.js +54 -0
- package/dist/paths-DA9WYabg.js +222 -0
- package/dist/paths-DfQGx0_k.js +129 -0
- package/dist/pi-auth-json-DOPW3e4X.js +78 -0
- package/dist/pi-auth-json-MruLmI_X.js +82 -0
- package/dist/pi-auth-json-lae_wwwo.js +80 -0
- package/dist/pi-model-discovery-7q0GxMrp.js +3 -0
- package/dist/pi-tools.policy-Csmla32P.js +200 -0
- package/dist/pi-tools.policy-xYdDLEv9.js +200 -0
- package/dist/plugin-auto-enable-CViVVWgg.js +282 -0
- package/dist/plugin-auto-enable-CjZ238UI.js +282 -0
- package/dist/plugin-registry-B4Aw2hzq.js +32 -0
- package/dist/plugin-registry-DW81arxW.js +32 -0
- package/dist/plugin-sdk/cli/cli-name.d.ts +1 -1
- package/dist/plugin-sdk/config/paths.d.ts +2 -2
- package/dist/plugin-sdk/index.js +7 -7
- package/dist/plugins-DhcGAPDB.js +38 -0
- package/dist/plugins-DtghNRtM.js +168 -0
- package/dist/plugins-cli-4vWTmOAb.js +736 -0
- package/dist/plugins-cli-CdTMbP0X.js +734 -0
- package/dist/polls-D6eCdatA.js +1343 -0
- package/dist/ports-BtZx-JKD.js +96 -0
- package/dist/ports-C8bKN8s0.js +96 -0
- package/dist/ports-DHiKnPRX.js +344 -0
- package/dist/ports-vd93M_Pt.js +317 -0
- package/dist/program-CX3aUVeb.js +176 -0
- package/dist/program-context-BPos0ivo.js +496 -0
- package/dist/progress-oiAjiiNi.js +133 -0
- package/dist/prompt-style-Cm4wOtKm.js +9 -0
- package/dist/pw-ai-4QbK5YFe.js +1865 -0
- package/dist/pw-ai-BWz3Cxt7.js +1868 -0
- package/dist/pw-ai-C83HBue2.js +1867 -0
- package/dist/qmd-manager-BcMeZiGD.js +938 -0
- package/dist/qmd-manager-CPypGJ0P.js +935 -0
- package/dist/qmd-manager-CRrSkfia.js +937 -0
- package/dist/register.agent-DDY8KJhn.js +265 -0
- package/dist/register.agent-DKawm-9d.js +1003 -0
- package/dist/register.anima-CEWUo29k.js +193 -0
- package/dist/register.anima-DBWz2rk_.js +193 -0
- package/dist/register.configure-BX67qV8k.js +103 -0
- package/dist/register.configure-CWsySuiq.js +101 -0
- package/dist/register.maintenance-0k-ZNhDg.js +543 -0
- package/dist/register.maintenance-BIwx1fzX.js +543 -0
- package/dist/register.message-CXPsoakA.js +657 -0
- package/dist/register.message-DA3jvfgI.js +660 -0
- package/dist/register.onboard-C4HG7Hqv.js +170 -0
- package/dist/register.onboard-GOpdif-j.js +170 -0
- package/dist/register.setup-B17vZT7C.js +175 -0
- package/dist/register.setup-GJyUDCqh.js +175 -0
- package/dist/register.status-health-sessions-D5876dGx.js +313 -0
- package/dist/register.status-health-sessions-lOewVIZR.js +142 -0
- package/dist/register.subclis-Dwnujj5C.js +255 -0
- package/dist/reply-CR5T_oQJ.js +32212 -0
- package/dist/reply-prefix-BcrS4Umd.js +100 -0
- package/dist/reply-prefix-Btb5o2NH.js +100 -0
- package/dist/reply-r089HuRA.js +32212 -0
- package/dist/routes-B4czFzIb.js +1820 -0
- package/dist/routes-ucJWAk5O.js +1820 -0
- package/dist/rpc-BnKxnQ0v.js +70 -0
- package/dist/rpc-DgE-xnyx.js +70 -0
- package/dist/run-main-B74kv84C.js +371 -0
- package/dist/runtime-guard-CKFdts2L.js +60 -0
- package/dist/sandbox-CJTS3er6.js +858 -0
- package/dist/sandbox-DBSiVHt_.js +859 -0
- package/dist/sandbox-cli-CrkjyU5M.js +461 -0
- package/dist/sandbox-cli-D1r5y6Sz.js +458 -0
- package/dist/security-cli-BZUdnkhn.js +462 -0
- package/dist/security-cli-DS09ebvA.js +465 -0
- package/dist/server-context-C0xZbYhg.js +824 -0
- package/dist/server-context-DVh2z7om.js +824 -0
- package/dist/server-node-events-bu9lpkMH.js +233 -0
- package/dist/server-node-events-i1Rrww31.js +231 -0
- package/dist/service-CJJwLEor.js +642 -0
- package/dist/service-DxLxBhaU.js +642 -0
- package/dist/service-audit-DB4Y3Ekp.js +488 -0
- package/dist/service-audit-M8y4TXVb.js +488 -0
- package/dist/session-CGxOLFs2.js +179 -0
- package/dist/session-DTTbdKb0.js +181 -0
- package/dist/session-cost-usage-FcdJl9c3.js +600 -0
- package/dist/session-cost-usage-qdfsGU2a.js +600 -0
- package/dist/session-yOhWcsD2.js +181 -0
- package/dist/sessions-B-Cu7JZq.js +1296 -0
- package/dist/sessions-BgLN4KFr.js +180 -0
- package/dist/sessions-CnRjwdVr.js +1296 -0
- package/dist/sessions-wRKla1Qh.js +2038 -0
- package/dist/shared-DS3UaJSP.js +66 -0
- package/dist/shared-DxNHzky3.js +77 -0
- package/dist/shared-Qpt4hUDi.js +66 -0
- package/dist/shared-kzrojZ1B.js +77 -0
- package/dist/skill-scanner-DLJji5Ye.js +263 -0
- package/dist/skills-BWFIEp4j.js +807 -0
- package/dist/skills-DV4zKdCx.js +808 -0
- package/dist/skills-cli-BY53ILm2.js +289 -0
- package/dist/skills-cli-CO3gxl8A.js +286 -0
- package/dist/skills-status-DX5pcqY3.js +166 -0
- package/dist/skills-status-zhcKzGkp.js +166 -0
- package/dist/sqlite-B6MojU1I.js +321 -0
- package/dist/sqlite-CuprTGR7.js +453 -0
- package/dist/sqlite-dzD-jMjs.js +368 -0
- package/dist/start-Cu3aLoSf.js +297 -0
- package/dist/start-Dz7tMAl8.js +296 -0
- package/dist/status-CaSxhxfV.js +2132 -0
- package/dist/status-D2C0JCX3.js +2137 -0
- package/dist/status-DlFMsQzh.js +27 -0
- package/dist/status-G0CITnKR.js +27 -0
- package/dist/status.update-CHjhVxJY.js +79 -0
- package/dist/status.update-DVFelehi.js +79 -0
- package/dist/subagent-registry-3Xb4el-8.js +14 -0
- package/dist/subagent-registry-CdSjz14I.js +2760 -0
- package/dist/subagent-registry-DNDhbHWi.js +2759 -0
- package/dist/subsystem-DfKstnEK.js +860 -0
- package/dist/system-cli-B5mt0FWa.js +82 -0
- package/dist/system-cli-Dg3UQ3Zz.js +79 -0
- package/dist/systemd-B43AvOGx.js +452 -0
- package/dist/systemd-RpPE0XGg.js +452 -0
- package/dist/systemd-hints-DMJT-Bbc.js +36 -0
- package/dist/systemd-hints-vRInKcz9.js +36 -0
- package/dist/systemd-linger-Dzyxqsod.js +75 -0
- package/dist/systemd-linger-EujbmI5A.js +75 -0
- package/dist/table-DhXHfRX2.js +279 -0
- package/dist/table-bWCLW-3P.js +279 -0
- package/dist/timeout-Ddn-5kAO.js +232 -0
- package/dist/tokens-3psI_Qk2.js +14 -0
- package/dist/tokens-BaM53PEx.js +14 -0
- package/dist/trash-Bmxs1Rnm.js +23 -0
- package/dist/trash-C39a6hKA.js +23 -0
- package/dist/tui-BHgBWhHE.js +3894 -0
- package/dist/tui-cli-B9Sq5-cC.js +50 -0
- package/dist/tui-cli-Dw7v4JoJ.js +47 -0
- package/dist/tui-mUwDwqvd.js +3894 -0
- package/dist/update-DF0GHG0j.js +317 -0
- package/dist/update-DoZLVjva.js +317 -0
- package/dist/update-check-Bt1dVPVN.js +400 -0
- package/dist/update-check-D5qAKes7.js +400 -0
- package/dist/update-cli-BNu2Oi7H.js +1105 -0
- package/dist/update-cli-D36AmALA.js +1105 -0
- package/dist/update-runner-CNQQaTwA.js +894 -0
- package/dist/update-runner-CvxZmbu-.js +894 -0
- package/dist/usage-BGCwNnjk.js +4516 -0
- package/dist/utils-DZ8pnOD5.js +243 -0
- package/dist/web-B5QG839O.js +46842 -0
- package/dist/web-Cmnvk9v0.js +2203 -0
- package/dist/web-Cv2KnTnL.js +63 -0
- package/dist/webhooks-cli-B6y89Pj_.js +319 -0
- package/dist/webhooks-cli-BDzHON4w.js +316 -0
- package/dist/whatsapp-actions-C_5MwVxM.js +45 -0
- package/dist/whatsapp-actions-hgYA12To.js +53 -0
- package/dist/whatsapp-actions-zTiVOoOV.js +49 -0
- package/dist/widearea-dns-BeIdnISJ.js +127 -0
- package/dist/widearea-dns-CF1gxpJ-.js +127 -0
- package/dist/workspace-DLna1IxR.js +649 -0
- package/dist/ws-log-Q4wO1Ztb.js +267 -0
- package/dist/ws-log-xF0kxDzp.js +267 -0
- package/package.json +1 -2
- package/dist/accounts-Cc5E4IDO.js +0 -260
- package/dist/accounts-CcVrwKqv.js +0 -259
- package/dist/acp-cli-DvphOKuh.js +0 -1081
- package/dist/acp-cli-p28pQ65a.js +0 -1084
- package/dist/agent-Cj7uDJaZ.js +0 -725
- package/dist/agent-Cuj9-2sT.js +0 -725
- package/dist/agent-events-BEBQsyE5.js +0 -182
- package/dist/agent-scope-BVf4aSwY.js +0 -112
- package/dist/agent-scope-OZi7lb8S.js +0 -452
- package/dist/agent-scope-V1bi9OYL.js +0 -452
- package/dist/agents-BUWqn_Ui.js +0 -774
- package/dist/agents.config-Dvo2ULxs.js +0 -182
- package/dist/agents.config-d6H0_3oj.js +0 -182
- package/dist/argv-DqUHKf0o.js +0 -73
- package/dist/audit-C6okOOSh.js +0 -2401
- package/dist/audit-VWjIdwC7.js +0 -2401
- package/dist/auth-91o2YM96.js +0 -648
- package/dist/auth-choice-CAmACV13.js +0 -2681
- package/dist/auth-choice-p3SeHPj2.js +0 -2681
- package/dist/auth-health-B_jXrWe6.js +0 -149
- package/dist/auth-health-DCicUKYR.js +0 -149
- package/dist/auth-lZ26wsbN.js +0 -639
- package/dist/auth-profiles-CCDD56dU.js +0 -1564
- package/dist/auth-profiles-DxI8L7bs.js +0 -2689
- package/dist/banner-Cohn04J6.js +0 -294
- package/dist/browser-cli-DANzjztE.js +0 -1676
- package/dist/browser-cli-WjsVH741.js +0 -1679
- package/dist/call-BAHvlu2G.js +0 -282
- package/dist/call-Ct7EGP_L.js +0 -282
- package/dist/catalog-BAayBt1L.js +0 -185
- package/dist/catalog-BNsf97BM.js +0 -185
- package/dist/channel-options-Dx9nPlX8.js +0 -33
- package/dist/channel-options-ZdvXrTGs.js +0 -32
- package/dist/channel-selection-CujyiWGM.js +0 -51
- package/dist/channel-selection-DfGpCyh2.js +0 -51
- package/dist/channel-web-CC0hkgkR.js +0 -2162
- package/dist/channels-cli-D7lNBpIb.js +0 -1304
- package/dist/channels-cli-DUPG8WDv.js +0 -1306
- package/dist/channels-status-issues-DBc1pU_R.js +0 -18
- package/dist/channels-status-issues-DjO9MHIG.js +0 -18
- package/dist/chrome-Bi6iZ5sG.js +0 -1601
- package/dist/chrome-DNSv7Cpy.js +0 -1629
- package/dist/chrome-DScZx4Lk.js +0 -1601
- package/dist/chunk-mxPVo000.js +0 -348
- package/dist/clack-prompter-B0kl7shw.js +0 -92
- package/dist/clack-prompter-B1YxZdRy.js +0 -92
- package/dist/cli-CfHUkOD0.js +0 -101
- package/dist/cli-ClMrIh6l.js +0 -99
- package/dist/cli-session-BkPTd9Pk.js +0 -5463
- package/dist/cli-session-Dd8DKb5a.js +0 -5408
- package/dist/client-C1avc0vD.js +0 -1692
- package/dist/client-CC94YZrT.js +0 -1692
- package/dist/clipboard-B2fBy8tG.js +0 -31
- package/dist/clipboard-BbGnZskJ.js +0 -31
- package/dist/command-format-Clp46jkj.js +0 -38
- package/dist/command-format-DELazozB.js +0 -52
- package/dist/command-format-SkzzRqR1.js +0 -52
- package/dist/command-registry-DZ4hkmA0.js +0 -248
- package/dist/commands-DtYZJSPn.js +0 -568
- package/dist/commands-Dujk1JmY.js +0 -568
- package/dist/commands-registry-Bd0xbvwG.js +0 -766
- package/dist/commands-registry-DYfRSVF3.js +0 -766
- package/dist/common-D6bu0zHC.js +0 -287
- package/dist/common-zW9Y2P1B.js +0 -287
- package/dist/completion-cli-tSe7Pmqm.js +0 -431
- package/dist/completion-cli-vn4IScs5.js +0 -432
- package/dist/config-C8rUDJXY.js +0 -5704
- package/dist/config-CLZ_XGVw.js +0 -6523
- package/dist/config-SY8M0kM_.js +0 -5705
- package/dist/config-cli-1V7D2Wsw.js +0 -247
- package/dist/config-cli-CjWEC81L.js +0 -244
- package/dist/config-guard-BW2gpKj_.js +0 -93
- package/dist/config-guard-BvxuzHpo.js +0 -76
- package/dist/config-sync-CoIIbEOe.js +0 -91
- package/dist/config-sync-DvAttep0.js +0 -91
- package/dist/configure-Bf0oupCE.js +0 -959
- package/dist/configure-DRM-7zFf.js +0 -960
- package/dist/context-D5iEFzv9.js +0 -60
- package/dist/control-service-C8m8F9pr.js +0 -72
- package/dist/control-service-DKotCWCg.js +0 -72
- package/dist/cron-cli-DB_FLYHD.js +0 -448
- package/dist/cron-cli-bxm5lrrO.js +0 -451
- package/dist/daemon-cli-1LsOnICv.js +0 -566
- package/dist/daemon-cli-CC2NrJ7a.js +0 -565
- package/dist/daemon-runtime-BXZhtBL9.js +0 -460
- package/dist/daemon-runtime-DW4USC7r.js +0 -460
- package/dist/deliver-B4HuPwJA.js +0 -1162
- package/dist/deliver-LiY5oL52.js +0 -1097
- package/dist/deliver-xrmk7xjh.js +0 -1097
- package/dist/delivery-queue-TnQykYsg.js +0 -220
- package/dist/deps-CMMOiOsF.js +0 -42
- package/dist/devices-cli-Be5he2SA.js +0 -195
- package/dist/devices-cli-z6ecoFe9.js +0 -198
- package/dist/diagnostics-Dj75aEHN.js +0 -35
- package/dist/diagnostics-DlIw6fqD.js +0 -35
- package/dist/directory-cli-CEy-0nxj.js +0 -243
- package/dist/directory-cli-DpzKcigr.js +0 -246
- package/dist/dispatcher-10Shiuz3.js +0 -100
- package/dist/dispatcher-3Jae6AiW.js +0 -100
- package/dist/dns-cli-Bat1pkc-.js +0 -200
- package/dist/dns-cli-NohNyEo0.js +0 -197
- package/dist/dock-DbxBBv30.js +0 -753
- package/dist/dock-cPBY4qGl.js +0 -753
- package/dist/docs-cli-BWp6p-Tq.js +0 -161
- package/dist/docs-cli-x22FnZfL.js +0 -159
- package/dist/doctor-BrT5m_on.js +0 -1815
- package/dist/doctor-Pp2HVnjM.js +0 -1813
- package/dist/doctor-completion-DNTimX9o.js +0 -92
- package/dist/doctor-completion-ylN9QAJ6.js +0 -92
- package/dist/doctor-config-flow-D1w3700T.js +0 -1232
- package/dist/doctor-config-flow-Dq50iE1R.js +0 -1232
- package/dist/engine-B9avUJL5.js +0 -563
- package/dist/engine-BiUQ25D4.js +0 -563
- package/dist/env-0lJfCPsw.js +0 -32
- package/dist/exec-BenD3A5l.js +0 -1167
- package/dist/exec-Bv3pyjeM.js +0 -255
- package/dist/exec-approvals-CdLmKX2R.js +0 -1221
- package/dist/exec-approvals-cli-DXfV6G8H.js +0 -368
- package/dist/exec-approvals-cli-J2cZs10o.js +0 -371
- package/dist/frontmatter-YijVi0FQ.js +0 -204
- package/dist/gateway-cli-DOAbA0pc.js +0 -19972
- package/dist/gateway-cli-QpWtBhQy.js +0 -19971
- package/dist/gateway-rpc-DJKBil9s.js +0 -28
- package/dist/gateway-rpc-DVterpLP.js +0 -28
- package/dist/github-copilot-auth-4IUFp669.js +0 -1418
- package/dist/github-copilot-auth-C9E0IROs.js +0 -1418
- package/dist/gmail-setup-utils-BPo_LkKI.js +0 -428
- package/dist/gmail-setup-utils-D3Yqgor7.js +0 -428
- package/dist/health-BeZnqp6m.js +0 -1258
- package/dist/health-Cn2OoVWZ.js +0 -1253
- package/dist/health-format-CdP99j3Y.js +0 -208
- package/dist/health-format-JEChH08S.js +0 -208
- package/dist/heartbeat-visibility-BL3WAchI.js +0 -98
- package/dist/heartbeat-visibility-CQ9QimI7.js +0 -98
- package/dist/help-format-Dl4bsrLI.js +0 -17
- package/dist/helpers-ZKNRexvX.js +0 -10
- package/dist/hooks-cli-D99hXt7K.js +0 -991
- package/dist/hooks-cli-DMB8RiEO.js +0 -993
- package/dist/hooks-status-B-e96dZj.js +0 -356
- package/dist/hooks-status-C_9sE0ox.js +0 -356
- package/dist/image-ops-Dlt3T7th.js +0 -541
- package/dist/image-ops-omlvdfah.js +0 -541
- package/dist/init-Bm04RagW.js +0 -122
- package/dist/init-CaJBf4p1.js +0 -122
- package/dist/installs-C2iMRBVz.js +0 -383
- package/dist/installs-D-cPGdCw.js +0 -383
- package/dist/ipv4-Bf7NS3QU.js +0 -1964
- package/dist/ipv4-wWNs8IH_.js +0 -1964
- package/dist/lanes-CNxj3tit.js +0 -232
- package/dist/lifecycle-core-B_7XRcvF.js +0 -388
- package/dist/lifecycle-core-By83PVAK.js +0 -387
- package/dist/links-BfjHVTB_.js +0 -15
- package/dist/links-DPGe0OHw.js +0 -15
- package/dist/logging-DB6BQmhi.js +0 -15
- package/dist/logging-mcb66J0p.js +0 -15
- package/dist/login-BDCg6D0N.js +0 -61
- package/dist/login-BDfnbjnZ.js +0 -59
- package/dist/login-BqH1itcg.js +0 -61
- package/dist/login-qr-CyOw3R4r.js +0 -321
- package/dist/login-qr-D8ECtb72.js +0 -323
- package/dist/login-qr-RnR7e4Bw.js +0 -326
- package/dist/logs-cli--j89L74J.js +0 -245
- package/dist/logs-cli-DpEMg_Gq.js +0 -242
- package/dist/manager-B4OyvcxT.js +0 -3244
- package/dist/manager-Cqc1CeH7.js +0 -3246
- package/dist/manager-DUyQPFvj.js +0 -3244
- package/dist/manifest-registry-CW1zCyRF.js +0 -748
- package/dist/manifest-registry-D4lM2RdV.js +0 -748
- package/dist/markdown-tables-BT1X6jqH.js +0 -347
- package/dist/markdown-tables-DHgOK2vI.js +0 -348
- package/dist/media-THyainiE.js +0 -1342
- package/dist/memory-cli-BKocCWXM.js +0 -868
- package/dist/memory-cli-Jmma-xI_.js +0 -869
- package/dist/message-channel-dSTVVCyX.js +0 -110
- package/dist/migrate-BR6iAIjO.js +0 -157
- package/dist/migrate-D0EcMs0f.js +0 -157
- package/dist/model-selection-YcSr9CgC.js +0 -2691
- package/dist/models-1vUQBVfw.js +0 -2510
- package/dist/models-cli-BK3BwUhL.js +0 -2739
- package/dist/models-cli-DECrM8oA.js +0 -258
- package/dist/net-B5lXhYLV.js +0 -218
- package/dist/node-cli-cLHUNpPD.js +0 -1319
- package/dist/node-cli-fO7Y132S.js +0 -1322
- package/dist/node-service-BFxHJsno.js +0 -67
- package/dist/node-service-DUnan4uK.js +0 -67
- package/dist/nodes-cli-BCq35E6N.js +0 -1200
- package/dist/nodes-cli-vD7MwAKP.js +0 -1197
- package/dist/nodes-screen-1YiLkqr5.js +0 -234
- package/dist/nodes-screen-DZeD8hE5.js +0 -234
- package/dist/note-Bi8Wb8DV.js +0 -73
- package/dist/note-uiuPxhyX.js +0 -73
- package/dist/npm-registry-spec-B-XIShkB.js +0 -351
- package/dist/npm-registry-spec-za3itb5Y.js +0 -351
- package/dist/onboard-Ds6w_sWo.js +0 -1165
- package/dist/onboard-SAVx3bp4.js +0 -1166
- package/dist/onboard-channels-Cg_EkBa4.js +0 -672
- package/dist/onboard-channels-D7NbA55V.js +0 -672
- package/dist/onboard-helpers-DO_hgZb9.js +0 -365
- package/dist/onboard-helpers-_XgJgeqh.js +0 -365
- package/dist/onboarding-3hLmDd0r.js +0 -911
- package/dist/onboarding-B4LKLsbU.js +0 -910
- package/dist/orchestrator-BKzmyBWy.js +0 -357
- package/dist/orchestrator-BN3QCz2s.js +0 -357
- package/dist/outbound-BgA9hNlP.js +0 -2062
- package/dist/outbound-CjdvVhUI.js +0 -214
- package/dist/outbound-DOGe6qb2.js +0 -214
- package/dist/outbound-send-deps-Du5aBpd7.js +0 -55
- package/dist/pairing-cli-2vnyg_Nd.js +0 -118
- package/dist/pairing-cli-BH1KQtNV.js +0 -121
- package/dist/pairing-store-DJz_9Gv0.js +0 -388
- package/dist/pairing-store-DmOzxcuk.js +0 -388
- package/dist/path-env-Bu6k0jDQ.js +0 -89
- package/dist/path-env-C0zQSjw8.js +0 -89
- package/dist/paths-BTc4nk-6.js +0 -126
- package/dist/paths-BgUi2Z2G.js +0 -54
- package/dist/paths-C6VCWKo3.js +0 -238
- package/dist/paths-CCxa0o9c.js +0 -222
- package/dist/paths-CxRf2rBG.js +0 -129
- package/dist/paths-hcX1Gqg5.js +0 -129
- package/dist/pi-auth-json-B68R7q7_.js +0 -82
- package/dist/pi-auth-json-CR0jXAgq.js +0 -78
- package/dist/pi-auth-json-ZYzi3nxs.js +0 -80
- package/dist/pi-model-discovery-Cxs4pvC2.js +0 -3
- package/dist/pi-tools.policy-D81U5xy0.js +0 -200
- package/dist/pi-tools.policy-DSHkkb5b.js +0 -200
- package/dist/plugin-auto-enable-CxF4bpDN.js +0 -282
- package/dist/plugin-auto-enable-jNaAeyEh.js +0 -282
- package/dist/plugin-registry-C7XWotZG.js +0 -32
- package/dist/plugin-registry-DcUCbGax.js +0 -32
- package/dist/plugins-B362e77G.js +0 -168
- package/dist/plugins-CmSUIUNi.js +0 -38
- package/dist/plugins-cli-BsCEnoQ7.js +0 -734
- package/dist/plugins-cli-QSIsMUG7.js +0 -736
- package/dist/polls-CItfB1H8.js +0 -1343
- package/dist/ports-BVLMN1Sr.js +0 -96
- package/dist/ports-CqLSlU6Z.js +0 -317
- package/dist/ports-D94CwCrv.js +0 -344
- package/dist/ports-D_NHthOz.js +0 -96
- package/dist/program-DkJHjI0R.js +0 -176
- package/dist/program-context-DnyGM2SC.js +0 -496
- package/dist/progress-Bek_GyWS.js +0 -133
- package/dist/prompt-style-lu0clOOE.js +0 -9
- package/dist/pw-ai-BLVMuSLv.js +0 -1867
- package/dist/pw-ai-DZJWEF_f.js +0 -1865
- package/dist/pw-ai-dzf-ptcn.js +0 -1868
- package/dist/qmd-manager-Cur_Ekn0.js +0 -937
- package/dist/qmd-manager-DNAUuwjK.js +0 -938
- package/dist/qmd-manager-DepEoASu.js +0 -935
- package/dist/register.agent-CSWvzOkR.js +0 -265
- package/dist/register.agent-UeH2NXmH.js +0 -1003
- package/dist/register.anima-DOdee0dh.js +0 -193
- package/dist/register.anima-HHDWsz6r.js +0 -193
- package/dist/register.configure-CSJFxdz9.js +0 -103
- package/dist/register.configure-D84Fvcz4.js +0 -101
- package/dist/register.maintenance-B3pvNbZb.js +0 -543
- package/dist/register.maintenance-BKVOwkw6.js +0 -543
- package/dist/register.message-BAO6CPl2.js +0 -657
- package/dist/register.message-OXoOKE_6.js +0 -660
- package/dist/register.onboard-BK_ixVmD.js +0 -170
- package/dist/register.onboard-cfCaPx6j.js +0 -170
- package/dist/register.setup-BGfDnzph.js +0 -175
- package/dist/register.setup-Y-Q74M-0.js +0 -175
- package/dist/register.status-health-sessions-CT14eitH.js +0 -142
- package/dist/register.status-health-sessions-TfZMzAUn.js +0 -313
- package/dist/register.subclis-BZwdlNHC.js +0 -255
- package/dist/reply-mlsExaZm.js +0 -32212
- package/dist/reply-prefix-B0CfR4bM.js +0 -100
- package/dist/reply-prefix-w4a39ybC.js +0 -100
- package/dist/reply-qalRISe_.js +0 -32212
- package/dist/routes-CENsHJyg.js +0 -1820
- package/dist/routes-DO0HqW2e.js +0 -1820
- package/dist/rpc-C0pjNhBi.js +0 -70
- package/dist/rpc-DZ44PIXE.js +0 -70
- package/dist/run-main-BMpKw8Mp.js +0 -371
- package/dist/runtime-guard-BSUFiAQV.js +0 -60
- package/dist/sandbox-BIGfMYEI.js +0 -858
- package/dist/sandbox-DxP3IpUP.js +0 -859
- package/dist/sandbox-cli-DtLGH8sL.js +0 -461
- package/dist/sandbox-cli-_Tg7lfJ_.js +0 -458
- package/dist/security-cli-BRwgbedo.js +0 -462
- package/dist/security-cli-D3bSuyZt.js +0 -465
- package/dist/server-context-49XFFxFg.js +0 -824
- package/dist/server-context-LrlgrZzS.js +0 -824
- package/dist/server-node-events-Dm52i7NW.js +0 -231
- package/dist/server-node-events-QX523UyF.js +0 -233
- package/dist/service-BNVpYcQe.js +0 -642
- package/dist/service-D56aMXUB.js +0 -642
- package/dist/service-audit-D0X_XAB2.js +0 -488
- package/dist/service-audit-qmf6XMmP.js +0 -488
- package/dist/session-CrQQLLhx.js +0 -179
- package/dist/session-LocsOOWJ.js +0 -181
- package/dist/session-Vlce2BAT.js +0 -181
- package/dist/session-cost-usage-BwiTZuKl.js +0 -600
- package/dist/session-cost-usage-DT9YNXTJ.js +0 -600
- package/dist/sessions-BfV53TbG.js +0 -1296
- package/dist/sessions-BimpX_km.js +0 -180
- package/dist/sessions-DcXpzig0.js +0 -1296
- package/dist/sessions-Wd18dukK.js +0 -2038
- package/dist/shared-Bsr69u_7.js +0 -77
- package/dist/shared-Cgly1vPb.js +0 -66
- package/dist/shared-JOo05hST.js +0 -66
- package/dist/shared-f7dvQsi7.js +0 -77
- package/dist/skill-scanner-CkaVLABv.js +0 -263
- package/dist/skills-B-G7UHOa.js +0 -808
- package/dist/skills-B5LQx4lT.js +0 -807
- package/dist/skills-cli-DUGe2ZWW.js +0 -286
- package/dist/skills-cli-DtOk0bvK.js +0 -289
- package/dist/skills-status-Clq9ZnYu.js +0 -166
- package/dist/skills-status-JQluhU-P.js +0 -166
- package/dist/sqlite-BukcjdJa.js +0 -321
- package/dist/sqlite-CGcOZZ0C.js +0 -368
- package/dist/sqlite-Ck6f9KWc.js +0 -453
- package/dist/start--xmSFepB.js +0 -372
- package/dist/start-BdlZbqrr.js +0 -371
- package/dist/status-BgoeFm6g.js +0 -2137
- package/dist/status-BjjDrUq7.js +0 -27
- package/dist/status-Ct0DgOZ-.js +0 -2132
- package/dist/status-RA_uNmK0.js +0 -27
- package/dist/status.update-BjOH3GlS.js +0 -79
- package/dist/status.update-DLU1qBf0.js +0 -79
- package/dist/subagent-registry-9RLdKxES.js +0 -2760
- package/dist/subagent-registry-Byuex3zp.js +0 -2759
- package/dist/subagent-registry-DOBunBYS.js +0 -14
- package/dist/subsystem-Dowf8fSU.js +0 -860
- package/dist/system-cli-C5oBpzni.js +0 -79
- package/dist/system-cli-DXNKD_Id.js +0 -82
- package/dist/systemd-BSrHDyeU.js +0 -452
- package/dist/systemd-By5xdSB4.js +0 -452
- package/dist/systemd-hints-BtjL_5Rh.js +0 -36
- package/dist/systemd-hints-sJmr6cjb.js +0 -36
- package/dist/systemd-linger-CTmV2Gci.js +0 -75
- package/dist/systemd-linger-CmyqQkeC.js +0 -75
- package/dist/table-BL0lJzsm.js +0 -279
- package/dist/table-DoiRPsn0.js +0 -279
- package/dist/timeout-CswI_K-U.js +0 -232
- package/dist/tokens-C-X7wDKj.js +0 -14
- package/dist/tokens-DkvqA72p.js +0 -14
- package/dist/trash-BJLK1vMn.js +0 -23
- package/dist/trash-_x5UZ94k.js +0 -23
- package/dist/tui-BHjxDFZC.js +0 -3894
- package/dist/tui-CgOocwN8.js +0 -3894
- package/dist/tui-cli-5ANH8dE5.js +0 -47
- package/dist/tui-cli-BQ4P-JW_.js +0 -50
- package/dist/update-LFgxHHPd.js +0 -317
- package/dist/update-TxptCqk7.js +0 -317
- package/dist/update-check-CWc7YXmc.js +0 -400
- package/dist/update-check-IhlWaui6.js +0 -400
- package/dist/update-cli-PtXU62w7.js +0 -1105
- package/dist/update-cli-Va0EtETG.js +0 -1105
- package/dist/update-runner-BLeKFkiB.js +0 -894
- package/dist/update-runner-Iuzpc-_y.js +0 -894
- package/dist/usage-ApGvBLVg.js +0 -4516
- package/dist/utils-Bsw__U-F.js +0 -243
- package/dist/web-B6_Ky60G.js +0 -63
- package/dist/web-EZLQEWXY.js +0 -46842
- package/dist/web-pec8YJUX.js +0 -2203
- package/dist/webhooks-cli-BYQKTHTp.js +0 -319
- package/dist/webhooks-cli-C2_xtsUQ.js +0 -316
- package/dist/whatsapp-actions-C72VCq8f.js +0 -49
- package/dist/whatsapp-actions-Ck9Uv0Nw.js +0 -45
- package/dist/whatsapp-actions-D0reTj2k.js +0 -53
- package/dist/widearea-dns-B6ocX23x.js +0 -127
- package/dist/widearea-dns-NsEUNYwz.js +0 -127
- package/dist/workspace-Dcfoy5JJ.js +0 -649
- package/dist/ws-log-N8R5MvGE.js +0 -267
- package/dist/ws-log-gwFxPxj5.js +0 -267
- /package/dist/{auto-update-CUeF99gI.js → auto-update-CpF0fycd.js} +0 -0
- /package/dist/{auto-update-cgkp9ZTJ.js → auto-update-DNWdO7uF.js} +0 -0
- /package/dist/{brew-CVZkr0GU.js → brew-nqf_MiE4.js} +0 -0
- /package/dist/{budget-DxYQSekw.js → budget-CPedI-qW.js} +0 -0
- /package/dist/{budget-BWBp8Res.js → budget-CRpvqDRX.js} +0 -0
- /package/dist/{cli-utils-DtAxdCte.js → cli-utils-C1YHVD4o.js} +0 -0
- /package/dist/{command-options-CSbuuqHr.js → command-options-BbponVnw.js} +0 -0
- /package/dist/{command-options-Cp1tf96a.js → command-options-s0gnvXnS.js} +0 -0
- /package/dist/{constants-O8yBqCBv.js → constants-Dhb6zSIV.js} +0 -0
- /package/dist/{dangerous-tools-5ObDWy1N.js → dangerous-tools-DGTtJ_JR.js} +0 -0
- /package/dist/{dangerous-tools-Jwr7jqNw.js → dangerous-tools-DxrfTOfT.js} +0 -0
- /package/dist/{delivery-queue-B6IHz4Ry.js → delivery-queue-Bxm0nzw7.js} +0 -0
- /package/dist/{display-BDOsXu8F.js → display-Jy3UdGzA.js} +0 -0
- /package/dist/{errors-CHow2wtt.js → errors-CKaCqKga.js} +0 -0
- /package/dist/{exec-BizYYQgP.js → exec-DDmuVVNq.js} +0 -0
- /package/dist/{format-Mq6iU0_5.js → format-ByEjgyTF.js} +0 -0
- /package/dist/{format-duration-DhWzz_5b.js → format-duration-Aaj5tjJd.js} +0 -0
- /package/dist/{format-relative-C6kUHuOj.js → format-relative-79_Y1n2Y.js} +0 -0
- /package/dist/{help-format-DUBI91Ti.js → help-format-BMKzarov.js} +0 -0
- /package/dist/{helpers-eJFa4K6r.js → helpers-DpEB9Mh0.js} +0 -0
- /package/dist/{helpers-DLgbkcEn.js → helpers-FMld9sBT.js} +0 -0
- /package/dist/{input-provenance-DJBdpeKk.js → input-provenance-Cy_KnBlP.js} +0 -0
- /package/dist/{is-main-Dt9DTcH1.js → is-main-yjaVwMtJ.js} +0 -0
- /package/dist/{loader-l2OBdJ8x.js → loader-Br7Vr0zn.js} +0 -0
- /package/dist/{loader-BoYxRfcW.js → loader-CkmOrXcC.js} +0 -0
- /package/dist/{logging-BdnOSVPD.js → logging-CY-Q5cwf.js} +0 -0
- /package/dist/{message-channel-w4F2b2F6.js → message-channel-dua8OOGJ.js} +0 -0
- /package/dist/{mime-B1ZoR53M.js → mime-CBg4KybI.js} +0 -0
- /package/dist/{model-param-b-DPwyNGn8.js → model-param-b-DW9f0NN8.js} +0 -0
- /package/dist/{node-match-8XZnaid6.js → node-match-BV8bTBd4.js} +0 -0
- /package/dist/{normalize-GDK8JTNW.js → normalize-_lmlBOW9.js} +0 -0
- /package/dist/{openclaw-root-C85WMnVV.js → openclaw-root-JPvmPTf7.js} +0 -0
- /package/dist/{outbound-send-deps-ANnAhImn.js → outbound-send-deps-BfUvuWGa.js} +0 -0
- /package/dist/{parse-6-2MDhdT.js → parse-CZRwKocn.js} +0 -0
- /package/dist/{parse-log-line-Bqh1SSzC.js → parse-log-line-CvrZEK6A.js} +0 -0
- /package/dist/{parse-log-line-DUZCjXbl.js → parse-log-line-mLdat0AH.js} +0 -0
- /package/dist/{parse-port-BKB9Exlg.js → parse-port-BSOOdo7I.js} +0 -0
- /package/dist/{parse-port-DrfvwwiL.js → parse-port-Y0NK62x1.js} +0 -0
- /package/dist/{parse-timeout-Di_tcEmi.js → parse-timeout-DVPQ3n9j.js} +0 -0
- /package/dist/{paths-DcVEkYX5.js → paths-DHjlJ6cn.js} +0 -0
- /package/dist/{pi-model-discovery-DsRqYJLy.js → pi-model-discovery-DzEIEgHL.js} +0 -0
- /package/dist/{plugins-CDJw924T.js → plugins-D6PBOdkn.js} +0 -0
- /package/dist/{program-context-Bvn8046-.js → program-context-Q1hkT73c.js} +0 -0
- /package/dist/{progress-CbZ2D53A.js → progress-C9Ha1NJh.js} +0 -0
- /package/dist/{prompt-style-DKy6qQxR.js → prompt-style-DQi8j03a.js} +0 -0
- /package/dist/{prompts-BI__va99.js → prompts-BEHxUC3w.js} +0 -0
- /package/dist/{prompts-_dDWkCAz.js → prompts-CSOhuiqe.js} +0 -0
- /package/dist/{queue-D_u34pbL.js → queue-BJGo7kAB.js} +0 -0
- /package/dist/{queue-PG591iID.js → queue-DYgUbdoq.js} +0 -0
- /package/dist/{redact-ClVwO7Nn.js → redact-CyKvdFrg.js} +0 -0
- /package/dist/{registry-Bs_DJK9E.js → registry-C5MAYD4V.js} +0 -0
- /package/dist/{registry-D_zlP1U-.js → registry-CRrXXVs0.js} +0 -0
- /package/dist/{requirements-BzZxj2Wu.js → requirements-CGkxTCu4.js} +0 -0
- /package/dist/{requirements-DIW1svgA.js → requirements-CIDaOcbO.js} +0 -0
- /package/dist/{runtime-guard-DeOXA_86.js → runtime-guard-nL3Lp8T-.js} +0 -0
- /package/dist/{secret-equal-Dghy3xsA.js → secret-equal-DJpmLXlG.js} +0 -0
- /package/dist/{send-BhAfdGII.js → send-CTcxgDDU.js} +0 -0
- /package/dist/{send-ga9udK1_.js → send-DPezUR3-.js} +0 -0
- /package/dist/{send-C2t9xpXI.js → send-DZQTaG7-.js} +0 -0
- /package/dist/{send-DigO-i9j.js → send-VDff2gra.js} +0 -0
- /package/dist/{send-Dz2BDHll.js → send-bgQNV8d1.js} +0 -0
- /package/dist/{session-key-BGiG_JcT.js → session-key-CQT-NR6w.js} +0 -0
- /package/dist/{shell-argv-CAq1mLa2.js → shell-argv-n9IueeJQ.js} +0 -0
- /package/dist/{skill-scanner-Coo4QoCd.js → skill-scanner-o6NgVMD9.js} +0 -0
- /package/dist/{status-CMnlcBVc.js → status-C53kTIXF.js} +0 -0
- /package/dist/{status-tDZPwewW.js → status-CZDDA_Sy.js} +0 -0
- /package/dist/{system-run-command-X9lDJIy0.js → system-run-command-BCjUffN9.js} +0 -0
- /package/dist/{system-run-command-DGk7dwQP.js → system-run-command-CqAqKL9K.js} +0 -0
- /package/dist/{tailnet-CuiNECdL.js → tailnet-Ciwjv243.js} +0 -0
- /package/dist/{templates-CeYJjVzw.js → templates-37RKpACb.js} +0 -0
- /package/dist/{templates-I3Z0xplD.js → templates-DPalk30o.js} +0 -0
- /package/dist/{thinking-BXEswx1X.js → thinking-2hxwmvTl.js} +0 -0
- /package/dist/{transcript-events-C1hdue6u.js → transcript-events-Bp7fGnwv.js} +0 -0
- /package/dist/{transcript-tools-DuyYOkUq.js → transcript-tools-D4Lbxlka.js} +0 -0
- /package/dist/{usage-format-BAirWUSO.js → usage-format-6Uar63S0.js} +0 -0
- /package/dist/{utils-C9sj30YY.js → utils-DT8uXjFS.js} +0 -0
- /package/dist/{wsl-CqyuRvtM.js → wsl-CrPvx2kZ.js} +0 -0
- /package/dist/{wsl-ymJYvc9Q.js → wsl-UvJ5dHah.js} +0 -0
package/dist/client-CC94YZrT.js
DELETED
|
@@ -1,1692 +0,0 @@
|
|
|
1
|
-
import { g as resolveStateDir } from "./paths-C6VCWKo3.js";
|
|
2
|
-
import { a as logDebug, o as logError } from "./exec-Bv3pyjeM.js";
|
|
3
|
-
import { t as rawDataToString } from "./ws-COSqlEPx.js";
|
|
4
|
-
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES, p as GATEWAY_CLIENT_IDS } from "./message-channel-dSTVVCyX.js";
|
|
5
|
-
import { t as INPUT_PROVENANCE_KIND_VALUES } from "./input-provenance-iu26y0GH.js";
|
|
6
|
-
import fs from "node:fs";
|
|
7
|
-
import path from "node:path";
|
|
8
|
-
import crypto, { randomUUID } from "node:crypto";
|
|
9
|
-
import AjvPkg from "ajv";
|
|
10
|
-
import { WebSocket as WebSocket$1 } from "ws";
|
|
11
|
-
import { Type } from "@sinclair/typebox";
|
|
12
|
-
|
|
13
|
-
//#region src/infra/device-identity.ts
|
|
14
|
-
function resolveDefaultIdentityPath() {
|
|
15
|
-
return path.join(resolveStateDir(), "identity", "device.json");
|
|
16
|
-
}
|
|
17
|
-
function ensureDir(filePath) {
|
|
18
|
-
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
19
|
-
}
|
|
20
|
-
const ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
|
|
21
|
-
function base64UrlEncode(buf) {
|
|
22
|
-
return buf.toString("base64").replaceAll("+", "-").replaceAll("/", "_").replace(/=+$/g, "");
|
|
23
|
-
}
|
|
24
|
-
function base64UrlDecode(input) {
|
|
25
|
-
const normalized = input.replaceAll("-", "+").replaceAll("_", "/");
|
|
26
|
-
const padded = normalized + "=".repeat((4 - normalized.length % 4) % 4);
|
|
27
|
-
return Buffer.from(padded, "base64");
|
|
28
|
-
}
|
|
29
|
-
function derivePublicKeyRaw(publicKeyPem) {
|
|
30
|
-
const spki = crypto.createPublicKey(publicKeyPem).export({
|
|
31
|
-
type: "spki",
|
|
32
|
-
format: "der"
|
|
33
|
-
});
|
|
34
|
-
if (spki.length === ED25519_SPKI_PREFIX.length + 32 && spki.subarray(0, ED25519_SPKI_PREFIX.length).equals(ED25519_SPKI_PREFIX)) return spki.subarray(ED25519_SPKI_PREFIX.length);
|
|
35
|
-
return spki;
|
|
36
|
-
}
|
|
37
|
-
function fingerprintPublicKey(publicKeyPem) {
|
|
38
|
-
const raw = derivePublicKeyRaw(publicKeyPem);
|
|
39
|
-
return crypto.createHash("sha256").update(raw).digest("hex");
|
|
40
|
-
}
|
|
41
|
-
function generateIdentity() {
|
|
42
|
-
const { publicKey, privateKey } = crypto.generateKeyPairSync("ed25519");
|
|
43
|
-
const publicKeyPem = publicKey.export({
|
|
44
|
-
type: "spki",
|
|
45
|
-
format: "pem"
|
|
46
|
-
}).toString();
|
|
47
|
-
const privateKeyPem = privateKey.export({
|
|
48
|
-
type: "pkcs8",
|
|
49
|
-
format: "pem"
|
|
50
|
-
}).toString();
|
|
51
|
-
return {
|
|
52
|
-
deviceId: fingerprintPublicKey(publicKeyPem),
|
|
53
|
-
publicKeyPem,
|
|
54
|
-
privateKeyPem
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
|
|
58
|
-
try {
|
|
59
|
-
if (fs.existsSync(filePath)) {
|
|
60
|
-
const raw = fs.readFileSync(filePath, "utf8");
|
|
61
|
-
const parsed = JSON.parse(raw);
|
|
62
|
-
if (parsed?.version === 1 && typeof parsed.deviceId === "string" && typeof parsed.publicKeyPem === "string" && typeof parsed.privateKeyPem === "string") {
|
|
63
|
-
const derivedId = fingerprintPublicKey(parsed.publicKeyPem);
|
|
64
|
-
if (derivedId && derivedId !== parsed.deviceId) {
|
|
65
|
-
const updated = {
|
|
66
|
-
...parsed,
|
|
67
|
-
deviceId: derivedId
|
|
68
|
-
};
|
|
69
|
-
fs.writeFileSync(filePath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 384 });
|
|
70
|
-
try {
|
|
71
|
-
fs.chmodSync(filePath, 384);
|
|
72
|
-
} catch {}
|
|
73
|
-
return {
|
|
74
|
-
deviceId: derivedId,
|
|
75
|
-
publicKeyPem: parsed.publicKeyPem,
|
|
76
|
-
privateKeyPem: parsed.privateKeyPem
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
return {
|
|
80
|
-
deviceId: parsed.deviceId,
|
|
81
|
-
publicKeyPem: parsed.publicKeyPem,
|
|
82
|
-
privateKeyPem: parsed.privateKeyPem
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
} catch {}
|
|
87
|
-
const identity = generateIdentity();
|
|
88
|
-
ensureDir(filePath);
|
|
89
|
-
const stored = {
|
|
90
|
-
version: 1,
|
|
91
|
-
deviceId: identity.deviceId,
|
|
92
|
-
publicKeyPem: identity.publicKeyPem,
|
|
93
|
-
privateKeyPem: identity.privateKeyPem,
|
|
94
|
-
createdAtMs: Date.now()
|
|
95
|
-
};
|
|
96
|
-
fs.writeFileSync(filePath, `${JSON.stringify(stored, null, 2)}\n`, { mode: 384 });
|
|
97
|
-
try {
|
|
98
|
-
fs.chmodSync(filePath, 384);
|
|
99
|
-
} catch {}
|
|
100
|
-
return identity;
|
|
101
|
-
}
|
|
102
|
-
function signDevicePayload(privateKeyPem, payload) {
|
|
103
|
-
const key = crypto.createPrivateKey(privateKeyPem);
|
|
104
|
-
return base64UrlEncode(crypto.sign(null, Buffer.from(payload, "utf8"), key));
|
|
105
|
-
}
|
|
106
|
-
function normalizeDevicePublicKeyBase64Url(publicKey) {
|
|
107
|
-
try {
|
|
108
|
-
if (publicKey.includes("BEGIN")) return base64UrlEncode(derivePublicKeyRaw(publicKey));
|
|
109
|
-
return base64UrlEncode(base64UrlDecode(publicKey));
|
|
110
|
-
} catch {
|
|
111
|
-
return null;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
function deriveDeviceIdFromPublicKey(publicKey) {
|
|
115
|
-
try {
|
|
116
|
-
const raw = publicKey.includes("BEGIN") ? derivePublicKeyRaw(publicKey) : base64UrlDecode(publicKey);
|
|
117
|
-
return crypto.createHash("sha256").update(raw).digest("hex");
|
|
118
|
-
} catch {
|
|
119
|
-
return null;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
function publicKeyRawBase64UrlFromPem(publicKeyPem) {
|
|
123
|
-
return base64UrlEncode(derivePublicKeyRaw(publicKeyPem));
|
|
124
|
-
}
|
|
125
|
-
function verifyDeviceSignature(publicKey, payload, signatureBase64Url) {
|
|
126
|
-
try {
|
|
127
|
-
const key = publicKey.includes("BEGIN") ? crypto.createPublicKey(publicKey) : crypto.createPublicKey({
|
|
128
|
-
key: Buffer.concat([ED25519_SPKI_PREFIX, base64UrlDecode(publicKey)]),
|
|
129
|
-
type: "spki",
|
|
130
|
-
format: "der"
|
|
131
|
-
});
|
|
132
|
-
const sig = (() => {
|
|
133
|
-
try {
|
|
134
|
-
return base64UrlDecode(signatureBase64Url);
|
|
135
|
-
} catch {
|
|
136
|
-
return Buffer.from(signatureBase64Url, "base64");
|
|
137
|
-
}
|
|
138
|
-
})();
|
|
139
|
-
return crypto.verify(null, Buffer.from(payload, "utf8"), key, sig);
|
|
140
|
-
} catch {
|
|
141
|
-
return false;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
//#endregion
|
|
146
|
-
//#region src/infra/tls/fingerprint.ts
|
|
147
|
-
function normalizeFingerprint(input) {
|
|
148
|
-
return input.trim().replace(/^sha-?256\s*:?\s*/i, "").replace(/[^a-fA-F0-9]/g, "").toLowerCase();
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
//#endregion
|
|
152
|
-
//#region src/shared/device-auth.ts
|
|
153
|
-
function normalizeDeviceAuthRole(role) {
|
|
154
|
-
return role.trim();
|
|
155
|
-
}
|
|
156
|
-
function normalizeDeviceAuthScopes(scopes) {
|
|
157
|
-
if (!Array.isArray(scopes)) return [];
|
|
158
|
-
const out = /* @__PURE__ */ new Set();
|
|
159
|
-
for (const scope of scopes) {
|
|
160
|
-
const trimmed = scope.trim();
|
|
161
|
-
if (trimmed) out.add(trimmed);
|
|
162
|
-
}
|
|
163
|
-
return [...out].toSorted();
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
//#endregion
|
|
167
|
-
//#region src/infra/device-auth-store.ts
|
|
168
|
-
const DEVICE_AUTH_FILE = "device-auth.json";
|
|
169
|
-
function resolveDeviceAuthPath(env = process.env) {
|
|
170
|
-
return path.join(resolveStateDir(env), "identity", DEVICE_AUTH_FILE);
|
|
171
|
-
}
|
|
172
|
-
function readStore(filePath) {
|
|
173
|
-
try {
|
|
174
|
-
if (!fs.existsSync(filePath)) return null;
|
|
175
|
-
const raw = fs.readFileSync(filePath, "utf8");
|
|
176
|
-
const parsed = JSON.parse(raw);
|
|
177
|
-
if (parsed?.version !== 1 || typeof parsed.deviceId !== "string") return null;
|
|
178
|
-
if (!parsed.tokens || typeof parsed.tokens !== "object") return null;
|
|
179
|
-
return parsed;
|
|
180
|
-
} catch {
|
|
181
|
-
return null;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
function writeStore(filePath, store) {
|
|
185
|
-
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
186
|
-
fs.writeFileSync(filePath, `${JSON.stringify(store, null, 2)}\n`, { mode: 384 });
|
|
187
|
-
try {
|
|
188
|
-
fs.chmodSync(filePath, 384);
|
|
189
|
-
} catch {}
|
|
190
|
-
}
|
|
191
|
-
function loadDeviceAuthToken(params) {
|
|
192
|
-
const store = readStore(resolveDeviceAuthPath(params.env));
|
|
193
|
-
if (!store) return null;
|
|
194
|
-
if (store.deviceId !== params.deviceId) return null;
|
|
195
|
-
const role = normalizeDeviceAuthRole(params.role);
|
|
196
|
-
const entry = store.tokens[role];
|
|
197
|
-
if (!entry || typeof entry.token !== "string") return null;
|
|
198
|
-
return entry;
|
|
199
|
-
}
|
|
200
|
-
function storeDeviceAuthToken(params) {
|
|
201
|
-
const filePath = resolveDeviceAuthPath(params.env);
|
|
202
|
-
const existing = readStore(filePath);
|
|
203
|
-
const role = normalizeDeviceAuthRole(params.role);
|
|
204
|
-
const next = {
|
|
205
|
-
version: 1,
|
|
206
|
-
deviceId: params.deviceId,
|
|
207
|
-
tokens: existing && existing.deviceId === params.deviceId && existing.tokens ? { ...existing.tokens } : {}
|
|
208
|
-
};
|
|
209
|
-
const entry = {
|
|
210
|
-
token: params.token,
|
|
211
|
-
role,
|
|
212
|
-
scopes: normalizeDeviceAuthScopes(params.scopes),
|
|
213
|
-
updatedAtMs: Date.now()
|
|
214
|
-
};
|
|
215
|
-
next.tokens[role] = entry;
|
|
216
|
-
writeStore(filePath, next);
|
|
217
|
-
return entry;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
//#endregion
|
|
221
|
-
//#region src/gateway/device-auth.ts
|
|
222
|
-
function buildDeviceAuthPayload(params) {
|
|
223
|
-
const version = params.version ?? (params.nonce ? "v2" : "v1");
|
|
224
|
-
const scopes = params.scopes.join(",");
|
|
225
|
-
const token = params.token ?? "";
|
|
226
|
-
const base = [
|
|
227
|
-
version,
|
|
228
|
-
params.deviceId,
|
|
229
|
-
params.clientId,
|
|
230
|
-
params.clientMode,
|
|
231
|
-
params.role,
|
|
232
|
-
scopes,
|
|
233
|
-
String(params.signedAtMs),
|
|
234
|
-
token
|
|
235
|
-
];
|
|
236
|
-
if (version === "v2") base.push(params.nonce ?? "");
|
|
237
|
-
return base.join("|");
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
//#endregion
|
|
241
|
-
//#region src/sessions/session-label.ts
|
|
242
|
-
const SESSION_LABEL_MAX_LENGTH = 64;
|
|
243
|
-
function parseSessionLabel(raw) {
|
|
244
|
-
if (typeof raw !== "string") return {
|
|
245
|
-
ok: false,
|
|
246
|
-
error: "invalid label: must be a string"
|
|
247
|
-
};
|
|
248
|
-
const trimmed = raw.trim();
|
|
249
|
-
if (!trimmed) return {
|
|
250
|
-
ok: false,
|
|
251
|
-
error: "invalid label: empty"
|
|
252
|
-
};
|
|
253
|
-
if (trimmed.length > SESSION_LABEL_MAX_LENGTH) return {
|
|
254
|
-
ok: false,
|
|
255
|
-
error: `invalid label: too long (max ${SESSION_LABEL_MAX_LENGTH})`
|
|
256
|
-
};
|
|
257
|
-
return {
|
|
258
|
-
ok: true,
|
|
259
|
-
label: trimmed
|
|
260
|
-
};
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
//#endregion
|
|
264
|
-
//#region src/gateway/protocol/schema/primitives.ts
|
|
265
|
-
const NonEmptyString = Type.String({ minLength: 1 });
|
|
266
|
-
const SessionLabelString = Type.String({
|
|
267
|
-
minLength: 1,
|
|
268
|
-
maxLength: SESSION_LABEL_MAX_LENGTH
|
|
269
|
-
});
|
|
270
|
-
const GatewayClientIdSchema = Type.Union(Object.values(GATEWAY_CLIENT_IDS).map((value) => Type.Literal(value)));
|
|
271
|
-
const GatewayClientModeSchema = Type.Union(Object.values(GATEWAY_CLIENT_MODES).map((value) => Type.Literal(value)));
|
|
272
|
-
|
|
273
|
-
//#endregion
|
|
274
|
-
//#region src/gateway/protocol/schema/agent.ts
|
|
275
|
-
const AgentEventSchema = Type.Object({
|
|
276
|
-
runId: NonEmptyString,
|
|
277
|
-
seq: Type.Integer({ minimum: 0 }),
|
|
278
|
-
stream: NonEmptyString,
|
|
279
|
-
ts: Type.Integer({ minimum: 0 }),
|
|
280
|
-
data: Type.Record(Type.String(), Type.Unknown())
|
|
281
|
-
}, { additionalProperties: false });
|
|
282
|
-
const SendParamsSchema = Type.Object({
|
|
283
|
-
to: NonEmptyString,
|
|
284
|
-
message: Type.Optional(Type.String()),
|
|
285
|
-
mediaUrl: Type.Optional(Type.String()),
|
|
286
|
-
mediaUrls: Type.Optional(Type.Array(Type.String())),
|
|
287
|
-
gifPlayback: Type.Optional(Type.Boolean()),
|
|
288
|
-
channel: Type.Optional(Type.String()),
|
|
289
|
-
accountId: Type.Optional(Type.String()),
|
|
290
|
-
sessionKey: Type.Optional(Type.String()),
|
|
291
|
-
idempotencyKey: NonEmptyString
|
|
292
|
-
}, { additionalProperties: false });
|
|
293
|
-
const PollParamsSchema = Type.Object({
|
|
294
|
-
to: NonEmptyString,
|
|
295
|
-
question: NonEmptyString,
|
|
296
|
-
options: Type.Array(NonEmptyString, {
|
|
297
|
-
minItems: 2,
|
|
298
|
-
maxItems: 12
|
|
299
|
-
}),
|
|
300
|
-
maxSelections: Type.Optional(Type.Integer({
|
|
301
|
-
minimum: 1,
|
|
302
|
-
maximum: 12
|
|
303
|
-
})),
|
|
304
|
-
durationSeconds: Type.Optional(Type.Integer({
|
|
305
|
-
minimum: 1,
|
|
306
|
-
maximum: 604800
|
|
307
|
-
})),
|
|
308
|
-
durationHours: Type.Optional(Type.Integer({ minimum: 1 })),
|
|
309
|
-
silent: Type.Optional(Type.Boolean()),
|
|
310
|
-
isAnonymous: Type.Optional(Type.Boolean()),
|
|
311
|
-
threadId: Type.Optional(Type.String()),
|
|
312
|
-
channel: Type.Optional(Type.String()),
|
|
313
|
-
accountId: Type.Optional(Type.String()),
|
|
314
|
-
idempotencyKey: NonEmptyString
|
|
315
|
-
}, { additionalProperties: false });
|
|
316
|
-
const AgentParamsSchema = Type.Object({
|
|
317
|
-
message: NonEmptyString,
|
|
318
|
-
agentId: Type.Optional(NonEmptyString),
|
|
319
|
-
to: Type.Optional(Type.String()),
|
|
320
|
-
replyTo: Type.Optional(Type.String()),
|
|
321
|
-
sessionId: Type.Optional(Type.String()),
|
|
322
|
-
sessionKey: Type.Optional(Type.String()),
|
|
323
|
-
thinking: Type.Optional(Type.String()),
|
|
324
|
-
deliver: Type.Optional(Type.Boolean()),
|
|
325
|
-
attachments: Type.Optional(Type.Array(Type.Unknown())),
|
|
326
|
-
channel: Type.Optional(Type.String()),
|
|
327
|
-
replyChannel: Type.Optional(Type.String()),
|
|
328
|
-
accountId: Type.Optional(Type.String()),
|
|
329
|
-
replyAccountId: Type.Optional(Type.String()),
|
|
330
|
-
threadId: Type.Optional(Type.String()),
|
|
331
|
-
groupId: Type.Optional(Type.String()),
|
|
332
|
-
groupChannel: Type.Optional(Type.String()),
|
|
333
|
-
groupSpace: Type.Optional(Type.String()),
|
|
334
|
-
timeout: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
335
|
-
lane: Type.Optional(Type.String()),
|
|
336
|
-
extraSystemPrompt: Type.Optional(Type.String()),
|
|
337
|
-
inputProvenance: Type.Optional(Type.Object({
|
|
338
|
-
kind: Type.String({ enum: [...INPUT_PROVENANCE_KIND_VALUES] }),
|
|
339
|
-
sourceSessionKey: Type.Optional(Type.String()),
|
|
340
|
-
sourceChannel: Type.Optional(Type.String()),
|
|
341
|
-
sourceTool: Type.Optional(Type.String())
|
|
342
|
-
}, { additionalProperties: false })),
|
|
343
|
-
idempotencyKey: NonEmptyString,
|
|
344
|
-
label: Type.Optional(SessionLabelString),
|
|
345
|
-
spawnedBy: Type.Optional(Type.String())
|
|
346
|
-
}, { additionalProperties: false });
|
|
347
|
-
const AgentIdentityParamsSchema = Type.Object({
|
|
348
|
-
agentId: Type.Optional(NonEmptyString),
|
|
349
|
-
sessionKey: Type.Optional(Type.String())
|
|
350
|
-
}, { additionalProperties: false });
|
|
351
|
-
const AgentIdentityResultSchema = Type.Object({
|
|
352
|
-
agentId: NonEmptyString,
|
|
353
|
-
name: Type.Optional(NonEmptyString),
|
|
354
|
-
avatar: Type.Optional(NonEmptyString),
|
|
355
|
-
emoji: Type.Optional(NonEmptyString)
|
|
356
|
-
}, { additionalProperties: false });
|
|
357
|
-
const AgentWaitParamsSchema = Type.Object({
|
|
358
|
-
runId: NonEmptyString,
|
|
359
|
-
timeoutMs: Type.Optional(Type.Integer({ minimum: 0 }))
|
|
360
|
-
}, { additionalProperties: false });
|
|
361
|
-
const WakeParamsSchema = Type.Object({
|
|
362
|
-
mode: Type.Union([Type.Literal("now"), Type.Literal("next-heartbeat")]),
|
|
363
|
-
text: NonEmptyString
|
|
364
|
-
}, { additionalProperties: false });
|
|
365
|
-
|
|
366
|
-
//#endregion
|
|
367
|
-
//#region src/gateway/protocol/schema/agents-models-skills.ts
|
|
368
|
-
const ModelChoiceSchema = Type.Object({
|
|
369
|
-
id: NonEmptyString,
|
|
370
|
-
name: NonEmptyString,
|
|
371
|
-
provider: NonEmptyString,
|
|
372
|
-
contextWindow: Type.Optional(Type.Integer({ minimum: 1 })),
|
|
373
|
-
reasoning: Type.Optional(Type.Boolean())
|
|
374
|
-
}, { additionalProperties: false });
|
|
375
|
-
const AgentSummarySchema = Type.Object({
|
|
376
|
-
id: NonEmptyString,
|
|
377
|
-
name: Type.Optional(NonEmptyString),
|
|
378
|
-
identity: Type.Optional(Type.Object({
|
|
379
|
-
name: Type.Optional(NonEmptyString),
|
|
380
|
-
theme: Type.Optional(NonEmptyString),
|
|
381
|
-
emoji: Type.Optional(NonEmptyString),
|
|
382
|
-
avatar: Type.Optional(NonEmptyString),
|
|
383
|
-
avatarUrl: Type.Optional(NonEmptyString)
|
|
384
|
-
}, { additionalProperties: false }))
|
|
385
|
-
}, { additionalProperties: false });
|
|
386
|
-
const AgentsListParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
387
|
-
const AgentsListResultSchema = Type.Object({
|
|
388
|
-
defaultId: NonEmptyString,
|
|
389
|
-
mainKey: NonEmptyString,
|
|
390
|
-
scope: Type.Union([Type.Literal("per-sender"), Type.Literal("global")]),
|
|
391
|
-
agents: Type.Array(AgentSummarySchema)
|
|
392
|
-
}, { additionalProperties: false });
|
|
393
|
-
const AgentsCreateParamsSchema = Type.Object({
|
|
394
|
-
name: NonEmptyString,
|
|
395
|
-
workspace: NonEmptyString,
|
|
396
|
-
emoji: Type.Optional(Type.String()),
|
|
397
|
-
avatar: Type.Optional(Type.String())
|
|
398
|
-
}, { additionalProperties: false });
|
|
399
|
-
const AgentsCreateResultSchema = Type.Object({
|
|
400
|
-
ok: Type.Literal(true),
|
|
401
|
-
agentId: NonEmptyString,
|
|
402
|
-
name: NonEmptyString,
|
|
403
|
-
workspace: NonEmptyString
|
|
404
|
-
}, { additionalProperties: false });
|
|
405
|
-
const AgentsUpdateParamsSchema = Type.Object({
|
|
406
|
-
agentId: NonEmptyString,
|
|
407
|
-
name: Type.Optional(NonEmptyString),
|
|
408
|
-
workspace: Type.Optional(NonEmptyString),
|
|
409
|
-
model: Type.Optional(NonEmptyString),
|
|
410
|
-
avatar: Type.Optional(Type.String())
|
|
411
|
-
}, { additionalProperties: false });
|
|
412
|
-
const AgentsUpdateResultSchema = Type.Object({
|
|
413
|
-
ok: Type.Literal(true),
|
|
414
|
-
agentId: NonEmptyString
|
|
415
|
-
}, { additionalProperties: false });
|
|
416
|
-
const AgentsDeleteParamsSchema = Type.Object({
|
|
417
|
-
agentId: NonEmptyString,
|
|
418
|
-
deleteFiles: Type.Optional(Type.Boolean())
|
|
419
|
-
}, { additionalProperties: false });
|
|
420
|
-
const AgentsDeleteResultSchema = Type.Object({
|
|
421
|
-
ok: Type.Literal(true),
|
|
422
|
-
agentId: NonEmptyString,
|
|
423
|
-
removedBindings: Type.Integer({ minimum: 0 })
|
|
424
|
-
}, { additionalProperties: false });
|
|
425
|
-
const AgentsFileEntrySchema = Type.Object({
|
|
426
|
-
name: NonEmptyString,
|
|
427
|
-
path: NonEmptyString,
|
|
428
|
-
missing: Type.Boolean(),
|
|
429
|
-
size: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
430
|
-
updatedAtMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
431
|
-
content: Type.Optional(Type.String())
|
|
432
|
-
}, { additionalProperties: false });
|
|
433
|
-
const AgentsFilesListParamsSchema = Type.Object({ agentId: NonEmptyString }, { additionalProperties: false });
|
|
434
|
-
const AgentsFilesListResultSchema = Type.Object({
|
|
435
|
-
agentId: NonEmptyString,
|
|
436
|
-
workspace: NonEmptyString,
|
|
437
|
-
files: Type.Array(AgentsFileEntrySchema)
|
|
438
|
-
}, { additionalProperties: false });
|
|
439
|
-
const AgentsFilesGetParamsSchema = Type.Object({
|
|
440
|
-
agentId: NonEmptyString,
|
|
441
|
-
name: NonEmptyString
|
|
442
|
-
}, { additionalProperties: false });
|
|
443
|
-
const AgentsFilesGetResultSchema = Type.Object({
|
|
444
|
-
agentId: NonEmptyString,
|
|
445
|
-
workspace: NonEmptyString,
|
|
446
|
-
file: AgentsFileEntrySchema
|
|
447
|
-
}, { additionalProperties: false });
|
|
448
|
-
const AgentsFilesSetParamsSchema = Type.Object({
|
|
449
|
-
agentId: NonEmptyString,
|
|
450
|
-
name: NonEmptyString,
|
|
451
|
-
content: Type.String()
|
|
452
|
-
}, { additionalProperties: false });
|
|
453
|
-
const AgentsFilesSetResultSchema = Type.Object({
|
|
454
|
-
ok: Type.Literal(true),
|
|
455
|
-
agentId: NonEmptyString,
|
|
456
|
-
workspace: NonEmptyString,
|
|
457
|
-
file: AgentsFileEntrySchema
|
|
458
|
-
}, { additionalProperties: false });
|
|
459
|
-
const ModelsListParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
460
|
-
const ModelsListResultSchema = Type.Object({ models: Type.Array(ModelChoiceSchema) }, { additionalProperties: false });
|
|
461
|
-
const SkillsStatusParamsSchema = Type.Object({ agentId: Type.Optional(NonEmptyString) }, { additionalProperties: false });
|
|
462
|
-
const SkillsBinsParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
463
|
-
const SkillsBinsResultSchema = Type.Object({ bins: Type.Array(NonEmptyString) }, { additionalProperties: false });
|
|
464
|
-
const SkillsInstallParamsSchema = Type.Object({
|
|
465
|
-
name: NonEmptyString,
|
|
466
|
-
installId: NonEmptyString,
|
|
467
|
-
timeoutMs: Type.Optional(Type.Integer({ minimum: 1e3 }))
|
|
468
|
-
}, { additionalProperties: false });
|
|
469
|
-
const SkillsUpdateParamsSchema = Type.Object({
|
|
470
|
-
skillKey: NonEmptyString,
|
|
471
|
-
enabled: Type.Optional(Type.Boolean()),
|
|
472
|
-
apiKey: Type.Optional(Type.String()),
|
|
473
|
-
env: Type.Optional(Type.Record(NonEmptyString, Type.String()))
|
|
474
|
-
}, { additionalProperties: false });
|
|
475
|
-
|
|
476
|
-
//#endregion
|
|
477
|
-
//#region src/gateway/protocol/schema/channels.ts
|
|
478
|
-
const TalkModeParamsSchema = Type.Object({
|
|
479
|
-
enabled: Type.Boolean(),
|
|
480
|
-
phase: Type.Optional(Type.String())
|
|
481
|
-
}, { additionalProperties: false });
|
|
482
|
-
const TalkConfigParamsSchema = Type.Object({ includeSecrets: Type.Optional(Type.Boolean()) }, { additionalProperties: false });
|
|
483
|
-
const TalkConfigResultSchema = Type.Object({ config: Type.Object({
|
|
484
|
-
talk: Type.Optional(Type.Object({
|
|
485
|
-
voiceId: Type.Optional(Type.String()),
|
|
486
|
-
voiceAliases: Type.Optional(Type.Record(Type.String(), Type.String())),
|
|
487
|
-
modelId: Type.Optional(Type.String()),
|
|
488
|
-
outputFormat: Type.Optional(Type.String()),
|
|
489
|
-
apiKey: Type.Optional(Type.String()),
|
|
490
|
-
interruptOnSpeech: Type.Optional(Type.Boolean())
|
|
491
|
-
}, { additionalProperties: false })),
|
|
492
|
-
session: Type.Optional(Type.Object({ mainKey: Type.Optional(Type.String()) }, { additionalProperties: false })),
|
|
493
|
-
ui: Type.Optional(Type.Object({ seamColor: Type.Optional(Type.String()) }, { additionalProperties: false }))
|
|
494
|
-
}, { additionalProperties: false }) }, { additionalProperties: false });
|
|
495
|
-
const ChannelsStatusParamsSchema = Type.Object({
|
|
496
|
-
probe: Type.Optional(Type.Boolean()),
|
|
497
|
-
timeoutMs: Type.Optional(Type.Integer({ minimum: 0 }))
|
|
498
|
-
}, { additionalProperties: false });
|
|
499
|
-
const ChannelAccountSnapshotSchema = Type.Object({
|
|
500
|
-
accountId: NonEmptyString,
|
|
501
|
-
name: Type.Optional(Type.String()),
|
|
502
|
-
enabled: Type.Optional(Type.Boolean()),
|
|
503
|
-
configured: Type.Optional(Type.Boolean()),
|
|
504
|
-
linked: Type.Optional(Type.Boolean()),
|
|
505
|
-
running: Type.Optional(Type.Boolean()),
|
|
506
|
-
connected: Type.Optional(Type.Boolean()),
|
|
507
|
-
reconnectAttempts: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
508
|
-
lastConnectedAt: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
509
|
-
lastError: Type.Optional(Type.String()),
|
|
510
|
-
lastStartAt: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
511
|
-
lastStopAt: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
512
|
-
lastInboundAt: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
513
|
-
lastOutboundAt: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
514
|
-
lastProbeAt: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
515
|
-
mode: Type.Optional(Type.String()),
|
|
516
|
-
dmPolicy: Type.Optional(Type.String()),
|
|
517
|
-
allowFrom: Type.Optional(Type.Array(Type.String())),
|
|
518
|
-
tokenSource: Type.Optional(Type.String()),
|
|
519
|
-
botTokenSource: Type.Optional(Type.String()),
|
|
520
|
-
appTokenSource: Type.Optional(Type.String()),
|
|
521
|
-
baseUrl: Type.Optional(Type.String()),
|
|
522
|
-
allowUnmentionedGroups: Type.Optional(Type.Boolean()),
|
|
523
|
-
cliPath: Type.Optional(Type.Union([Type.String(), Type.Null()])),
|
|
524
|
-
dbPath: Type.Optional(Type.Union([Type.String(), Type.Null()])),
|
|
525
|
-
port: Type.Optional(Type.Union([Type.Integer({ minimum: 0 }), Type.Null()])),
|
|
526
|
-
probe: Type.Optional(Type.Unknown()),
|
|
527
|
-
audit: Type.Optional(Type.Unknown()),
|
|
528
|
-
application: Type.Optional(Type.Unknown())
|
|
529
|
-
}, { additionalProperties: true });
|
|
530
|
-
const ChannelUiMetaSchema = Type.Object({
|
|
531
|
-
id: NonEmptyString,
|
|
532
|
-
label: NonEmptyString,
|
|
533
|
-
detailLabel: NonEmptyString,
|
|
534
|
-
systemImage: Type.Optional(Type.String())
|
|
535
|
-
}, { additionalProperties: false });
|
|
536
|
-
const ChannelsStatusResultSchema = Type.Object({
|
|
537
|
-
ts: Type.Integer({ minimum: 0 }),
|
|
538
|
-
channelOrder: Type.Array(NonEmptyString),
|
|
539
|
-
channelLabels: Type.Record(NonEmptyString, NonEmptyString),
|
|
540
|
-
channelDetailLabels: Type.Optional(Type.Record(NonEmptyString, NonEmptyString)),
|
|
541
|
-
channelSystemImages: Type.Optional(Type.Record(NonEmptyString, NonEmptyString)),
|
|
542
|
-
channelMeta: Type.Optional(Type.Array(ChannelUiMetaSchema)),
|
|
543
|
-
channels: Type.Record(NonEmptyString, Type.Unknown()),
|
|
544
|
-
channelAccounts: Type.Record(NonEmptyString, Type.Array(ChannelAccountSnapshotSchema)),
|
|
545
|
-
channelDefaultAccountId: Type.Record(NonEmptyString, NonEmptyString)
|
|
546
|
-
}, { additionalProperties: false });
|
|
547
|
-
const ChannelsLogoutParamsSchema = Type.Object({
|
|
548
|
-
channel: NonEmptyString,
|
|
549
|
-
accountId: Type.Optional(Type.String())
|
|
550
|
-
}, { additionalProperties: false });
|
|
551
|
-
const WebLoginStartParamsSchema = Type.Object({
|
|
552
|
-
force: Type.Optional(Type.Boolean()),
|
|
553
|
-
timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
554
|
-
verbose: Type.Optional(Type.Boolean()),
|
|
555
|
-
accountId: Type.Optional(Type.String())
|
|
556
|
-
}, { additionalProperties: false });
|
|
557
|
-
const WebLoginWaitParamsSchema = Type.Object({
|
|
558
|
-
timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
559
|
-
accountId: Type.Optional(Type.String())
|
|
560
|
-
}, { additionalProperties: false });
|
|
561
|
-
|
|
562
|
-
//#endregion
|
|
563
|
-
//#region src/gateway/protocol/schema/config.ts
|
|
564
|
-
const ConfigGetParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
565
|
-
const ConfigSetParamsSchema = Type.Object({
|
|
566
|
-
raw: NonEmptyString,
|
|
567
|
-
baseHash: Type.Optional(NonEmptyString)
|
|
568
|
-
}, { additionalProperties: false });
|
|
569
|
-
const ConfigApplyParamsSchema = Type.Object({
|
|
570
|
-
raw: NonEmptyString,
|
|
571
|
-
baseHash: Type.Optional(NonEmptyString),
|
|
572
|
-
sessionKey: Type.Optional(Type.String()),
|
|
573
|
-
note: Type.Optional(Type.String()),
|
|
574
|
-
restartDelayMs: Type.Optional(Type.Integer({ minimum: 0 }))
|
|
575
|
-
}, { additionalProperties: false });
|
|
576
|
-
const ConfigPatchParamsSchema = Type.Object({
|
|
577
|
-
raw: NonEmptyString,
|
|
578
|
-
baseHash: Type.Optional(NonEmptyString),
|
|
579
|
-
sessionKey: Type.Optional(Type.String()),
|
|
580
|
-
note: Type.Optional(Type.String()),
|
|
581
|
-
restartDelayMs: Type.Optional(Type.Integer({ minimum: 0 }))
|
|
582
|
-
}, { additionalProperties: false });
|
|
583
|
-
const ConfigSchemaParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
584
|
-
const UpdateRunParamsSchema = Type.Object({
|
|
585
|
-
sessionKey: Type.Optional(Type.String()),
|
|
586
|
-
note: Type.Optional(Type.String()),
|
|
587
|
-
restartDelayMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
588
|
-
timeoutMs: Type.Optional(Type.Integer({ minimum: 1 }))
|
|
589
|
-
}, { additionalProperties: false });
|
|
590
|
-
const ConfigUiHintSchema = Type.Object({
|
|
591
|
-
label: Type.Optional(Type.String()),
|
|
592
|
-
help: Type.Optional(Type.String()),
|
|
593
|
-
group: Type.Optional(Type.String()),
|
|
594
|
-
order: Type.Optional(Type.Integer()),
|
|
595
|
-
advanced: Type.Optional(Type.Boolean()),
|
|
596
|
-
sensitive: Type.Optional(Type.Boolean()),
|
|
597
|
-
placeholder: Type.Optional(Type.String()),
|
|
598
|
-
itemTemplate: Type.Optional(Type.Unknown())
|
|
599
|
-
}, { additionalProperties: false });
|
|
600
|
-
const ConfigSchemaResponseSchema = Type.Object({
|
|
601
|
-
schema: Type.Unknown(),
|
|
602
|
-
uiHints: Type.Record(Type.String(), ConfigUiHintSchema),
|
|
603
|
-
version: NonEmptyString,
|
|
604
|
-
generatedAt: NonEmptyString
|
|
605
|
-
}, { additionalProperties: false });
|
|
606
|
-
|
|
607
|
-
//#endregion
|
|
608
|
-
//#region src/gateway/protocol/schema/cron.ts
|
|
609
|
-
const CronScheduleSchema = Type.Union([
|
|
610
|
-
Type.Object({
|
|
611
|
-
kind: Type.Literal("at"),
|
|
612
|
-
at: NonEmptyString
|
|
613
|
-
}, { additionalProperties: false }),
|
|
614
|
-
Type.Object({
|
|
615
|
-
kind: Type.Literal("every"),
|
|
616
|
-
everyMs: Type.Integer({ minimum: 1 }),
|
|
617
|
-
anchorMs: Type.Optional(Type.Integer({ minimum: 0 }))
|
|
618
|
-
}, { additionalProperties: false }),
|
|
619
|
-
Type.Object({
|
|
620
|
-
kind: Type.Literal("cron"),
|
|
621
|
-
expr: NonEmptyString,
|
|
622
|
-
tz: Type.Optional(Type.String())
|
|
623
|
-
}, { additionalProperties: false })
|
|
624
|
-
]);
|
|
625
|
-
const CronPayloadSchema = Type.Union([Type.Object({
|
|
626
|
-
kind: Type.Literal("systemEvent"),
|
|
627
|
-
text: NonEmptyString
|
|
628
|
-
}, { additionalProperties: false }), Type.Object({
|
|
629
|
-
kind: Type.Literal("agentTurn"),
|
|
630
|
-
message: NonEmptyString,
|
|
631
|
-
model: Type.Optional(Type.String()),
|
|
632
|
-
thinking: Type.Optional(Type.String()),
|
|
633
|
-
timeoutSeconds: Type.Optional(Type.Integer({ minimum: 1 })),
|
|
634
|
-
allowUnsafeExternalContent: Type.Optional(Type.Boolean()),
|
|
635
|
-
deliver: Type.Optional(Type.Boolean()),
|
|
636
|
-
channel: Type.Optional(Type.String()),
|
|
637
|
-
to: Type.Optional(Type.String()),
|
|
638
|
-
bestEffortDeliver: Type.Optional(Type.Boolean())
|
|
639
|
-
}, { additionalProperties: false })]);
|
|
640
|
-
const CronPayloadPatchSchema = Type.Union([Type.Object({
|
|
641
|
-
kind: Type.Literal("systemEvent"),
|
|
642
|
-
text: Type.Optional(NonEmptyString)
|
|
643
|
-
}, { additionalProperties: false }), Type.Object({
|
|
644
|
-
kind: Type.Literal("agentTurn"),
|
|
645
|
-
message: Type.Optional(NonEmptyString),
|
|
646
|
-
model: Type.Optional(Type.String()),
|
|
647
|
-
thinking: Type.Optional(Type.String()),
|
|
648
|
-
timeoutSeconds: Type.Optional(Type.Integer({ minimum: 1 })),
|
|
649
|
-
allowUnsafeExternalContent: Type.Optional(Type.Boolean()),
|
|
650
|
-
deliver: Type.Optional(Type.Boolean()),
|
|
651
|
-
channel: Type.Optional(Type.String()),
|
|
652
|
-
to: Type.Optional(Type.String()),
|
|
653
|
-
bestEffortDeliver: Type.Optional(Type.Boolean())
|
|
654
|
-
}, { additionalProperties: false })]);
|
|
655
|
-
const CronDeliverySchema = Type.Object({
|
|
656
|
-
mode: Type.Union([Type.Literal("none"), Type.Literal("announce")]),
|
|
657
|
-
channel: Type.Optional(Type.Union([Type.Literal("last"), NonEmptyString])),
|
|
658
|
-
to: Type.Optional(Type.String()),
|
|
659
|
-
bestEffort: Type.Optional(Type.Boolean())
|
|
660
|
-
}, { additionalProperties: false });
|
|
661
|
-
const CronDeliveryPatchSchema = Type.Object({
|
|
662
|
-
mode: Type.Optional(Type.Union([Type.Literal("none"), Type.Literal("announce")])),
|
|
663
|
-
channel: Type.Optional(Type.Union([Type.Literal("last"), NonEmptyString])),
|
|
664
|
-
to: Type.Optional(Type.String()),
|
|
665
|
-
bestEffort: Type.Optional(Type.Boolean())
|
|
666
|
-
}, { additionalProperties: false });
|
|
667
|
-
const CronJobStateSchema = Type.Object({
|
|
668
|
-
nextRunAtMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
669
|
-
runningAtMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
670
|
-
lastRunAtMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
671
|
-
lastStatus: Type.Optional(Type.Union([
|
|
672
|
-
Type.Literal("ok"),
|
|
673
|
-
Type.Literal("error"),
|
|
674
|
-
Type.Literal("skipped")
|
|
675
|
-
])),
|
|
676
|
-
lastError: Type.Optional(Type.String()),
|
|
677
|
-
lastDurationMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
678
|
-
consecutiveErrors: Type.Optional(Type.Integer({ minimum: 0 }))
|
|
679
|
-
}, { additionalProperties: false });
|
|
680
|
-
const CronJobSchema = Type.Object({
|
|
681
|
-
id: NonEmptyString,
|
|
682
|
-
agentId: Type.Optional(NonEmptyString),
|
|
683
|
-
name: NonEmptyString,
|
|
684
|
-
description: Type.Optional(Type.String()),
|
|
685
|
-
enabled: Type.Boolean(),
|
|
686
|
-
deleteAfterRun: Type.Optional(Type.Boolean()),
|
|
687
|
-
createdAtMs: Type.Integer({ minimum: 0 }),
|
|
688
|
-
updatedAtMs: Type.Integer({ minimum: 0 }),
|
|
689
|
-
schedule: CronScheduleSchema,
|
|
690
|
-
sessionTarget: Type.Union([Type.Literal("main"), Type.Literal("isolated")]),
|
|
691
|
-
wakeMode: Type.Union([Type.Literal("next-heartbeat"), Type.Literal("now")]),
|
|
692
|
-
payload: CronPayloadSchema,
|
|
693
|
-
delivery: Type.Optional(CronDeliverySchema),
|
|
694
|
-
state: CronJobStateSchema
|
|
695
|
-
}, { additionalProperties: false });
|
|
696
|
-
const CronListParamsSchema = Type.Object({ includeDisabled: Type.Optional(Type.Boolean()) }, { additionalProperties: false });
|
|
697
|
-
const CronStatusParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
698
|
-
const CronAddParamsSchema = Type.Object({
|
|
699
|
-
name: NonEmptyString,
|
|
700
|
-
agentId: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
|
|
701
|
-
description: Type.Optional(Type.String()),
|
|
702
|
-
enabled: Type.Optional(Type.Boolean()),
|
|
703
|
-
deleteAfterRun: Type.Optional(Type.Boolean()),
|
|
704
|
-
schedule: CronScheduleSchema,
|
|
705
|
-
sessionTarget: Type.Union([Type.Literal("main"), Type.Literal("isolated")]),
|
|
706
|
-
wakeMode: Type.Union([Type.Literal("next-heartbeat"), Type.Literal("now")]),
|
|
707
|
-
payload: CronPayloadSchema,
|
|
708
|
-
delivery: Type.Optional(CronDeliverySchema)
|
|
709
|
-
}, { additionalProperties: false });
|
|
710
|
-
const CronJobPatchSchema = Type.Object({
|
|
711
|
-
name: Type.Optional(NonEmptyString),
|
|
712
|
-
agentId: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
|
|
713
|
-
description: Type.Optional(Type.String()),
|
|
714
|
-
enabled: Type.Optional(Type.Boolean()),
|
|
715
|
-
deleteAfterRun: Type.Optional(Type.Boolean()),
|
|
716
|
-
schedule: Type.Optional(CronScheduleSchema),
|
|
717
|
-
sessionTarget: Type.Optional(Type.Union([Type.Literal("main"), Type.Literal("isolated")])),
|
|
718
|
-
wakeMode: Type.Optional(Type.Union([Type.Literal("next-heartbeat"), Type.Literal("now")])),
|
|
719
|
-
payload: Type.Optional(CronPayloadPatchSchema),
|
|
720
|
-
delivery: Type.Optional(CronDeliveryPatchSchema),
|
|
721
|
-
state: Type.Optional(Type.Partial(CronJobStateSchema))
|
|
722
|
-
}, { additionalProperties: false });
|
|
723
|
-
const CronUpdateParamsSchema = Type.Union([Type.Object({
|
|
724
|
-
id: NonEmptyString,
|
|
725
|
-
patch: CronJobPatchSchema
|
|
726
|
-
}, { additionalProperties: false }), Type.Object({
|
|
727
|
-
jobId: NonEmptyString,
|
|
728
|
-
patch: CronJobPatchSchema
|
|
729
|
-
}, { additionalProperties: false })]);
|
|
730
|
-
const CronRemoveParamsSchema = Type.Union([Type.Object({ id: NonEmptyString }, { additionalProperties: false }), Type.Object({ jobId: NonEmptyString }, { additionalProperties: false })]);
|
|
731
|
-
const CronRunParamsSchema = Type.Union([Type.Object({
|
|
732
|
-
id: NonEmptyString,
|
|
733
|
-
mode: Type.Optional(Type.Union([Type.Literal("due"), Type.Literal("force")]))
|
|
734
|
-
}, { additionalProperties: false }), Type.Object({
|
|
735
|
-
jobId: NonEmptyString,
|
|
736
|
-
mode: Type.Optional(Type.Union([Type.Literal("due"), Type.Literal("force")]))
|
|
737
|
-
}, { additionalProperties: false })]);
|
|
738
|
-
const CronRunsParamsSchema = Type.Union([Type.Object({
|
|
739
|
-
id: NonEmptyString,
|
|
740
|
-
limit: Type.Optional(Type.Integer({
|
|
741
|
-
minimum: 1,
|
|
742
|
-
maximum: 5e3
|
|
743
|
-
}))
|
|
744
|
-
}, { additionalProperties: false }), Type.Object({
|
|
745
|
-
jobId: NonEmptyString,
|
|
746
|
-
limit: Type.Optional(Type.Integer({
|
|
747
|
-
minimum: 1,
|
|
748
|
-
maximum: 5e3
|
|
749
|
-
}))
|
|
750
|
-
}, { additionalProperties: false })]);
|
|
751
|
-
const CronRunLogEntrySchema = Type.Object({
|
|
752
|
-
ts: Type.Integer({ minimum: 0 }),
|
|
753
|
-
jobId: NonEmptyString,
|
|
754
|
-
action: Type.Literal("finished"),
|
|
755
|
-
status: Type.Optional(Type.Union([
|
|
756
|
-
Type.Literal("ok"),
|
|
757
|
-
Type.Literal("error"),
|
|
758
|
-
Type.Literal("skipped")
|
|
759
|
-
])),
|
|
760
|
-
error: Type.Optional(Type.String()),
|
|
761
|
-
summary: Type.Optional(Type.String()),
|
|
762
|
-
sessionId: Type.Optional(NonEmptyString),
|
|
763
|
-
sessionKey: Type.Optional(NonEmptyString),
|
|
764
|
-
runAtMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
765
|
-
durationMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
766
|
-
nextRunAtMs: Type.Optional(Type.Integer({ minimum: 0 }))
|
|
767
|
-
}, { additionalProperties: false });
|
|
768
|
-
|
|
769
|
-
//#endregion
|
|
770
|
-
//#region src/gateway/protocol/schema/error-codes.ts
|
|
771
|
-
const ErrorCodes = {
|
|
772
|
-
NOT_LINKED: "NOT_LINKED",
|
|
773
|
-
NOT_PAIRED: "NOT_PAIRED",
|
|
774
|
-
AGENT_TIMEOUT: "AGENT_TIMEOUT",
|
|
775
|
-
INVALID_REQUEST: "INVALID_REQUEST",
|
|
776
|
-
UNAVAILABLE: "UNAVAILABLE"
|
|
777
|
-
};
|
|
778
|
-
function errorShape(code, message, opts) {
|
|
779
|
-
return {
|
|
780
|
-
code,
|
|
781
|
-
message,
|
|
782
|
-
...opts
|
|
783
|
-
};
|
|
784
|
-
}
|
|
785
|
-
|
|
786
|
-
//#endregion
|
|
787
|
-
//#region src/gateway/protocol/schema/exec-approvals.ts
|
|
788
|
-
const ExecApprovalsAllowlistEntrySchema = Type.Object({
|
|
789
|
-
id: Type.Optional(NonEmptyString),
|
|
790
|
-
pattern: Type.String(),
|
|
791
|
-
lastUsedAt: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
792
|
-
lastUsedCommand: Type.Optional(Type.String()),
|
|
793
|
-
lastResolvedPath: Type.Optional(Type.String())
|
|
794
|
-
}, { additionalProperties: false });
|
|
795
|
-
const ExecApprovalsDefaultsSchema = Type.Object({
|
|
796
|
-
security: Type.Optional(Type.String()),
|
|
797
|
-
ask: Type.Optional(Type.String()),
|
|
798
|
-
askFallback: Type.Optional(Type.String()),
|
|
799
|
-
autoAllowSkills: Type.Optional(Type.Boolean())
|
|
800
|
-
}, { additionalProperties: false });
|
|
801
|
-
const ExecApprovalsAgentSchema = Type.Object({
|
|
802
|
-
security: Type.Optional(Type.String()),
|
|
803
|
-
ask: Type.Optional(Type.String()),
|
|
804
|
-
askFallback: Type.Optional(Type.String()),
|
|
805
|
-
autoAllowSkills: Type.Optional(Type.Boolean()),
|
|
806
|
-
allowlist: Type.Optional(Type.Array(ExecApprovalsAllowlistEntrySchema))
|
|
807
|
-
}, { additionalProperties: false });
|
|
808
|
-
const ExecApprovalsFileSchema = Type.Object({
|
|
809
|
-
version: Type.Literal(1),
|
|
810
|
-
socket: Type.Optional(Type.Object({
|
|
811
|
-
path: Type.Optional(Type.String()),
|
|
812
|
-
token: Type.Optional(Type.String())
|
|
813
|
-
}, { additionalProperties: false })),
|
|
814
|
-
defaults: Type.Optional(ExecApprovalsDefaultsSchema),
|
|
815
|
-
agents: Type.Optional(Type.Record(Type.String(), ExecApprovalsAgentSchema))
|
|
816
|
-
}, { additionalProperties: false });
|
|
817
|
-
const ExecApprovalsSnapshotSchema = Type.Object({
|
|
818
|
-
path: NonEmptyString,
|
|
819
|
-
exists: Type.Boolean(),
|
|
820
|
-
hash: NonEmptyString,
|
|
821
|
-
file: ExecApprovalsFileSchema
|
|
822
|
-
}, { additionalProperties: false });
|
|
823
|
-
const ExecApprovalsGetParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
824
|
-
const ExecApprovalsSetParamsSchema = Type.Object({
|
|
825
|
-
file: ExecApprovalsFileSchema,
|
|
826
|
-
baseHash: Type.Optional(NonEmptyString)
|
|
827
|
-
}, { additionalProperties: false });
|
|
828
|
-
const ExecApprovalsNodeGetParamsSchema = Type.Object({ nodeId: NonEmptyString }, { additionalProperties: false });
|
|
829
|
-
const ExecApprovalsNodeSetParamsSchema = Type.Object({
|
|
830
|
-
nodeId: NonEmptyString,
|
|
831
|
-
file: ExecApprovalsFileSchema,
|
|
832
|
-
baseHash: Type.Optional(NonEmptyString)
|
|
833
|
-
}, { additionalProperties: false });
|
|
834
|
-
const ExecApprovalRequestParamsSchema = Type.Object({
|
|
835
|
-
id: Type.Optional(NonEmptyString),
|
|
836
|
-
command: NonEmptyString,
|
|
837
|
-
cwd: Type.Optional(Type.Union([Type.String(), Type.Null()])),
|
|
838
|
-
host: Type.Optional(Type.Union([Type.String(), Type.Null()])),
|
|
839
|
-
security: Type.Optional(Type.Union([Type.String(), Type.Null()])),
|
|
840
|
-
ask: Type.Optional(Type.Union([Type.String(), Type.Null()])),
|
|
841
|
-
agentId: Type.Optional(Type.Union([Type.String(), Type.Null()])),
|
|
842
|
-
resolvedPath: Type.Optional(Type.Union([Type.String(), Type.Null()])),
|
|
843
|
-
sessionKey: Type.Optional(Type.Union([Type.String(), Type.Null()])),
|
|
844
|
-
timeoutMs: Type.Optional(Type.Integer({ minimum: 1 })),
|
|
845
|
-
twoPhase: Type.Optional(Type.Boolean())
|
|
846
|
-
}, { additionalProperties: false });
|
|
847
|
-
const ExecApprovalResolveParamsSchema = Type.Object({
|
|
848
|
-
id: NonEmptyString,
|
|
849
|
-
decision: NonEmptyString
|
|
850
|
-
}, { additionalProperties: false });
|
|
851
|
-
|
|
852
|
-
//#endregion
|
|
853
|
-
//#region src/gateway/protocol/schema/devices.ts
|
|
854
|
-
const DevicePairListParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
855
|
-
const DevicePairApproveParamsSchema = Type.Object({ requestId: NonEmptyString }, { additionalProperties: false });
|
|
856
|
-
const DevicePairRejectParamsSchema = Type.Object({ requestId: NonEmptyString }, { additionalProperties: false });
|
|
857
|
-
const DeviceTokenRotateParamsSchema = Type.Object({
|
|
858
|
-
deviceId: NonEmptyString,
|
|
859
|
-
role: NonEmptyString,
|
|
860
|
-
scopes: Type.Optional(Type.Array(NonEmptyString))
|
|
861
|
-
}, { additionalProperties: false });
|
|
862
|
-
const DeviceTokenRevokeParamsSchema = Type.Object({
|
|
863
|
-
deviceId: NonEmptyString,
|
|
864
|
-
role: NonEmptyString
|
|
865
|
-
}, { additionalProperties: false });
|
|
866
|
-
const DevicePairRequestedEventSchema = Type.Object({
|
|
867
|
-
requestId: NonEmptyString,
|
|
868
|
-
deviceId: NonEmptyString,
|
|
869
|
-
publicKey: NonEmptyString,
|
|
870
|
-
displayName: Type.Optional(NonEmptyString),
|
|
871
|
-
platform: Type.Optional(NonEmptyString),
|
|
872
|
-
clientId: Type.Optional(NonEmptyString),
|
|
873
|
-
clientMode: Type.Optional(NonEmptyString),
|
|
874
|
-
role: Type.Optional(NonEmptyString),
|
|
875
|
-
roles: Type.Optional(Type.Array(NonEmptyString)),
|
|
876
|
-
scopes: Type.Optional(Type.Array(NonEmptyString)),
|
|
877
|
-
remoteIp: Type.Optional(NonEmptyString),
|
|
878
|
-
silent: Type.Optional(Type.Boolean()),
|
|
879
|
-
isRepair: Type.Optional(Type.Boolean()),
|
|
880
|
-
ts: Type.Integer({ minimum: 0 })
|
|
881
|
-
}, { additionalProperties: false });
|
|
882
|
-
const DevicePairResolvedEventSchema = Type.Object({
|
|
883
|
-
requestId: NonEmptyString,
|
|
884
|
-
deviceId: NonEmptyString,
|
|
885
|
-
decision: NonEmptyString,
|
|
886
|
-
ts: Type.Integer({ minimum: 0 })
|
|
887
|
-
}, { additionalProperties: false });
|
|
888
|
-
|
|
889
|
-
//#endregion
|
|
890
|
-
//#region src/gateway/protocol/schema/snapshot.ts
|
|
891
|
-
const PresenceEntrySchema = Type.Object({
|
|
892
|
-
host: Type.Optional(NonEmptyString),
|
|
893
|
-
ip: Type.Optional(NonEmptyString),
|
|
894
|
-
version: Type.Optional(NonEmptyString),
|
|
895
|
-
platform: Type.Optional(NonEmptyString),
|
|
896
|
-
deviceFamily: Type.Optional(NonEmptyString),
|
|
897
|
-
modelIdentifier: Type.Optional(NonEmptyString),
|
|
898
|
-
mode: Type.Optional(NonEmptyString),
|
|
899
|
-
lastInputSeconds: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
900
|
-
reason: Type.Optional(NonEmptyString),
|
|
901
|
-
tags: Type.Optional(Type.Array(NonEmptyString)),
|
|
902
|
-
text: Type.Optional(Type.String()),
|
|
903
|
-
ts: Type.Integer({ minimum: 0 }),
|
|
904
|
-
deviceId: Type.Optional(NonEmptyString),
|
|
905
|
-
roles: Type.Optional(Type.Array(NonEmptyString)),
|
|
906
|
-
scopes: Type.Optional(Type.Array(NonEmptyString)),
|
|
907
|
-
instanceId: Type.Optional(NonEmptyString)
|
|
908
|
-
}, { additionalProperties: false });
|
|
909
|
-
const HealthSnapshotSchema = Type.Any();
|
|
910
|
-
const SessionDefaultsSchema = Type.Object({
|
|
911
|
-
defaultAgentId: NonEmptyString,
|
|
912
|
-
mainKey: NonEmptyString,
|
|
913
|
-
mainSessionKey: NonEmptyString,
|
|
914
|
-
scope: Type.Optional(NonEmptyString)
|
|
915
|
-
}, { additionalProperties: false });
|
|
916
|
-
const StateVersionSchema = Type.Object({
|
|
917
|
-
presence: Type.Integer({ minimum: 0 }),
|
|
918
|
-
health: Type.Integer({ minimum: 0 })
|
|
919
|
-
}, { additionalProperties: false });
|
|
920
|
-
const SnapshotSchema = Type.Object({
|
|
921
|
-
presence: Type.Array(PresenceEntrySchema),
|
|
922
|
-
health: HealthSnapshotSchema,
|
|
923
|
-
stateVersion: StateVersionSchema,
|
|
924
|
-
uptimeMs: Type.Integer({ minimum: 0 }),
|
|
925
|
-
configPath: Type.Optional(NonEmptyString),
|
|
926
|
-
stateDir: Type.Optional(NonEmptyString),
|
|
927
|
-
sessionDefaults: Type.Optional(SessionDefaultsSchema),
|
|
928
|
-
authMode: Type.Optional(Type.Union([
|
|
929
|
-
Type.Literal("none"),
|
|
930
|
-
Type.Literal("token"),
|
|
931
|
-
Type.Literal("password"),
|
|
932
|
-
Type.Literal("trusted-proxy")
|
|
933
|
-
]))
|
|
934
|
-
}, { additionalProperties: false });
|
|
935
|
-
|
|
936
|
-
//#endregion
|
|
937
|
-
//#region src/gateway/protocol/schema/frames.ts
|
|
938
|
-
const TickEventSchema = Type.Object({ ts: Type.Integer({ minimum: 0 }) }, { additionalProperties: false });
|
|
939
|
-
const ShutdownEventSchema = Type.Object({
|
|
940
|
-
reason: NonEmptyString,
|
|
941
|
-
restartExpectedMs: Type.Optional(Type.Integer({ minimum: 0 }))
|
|
942
|
-
}, { additionalProperties: false });
|
|
943
|
-
const ConnectParamsSchema = Type.Object({
|
|
944
|
-
minProtocol: Type.Integer({ minimum: 1 }),
|
|
945
|
-
maxProtocol: Type.Integer({ minimum: 1 }),
|
|
946
|
-
client: Type.Object({
|
|
947
|
-
id: GatewayClientIdSchema,
|
|
948
|
-
displayName: Type.Optional(NonEmptyString),
|
|
949
|
-
version: NonEmptyString,
|
|
950
|
-
platform: NonEmptyString,
|
|
951
|
-
deviceFamily: Type.Optional(NonEmptyString),
|
|
952
|
-
modelIdentifier: Type.Optional(NonEmptyString),
|
|
953
|
-
mode: GatewayClientModeSchema,
|
|
954
|
-
instanceId: Type.Optional(NonEmptyString)
|
|
955
|
-
}, { additionalProperties: false }),
|
|
956
|
-
caps: Type.Optional(Type.Array(NonEmptyString, { default: [] })),
|
|
957
|
-
commands: Type.Optional(Type.Array(NonEmptyString)),
|
|
958
|
-
permissions: Type.Optional(Type.Record(NonEmptyString, Type.Boolean())),
|
|
959
|
-
pathEnv: Type.Optional(Type.String()),
|
|
960
|
-
role: Type.Optional(NonEmptyString),
|
|
961
|
-
scopes: Type.Optional(Type.Array(NonEmptyString)),
|
|
962
|
-
device: Type.Optional(Type.Object({
|
|
963
|
-
id: NonEmptyString,
|
|
964
|
-
publicKey: NonEmptyString,
|
|
965
|
-
signature: NonEmptyString,
|
|
966
|
-
signedAt: Type.Integer({ minimum: 0 }),
|
|
967
|
-
nonce: Type.Optional(NonEmptyString)
|
|
968
|
-
}, { additionalProperties: false })),
|
|
969
|
-
auth: Type.Optional(Type.Object({
|
|
970
|
-
token: Type.Optional(Type.String()),
|
|
971
|
-
password: Type.Optional(Type.String())
|
|
972
|
-
}, { additionalProperties: false })),
|
|
973
|
-
locale: Type.Optional(Type.String()),
|
|
974
|
-
userAgent: Type.Optional(Type.String())
|
|
975
|
-
}, { additionalProperties: false });
|
|
976
|
-
const HelloOkSchema = Type.Object({
|
|
977
|
-
type: Type.Literal("hello-ok"),
|
|
978
|
-
protocol: Type.Integer({ minimum: 1 }),
|
|
979
|
-
server: Type.Object({
|
|
980
|
-
version: NonEmptyString,
|
|
981
|
-
commit: Type.Optional(NonEmptyString),
|
|
982
|
-
host: Type.Optional(NonEmptyString),
|
|
983
|
-
connId: NonEmptyString
|
|
984
|
-
}, { additionalProperties: false }),
|
|
985
|
-
features: Type.Object({
|
|
986
|
-
methods: Type.Array(NonEmptyString),
|
|
987
|
-
events: Type.Array(NonEmptyString)
|
|
988
|
-
}, { additionalProperties: false }),
|
|
989
|
-
snapshot: SnapshotSchema,
|
|
990
|
-
canvasHostUrl: Type.Optional(NonEmptyString),
|
|
991
|
-
auth: Type.Optional(Type.Object({
|
|
992
|
-
deviceToken: NonEmptyString,
|
|
993
|
-
role: NonEmptyString,
|
|
994
|
-
scopes: Type.Array(NonEmptyString),
|
|
995
|
-
issuedAtMs: Type.Optional(Type.Integer({ minimum: 0 }))
|
|
996
|
-
}, { additionalProperties: false })),
|
|
997
|
-
policy: Type.Object({
|
|
998
|
-
maxPayload: Type.Integer({ minimum: 1 }),
|
|
999
|
-
maxBufferedBytes: Type.Integer({ minimum: 1 }),
|
|
1000
|
-
tickIntervalMs: Type.Integer({ minimum: 1 })
|
|
1001
|
-
}, { additionalProperties: false })
|
|
1002
|
-
}, { additionalProperties: false });
|
|
1003
|
-
const ErrorShapeSchema = Type.Object({
|
|
1004
|
-
code: NonEmptyString,
|
|
1005
|
-
message: NonEmptyString,
|
|
1006
|
-
details: Type.Optional(Type.Unknown()),
|
|
1007
|
-
retryable: Type.Optional(Type.Boolean()),
|
|
1008
|
-
retryAfterMs: Type.Optional(Type.Integer({ minimum: 0 }))
|
|
1009
|
-
}, { additionalProperties: false });
|
|
1010
|
-
const RequestFrameSchema = Type.Object({
|
|
1011
|
-
type: Type.Literal("req"),
|
|
1012
|
-
id: NonEmptyString,
|
|
1013
|
-
method: NonEmptyString,
|
|
1014
|
-
params: Type.Optional(Type.Unknown())
|
|
1015
|
-
}, { additionalProperties: false });
|
|
1016
|
-
const ResponseFrameSchema = Type.Object({
|
|
1017
|
-
type: Type.Literal("res"),
|
|
1018
|
-
id: NonEmptyString,
|
|
1019
|
-
ok: Type.Boolean(),
|
|
1020
|
-
payload: Type.Optional(Type.Unknown()),
|
|
1021
|
-
error: Type.Optional(ErrorShapeSchema)
|
|
1022
|
-
}, { additionalProperties: false });
|
|
1023
|
-
const EventFrameSchema = Type.Object({
|
|
1024
|
-
type: Type.Literal("event"),
|
|
1025
|
-
event: NonEmptyString,
|
|
1026
|
-
payload: Type.Optional(Type.Unknown()),
|
|
1027
|
-
seq: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
1028
|
-
stateVersion: Type.Optional(StateVersionSchema)
|
|
1029
|
-
}, { additionalProperties: false });
|
|
1030
|
-
const GatewayFrameSchema = Type.Union([
|
|
1031
|
-
RequestFrameSchema,
|
|
1032
|
-
ResponseFrameSchema,
|
|
1033
|
-
EventFrameSchema
|
|
1034
|
-
], { discriminator: "type" });
|
|
1035
|
-
|
|
1036
|
-
//#endregion
|
|
1037
|
-
//#region src/gateway/protocol/schema/logs-chat.ts
|
|
1038
|
-
const LogsTailParamsSchema = Type.Object({
|
|
1039
|
-
cursor: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
1040
|
-
limit: Type.Optional(Type.Integer({
|
|
1041
|
-
minimum: 1,
|
|
1042
|
-
maximum: 5e3
|
|
1043
|
-
})),
|
|
1044
|
-
maxBytes: Type.Optional(Type.Integer({
|
|
1045
|
-
minimum: 1,
|
|
1046
|
-
maximum: 1e6
|
|
1047
|
-
}))
|
|
1048
|
-
}, { additionalProperties: false });
|
|
1049
|
-
const LogsTailResultSchema = Type.Object({
|
|
1050
|
-
file: NonEmptyString,
|
|
1051
|
-
cursor: Type.Integer({ minimum: 0 }),
|
|
1052
|
-
size: Type.Integer({ minimum: 0 }),
|
|
1053
|
-
lines: Type.Array(Type.String()),
|
|
1054
|
-
truncated: Type.Optional(Type.Boolean()),
|
|
1055
|
-
reset: Type.Optional(Type.Boolean())
|
|
1056
|
-
}, { additionalProperties: false });
|
|
1057
|
-
const ChatHistoryParamsSchema = Type.Object({
|
|
1058
|
-
sessionKey: NonEmptyString,
|
|
1059
|
-
limit: Type.Optional(Type.Integer({
|
|
1060
|
-
minimum: 1,
|
|
1061
|
-
maximum: 1e3
|
|
1062
|
-
}))
|
|
1063
|
-
}, { additionalProperties: false });
|
|
1064
|
-
const ChatSendParamsSchema = Type.Object({
|
|
1065
|
-
sessionKey: NonEmptyString,
|
|
1066
|
-
message: Type.String(),
|
|
1067
|
-
thinking: Type.Optional(Type.String()),
|
|
1068
|
-
deliver: Type.Optional(Type.Boolean()),
|
|
1069
|
-
attachments: Type.Optional(Type.Array(Type.Unknown())),
|
|
1070
|
-
timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
1071
|
-
idempotencyKey: NonEmptyString
|
|
1072
|
-
}, { additionalProperties: false });
|
|
1073
|
-
const ChatAbortParamsSchema = Type.Object({
|
|
1074
|
-
sessionKey: NonEmptyString,
|
|
1075
|
-
runId: Type.Optional(NonEmptyString)
|
|
1076
|
-
}, { additionalProperties: false });
|
|
1077
|
-
const ChatInjectParamsSchema = Type.Object({
|
|
1078
|
-
sessionKey: NonEmptyString,
|
|
1079
|
-
message: NonEmptyString,
|
|
1080
|
-
label: Type.Optional(Type.String({ maxLength: 100 }))
|
|
1081
|
-
}, { additionalProperties: false });
|
|
1082
|
-
const ChatEventSchema = Type.Object({
|
|
1083
|
-
runId: NonEmptyString,
|
|
1084
|
-
sessionKey: NonEmptyString,
|
|
1085
|
-
seq: Type.Integer({ minimum: 0 }),
|
|
1086
|
-
state: Type.Union([
|
|
1087
|
-
Type.Literal("delta"),
|
|
1088
|
-
Type.Literal("final"),
|
|
1089
|
-
Type.Literal("aborted"),
|
|
1090
|
-
Type.Literal("error")
|
|
1091
|
-
]),
|
|
1092
|
-
message: Type.Optional(Type.Unknown()),
|
|
1093
|
-
errorMessage: Type.Optional(Type.String()),
|
|
1094
|
-
usage: Type.Optional(Type.Unknown()),
|
|
1095
|
-
stopReason: Type.Optional(Type.String())
|
|
1096
|
-
}, { additionalProperties: false });
|
|
1097
|
-
|
|
1098
|
-
//#endregion
|
|
1099
|
-
//#region src/gateway/protocol/schema/nodes.ts
|
|
1100
|
-
const NodePairRequestParamsSchema = Type.Object({
|
|
1101
|
-
nodeId: NonEmptyString,
|
|
1102
|
-
displayName: Type.Optional(NonEmptyString),
|
|
1103
|
-
platform: Type.Optional(NonEmptyString),
|
|
1104
|
-
version: Type.Optional(NonEmptyString),
|
|
1105
|
-
coreVersion: Type.Optional(NonEmptyString),
|
|
1106
|
-
uiVersion: Type.Optional(NonEmptyString),
|
|
1107
|
-
deviceFamily: Type.Optional(NonEmptyString),
|
|
1108
|
-
modelIdentifier: Type.Optional(NonEmptyString),
|
|
1109
|
-
caps: Type.Optional(Type.Array(NonEmptyString)),
|
|
1110
|
-
commands: Type.Optional(Type.Array(NonEmptyString)),
|
|
1111
|
-
remoteIp: Type.Optional(NonEmptyString),
|
|
1112
|
-
silent: Type.Optional(Type.Boolean())
|
|
1113
|
-
}, { additionalProperties: false });
|
|
1114
|
-
const NodePairListParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
1115
|
-
const NodePairApproveParamsSchema = Type.Object({ requestId: NonEmptyString }, { additionalProperties: false });
|
|
1116
|
-
const NodePairRejectParamsSchema = Type.Object({ requestId: NonEmptyString }, { additionalProperties: false });
|
|
1117
|
-
const NodePairVerifyParamsSchema = Type.Object({
|
|
1118
|
-
nodeId: NonEmptyString,
|
|
1119
|
-
token: NonEmptyString
|
|
1120
|
-
}, { additionalProperties: false });
|
|
1121
|
-
const NodeRenameParamsSchema = Type.Object({
|
|
1122
|
-
nodeId: NonEmptyString,
|
|
1123
|
-
displayName: NonEmptyString
|
|
1124
|
-
}, { additionalProperties: false });
|
|
1125
|
-
const NodeListParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
1126
|
-
const NodeDescribeParamsSchema = Type.Object({ nodeId: NonEmptyString }, { additionalProperties: false });
|
|
1127
|
-
const NodeInvokeParamsSchema = Type.Object({
|
|
1128
|
-
nodeId: NonEmptyString,
|
|
1129
|
-
command: NonEmptyString,
|
|
1130
|
-
params: Type.Optional(Type.Unknown()),
|
|
1131
|
-
timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
1132
|
-
idempotencyKey: NonEmptyString
|
|
1133
|
-
}, { additionalProperties: false });
|
|
1134
|
-
const NodeInvokeResultParamsSchema = Type.Object({
|
|
1135
|
-
id: NonEmptyString,
|
|
1136
|
-
nodeId: NonEmptyString,
|
|
1137
|
-
ok: Type.Boolean(),
|
|
1138
|
-
payload: Type.Optional(Type.Unknown()),
|
|
1139
|
-
payloadJSON: Type.Optional(Type.String()),
|
|
1140
|
-
error: Type.Optional(Type.Object({
|
|
1141
|
-
code: Type.Optional(NonEmptyString),
|
|
1142
|
-
message: Type.Optional(NonEmptyString)
|
|
1143
|
-
}, { additionalProperties: false }))
|
|
1144
|
-
}, { additionalProperties: false });
|
|
1145
|
-
const NodeEventParamsSchema = Type.Object({
|
|
1146
|
-
event: NonEmptyString,
|
|
1147
|
-
payload: Type.Optional(Type.Unknown()),
|
|
1148
|
-
payloadJSON: Type.Optional(Type.String())
|
|
1149
|
-
}, { additionalProperties: false });
|
|
1150
|
-
const NodeInvokeRequestEventSchema = Type.Object({
|
|
1151
|
-
id: NonEmptyString,
|
|
1152
|
-
nodeId: NonEmptyString,
|
|
1153
|
-
command: NonEmptyString,
|
|
1154
|
-
paramsJSON: Type.Optional(Type.String()),
|
|
1155
|
-
timeoutMs: Type.Optional(Type.Integer({ minimum: 0 })),
|
|
1156
|
-
idempotencyKey: Type.Optional(NonEmptyString)
|
|
1157
|
-
}, { additionalProperties: false });
|
|
1158
|
-
|
|
1159
|
-
//#endregion
|
|
1160
|
-
//#region src/gateway/protocol/schema/sessions.ts
|
|
1161
|
-
const SessionsListParamsSchema = Type.Object({
|
|
1162
|
-
limit: Type.Optional(Type.Integer({ minimum: 1 })),
|
|
1163
|
-
activeMinutes: Type.Optional(Type.Integer({ minimum: 1 })),
|
|
1164
|
-
includeGlobal: Type.Optional(Type.Boolean()),
|
|
1165
|
-
includeUnknown: Type.Optional(Type.Boolean()),
|
|
1166
|
-
includeDerivedTitles: Type.Optional(Type.Boolean()),
|
|
1167
|
-
includeLastMessage: Type.Optional(Type.Boolean()),
|
|
1168
|
-
label: Type.Optional(SessionLabelString),
|
|
1169
|
-
spawnedBy: Type.Optional(NonEmptyString),
|
|
1170
|
-
agentId: Type.Optional(NonEmptyString),
|
|
1171
|
-
search: Type.Optional(Type.String())
|
|
1172
|
-
}, { additionalProperties: false });
|
|
1173
|
-
const SessionsPreviewParamsSchema = Type.Object({
|
|
1174
|
-
keys: Type.Array(NonEmptyString, { minItems: 1 }),
|
|
1175
|
-
limit: Type.Optional(Type.Integer({ minimum: 1 })),
|
|
1176
|
-
maxChars: Type.Optional(Type.Integer({ minimum: 20 }))
|
|
1177
|
-
}, { additionalProperties: false });
|
|
1178
|
-
const SessionsResolveParamsSchema = Type.Object({
|
|
1179
|
-
key: Type.Optional(NonEmptyString),
|
|
1180
|
-
sessionId: Type.Optional(NonEmptyString),
|
|
1181
|
-
label: Type.Optional(SessionLabelString),
|
|
1182
|
-
agentId: Type.Optional(NonEmptyString),
|
|
1183
|
-
spawnedBy: Type.Optional(NonEmptyString),
|
|
1184
|
-
includeGlobal: Type.Optional(Type.Boolean()),
|
|
1185
|
-
includeUnknown: Type.Optional(Type.Boolean())
|
|
1186
|
-
}, { additionalProperties: false });
|
|
1187
|
-
const SessionsPatchParamsSchema = Type.Object({
|
|
1188
|
-
key: NonEmptyString,
|
|
1189
|
-
label: Type.Optional(Type.Union([SessionLabelString, Type.Null()])),
|
|
1190
|
-
thinkingLevel: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
|
|
1191
|
-
verboseLevel: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
|
|
1192
|
-
reasoningLevel: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
|
|
1193
|
-
responseUsage: Type.Optional(Type.Union([
|
|
1194
|
-
Type.Literal("off"),
|
|
1195
|
-
Type.Literal("tokens"),
|
|
1196
|
-
Type.Literal("full"),
|
|
1197
|
-
Type.Literal("on"),
|
|
1198
|
-
Type.Null()
|
|
1199
|
-
])),
|
|
1200
|
-
elevatedLevel: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
|
|
1201
|
-
execHost: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
|
|
1202
|
-
execSecurity: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
|
|
1203
|
-
execAsk: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
|
|
1204
|
-
execNode: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
|
|
1205
|
-
model: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
|
|
1206
|
-
spawnedBy: Type.Optional(Type.Union([NonEmptyString, Type.Null()])),
|
|
1207
|
-
spawnDepth: Type.Optional(Type.Union([Type.Integer({ minimum: 0 }), Type.Null()])),
|
|
1208
|
-
sendPolicy: Type.Optional(Type.Union([
|
|
1209
|
-
Type.Literal("allow"),
|
|
1210
|
-
Type.Literal("deny"),
|
|
1211
|
-
Type.Null()
|
|
1212
|
-
])),
|
|
1213
|
-
groupActivation: Type.Optional(Type.Union([
|
|
1214
|
-
Type.Literal("mention"),
|
|
1215
|
-
Type.Literal("always"),
|
|
1216
|
-
Type.Null()
|
|
1217
|
-
]))
|
|
1218
|
-
}, { additionalProperties: false });
|
|
1219
|
-
const SessionsResetParamsSchema = Type.Object({
|
|
1220
|
-
key: NonEmptyString,
|
|
1221
|
-
reason: Type.Optional(Type.Union([Type.Literal("new"), Type.Literal("reset")]))
|
|
1222
|
-
}, { additionalProperties: false });
|
|
1223
|
-
const SessionsDeleteParamsSchema = Type.Object({
|
|
1224
|
-
key: NonEmptyString,
|
|
1225
|
-
deleteTranscript: Type.Optional(Type.Boolean())
|
|
1226
|
-
}, { additionalProperties: false });
|
|
1227
|
-
const SessionsCompactParamsSchema = Type.Object({
|
|
1228
|
-
key: NonEmptyString,
|
|
1229
|
-
maxLines: Type.Optional(Type.Integer({ minimum: 1 }))
|
|
1230
|
-
}, { additionalProperties: false });
|
|
1231
|
-
const SessionsUsageParamsSchema = Type.Object({
|
|
1232
|
-
key: Type.Optional(NonEmptyString),
|
|
1233
|
-
startDate: Type.Optional(Type.String({ pattern: "^\\d{4}-\\d{2}-\\d{2}$" })),
|
|
1234
|
-
endDate: Type.Optional(Type.String({ pattern: "^\\d{4}-\\d{2}-\\d{2}$" })),
|
|
1235
|
-
limit: Type.Optional(Type.Integer({ minimum: 1 })),
|
|
1236
|
-
includeContextWeight: Type.Optional(Type.Boolean())
|
|
1237
|
-
}, { additionalProperties: false });
|
|
1238
|
-
|
|
1239
|
-
//#endregion
|
|
1240
|
-
//#region src/gateway/protocol/schema/wizard.ts
|
|
1241
|
-
const WizardStartParamsSchema = Type.Object({
|
|
1242
|
-
mode: Type.Optional(Type.Union([Type.Literal("local"), Type.Literal("remote")])),
|
|
1243
|
-
workspace: Type.Optional(Type.String())
|
|
1244
|
-
}, { additionalProperties: false });
|
|
1245
|
-
const WizardAnswerSchema = Type.Object({
|
|
1246
|
-
stepId: NonEmptyString,
|
|
1247
|
-
value: Type.Optional(Type.Unknown())
|
|
1248
|
-
}, { additionalProperties: false });
|
|
1249
|
-
const WizardNextParamsSchema = Type.Object({
|
|
1250
|
-
sessionId: NonEmptyString,
|
|
1251
|
-
answer: Type.Optional(WizardAnswerSchema)
|
|
1252
|
-
}, { additionalProperties: false });
|
|
1253
|
-
const WizardCancelParamsSchema = Type.Object({ sessionId: NonEmptyString }, { additionalProperties: false });
|
|
1254
|
-
const WizardStatusParamsSchema = Type.Object({ sessionId: NonEmptyString }, { additionalProperties: false });
|
|
1255
|
-
const WizardStepOptionSchema = Type.Object({
|
|
1256
|
-
value: Type.Unknown(),
|
|
1257
|
-
label: NonEmptyString,
|
|
1258
|
-
hint: Type.Optional(Type.String())
|
|
1259
|
-
}, { additionalProperties: false });
|
|
1260
|
-
const WizardStepSchema = Type.Object({
|
|
1261
|
-
id: NonEmptyString,
|
|
1262
|
-
type: Type.Union([
|
|
1263
|
-
Type.Literal("note"),
|
|
1264
|
-
Type.Literal("select"),
|
|
1265
|
-
Type.Literal("text"),
|
|
1266
|
-
Type.Literal("confirm"),
|
|
1267
|
-
Type.Literal("multiselect"),
|
|
1268
|
-
Type.Literal("progress"),
|
|
1269
|
-
Type.Literal("action")
|
|
1270
|
-
]),
|
|
1271
|
-
title: Type.Optional(Type.String()),
|
|
1272
|
-
message: Type.Optional(Type.String()),
|
|
1273
|
-
options: Type.Optional(Type.Array(WizardStepOptionSchema)),
|
|
1274
|
-
initialValue: Type.Optional(Type.Unknown()),
|
|
1275
|
-
placeholder: Type.Optional(Type.String()),
|
|
1276
|
-
sensitive: Type.Optional(Type.Boolean()),
|
|
1277
|
-
executor: Type.Optional(Type.Union([Type.Literal("gateway"), Type.Literal("client")]))
|
|
1278
|
-
}, { additionalProperties: false });
|
|
1279
|
-
const WizardNextResultSchema = Type.Object({
|
|
1280
|
-
done: Type.Boolean(),
|
|
1281
|
-
step: Type.Optional(WizardStepSchema),
|
|
1282
|
-
status: Type.Optional(Type.Union([
|
|
1283
|
-
Type.Literal("running"),
|
|
1284
|
-
Type.Literal("done"),
|
|
1285
|
-
Type.Literal("cancelled"),
|
|
1286
|
-
Type.Literal("error")
|
|
1287
|
-
])),
|
|
1288
|
-
error: Type.Optional(Type.String())
|
|
1289
|
-
}, { additionalProperties: false });
|
|
1290
|
-
const WizardStartResultSchema = Type.Object({
|
|
1291
|
-
sessionId: NonEmptyString,
|
|
1292
|
-
done: Type.Boolean(),
|
|
1293
|
-
step: Type.Optional(WizardStepSchema),
|
|
1294
|
-
status: Type.Optional(Type.Union([
|
|
1295
|
-
Type.Literal("running"),
|
|
1296
|
-
Type.Literal("done"),
|
|
1297
|
-
Type.Literal("cancelled"),
|
|
1298
|
-
Type.Literal("error")
|
|
1299
|
-
])),
|
|
1300
|
-
error: Type.Optional(Type.String())
|
|
1301
|
-
}, { additionalProperties: false });
|
|
1302
|
-
const WizardStatusResultSchema = Type.Object({
|
|
1303
|
-
status: Type.Union([
|
|
1304
|
-
Type.Literal("running"),
|
|
1305
|
-
Type.Literal("done"),
|
|
1306
|
-
Type.Literal("cancelled"),
|
|
1307
|
-
Type.Literal("error")
|
|
1308
|
-
]),
|
|
1309
|
-
error: Type.Optional(Type.String())
|
|
1310
|
-
}, { additionalProperties: false });
|
|
1311
|
-
|
|
1312
|
-
//#endregion
|
|
1313
|
-
//#region src/gateway/protocol/schema/protocol-schemas.ts
|
|
1314
|
-
const PROTOCOL_VERSION = 3;
|
|
1315
|
-
|
|
1316
|
-
//#endregion
|
|
1317
|
-
//#region src/gateway/protocol/index.ts
|
|
1318
|
-
const ajv = new AjvPkg({
|
|
1319
|
-
allErrors: true,
|
|
1320
|
-
strict: false,
|
|
1321
|
-
removeAdditional: false
|
|
1322
|
-
});
|
|
1323
|
-
const validateConnectParams = ajv.compile(ConnectParamsSchema);
|
|
1324
|
-
const validateRequestFrame = ajv.compile(RequestFrameSchema);
|
|
1325
|
-
const validateResponseFrame = ajv.compile(ResponseFrameSchema);
|
|
1326
|
-
const validateEventFrame = ajv.compile(EventFrameSchema);
|
|
1327
|
-
const validateSendParams = ajv.compile(SendParamsSchema);
|
|
1328
|
-
const validatePollParams = ajv.compile(PollParamsSchema);
|
|
1329
|
-
const validateAgentParams = ajv.compile(AgentParamsSchema);
|
|
1330
|
-
const validateAgentIdentityParams = ajv.compile(AgentIdentityParamsSchema);
|
|
1331
|
-
const validateAgentWaitParams = ajv.compile(AgentWaitParamsSchema);
|
|
1332
|
-
const validateWakeParams = ajv.compile(WakeParamsSchema);
|
|
1333
|
-
const validateAgentsListParams = ajv.compile(AgentsListParamsSchema);
|
|
1334
|
-
const validateAgentsCreateParams = ajv.compile(AgentsCreateParamsSchema);
|
|
1335
|
-
const validateAgentsUpdateParams = ajv.compile(AgentsUpdateParamsSchema);
|
|
1336
|
-
const validateAgentsDeleteParams = ajv.compile(AgentsDeleteParamsSchema);
|
|
1337
|
-
const validateAgentsFilesListParams = ajv.compile(AgentsFilesListParamsSchema);
|
|
1338
|
-
const validateAgentsFilesGetParams = ajv.compile(AgentsFilesGetParamsSchema);
|
|
1339
|
-
const validateAgentsFilesSetParams = ajv.compile(AgentsFilesSetParamsSchema);
|
|
1340
|
-
const validateNodePairRequestParams = ajv.compile(NodePairRequestParamsSchema);
|
|
1341
|
-
const validateNodePairListParams = ajv.compile(NodePairListParamsSchema);
|
|
1342
|
-
const validateNodePairApproveParams = ajv.compile(NodePairApproveParamsSchema);
|
|
1343
|
-
const validateNodePairRejectParams = ajv.compile(NodePairRejectParamsSchema);
|
|
1344
|
-
const validateNodePairVerifyParams = ajv.compile(NodePairVerifyParamsSchema);
|
|
1345
|
-
const validateNodeRenameParams = ajv.compile(NodeRenameParamsSchema);
|
|
1346
|
-
const validateNodeListParams = ajv.compile(NodeListParamsSchema);
|
|
1347
|
-
const validateNodeDescribeParams = ajv.compile(NodeDescribeParamsSchema);
|
|
1348
|
-
const validateNodeInvokeParams = ajv.compile(NodeInvokeParamsSchema);
|
|
1349
|
-
const validateNodeInvokeResultParams = ajv.compile(NodeInvokeResultParamsSchema);
|
|
1350
|
-
const validateNodeEventParams = ajv.compile(NodeEventParamsSchema);
|
|
1351
|
-
const validateSessionsListParams = ajv.compile(SessionsListParamsSchema);
|
|
1352
|
-
const validateSessionsPreviewParams = ajv.compile(SessionsPreviewParamsSchema);
|
|
1353
|
-
const validateSessionsResolveParams = ajv.compile(SessionsResolveParamsSchema);
|
|
1354
|
-
const validateSessionsPatchParams = ajv.compile(SessionsPatchParamsSchema);
|
|
1355
|
-
const validateSessionsResetParams = ajv.compile(SessionsResetParamsSchema);
|
|
1356
|
-
const validateSessionsDeleteParams = ajv.compile(SessionsDeleteParamsSchema);
|
|
1357
|
-
const validateSessionsCompactParams = ajv.compile(SessionsCompactParamsSchema);
|
|
1358
|
-
const validateSessionsUsageParams = ajv.compile(SessionsUsageParamsSchema);
|
|
1359
|
-
const validateConfigGetParams = ajv.compile(ConfigGetParamsSchema);
|
|
1360
|
-
const validateConfigSetParams = ajv.compile(ConfigSetParamsSchema);
|
|
1361
|
-
const validateConfigApplyParams = ajv.compile(ConfigApplyParamsSchema);
|
|
1362
|
-
const validateConfigPatchParams = ajv.compile(ConfigPatchParamsSchema);
|
|
1363
|
-
const validateConfigSchemaParams = ajv.compile(ConfigSchemaParamsSchema);
|
|
1364
|
-
const validateWizardStartParams = ajv.compile(WizardStartParamsSchema);
|
|
1365
|
-
const validateWizardNextParams = ajv.compile(WizardNextParamsSchema);
|
|
1366
|
-
const validateWizardCancelParams = ajv.compile(WizardCancelParamsSchema);
|
|
1367
|
-
const validateWizardStatusParams = ajv.compile(WizardStatusParamsSchema);
|
|
1368
|
-
const validateTalkModeParams = ajv.compile(TalkModeParamsSchema);
|
|
1369
|
-
const validateTalkConfigParams = ajv.compile(TalkConfigParamsSchema);
|
|
1370
|
-
const validateChannelsStatusParams = ajv.compile(ChannelsStatusParamsSchema);
|
|
1371
|
-
const validateChannelsLogoutParams = ajv.compile(ChannelsLogoutParamsSchema);
|
|
1372
|
-
const validateModelsListParams = ajv.compile(ModelsListParamsSchema);
|
|
1373
|
-
const validateSkillsStatusParams = ajv.compile(SkillsStatusParamsSchema);
|
|
1374
|
-
const validateSkillsBinsParams = ajv.compile(SkillsBinsParamsSchema);
|
|
1375
|
-
const validateSkillsInstallParams = ajv.compile(SkillsInstallParamsSchema);
|
|
1376
|
-
const validateSkillsUpdateParams = ajv.compile(SkillsUpdateParamsSchema);
|
|
1377
|
-
const validateCronListParams = ajv.compile(CronListParamsSchema);
|
|
1378
|
-
const validateCronStatusParams = ajv.compile(CronStatusParamsSchema);
|
|
1379
|
-
const validateCronAddParams = ajv.compile(CronAddParamsSchema);
|
|
1380
|
-
const validateCronUpdateParams = ajv.compile(CronUpdateParamsSchema);
|
|
1381
|
-
const validateCronRemoveParams = ajv.compile(CronRemoveParamsSchema);
|
|
1382
|
-
const validateCronRunParams = ajv.compile(CronRunParamsSchema);
|
|
1383
|
-
const validateCronRunsParams = ajv.compile(CronRunsParamsSchema);
|
|
1384
|
-
const validateDevicePairListParams = ajv.compile(DevicePairListParamsSchema);
|
|
1385
|
-
const validateDevicePairApproveParams = ajv.compile(DevicePairApproveParamsSchema);
|
|
1386
|
-
const validateDevicePairRejectParams = ajv.compile(DevicePairRejectParamsSchema);
|
|
1387
|
-
const validateDeviceTokenRotateParams = ajv.compile(DeviceTokenRotateParamsSchema);
|
|
1388
|
-
const validateDeviceTokenRevokeParams = ajv.compile(DeviceTokenRevokeParamsSchema);
|
|
1389
|
-
const validateExecApprovalsGetParams = ajv.compile(ExecApprovalsGetParamsSchema);
|
|
1390
|
-
const validateExecApprovalsSetParams = ajv.compile(ExecApprovalsSetParamsSchema);
|
|
1391
|
-
const validateExecApprovalRequestParams = ajv.compile(ExecApprovalRequestParamsSchema);
|
|
1392
|
-
const validateExecApprovalResolveParams = ajv.compile(ExecApprovalResolveParamsSchema);
|
|
1393
|
-
const validateExecApprovalsNodeGetParams = ajv.compile(ExecApprovalsNodeGetParamsSchema);
|
|
1394
|
-
const validateExecApprovalsNodeSetParams = ajv.compile(ExecApprovalsNodeSetParamsSchema);
|
|
1395
|
-
const validateLogsTailParams = ajv.compile(LogsTailParamsSchema);
|
|
1396
|
-
const validateChatHistoryParams = ajv.compile(ChatHistoryParamsSchema);
|
|
1397
|
-
const validateChatSendParams = ajv.compile(ChatSendParamsSchema);
|
|
1398
|
-
const validateChatAbortParams = ajv.compile(ChatAbortParamsSchema);
|
|
1399
|
-
const validateChatInjectParams = ajv.compile(ChatInjectParamsSchema);
|
|
1400
|
-
const validateChatEvent = ajv.compile(ChatEventSchema);
|
|
1401
|
-
const validateUpdateRunParams = ajv.compile(UpdateRunParamsSchema);
|
|
1402
|
-
const validateWebLoginStartParams = ajv.compile(WebLoginStartParamsSchema);
|
|
1403
|
-
const validateWebLoginWaitParams = ajv.compile(WebLoginWaitParamsSchema);
|
|
1404
|
-
function formatValidationErrors(errors) {
|
|
1405
|
-
if (!errors?.length) return "unknown validation error";
|
|
1406
|
-
const parts = [];
|
|
1407
|
-
for (const err of errors) {
|
|
1408
|
-
const keyword = typeof err?.keyword === "string" ? err.keyword : "";
|
|
1409
|
-
const instancePath = typeof err?.instancePath === "string" ? err.instancePath : "";
|
|
1410
|
-
if (keyword === "additionalProperties") {
|
|
1411
|
-
const additionalProperty = (err?.params)?.additionalProperty;
|
|
1412
|
-
if (typeof additionalProperty === "string" && additionalProperty.trim()) {
|
|
1413
|
-
const where = instancePath ? `at ${instancePath}` : "at root";
|
|
1414
|
-
parts.push(`${where}: unexpected property '${additionalProperty}'`);
|
|
1415
|
-
continue;
|
|
1416
|
-
}
|
|
1417
|
-
}
|
|
1418
|
-
const message = typeof err?.message === "string" && err.message.trim() ? err.message : "validation error";
|
|
1419
|
-
const where = instancePath ? `at ${instancePath}: ` : "";
|
|
1420
|
-
parts.push(`${where}${message}`);
|
|
1421
|
-
}
|
|
1422
|
-
const unique = Array.from(new Set(parts.filter((part) => part.trim())));
|
|
1423
|
-
if (!unique.length) return ajv.errorsText(errors, { separator: "; " }) || "unknown validation error";
|
|
1424
|
-
return unique.join("; ");
|
|
1425
|
-
}
|
|
1426
|
-
|
|
1427
|
-
//#endregion
|
|
1428
|
-
//#region src/gateway/client.ts
|
|
1429
|
-
var GatewayClient = class {
|
|
1430
|
-
constructor(opts) {
|
|
1431
|
-
this.ws = null;
|
|
1432
|
-
this.pending = /* @__PURE__ */ new Map();
|
|
1433
|
-
this.backoffMs = 1e3;
|
|
1434
|
-
this.closed = false;
|
|
1435
|
-
this.lastSeq = null;
|
|
1436
|
-
this.connectNonce = null;
|
|
1437
|
-
this.connectSent = false;
|
|
1438
|
-
this.connectTimer = null;
|
|
1439
|
-
this.lastTick = null;
|
|
1440
|
-
this.tickIntervalMs = 3e4;
|
|
1441
|
-
this.tickTimer = null;
|
|
1442
|
-
this.opts = {
|
|
1443
|
-
...opts,
|
|
1444
|
-
deviceIdentity: opts.deviceIdentity ?? loadOrCreateDeviceIdentity()
|
|
1445
|
-
};
|
|
1446
|
-
}
|
|
1447
|
-
start() {
|
|
1448
|
-
if (this.closed) return;
|
|
1449
|
-
const url = this.opts.url ?? "ws://127.0.0.1:18789";
|
|
1450
|
-
if (this.opts.tlsFingerprint && !url.startsWith("wss://")) {
|
|
1451
|
-
this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway tls fingerprint requires wss:// gateway url"));
|
|
1452
|
-
return;
|
|
1453
|
-
}
|
|
1454
|
-
const wsOptions = { maxPayload: 25 * 1024 * 1024 };
|
|
1455
|
-
if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
|
|
1456
|
-
wsOptions.rejectUnauthorized = false;
|
|
1457
|
-
wsOptions.checkServerIdentity = ((_host, cert) => {
|
|
1458
|
-
const fingerprintValue = typeof cert === "object" && cert && "fingerprint256" in cert ? cert.fingerprint256 ?? "" : "";
|
|
1459
|
-
const fingerprint = normalizeFingerprint(typeof fingerprintValue === "string" ? fingerprintValue : "");
|
|
1460
|
-
const expected = normalizeFingerprint(this.opts.tlsFingerprint ?? "");
|
|
1461
|
-
if (!expected) return /* @__PURE__ */ new Error("gateway tls fingerprint missing");
|
|
1462
|
-
if (!fingerprint) return /* @__PURE__ */ new Error("gateway tls fingerprint unavailable");
|
|
1463
|
-
if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
|
|
1464
|
-
});
|
|
1465
|
-
}
|
|
1466
|
-
this.ws = new WebSocket$1(url, wsOptions);
|
|
1467
|
-
this.ws.on("open", () => {
|
|
1468
|
-
if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
|
|
1469
|
-
const tlsError = this.validateTlsFingerprint();
|
|
1470
|
-
if (tlsError) {
|
|
1471
|
-
this.opts.onConnectError?.(tlsError);
|
|
1472
|
-
this.ws?.close(1008, tlsError.message);
|
|
1473
|
-
return;
|
|
1474
|
-
}
|
|
1475
|
-
}
|
|
1476
|
-
this.queueConnect();
|
|
1477
|
-
});
|
|
1478
|
-
this.ws.on("message", (data) => this.handleMessage(rawDataToString(data)));
|
|
1479
|
-
this.ws.on("close", (code, reason) => {
|
|
1480
|
-
const reasonText = rawDataToString(reason);
|
|
1481
|
-
this.ws = null;
|
|
1482
|
-
this.flushPendingErrors(/* @__PURE__ */ new Error(`gateway closed (${code}): ${reasonText}`));
|
|
1483
|
-
this.scheduleReconnect();
|
|
1484
|
-
this.opts.onClose?.(code, reasonText);
|
|
1485
|
-
});
|
|
1486
|
-
this.ws.on("error", (err) => {
|
|
1487
|
-
logDebug(`gateway client error: ${String(err)}`);
|
|
1488
|
-
if (!this.connectSent) this.opts.onConnectError?.(err instanceof Error ? err : new Error(String(err)));
|
|
1489
|
-
});
|
|
1490
|
-
}
|
|
1491
|
-
stop() {
|
|
1492
|
-
this.closed = true;
|
|
1493
|
-
if (this.tickTimer) {
|
|
1494
|
-
clearInterval(this.tickTimer);
|
|
1495
|
-
this.tickTimer = null;
|
|
1496
|
-
}
|
|
1497
|
-
this.ws?.close();
|
|
1498
|
-
this.ws = null;
|
|
1499
|
-
this.flushPendingErrors(/* @__PURE__ */ new Error("gateway client stopped"));
|
|
1500
|
-
}
|
|
1501
|
-
sendConnect() {
|
|
1502
|
-
if (this.connectSent) return;
|
|
1503
|
-
this.connectSent = true;
|
|
1504
|
-
if (this.connectTimer) {
|
|
1505
|
-
clearTimeout(this.connectTimer);
|
|
1506
|
-
this.connectTimer = null;
|
|
1507
|
-
}
|
|
1508
|
-
const role = this.opts.role ?? "operator";
|
|
1509
|
-
const storedToken = this.opts.deviceIdentity ? loadDeviceAuthToken({
|
|
1510
|
-
deviceId: this.opts.deviceIdentity.deviceId,
|
|
1511
|
-
role
|
|
1512
|
-
})?.token : null;
|
|
1513
|
-
const authToken = this.opts.token ?? storedToken ?? void 0;
|
|
1514
|
-
const auth = authToken || this.opts.password ? {
|
|
1515
|
-
token: authToken,
|
|
1516
|
-
password: this.opts.password
|
|
1517
|
-
} : void 0;
|
|
1518
|
-
const signedAtMs = Date.now();
|
|
1519
|
-
const nonce = this.connectNonce ?? void 0;
|
|
1520
|
-
const scopes = this.opts.scopes ?? ["operator.admin"];
|
|
1521
|
-
const device = (() => {
|
|
1522
|
-
if (!this.opts.deviceIdentity) return;
|
|
1523
|
-
const payload = buildDeviceAuthPayload({
|
|
1524
|
-
deviceId: this.opts.deviceIdentity.deviceId,
|
|
1525
|
-
clientId: this.opts.clientName ?? GATEWAY_CLIENT_NAMES.GATEWAY_CLIENT,
|
|
1526
|
-
clientMode: this.opts.mode ?? GATEWAY_CLIENT_MODES.BACKEND,
|
|
1527
|
-
role,
|
|
1528
|
-
scopes,
|
|
1529
|
-
signedAtMs,
|
|
1530
|
-
token: authToken ?? null,
|
|
1531
|
-
nonce
|
|
1532
|
-
});
|
|
1533
|
-
const signature = signDevicePayload(this.opts.deviceIdentity.privateKeyPem, payload);
|
|
1534
|
-
return {
|
|
1535
|
-
id: this.opts.deviceIdentity.deviceId,
|
|
1536
|
-
publicKey: publicKeyRawBase64UrlFromPem(this.opts.deviceIdentity.publicKeyPem),
|
|
1537
|
-
signature,
|
|
1538
|
-
signedAt: signedAtMs,
|
|
1539
|
-
nonce
|
|
1540
|
-
};
|
|
1541
|
-
})();
|
|
1542
|
-
const params = {
|
|
1543
|
-
minProtocol: this.opts.minProtocol ?? PROTOCOL_VERSION,
|
|
1544
|
-
maxProtocol: this.opts.maxProtocol ?? PROTOCOL_VERSION,
|
|
1545
|
-
client: {
|
|
1546
|
-
id: this.opts.clientName ?? GATEWAY_CLIENT_NAMES.GATEWAY_CLIENT,
|
|
1547
|
-
displayName: this.opts.clientDisplayName,
|
|
1548
|
-
version: this.opts.clientVersion ?? "dev",
|
|
1549
|
-
platform: this.opts.platform ?? process.platform,
|
|
1550
|
-
mode: this.opts.mode ?? GATEWAY_CLIENT_MODES.BACKEND,
|
|
1551
|
-
instanceId: this.opts.instanceId
|
|
1552
|
-
},
|
|
1553
|
-
caps: Array.isArray(this.opts.caps) ? this.opts.caps : [],
|
|
1554
|
-
commands: Array.isArray(this.opts.commands) ? this.opts.commands : void 0,
|
|
1555
|
-
permissions: this.opts.permissions && typeof this.opts.permissions === "object" ? this.opts.permissions : void 0,
|
|
1556
|
-
pathEnv: this.opts.pathEnv,
|
|
1557
|
-
auth,
|
|
1558
|
-
role,
|
|
1559
|
-
scopes,
|
|
1560
|
-
device
|
|
1561
|
-
};
|
|
1562
|
-
this.request("connect", params).then((helloOk) => {
|
|
1563
|
-
const authInfo = helloOk?.auth;
|
|
1564
|
-
if (authInfo?.deviceToken && this.opts.deviceIdentity) storeDeviceAuthToken({
|
|
1565
|
-
deviceId: this.opts.deviceIdentity.deviceId,
|
|
1566
|
-
role: authInfo.role ?? role,
|
|
1567
|
-
token: authInfo.deviceToken,
|
|
1568
|
-
scopes: authInfo.scopes ?? []
|
|
1569
|
-
});
|
|
1570
|
-
this.backoffMs = 1e3;
|
|
1571
|
-
this.tickIntervalMs = typeof helloOk.policy?.tickIntervalMs === "number" ? helloOk.policy.tickIntervalMs : 3e4;
|
|
1572
|
-
this.lastTick = Date.now();
|
|
1573
|
-
this.startTickWatch();
|
|
1574
|
-
this.opts.onHelloOk?.(helloOk);
|
|
1575
|
-
}).catch((err) => {
|
|
1576
|
-
this.opts.onConnectError?.(err instanceof Error ? err : new Error(String(err)));
|
|
1577
|
-
const msg = `gateway connect failed: ${String(err)}`;
|
|
1578
|
-
if (this.opts.mode === GATEWAY_CLIENT_MODES.PROBE) logDebug(msg);
|
|
1579
|
-
else logError(msg);
|
|
1580
|
-
this.ws?.close(1008, "connect failed");
|
|
1581
|
-
});
|
|
1582
|
-
}
|
|
1583
|
-
handleMessage(raw) {
|
|
1584
|
-
try {
|
|
1585
|
-
const parsed = JSON.parse(raw);
|
|
1586
|
-
if (validateEventFrame(parsed)) {
|
|
1587
|
-
const evt = parsed;
|
|
1588
|
-
if (evt.event === "connect.challenge") {
|
|
1589
|
-
const payload = evt.payload;
|
|
1590
|
-
const nonce = payload && typeof payload.nonce === "string" ? payload.nonce : null;
|
|
1591
|
-
if (nonce) {
|
|
1592
|
-
this.connectNonce = nonce;
|
|
1593
|
-
this.sendConnect();
|
|
1594
|
-
}
|
|
1595
|
-
return;
|
|
1596
|
-
}
|
|
1597
|
-
const seq = typeof evt.seq === "number" ? evt.seq : null;
|
|
1598
|
-
if (seq !== null) {
|
|
1599
|
-
if (this.lastSeq !== null && seq > this.lastSeq + 1) this.opts.onGap?.({
|
|
1600
|
-
expected: this.lastSeq + 1,
|
|
1601
|
-
received: seq
|
|
1602
|
-
});
|
|
1603
|
-
this.lastSeq = seq;
|
|
1604
|
-
}
|
|
1605
|
-
if (evt.event === "tick") this.lastTick = Date.now();
|
|
1606
|
-
this.opts.onEvent?.(evt);
|
|
1607
|
-
return;
|
|
1608
|
-
}
|
|
1609
|
-
if (validateResponseFrame(parsed)) {
|
|
1610
|
-
const pending = this.pending.get(parsed.id);
|
|
1611
|
-
if (!pending) return;
|
|
1612
|
-
const status = parsed.payload?.status;
|
|
1613
|
-
if (pending.expectFinal && status === "accepted") return;
|
|
1614
|
-
this.pending.delete(parsed.id);
|
|
1615
|
-
if (parsed.ok) pending.resolve(parsed.payload);
|
|
1616
|
-
else pending.reject(new Error(parsed.error?.message ?? "unknown error"));
|
|
1617
|
-
}
|
|
1618
|
-
} catch (err) {
|
|
1619
|
-
logDebug(`gateway client parse error: ${String(err)}`);
|
|
1620
|
-
}
|
|
1621
|
-
}
|
|
1622
|
-
queueConnect() {
|
|
1623
|
-
this.connectNonce = null;
|
|
1624
|
-
this.connectSent = false;
|
|
1625
|
-
const rawConnectDelayMs = this.opts.connectDelayMs;
|
|
1626
|
-
const connectDelayMs = typeof rawConnectDelayMs === "number" && Number.isFinite(rawConnectDelayMs) ? Math.max(0, Math.min(5e3, rawConnectDelayMs)) : 750;
|
|
1627
|
-
if (this.connectTimer) clearTimeout(this.connectTimer);
|
|
1628
|
-
this.connectTimer = setTimeout(() => {
|
|
1629
|
-
this.sendConnect();
|
|
1630
|
-
}, connectDelayMs);
|
|
1631
|
-
}
|
|
1632
|
-
scheduleReconnect() {
|
|
1633
|
-
if (this.closed) return;
|
|
1634
|
-
if (this.tickTimer) {
|
|
1635
|
-
clearInterval(this.tickTimer);
|
|
1636
|
-
this.tickTimer = null;
|
|
1637
|
-
}
|
|
1638
|
-
const delay = this.backoffMs;
|
|
1639
|
-
this.backoffMs = Math.min(this.backoffMs * 2, 3e4);
|
|
1640
|
-
setTimeout(() => this.start(), delay).unref();
|
|
1641
|
-
}
|
|
1642
|
-
flushPendingErrors(err) {
|
|
1643
|
-
for (const [, p] of this.pending) p.reject(err);
|
|
1644
|
-
this.pending.clear();
|
|
1645
|
-
}
|
|
1646
|
-
startTickWatch() {
|
|
1647
|
-
if (this.tickTimer) clearInterval(this.tickTimer);
|
|
1648
|
-
const rawMinInterval = this.opts.tickWatchMinIntervalMs;
|
|
1649
|
-
const minInterval = typeof rawMinInterval === "number" && Number.isFinite(rawMinInterval) ? Math.max(1, Math.min(3e4, rawMinInterval)) : 1e3;
|
|
1650
|
-
const interval = Math.max(this.tickIntervalMs, minInterval);
|
|
1651
|
-
this.tickTimer = setInterval(() => {
|
|
1652
|
-
if (this.closed) return;
|
|
1653
|
-
if (!this.lastTick) return;
|
|
1654
|
-
if (Date.now() - this.lastTick > this.tickIntervalMs * 2) this.ws?.close(4e3, "tick timeout");
|
|
1655
|
-
}, interval);
|
|
1656
|
-
}
|
|
1657
|
-
validateTlsFingerprint() {
|
|
1658
|
-
if (!this.opts.tlsFingerprint || !this.ws) return null;
|
|
1659
|
-
const expected = normalizeFingerprint(this.opts.tlsFingerprint);
|
|
1660
|
-
if (!expected) return /* @__PURE__ */ new Error("gateway tls fingerprint missing");
|
|
1661
|
-
const socket = this.ws._socket;
|
|
1662
|
-
if (!socket || typeof socket.getPeerCertificate !== "function") return /* @__PURE__ */ new Error("gateway tls fingerprint unavailable");
|
|
1663
|
-
const fingerprint = normalizeFingerprint(socket.getPeerCertificate()?.fingerprint256 ?? "");
|
|
1664
|
-
if (!fingerprint) return /* @__PURE__ */ new Error("gateway tls fingerprint unavailable");
|
|
1665
|
-
if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
|
|
1666
|
-
return null;
|
|
1667
|
-
}
|
|
1668
|
-
async request(method, params, opts) {
|
|
1669
|
-
if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
|
|
1670
|
-
const id = randomUUID();
|
|
1671
|
-
const frame = {
|
|
1672
|
-
type: "req",
|
|
1673
|
-
id,
|
|
1674
|
-
method,
|
|
1675
|
-
params
|
|
1676
|
-
};
|
|
1677
|
-
if (!validateRequestFrame(frame)) throw new Error(`invalid request frame: ${JSON.stringify(validateRequestFrame.errors, null, 2)}`);
|
|
1678
|
-
const expectFinal = opts?.expectFinal === true;
|
|
1679
|
-
const p = new Promise((resolve, reject) => {
|
|
1680
|
-
this.pending.set(id, {
|
|
1681
|
-
resolve: (value) => resolve(value),
|
|
1682
|
-
reject,
|
|
1683
|
-
expectFinal
|
|
1684
|
-
});
|
|
1685
|
-
});
|
|
1686
|
-
this.ws.send(JSON.stringify(frame));
|
|
1687
|
-
return p;
|
|
1688
|
-
}
|
|
1689
|
-
};
|
|
1690
|
-
|
|
1691
|
-
//#endregion
|
|
1692
|
-
export { validateNodePairRequestParams as $, validateCronStatusParams as A, SESSION_LABEL_MAX_LENGTH as At, validateExecApprovalsNodeGetParams as B, validateConfigSetParams as C, validateWizardCancelParams as Ct, validateCronRemoveParams as D, PROTOCOL_VERSION as Dt, validateCronListParams as E, validateWizardStatusParams as Et, validateDeviceTokenRevokeParams as F, loadOrCreateDeviceIdentity as Ft, validateNodeDescribeParams as G, validateExecApprovalsSetParams as H, validateDeviceTokenRotateParams as I, normalizeDevicePublicKeyBase64Url as It, validateNodeInvokeResultParams as J, validateNodeEventParams as K, validateExecApprovalRequestParams as L, verifyDeviceSignature as Lt, validateDevicePairApproveParams as M, buildDeviceAuthPayload as Mt, validateDevicePairListParams as N, normalizeFingerprint as Nt, validateCronRunParams as O, ErrorCodes as Ot, validateDevicePairRejectParams as P, deriveDeviceIdFromPublicKey as Pt, validateNodePairRejectParams as Q, validateExecApprovalResolveParams as R, validateConfigSchemaParams as S, validateWebLoginWaitParams as St, validateCronAddParams as T, validateWizardStartParams as Tt, validateLogsTailParams as U, validateExecApprovalsNodeSetParams as V, validateModelsListParams as W, validateNodePairApproveParams as X, validateNodeListParams as Y, validateNodePairListParams as Z, validateChatInjectParams as _, validateTalkConfigParams as _t, validateAgentWaitParams as a, validateSessionsCompactParams as at, validateConfigGetParams as b, validateWakeParams as bt, validateAgentsFilesGetParams as c, validateSessionsPatchParams as ct, validateAgentsListParams as d, validateSessionsResolveParams as dt, validateNodePairVerifyParams as et, validateAgentsUpdateParams as f, validateSessionsUsageParams as ft, validateChatHistoryParams as g, validateSkillsUpdateParams as gt, validateChatAbortParams as h, validateSkillsStatusParams as ht, validateAgentParams as i, validateSendParams as it, validateCronUpdateParams as j, parseSessionLabel as jt, validateCronRunsParams as k, errorShape as kt, validateAgentsFilesListParams as l, validateSessionsPreviewParams as lt, validateChannelsStatusParams as m, validateSkillsInstallParams as mt, formatValidationErrors as n, validatePollParams as nt, validateAgentsCreateParams as o, validateSessionsDeleteParams as ot, validateChannelsLogoutParams as p, validateSkillsBinsParams as pt, validateNodeInvokeParams as q, validateAgentIdentityParams as r, validateRequestFrame as rt, validateAgentsDeleteParams as s, validateSessionsListParams as st, GatewayClient as t, validateNodeRenameParams as tt, validateAgentsFilesSetParams as u, validateSessionsResetParams as ut, validateChatSendParams as v, validateTalkModeParams as vt, validateConnectParams as w, validateWizardNextParams as wt, validateConfigPatchParams as x, validateWebLoginStartParams as xt, validateConfigApplyParams as y, validateUpdateRunParams as yt, validateExecApprovalsGetParams as z };
|