@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
|
@@ -1,1003 +0,0 @@
|
|
|
1
|
-
import "./paths-C6VCWKo3.js";
|
|
2
|
-
import { B as theme, P as setVerbose, _ as DEFAULT_CHAT_CHANNEL, u as defaultRuntime } from "./subsystem-Dowf8fSU.js";
|
|
3
|
-
import { C as shortenHomePath, b as resolveUserPath } from "./utils-Bsw__U-F.js";
|
|
4
|
-
import "./thinking-BLU0jXR8.js";
|
|
5
|
-
import "./subagent-registry-9RLdKxES.js";
|
|
6
|
-
import "./reply-qalRISe_.js";
|
|
7
|
-
import { l as normalizeAgentId, n as DEFAULT_AGENT_ID, t as DEFAULT_ACCOUNT_ID } from "./session-key-DxcgHezu.js";
|
|
8
|
-
import "./exec-Bv3pyjeM.js";
|
|
9
|
-
import { c as resolveDefaultAgentId, h as DEFAULT_IDENTITY_FILENAME, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds } from "./agent-scope-V1bi9OYL.js";
|
|
10
|
-
import { _t as resolveAuthStorePath, mt as ensureAuthProfileStore } from "./model-selection-YcSr9CgC.js";
|
|
11
|
-
import { t as formatCliCommand } from "./command-format-DELazozB.js";
|
|
12
|
-
import "./boolean-Wzu0-e0P.js";
|
|
13
|
-
import "./env-0lJfCPsw.js";
|
|
14
|
-
import "./lanes-CNxj3tit.js";
|
|
15
|
-
import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot } from "./config-SY8M0kM_.js";
|
|
16
|
-
import "./manifest-registry-CW1zCyRF.js";
|
|
17
|
-
import "./sessions-BfV53TbG.js";
|
|
18
|
-
import "./image-ops-omlvdfah.js";
|
|
19
|
-
import "./polls-CItfB1H8.js";
|
|
20
|
-
import "./mime-C1RlpUSs.js";
|
|
21
|
-
import "./cli-session-BkPTd9Pk.js";
|
|
22
|
-
import "./dock-cPBY4qGl.js";
|
|
23
|
-
import "./logging-54nXj81z.js";
|
|
24
|
-
import "./accounts-Cc5E4IDO.js";
|
|
25
|
-
import "./tokens-DkvqA72p.js";
|
|
26
|
-
import "./sandbox-DxP3IpUP.js";
|
|
27
|
-
import "./chrome-DScZx4Lk.js";
|
|
28
|
-
import "./auth-91o2YM96.js";
|
|
29
|
-
import "./server-context-LrlgrZzS.js";
|
|
30
|
-
import "./skills-B-G7UHOa.js";
|
|
31
|
-
import "./routes-CENsHJyg.js";
|
|
32
|
-
import "./paths-BgUi2Z2G.js";
|
|
33
|
-
import "./ports-D94CwCrv.js";
|
|
34
|
-
import "./trash-_x5UZ94k.js";
|
|
35
|
-
import { h as GATEWAY_CLIENT_NAMES, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES } from "./message-channel-dSTVVCyX.js";
|
|
36
|
-
import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CmSUIUNi.js";
|
|
37
|
-
import { s as resolveSessionTranscriptsDirForAgent } from "./paths-hcX1Gqg5.js";
|
|
38
|
-
import "./commands-registry-DYfRSVF3.js";
|
|
39
|
-
import "./markdown-tables-DHgOK2vI.js";
|
|
40
|
-
import "./deliver-xrmk7xjh.js";
|
|
41
|
-
import "./pairing-store-DJz_9Gv0.js";
|
|
42
|
-
import "./client-CC94YZrT.js";
|
|
43
|
-
import { i as randomIdempotencyKey, n as callGateway } from "./call-Ct7EGP_L.js";
|
|
44
|
-
import "./nodes-screen-1YiLkqr5.js";
|
|
45
|
-
import "./memory-cli-Jmma-xI_.js";
|
|
46
|
-
import "./manager-Cqc1CeH7.js";
|
|
47
|
-
import "./sqlite-CGcOZZ0C.js";
|
|
48
|
-
import "./redact-BHmk44DI.js";
|
|
49
|
-
import "./common-zW9Y2P1B.js";
|
|
50
|
-
import { t as formatDocsLink } from "./links-DPGe0OHw.js";
|
|
51
|
-
import { n as runCommandWithRuntime } from "./cli-utils-BTBABPX9.js";
|
|
52
|
-
import { n as withProgress } from "./progress-Bek_GyWS.js";
|
|
53
|
-
import "./control-service-C8m8F9pr.js";
|
|
54
|
-
import "./dispatcher-3Jae6AiW.js";
|
|
55
|
-
import "./pi-model-discovery-BkqhoPls.js";
|
|
56
|
-
import "./channel-selection-CujyiWGM.js";
|
|
57
|
-
import "./delivery-queue-TnQykYsg.js";
|
|
58
|
-
import "./pi-tools.policy-D81U5xy0.js";
|
|
59
|
-
import "./session-cost-usage-DT9YNXTJ.js";
|
|
60
|
-
import { t as createDefaultDeps } from "./deps-CMMOiOsF.js";
|
|
61
|
-
import { t as collectOption } from "./helpers-9N2Q5aZj.js";
|
|
62
|
-
import "./catalog-BNsf97BM.js";
|
|
63
|
-
import { t as formatHelpExamples } from "./help-format-Dl4bsrLI.js";
|
|
64
|
-
import "./prompt-style-lu0clOOE.js";
|
|
65
|
-
import "./note-Bi8Wb8DV.js";
|
|
66
|
-
import { t as WizardCancelledError } from "./prompts-BI__va99.js";
|
|
67
|
-
import { t as createClackPrompter } from "./clack-prompter-B1YxZdRy.js";
|
|
68
|
-
import { t as resolveChannelDefaultAccountId } from "./helpers-eJFa4K6r.js";
|
|
69
|
-
import "./plugin-auto-enable-jNaAeyEh.js";
|
|
70
|
-
import { n as setupChannels } from "./onboard-channels-Cg_EkBa4.js";
|
|
71
|
-
import "./npm-registry-spec-B-XIShkB.js";
|
|
72
|
-
import "./skill-scanner-Coo4QoCd.js";
|
|
73
|
-
import "./installs-C2iMRBVz.js";
|
|
74
|
-
import { t as hasExplicitOptions } from "./command-options-CSbuuqHr.js";
|
|
75
|
-
import { a as ensureWorkspaceAndSessions, l as moveToTrash } from "./onboard-helpers-_XgJgeqh.js";
|
|
76
|
-
import { n as warnIfModelConfigLooksOff, r as applyAuthChoice, u as promptAuthChoiceGrouped } from "./auth-choice-CAmACV13.js";
|
|
77
|
-
import "./github-copilot-auth-C9E0IROs.js";
|
|
78
|
-
import { n as logConfigUpdated } from "./logging-mcb66J0p.js";
|
|
79
|
-
import { a as loadAgentIdentity, i as listAgentEntries, l as parseIdentityMarkdown, n as buildAgentSummaries, o as pruneAgentConfig, r as findAgentEntryIndex, s as identityHasValues, t as applyAgentConfig } from "./agents.config-d6H0_3oj.js";
|
|
80
|
-
import { n as resolveSessionKeyForRequest, t as agentCommand } from "./agent-Cuj9-2sT.js";
|
|
81
|
-
import path from "node:path";
|
|
82
|
-
import fs from "node:fs/promises";
|
|
83
|
-
|
|
84
|
-
//#region src/commands/agent-via-gateway.ts
|
|
85
|
-
const NO_GATEWAY_TIMEOUT_MS = 2147e6;
|
|
86
|
-
function parseTimeoutSeconds(opts) {
|
|
87
|
-
const raw = opts.timeout !== void 0 ? Number.parseInt(String(opts.timeout), 10) : opts.cfg.agents?.defaults?.timeoutSeconds ?? 600;
|
|
88
|
-
if (Number.isNaN(raw) || raw < 0) throw new Error("--timeout must be a non-negative integer (seconds; 0 means no timeout)");
|
|
89
|
-
return raw;
|
|
90
|
-
}
|
|
91
|
-
function formatPayloadForLog(payload) {
|
|
92
|
-
const lines = [];
|
|
93
|
-
if (payload.text) lines.push(payload.text.trimEnd());
|
|
94
|
-
const mediaUrl = typeof payload.mediaUrl === "string" && payload.mediaUrl.trim() ? payload.mediaUrl.trim() : void 0;
|
|
95
|
-
const media = payload.mediaUrls ?? (mediaUrl ? [mediaUrl] : []);
|
|
96
|
-
for (const url of media) lines.push(`MEDIA:${url}`);
|
|
97
|
-
return lines.join("\n").trimEnd();
|
|
98
|
-
}
|
|
99
|
-
async function agentViaGatewayCommand(opts, runtime) {
|
|
100
|
-
const body = (opts.message ?? "").trim();
|
|
101
|
-
if (!body) throw new Error("Message (--message) is required");
|
|
102
|
-
if (!opts.to && !opts.sessionId && !opts.agent) throw new Error("Pass --to <E.164>, --session-id, or --agent to choose a session");
|
|
103
|
-
const cfg = loadConfig();
|
|
104
|
-
const agentIdRaw = opts.agent?.trim();
|
|
105
|
-
const agentId = agentIdRaw ? normalizeAgentId(agentIdRaw) : void 0;
|
|
106
|
-
if (agentId) {
|
|
107
|
-
if (!listAgentIds(cfg).includes(agentId)) throw new Error(`Unknown agent id "${agentIdRaw}". Use "${formatCliCommand("anima agents list")}" to see configured agents.`);
|
|
108
|
-
}
|
|
109
|
-
const timeoutSeconds = parseTimeoutSeconds({
|
|
110
|
-
cfg,
|
|
111
|
-
timeout: opts.timeout
|
|
112
|
-
});
|
|
113
|
-
const gatewayTimeoutMs = timeoutSeconds === 0 ? NO_GATEWAY_TIMEOUT_MS : Math.max(1e4, (timeoutSeconds + 30) * 1e3);
|
|
114
|
-
const sessionKey = resolveSessionKeyForRequest({
|
|
115
|
-
cfg,
|
|
116
|
-
agentId,
|
|
117
|
-
to: opts.to,
|
|
118
|
-
sessionId: opts.sessionId
|
|
119
|
-
}).sessionKey;
|
|
120
|
-
const channel = normalizeMessageChannel(opts.channel) ?? DEFAULT_CHAT_CHANNEL;
|
|
121
|
-
const idempotencyKey = opts.runId?.trim() || randomIdempotencyKey();
|
|
122
|
-
const response = await withProgress({
|
|
123
|
-
label: "Waiting for agent reply…",
|
|
124
|
-
indeterminate: true,
|
|
125
|
-
enabled: opts.json !== true
|
|
126
|
-
}, async () => await callGateway({
|
|
127
|
-
method: "agent",
|
|
128
|
-
params: {
|
|
129
|
-
message: body,
|
|
130
|
-
agentId,
|
|
131
|
-
to: opts.to,
|
|
132
|
-
replyTo: opts.replyTo,
|
|
133
|
-
sessionId: opts.sessionId,
|
|
134
|
-
sessionKey,
|
|
135
|
-
thinking: opts.thinking,
|
|
136
|
-
deliver: Boolean(opts.deliver),
|
|
137
|
-
channel,
|
|
138
|
-
replyChannel: opts.replyChannel,
|
|
139
|
-
replyAccountId: opts.replyAccount,
|
|
140
|
-
timeout: timeoutSeconds,
|
|
141
|
-
lane: opts.lane,
|
|
142
|
-
extraSystemPrompt: opts.extraSystemPrompt,
|
|
143
|
-
idempotencyKey
|
|
144
|
-
},
|
|
145
|
-
expectFinal: true,
|
|
146
|
-
timeoutMs: gatewayTimeoutMs,
|
|
147
|
-
clientName: GATEWAY_CLIENT_NAMES.CLI,
|
|
148
|
-
mode: GATEWAY_CLIENT_MODES.CLI
|
|
149
|
-
}));
|
|
150
|
-
if (opts.json) {
|
|
151
|
-
runtime.log(JSON.stringify(response, null, 2));
|
|
152
|
-
return response;
|
|
153
|
-
}
|
|
154
|
-
const payloads = (response?.result)?.payloads ?? [];
|
|
155
|
-
if (payloads.length === 0) {
|
|
156
|
-
runtime.log(response?.summary ? String(response.summary) : "No reply from agent.");
|
|
157
|
-
return response;
|
|
158
|
-
}
|
|
159
|
-
for (const payload of payloads) {
|
|
160
|
-
const out = formatPayloadForLog(payload);
|
|
161
|
-
if (out) runtime.log(out);
|
|
162
|
-
}
|
|
163
|
-
return response;
|
|
164
|
-
}
|
|
165
|
-
async function agentCliCommand(opts, runtime, deps) {
|
|
166
|
-
const localOpts = {
|
|
167
|
-
...opts,
|
|
168
|
-
agentId: opts.agent,
|
|
169
|
-
replyAccountId: opts.replyAccount
|
|
170
|
-
};
|
|
171
|
-
if (opts.local === true) return await agentCommand(localOpts, runtime, deps);
|
|
172
|
-
try {
|
|
173
|
-
return await agentViaGatewayCommand(opts, runtime);
|
|
174
|
-
} catch (err) {
|
|
175
|
-
runtime.error?.(`Gateway agent failed; falling back to embedded: ${String(err)}`);
|
|
176
|
-
return await agentCommand(localOpts, runtime, deps);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
//#endregion
|
|
181
|
-
//#region src/commands/agents.bindings.ts
|
|
182
|
-
function bindingMatchKey(match) {
|
|
183
|
-
const accountId = match.accountId?.trim() || DEFAULT_ACCOUNT_ID;
|
|
184
|
-
return [
|
|
185
|
-
match.channel,
|
|
186
|
-
accountId,
|
|
187
|
-
match.peer?.kind ?? "",
|
|
188
|
-
match.peer?.id ?? "",
|
|
189
|
-
match.guildId ?? "",
|
|
190
|
-
match.teamId ?? ""
|
|
191
|
-
].join("|");
|
|
192
|
-
}
|
|
193
|
-
function describeBinding(binding) {
|
|
194
|
-
const match = binding.match;
|
|
195
|
-
const parts = [match.channel];
|
|
196
|
-
if (match.accountId) parts.push(`accountId=${match.accountId}`);
|
|
197
|
-
if (match.peer) parts.push(`peer=${match.peer.kind}:${match.peer.id}`);
|
|
198
|
-
if (match.guildId) parts.push(`guild=${match.guildId}`);
|
|
199
|
-
if (match.teamId) parts.push(`team=${match.teamId}`);
|
|
200
|
-
return parts.join(" ");
|
|
201
|
-
}
|
|
202
|
-
function applyAgentBindings(cfg, bindings) {
|
|
203
|
-
const existing = cfg.bindings ?? [];
|
|
204
|
-
const existingMatchMap = /* @__PURE__ */ new Map();
|
|
205
|
-
for (const binding of existing) {
|
|
206
|
-
const key = bindingMatchKey(binding.match);
|
|
207
|
-
if (!existingMatchMap.has(key)) existingMatchMap.set(key, normalizeAgentId(binding.agentId));
|
|
208
|
-
}
|
|
209
|
-
const added = [];
|
|
210
|
-
const skipped = [];
|
|
211
|
-
const conflicts = [];
|
|
212
|
-
for (const binding of bindings) {
|
|
213
|
-
const agentId = normalizeAgentId(binding.agentId);
|
|
214
|
-
const key = bindingMatchKey(binding.match);
|
|
215
|
-
const existingAgentId = existingMatchMap.get(key);
|
|
216
|
-
if (existingAgentId) {
|
|
217
|
-
if (existingAgentId === agentId) skipped.push(binding);
|
|
218
|
-
else conflicts.push({
|
|
219
|
-
binding,
|
|
220
|
-
existingAgentId
|
|
221
|
-
});
|
|
222
|
-
continue;
|
|
223
|
-
}
|
|
224
|
-
existingMatchMap.set(key, agentId);
|
|
225
|
-
added.push({
|
|
226
|
-
...binding,
|
|
227
|
-
agentId
|
|
228
|
-
});
|
|
229
|
-
}
|
|
230
|
-
if (added.length === 0) return {
|
|
231
|
-
config: cfg,
|
|
232
|
-
added,
|
|
233
|
-
skipped,
|
|
234
|
-
conflicts
|
|
235
|
-
};
|
|
236
|
-
return {
|
|
237
|
-
config: {
|
|
238
|
-
...cfg,
|
|
239
|
-
bindings: [...existing, ...added]
|
|
240
|
-
},
|
|
241
|
-
added,
|
|
242
|
-
skipped,
|
|
243
|
-
conflicts
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
function resolveDefaultAccountId$1(cfg, provider) {
|
|
247
|
-
const plugin = getChannelPlugin(provider);
|
|
248
|
-
if (!plugin) return DEFAULT_ACCOUNT_ID;
|
|
249
|
-
return resolveChannelDefaultAccountId({
|
|
250
|
-
plugin,
|
|
251
|
-
cfg
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
function buildChannelBindings(params) {
|
|
255
|
-
const bindings = [];
|
|
256
|
-
const agentId = normalizeAgentId(params.agentId);
|
|
257
|
-
for (const channel of params.selection) {
|
|
258
|
-
const match = { channel };
|
|
259
|
-
const accountId = params.accountIds?.[channel]?.trim();
|
|
260
|
-
if (accountId) match.accountId = accountId;
|
|
261
|
-
else if (getChannelPlugin(channel)?.meta.forceAccountBinding) match.accountId = resolveDefaultAccountId$1(params.config, channel);
|
|
262
|
-
bindings.push({
|
|
263
|
-
agentId,
|
|
264
|
-
match
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
return bindings;
|
|
268
|
-
}
|
|
269
|
-
function parseBindingSpecs(params) {
|
|
270
|
-
const bindings = [];
|
|
271
|
-
const errors = [];
|
|
272
|
-
const specs = params.specs ?? [];
|
|
273
|
-
const agentId = normalizeAgentId(params.agentId);
|
|
274
|
-
for (const raw of specs) {
|
|
275
|
-
const trimmed = raw?.trim();
|
|
276
|
-
if (!trimmed) continue;
|
|
277
|
-
const [channelRaw, accountRaw] = trimmed.split(":", 2);
|
|
278
|
-
const channel = normalizeChannelId(channelRaw);
|
|
279
|
-
if (!channel) {
|
|
280
|
-
errors.push(`Unknown channel "${channelRaw}".`);
|
|
281
|
-
continue;
|
|
282
|
-
}
|
|
283
|
-
let accountId = accountRaw?.trim();
|
|
284
|
-
if (accountRaw !== void 0 && !accountId) {
|
|
285
|
-
errors.push(`Invalid binding "${trimmed}" (empty account id).`);
|
|
286
|
-
continue;
|
|
287
|
-
}
|
|
288
|
-
if (!accountId) {
|
|
289
|
-
if (getChannelPlugin(channel)?.meta.forceAccountBinding) accountId = resolveDefaultAccountId$1(params.config, channel);
|
|
290
|
-
}
|
|
291
|
-
const match = { channel };
|
|
292
|
-
if (accountId) match.accountId = accountId;
|
|
293
|
-
bindings.push({
|
|
294
|
-
agentId,
|
|
295
|
-
match
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
|
-
return {
|
|
299
|
-
bindings,
|
|
300
|
-
errors
|
|
301
|
-
};
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
//#endregion
|
|
305
|
-
//#region src/commands/agents.command-shared.ts
|
|
306
|
-
function createQuietRuntime(runtime) {
|
|
307
|
-
return {
|
|
308
|
-
...runtime,
|
|
309
|
-
log: () => {}
|
|
310
|
-
};
|
|
311
|
-
}
|
|
312
|
-
async function requireValidConfig(runtime) {
|
|
313
|
-
const snapshot = await readConfigFileSnapshot();
|
|
314
|
-
if (snapshot.exists && !snapshot.valid) {
|
|
315
|
-
const issues = snapshot.issues.length > 0 ? snapshot.issues.map((issue) => `- ${issue.path}: ${issue.message}`).join("\n") : "Unknown validation issue.";
|
|
316
|
-
runtime.error(`Config invalid:\n${issues}`);
|
|
317
|
-
runtime.error(`Fix the config or run ${formatCliCommand("anima doctor")}.`);
|
|
318
|
-
runtime.exit(1);
|
|
319
|
-
return null;
|
|
320
|
-
}
|
|
321
|
-
return snapshot.config;
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
//#endregion
|
|
325
|
-
//#region src/commands/agents.commands.add.ts
|
|
326
|
-
async function fileExists(pathname) {
|
|
327
|
-
try {
|
|
328
|
-
await fs.stat(pathname);
|
|
329
|
-
return true;
|
|
330
|
-
} catch {
|
|
331
|
-
return false;
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
async function agentsAddCommand(opts, runtime = defaultRuntime, params) {
|
|
335
|
-
const cfg = await requireValidConfig(runtime);
|
|
336
|
-
if (!cfg) return;
|
|
337
|
-
const workspaceFlag = opts.workspace?.trim();
|
|
338
|
-
const nameInput = opts.name?.trim();
|
|
339
|
-
const hasFlags = params?.hasFlags === true;
|
|
340
|
-
const nonInteractive = Boolean(opts.nonInteractive || hasFlags);
|
|
341
|
-
if (nonInteractive && !workspaceFlag) {
|
|
342
|
-
runtime.error("Non-interactive mode requires --workspace. Re-run without flags to use the wizard.");
|
|
343
|
-
runtime.exit(1);
|
|
344
|
-
return;
|
|
345
|
-
}
|
|
346
|
-
if (nonInteractive) {
|
|
347
|
-
if (!nameInput) {
|
|
348
|
-
runtime.error("Agent name is required in non-interactive mode.");
|
|
349
|
-
runtime.exit(1);
|
|
350
|
-
return;
|
|
351
|
-
}
|
|
352
|
-
if (!workspaceFlag) {
|
|
353
|
-
runtime.error("Non-interactive mode requires --workspace. Re-run without flags to use the wizard.");
|
|
354
|
-
runtime.exit(1);
|
|
355
|
-
return;
|
|
356
|
-
}
|
|
357
|
-
const agentId = normalizeAgentId(nameInput);
|
|
358
|
-
if (agentId === DEFAULT_AGENT_ID) {
|
|
359
|
-
runtime.error(`"${DEFAULT_AGENT_ID}" is reserved. Choose another name.`);
|
|
360
|
-
runtime.exit(1);
|
|
361
|
-
return;
|
|
362
|
-
}
|
|
363
|
-
if (agentId !== nameInput) runtime.log(`Normalized agent id to "${agentId}".`);
|
|
364
|
-
if (findAgentEntryIndex(listAgentEntries(cfg), agentId) >= 0) {
|
|
365
|
-
runtime.error(`Agent "${agentId}" already exists.`);
|
|
366
|
-
runtime.exit(1);
|
|
367
|
-
return;
|
|
368
|
-
}
|
|
369
|
-
const workspaceDir = resolveUserPath(workspaceFlag);
|
|
370
|
-
const agentDir = opts.agentDir?.trim() ? resolveUserPath(opts.agentDir.trim()) : resolveAgentDir(cfg, agentId);
|
|
371
|
-
const model = opts.model?.trim();
|
|
372
|
-
const nextConfig = applyAgentConfig(cfg, {
|
|
373
|
-
agentId,
|
|
374
|
-
name: nameInput,
|
|
375
|
-
workspace: workspaceDir,
|
|
376
|
-
agentDir,
|
|
377
|
-
...model ? { model } : {}
|
|
378
|
-
});
|
|
379
|
-
const bindingParse = parseBindingSpecs({
|
|
380
|
-
agentId,
|
|
381
|
-
specs: opts.bind,
|
|
382
|
-
config: nextConfig
|
|
383
|
-
});
|
|
384
|
-
if (bindingParse.errors.length > 0) {
|
|
385
|
-
runtime.error(bindingParse.errors.join("\n"));
|
|
386
|
-
runtime.exit(1);
|
|
387
|
-
return;
|
|
388
|
-
}
|
|
389
|
-
const bindingResult = bindingParse.bindings.length > 0 ? applyAgentBindings(nextConfig, bindingParse.bindings) : {
|
|
390
|
-
config: nextConfig,
|
|
391
|
-
added: [],
|
|
392
|
-
skipped: [],
|
|
393
|
-
conflicts: []
|
|
394
|
-
};
|
|
395
|
-
await writeConfigFile(bindingResult.config);
|
|
396
|
-
if (!opts.json) logConfigUpdated(runtime);
|
|
397
|
-
await ensureWorkspaceAndSessions(workspaceDir, opts.json ? createQuietRuntime(runtime) : runtime, {
|
|
398
|
-
skipBootstrap: Boolean(bindingResult.config.agents?.defaults?.skipBootstrap),
|
|
399
|
-
agentId
|
|
400
|
-
});
|
|
401
|
-
const payload = {
|
|
402
|
-
agentId,
|
|
403
|
-
name: nameInput,
|
|
404
|
-
workspace: workspaceDir,
|
|
405
|
-
agentDir,
|
|
406
|
-
model,
|
|
407
|
-
bindings: {
|
|
408
|
-
added: bindingResult.added.map(describeBinding),
|
|
409
|
-
skipped: bindingResult.skipped.map(describeBinding),
|
|
410
|
-
conflicts: bindingResult.conflicts.map((conflict) => `${describeBinding(conflict.binding)} (agent=${conflict.existingAgentId})`)
|
|
411
|
-
}
|
|
412
|
-
};
|
|
413
|
-
if (opts.json) runtime.log(JSON.stringify(payload, null, 2));
|
|
414
|
-
else {
|
|
415
|
-
runtime.log(`Agent: ${agentId}`);
|
|
416
|
-
runtime.log(`Workspace: ${shortenHomePath(workspaceDir)}`);
|
|
417
|
-
runtime.log(`Agent dir: ${shortenHomePath(agentDir)}`);
|
|
418
|
-
if (model) runtime.log(`Model: ${model}`);
|
|
419
|
-
if (bindingResult.conflicts.length > 0) runtime.error(["Skipped bindings already claimed by another agent:", ...bindingResult.conflicts.map((conflict) => `- ${describeBinding(conflict.binding)} (agent=${conflict.existingAgentId})`)].join("\n"));
|
|
420
|
-
}
|
|
421
|
-
return;
|
|
422
|
-
}
|
|
423
|
-
const prompter = createClackPrompter();
|
|
424
|
-
try {
|
|
425
|
-
await prompter.intro("Add Anima agent");
|
|
426
|
-
const name = nameInput ?? await prompter.text({
|
|
427
|
-
message: "Agent name",
|
|
428
|
-
validate: (value) => {
|
|
429
|
-
if (!value?.trim()) return "Required";
|
|
430
|
-
if (normalizeAgentId(value) === DEFAULT_AGENT_ID) return `"${DEFAULT_AGENT_ID}" is reserved. Choose another name.`;
|
|
431
|
-
}
|
|
432
|
-
});
|
|
433
|
-
const agentName = String(name ?? "").trim();
|
|
434
|
-
const agentId = normalizeAgentId(agentName);
|
|
435
|
-
if (agentName !== agentId) await prompter.note(`Normalized id to "${agentId}".`, "Agent id");
|
|
436
|
-
if (listAgentEntries(cfg).find((agent) => normalizeAgentId(agent.id) === agentId)) {
|
|
437
|
-
if (!await prompter.confirm({
|
|
438
|
-
message: `Agent "${agentId}" already exists. Update it?`,
|
|
439
|
-
initialValue: false
|
|
440
|
-
})) {
|
|
441
|
-
await prompter.outro("No changes made.");
|
|
442
|
-
return;
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
const workspaceDefault = resolveAgentWorkspaceDir(cfg, agentId);
|
|
446
|
-
const workspaceInput = await prompter.text({
|
|
447
|
-
message: "Workspace directory",
|
|
448
|
-
initialValue: workspaceDefault,
|
|
449
|
-
validate: (value) => value?.trim() ? void 0 : "Required"
|
|
450
|
-
});
|
|
451
|
-
const workspaceDir = resolveUserPath(String(workspaceInput ?? "").trim() || workspaceDefault);
|
|
452
|
-
const agentDir = resolveAgentDir(cfg, agentId);
|
|
453
|
-
let nextConfig = applyAgentConfig(cfg, {
|
|
454
|
-
agentId,
|
|
455
|
-
name: agentName,
|
|
456
|
-
workspace: workspaceDir,
|
|
457
|
-
agentDir
|
|
458
|
-
});
|
|
459
|
-
const defaultAgentId = resolveDefaultAgentId(cfg);
|
|
460
|
-
if (defaultAgentId !== agentId) {
|
|
461
|
-
const sourceAuthPath = resolveAuthStorePath(resolveAgentDir(cfg, defaultAgentId));
|
|
462
|
-
const destAuthPath = resolveAuthStorePath(agentDir);
|
|
463
|
-
if (!(path.resolve(sourceAuthPath).toLowerCase() === path.resolve(destAuthPath).toLowerCase()) && await fileExists(sourceAuthPath) && !await fileExists(destAuthPath)) {
|
|
464
|
-
if (await prompter.confirm({
|
|
465
|
-
message: `Copy auth profiles from "${defaultAgentId}"?`,
|
|
466
|
-
initialValue: false
|
|
467
|
-
})) {
|
|
468
|
-
await fs.mkdir(path.dirname(destAuthPath), { recursive: true });
|
|
469
|
-
await fs.copyFile(sourceAuthPath, destAuthPath);
|
|
470
|
-
await prompter.note(`Copied auth profiles from "${defaultAgentId}".`, "Auth profiles");
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
|
-
if (await prompter.confirm({
|
|
475
|
-
message: "Configure model/auth for this agent now?",
|
|
476
|
-
initialValue: false
|
|
477
|
-
})) {
|
|
478
|
-
const authResult = await applyAuthChoice({
|
|
479
|
-
authChoice: await promptAuthChoiceGrouped({
|
|
480
|
-
prompter,
|
|
481
|
-
store: ensureAuthProfileStore(agentDir, { allowKeychainPrompt: false }),
|
|
482
|
-
includeSkip: true
|
|
483
|
-
}),
|
|
484
|
-
config: nextConfig,
|
|
485
|
-
prompter,
|
|
486
|
-
runtime,
|
|
487
|
-
agentDir,
|
|
488
|
-
setDefaultModel: false,
|
|
489
|
-
agentId
|
|
490
|
-
});
|
|
491
|
-
nextConfig = authResult.config;
|
|
492
|
-
if (authResult.agentModelOverride) nextConfig = applyAgentConfig(nextConfig, {
|
|
493
|
-
agentId,
|
|
494
|
-
model: authResult.agentModelOverride
|
|
495
|
-
});
|
|
496
|
-
}
|
|
497
|
-
await warnIfModelConfigLooksOff(nextConfig, prompter, {
|
|
498
|
-
agentId,
|
|
499
|
-
agentDir
|
|
500
|
-
});
|
|
501
|
-
let selection = [];
|
|
502
|
-
const channelAccountIds = {};
|
|
503
|
-
nextConfig = await setupChannels(nextConfig, runtime, prompter, {
|
|
504
|
-
allowSignalInstall: true,
|
|
505
|
-
onSelection: (value) => {
|
|
506
|
-
selection = value;
|
|
507
|
-
},
|
|
508
|
-
promptAccountIds: true,
|
|
509
|
-
onAccountId: (channel, accountId) => {
|
|
510
|
-
channelAccountIds[channel] = accountId;
|
|
511
|
-
}
|
|
512
|
-
});
|
|
513
|
-
if (selection.length > 0) if (await prompter.confirm({
|
|
514
|
-
message: "Route selected channels to this agent now? (bindings)",
|
|
515
|
-
initialValue: false
|
|
516
|
-
})) {
|
|
517
|
-
const desiredBindings = buildChannelBindings({
|
|
518
|
-
agentId,
|
|
519
|
-
selection,
|
|
520
|
-
config: nextConfig,
|
|
521
|
-
accountIds: channelAccountIds
|
|
522
|
-
});
|
|
523
|
-
const result = applyAgentBindings(nextConfig, desiredBindings);
|
|
524
|
-
nextConfig = result.config;
|
|
525
|
-
if (result.conflicts.length > 0) await prompter.note(["Skipped bindings already claimed by another agent:", ...result.conflicts.map((conflict) => `- ${describeBinding(conflict.binding)} (agent=${conflict.existingAgentId})`)].join("\n"), "Routing bindings");
|
|
526
|
-
} else await prompter.note(["Routing unchanged. Add bindings when you're ready.", "Docs: https://docs.anima.ai/concepts/multi-agent"].join("\n"), "Routing");
|
|
527
|
-
await writeConfigFile(nextConfig);
|
|
528
|
-
logConfigUpdated(runtime);
|
|
529
|
-
await ensureWorkspaceAndSessions(workspaceDir, runtime, {
|
|
530
|
-
skipBootstrap: Boolean(nextConfig.agents?.defaults?.skipBootstrap),
|
|
531
|
-
agentId
|
|
532
|
-
});
|
|
533
|
-
const payload = {
|
|
534
|
-
agentId,
|
|
535
|
-
name: agentName,
|
|
536
|
-
workspace: workspaceDir,
|
|
537
|
-
agentDir
|
|
538
|
-
};
|
|
539
|
-
if (opts.json) runtime.log(JSON.stringify(payload, null, 2));
|
|
540
|
-
await prompter.outro(`Agent "${agentId}" ready.`);
|
|
541
|
-
} catch (err) {
|
|
542
|
-
if (err instanceof WizardCancelledError) {
|
|
543
|
-
runtime.exit(1);
|
|
544
|
-
return;
|
|
545
|
-
}
|
|
546
|
-
throw err;
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
//#endregion
|
|
551
|
-
//#region src/commands/agents.commands.delete.ts
|
|
552
|
-
async function agentsDeleteCommand(opts, runtime = defaultRuntime) {
|
|
553
|
-
const cfg = await requireValidConfig(runtime);
|
|
554
|
-
if (!cfg) return;
|
|
555
|
-
const input = opts.id?.trim();
|
|
556
|
-
if (!input) {
|
|
557
|
-
runtime.error("Agent id is required.");
|
|
558
|
-
runtime.exit(1);
|
|
559
|
-
return;
|
|
560
|
-
}
|
|
561
|
-
const agentId = normalizeAgentId(input);
|
|
562
|
-
if (agentId !== input) runtime.log(`Normalized agent id to "${agentId}".`);
|
|
563
|
-
if (agentId === DEFAULT_AGENT_ID) {
|
|
564
|
-
runtime.error(`"${DEFAULT_AGENT_ID}" cannot be deleted.`);
|
|
565
|
-
runtime.exit(1);
|
|
566
|
-
return;
|
|
567
|
-
}
|
|
568
|
-
if (findAgentEntryIndex(listAgentEntries(cfg), agentId) < 0) {
|
|
569
|
-
runtime.error(`Agent "${agentId}" not found.`);
|
|
570
|
-
runtime.exit(1);
|
|
571
|
-
return;
|
|
572
|
-
}
|
|
573
|
-
if (!opts.force) {
|
|
574
|
-
if (!process.stdin.isTTY) {
|
|
575
|
-
runtime.error("Non-interactive session. Re-run with --force.");
|
|
576
|
-
runtime.exit(1);
|
|
577
|
-
return;
|
|
578
|
-
}
|
|
579
|
-
if (!await createClackPrompter().confirm({
|
|
580
|
-
message: `Delete agent "${agentId}" and prune workspace/state?`,
|
|
581
|
-
initialValue: false
|
|
582
|
-
})) {
|
|
583
|
-
runtime.log("Cancelled.");
|
|
584
|
-
return;
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
const workspaceDir = resolveAgentWorkspaceDir(cfg, agentId);
|
|
588
|
-
const agentDir = resolveAgentDir(cfg, agentId);
|
|
589
|
-
const sessionsDir = resolveSessionTranscriptsDirForAgent(agentId);
|
|
590
|
-
const result = pruneAgentConfig(cfg, agentId);
|
|
591
|
-
await writeConfigFile(result.config);
|
|
592
|
-
if (!opts.json) logConfigUpdated(runtime);
|
|
593
|
-
const quietRuntime = opts.json ? createQuietRuntime(runtime) : runtime;
|
|
594
|
-
await moveToTrash(workspaceDir, quietRuntime);
|
|
595
|
-
await moveToTrash(agentDir, quietRuntime);
|
|
596
|
-
await moveToTrash(sessionsDir, quietRuntime);
|
|
597
|
-
if (opts.json) runtime.log(JSON.stringify({
|
|
598
|
-
agentId,
|
|
599
|
-
workspace: workspaceDir,
|
|
600
|
-
agentDir,
|
|
601
|
-
sessionsDir,
|
|
602
|
-
removedBindings: result.removedBindings,
|
|
603
|
-
removedAllow: result.removedAllow
|
|
604
|
-
}, null, 2));
|
|
605
|
-
else runtime.log(`Deleted agent: ${agentId}`);
|
|
606
|
-
}
|
|
607
|
-
|
|
608
|
-
//#endregion
|
|
609
|
-
//#region src/commands/agents.commands.identity.ts
|
|
610
|
-
const normalizeWorkspacePath = (input) => path.resolve(resolveUserPath(input));
|
|
611
|
-
const coerceTrimmed = (value) => {
|
|
612
|
-
const trimmed = value?.trim();
|
|
613
|
-
return trimmed ? trimmed : void 0;
|
|
614
|
-
};
|
|
615
|
-
async function loadIdentityFromFile(filePath) {
|
|
616
|
-
try {
|
|
617
|
-
const parsed = parseIdentityMarkdown(await fs.readFile(filePath, "utf-8"));
|
|
618
|
-
if (!identityHasValues(parsed)) return null;
|
|
619
|
-
return parsed;
|
|
620
|
-
} catch {
|
|
621
|
-
return null;
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
function resolveAgentIdByWorkspace(cfg, workspaceDir) {
|
|
625
|
-
const list = listAgentEntries(cfg);
|
|
626
|
-
const ids = list.length > 0 ? list.map((entry) => normalizeAgentId(entry.id)) : [resolveDefaultAgentId(cfg)];
|
|
627
|
-
const normalizedTarget = normalizeWorkspacePath(workspaceDir);
|
|
628
|
-
return ids.filter((id) => normalizeWorkspacePath(resolveAgentWorkspaceDir(cfg, id)) === normalizedTarget);
|
|
629
|
-
}
|
|
630
|
-
async function agentsSetIdentityCommand(opts, runtime = defaultRuntime) {
|
|
631
|
-
const cfg = await requireValidConfig(runtime);
|
|
632
|
-
if (!cfg) return;
|
|
633
|
-
const agentRaw = coerceTrimmed(opts.agent);
|
|
634
|
-
const nameRaw = coerceTrimmed(opts.name);
|
|
635
|
-
const emojiRaw = coerceTrimmed(opts.emoji);
|
|
636
|
-
const themeRaw = coerceTrimmed(opts.theme);
|
|
637
|
-
const avatarRaw = coerceTrimmed(opts.avatar);
|
|
638
|
-
const hasExplicitIdentity = Boolean(nameRaw || emojiRaw || themeRaw || avatarRaw);
|
|
639
|
-
const identityFileRaw = coerceTrimmed(opts.identityFile);
|
|
640
|
-
const workspaceRaw = coerceTrimmed(opts.workspace);
|
|
641
|
-
const wantsIdentityFile = Boolean(opts.fromIdentity || identityFileRaw || !hasExplicitIdentity);
|
|
642
|
-
let identityFilePath;
|
|
643
|
-
let workspaceDir;
|
|
644
|
-
if (identityFileRaw) {
|
|
645
|
-
identityFilePath = normalizeWorkspacePath(identityFileRaw);
|
|
646
|
-
workspaceDir = path.dirname(identityFilePath);
|
|
647
|
-
} else if (workspaceRaw) workspaceDir = normalizeWorkspacePath(workspaceRaw);
|
|
648
|
-
else if (wantsIdentityFile || !agentRaw) workspaceDir = path.resolve(process.cwd());
|
|
649
|
-
let agentId = agentRaw ? normalizeAgentId(agentRaw) : void 0;
|
|
650
|
-
if (!agentId) {
|
|
651
|
-
if (!workspaceDir) {
|
|
652
|
-
runtime.error("Select an agent with --agent or provide a workspace via --workspace.");
|
|
653
|
-
runtime.exit(1);
|
|
654
|
-
return;
|
|
655
|
-
}
|
|
656
|
-
const matches = resolveAgentIdByWorkspace(cfg, workspaceDir);
|
|
657
|
-
if (matches.length === 0) {
|
|
658
|
-
runtime.error(`No agent workspace matches ${shortenHomePath(workspaceDir)}. Pass --agent to target a specific agent.`);
|
|
659
|
-
runtime.exit(1);
|
|
660
|
-
return;
|
|
661
|
-
}
|
|
662
|
-
if (matches.length > 1) {
|
|
663
|
-
runtime.error(`Multiple agents match ${shortenHomePath(workspaceDir)}: ${matches.join(", ")}. Pass --agent to choose one.`);
|
|
664
|
-
runtime.exit(1);
|
|
665
|
-
return;
|
|
666
|
-
}
|
|
667
|
-
agentId = matches[0];
|
|
668
|
-
}
|
|
669
|
-
let identityFromFile = null;
|
|
670
|
-
if (wantsIdentityFile) {
|
|
671
|
-
if (identityFilePath) identityFromFile = await loadIdentityFromFile(identityFilePath);
|
|
672
|
-
else if (workspaceDir) identityFromFile = loadAgentIdentity(workspaceDir);
|
|
673
|
-
if (!identityFromFile) {
|
|
674
|
-
const targetPath = identityFilePath ?? (workspaceDir ? path.join(workspaceDir, DEFAULT_IDENTITY_FILENAME) : "IDENTITY.md");
|
|
675
|
-
runtime.error(`No identity data found in ${shortenHomePath(targetPath)}.`);
|
|
676
|
-
runtime.exit(1);
|
|
677
|
-
return;
|
|
678
|
-
}
|
|
679
|
-
}
|
|
680
|
-
const fileTheme = identityFromFile?.theme ?? identityFromFile?.creature ?? identityFromFile?.vibe ?? void 0;
|
|
681
|
-
const incomingIdentity = {
|
|
682
|
-
...nameRaw || identityFromFile?.name ? { name: nameRaw ?? identityFromFile?.name } : {},
|
|
683
|
-
...emojiRaw || identityFromFile?.emoji ? { emoji: emojiRaw ?? identityFromFile?.emoji } : {},
|
|
684
|
-
...themeRaw || fileTheme ? { theme: themeRaw ?? fileTheme } : {},
|
|
685
|
-
...avatarRaw || identityFromFile?.avatar ? { avatar: avatarRaw ?? identityFromFile?.avatar } : {}
|
|
686
|
-
};
|
|
687
|
-
if (!incomingIdentity.name && !incomingIdentity.emoji && !incomingIdentity.theme && !incomingIdentity.avatar) {
|
|
688
|
-
runtime.error("No identity fields provided. Use --name/--emoji/--theme/--avatar or --from-identity.");
|
|
689
|
-
runtime.exit(1);
|
|
690
|
-
return;
|
|
691
|
-
}
|
|
692
|
-
const list = listAgentEntries(cfg);
|
|
693
|
-
const index = findAgentEntryIndex(list, agentId);
|
|
694
|
-
const base = index >= 0 ? list[index] : { id: agentId };
|
|
695
|
-
const nextIdentity = {
|
|
696
|
-
...base.identity,
|
|
697
|
-
...incomingIdentity
|
|
698
|
-
};
|
|
699
|
-
const nextEntry = {
|
|
700
|
-
...base,
|
|
701
|
-
identity: nextIdentity
|
|
702
|
-
};
|
|
703
|
-
const nextList = [...list];
|
|
704
|
-
if (index >= 0) nextList[index] = nextEntry;
|
|
705
|
-
else {
|
|
706
|
-
const defaultId = normalizeAgentId(resolveDefaultAgentId(cfg));
|
|
707
|
-
if (nextList.length === 0 && agentId !== defaultId) nextList.push({ id: defaultId });
|
|
708
|
-
nextList.push(nextEntry);
|
|
709
|
-
}
|
|
710
|
-
await writeConfigFile({
|
|
711
|
-
...cfg,
|
|
712
|
-
agents: {
|
|
713
|
-
...cfg.agents,
|
|
714
|
-
list: nextList
|
|
715
|
-
}
|
|
716
|
-
});
|
|
717
|
-
if (opts.json) {
|
|
718
|
-
runtime.log(JSON.stringify({
|
|
719
|
-
agentId,
|
|
720
|
-
identity: nextIdentity,
|
|
721
|
-
workspace: workspaceDir ?? null,
|
|
722
|
-
identityFile: identityFilePath ?? null
|
|
723
|
-
}, null, 2));
|
|
724
|
-
return;
|
|
725
|
-
}
|
|
726
|
-
logConfigUpdated(runtime);
|
|
727
|
-
runtime.log(`Agent: ${agentId}`);
|
|
728
|
-
if (nextIdentity.name) runtime.log(`Name: ${nextIdentity.name}`);
|
|
729
|
-
if (nextIdentity.theme) runtime.log(`Theme: ${nextIdentity.theme}`);
|
|
730
|
-
if (nextIdentity.emoji) runtime.log(`Emoji: ${nextIdentity.emoji}`);
|
|
731
|
-
if (nextIdentity.avatar) runtime.log(`Avatar: ${nextIdentity.avatar}`);
|
|
732
|
-
if (workspaceDir) runtime.log(`Workspace: ${shortenHomePath(workspaceDir)}`);
|
|
733
|
-
}
|
|
734
|
-
|
|
735
|
-
//#endregion
|
|
736
|
-
//#region src/commands/agents.providers.ts
|
|
737
|
-
function providerAccountKey(provider, accountId) {
|
|
738
|
-
return `${provider}:${accountId ?? DEFAULT_ACCOUNT_ID}`;
|
|
739
|
-
}
|
|
740
|
-
function formatChannelAccountLabel(params) {
|
|
741
|
-
return `${getChannelPlugin(params.provider)?.meta.label ?? params.provider} ${params.name?.trim() ? `${params.accountId} (${params.name.trim()})` : params.accountId}`;
|
|
742
|
-
}
|
|
743
|
-
function formatProviderState(entry) {
|
|
744
|
-
const parts = [entry.state];
|
|
745
|
-
if (entry.enabled === false && entry.state !== "disabled") parts.push("disabled");
|
|
746
|
-
return parts.join(", ");
|
|
747
|
-
}
|
|
748
|
-
async function buildProviderStatusIndex(cfg) {
|
|
749
|
-
const map = /* @__PURE__ */ new Map();
|
|
750
|
-
for (const plugin of listChannelPlugins()) {
|
|
751
|
-
const accountIds = plugin.config.listAccountIds(cfg);
|
|
752
|
-
for (const accountId of accountIds) {
|
|
753
|
-
const account = plugin.config.resolveAccount(cfg, accountId);
|
|
754
|
-
const snapshot = plugin.config.describeAccount?.(account, cfg);
|
|
755
|
-
const enabled = plugin.config.isEnabled ? plugin.config.isEnabled(account, cfg) : typeof snapshot?.enabled === "boolean" ? snapshot.enabled : account.enabled;
|
|
756
|
-
const configured = plugin.config.isConfigured ? await plugin.config.isConfigured(account, cfg) : snapshot?.configured;
|
|
757
|
-
const resolvedEnabled = typeof enabled === "boolean" ? enabled : true;
|
|
758
|
-
const resolvedConfigured = typeof configured === "boolean" ? configured : true;
|
|
759
|
-
const state = plugin.status?.resolveAccountState?.({
|
|
760
|
-
account,
|
|
761
|
-
cfg,
|
|
762
|
-
configured: resolvedConfigured,
|
|
763
|
-
enabled: resolvedEnabled
|
|
764
|
-
}) ?? (typeof snapshot?.linked === "boolean" ? snapshot.linked ? "linked" : "not linked" : resolvedConfigured ? "configured" : "not configured");
|
|
765
|
-
const name = snapshot?.name ?? account.name;
|
|
766
|
-
map.set(providerAccountKey(plugin.id, accountId), {
|
|
767
|
-
provider: plugin.id,
|
|
768
|
-
accountId,
|
|
769
|
-
name,
|
|
770
|
-
state,
|
|
771
|
-
enabled,
|
|
772
|
-
configured
|
|
773
|
-
});
|
|
774
|
-
}
|
|
775
|
-
}
|
|
776
|
-
return map;
|
|
777
|
-
}
|
|
778
|
-
function resolveDefaultAccountId(cfg, provider) {
|
|
779
|
-
const plugin = getChannelPlugin(provider);
|
|
780
|
-
if (!plugin) return DEFAULT_ACCOUNT_ID;
|
|
781
|
-
return resolveChannelDefaultAccountId({
|
|
782
|
-
plugin,
|
|
783
|
-
cfg
|
|
784
|
-
});
|
|
785
|
-
}
|
|
786
|
-
function shouldShowProviderEntry(entry, cfg) {
|
|
787
|
-
const plugin = getChannelPlugin(entry.provider);
|
|
788
|
-
if (!plugin) return Boolean(entry.configured);
|
|
789
|
-
if (plugin.meta.showConfigured === false) {
|
|
790
|
-
const providerConfig = cfg[plugin.id];
|
|
791
|
-
return Boolean(entry.configured) || Boolean(providerConfig);
|
|
792
|
-
}
|
|
793
|
-
return Boolean(entry.configured);
|
|
794
|
-
}
|
|
795
|
-
function formatProviderEntry(entry) {
|
|
796
|
-
return `${formatChannelAccountLabel({
|
|
797
|
-
provider: entry.provider,
|
|
798
|
-
accountId: entry.accountId,
|
|
799
|
-
name: entry.name
|
|
800
|
-
})}: ${formatProviderState(entry)}`;
|
|
801
|
-
}
|
|
802
|
-
function summarizeBindings(cfg, bindings) {
|
|
803
|
-
if (bindings.length === 0) return [];
|
|
804
|
-
const seen = /* @__PURE__ */ new Map();
|
|
805
|
-
for (const binding of bindings) {
|
|
806
|
-
const channel = normalizeChannelId(binding.match.channel);
|
|
807
|
-
if (!channel) continue;
|
|
808
|
-
const accountId = binding.match.accountId ?? resolveDefaultAccountId(cfg, channel);
|
|
809
|
-
const key = providerAccountKey(channel, accountId);
|
|
810
|
-
if (!seen.has(key)) {
|
|
811
|
-
const label = formatChannelAccountLabel({
|
|
812
|
-
provider: channel,
|
|
813
|
-
accountId
|
|
814
|
-
});
|
|
815
|
-
seen.set(key, label);
|
|
816
|
-
}
|
|
817
|
-
}
|
|
818
|
-
return [...seen.values()];
|
|
819
|
-
}
|
|
820
|
-
function listProvidersForAgent(params) {
|
|
821
|
-
const allProviderEntries = [...params.providerStatus.values()];
|
|
822
|
-
const providerLines = [];
|
|
823
|
-
if (params.bindings.length > 0) {
|
|
824
|
-
const seen = /* @__PURE__ */ new Set();
|
|
825
|
-
for (const binding of params.bindings) {
|
|
826
|
-
const channel = normalizeChannelId(binding.match.channel);
|
|
827
|
-
if (!channel) continue;
|
|
828
|
-
const accountId = binding.match.accountId ?? resolveDefaultAccountId(params.cfg, channel);
|
|
829
|
-
const key = providerAccountKey(channel, accountId);
|
|
830
|
-
if (seen.has(key)) continue;
|
|
831
|
-
seen.add(key);
|
|
832
|
-
const status = params.providerStatus.get(key);
|
|
833
|
-
if (status) providerLines.push(formatProviderEntry(status));
|
|
834
|
-
else providerLines.push(`${formatChannelAccountLabel({
|
|
835
|
-
provider: channel,
|
|
836
|
-
accountId
|
|
837
|
-
})}: unknown`);
|
|
838
|
-
}
|
|
839
|
-
return providerLines;
|
|
840
|
-
}
|
|
841
|
-
if (params.summaryIsDefault) {
|
|
842
|
-
for (const entry of allProviderEntries) if (shouldShowProviderEntry(entry, params.cfg)) providerLines.push(formatProviderEntry(entry));
|
|
843
|
-
}
|
|
844
|
-
return providerLines;
|
|
845
|
-
}
|
|
846
|
-
|
|
847
|
-
//#endregion
|
|
848
|
-
//#region src/commands/agents.commands.list.ts
|
|
849
|
-
function formatSummary(summary) {
|
|
850
|
-
const defaultTag = summary.isDefault ? " (default)" : "";
|
|
851
|
-
const header = summary.name && summary.name !== summary.id ? `${summary.id}${defaultTag} (${summary.name})` : `${summary.id}${defaultTag}`;
|
|
852
|
-
const identityParts = [];
|
|
853
|
-
if (summary.identityEmoji) identityParts.push(summary.identityEmoji);
|
|
854
|
-
if (summary.identityName) identityParts.push(summary.identityName);
|
|
855
|
-
const identityLine = identityParts.length > 0 ? identityParts.join(" ") : null;
|
|
856
|
-
const identitySource = summary.identitySource === "identity" ? "IDENTITY.md" : summary.identitySource === "config" ? "config" : null;
|
|
857
|
-
const lines = [`- ${header}`];
|
|
858
|
-
if (identityLine) lines.push(` Identity: ${identityLine}${identitySource ? ` (${identitySource})` : ""}`);
|
|
859
|
-
lines.push(` Workspace: ${shortenHomePath(summary.workspace)}`);
|
|
860
|
-
lines.push(` Agent dir: ${shortenHomePath(summary.agentDir)}`);
|
|
861
|
-
if (summary.model) lines.push(` Model: ${summary.model}`);
|
|
862
|
-
lines.push(` Routing rules: ${summary.bindings}`);
|
|
863
|
-
if (summary.routes?.length) lines.push(` Routing: ${summary.routes.join(", ")}`);
|
|
864
|
-
if (summary.providers?.length) {
|
|
865
|
-
lines.push(" Providers:");
|
|
866
|
-
for (const provider of summary.providers) lines.push(` - ${provider}`);
|
|
867
|
-
}
|
|
868
|
-
if (summary.bindingDetails?.length) {
|
|
869
|
-
lines.push(" Routing rules:");
|
|
870
|
-
for (const binding of summary.bindingDetails) lines.push(` - ${binding}`);
|
|
871
|
-
}
|
|
872
|
-
return lines.join("\n");
|
|
873
|
-
}
|
|
874
|
-
async function agentsListCommand(opts, runtime = defaultRuntime) {
|
|
875
|
-
const cfg = await requireValidConfig(runtime);
|
|
876
|
-
if (!cfg) return;
|
|
877
|
-
const summaries = buildAgentSummaries(cfg);
|
|
878
|
-
const bindingMap = /* @__PURE__ */ new Map();
|
|
879
|
-
for (const binding of cfg.bindings ?? []) {
|
|
880
|
-
const agentId = normalizeAgentId(binding.agentId);
|
|
881
|
-
const list = bindingMap.get(agentId) ?? [];
|
|
882
|
-
list.push(binding);
|
|
883
|
-
bindingMap.set(agentId, list);
|
|
884
|
-
}
|
|
885
|
-
if (opts.bindings) for (const summary of summaries) {
|
|
886
|
-
const bindings = bindingMap.get(summary.id) ?? [];
|
|
887
|
-
if (bindings.length > 0) summary.bindingDetails = bindings.map((binding) => describeBinding(binding));
|
|
888
|
-
}
|
|
889
|
-
const providerStatus = await buildProviderStatusIndex(cfg);
|
|
890
|
-
for (const summary of summaries) {
|
|
891
|
-
const bindings = bindingMap.get(summary.id) ?? [];
|
|
892
|
-
const routes = summarizeBindings(cfg, bindings);
|
|
893
|
-
if (routes.length > 0) summary.routes = routes;
|
|
894
|
-
else if (summary.isDefault) summary.routes = ["default (no explicit rules)"];
|
|
895
|
-
const providerLines = listProvidersForAgent({
|
|
896
|
-
summaryIsDefault: summary.isDefault,
|
|
897
|
-
cfg,
|
|
898
|
-
bindings,
|
|
899
|
-
providerStatus
|
|
900
|
-
});
|
|
901
|
-
if (providerLines.length > 0) summary.providers = providerLines;
|
|
902
|
-
}
|
|
903
|
-
if (opts.json) {
|
|
904
|
-
runtime.log(JSON.stringify(summaries, null, 2));
|
|
905
|
-
return;
|
|
906
|
-
}
|
|
907
|
-
const lines = ["Agents:", ...summaries.map(formatSummary)];
|
|
908
|
-
lines.push("Routing rules map channel/account/peer to an agent. Use --bindings for full rules.");
|
|
909
|
-
lines.push(`Channel status reflects local config/creds. For live health: ${formatCliCommand("anima channels status --probe")}.`);
|
|
910
|
-
runtime.log(lines.join("\n"));
|
|
911
|
-
}
|
|
912
|
-
|
|
913
|
-
//#endregion
|
|
914
|
-
//#region src/cli/program/register.agent.ts
|
|
915
|
-
function registerAgentCommands(program, args) {
|
|
916
|
-
program.command("agent").description("Run an agent turn via the Gateway (use --local for embedded)").requiredOption("-m, --message <text>", "Message body for the agent").option("-t, --to <number>", "Recipient number in E.164 used to derive the session key").option("--session-id <id>", "Use an explicit session id").option("--agent <id>", "Agent id (overrides routing bindings)").option("--thinking <level>", "Thinking level: off | minimal | low | medium | high").option("--verbose <on|off>", "Persist agent verbose level for the session").option("--channel <channel>", `Delivery channel: ${args.agentChannelOptions} (default: ${DEFAULT_CHAT_CHANNEL})`).option("--reply-to <target>", "Delivery target override (separate from session routing)").option("--reply-channel <channel>", "Delivery channel override (separate from routing)").option("--reply-account <id>", "Delivery account id override").option("--local", "Run the embedded agent locally (requires model provider API keys in your shell)", false).option("--deliver", "Send the agent's reply back to the selected channel", false).option("--json", "Output result as JSON", false).option("--timeout <seconds>", "Override agent command timeout (seconds, default 600 or config value)").addHelpText("after", () => `
|
|
917
|
-
${theme.heading("Examples:")}
|
|
918
|
-
${formatHelpExamples([
|
|
919
|
-
["openclaw agent --to +15555550123 --message \"status update\"", "Start a new session."],
|
|
920
|
-
["openclaw agent --agent ops --message \"Summarize logs\"", "Use a specific agent."],
|
|
921
|
-
["openclaw agent --session-id 1234 --message \"Summarize inbox\" --thinking medium", "Target a session with explicit thinking level."],
|
|
922
|
-
["openclaw agent --to +15555550123 --message \"Trace logs\" --verbose on --json", "Enable verbose logging and JSON output."],
|
|
923
|
-
["openclaw agent --to +15555550123 --message \"Summon reply\" --deliver", "Deliver reply."],
|
|
924
|
-
["openclaw agent --agent ops --message \"Generate report\" --deliver --reply-channel slack --reply-to \"#reports\"", "Send reply to a different channel/target."]
|
|
925
|
-
])}
|
|
926
|
-
|
|
927
|
-
${theme.muted("Docs:")} ${formatDocsLink("/cli/agent", "docs.openclaw.ai/cli/agent")}`).action(async (opts) => {
|
|
928
|
-
setVerbose((typeof opts.verbose === "string" ? opts.verbose.toLowerCase() : "") === "on");
|
|
929
|
-
const deps = createDefaultDeps();
|
|
930
|
-
await runCommandWithRuntime(defaultRuntime, async () => {
|
|
931
|
-
await agentCliCommand(opts, defaultRuntime, deps);
|
|
932
|
-
});
|
|
933
|
-
});
|
|
934
|
-
const agents = program.command("agents").description("Manage isolated agents (workspaces + auth + routing)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/agents", "docs.openclaw.ai/cli/agents")}\n`);
|
|
935
|
-
agents.command("list").description("List configured agents").option("--json", "Output JSON instead of text", false).option("--bindings", "Include routing bindings", false).action(async (opts) => {
|
|
936
|
-
await runCommandWithRuntime(defaultRuntime, async () => {
|
|
937
|
-
await agentsListCommand({
|
|
938
|
-
json: Boolean(opts.json),
|
|
939
|
-
bindings: Boolean(opts.bindings)
|
|
940
|
-
}, defaultRuntime);
|
|
941
|
-
});
|
|
942
|
-
});
|
|
943
|
-
agents.command("add [name]").description("Add a new isolated agent").option("--workspace <dir>", "Workspace directory for the new agent").option("--model <id>", "Model id for this agent").option("--agent-dir <dir>", "Agent state directory for this agent").option("--bind <channel[:accountId]>", "Route channel binding (repeatable)", collectOption, []).option("--non-interactive", "Disable prompts; requires --workspace", false).option("--json", "Output JSON summary", false).action(async (name, opts, command) => {
|
|
944
|
-
await runCommandWithRuntime(defaultRuntime, async () => {
|
|
945
|
-
const hasFlags = hasExplicitOptions(command, [
|
|
946
|
-
"workspace",
|
|
947
|
-
"model",
|
|
948
|
-
"agentDir",
|
|
949
|
-
"bind",
|
|
950
|
-
"nonInteractive"
|
|
951
|
-
]);
|
|
952
|
-
await agentsAddCommand({
|
|
953
|
-
name: typeof name === "string" ? name : void 0,
|
|
954
|
-
workspace: opts.workspace,
|
|
955
|
-
model: opts.model,
|
|
956
|
-
agentDir: opts.agentDir,
|
|
957
|
-
bind: Array.isArray(opts.bind) ? opts.bind : void 0,
|
|
958
|
-
nonInteractive: Boolean(opts.nonInteractive),
|
|
959
|
-
json: Boolean(opts.json)
|
|
960
|
-
}, defaultRuntime, { hasFlags });
|
|
961
|
-
});
|
|
962
|
-
});
|
|
963
|
-
agents.command("set-identity").description("Update an agent identity (name/theme/emoji/avatar)").option("--agent <id>", "Agent id to update").option("--workspace <dir>", "Workspace directory used to locate the agent + IDENTITY.md").option("--identity-file <path>", "Explicit IDENTITY.md path to read").option("--from-identity", "Read values from IDENTITY.md", false).option("--name <name>", "Identity name").option("--theme <theme>", "Identity theme").option("--emoji <emoji>", "Identity emoji").option("--avatar <value>", "Identity avatar (workspace path, http(s) URL, or data URI)").option("--json", "Output JSON summary", false).addHelpText("after", () => `
|
|
964
|
-
${theme.heading("Examples:")}
|
|
965
|
-
${formatHelpExamples([
|
|
966
|
-
["openclaw agents set-identity --agent main --name \"OpenClaw\" --emoji \"🦞\"", "Set name + emoji."],
|
|
967
|
-
["openclaw agents set-identity --agent main --avatar avatars/openclaw.png", "Set avatar path."],
|
|
968
|
-
["openclaw agents set-identity --workspace ~/.openclaw/workspace --from-identity", "Load from IDENTITY.md."],
|
|
969
|
-
["openclaw agents set-identity --identity-file ~/.openclaw/workspace/IDENTITY.md --agent main", "Use a specific IDENTITY.md."]
|
|
970
|
-
])}
|
|
971
|
-
`).action(async (opts) => {
|
|
972
|
-
await runCommandWithRuntime(defaultRuntime, async () => {
|
|
973
|
-
await agentsSetIdentityCommand({
|
|
974
|
-
agent: opts.agent,
|
|
975
|
-
workspace: opts.workspace,
|
|
976
|
-
identityFile: opts.identityFile,
|
|
977
|
-
fromIdentity: Boolean(opts.fromIdentity),
|
|
978
|
-
name: opts.name,
|
|
979
|
-
theme: opts.theme,
|
|
980
|
-
emoji: opts.emoji,
|
|
981
|
-
avatar: opts.avatar,
|
|
982
|
-
json: Boolean(opts.json)
|
|
983
|
-
}, defaultRuntime);
|
|
984
|
-
});
|
|
985
|
-
});
|
|
986
|
-
agents.command("delete <id>").description("Delete an agent and prune workspace/state").option("--force", "Skip confirmation", false).option("--json", "Output JSON summary", false).action(async (id, opts) => {
|
|
987
|
-
await runCommandWithRuntime(defaultRuntime, async () => {
|
|
988
|
-
await agentsDeleteCommand({
|
|
989
|
-
id: String(id),
|
|
990
|
-
force: Boolean(opts.force),
|
|
991
|
-
json: Boolean(opts.json)
|
|
992
|
-
}, defaultRuntime);
|
|
993
|
-
});
|
|
994
|
-
});
|
|
995
|
-
agents.action(async () => {
|
|
996
|
-
await runCommandWithRuntime(defaultRuntime, async () => {
|
|
997
|
-
await agentsListCommand({}, defaultRuntime);
|
|
998
|
-
});
|
|
999
|
-
});
|
|
1000
|
-
}
|
|
1001
|
-
|
|
1002
|
-
//#endregion
|
|
1003
|
-
export { registerAgentCommands };
|