@pixelzx/genesis 2026.5.3-5 → 2026.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/.buildstamp +1 -1
- package/dist/abort-t5XiT6Yl.js +201 -0
- package/dist/abort.runtime-C_xk0DkL.js +2 -0
- package/dist/abort.runtime.js +1 -1
- package/dist/accounts-B7yDKwxi.js +104 -0
- package/dist/accounts-CS7VL356.js +107 -0
- package/dist/accounts-XvHcAtMf.js +2 -0
- package/dist/acp-cli-B5H0nvID.js +2193 -0
- package/dist/acp-spawn-BRTMqPlq.js +2 -0
- package/dist/acp-spawn-Dsw3dzWY.js +1093 -0
- package/dist/acp-stateful-target-driver-BYhkJnyh.js +89 -0
- package/dist/action-agents-Ca9kTFvv.js +67 -0
- package/dist/action-focus-D4pT0hra.js +132 -0
- package/dist/action-help-DMzMxFEQ.js +7 -0
- package/dist/action-info-Dzn_fn6G.js +101 -0
- package/dist/action-kill-2AQuhnLy.js +33 -0
- package/dist/action-list-DI1M2pKU.js +21 -0
- package/dist/action-log-BVKGgOki.js +30 -0
- package/dist/action-send-CZ2wciMW.js +39 -0
- package/dist/action-spawn-BdclQLrK.js +47 -0
- package/dist/action-unfocus-DfQuRf8d.js +29 -0
- package/dist/actions.runtime-B2-oz_B6.js +5 -0
- package/dist/actions.runtime-BoUxrcw3.js +18 -0
- package/dist/actions.runtime.js +1 -1
- package/dist/agent-CnQ3yCIw.js +2 -0
- package/dist/agent-command-C4H_9c2N.js +874 -0
- package/dist/agent-harness-runtime-D2oXzgyL.js +144 -0
- package/dist/agent-runner-utils-CWgPcOYn.js +239 -0
- package/dist/agent-runner.runtime-DvK-HQhq.js +3455 -0
- package/dist/agent-runner.runtime.js +1 -1
- package/dist/agent-runtime-BDslXtCf.js +18 -0
- package/dist/agents-4T7YaeKy.js +953 -0
- package/dist/agents-C_Gty_RK.js +5 -0
- package/dist/aliases-BkVpehd-.js +96 -0
- package/dist/aliases-DWkJWJ5A.js +2 -0
- package/dist/api-CgW6fcU2.js +3 -0
- package/dist/api-DYPaGKUj.js +5 -0
- package/dist/api-DdoV90Cn.js +139 -0
- package/dist/approval-gateway-resolver-Ba_2kb3B.js +29 -0
- package/dist/approval-gateway-runtime-7VMivk0A.js +2 -0
- package/dist/approval-handler-runtime-DUDpOwG7.js +439 -0
- package/dist/approval-native-runtime-KkmX9gwQ.js +729 -0
- package/dist/attempt-execution.runtime-CQkeVpDx.js +509 -0
- package/dist/attempt-execution.runtime.js +1 -1
- package/dist/attempt.prompt-helpers-MoT6VaD0.js +221 -0
- package/dist/attempt.tool-run-context-B53GhX-d.js +933 -0
- package/dist/audit-CvHcVVb-.js +939 -0
- package/dist/audit.runtime-C7n442Rc.js +7 -0
- package/dist/audit.runtime.js +1 -1
- package/dist/auth-CAnSldtM.js +2 -0
- package/dist/auth-Czf_o5iE.js +383 -0
- package/dist/auth-order-Cu9Vj7lA.js +96 -0
- package/dist/auth-order-q1IFw7L3.js +2 -0
- package/dist/bash-tools-BS4TrA4X.js +2824 -0
- package/dist/bash-tools-DbHYuk8O.js +3 -0
- package/dist/binding-routing-CnNQE65Q.js +85 -0
- package/dist/binding-targets-DW0ScIRI.js +121 -0
- package/dist/bridge-server-BGS08n2f.js +113 -0
- package/dist/browser-control-auth-DMlQOsyN.js +2 -0
- package/dist/browser-node-runtime-CF32scUO.js +12 -0
- package/dist/browser-profiles-CmER65eh.js +2 -0
- package/dist/browser-runtime-D73M9fg3.js +387 -0
- package/dist/browser-setup-tools-Cr0UI1rf.js +13 -0
- package/dist/build-BL7WirDF.js +550 -0
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +1 -1
- package/dist/call-Ckws4Nlw.js +3 -0
- package/dist/call-DkGNVvLy.js +331 -0
- package/dist/call.runtime-DfLBtAIr.js +2 -0
- package/dist/call.runtime.js +1 -1
- package/dist/capability-cli-tSqSJf2o.js +1401 -0
- package/dist/catchup-Dp2L1RcY.js +300 -0
- package/dist/channel-BIFp1GJd.js +1320 -0
- package/dist/channel-BZMzoXhw.js +840 -0
- package/dist/channel-BtPZ0i4g.js +297 -0
- package/dist/channel-DDd7xwLG.js +226 -0
- package/dist/channel-DLezQPqR.js +350 -0
- package/dist/channel-DcYHXn_7.js +1100 -0
- package/dist/channel-DzKtLfJj.js +1802 -0
- package/dist/channel-LlY18tI5.js +595 -0
- package/dist/channel-NjZviHcJ.js +1174 -0
- package/dist/channel-core-Cg1mFpva.js +5 -0
- package/dist/channel-inbound-CZpi-vp5.js +31 -0
- package/dist/channel-pDXIWFS4.js +453 -0
- package/dist/channel-plugin-runtime-DHl81Ror.js +771 -0
- package/dist/channel-runtime-CtYrrwow.js +425 -0
- package/dist/channel-wMkGGyIY.js +491 -0
- package/dist/channel.runtime-B1n0hvUI.js +430 -0
- package/dist/channel.runtime-B9iR26l_.js +576 -0
- package/dist/channel.runtime-C8eBQk67.js +4 -0
- package/dist/channel.runtime-Db8g8JCg.js +89 -0
- package/dist/channel.runtime-DfRfisV2.js +34702 -0
- package/dist/channel.runtime-gPdBMu3V.js +109 -0
- package/dist/channel.runtime-rG9pJ5NO.js +2364 -0
- package/dist/channel.runtime.js +1 -1
- package/dist/channel.setup-CWblUOhD.js +10 -0
- package/dist/channels-B4dYRKsI.js +733 -0
- package/dist/channels-cli-GMAOUYU3.js +268 -0
- package/dist/chat-D2XaZNiP.js +2758 -0
- package/dist/clawbot-cli-CSmdcIMT.js +9 -0
- package/dist/cli/daemon-cli.js +3 -3
- package/dist/cli-2u5IZTMS.js +219 -0
- package/dist/cli-Bk8uXnyc.js +72 -0
- package/dist/cli-DBfw9jCz.js +2 -0
- package/dist/cli-runner-BEqvX1ky.js +286 -0
- package/dist/cli-runner.runtime-BIUcUGDa.js +4 -0
- package/dist/cli-runner.runtime-D2u3Yw0W.js +3 -0
- package/dist/cli-runner.runtime.js +1 -1
- package/dist/cli-startup-metadata.json +2 -2
- package/dist/cli-waH8839u.js +2 -0
- package/dist/cli.runtime-mKvJpLwI.js +1261 -0
- package/dist/cli.runtime.js +1 -1
- package/dist/client-CKizOsGp.js +138 -0
- package/dist/client-CrPccv7a.js +713 -0
- package/dist/command-auth-DPkjKHdv.js +76 -0
- package/dist/command-config-resolution-BTjtnAp2.js +2 -0
- package/dist/command-config-resolution-Be3KZA_l.js +23 -0
- package/dist/command-config-resolution.runtime-DXgL8cm7.js +2 -0
- package/dist/command-config-resolution.runtime.js +1 -1
- package/dist/command-registry-BL1Z4Cen.js +4 -0
- package/dist/command-registry-BMePAw9w.js +9 -0
- package/dist/command-registry-core-CAay55-n.js +104 -0
- package/dist/command-secret-gateway-jj1Qmk9L.js +528 -0
- package/dist/command-status.runtime-BVcCm9_0.js +87 -0
- package/dist/command-status.runtime.js +1 -1
- package/dist/commands-acp-COdUW69f.js +77 -0
- package/dist/commands-compact.runtime-C0Fedews.js +10 -0
- package/dist/commands-compact.runtime.js +1 -1
- package/dist/commands-handlers.runtime-BXVM3PWG.js +4597 -0
- package/dist/commands-handlers.runtime.js +1 -1
- package/dist/commands-status-DaApOLoQ.js +16 -0
- package/dist/commands-status.runtime-CxSjrKne.js +3 -0
- package/dist/commands-status.runtime.js +1 -1
- package/dist/commands-subagents-control.runtime-BEfW44br.js +2 -0
- package/dist/commands-subagents-control.runtime-DB3AROHI.js +3 -0
- package/dist/commands-subagents-control.runtime.js +1 -1
- package/dist/commands-system-prompt-CCrUy7xq.js +158 -0
- package/dist/commands-system-prompt-CN56TtaC.js +2 -0
- package/dist/commands.runtime-Bee6dM3V.js +166 -0
- package/dist/commands.runtime.js +1 -1
- package/dist/compact-7YtEe1kG.js +1118 -0
- package/dist/compact.runtime-4gW_cs7D.js +12 -0
- package/dist/compact.runtime.js +1 -1
- package/dist/completion-cli-COv-r8_h.js +313 -0
- package/dist/config-DSsLlg8J.js +251 -0
- package/dist/config-cli-C9oGe9gl.js +1078 -0
- package/dist/configure-Bfy9tVmS.js +2 -0
- package/dist/configure-DpIFRaAD.js +1245 -0
- package/dist/connect-options-CPixzqP_.js +699 -0
- package/dist/control-auth-L7U2ivRJ.js +125 -0
- package/dist/control-service-CbUz8qU5.js +156 -0
- package/dist/conversation-id-BroDIGeT.js +38 -0
- package/dist/conversation-id-CuVi0tWe.js +235 -0
- package/dist/conversation-runtime-weaahZQN.js +31 -0
- package/dist/core-PXv1nsc-.js +275 -0
- package/dist/cron-cli-DZNSQBuA.js +713 -0
- package/dist/daemon-cli-C_9CNoZA.js +12 -0
- package/dist/delegate-B8wh-jjf.js +64 -0
- package/dist/detached-task-runtime-BTq-jIGw.js +73 -0
- package/dist/devices-cli-C_amY-AS.js +496 -0
- package/dist/diagnostics-Bw-fd0ug.js +154 -0
- package/dist/direct-dm-Dvqjch3O.js +64 -0
- package/dist/dispatch-DHPQS49Q.js +1131 -0
- package/dist/dispatch-acp-manager.runtime-y-oykPUz.js +3 -0
- package/dist/dispatch-acp-manager.runtime.js +1 -1
- package/dist/dispatch-acp-taSuJD5W.js +981 -0
- package/dist/dispatch-acp.runtime-DgyaFFNX.js +19 -0
- package/dist/dispatch-acp.runtime.js +1 -1
- package/dist/doctor-device-pairing-rxwogzYF.js +307 -0
- package/dist/doctor-gateway-daemon-flow-Dm4wxnTt.js +250 -0
- package/dist/doctor-gateway-health-wJVW5xUW.js +60 -0
- package/dist/doctor-health-DaodspKU.js +59 -0
- package/dist/doctor-health-contributions-CBVyN6ju.js +486 -0
- package/dist/doctor-prompter-vO6LPeXZ.js +56 -0
- package/dist/doctor-workspace-status-BnXA04-6.js +75 -0
- package/dist/dreaming-1RLie1iF.js +1574 -0
- package/dist/dreaming-narrative-BRtTdpbt.js +595 -0
- package/dist/embedded-gateway-stub.runtime-GMix51Tf.js +9 -0
- package/dist/embedded-gateway-stub.runtime.js +1 -1
- package/dist/entry.js +2 -2
- package/dist/exec-approvals-cli-R6jgupQH.js +498 -0
- package/dist/extensionAPI.js +1 -1
- package/dist/extensions/active-memory/index.js +1 -1
- package/dist/extensions/bluebubbles/api.js +3 -3
- package/dist/extensions/bluebubbles/channel-plugin-api.js +1 -1
- package/dist/extensions/browser/browser-bridge.js +1 -1
- package/dist/extensions/browser/browser-config.js +4 -4
- package/dist/extensions/browser/browser-control-auth.js +2 -2
- package/dist/extensions/browser/browser-doctor.js +2 -2
- package/dist/extensions/browser/browser-maintenance.js +2 -2
- package/dist/extensions/browser/browser-profiles.js +2 -2
- package/dist/extensions/browser/browser-runtime-api.js +10 -10
- package/dist/extensions/browser/index.js +1 -1
- package/dist/extensions/browser/plugin-registration.js +1 -1
- package/dist/extensions/browser/register.runtime.js +3 -3
- package/dist/extensions/browser/runtime-api.js +11 -11
- package/dist/extensions/browser/test-support.js +1 -1
- package/dist/extensions/device-pair/api.js +1 -1
- package/dist/extensions/device-pair/index.js +3 -3
- package/dist/extensions/device-pair/notify.js +1 -1
- package/dist/extensions/device-pair/pair-command-approve.js +1 -1
- package/dist/extensions/google-meet/index.js +2 -2
- package/dist/extensions/imessage/api.js +3 -3
- package/dist/extensions/imessage/channel-plugin-api.js +1 -1
- package/dist/extensions/imessage/runtime-api.js +3 -3
- package/dist/extensions/irc/api.js +2 -2
- package/dist/extensions/irc/channel-plugin-api.js +1 -1
- package/dist/extensions/line/api.js +2 -2
- package/dist/extensions/line/channel-plugin-api.js +1 -1
- package/dist/extensions/line/contract-api.js +1 -1
- package/dist/extensions/line/runtime-api.js +4 -4
- package/dist/extensions/line/setup-api.js +1 -1
- package/dist/extensions/llm-task/index.js +2 -2
- package/dist/extensions/lobster/index.js +3 -3
- package/dist/extensions/lobster/runtime-api.js +1 -1
- package/dist/extensions/mattermost/api.js +1 -1
- package/dist/extensions/mattermost/channel-plugin-api.js +1 -1
- package/dist/extensions/mattermost/channel-plugin-runtime.js +1 -1
- package/dist/extensions/mattermost/policy-api.js +1 -1
- package/dist/extensions/mattermost/runtime-api.js +4 -4
- package/dist/extensions/mattermost/slash-route-api.js +1 -1
- package/dist/extensions/memory-core/api.js +1 -1
- package/dist/extensions/memory-core/cli-metadata.js +2 -2
- package/dist/extensions/memory-core/index.js +3 -3
- package/dist/extensions/memory-lancedb/cli-metadata.js +1 -1
- package/dist/extensions/msteams/api.js +1 -1
- package/dist/extensions/msteams/channel-plugin-api.js +1 -1
- package/dist/extensions/msteams/runtime-api.js +3 -3
- package/dist/extensions/msteams/test-api.js +1 -1
- package/dist/extensions/nextcloud-talk/api.js +1 -1
- package/dist/extensions/nextcloud-talk/channel-plugin-api.js +1 -1
- package/dist/extensions/nextcloud-talk/runtime-api.js +2 -2
- package/dist/extensions/openshell/index.js +2 -2
- package/dist/extensions/signal/api.js +6 -6
- package/dist/extensions/signal/channel-plugin-api.js +1 -1
- package/dist/extensions/signal/reaction-runtime-api.js +1 -1
- package/dist/extensions/signal/runtime-api.js +7 -7
- package/dist/extensions/skill-workshop/api.js +1 -1
- package/dist/extensions/skill-workshop/index.js +1 -1
- package/dist/extensions/synology-chat/api.js +1 -1
- package/dist/extensions/synology-chat/channel-plugin-api.js +1 -1
- package/dist/extensions/tlon/api.js +2 -2
- package/dist/extensions/tlon/channel-plugin-api.js +1 -1
- package/dist/extensions/tlon/runtime-api.js +1 -1
- package/dist/extensions/tlon/test-api.js +1 -1
- package/dist/extensions/twitch/api.js +1 -1
- package/dist/extensions/twitch/channel-plugin-api.js +1 -1
- package/dist/extensions/twitch/setup-plugin-api.js +1 -1
- package/dist/extensions/zalo/api.js +3 -3
- package/dist/extensions/zalo/channel-plugin-api.js +1 -1
- package/dist/extensions/zalo/runtime-api.js +2 -2
- package/dist/extensions/zalo/setup-api.js +2 -2
- package/dist/extensions/zalouser/api.js +3 -3
- package/dist/extensions/zalouser/channel-plugin-api.js +1 -1
- package/dist/extensions/zalouser/runtime-api.js +6 -6
- package/dist/extensions/zalouser/setup-plugin-api.js +1 -1
- package/dist/extensions/zalouser/test-api.js +1 -1
- package/dist/fallbacks-Cckv3nng.js +2 -0
- package/dist/fallbacks-Y_nNY8_a.js +31 -0
- package/dist/fallbacks-shared-DZiG1Gr_.js +111 -0
- package/dist/gateway-CDfn0J87.js +115 -0
- package/dist/gateway-cli-D197U6l0.js +1325 -0
- package/dist/gateway-rpc-Bomz8HKq.js +14 -0
- package/dist/gateway-rpc.runtime-597tksmo.js +23 -0
- package/dist/gateway-rpc.runtime.js +1 -1
- package/dist/gateway-runtime-Bm2_MhFn.js +15 -0
- package/dist/gateway-status-Cr4UJKUx.js +584 -0
- package/dist/genesis-tools-DCRaVVjY.js +8999 -0
- package/dist/genesis-tools.runtime-idgd5fjy.js +2 -0
- package/dist/genesis-tools.runtime.js +1 -1
- package/dist/get-reply-BF_7bR5f.js +3879 -0
- package/dist/get-reply-from-config.runtime-DEq5XM_s.js +2 -0
- package/dist/get-reply-from-config.runtime.js +1 -1
- package/dist/graph-users-Bhlw-_4i.js +1337 -0
- package/dist/health-9ifMvGZN.js +3 -0
- package/dist/health-CzOJa6SX.js +469 -0
- package/dist/heartbeat-runner-B2Tkbj5e.js +5 -0
- package/dist/heartbeat-runner-B63G8dbO.js +1292 -0
- package/dist/heartbeat-runner.runtime-QJ_2AMjN.js +4 -0
- package/dist/heartbeat-runner.runtime.js +1 -1
- package/dist/hooks-cli-ZWI1iJnh.js +433 -0
- package/dist/image-fallbacks-BpTfBvbi.js +2 -0
- package/dist/image-fallbacks-DpVwnB41.js +31 -0
- package/dist/inbound-reply-dispatch-mKybIcNA.js +73 -0
- package/dist/index.js +2 -2
- package/dist/infra-runtime-CvwvzUfM.js +39 -0
- package/dist/init-CWeM0DfJ.js +59 -0
- package/dist/library-ClQalZ3x.js +45 -0
- package/dist/lifecycle-CgV7Cgt-.js +571 -0
- package/dist/lifecycle-DVWaxj-A.js +229 -0
- package/dist/lifecycle.runtime-DErLwVJ_.js +2 -0
- package/dist/lifecycle.runtime.js +1 -1
- package/dist/list-5RIS3LMG.js +2 -0
- package/dist/list-BNesYDN2.js +2 -0
- package/dist/list-Dk1hCKis.js +1201 -0
- package/dist/list-eUjt_6__.js +131 -0
- package/dist/list.probe-C51ceJSY.js +419 -0
- package/dist/llm-slug-generator-D64IMUoy.js +79 -0
- package/dist/llm-slug-generator.js +1 -1
- package/dist/load-config-Ccss2uTi.js +35 -0
- package/dist/local-dispatch.runtime-u7Ir1N07.js +8 -0
- package/dist/local-dispatch.runtime.js +1 -1
- package/dist/logs-cli-BYHTboPa.js +265 -0
- package/dist/logs-cli.runtime-CQwNptr-.js +2 -0
- package/dist/logs-cli.runtime.js +1 -1
- package/dist/main-session-restart-recovery-CA9bvC1W.js +206 -0
- package/dist/managed-image-attachments-B_gpkI1u.js +635 -0
- package/dist/managed-image-attachments-C0Y6nAP2.js +2 -0
- package/dist/manager-DZGFArgz.js +2 -0
- package/dist/manager-Df8TC4rX.js +2057 -0
- package/dist/markdown-to-line-xXLdnzcE.js +790 -0
- package/dist/mcp/plugin-tools-serve.js +1 -1
- package/dist/mcp-cli-B50W9Pkc.js +725 -0
- package/dist/mcp-http-BiUGVpJ4.js +529 -0
- package/dist/memory-core-host-runtime-cli-UgLo6ezC.js +9 -0
- package/dist/message-C95gttLd.js +232 -0
- package/dist/message-action-runner-0KAp6ccG.js +1407 -0
- package/dist/message-action-runner-BSUDvECO.js +2 -0
- package/dist/message-actions-Be4Ob151.js +143 -0
- package/dist/message.gateway.runtime-DMMRMIln.js +2 -0
- package/dist/message.gateway.runtime.js +1 -1
- package/dist/models-auth-status-DhYxBz7G.js +201 -0
- package/dist/models-cli-C2prinXb.js +219 -0
- package/dist/monitor-BEI21vNQ.js +1661 -0
- package/dist/monitor-BUgTAJvZ.js +1237 -0
- package/dist/monitor-BdJRIhi1.js +2 -0
- package/dist/monitor-C7wuttQJ.js +1459 -0
- package/dist/monitor-DMumiWnt.js +788 -0
- package/dist/monitor-IQo2ExmV.js +671 -0
- package/dist/monitor-auth-DW0lvfm3.js +207 -0
- package/dist/monitor-processing-DTrsRdyz.js +1974 -0
- package/dist/monitor.runtime-DwqyCQcb.js +2 -0
- package/dist/monitor.runtime.js +1 -1
- package/dist/monitor.webhook-D11nrUh9.js +180 -0
- package/dist/msteams-DO-PW98M.js +35 -0
- package/dist/native-hook-relay-CNZrcPIw.js +519 -0
- package/dist/nextcloud-talk-BeYFnATY.js +17 -0
- package/dist/node-cli-BFrdTPdH.js +2506 -0
- package/dist/nodes-cli-B3Wj_MvP.js +1046 -0
- package/dist/nodes-utils-AsgrCa7K.js +84 -0
- package/dist/nodes.helpers-CMXxavTs.js +34 -0
- package/dist/notify-CNS0kRWM.js +315 -0
- package/dist/onboard-D4ehf66t.js +632 -0
- package/dist/onboard-helpers-DWxdMyCs.js +6 -0
- package/dist/onboard-helpers-o78s0lR1.js +204 -0
- package/dist/onboard-remote-Cc1XlRzr.js +193 -0
- package/dist/onboard-remote-D8THwo3P.js +2 -0
- package/dist/onboard-skills-B2VoCq7v.js +134 -0
- package/dist/onboard-skills-DtOgSJZo.js +2 -0
- package/dist/openai-http-DKQZWsqY.js +500 -0
- package/dist/openresponses-http-C4kol41X.js +1128 -0
- package/dist/operator-approvals-client-BoN_VmkB.js +68 -0
- package/dist/outbound.runtime-D-L8FN8E.js +2 -0
- package/dist/outbound.runtime.js +1 -1
- package/dist/pair-command-approve-DMeQ6uD4.js +44 -0
- package/dist/persistent-bindings.lifecycle-O-RnoTW4.js +2 -0
- package/dist/persistent-bindings.lifecycle-bptWQEFT.js +85 -0
- package/dist/pi-embedded-BM79sXqb.js +2905 -0
- package/dist/pi-embedded-BUDWcDt8.js +4 -0
- package/dist/pi-embedded.runtime-D53bCPOr.js +4 -0
- package/dist/pi-embedded.runtime.js +1 -1
- package/dist/pi-tool-definition-adapter-DdYQtumi.js +217 -0
- package/dist/pi-tools-ihbjTP0K.js +1057 -0
- package/dist/pi-tools.before-tool-call-DrEqr96j.js +433 -0
- package/dist/pi-tools.before-tool-call-VB9YEPOv.js +2 -0
- package/dist/plugin-DwNULpmw.js +12195 -0
- package/dist/plugin-enabled-DbO9GyRJ.js +140 -0
- package/dist/plugin-registration-Du6hgUkp.js +23 -0
- package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
- package/dist/plugin-sdk/acp-binding-runtime.js +1 -1
- package/dist/plugin-sdk/acp-runtime.js +2 -2
- package/dist/plugin-sdk/agent-harness-runtime.js +5 -5
- package/dist/plugin-sdk/agent-harness.js +6 -6
- package/dist/plugin-sdk/agent-runtime.js +2 -2
- package/dist/plugin-sdk/approval-gateway-runtime.js +2 -2
- package/dist/plugin-sdk/approval-handler-runtime.js +3 -3
- package/dist/plugin-sdk/approval-runtime.js +1 -1
- package/dist/plugin-sdk/browser-node-runtime.js +4 -4
- package/dist/plugin-sdk/browser-setup-tools.js +3 -3
- package/dist/plugin-sdk/browser-support.js +7 -7
- package/dist/plugin-sdk/channel-core.js +2 -2
- package/dist/plugin-sdk/channel-inbound.js +2 -2
- package/dist/plugin-sdk/command-auth.js +1 -1
- package/dist/plugin-sdk/command-status-runtime.js +1 -1
- package/dist/plugin-sdk/compat.js +1 -1
- package/dist/plugin-sdk/conversation-binding-runtime.js +1 -1
- package/dist/plugin-sdk/conversation-runtime.js +3 -3
- package/dist/plugin-sdk/core.js +2 -2
- package/dist/plugin-sdk/direct-dm.js +1 -1
- package/dist/plugin-sdk/gateway-runtime.js +3 -3
- package/dist/plugin-sdk/inbound-reply-dispatch.js +1 -1
- package/dist/plugin-sdk/index.js +1 -1
- package/dist/plugin-sdk/infra-runtime.js +2 -2
- package/dist/plugin-sdk/irc.js +2 -2
- package/dist/plugin-sdk/matrix.js +1 -1
- package/dist/plugin-sdk/memory-core-host-runtime-cli.js +2 -2
- package/dist/plugin-sdk/memory-core.js +2 -2
- package/dist/plugin-sdk/msteams.js +2 -2
- package/dist/plugin-sdk/nextcloud-talk.js +2 -2
- package/dist/plugin-sdk/nostr.js +1 -1
- package/dist/plugin-sdk/reply-dispatch-runtime.js +1 -1
- package/dist/plugin-sdk/reply-runtime.js +4 -4
- package/dist/plugin-sdk/runtime-secret-resolution.js +1 -1
- package/dist/plugin-sdk/runtime.js +2 -2
- package/dist/plugin-sdk/session-visibility.js +1 -1
- package/dist/plugin-sdk/testing.js +4 -4
- package/dist/plugin-sdk/tlon.js +1 -1
- package/dist/plugin-sdk/zalo.js +1 -1
- package/dist/plugin-sdk/zalouser.js +1 -1
- package/dist/plugin-service-DcSnRF5x.js +2890 -0
- package/dist/plugins/runtime/index.js +1 -1
- package/dist/policy-uc224usV.js +328 -0
- package/dist/postinstall-inventory.json +407 -407
- package/dist/prepare.runtime-BPA6jMiM.js +815 -0
- package/dist/prepare.runtime.js +1 -1
- package/dist/probe-5ToseFjd.js +1443 -0
- package/dist/probe-BdCXAH_u.js +2 -0
- package/dist/probe-ByVoZEdq.js +45 -0
- package/dist/probe-D-D_1oc4.js +241 -0
- package/dist/probe-D6s_1Z5k.js +2 -0
- package/dist/probe-DIMAmSsO.js +74 -0
- package/dist/probe-DYuL-s4A.js +2205 -0
- package/dist/program-DDTWTh6g.js +111 -0
- package/dist/prompt-select-styled-kf1dPqNa.js +20 -0
- package/dist/protocol-Batc2DmY.js +2234 -0
- package/dist/provider-dispatcher-DdUqCa6H.js +2 -0
- package/dist/provider-dispatcher-uioW38XW.js +22 -0
- package/dist/qr-cli-B1WUe8Eb.js +2 -0
- package/dist/qr-cli-DmPti3xe.js +349 -0
- package/dist/reaction-runtime-api-5G3e9J0C.js +116 -0
- package/dist/reactions-x7VH-B95.js +998 -0
- package/dist/register-service-commands-DcW5qPTu.js +71 -0
- package/dist/register.agent-Dtj4HC7R.js +248 -0
- package/dist/register.configure-CJHb84Ce.js +15 -0
- package/dist/register.maintenance-BUkPfMcX.js +438 -0
- package/dist/register.message-DGFpyYBl.js +329 -0
- package/dist/register.onboard-D3v3xIfF.js +81 -0
- package/dist/register.runtime-DI4QxYdj.js +81 -0
- package/dist/register.runtime.js +1 -1
- package/dist/register.setup-CXTyuIFM.js +150 -0
- package/dist/register.status-health-sessions-CYUnRi97.js +1215 -0
- package/dist/register.subclis-DKMVrwRc.js +3 -0
- package/dist/register.subclis-NWRi2XKp.js +29 -0
- package/dist/register.subclis-core-De6qmQkr.js +243 -0
- package/dist/reply-dispatch-runtime-B8_j6pJi.js +13 -0
- package/dist/reply-runtime-DGHQDC9d.js +11 -0
- package/dist/reply.runtime-BCfqw2Co.js +2 -0
- package/dist/reply.runtime.js +1 -1
- package/dist/restart-health-6cjrRBpF.js +202 -0
- package/dist/restart-health-b6Qw43Tj.js +2 -0
- package/dist/root-help-BTIH_eUe.js +44 -0
- package/dist/routes-C3J2GfHR.js +3341 -0
- package/dist/routes-SMmfW6k8.js +2 -0
- package/dist/rpc-DQbAcIKu.js +61 -0
- package/dist/rpc.runtime-Q3qyofLf.js +21 -0
- package/dist/rpc.runtime.js +1 -1
- package/dist/run-delivery.runtime-BsLouK3f.js +530 -0
- package/dist/run-delivery.runtime.js +1 -1
- package/dist/run-embedded.runtime-CXd0oZQP.js +4 -0
- package/dist/run-embedded.runtime.js +1 -1
- package/dist/run-execution-cli.runtime-D-MKbq8r.js +4 -0
- package/dist/run-execution-cli.runtime.js +1 -1
- package/dist/run-executor.runtime-Cz0I8mDt.js +277 -0
- package/dist/run-executor.runtime.js +1 -1
- package/dist/run-main-CkXBTQut.js +516 -0
- package/dist/run-subagent-registry.runtime-Cyb8amrH.js +2 -0
- package/dist/run-subagent-registry.runtime.js +1 -1
- package/dist/run-wait-KlS0pdIK.js +135 -0
- package/dist/runtime-3niXLiFY.js +9 -0
- package/dist/runtime-api-B79e2jL2.js +4 -0
- package/dist/runtime-api-CM2c2bSC.js +9 -0
- package/dist/runtime-api-CnOFFN5q.js +14 -0
- package/dist/runtime-api-TnwM-EZH.js +9 -0
- package/dist/runtime-embedded-pi.runtime-9csGjukF.js +2 -0
- package/dist/runtime-embedded-pi.runtime.js +1 -1
- package/dist/runtime-internal-CQX4Zehn.js +2 -0
- package/dist/runtime-options-C0qP2VlT.js +275 -0
- package/dist/runtime-schema-DanWbDoL.js +27780 -0
- package/dist/runtime-vycfMfew.js +973 -0
- package/dist/scan-Bs5zROOQ.js +2 -0
- package/dist/scan-CP2zJb_w.js +523 -0
- package/dist/secrets-cli-YFTlIMmq.js +2101 -0
- package/dist/security-cli-B2WBRU9C.js +486 -0
- package/dist/selection-DSZGsU6m.js +2 -0
- package/dist/selection-hUGDnCgX.js +7736 -0
- package/dist/send-B3Ygb3r3.js +156 -0
- package/dist/send-DMwqnu6K.js +102 -0
- package/dist/send.runtime-D86atcfW.js +2 -0
- package/dist/send.runtime.js +1 -1
- package/dist/server-4gQCBM3M.js +77 -0
- package/dist/server-CK9eCPCG.js +13 -0
- package/dist/server-context-ih3GaGaI.js +847 -0
- package/dist/server-context-kZ_QADic.js +2 -0
- package/dist/server-node-events-CMlHOIKa.js +481 -0
- package/dist/server-plugin-bootstrap-B0XitldT.js +11333 -0
- package/dist/server-plugin-bootstrap-CHlVF8XB.js +2 -0
- package/dist/server-restart-sentinel-TpXCoiYX.js +697 -0
- package/dist/server.impl-B6at3Orl.js +12734 -0
- package/dist/session-kill-http-DvYp5h-j.js +110 -0
- package/dist/session-reset-service-C9rIVqF7.js +471 -0
- package/dist/session-route-FaMcEc7I.js +93 -0
- package/dist/session-status.runtime-BfPn8qA8.js +2 -0
- package/dist/session-status.runtime.js +1 -1
- package/dist/session-subagent-reactivation.runtime-C1fGNaiM.js +2 -0
- package/dist/session-subagent-reactivation.runtime.js +1 -1
- package/dist/session-tab-registry-BDK2AlxL.js +491 -0
- package/dist/session-visibility-BkrL2kFF.js +147 -0
- package/dist/sessions-helpers-YOu_5tl0.js +304 -0
- package/dist/sessions-history-http-DxNaoDfb.js +383 -0
- package/dist/sessions-patch-BPtlF0Lu.js +309 -0
- package/dist/sessions-resolve-B2rpvSka.js +174 -0
- package/dist/sessions.runtime-DEk_x65_.js +2 -0
- package/dist/sessions.runtime.js +1 -1
- package/dist/setup-DZJZF2R6.js +495 -0
- package/dist/setup-api-BkYWhB-B.js +29 -0
- package/dist/setup-core-BXBabSEx.js +171 -0
- package/dist/setup-core-eahC1DXh.js +176 -0
- package/dist/setup-surface-BEf8reey.js +286 -0
- package/dist/setup-surface-DAOKJ-ai.js +219 -0
- package/dist/setup-surface-b6gu0S8l.js +403 -0
- package/dist/setup.finalize-DXUCLT5O.js +539 -0
- package/dist/setup.gateway-config-BH4xbjcX.js +250 -0
- package/dist/shared-BhHdyXun.js +198 -0
- package/dist/shared-CKv38qsN.js +121 -0
- package/dist/shared-DUw9Q4Lf.js +76 -0
- package/dist/slash-state-BQgmhum1.js +1911 -0
- package/dist/src-C1B3uJMu.js +3974 -0
- package/dist/startup-context-DTpThe3H.js +312 -0
- package/dist/status-63GZxfe4.js +2 -0
- package/dist/status-C6qTe-QQ.js +397 -0
- package/dist/status-CSIGAUly.js +190 -0
- package/dist/status-DOW91Kcx.js +2 -0
- package/dist/status-all-7hqTcvxr.js +498 -0
- package/dist/status-json-CUzzv8An.js +14 -0
- package/dist/status-json-command-DwWlqvoV.js +84 -0
- package/dist/status-p4yx6E3C.js +209 -0
- package/dist/status-runtime-shared-yrzbsOR8.js +257 -0
- package/dist/status-subagents.runtime-CuRGoNNn.js +18 -0
- package/dist/status-subagents.runtime.js +1 -1
- package/dist/status-text-BrcRsCFE.js +237 -0
- package/dist/status-zV1BflCE.js +3 -0
- package/dist/status.gateway-connection.runtime-BKd4Zivg.js +2 -0
- package/dist/status.gateway-connection.runtime.js +1 -1
- package/dist/status.gather-B7WlHpIR.js +292 -0
- package/dist/status.gather-Ccewg4ce.js +2 -0
- package/dist/status.runtime-BFru2C4v.js +2 -0
- package/dist/status.runtime.js +1 -1
- package/dist/status.scan-mEKnAmP3.js +65 -0
- package/dist/status.scan-overview-B0qQVJd0.js +379 -0
- package/dist/status.scan.fast-json-CsU-fWhj.js +132 -0
- package/dist/status.scan.fast-json-tEc36TAC.js +2 -0
- package/dist/status.summary-Bvgry977.js +214 -0
- package/dist/status.summary-DRolowE_.js +2 -0
- package/dist/subagent-announce-Bhe55Ktf.js +351 -0
- package/dist/subagent-announce-delivery-NDBIRwuZ.js +726 -0
- package/dist/subagent-announce-output-DsmGO7Oi.js +364 -0
- package/dist/subagent-control-Bn8n-535.js +506 -0
- package/dist/subagent-followup.runtime-C7s-lOGN.js +68 -0
- package/dist/subagent-followup.runtime.js +1 -1
- package/dist/subagent-orphan-recovery-CJEhSvFZ.js +305 -0
- package/dist/subagent-registry-BgQA8eP1.js +1753 -0
- package/dist/subagent-registry-DAm-N9-O.js +3 -0
- package/dist/subagent-registry.runtime.js +1 -1
- package/dist/subagent-spawn-EXtecXVT.js +1005 -0
- package/dist/system-cli-CFS_PN8R.js +59 -0
- package/dist/targets-BXWH2MfM.js +67 -0
- package/dist/task-executor-DfugjJEq.js +360 -0
- package/dist/task-owner-access-CSwIy-v-.js +74 -0
- package/dist/task-registry-B-kQGKt_.js +2366 -0
- package/dist/task-registry-delivery-runtime-DD1_7xUF.js +3 -0
- package/dist/task-registry-delivery-runtime-DIsasFa1.js +2 -0
- package/dist/task-registry.maintenance-CxAx195T.js +2 -0
- package/dist/task-registry.maintenance-DIFuNnzy.js +416 -0
- package/dist/telegram/token.js +1 -1
- package/dist/testing-C7oUBiZL.js +575 -0
- package/dist/text-report-hYiQ_Kcv.js +587 -0
- package/dist/tool-resolution-CnnOHyxg.js +90 -0
- package/dist/tools-effective-inventory-DqYXIS6R.js +152 -0
- package/dist/tools-invoke-http-zop5qWa_.js +206 -0
- package/dist/trash-DZRlsk_R.js +24 -0
- package/dist/tui-cli-2cKXF0J8.js +4575 -0
- package/dist/update-cli-DP1KXasM.js +1759 -0
- package/dist/upgrade-DPFxH2YB.js +1226 -0
- package/dist/video-generation-task-status-BEgeadFu.js +163 -0
- package/dist/wait-for-idle-before-flush-CmSNfAco.js +5986 -0
- package/dist/wizard-models-BJGn0RnU.js +161 -0
- package/package.json +1 -1
- package/dist/abort-ca8hDmJr.js +0 -201
- package/dist/abort.runtime-BrChEuUS.js +0 -2
- package/dist/accounts-C1ECKXaw.js +0 -107
- package/dist/accounts-DH8HU_Fu.js +0 -104
- package/dist/accounts-DWQpG06j.js +0 -2
- package/dist/acp-cli-BLpWVnc7.js +0 -2193
- package/dist/acp-spawn-D1p6b1gk.js +0 -2
- package/dist/acp-spawn-qoyl9NiU.js +0 -1093
- package/dist/acp-stateful-target-driver-NL9txhIM.js +0 -89
- package/dist/action-agents-C729fJ_P.js +0 -67
- package/dist/action-focus-53k9XP4K.js +0 -132
- package/dist/action-help-bIJZBYLz.js +0 -7
- package/dist/action-info-BBzvYFX_.js +0 -101
- package/dist/action-kill-C4fa3E9I.js +0 -33
- package/dist/action-list-BEiIbwP1.js +0 -21
- package/dist/action-log-Cq7RLW2T.js +0 -30
- package/dist/action-send-DyiHgRwh.js +0 -39
- package/dist/action-spawn-CEZfDvXU.js +0 -47
- package/dist/action-unfocus-CpAw3JOi.js +0 -29
- package/dist/actions.runtime-BKEwPyo7.js +0 -18
- package/dist/actions.runtime-Bp0UusIf.js +0 -5
- package/dist/agent-C2hwJefQ.js +0 -2
- package/dist/agent-command-BAAeGRql.js +0 -874
- package/dist/agent-harness-runtime-Czrx53YL.js +0 -144
- package/dist/agent-runner-utils-DzShckNa.js +0 -239
- package/dist/agent-runner.runtime-d_EtNxBK.js +0 -3455
- package/dist/agent-runtime-DNgz7AOP.js +0 -18
- package/dist/agents-CZmpon7q.js +0 -5
- package/dist/agents-Cs9je_gQ.js +0 -953
- package/dist/aliases-CZemdpTj.js +0 -2
- package/dist/aliases-KefnmoaT.js +0 -96
- package/dist/api-CO05iXNH.js +0 -139
- package/dist/api-CyjlApHT.js +0 -3
- package/dist/api-DArm1ECd.js +0 -5
- package/dist/approval-gateway-resolver-URpDQMld.js +0 -29
- package/dist/approval-gateway-runtime-B087BMms.js +0 -2
- package/dist/approval-handler-runtime-BgRQnG4g.js +0 -439
- package/dist/approval-native-runtime-DAsraihr.js +0 -729
- package/dist/attempt-execution.runtime-D_FGkDQz.js +0 -509
- package/dist/attempt.prompt-helpers-CDzDUi1C.js +0 -221
- package/dist/attempt.tool-run-context-DitxaTPJ.js +0 -933
- package/dist/audit-Bq8vlxok.js +0 -939
- package/dist/audit.runtime-CU42yh1v.js +0 -7
- package/dist/auth-CQfwC-AH.js +0 -383
- package/dist/auth-DyWcaG4X.js +0 -2
- package/dist/auth-order-C3zGI0s9.js +0 -96
- package/dist/auth-order-XQ9ZGPd9.js +0 -2
- package/dist/bash-tools-BBRtIa6j.js +0 -2824
- package/dist/bash-tools-BI0d1TdC.js +0 -3
- package/dist/binding-routing-Cvm5c1IV.js +0 -85
- package/dist/binding-targets-DSs4NXbd.js +0 -121
- package/dist/bridge-server-CwWzSgv8.js +0 -113
- package/dist/browser-control-auth-y1f-9HRI.js +0 -2
- package/dist/browser-node-runtime-3UAeP8a6.js +0 -12
- package/dist/browser-profiles-BzzxphNW.js +0 -2
- package/dist/browser-runtime-jj11LR-E.js +0 -387
- package/dist/browser-setup-tools-CFB52yQc.js +0 -13
- package/dist/build-TlobwpQW.js +0 -550
- package/dist/call-Bx8lENb2.js +0 -3
- package/dist/call-jYRpeAWm.js +0 -331
- package/dist/call.runtime-BRluUZbD.js +0 -2
- package/dist/capability-cli-Iyj9Zi3g.js +0 -1401
- package/dist/catchup-CtxTwzY8.js +0 -300
- package/dist/channel-BJKHBfnq.js +0 -491
- package/dist/channel-BNNnYzwK.js +0 -1100
- package/dist/channel-BXS-Hd8p.js +0 -226
- package/dist/channel-C4XWpowe.js +0 -1174
- package/dist/channel-CJQdQgPr.js +0 -840
- package/dist/channel-C_zWAu4D.js +0 -595
- package/dist/channel-CtGzrF-K.js +0 -1802
- package/dist/channel-O9DE4IIq.js +0 -350
- package/dist/channel-WHUOtJme.js +0 -297
- package/dist/channel-WoDWDxqx.js +0 -1320
- package/dist/channel-core-BJjq9SOq.js +0 -5
- package/dist/channel-inbound-DLs-YfUs.js +0 -31
- package/dist/channel-plugin-runtime-CMG8ac2K.js +0 -771
- package/dist/channel-runtime-4UjeDmDI.js +0 -425
- package/dist/channel-ys2FFqi1.js +0 -453
- package/dist/channel.runtime-B38Ky3R9.js +0 -109
- package/dist/channel.runtime-Bl8WYZvF.js +0 -576
- package/dist/channel.runtime-D3kAsCsR.js +0 -89
- package/dist/channel.runtime-DEQ-anMf.js +0 -2364
- package/dist/channel.runtime-DG-EUnSC.js +0 -4
- package/dist/channel.runtime-IfV1Md6p.js +0 -430
- package/dist/channel.runtime-w1tHjTOa.js +0 -34702
- package/dist/channel.setup-dXwiMlyi.js +0 -10
- package/dist/channels-B2G1Y-iD.js +0 -733
- package/dist/channels-cli-YintLKAt.js +0 -268
- package/dist/chat-DdKbu8CA.js +0 -2758
- package/dist/clawbot-cli-CnHERFYk.js +0 -9
- package/dist/cli-CSNAd6Sz.js +0 -72
- package/dist/cli-CdRioBfN.js +0 -2
- package/dist/cli-DMPwqYqc.js +0 -219
- package/dist/cli-ctyAqh0j.js +0 -2
- package/dist/cli-runner-CNlk7xmx.js +0 -286
- package/dist/cli-runner.runtime-BK4sQk1m.js +0 -3
- package/dist/cli-runner.runtime-BT8ZZn-R.js +0 -4
- package/dist/cli.runtime-DU7swpBI.js +0 -1261
- package/dist/client-CQdcTPUf.js +0 -138
- package/dist/client-Vx7pseEY.js +0 -713
- package/dist/command-auth-DkJWb2HE.js +0 -76
- package/dist/command-config-resolution-CIRWRfR8.js +0 -23
- package/dist/command-config-resolution-DYZWj6Zm.js +0 -2
- package/dist/command-config-resolution.runtime-CUtVJOf0.js +0 -2
- package/dist/command-registry-CHy5EH0v.js +0 -4
- package/dist/command-registry-CyKgELQP.js +0 -9
- package/dist/command-registry-core-DQeRIuot.js +0 -104
- package/dist/command-secret-gateway-BNnWdAlq.js +0 -528
- package/dist/command-status.runtime-CKgimR6Y.js +0 -87
- package/dist/commands-acp-DSm97O5v.js +0 -77
- package/dist/commands-compact.runtime-BXhP6WJ6.js +0 -10
- package/dist/commands-handlers.runtime-FzK-n0L8.js +0 -4597
- package/dist/commands-status-BQnB5OSX.js +0 -16
- package/dist/commands-status.runtime-B6GcfEDm.js +0 -3
- package/dist/commands-subagents-control.runtime-CByd528A.js +0 -2
- package/dist/commands-subagents-control.runtime-CqI4LMYa.js +0 -3
- package/dist/commands-system-prompt-BD_LeeZk.js +0 -2
- package/dist/commands-system-prompt-C2Md_Ia1.js +0 -158
- package/dist/commands.runtime-CwiPf7Cc.js +0 -166
- package/dist/compact-B_4bMVpw.js +0 -1118
- package/dist/compact.runtime-BhRqiBXG.js +0 -12
- package/dist/completion-cli-D07hGGMI.js +0 -313
- package/dist/config-B1lvYOd7.js +0 -251
- package/dist/config-cli-BgepNwob.js +0 -1078
- package/dist/configure-CEfl0ORM.js +0 -2
- package/dist/configure-TsykzQqM.js +0 -1245
- package/dist/connect-options-zqTIEl6K.js +0 -699
- package/dist/control-auth-CNa_KHpo.js +0 -125
- package/dist/control-service-CZl5wFdZ.js +0 -156
- package/dist/conversation-id-BLY9ffjm.js +0 -38
- package/dist/conversation-id-DVeOM5Jh.js +0 -235
- package/dist/conversation-runtime-gJt7AAg2.js +0 -31
- package/dist/core-BtmNtOpS.js +0 -275
- package/dist/cron-cli-s9SF4__G.js +0 -713
- package/dist/daemon-cli-TCubZfI_.js +0 -12
- package/dist/delegate-DyITI93V.js +0 -64
- package/dist/detached-task-runtime-CTUQj84i.js +0 -73
- package/dist/devices-cli-SXcLjGmh.js +0 -496
- package/dist/diagnostics-waSemGnZ.js +0 -154
- package/dist/direct-dm-CiSjkmkL.js +0 -64
- package/dist/dispatch-BnQSIx2G.js +0 -1131
- package/dist/dispatch-acp-CaNQyl2L.js +0 -981
- package/dist/dispatch-acp-manager.runtime-DJK1eHYX.js +0 -3
- package/dist/dispatch-acp.runtime-Bl5cvtX4.js +0 -19
- package/dist/doctor-device-pairing-DBhEA-8G.js +0 -307
- package/dist/doctor-gateway-daemon-flow-Ds47Er3Y.js +0 -250
- package/dist/doctor-gateway-health-EWwTw5JR.js +0 -60
- package/dist/doctor-health-C6muRn7t.js +0 -59
- package/dist/doctor-health-contributions-B984415a.js +0 -486
- package/dist/doctor-prompter-BpOi4ndi.js +0 -56
- package/dist/doctor-workspace-status-CiEWZXrx.js +0 -75
- package/dist/dreaming-DFPenC85.js +0 -1574
- package/dist/dreaming-narrative-6A27_Gft.js +0 -595
- package/dist/embedded-gateway-stub.runtime-UVgfXZzk.js +0 -9
- package/dist/exec-approvals-cli-Cc_GG9ZT.js +0 -498
- package/dist/fallbacks-DX4YcmAx.js +0 -2
- package/dist/fallbacks-inTaaG-m.js +0 -31
- package/dist/fallbacks-shared-ow1la-U2.js +0 -111
- package/dist/gateway-D4iWwu3_.js +0 -115
- package/dist/gateway-cli-D6j0Aj3R.js +0 -1325
- package/dist/gateway-rpc-Dd_x2GX5.js +0 -14
- package/dist/gateway-rpc.runtime-Btnvsv-7.js +0 -23
- package/dist/gateway-runtime-DctMRv_p.js +0 -15
- package/dist/gateway-status-DJCtvUVn.js +0 -584
- package/dist/genesis-tools-CvMcpUvH.js +0 -8999
- package/dist/genesis-tools.runtime-Ch3NDEDq.js +0 -2
- package/dist/get-reply-Cm39MCyU.js +0 -3879
- package/dist/get-reply-from-config.runtime-CSqCYatb.js +0 -2
- package/dist/graph-users-BJxYqA3A.js +0 -1337
- package/dist/health-C14jIilQ.js +0 -469
- package/dist/health-C6yJSCMc.js +0 -3
- package/dist/heartbeat-runner-C6-gFnyC.js +0 -5
- package/dist/heartbeat-runner-yUYjgzIM.js +0 -1292
- package/dist/heartbeat-runner.runtime-DZzyrUNB.js +0 -4
- package/dist/hooks-cli-CCRaHheu.js +0 -433
- package/dist/image-fallbacks-BH9qLbBG.js +0 -31
- package/dist/image-fallbacks-DUOPO1ic.js +0 -2
- package/dist/inbound-reply-dispatch-DPf_IrbV.js +0 -73
- package/dist/infra-runtime-CLND6LJ0.js +0 -39
- package/dist/init-CzWob-9v.js +0 -59
- package/dist/library-C0a9Bz2M.js +0 -45
- package/dist/lifecycle-B_B_jt3r.js +0 -571
- package/dist/lifecycle-DuqKKZop.js +0 -229
- package/dist/lifecycle.runtime-DoosWTnK.js +0 -2
- package/dist/list-Bly8XeOF.js +0 -2
- package/dist/list-C5HvtbwZ.js +0 -2
- package/dist/list-CHIiamt1.js +0 -131
- package/dist/list-CMmJiacX.js +0 -1201
- package/dist/list.probe-kmHRFlrP.js +0 -419
- package/dist/llm-slug-generator-C3u6Ptgq.js +0 -79
- package/dist/load-config-CXvIGI7N.js +0 -35
- package/dist/local-dispatch.runtime-BNQF4rqW.js +0 -8
- package/dist/logs-cli-DEy1GPk2.js +0 -265
- package/dist/logs-cli.runtime-jWShKzQC.js +0 -2
- package/dist/main-session-restart-recovery-CzfY6Cd8.js +0 -206
- package/dist/managed-image-attachments-BGPKA7Mn.js +0 -2
- package/dist/managed-image-attachments-CTrq9ym-.js +0 -635
- package/dist/manager-C_ZGa9x8.js +0 -2057
- package/dist/manager-DIHLRzYF.js +0 -2
- package/dist/markdown-to-line-CRbbXtJK.js +0 -790
- package/dist/mcp-cli-FMJb3T4k.js +0 -725
- package/dist/mcp-http-b6UMoE_J.js +0 -529
- package/dist/memory-core-host-runtime-cli-CquxELNj.js +0 -9
- package/dist/message-CmjuvIFf.js +0 -232
- package/dist/message-action-runner-CiY3rhqt.js +0 -1407
- package/dist/message-action-runner-Do4P0h5i.js +0 -2
- package/dist/message-actions-BYREqFJA.js +0 -143
- package/dist/message.gateway.runtime-gkoWzaYV.js +0 -2
- package/dist/models-auth-status-B_Pcr0tl.js +0 -201
- package/dist/models-cli-BZSuW2gw.js +0 -219
- package/dist/monitor-22LY8y6z.js +0 -788
- package/dist/monitor-BZdf_CEm.js +0 -1237
- package/dist/monitor-CTVDlTs2.js +0 -671
- package/dist/monitor-Cfv-KGAl.js +0 -1661
- package/dist/monitor-DuA69-8E.js +0 -2
- package/dist/monitor-auth-BNDlfcw7.js +0 -207
- package/dist/monitor-cmWeDVxf.js +0 -1459
- package/dist/monitor-processing-D9Xcsagt.js +0 -1974
- package/dist/monitor.runtime-zWvcbNim.js +0 -2
- package/dist/monitor.webhook-BYWQa5lY.js +0 -180
- package/dist/msteams-n9HDT4O-.js +0 -35
- package/dist/native-hook-relay-CKyIfLOm.js +0 -519
- package/dist/nextcloud-talk-BuJVVP0J.js +0 -17
- package/dist/node-cli-DBK2TIEH.js +0 -2506
- package/dist/nodes-cli-D5Y1_ZVD.js +0 -1046
- package/dist/nodes-utils-C6IKaTjm.js +0 -84
- package/dist/nodes.helpers-CkJO5i0d.js +0 -34
- package/dist/notify-v0zoiI-O.js +0 -315
- package/dist/onboard-BCaLBJor.js +0 -632
- package/dist/onboard-helpers-Ba7ES7kB.js +0 -204
- package/dist/onboard-helpers-D5qdyBIj.js +0 -6
- package/dist/onboard-remote-BaHm_VrY.js +0 -2
- package/dist/onboard-remote-DbGAo_Ad.js +0 -193
- package/dist/onboard-skills-BA7c4li1.js +0 -2
- package/dist/onboard-skills-upyHp6T9.js +0 -134
- package/dist/openai-http-DwCqhEcX.js +0 -500
- package/dist/openresponses-http-tJr67vC1.js +0 -1128
- package/dist/operator-approvals-client-C0t_-2xC.js +0 -68
- package/dist/outbound.runtime-nXA4k1xA.js +0 -2
- package/dist/pair-command-approve-G5y-rKn9.js +0 -44
- package/dist/persistent-bindings.lifecycle-C56aKBVc.js +0 -2
- package/dist/persistent-bindings.lifecycle-CfBqvz9L.js +0 -85
- package/dist/pi-embedded-B1wvxHXL.js +0 -2905
- package/dist/pi-embedded-DmDb-oUB.js +0 -4
- package/dist/pi-embedded.runtime-D5xqw9Ko.js +0 -4
- package/dist/pi-tool-definition-adapter-CAxlo-Va.js +0 -217
- package/dist/pi-tools-C69yvznf.js +0 -1057
- package/dist/pi-tools.before-tool-call-BDeCmoAy.js +0 -2
- package/dist/pi-tools.before-tool-call-DG7VVNBn.js +0 -433
- package/dist/plugin-B9Ld0CUs.js +0 -12195
- package/dist/plugin-enabled-BguUplCN.js +0 -140
- package/dist/plugin-registration-DPBnSoak.js +0 -23
- package/dist/plugin-service-CdNFnRyN.js +0 -2890
- package/dist/policy-DgfegT_Y.js +0 -328
- package/dist/prepare.runtime-C_sRmuFC.js +0 -815
- package/dist/probe-8vb_Ssot.js +0 -45
- package/dist/probe-BjmKFiz1.js +0 -2205
- package/dist/probe-CVlOo8Hr.js +0 -74
- package/dist/probe-CakOsrSu.js +0 -241
- package/dist/probe-CbOoVumf.js +0 -2
- package/dist/probe-D6yFcZpK.js +0 -1443
- package/dist/probe-OcOYm1bj.js +0 -2
- package/dist/program-BJnTb7UE.js +0 -111
- package/dist/prompt-select-styled-C8kGHNpY.js +0 -20
- package/dist/protocol-C40iRm9c.js +0 -2234
- package/dist/provider-dispatcher-BIOPYzb9.js +0 -2
- package/dist/provider-dispatcher-CpwviX0O.js +0 -22
- package/dist/qr-cli-CJXKCj0L.js +0 -2
- package/dist/qr-cli-kSU9X-N0.js +0 -349
- package/dist/reaction-runtime-api-3XFmruJA.js +0 -116
- package/dist/reactions-By-nqZC6.js +0 -998
- package/dist/register-service-commands-fwB-T6mW.js +0 -71
- package/dist/register.agent-CpScU3CV.js +0 -248
- package/dist/register.configure-DpD3_BCK.js +0 -15
- package/dist/register.maintenance-ByoQXpk9.js +0 -438
- package/dist/register.message-BTXNOZMD.js +0 -329
- package/dist/register.onboard-B83CAOYy.js +0 -81
- package/dist/register.runtime-Doz01zcH.js +0 -81
- package/dist/register.setup-BKI5rwWy.js +0 -150
- package/dist/register.status-health-sessions-DRPszDQ-.js +0 -1215
- package/dist/register.subclis-DeXklyQL.js +0 -3
- package/dist/register.subclis-YkmoZoxl.js +0 -29
- package/dist/register.subclis-core-BPo4hV1Q.js +0 -243
- package/dist/reply-dispatch-runtime-DjIuN_dr.js +0 -13
- package/dist/reply-runtime-5TFidLR3.js +0 -11
- package/dist/reply.runtime-6d1e0INl.js +0 -2
- package/dist/restart-health-BWUPc4R-.js +0 -202
- package/dist/restart-health-CWvsjHVN.js +0 -2
- package/dist/root-help-D2YiFpS6.js +0 -44
- package/dist/routes-BdYdVpe7.js +0 -3341
- package/dist/routes-jYoN_qOU.js +0 -2
- package/dist/rpc-5tMjebZH.js +0 -61
- package/dist/rpc.runtime-BzAHjcm4.js +0 -21
- package/dist/run-delivery.runtime-qZIB76oE.js +0 -530
- package/dist/run-embedded.runtime-nHunVmCv.js +0 -4
- package/dist/run-execution-cli.runtime-CMT7La6D.js +0 -4
- package/dist/run-executor.runtime-BG6SDi3f.js +0 -277
- package/dist/run-main-CNf_LLX7.js +0 -516
- package/dist/run-subagent-registry.runtime-D0RcqcJr.js +0 -2
- package/dist/run-wait--kou3jZ7.js +0 -135
- package/dist/runtime-BvxkGJm2.js +0 -9
- package/dist/runtime-DgQ5oUKq.js +0 -973
- package/dist/runtime-api-6SzMK-FZ.js +0 -4
- package/dist/runtime-api-BAMrcB-5.js +0 -9
- package/dist/runtime-api-DLSrxS5O.js +0 -9
- package/dist/runtime-api-DsPleWQg.js +0 -14
- package/dist/runtime-embedded-pi.runtime-eyjaJfAz.js +0 -2
- package/dist/runtime-internal-BTfGDlHi.js +0 -2
- package/dist/runtime-options-B5_eZxMV.js +0 -275
- package/dist/runtime-schema-BB3QzGXJ.js +0 -27780
- package/dist/scan-D0fsxqed.js +0 -2
- package/dist/scan-DrjjN66Z.js +0 -523
- package/dist/secrets-cli-B7-qbfn-.js +0 -2101
- package/dist/security-cli-CYTPgL67.js +0 -486
- package/dist/selection-DEAdLh1Q.js +0 -2
- package/dist/selection-zPPyzfBX.js +0 -7736
- package/dist/send-CYKfZTCJ.js +0 -156
- package/dist/send-Di1tRwJD.js +0 -102
- package/dist/send.runtime-Bw22DBkL.js +0 -2
- package/dist/server-BIF5dPI_.js +0 -13
- package/dist/server-BJK0Q4xw.js +0 -77
- package/dist/server-context-CiVVCQNp.js +0 -847
- package/dist/server-context-DXvk5Tdy.js +0 -2
- package/dist/server-node-events-CdZP3Kok.js +0 -481
- package/dist/server-plugin-bootstrap-Di15EOt4.js +0 -11333
- package/dist/server-plugin-bootstrap-dboO44LL.js +0 -2
- package/dist/server-restart-sentinel-BWiOzljY.js +0 -697
- package/dist/server.impl-Ph8YCQpT.js +0 -12734
- package/dist/session-kill-http-B_J1fJ4-.js +0 -110
- package/dist/session-reset-service-DPgw70iw.js +0 -471
- package/dist/session-route-B0h6MEyB.js +0 -93
- package/dist/session-status.runtime-DCvgI1pG.js +0 -2
- package/dist/session-subagent-reactivation.runtime-BgsCnI-h.js +0 -2
- package/dist/session-tab-registry-FyN6CWh5.js +0 -491
- package/dist/session-visibility-CZjMA1SL.js +0 -147
- package/dist/sessions-helpers-B3W7MdIb.js +0 -304
- package/dist/sessions-history-http-Bw5J6HQ-.js +0 -383
- package/dist/sessions-patch-2sBcHc9a.js +0 -309
- package/dist/sessions-resolve-C-VZh_56.js +0 -174
- package/dist/sessions.runtime-cLuc67tJ.js +0 -2
- package/dist/setup-FW8xH-S-.js +0 -495
- package/dist/setup-api-Culp0Usf.js +0 -29
- package/dist/setup-core-CaTBS6Tz.js +0 -171
- package/dist/setup-core-youmXvW_.js +0 -176
- package/dist/setup-surface-BeMn-9hU.js +0 -403
- package/dist/setup-surface-CUd-s0wh.js +0 -286
- package/dist/setup-surface-DtscjAY3.js +0 -219
- package/dist/setup.finalize-BWyA4f4q.js +0 -539
- package/dist/setup.gateway-config-CvzMdftA.js +0 -250
- package/dist/shared-B3Pz1Xcr.js +0 -121
- package/dist/shared-Bc3x3THS.js +0 -76
- package/dist/shared-CxbLx0Ww.js +0 -198
- package/dist/slash-state-XfeMEeuI.js +0 -1911
- package/dist/src-BiDxQvtV.js +0 -3974
- package/dist/startup-context-CXQi-7YB.js +0 -312
- package/dist/status-Ch3bm70K.js +0 -2
- package/dist/status-CiQSxvY-.js +0 -3
- package/dist/status-DY0DlWlw.js +0 -190
- package/dist/status-DjdByQv-.js +0 -209
- package/dist/status-MT62_Jgw.js +0 -2
- package/dist/status-all-BD2viQD9.js +0 -498
- package/dist/status-json-CWS2oYON.js +0 -14
- package/dist/status-json-command-B6lZefoe.js +0 -84
- package/dist/status-pujDHwRb.js +0 -397
- package/dist/status-runtime-shared-Bu9Zhd7x.js +0 -257
- package/dist/status-subagents.runtime-B4UXD0lL.js +0 -18
- package/dist/status-text-myqmk4OL.js +0 -237
- package/dist/status.gateway-connection.runtime-B0Iwl2iZ.js +0 -2
- package/dist/status.gather-C51Ja0wP.js +0 -292
- package/dist/status.gather-DQ7WZp3H.js +0 -2
- package/dist/status.runtime-Cxyb3wHZ.js +0 -2
- package/dist/status.scan-C1aqDsy2.js +0 -65
- package/dist/status.scan-overview-BerlJz2l.js +0 -379
- package/dist/status.scan.fast-json-BXY82vu2.js +0 -2
- package/dist/status.scan.fast-json-DJqgEbzZ.js +0 -132
- package/dist/status.summary-CCdLUph8.js +0 -214
- package/dist/status.summary-CHAn0_FS.js +0 -2
- package/dist/subagent-announce-D4jG75Ub.js +0 -351
- package/dist/subagent-announce-delivery-BkQYzDcy.js +0 -726
- package/dist/subagent-announce-output-C3pkuu-t.js +0 -364
- package/dist/subagent-control-DVVK8du2.js +0 -506
- package/dist/subagent-followup.runtime-CdeweG-S.js +0 -68
- package/dist/subagent-orphan-recovery-ZQanOHb4.js +0 -305
- package/dist/subagent-registry-BcPa3ho0.js +0 -3
- package/dist/subagent-registry-hJUso5eL.js +0 -1753
- package/dist/subagent-spawn-DTaeQc9q.js +0 -1005
- package/dist/system-cli-CT8VaSDY.js +0 -59
- package/dist/targets-BPdSjnQH.js +0 -67
- package/dist/task-executor-B62Qzfi-.js +0 -360
- package/dist/task-owner-access-BBMrMOlN.js +0 -74
- package/dist/task-registry-BD-ew2bT.js +0 -2366
- package/dist/task-registry-delivery-runtime-B2WyGY0d.js +0 -3
- package/dist/task-registry-delivery-runtime-MFJszOHI.js +0 -2
- package/dist/task-registry.maintenance-0D2Yxl49.js +0 -416
- package/dist/task-registry.maintenance-OPlfB5W9.js +0 -2
- package/dist/testing-DmxZ16UC.js +0 -575
- package/dist/text-report-BwIpU54R.js +0 -587
- package/dist/tool-resolution-vn72hwMo.js +0 -90
- package/dist/tools-effective-inventory-DII_pOSr.js +0 -152
- package/dist/tools-invoke-http-DdthGR52.js +0 -206
- package/dist/trash-BVZu6rU7.js +0 -24
- package/dist/tui-cli-Bz51WCAi.js +0 -4575
- package/dist/update-cli-DkH8vHQP.js +0 -1759
- package/dist/upgrade-Dvj8K4WB.js +0 -1226
- package/dist/video-generation-task-status-CHYB_IeZ.js +0 -163
- package/dist/wait-for-idle-before-flush-DJMxeE2X.js +0 -5986
- package/dist/wizard-models-BNQQ7fvr.js +0 -161
|
@@ -0,0 +1,713 @@
|
|
|
1
|
+
import { a as normalizeLowercaseStringOrEmpty, c as normalizeOptionalString, s as normalizeOptionalLowercaseString } from "./string-coerce-C1IzJjqi.js";
|
|
2
|
+
import { n as defaultRuntime } from "./runtime-CQ7eH0le.js";
|
|
3
|
+
import { t as formatDocsLink } from "./links-DmsJCU7L.js";
|
|
4
|
+
import { n as isRich, r as theme, t as colorize } from "./theme-BrRleVfL.js";
|
|
5
|
+
import { t as danger } from "./globals-C5IxqXPj.js";
|
|
6
|
+
import { f as sanitizeAgentId } from "./session-key-EpIbK3Oz.js";
|
|
7
|
+
import { r as listChannelPlugins } from "./registry-DXDC8Wqv.js";
|
|
8
|
+
import "./plugins-DNe6i7Rv.js";
|
|
9
|
+
import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-BFmu0WeO.js";
|
|
10
|
+
import { n as formatDurationHuman } from "./format-duration-D7ua_Cv_.js";
|
|
11
|
+
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-Bomz8HKq.js";
|
|
12
|
+
import { n as parsePositiveIntOrUndefined } from "./helpers-DWsKOjxm.js";
|
|
13
|
+
//#region src/infra/format-time/parse-offsetless-zoned-datetime.ts
|
|
14
|
+
const OFFSETLESS_ISO_DATETIME_RE = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2})?(\.\d+)?$/;
|
|
15
|
+
const OFFSETLESS_ISO_DATETIME_PARTS_RE = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d+))?)?$/;
|
|
16
|
+
function isOffsetlessIsoDateTime(raw) {
|
|
17
|
+
return OFFSETLESS_ISO_DATETIME_RE.test(raw);
|
|
18
|
+
}
|
|
19
|
+
function parseOffsetlessIsoDateTimeInTimeZone(raw, timeZone) {
|
|
20
|
+
const expectedParts = parseOffsetlessIsoDateTimeParts(raw);
|
|
21
|
+
if (!expectedParts) return null;
|
|
22
|
+
try {
|
|
23
|
+
getZonedDateTimeParts(Date.now(), timeZone);
|
|
24
|
+
const naiveMs = (/* @__PURE__ */ new Date(`${raw}Z`)).getTime();
|
|
25
|
+
if (Number.isNaN(naiveMs)) return null;
|
|
26
|
+
const resolvedMs = naiveMs - getTimeZoneOffsetMs(naiveMs - getTimeZoneOffsetMs(naiveMs, timeZone), timeZone);
|
|
27
|
+
if (!matchesOffsetlessIsoDateTimeParts(resolvedMs, timeZone, expectedParts)) return null;
|
|
28
|
+
return new Date(resolvedMs).toISOString();
|
|
29
|
+
} catch {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function parseOffsetlessIsoDateTimeParts(raw) {
|
|
34
|
+
const match = OFFSETLESS_ISO_DATETIME_PARTS_RE.exec(raw);
|
|
35
|
+
if (!match) return null;
|
|
36
|
+
const fractionalMs = (match[7] ?? "").padEnd(3, "0").slice(0, 3);
|
|
37
|
+
return {
|
|
38
|
+
year: Number.parseInt(match[1] ?? "0", 10),
|
|
39
|
+
month: Number.parseInt(match[2] ?? "0", 10),
|
|
40
|
+
day: Number.parseInt(match[3] ?? "0", 10),
|
|
41
|
+
hour: Number.parseInt(match[4] ?? "0", 10),
|
|
42
|
+
minute: Number.parseInt(match[5] ?? "0", 10),
|
|
43
|
+
second: Number.parseInt(match[6] ?? "0", 10),
|
|
44
|
+
millisecond: Number.parseInt(fractionalMs || "0", 10)
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function matchesOffsetlessIsoDateTimeParts(utcMs, timeZone, expected) {
|
|
48
|
+
const actual = getZonedDateTimeParts(utcMs, timeZone);
|
|
49
|
+
return actual.year === expected.year && actual.month === expected.month && actual.day === expected.day && actual.hour === expected.hour && actual.minute === expected.minute && actual.second === expected.second && actual.millisecond === expected.millisecond;
|
|
50
|
+
}
|
|
51
|
+
function getTimeZoneOffsetMs(utcMs, timeZone) {
|
|
52
|
+
const parts = getZonedDateTimeParts(utcMs, timeZone);
|
|
53
|
+
return Date.UTC(parts.year, parts.month - 1, parts.day, parts.hour, parts.minute, parts.second) - utcMs;
|
|
54
|
+
}
|
|
55
|
+
function getZonedDateTimeParts(utcMs, timeZone) {
|
|
56
|
+
const utcDate = new Date(utcMs);
|
|
57
|
+
const parts = new Intl.DateTimeFormat("en-US", {
|
|
58
|
+
timeZone,
|
|
59
|
+
year: "numeric",
|
|
60
|
+
month: "2-digit",
|
|
61
|
+
day: "2-digit",
|
|
62
|
+
hour: "2-digit",
|
|
63
|
+
minute: "2-digit",
|
|
64
|
+
second: "2-digit",
|
|
65
|
+
hour12: false,
|
|
66
|
+
hourCycle: "h23"
|
|
67
|
+
}).formatToParts(utcDate);
|
|
68
|
+
const getNumericPart = (type) => {
|
|
69
|
+
const part = parts.find((candidate) => candidate.type === type);
|
|
70
|
+
return Number.parseInt(part?.value ?? "0", 10);
|
|
71
|
+
};
|
|
72
|
+
return {
|
|
73
|
+
year: getNumericPart("year"),
|
|
74
|
+
month: getNumericPart("month"),
|
|
75
|
+
day: getNumericPart("day"),
|
|
76
|
+
hour: getNumericPart("hour"),
|
|
77
|
+
minute: getNumericPart("minute"),
|
|
78
|
+
second: getNumericPart("second"),
|
|
79
|
+
millisecond: utcDate.getUTCMilliseconds()
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
//#endregion
|
|
83
|
+
//#region src/cli/cron-cli/shared.ts
|
|
84
|
+
const getCronChannelOptions = () => {
|
|
85
|
+
const pluginIds = listChannelPlugins().map((plugin) => plugin.id).filter(Boolean);
|
|
86
|
+
return pluginIds.length > 0 ? ["last", ...pluginIds].join("|") : "last|<channel-id>";
|
|
87
|
+
};
|
|
88
|
+
function printCronJson(value) {
|
|
89
|
+
defaultRuntime.writeJson(value);
|
|
90
|
+
}
|
|
91
|
+
function handleCronCliError(err) {
|
|
92
|
+
defaultRuntime.error(danger(String(err)));
|
|
93
|
+
defaultRuntime.exit(1);
|
|
94
|
+
}
|
|
95
|
+
async function warnIfCronSchedulerDisabled(opts) {
|
|
96
|
+
try {
|
|
97
|
+
const res = await callGatewayFromCli("cron.status", opts, {});
|
|
98
|
+
if (res?.enabled === true) return;
|
|
99
|
+
const store = typeof res?.storePath === "string" ? res.storePath : "";
|
|
100
|
+
defaultRuntime.error([
|
|
101
|
+
"warning: cron scheduler is disabled in the Gateway; jobs are saved but will not run automatically.",
|
|
102
|
+
"Re-enable with `cron.enabled: true` (or remove `cron.enabled: false`) and restart the Gateway.",
|
|
103
|
+
store ? `store: ${store}` : ""
|
|
104
|
+
].filter(Boolean).join("\n"));
|
|
105
|
+
} catch {}
|
|
106
|
+
}
|
|
107
|
+
function parseDurationMs(input) {
|
|
108
|
+
const raw = input.trim();
|
|
109
|
+
if (!raw) return null;
|
|
110
|
+
const match = raw.match(/^(\d+(?:\.\d+)?)(ms|s|m|h|d)$/i);
|
|
111
|
+
if (!match) return null;
|
|
112
|
+
const n = Number.parseFloat(match[1] ?? "");
|
|
113
|
+
if (!Number.isFinite(n) || n <= 0) return null;
|
|
114
|
+
const unit = normalizeLowercaseStringOrEmpty(match[2] ?? "");
|
|
115
|
+
return Math.floor(n * (unit === "ms" ? 1 : unit === "s" ? 1e3 : unit === "m" ? 6e4 : unit === "h" ? 36e5 : 864e5));
|
|
116
|
+
}
|
|
117
|
+
function parseCronStaggerMs(params) {
|
|
118
|
+
if (params.useExact) return 0;
|
|
119
|
+
if (!params.staggerRaw) return;
|
|
120
|
+
const parsed = parseDurationMs(params.staggerRaw);
|
|
121
|
+
if (!parsed) throw new Error("Invalid --stagger; use e.g. 30s, 1m, 5m");
|
|
122
|
+
return parsed;
|
|
123
|
+
}
|
|
124
|
+
function parseCronToolsAllow(input) {
|
|
125
|
+
const tools = (Array.isArray(input) ? input.map((value) => String(value)).join(" ") : typeof input === "string" ? input : "").split(/[,\s]+/u).map((tool) => normalizeOptionalString(tool)).filter((tool) => Boolean(tool));
|
|
126
|
+
return tools.length > 0 ? tools : void 0;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Parse a one-shot `--at` value into an ISO string (UTC).
|
|
130
|
+
*
|
|
131
|
+
* When `tz` is provided and the input is an offset-less datetime
|
|
132
|
+
* (e.g. `2026-03-23T23:00:00`), the datetime is interpreted in
|
|
133
|
+
* that IANA timezone instead of UTC.
|
|
134
|
+
*/
|
|
135
|
+
function parseAt(input, tz) {
|
|
136
|
+
const raw = input.trim();
|
|
137
|
+
if (!raw) return null;
|
|
138
|
+
if (tz && isOffsetlessIsoDateTime(raw)) return parseOffsetlessIsoDateTimeInTimeZone(raw, tz);
|
|
139
|
+
const absolute = parseAbsoluteTimeMs(raw);
|
|
140
|
+
if (absolute !== null) return new Date(absolute).toISOString();
|
|
141
|
+
const dur = parseDurationMs(raw);
|
|
142
|
+
if (dur !== null) return new Date(Date.now() + dur).toISOString();
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
const CRON_ID_PAD = 36;
|
|
146
|
+
const CRON_NAME_PAD = 24;
|
|
147
|
+
const CRON_SCHEDULE_PAD = 32;
|
|
148
|
+
const CRON_NEXT_PAD = 10;
|
|
149
|
+
const CRON_LAST_PAD = 10;
|
|
150
|
+
const CRON_STATUS_PAD = 9;
|
|
151
|
+
const CRON_TARGET_PAD = 9;
|
|
152
|
+
const CRON_DELIVERY_PAD = 64;
|
|
153
|
+
const CRON_AGENT_PAD = 10;
|
|
154
|
+
const CRON_MODEL_PAD = 20;
|
|
155
|
+
const pad = (value, width) => value.padEnd(width);
|
|
156
|
+
const truncate = (value, width) => {
|
|
157
|
+
if (value.length <= width) return value;
|
|
158
|
+
if (width <= 3) return value.slice(0, width);
|
|
159
|
+
return `${value.slice(0, width - 3)}...`;
|
|
160
|
+
};
|
|
161
|
+
const formatIsoMinute = (iso) => {
|
|
162
|
+
const parsed = parseAbsoluteTimeMs(iso);
|
|
163
|
+
const d = new Date(parsed ?? NaN);
|
|
164
|
+
if (Number.isNaN(d.getTime())) return "-";
|
|
165
|
+
const isoStr = d.toISOString();
|
|
166
|
+
return `${isoStr.slice(0, 10)} ${isoStr.slice(11, 16)}Z`;
|
|
167
|
+
};
|
|
168
|
+
const formatSpan = (ms) => {
|
|
169
|
+
if (ms < 6e4) return "<1m";
|
|
170
|
+
if (ms < 36e5) return `${Math.round(ms / 6e4)}m`;
|
|
171
|
+
if (ms < 864e5) return `${Math.round(ms / 36e5)}h`;
|
|
172
|
+
return `${Math.round(ms / 864e5)}d`;
|
|
173
|
+
};
|
|
174
|
+
const formatRelative = (ms, nowMs) => {
|
|
175
|
+
if (!ms) return "-";
|
|
176
|
+
const delta = ms - nowMs;
|
|
177
|
+
const label = formatSpan(Math.abs(delta));
|
|
178
|
+
return delta >= 0 ? `in ${label}` : `${label} ago`;
|
|
179
|
+
};
|
|
180
|
+
const formatSchedule = (schedule) => {
|
|
181
|
+
if (schedule.kind === "at") return `at ${formatIsoMinute(schedule.at)}`;
|
|
182
|
+
if (schedule.kind === "every") return `every ${formatDurationHuman(schedule.everyMs)}`;
|
|
183
|
+
const base = schedule.tz ? `cron ${schedule.expr} @ ${schedule.tz}` : `cron ${schedule.expr}`;
|
|
184
|
+
const staggerMs = resolveCronStaggerMs(schedule);
|
|
185
|
+
if (staggerMs <= 0) return `${base} (exact)`;
|
|
186
|
+
return `${base} (stagger ${formatDurationHuman(staggerMs)})`;
|
|
187
|
+
};
|
|
188
|
+
const formatStatus = (job) => {
|
|
189
|
+
if (!job.enabled) return "disabled";
|
|
190
|
+
if (job.state.runningAtMs) return "running";
|
|
191
|
+
return job.state.lastStatus ?? "idle";
|
|
192
|
+
};
|
|
193
|
+
function coerceCronDeliveryPreviews(value) {
|
|
194
|
+
const previews = value && typeof value === "object" ? value.deliveryPreviews : void 0;
|
|
195
|
+
if (!previews || typeof previews !== "object") return /* @__PURE__ */ new Map();
|
|
196
|
+
return new Map(Object.entries(previews).flatMap(([jobId, preview]) => {
|
|
197
|
+
if (!preview || typeof preview !== "object") return [];
|
|
198
|
+
const record = preview;
|
|
199
|
+
if (typeof record.label !== "string" || typeof record.detail !== "string") return [];
|
|
200
|
+
return [[jobId, {
|
|
201
|
+
label: record.label,
|
|
202
|
+
detail: record.detail
|
|
203
|
+
}]];
|
|
204
|
+
}));
|
|
205
|
+
}
|
|
206
|
+
function printCronList(jobs, runtime = defaultRuntime, opts) {
|
|
207
|
+
if (jobs.length === 0) {
|
|
208
|
+
runtime.log("No cron jobs.");
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
const rich = isRich();
|
|
212
|
+
const header = [
|
|
213
|
+
pad("ID", CRON_ID_PAD),
|
|
214
|
+
pad("Name", CRON_NAME_PAD),
|
|
215
|
+
pad("Schedule", CRON_SCHEDULE_PAD),
|
|
216
|
+
pad("Next", CRON_NEXT_PAD),
|
|
217
|
+
pad("Last", CRON_LAST_PAD),
|
|
218
|
+
pad("Status", CRON_STATUS_PAD),
|
|
219
|
+
pad("Target", CRON_TARGET_PAD),
|
|
220
|
+
pad("Delivery", CRON_DELIVERY_PAD),
|
|
221
|
+
pad("Agent ID", CRON_AGENT_PAD),
|
|
222
|
+
pad("Model", CRON_MODEL_PAD)
|
|
223
|
+
].join(" ");
|
|
224
|
+
runtime.log(rich ? theme.heading(header) : header);
|
|
225
|
+
const now = Date.now();
|
|
226
|
+
for (const job of jobs) {
|
|
227
|
+
const idLabel = pad(job.id, CRON_ID_PAD);
|
|
228
|
+
const nameLabel = pad(truncate(job.name, CRON_NAME_PAD), CRON_NAME_PAD);
|
|
229
|
+
const scheduleLabel = pad(truncate(formatSchedule(job.schedule), CRON_SCHEDULE_PAD), CRON_SCHEDULE_PAD);
|
|
230
|
+
const nextLabel = pad(job.enabled ? formatRelative(job.state.nextRunAtMs, now) : "-", CRON_NEXT_PAD);
|
|
231
|
+
const lastLabel = pad(formatRelative(job.state.lastRunAtMs, now), CRON_LAST_PAD);
|
|
232
|
+
const statusRaw = formatStatus(job);
|
|
233
|
+
const statusLabel = pad(statusRaw, CRON_STATUS_PAD);
|
|
234
|
+
const targetLabel = pad(job.sessionTarget ?? "-", CRON_TARGET_PAD);
|
|
235
|
+
const deliveryPreview = opts?.deliveryPreviews?.get(job.id);
|
|
236
|
+
const deliveryLabel = pad(truncate(deliveryPreview ? `${deliveryPreview.label} (${deliveryPreview.detail})` : "-", CRON_DELIVERY_PAD), CRON_DELIVERY_PAD);
|
|
237
|
+
const agentLabel = pad(truncate(job.agentId ?? "-", CRON_AGENT_PAD), CRON_AGENT_PAD);
|
|
238
|
+
const modelLabel = pad(truncate((job.payload.kind === "agentTurn" ? job.payload.model : void 0) ?? "-", CRON_MODEL_PAD), CRON_MODEL_PAD);
|
|
239
|
+
const coloredStatus = (() => {
|
|
240
|
+
if (statusRaw === "ok") return colorize(rich, theme.success, statusLabel);
|
|
241
|
+
if (statusRaw === "error") return colorize(rich, theme.error, statusLabel);
|
|
242
|
+
if (statusRaw === "running") return colorize(rich, theme.warn, statusLabel);
|
|
243
|
+
if (statusRaw === "skipped") return colorize(rich, theme.muted, statusLabel);
|
|
244
|
+
return colorize(rich, theme.muted, statusLabel);
|
|
245
|
+
})();
|
|
246
|
+
const coloredTarget = job.sessionTarget === "main" ? colorize(rich, theme.accent, targetLabel) : colorize(rich, theme.accentBright, targetLabel);
|
|
247
|
+
const coloredAgent = job.agentId ? colorize(rich, theme.info, agentLabel) : colorize(rich, theme.muted, agentLabel);
|
|
248
|
+
const line = [
|
|
249
|
+
colorize(rich, theme.accent, idLabel),
|
|
250
|
+
colorize(rich, theme.info, nameLabel),
|
|
251
|
+
colorize(rich, theme.info, scheduleLabel),
|
|
252
|
+
colorize(rich, theme.muted, nextLabel),
|
|
253
|
+
colorize(rich, theme.muted, lastLabel),
|
|
254
|
+
coloredStatus,
|
|
255
|
+
coloredTarget,
|
|
256
|
+
deliveryPreview ? colorize(rich, theme.info, deliveryLabel) : colorize(rich, theme.muted, deliveryLabel),
|
|
257
|
+
coloredAgent,
|
|
258
|
+
job.payload.kind === "agentTurn" && job.payload.model ? colorize(rich, theme.info, modelLabel) : colorize(rich, theme.muted, modelLabel)
|
|
259
|
+
].join(" ");
|
|
260
|
+
runtime.log(line.trimEnd());
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
function printCronShow(job, runtime = defaultRuntime, opts) {
|
|
264
|
+
const preview = opts?.deliveryPreview ?? {
|
|
265
|
+
label: "-",
|
|
266
|
+
detail: "unavailable"
|
|
267
|
+
};
|
|
268
|
+
runtime.log(`id: ${job.id}`);
|
|
269
|
+
runtime.log(`name: ${job.name}`);
|
|
270
|
+
runtime.log(`enabled: ${job.enabled ? "yes" : "no"}`);
|
|
271
|
+
runtime.log(`schedule: ${formatSchedule(job.schedule)}`);
|
|
272
|
+
runtime.log(`session: ${job.sessionTarget ?? "-"}`);
|
|
273
|
+
runtime.log(`agent: ${job.agentId ?? "-"}`);
|
|
274
|
+
runtime.log(`model: ${job.payload.kind === "agentTurn" ? job.payload.model ?? "-" : "-"}`);
|
|
275
|
+
runtime.log(`delivery: ${preview.label} (${preview.detail})`);
|
|
276
|
+
runtime.log(`next: ${formatRelative(job.state.nextRunAtMs, Date.now())}`);
|
|
277
|
+
runtime.log(`last: ${formatRelative(job.state.lastRunAtMs, Date.now())}`);
|
|
278
|
+
runtime.log(`status: ${formatStatus(job)}`);
|
|
279
|
+
}
|
|
280
|
+
//#endregion
|
|
281
|
+
//#region src/cli/cron-cli/schedule-options.ts
|
|
282
|
+
function resolveCronCreateSchedule(options) {
|
|
283
|
+
const normalized = normalizeScheduleOptions(options);
|
|
284
|
+
if (countChosenSchedules(normalized) !== 1) throw new Error("Choose exactly one schedule: --at, --every, or --cron");
|
|
285
|
+
const schedule = resolveDirectSchedule(normalized);
|
|
286
|
+
if (!schedule) throw new Error("Choose exactly one schedule: --at, --every, or --cron");
|
|
287
|
+
return schedule;
|
|
288
|
+
}
|
|
289
|
+
function resolveCronEditScheduleRequest(options) {
|
|
290
|
+
const normalized = normalizeScheduleOptions(options);
|
|
291
|
+
if (countChosenSchedules(normalized) > 1) throw new Error("Choose at most one schedule change");
|
|
292
|
+
const schedule = resolveDirectSchedule(normalized);
|
|
293
|
+
if (schedule) return {
|
|
294
|
+
kind: "direct",
|
|
295
|
+
schedule
|
|
296
|
+
};
|
|
297
|
+
if (normalized.requestedStaggerMs !== void 0 || normalized.tz !== void 0) return {
|
|
298
|
+
kind: "patch-existing-cron",
|
|
299
|
+
tz: normalized.tz,
|
|
300
|
+
staggerMs: normalized.requestedStaggerMs
|
|
301
|
+
};
|
|
302
|
+
return { kind: "none" };
|
|
303
|
+
}
|
|
304
|
+
function applyExistingCronSchedulePatch(existingSchedule, request) {
|
|
305
|
+
if (existingSchedule.kind !== "cron") throw new Error("Current job is not a cron schedule; use --cron to convert first");
|
|
306
|
+
return {
|
|
307
|
+
kind: "cron",
|
|
308
|
+
expr: existingSchedule.expr,
|
|
309
|
+
tz: request.tz ?? existingSchedule.tz,
|
|
310
|
+
staggerMs: request.staggerMs !== void 0 ? request.staggerMs : existingSchedule.staggerMs
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
function normalizeScheduleOptions(options) {
|
|
314
|
+
const staggerRaw = normalizeOptionalString(options.stagger) ?? "";
|
|
315
|
+
const useExact = Boolean(options.exact);
|
|
316
|
+
if (staggerRaw && useExact) throw new Error("Choose either --stagger or --exact, not both");
|
|
317
|
+
return {
|
|
318
|
+
at: normalizeOptionalString(options.at) ?? "",
|
|
319
|
+
every: normalizeOptionalString(options.every) ?? "",
|
|
320
|
+
cronExpr: normalizeOptionalString(options.cron) ?? "",
|
|
321
|
+
tz: normalizeOptionalString(options.tz),
|
|
322
|
+
requestedStaggerMs: parseCronStaggerMs({
|
|
323
|
+
staggerRaw,
|
|
324
|
+
useExact
|
|
325
|
+
})
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
function countChosenSchedules(options) {
|
|
329
|
+
return [
|
|
330
|
+
Boolean(options.at),
|
|
331
|
+
Boolean(options.every),
|
|
332
|
+
Boolean(options.cronExpr)
|
|
333
|
+
].filter(Boolean).length;
|
|
334
|
+
}
|
|
335
|
+
function resolveDirectSchedule(options) {
|
|
336
|
+
if (options.tz && options.every) throw new Error("--tz is only valid with --cron or offset-less --at");
|
|
337
|
+
if (options.requestedStaggerMs !== void 0 && (options.at || options.every)) throw new Error("--stagger/--exact are only valid for cron schedules");
|
|
338
|
+
if (options.at) {
|
|
339
|
+
const atIso = parseAt(options.at, options.tz);
|
|
340
|
+
if (!atIso) throw new Error("Invalid --at; use ISO time or duration like 20m");
|
|
341
|
+
return {
|
|
342
|
+
kind: "at",
|
|
343
|
+
at: atIso
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
if (options.every) {
|
|
347
|
+
const everyMs = parseDurationMs(options.every);
|
|
348
|
+
if (!everyMs) throw new Error("Invalid --every; use e.g. 10m, 1h, 1d");
|
|
349
|
+
return {
|
|
350
|
+
kind: "every",
|
|
351
|
+
everyMs
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
if (options.cronExpr) return {
|
|
355
|
+
kind: "cron",
|
|
356
|
+
expr: options.cronExpr,
|
|
357
|
+
tz: options.tz,
|
|
358
|
+
staggerMs: options.requestedStaggerMs
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
//#endregion
|
|
362
|
+
//#region src/cli/cron-cli/register.cron-add.ts
|
|
363
|
+
function registerCronStatusCommand(cron) {
|
|
364
|
+
addGatewayClientOptions(cron.command("status").description("Show cron scheduler status").option("--json", "Output JSON", false).action(async (opts) => {
|
|
365
|
+
try {
|
|
366
|
+
printCronJson(await callGatewayFromCli("cron.status", opts, {}));
|
|
367
|
+
} catch (err) {
|
|
368
|
+
handleCronCliError(err);
|
|
369
|
+
}
|
|
370
|
+
}));
|
|
371
|
+
}
|
|
372
|
+
function registerCronListCommand(cron) {
|
|
373
|
+
addGatewayClientOptions(cron.command("list").description("List cron jobs").option("--all", "Include disabled jobs", false).option("--json", "Output JSON", false).action(async (opts) => {
|
|
374
|
+
try {
|
|
375
|
+
const res = await callGatewayFromCli("cron.list", opts, { includeDisabled: Boolean(opts.all) });
|
|
376
|
+
if (opts.json) {
|
|
377
|
+
printCronJson(res);
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
printCronList(res?.jobs ?? [], defaultRuntime, { deliveryPreviews: coerceCronDeliveryPreviews(res) });
|
|
381
|
+
} catch (err) {
|
|
382
|
+
handleCronCliError(err);
|
|
383
|
+
}
|
|
384
|
+
}));
|
|
385
|
+
}
|
|
386
|
+
function registerCronAddCommand(cron) {
|
|
387
|
+
addGatewayClientOptions(cron.command("add").alias("create").description("Add a cron job").requiredOption("--name <name>", "Job name").option("--description <text>", "Optional description").option("--disabled", "Create job disabled", false).option("--delete-after-run", "Delete one-shot job after it succeeds", false).option("--keep-after-run", "Keep one-shot job after it succeeds", false).option("--agent <id>", "Agent id for this job").option("--session <target>", "Session target (main|isolated)").option("--session-key <key>", "Session key for job routing (e.g. agent:my-agent:my-session)").option("--wake <mode>", "Wake mode (now|next-heartbeat)", "now").option("--at <when>", "Run once at time (ISO with offset, or +duration). Use --tz for offset-less datetimes").option("--every <duration>", "Run every duration (e.g. 10m, 1h)").option("--cron <expr>", "Cron expression (5-field or 6-field with seconds)").option("--tz <iana>", "Timezone for cron expressions (IANA)", "").option("--stagger <duration>", "Cron stagger window (e.g. 30s, 5m)").option("--exact", "Disable cron staggering (set stagger to 0)", false).option("--system-event <text>", "System event payload (main session)").option("--message <text>", "Agent message payload").option("--thinking <level>", "Thinking level for agent jobs (off|minimal|low|medium|high|xhigh)").option("--model <model>", "Model override for agent jobs (provider/model or alias)").option("--timeout-seconds <n>", "Timeout seconds for agent jobs").option("--light-context", "Use lightweight bootstrap context for agent jobs", false).option("--tools <list>", "Tool allow-list (e.g. exec,read,write or exec read write)").option("--announce", "Fallback-deliver final text to a chat", false).option("--deliver", "Deprecated (use --announce). Fallback-delivers final text to a chat.").option("--no-deliver", "Disable runner fallback delivery").option("--channel <channel>", `Delivery channel (${getCronChannelOptions()})`, "last").option("--to <dest>", "Delivery destination (E.164, Telegram chatId, or Discord channel/user)").option("--account <id>", "Channel account id for delivery (multi-account setups)").option("--best-effort-deliver", "Do not fail the job if delivery fails", false).option("--json", "Output JSON", false).action(async (opts, cmd) => {
|
|
388
|
+
try {
|
|
389
|
+
const schedule = resolveCronCreateSchedule({
|
|
390
|
+
at: opts.at,
|
|
391
|
+
cron: opts.cron,
|
|
392
|
+
every: opts.every,
|
|
393
|
+
exact: opts.exact,
|
|
394
|
+
stagger: opts.stagger,
|
|
395
|
+
tz: opts.tz
|
|
396
|
+
});
|
|
397
|
+
const wakeMode = normalizeOptionalString(opts.wake) ?? "now";
|
|
398
|
+
if (wakeMode !== "now" && wakeMode !== "next-heartbeat") throw new Error("--wake must be now or next-heartbeat");
|
|
399
|
+
const rawAgentId = normalizeOptionalString(opts.agent);
|
|
400
|
+
const agentId = rawAgentId ? sanitizeAgentId(rawAgentId) : void 0;
|
|
401
|
+
const hasAnnounce = Boolean(opts.announce) || opts.deliver === true;
|
|
402
|
+
const hasNoDeliver = opts.deliver === false;
|
|
403
|
+
if ([hasAnnounce, hasNoDeliver].filter(Boolean).length > 1) throw new Error("Choose at most one of --announce or --no-deliver");
|
|
404
|
+
const payload = (() => {
|
|
405
|
+
const systemEvent = normalizeOptionalString(opts.systemEvent) ?? "";
|
|
406
|
+
const message = normalizeOptionalString(opts.message) ?? "";
|
|
407
|
+
if ([Boolean(systemEvent), Boolean(message)].filter(Boolean).length !== 1) throw new Error("Choose exactly one payload: --system-event or --message");
|
|
408
|
+
if (systemEvent) return {
|
|
409
|
+
kind: "systemEvent",
|
|
410
|
+
text: systemEvent
|
|
411
|
+
};
|
|
412
|
+
const timeoutSeconds = parsePositiveIntOrUndefined(opts.timeoutSeconds);
|
|
413
|
+
return {
|
|
414
|
+
kind: "agentTurn",
|
|
415
|
+
message,
|
|
416
|
+
model: normalizeOptionalString(opts.model),
|
|
417
|
+
thinking: normalizeOptionalString(opts.thinking),
|
|
418
|
+
timeoutSeconds: timeoutSeconds && Number.isFinite(timeoutSeconds) ? timeoutSeconds : void 0,
|
|
419
|
+
lightContext: opts.lightContext === true ? true : void 0,
|
|
420
|
+
toolsAllow: parseCronToolsAllow(opts.tools)
|
|
421
|
+
};
|
|
422
|
+
})();
|
|
423
|
+
const sessionSource = (typeof cmd?.getOptionValueSource === "function" ? (name) => cmd.getOptionValueSource(name) : () => void 0)("session");
|
|
424
|
+
const sessionTargetRaw = normalizeOptionalString(opts.session) ?? "";
|
|
425
|
+
const inferredSessionTarget = payload.kind === "agentTurn" ? "isolated" : "main";
|
|
426
|
+
const sessionTarget = sessionSource === "cli" ? sessionTargetRaw || "" : inferredSessionTarget;
|
|
427
|
+
const isCustomSessionTarget = normalizeLowercaseStringOrEmpty(sessionTarget).startsWith("session:") && Boolean(normalizeOptionalString(sessionTarget.slice(8)));
|
|
428
|
+
const isIsolatedLikeSessionTarget = sessionTarget === "isolated" || sessionTarget === "current" || isCustomSessionTarget;
|
|
429
|
+
if (sessionTarget !== "main" && !isIsolatedLikeSessionTarget) throw new Error("--session must be main, isolated, current, or session:<id>");
|
|
430
|
+
if (opts.deleteAfterRun && opts.keepAfterRun) throw new Error("Choose --delete-after-run or --keep-after-run, not both");
|
|
431
|
+
if (sessionTarget === "main" && payload.kind !== "systemEvent") throw new Error("Main jobs require --system-event (systemEvent).");
|
|
432
|
+
if (isIsolatedLikeSessionTarget && payload.kind !== "agentTurn") throw new Error("Isolated/current/custom-session jobs require --message (agentTurn).");
|
|
433
|
+
if ((opts.announce || typeof opts.deliver === "boolean") && (!isIsolatedLikeSessionTarget || payload.kind !== "agentTurn")) throw new Error("--announce/--no-deliver require a non-main agentTurn session target.");
|
|
434
|
+
const accountId = normalizeOptionalString(opts.account);
|
|
435
|
+
if (accountId && (!isIsolatedLikeSessionTarget || payload.kind !== "agentTurn")) throw new Error("--account requires a non-main agentTurn job with delivery.");
|
|
436
|
+
const deliveryMode = isIsolatedLikeSessionTarget && payload.kind === "agentTurn" ? hasAnnounce ? "announce" : hasNoDeliver ? "none" : "announce" : void 0;
|
|
437
|
+
const name = normalizeOptionalString(opts.name) ?? "";
|
|
438
|
+
if (!name) throw new Error("--name is required");
|
|
439
|
+
const description = normalizeOptionalString(opts.description);
|
|
440
|
+
const sessionKey = normalizeOptionalString(opts.sessionKey);
|
|
441
|
+
printCronJson(await callGatewayFromCli("cron.add", opts, {
|
|
442
|
+
name,
|
|
443
|
+
description,
|
|
444
|
+
enabled: !opts.disabled,
|
|
445
|
+
deleteAfterRun: opts.deleteAfterRun ? true : opts.keepAfterRun ? false : void 0,
|
|
446
|
+
agentId,
|
|
447
|
+
sessionKey,
|
|
448
|
+
schedule,
|
|
449
|
+
sessionTarget,
|
|
450
|
+
wakeMode,
|
|
451
|
+
payload,
|
|
452
|
+
delivery: deliveryMode ? {
|
|
453
|
+
mode: deliveryMode,
|
|
454
|
+
channel: normalizeOptionalString(opts.channel),
|
|
455
|
+
to: normalizeOptionalString(opts.to),
|
|
456
|
+
accountId,
|
|
457
|
+
bestEffort: opts.bestEffortDeliver ? true : void 0
|
|
458
|
+
} : void 0
|
|
459
|
+
}));
|
|
460
|
+
await warnIfCronSchedulerDisabled(opts);
|
|
461
|
+
} catch (err) {
|
|
462
|
+
handleCronCliError(err);
|
|
463
|
+
}
|
|
464
|
+
}));
|
|
465
|
+
}
|
|
466
|
+
//#endregion
|
|
467
|
+
//#region src/cli/cron-cli/register.cron-edit.ts
|
|
468
|
+
const assignIf = (target, key, value, shouldAssign) => {
|
|
469
|
+
if (shouldAssign) target[key] = value;
|
|
470
|
+
};
|
|
471
|
+
function registerCronEditCommand(cron) {
|
|
472
|
+
addGatewayClientOptions(cron.command("edit").description("Edit a cron job (patch fields)").argument("<id>", "Job id").option("--name <name>", "Set name").option("--description <text>", "Set description").option("--enable", "Enable job", false).option("--disable", "Disable job", false).option("--delete-after-run", "Delete one-shot job after it succeeds", false).option("--keep-after-run", "Keep one-shot job after it succeeds", false).option("--session <target>", "Session target (main|isolated)").option("--agent <id>", "Set agent id").option("--clear-agent", "Unset agent and use default", false).option("--session-key <key>", "Set session key for job routing").option("--clear-session-key", "Unset session key", false).option("--wake <mode>", "Wake mode (now|next-heartbeat)").option("--at <when>", "Set one-shot time (ISO) or duration like 20m").option("--every <duration>", "Set interval duration like 10m").option("--cron <expr>", "Set cron expression").option("--tz <iana>", "Timezone for cron expressions (IANA)").option("--stagger <duration>", "Cron stagger window (e.g. 30s, 5m)").option("--exact", "Disable cron staggering (set stagger to 0)").option("--system-event <text>", "Set systemEvent payload").option("--message <text>", "Set agentTurn payload message").option("--thinking <level>", "Thinking level for agent jobs (off|minimal|low|medium|high|xhigh)").option("--model <model>", "Model override for agent jobs").option("--timeout-seconds <n>", "Timeout seconds for agent jobs").option("--light-context", "Enable lightweight bootstrap context for agent jobs").option("--no-light-context", "Disable lightweight bootstrap context for agent jobs").option("--tools <list>", "Tool allow-list (e.g. exec,read,write or exec read write)").option("--clear-tools", "Remove tool allow-list (use all tools)", false).option("--announce", "Fallback-deliver final text to a chat").option("--deliver", "Deprecated (use --announce). Fallback-delivers final text to a chat.").option("--no-deliver", "Disable runner fallback delivery").option("--channel <channel>", `Delivery channel (${getCronChannelOptions()})`).option("--to <dest>", "Delivery destination (E.164, Telegram chatId, or Discord channel/user)").option("--account <id>", "Channel account id for delivery (multi-account setups)").option("--best-effort-deliver", "Do not fail job if delivery fails").option("--no-best-effort-deliver", "Fail job when delivery fails").option("--failure-alert", "Enable failure alerts for this job").option("--no-failure-alert", "Disable failure alerts for this job").option("--failure-alert-after <n>", "Alert after N consecutive job errors").option("--failure-alert-channel <channel>", `Failure alert channel (${getCronChannelOptions()})`).option("--failure-alert-to <dest>", "Failure alert destination").option("--failure-alert-cooldown <duration>", "Minimum time between alerts (e.g. 1h, 30m)").option("--failure-alert-mode <mode>", "Failure alert delivery mode (announce or webhook)").option("--failure-alert-account-id <id>", "Account ID for failure alert channel (multi-account setups)").action(async (id, opts) => {
|
|
473
|
+
try {
|
|
474
|
+
if (opts.session === "main" && opts.message) throw new Error("Main jobs cannot use --message; use --system-event or --session isolated.");
|
|
475
|
+
if (opts.session === "isolated" && opts.systemEvent) throw new Error("Isolated jobs cannot use --system-event; use --message or --session main.");
|
|
476
|
+
if (opts.announce && typeof opts.deliver === "boolean") throw new Error("Choose --announce or --no-deliver (not multiple).");
|
|
477
|
+
const patch = {};
|
|
478
|
+
if (typeof opts.name === "string") patch.name = opts.name;
|
|
479
|
+
if (typeof opts.description === "string") patch.description = opts.description;
|
|
480
|
+
if (opts.enable && opts.disable) throw new Error("Choose --enable or --disable, not both");
|
|
481
|
+
if (opts.enable) patch.enabled = true;
|
|
482
|
+
if (opts.disable) patch.enabled = false;
|
|
483
|
+
if (opts.deleteAfterRun && opts.keepAfterRun) throw new Error("Choose --delete-after-run or --keep-after-run, not both");
|
|
484
|
+
if (opts.deleteAfterRun) patch.deleteAfterRun = true;
|
|
485
|
+
if (opts.keepAfterRun) patch.deleteAfterRun = false;
|
|
486
|
+
if (typeof opts.session === "string") patch.sessionTarget = opts.session;
|
|
487
|
+
if (typeof opts.wake === "string") patch.wakeMode = opts.wake;
|
|
488
|
+
if (opts.agent && opts.clearAgent) throw new Error("Use --agent or --clear-agent, not both");
|
|
489
|
+
if (typeof opts.agent === "string" && opts.agent.trim()) patch.agentId = sanitizeAgentId(opts.agent.trim());
|
|
490
|
+
if (opts.clearAgent) patch.agentId = null;
|
|
491
|
+
if (opts.sessionKey && opts.clearSessionKey) throw new Error("Use --session-key or --clear-session-key, not both");
|
|
492
|
+
if (typeof opts.sessionKey === "string" && opts.sessionKey.trim()) patch.sessionKey = opts.sessionKey.trim();
|
|
493
|
+
if (opts.clearSessionKey) patch.sessionKey = null;
|
|
494
|
+
const scheduleRequest = resolveCronEditScheduleRequest({
|
|
495
|
+
at: opts.at,
|
|
496
|
+
cron: opts.cron,
|
|
497
|
+
every: opts.every,
|
|
498
|
+
exact: opts.exact,
|
|
499
|
+
stagger: opts.stagger,
|
|
500
|
+
tz: opts.tz
|
|
501
|
+
});
|
|
502
|
+
if (scheduleRequest.kind === "direct") patch.schedule = scheduleRequest.schedule;
|
|
503
|
+
else if (scheduleRequest.kind === "patch-existing-cron") {
|
|
504
|
+
const existing = ((await callGatewayFromCli("cron.list", opts, { includeDisabled: true }))?.jobs ?? []).find((job) => job.id === id);
|
|
505
|
+
if (!existing) throw new Error(`unknown cron job id: ${id}`);
|
|
506
|
+
patch.schedule = applyExistingCronSchedulePatch(existing.schedule, scheduleRequest);
|
|
507
|
+
}
|
|
508
|
+
const hasSystemEventPatch = typeof opts.systemEvent === "string";
|
|
509
|
+
const model = normalizeOptionalString(opts.model);
|
|
510
|
+
const thinking = normalizeOptionalString(opts.thinking);
|
|
511
|
+
const toolsAllow = parseCronToolsAllow(opts.tools);
|
|
512
|
+
const timeoutSeconds = opts.timeoutSeconds ? Number.parseInt(String(opts.timeoutSeconds), 10) : void 0;
|
|
513
|
+
const hasTimeoutSeconds = Boolean(timeoutSeconds && Number.isFinite(timeoutSeconds));
|
|
514
|
+
const hasDeliveryModeFlag = opts.announce || typeof opts.deliver === "boolean";
|
|
515
|
+
const hasDeliveryTarget = typeof opts.channel === "string" || typeof opts.to === "string";
|
|
516
|
+
const hasDeliveryAccount = typeof opts.account === "string";
|
|
517
|
+
const hasBestEffort = typeof opts.bestEffortDeliver === "boolean";
|
|
518
|
+
const hasAgentTurnPatch = typeof opts.message === "string" || Boolean(model) || Boolean(thinking) || hasTimeoutSeconds || typeof opts.lightContext === "boolean" || typeof opts.tools === "string" || Array.isArray(opts.tools) || opts.clearTools || hasDeliveryModeFlag || hasDeliveryTarget || hasDeliveryAccount || hasBestEffort;
|
|
519
|
+
if (hasSystemEventPatch && hasAgentTurnPatch) throw new Error("Choose at most one payload change");
|
|
520
|
+
if (hasSystemEventPatch) patch.payload = {
|
|
521
|
+
kind: "systemEvent",
|
|
522
|
+
text: String(opts.systemEvent)
|
|
523
|
+
};
|
|
524
|
+
else if (hasAgentTurnPatch) {
|
|
525
|
+
const payload = { kind: "agentTurn" };
|
|
526
|
+
assignIf(payload, "message", String(opts.message), typeof opts.message === "string");
|
|
527
|
+
assignIf(payload, "model", model, Boolean(model));
|
|
528
|
+
assignIf(payload, "thinking", thinking, Boolean(thinking));
|
|
529
|
+
assignIf(payload, "timeoutSeconds", timeoutSeconds, hasTimeoutSeconds);
|
|
530
|
+
assignIf(payload, "lightContext", opts.lightContext, typeof opts.lightContext === "boolean");
|
|
531
|
+
if (opts.clearTools) payload.toolsAllow = null;
|
|
532
|
+
else if (toolsAllow) payload.toolsAllow = toolsAllow;
|
|
533
|
+
patch.payload = payload;
|
|
534
|
+
}
|
|
535
|
+
if (hasDeliveryModeFlag || hasDeliveryTarget || hasDeliveryAccount || hasBestEffort) {
|
|
536
|
+
const delivery = {};
|
|
537
|
+
if (hasDeliveryModeFlag) delivery.mode = opts.announce || opts.deliver === true ? "announce" : "none";
|
|
538
|
+
else if (hasBestEffort) delivery.mode = "announce";
|
|
539
|
+
if (typeof opts.channel === "string") {
|
|
540
|
+
const channel = opts.channel.trim();
|
|
541
|
+
delivery.channel = channel ? channel : void 0;
|
|
542
|
+
}
|
|
543
|
+
if (typeof opts.to === "string") {
|
|
544
|
+
const to = opts.to.trim();
|
|
545
|
+
delivery.to = to ? to : void 0;
|
|
546
|
+
}
|
|
547
|
+
if (typeof opts.account === "string") {
|
|
548
|
+
const account = opts.account.trim();
|
|
549
|
+
delivery.accountId = account ? account : void 0;
|
|
550
|
+
}
|
|
551
|
+
if (typeof opts.bestEffortDeliver === "boolean") delivery.bestEffort = opts.bestEffortDeliver;
|
|
552
|
+
patch.delivery = delivery;
|
|
553
|
+
}
|
|
554
|
+
const hasFailureAlertAfter = typeof opts.failureAlertAfter === "string";
|
|
555
|
+
const hasFailureAlertChannel = typeof opts.failureAlertChannel === "string";
|
|
556
|
+
const hasFailureAlertTo = typeof opts.failureAlertTo === "string";
|
|
557
|
+
const hasFailureAlertCooldown = typeof opts.failureAlertCooldown === "string";
|
|
558
|
+
const hasFailureAlertMode = typeof opts.failureAlertMode === "string";
|
|
559
|
+
const hasFailureAlertAccountId = typeof opts.failureAlertAccountId === "string";
|
|
560
|
+
const hasFailureAlertFields = hasFailureAlertAfter || hasFailureAlertChannel || hasFailureAlertTo || hasFailureAlertCooldown || hasFailureAlertMode || hasFailureAlertAccountId;
|
|
561
|
+
const failureAlertFlag = typeof opts.failureAlert === "boolean" ? opts.failureAlert : void 0;
|
|
562
|
+
if (failureAlertFlag === false && hasFailureAlertFields) throw new Error("Use --no-failure-alert alone (without failure-alert-* options).");
|
|
563
|
+
if (failureAlertFlag === false) patch.failureAlert = false;
|
|
564
|
+
else if (failureAlertFlag === true || hasFailureAlertFields) {
|
|
565
|
+
const failureAlert = {};
|
|
566
|
+
if (hasFailureAlertAfter) {
|
|
567
|
+
const after = Number.parseInt(String(opts.failureAlertAfter), 10);
|
|
568
|
+
if (!Number.isFinite(after) || after <= 0) throw new Error("Invalid --failure-alert-after (must be a positive integer).");
|
|
569
|
+
failureAlert.after = after;
|
|
570
|
+
}
|
|
571
|
+
if (hasFailureAlertChannel) failureAlert.channel = normalizeOptionalLowercaseString(opts.failureAlertChannel);
|
|
572
|
+
if (hasFailureAlertTo) {
|
|
573
|
+
const to = normalizeOptionalString(opts.failureAlertTo) ?? "";
|
|
574
|
+
failureAlert.to = to ? to : void 0;
|
|
575
|
+
}
|
|
576
|
+
if (hasFailureAlertCooldown) {
|
|
577
|
+
const cooldownMs = parseDurationMs(String(opts.failureAlertCooldown));
|
|
578
|
+
if (!cooldownMs && cooldownMs !== 0) throw new Error("Invalid --failure-alert-cooldown.");
|
|
579
|
+
failureAlert.cooldownMs = cooldownMs;
|
|
580
|
+
}
|
|
581
|
+
if (hasFailureAlertMode) {
|
|
582
|
+
const mode = normalizeOptionalLowercaseString(opts.failureAlertMode);
|
|
583
|
+
if (mode !== "announce" && mode !== "webhook") throw new Error("Invalid --failure-alert-mode (must be 'announce' or 'webhook').");
|
|
584
|
+
failureAlert.mode = mode;
|
|
585
|
+
}
|
|
586
|
+
if (hasFailureAlertAccountId) {
|
|
587
|
+
const accountId = normalizeOptionalString(opts.failureAlertAccountId) ?? "";
|
|
588
|
+
failureAlert.accountId = accountId ? accountId : void 0;
|
|
589
|
+
}
|
|
590
|
+
patch.failureAlert = failureAlert;
|
|
591
|
+
}
|
|
592
|
+
const res = await callGatewayFromCli("cron.update", opts, {
|
|
593
|
+
id,
|
|
594
|
+
patch
|
|
595
|
+
});
|
|
596
|
+
defaultRuntime.writeJson(res);
|
|
597
|
+
await warnIfCronSchedulerDisabled(opts);
|
|
598
|
+
} catch (err) {
|
|
599
|
+
defaultRuntime.error(danger(String(err)));
|
|
600
|
+
defaultRuntime.exit(1);
|
|
601
|
+
}
|
|
602
|
+
}));
|
|
603
|
+
}
|
|
604
|
+
//#endregion
|
|
605
|
+
//#region src/cli/cron-cli/register.cron-simple.ts
|
|
606
|
+
const CRON_SHOW_PAGE_SIZE = 200;
|
|
607
|
+
function findCronJobInPage(jobs, idOrName) {
|
|
608
|
+
const needle = normalizeLowercaseStringOrEmpty(idOrName);
|
|
609
|
+
return jobs.find((job) => normalizeLowercaseStringOrEmpty(job.id) === needle || normalizeLowercaseStringOrEmpty(job.name) === needle);
|
|
610
|
+
}
|
|
611
|
+
async function loadCronJobForShow(opts, idOrName) {
|
|
612
|
+
let offset = 0;
|
|
613
|
+
for (;;) {
|
|
614
|
+
const res = await callGatewayFromCli("cron.list", opts, {
|
|
615
|
+
includeDisabled: true,
|
|
616
|
+
limit: CRON_SHOW_PAGE_SIZE,
|
|
617
|
+
offset
|
|
618
|
+
});
|
|
619
|
+
const page = res;
|
|
620
|
+
const job = findCronJobInPage(page.jobs ?? [], idOrName);
|
|
621
|
+
if (job) return {
|
|
622
|
+
job,
|
|
623
|
+
deliveryPreview: coerceCronDeliveryPreviews(res).get(job.id)
|
|
624
|
+
};
|
|
625
|
+
if (!page.hasMore || typeof page.nextOffset !== "number") return {};
|
|
626
|
+
offset = page.nextOffset;
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
function registerCronToggleCommand(params) {
|
|
630
|
+
addGatewayClientOptions(params.cron.command(params.name).description(params.description).argument("<id>", "Job id").action(async (id, opts) => {
|
|
631
|
+
try {
|
|
632
|
+
printCronJson(await callGatewayFromCli("cron.update", opts, {
|
|
633
|
+
id,
|
|
634
|
+
patch: { enabled: params.enabled }
|
|
635
|
+
}));
|
|
636
|
+
await warnIfCronSchedulerDisabled(opts);
|
|
637
|
+
} catch (err) {
|
|
638
|
+
handleCronCliError(err);
|
|
639
|
+
}
|
|
640
|
+
}));
|
|
641
|
+
}
|
|
642
|
+
function registerCronSimpleCommands(cron) {
|
|
643
|
+
addGatewayClientOptions(cron.command("rm").alias("remove").alias("delete").description("Remove a cron job").argument("<id>", "Job id").option("--json", "Output JSON", false).action(async (id, opts) => {
|
|
644
|
+
try {
|
|
645
|
+
printCronJson(await callGatewayFromCli("cron.remove", opts, { id }));
|
|
646
|
+
} catch (err) {
|
|
647
|
+
handleCronCliError(err);
|
|
648
|
+
}
|
|
649
|
+
}));
|
|
650
|
+
registerCronToggleCommand({
|
|
651
|
+
cron,
|
|
652
|
+
name: "enable",
|
|
653
|
+
description: "Enable a cron job",
|
|
654
|
+
enabled: true
|
|
655
|
+
});
|
|
656
|
+
registerCronToggleCommand({
|
|
657
|
+
cron,
|
|
658
|
+
name: "disable",
|
|
659
|
+
description: "Disable a cron job",
|
|
660
|
+
enabled: false
|
|
661
|
+
});
|
|
662
|
+
addGatewayClientOptions(cron.command("show").description("Show a cron job").argument("<id>", "Job id or exact name").option("--json", "Output JSON", false).action(async (id, opts) => {
|
|
663
|
+
try {
|
|
664
|
+
const { job, deliveryPreview } = await loadCronJobForShow(opts, String(id));
|
|
665
|
+
if (!job) throw new Error(`cron job not found: ${String(id)}`);
|
|
666
|
+
if (opts.json) {
|
|
667
|
+
printCronJson(job);
|
|
668
|
+
return;
|
|
669
|
+
}
|
|
670
|
+
printCronShow(job, defaultRuntime, { deliveryPreview });
|
|
671
|
+
} catch (err) {
|
|
672
|
+
handleCronCliError(err);
|
|
673
|
+
}
|
|
674
|
+
}));
|
|
675
|
+
addGatewayClientOptions(cron.command("runs").description("Show cron run history (JSONL-backed)").requiredOption("--id <id>", "Job id").option("--limit <n>", "Max entries (default 50)", "50").action(async (opts) => {
|
|
676
|
+
try {
|
|
677
|
+
const limitRaw = Number.parseInt(String(opts.limit ?? "50"), 10);
|
|
678
|
+
const limit = Number.isFinite(limitRaw) && limitRaw > 0 ? limitRaw : 50;
|
|
679
|
+
printCronJson(await callGatewayFromCli("cron.runs", opts, {
|
|
680
|
+
id: String(opts.id),
|
|
681
|
+
limit
|
|
682
|
+
}));
|
|
683
|
+
} catch (err) {
|
|
684
|
+
handleCronCliError(err);
|
|
685
|
+
}
|
|
686
|
+
}));
|
|
687
|
+
addGatewayClientOptions(cron.command("run").description("Run a cron job now (debug)").argument("<id>", "Job id").option("--due", "Run only when due (default behavior in older versions)", false).action(async (id, opts, command) => {
|
|
688
|
+
try {
|
|
689
|
+
if (command.getOptionValueSource("timeout") === "default") opts.timeout = "600000";
|
|
690
|
+
const res = await callGatewayFromCli("cron.run", opts, {
|
|
691
|
+
id,
|
|
692
|
+
mode: opts.due ? "due" : "force"
|
|
693
|
+
});
|
|
694
|
+
printCronJson(res);
|
|
695
|
+
const result = res;
|
|
696
|
+
defaultRuntime.exit(result?.ok && (result?.ran || result?.enqueued) ? 0 : 1);
|
|
697
|
+
} catch (err) {
|
|
698
|
+
handleCronCliError(err);
|
|
699
|
+
}
|
|
700
|
+
}));
|
|
701
|
+
}
|
|
702
|
+
//#endregion
|
|
703
|
+
//#region src/cli/cron-cli/register.ts
|
|
704
|
+
function registerCronCli(program) {
|
|
705
|
+
const cron = program.command("cron").description("Manage cron jobs (via Gateway)").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/cron", "docs.genesis.ai/cli/cron")}\n${theme.muted("Upgrade tip:")} run \`genesis doctor --fix\` to normalize legacy cron job storage.\n`);
|
|
706
|
+
registerCronStatusCommand(cron);
|
|
707
|
+
registerCronListCommand(cron);
|
|
708
|
+
registerCronAddCommand(cron);
|
|
709
|
+
registerCronSimpleCommands(cron);
|
|
710
|
+
registerCronEditCommand(cron);
|
|
711
|
+
}
|
|
712
|
+
//#endregion
|
|
713
|
+
export { registerCronCli };
|