@xopcai/xopc 0.0.111 → 0.0.113
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/dist/browser-ext/icons/icon-128.png +0 -0
- package/dist/browser-ext/icons/icon-16.png +0 -0
- package/dist/browser-ext/icons/icon-32.png +0 -0
- package/dist/browser-ext/icons/icon-48.png +0 -0
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
- package/dist/extensions/feishu/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
- package/dist/extensions/telegram/src/inbound-processor.js +1 -1
- package/dist/extensions/telegram/src/plugin.js +1 -1
- package/dist/extensions/telegram/src/routing-integration.js +2 -2
- package/dist/extensions/telegram/src/update-offset-store.js +1 -1
- package/dist/extensions/telegram/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +2 -2
- package/dist/extensions/weixin/src/auth/accounts.js +1 -1
- package/dist/extensions/weixin/src/cdn/upload.js +1 -1
- package/dist/extensions/weixin/src/delivery-to.d.ts +3 -3
- package/dist/extensions/weixin/src/delivery-to.js.map +1 -1
- package/dist/extensions/weixin/src/media/data-url.js +1 -1
- package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
- package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
- package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
- package/dist/extensions/weixin/src/plugin.js +1 -1
- package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
- package/dist/extensions/weixin/src/workflow-progress.js +1 -1
- package/dist/gateway/static/root/apple-touch-icon.png +0 -0
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-zlx9l5Yp.js → agent-avatar-dicebear-CBlklyNr.js} +1 -1
- package/dist/gateway/static/root/assets/agent-browser-settings-page-rGbKc2Hh.js +6 -0
- package/dist/gateway/static/root/assets/{agent-defaults-tabbed-page-Bz7JWjRM.js → agent-defaults-tabbed-page-CtwVbjOA.js} +1 -1
- package/dist/gateway/static/root/assets/agents-CCBmGcwc.js +71 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-DaQwdeCq.js → app-management-settings-panel-28E_WfMe.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-D2zv6r3P.js → appearance-settings-Do1z0XgJ.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-BIppe_jj.js → apps-page-xwCsJS15.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-DEmu8eH7.js → archive-plugin-BAFlsov_.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-B98lJoN5.js → attachment-load-V3qGPC3x.js} +1 -1
- package/dist/gateway/static/root/assets/{binary-plugins-CL9QKmyo.js → binary-plugins-DT8NvA6W.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-BOAhMAhT.js → block-editor-CdLMEcHd.js} +1 -1
- package/dist/gateway/static/root/assets/{channels-settings-Br8iRnXp.js → channels-settings-C044DcYk.js} +1 -1
- package/dist/gateway/static/root/assets/{config-api-0o1WYdz2.js → config-api-Bf5mjpu7.js} +1 -1
- package/dist/gateway/static/root/assets/config-reload-event-Bjh2zoKp.js +1 -0
- package/dist/gateway/static/root/assets/connectors-settings-8VEWUOTj.js +2 -0
- package/dist/gateway/static/root/assets/cron-api--pAB_rps.js +1 -0
- package/dist/gateway/static/root/assets/cron-page-DqmNGNOy.js +3 -0
- package/dist/gateway/static/root/assets/dreaming-settings-6UZE1FSK.js +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-Cjx6pZVz.js → extension-debug-page-BGhE7msg.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-BSPNL90V.js → extension-page-CvpI45WG.js} +1 -1
- package/dist/gateway/static/root/assets/extension-settings-page-DAmR5FUe.js +1 -0
- package/dist/gateway/static/root/assets/{fetch-Bs7in_4F.js → fetch-NZmjSXLl.js} +1 -1
- package/dist/gateway/static/root/assets/format-cron-label-BsotZDO5.js +2 -0
- package/dist/gateway/static/root/assets/{format-interval-label-CftJ5uXu.js → format-interval-label-qhth3BMV.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-api-Clfck-hW.js → gateway-config-api-CaXBt-9R.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-DphpbLBc.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-BkjVJc38.js → gateway-startup-retry-Be1omjh3.js} +1 -1
- package/dist/gateway/static/root/assets/{goal-detail-page-kqJue0sE.js → goal-detail-page-bv0VRDaf.js} +1 -1
- package/dist/gateway/static/root/assets/goals-page-1Ywnt4Cb.js +2 -0
- package/dist/gateway/static/root/assets/{goals-settings-CJnzNSDo.js → goals-settings-ceEBjnfc.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-config-api-Cp7CPuIn.js → heartbeat-config-api-BzO6G4fD.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-settings-ifSI1Wbh.js → heartbeat-settings-DCST9-du.js} +1 -1
- package/dist/gateway/static/root/assets/index-Cxm6xsps.js +122 -0
- package/dist/gateway/static/root/assets/index-b_R4tKqt.css +1 -0
- package/dist/gateway/static/root/assets/interval-presets-DJmshV8n.js +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings--MI1rYl7.js → keyboard-shortcuts-settings-9AUUlQ5Q.js} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-BwrVNlyW.js → logs-page-B_wrxhee.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-split-B_oc9lJe.js → markdown-split-CYYELqAr.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-DLPvB5H3.js → media-plugins-BEcMR2M8.js} +1 -1
- package/dist/gateway/static/root/assets/messages-CkT-lcgP.js +3 -0
- package/dist/gateway/static/root/assets/models-hub-panel-D0JDSbNu.js +2 -0
- package/dist/gateway/static/root/assets/note-detail-page-DpFV-EO6.js +2 -0
- package/dist/gateway/static/root/assets/{note-image-lightbox-rSqAgOi9.js → note-image-lightbox-DNAoPcmm.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-C9ACGEty.js → notes-page-CdkjTch8.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-Bw_N2oZi.js → preview-open-alternatives-BPLz0AIv.js} +1 -1
- package/dist/gateway/static/root/assets/{remote-access-hub-BhcWIKuM.js → remote-access-hub-DSYVAi96.js} +1 -1
- package/dist/gateway/static/root/assets/{save-bar-controls-CNP2jmw0.js → save-bar-controls-CrWwWRVK.js} +1 -1
- package/dist/gateway/static/root/assets/schedule-field-CF2sadvN.js +1 -0
- package/dist/gateway/static/root/assets/{schema-form-CDPzua9q.js → schema-form-Di5cKjYE.js} +1 -1
- package/dist/gateway/static/root/assets/{sessions-page-DzkpSDZr.js → sessions-page-CenkcVjF.js} +1 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-D9sva86V.js +1 -0
- package/dist/gateway/static/root/assets/{settings-collapsible-section-C9bff85B.js → settings-collapsible-section-Chh282jW.js} +1 -1
- package/dist/gateway/static/root/assets/settings-form-section-Dq-83cQd.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-DWK4Zo7s.js → settings-page-DL35U0x0.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-Ctwbp9Er.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-DnutoY_S.js → share-preview-page-0FXYnSUA.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-settings-6oRgJMpn.js → shares-settings-DIM3JNsr.js} +1 -1
- package/dist/gateway/static/root/assets/skill-reload-api-DAlNaNzL.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-CLrHVzAt.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-qP1JDtDd.js → system-settings-panel-W1pTcojB.js} +1 -1
- package/dist/gateway/static/root/assets/use-agent-defaults-form-BVRvkK7m.js +1 -0
- package/dist/gateway/static/root/assets/{use-channel-catalog-C4mg1hjD.js → use-channel-catalog-CgJibfMM.js} +1 -1
- package/dist/gateway/static/root/assets/{use-settings-tab-guard-F6C0mpJt.js → use-settings-tab-guard-Bw_qkRQE.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-api-key-field-BnDDb6qO.js → voice-api-key-field-vYAO71Gn.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-player-store-B2EwIhtY.js → voice-player-store-C7lziaAx.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-page.utils-CRB7WX9l.js → workflow-page.utils-sgHjOXOm.js} +1 -1
- package/dist/gateway/static/root/assets/{workflows-page-2Fptr0je.js → workflows-page-DYyOTmFx.js} +1 -1
- package/dist/gateway/static/root/favicon-16x16.png +0 -0
- package/dist/gateway/static/root/favicon-32x32.png +0 -0
- package/dist/gateway/static/root/favicon-icon.svg +1 -0
- package/dist/gateway/static/root/favicon.ico +0 -0
- package/dist/gateway/static/root/favicon.png +0 -0
- package/dist/gateway/static/root/favicon.svg +24 -15
- package/dist/gateway/static/root/index.html +11 -10
- package/dist/gateway/static/root/logo-dark.svg +23 -15
- package/dist/gateway/static/root/logo.svg +23 -16
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.d.ts +28 -2
- package/dist/src/agent/agent-manager.js +82 -11
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/agent-scope.js +1 -1
- package/dist/src/agent/bootstrap/load-bootstrap-files.js +1 -1
- package/dist/src/agent/context/workspace-seed.js +2 -2
- package/dist/src/agent/context/workspace-state.js +1 -1
- package/dist/src/agent/context/workspace.js +1 -1
- package/dist/src/agent/goals/goal-locale.js +2 -2
- package/dist/src/agent/goals/persistent-goal-service.js +1 -1
- package/dist/src/agent/goals/post-turn.js +3 -3
- package/dist/src/agent/image/load-image-media.js +2 -2
- package/dist/src/agent/ipc/inbox.js +3 -3
- package/dist/src/agent/ipc/socket.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
- package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
- package/dist/src/agent/mcp/mcp-transport.js +1 -1
- package/dist/src/agent/memory/builtin-memory-store.js +1 -1
- package/dist/src/agent/memory/dreaming/deep-promotion.js +1 -1
- package/dist/src/agent/memory/dreaming/events.js +1 -1
- package/dist/src/agent/memory/dreaming/last-run.js +1 -1
- package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
- package/dist/src/agent/memory/dreaming/preview.js +1 -1
- package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
- package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
- package/dist/src/agent/memory/dreaming/utils.js +1 -1
- package/dist/src/agent/memory/memory-flush.js +1 -1
- package/dist/src/agent/memory/plugin-discovery.js +1 -1
- package/dist/src/agent/messaging/command-handler.d.ts +3 -0
- package/dist/src/agent/messaging/command-handler.js +5 -0
- package/dist/src/agent/messaging/command-handler.js.map +1 -1
- package/dist/src/agent/models/manager.js +1 -1
- package/dist/src/agent/prompt/memory/index.js +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
- package/dist/src/agent/reply/post-compaction-context.js +1 -1
- package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
- package/dist/src/agent/sandbox/path-policy.js +2 -2
- package/dist/src/agent/service/process-direct-streaming.js +9 -4
- package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
- package/dist/src/agent/service/reconcile-dreaming-cron.js +8 -5
- package/dist/src/agent/service/reconcile-dreaming-cron.js.map +1 -1
- package/dist/src/agent/service.d.ts +2 -1
- package/dist/src/agent/service.js +10 -5
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/service.types.d.ts +4 -0
- package/dist/src/agent/session/session-config-service.d.ts +8 -0
- package/dist/src/agent/session/session-config-service.js +20 -0
- package/dist/src/agent/session/session-config-service.js.map +1 -1
- package/dist/src/agent/session/session-inspector.js +1 -1
- package/dist/src/agent/skills/config.js +2 -2
- package/dist/src/agent/skills/filesystem-watcher.d.ts +19 -0
- package/dist/src/agent/skills/filesystem-watcher.js +182 -0
- package/dist/src/agent/skills/filesystem-watcher.js.map +1 -0
- package/dist/src/agent/skills/hub-hash.js +2 -2
- package/dist/src/agent/skills/hub-lock.js +1 -1
- package/dist/src/agent/skills/hub-pull.js +30 -36
- package/dist/src/agent/skills/hub-pull.js.map +1 -1
- package/dist/src/agent/skills/index.js +82 -38
- package/dist/src/agent/skills/index.js.map +1 -1
- package/dist/src/agent/skills/installer.js +2 -2
- package/dist/src/agent/skills/managed-store.d.ts +19 -0
- package/dist/src/agent/skills/managed-store.js +97 -38
- package/dist/src/agent/skills/managed-store.js.map +1 -1
- package/dist/src/agent/skills/skill-manage-ops.js +1 -1
- package/dist/src/agent/skills/skill-manager.d.ts +16 -6
- package/dist/src/agent/skills/skill-manager.js +79 -24
- package/dist/src/agent/skills/skill-manager.js.map +1 -1
- package/dist/src/agent/skills/skill-view-path.js +1 -1
- package/dist/src/agent/skills/test-framework.js +1 -1
- package/dist/src/agent/skills/types.d.ts +11 -0
- package/dist/src/agent/skills/watcher.js +1 -1
- package/dist/src/agent/starter-agents.js +1 -1
- package/dist/src/agent/tools/cronjob-tool.d.ts +6 -3
- package/dist/src/agent/tools/cronjob-tool.js +58 -23
- package/dist/src/agent/tools/cronjob-tool.js.map +1 -1
- package/dist/src/agent/tools/dreaming-tool.js +1 -1
- package/dist/src/agent/tools/factory.js +1 -1
- package/dist/src/agent/tools/find.js +1 -1
- package/dist/src/agent/tools/grep.js +1 -1
- package/dist/src/agent/tools/image-generate-tool.js +1 -1
- package/dist/src/agent/tools/skill-manage-tool.js +1 -1
- package/dist/src/agent/tools/workflow-tool.js +1 -1
- package/dist/src/agent/workflow/catalog.js +1 -1
- package/dist/src/agent/workspace-runtime/registry.d.ts +5 -0
- package/dist/src/agent/workspace-runtime/registry.js +7 -0
- package/dist/src/agent/workspace-runtime/registry.js.map +1 -1
- package/dist/src/ai-assist/text-assist.d.ts +42 -0
- package/dist/src/ai-assist/text-assist.js +252 -0
- package/dist/src/ai-assist/text-assist.js.map +1 -0
- package/dist/src/auth/credentials.js +2 -2
- package/dist/src/auth/profiles/store.js +2 -2
- package/dist/src/auth/sync-provider-auth.js +1 -1
- package/dist/src/browser/cache-dir-policy.js +1 -1
- package/dist/src/browser/cdp-local-launcher.js +2 -2
- package/dist/src/browser/providers/browser-ext-install.js +4 -4
- package/dist/src/browser/providers/cloakbrowser.js +5 -5
- package/dist/src/browser/providers/playwright-doctor.js +1 -1
- package/dist/src/browser/stealth.js +1 -1
- package/dist/src/channels/outbound/persist-store.js +1 -1
- package/dist/src/channels/pairing/allow-from-file.js +1 -1
- package/dist/src/channels/pairing/pairing-store.js +2 -2
- package/dist/src/channels/plugins/types.adapters.d.ts +2 -2
- package/dist/src/chat-commands/agent-edit.js +2 -2
- package/dist/src/chat-commands/builtins/config.js +3 -3
- package/dist/src/chat-commands/builtins/system.js +11 -4
- package/dist/src/chat-commands/builtins/system.js.map +1 -1
- package/dist/src/chat-commands/context.d.ts +3 -0
- package/dist/src/chat-commands/context.js +7 -0
- package/dist/src/chat-commands/context.js.map +1 -1
- package/dist/src/chat-commands/types.d.ts +2 -0
- package/dist/src/cli/commands/config.js +1 -1
- package/dist/src/cli/commands/cron.js +55 -16
- package/dist/src/cli/commands/cron.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
- package/dist/src/cli/commands/doctor/checks/cron-health.js +2 -83
- package/dist/src/cli/commands/doctor/checks/cron-health.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
- package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
- package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
- package/dist/src/cli/commands/extension-create.js +1 -1
- package/dist/src/cli/commands/extension-dev.js +2 -2
- package/dist/src/cli/commands/extension-marketplace.js +2 -2
- package/dist/src/cli/commands/extension-pack.js +2 -2
- package/dist/src/cli/commands/extension.js +3 -3
- package/dist/src/cli/commands/gateway/logs.js +1 -1
- package/dist/src/cli/commands/image.js +1 -1
- package/dist/src/cli/commands/init.js +2 -2
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/skills-test.js +1 -1
- package/dist/src/cli/templates.js +1 -1
- package/dist/src/cli/utils/gateway-client.js +1 -1
- package/dist/src/cli/utils/init-workspace-core.js +2 -2
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/agent-typed-models.js +1 -1
- package/dist/src/config/gateway-bind.js +1 -1
- package/dist/src/config/index.js +7 -7
- package/dist/src/config/loader.js +4 -4
- package/dist/src/config/models-json.js +2 -2
- package/dist/src/config/paths-state.js +1 -1
- package/dist/src/config/paths.js +1 -1
- package/dist/src/config/profile.js +1 -1
- package/dist/src/config/reload.js +1 -1
- package/dist/src/config/schema.d.ts +0 -2
- package/dist/src/config/schema.js +0 -3
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/config/web-patch.d.ts +0 -1
- package/dist/src/config/web-patch.js +0 -2
- package/dist/src/config/web-patch.js.map +1 -1
- package/dist/src/config/workspace-path.js +1 -1
- package/dist/src/cron/executor.js +102 -71
- package/dist/src/cron/executor.js.map +1 -1
- package/dist/src/cron/index.d.ts +1 -1
- package/dist/src/cron/index.js +3 -3
- package/dist/src/cron/run-log-store.d.ts +1 -0
- package/dist/src/cron/run-log-store.js +4 -2
- package/dist/src/cron/run-log-store.js.map +1 -1
- package/dist/src/cron/schedule.d.ts +10 -0
- package/dist/src/cron/schedule.js +85 -0
- package/dist/src/cron/schedule.js.map +1 -0
- package/dist/src/cron/service.d.ts +34 -77
- package/dist/src/cron/service.js +327 -264
- package/dist/src/cron/service.js.map +1 -1
- package/dist/src/cron/types.d.ts +80 -50
- package/dist/src/cron/validation.d.ts +358 -90
- package/dist/src/cron/validation.js +152 -132
- package/dist/src/cron/validation.js.map +1 -1
- package/dist/src/cron/workflow-run-completion.js +1 -1
- package/dist/src/daemon/constants.js +1 -1
- package/dist/src/daemon/install-plan.js +2 -2
- package/dist/src/daemon/launchd.js +2 -2
- package/dist/src/daemon/schtasks.js +2 -2
- package/dist/src/daemon/systemd.js +2 -2
- package/dist/src/extensions/bundle-mcp.js +1 -1
- package/dist/src/extensions/discover-extensions.js +2 -2
- package/dist/src/extensions/health.js +1 -1
- package/dist/src/extensions/install.js +2 -2
- package/dist/src/extensions/loader.js +2 -2
- package/dist/src/extensions/lockfile.js +3 -3
- package/dist/src/extensions/security.js +1 -1
- package/dist/src/extensions/update.js +2 -2
- package/dist/src/gateway/agents-admin.js +2 -2
- package/dist/src/gateway/chat-stream/mapper.d.ts +1 -0
- package/dist/src/gateway/chat-stream/mapper.js +6 -2
- package/dist/src/gateway/chat-stream/mapper.js.map +1 -1
- package/dist/src/gateway/chat-stream/protocol.d.ts +2 -0
- package/dist/src/gateway/file-path-classifier.js +2 -2
- package/dist/src/gateway/hono/lib/config-payload.d.ts +0 -1
- package/dist/src/gateway/hono/lib/config-payload.js +1 -1
- package/dist/src/gateway/hono/lib/extension-store.js +2 -2
- package/dist/src/gateway/hono/lib/static-ui.js +2 -2
- package/dist/src/gateway/hono/oauth-async.js +1 -1
- package/dist/src/gateway/hono/routes/agents.js +1 -1
- package/dist/src/gateway/hono/routes/ai-assist.d.ts +3 -0
- package/dist/src/gateway/hono/routes/ai-assist.js +66 -0
- package/dist/src/gateway/hono/routes/ai-assist.js.map +1 -0
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
- package/dist/src/gateway/hono/routes/commands-skills.js +7 -0
- package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
- package/dist/src/gateway/hono/routes/cron.js +24 -5
- package/dist/src/gateway/hono/routes/cron.js.map +1 -1
- package/dist/src/gateway/hono/routes/dreaming.js +1 -1
- package/dist/src/gateway/hono/routes/home.js +5 -3
- package/dist/src/gateway/hono/routes/home.js.map +1 -1
- package/dist/src/gateway/hono/routes/host-fs.js +2 -2
- package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
- package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
- package/dist/src/gateway/hono/routes/models.js +1 -1
- package/dist/src/gateway/hono/routes/shares.js +1 -1
- package/dist/src/gateway/hono/routes/workflows.js +2 -2
- package/dist/src/gateway/hono/routes/workspace.js +2 -2
- package/dist/src/gateway/lock.js +3 -3
- package/dist/src/gateway/ports.js +1 -1
- package/dist/src/gateway/service/agent-runner.js +2 -2
- package/dist/src/gateway/service/config-coordinator.js +1 -1
- package/dist/src/gateway/service/marketplace-service.d.ts +22 -10
- package/dist/src/gateway/service/marketplace-service.js +46 -5
- package/dist/src/gateway/service/marketplace-service.js.map +1 -1
- package/dist/src/gateway/service.js +11 -5
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/gateway/workspace-fs-file-list.js +1 -1
- package/dist/src/goals/goal-notifications.js +1 -1
- package/dist/src/goals/goal-workflow-judge.js +3 -3
- package/dist/src/i18n/goals-bundle.js +1 -1
- package/dist/src/i18n/index.js +1 -1
- package/dist/src/i18n/share-tool-bundle.js +2 -2
- package/dist/src/infra/brew.js +1 -1
- package/dist/src/infra/package-json.js +1 -1
- package/dist/src/infra/package-update-steps.js +1 -1
- package/dist/src/infra/path-env.js +2 -2
- package/dist/src/infra/restart.js +1 -1
- package/dist/src/infra/stable-node-path.js +1 -1
- package/dist/src/infra/update-check.js +1 -1
- package/dist/src/infra/update-global.js +1 -1
- package/dist/src/infra/update-lock.js +2 -2
- package/dist/src/infra/update-restart.js +1 -1
- package/dist/src/infra/update-runner.js +1 -1
- package/dist/src/infra/update-startup.js +1 -1
- package/dist/src/infra/write-file-atomic.js +2 -2
- package/dist/src/media/store.js +1 -1
- package/dist/src/notes/agent-context.js +1 -1
- package/dist/src/notes/service.js +1 -1
- package/dist/src/notes/store.js +2 -2
- package/dist/src/project-trust/trust-store.js +2 -2
- package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
- package/dist/src/providers/index.js +1 -1
- package/dist/src/providers/model-registry.js +4 -4
- package/dist/src/session/init-session-turn.js +2 -2
- package/dist/src/session/resolve-session.js +3 -3
- package/dist/src/session/session-title.js +2 -2
- package/dist/src/session/store-reader.d.ts +5 -0
- package/dist/src/session/store-reader.js +1 -0
- package/dist/src/session/store.js +1 -1
- package/dist/src/share/share-auto.js +2 -2
- package/dist/src/share/share-store.js +3 -3
- package/dist/src/share/share-thumbnail.js +2 -2
- package/dist/src/share/share-zip.js +1 -1
- package/dist/src/share/site-share-store.js +3 -3
- package/dist/src/share/site-static-serve.js +1 -1
- package/dist/src/storage/sqlite/connection.js +1 -1
- package/dist/src/storage/sqlite/cron-job-repository.d.ts +6 -0
- package/dist/src/storage/sqlite/cron-job-repository.js +70 -0
- package/dist/src/storage/sqlite/cron-job-repository.js.map +1 -0
- package/dist/src/storage/sqlite/cron-run-repository.js +0 -1
- package/dist/src/storage/sqlite/cron-run-repository.js.map +1 -1
- package/dist/src/storage/sqlite/index.d.ts +1 -0
- package/dist/src/storage/sqlite/index.js +2 -1
- package/dist/src/storage/sqlite/memory-index-repository.js +2 -2
- package/dist/src/storage/sqlite/migrations/009_cron_jobs.sql +24 -0
- package/dist/src/storage/sqlite/migrations/discover.js +1 -1
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +4 -4
- package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
- package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
- package/dist/src/storage/sqlite/schema.js +2 -2
- package/dist/src/storage/sqlite/schema.sql +25 -0
- package/dist/src/tui/clipboard-image.js +3 -3
- package/dist/src/tui/extension-host/load-extensions.js +1 -1
- package/dist/src/tui/theme-manager.js +1 -1
- package/dist/src/tui/tui-command-formatters.js +4 -4
- package/dist/src/tui/tui-commands.js +2 -2
- package/dist/src/tui/tui-keybindings-file.js +1 -1
- package/dist/src/tui/tui-scoped-models.js +2 -2
- package/dist/src/tui/tui-settings.js +1 -1
- package/dist/src/tui/tui-startup-resources.js +1 -1
- package/dist/src/tui/tui.js +6 -6
- package/dist/src/tunnel/frpc-binary.js +4 -4
- package/dist/src/tunnel/frpc-config.js +1 -1
- package/dist/src/tunnel/frpc-extract.js +1 -1
- package/dist/src/tunnel/tunnel-state.js +1 -1
- package/dist/src/utils/logger/audit.js +1 -1
- package/dist/src/utils/logger/log-store.js +1 -1
- package/dist/src/utils/logger/rotation.js +1 -1
- package/dist/src/utils/logger/streams.js +1 -1
- package/dist/src/voice/tts/audio.js +1 -1
- package/dist/src/voice/tts/providers/edge-speech.js +2 -2
- package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
- package/dist/src/workflows/engine/projector.js +23 -14
- package/dist/src/workflows/engine/projector.js.map +1 -1
- package/dist/src/workflows/engine/workflow-engine.d.ts +1 -0
- package/dist/src/workflows/engine/workflow-engine.js +36 -0
- package/dist/src/workflows/engine/workflow-engine.js.map +1 -1
- package/dist/src/workflows/index.js +1 -1
- package/dist/src/workflows/service/workflow-run-service.js +2 -2
- package/dist/src/workflows/service/workflow-session-bridge.js +2 -2
- package/dist/src/workflows/store/event-store.js +1 -1
- package/dist/src/workflows/store/run-store.js +1 -1
- package/package.json +2 -3
- package/dist/gateway/static/root/assets/agent-browser-settings-page-B-0zGjt8.js +0 -6
- package/dist/gateway/static/root/assets/agents-DwDnJlXT.js +0 -71
- package/dist/gateway/static/root/assets/connectors-settings-DDvHo9in.js +0 -2
- package/dist/gateway/static/root/assets/cron-api-Dj_UZKST.js +0 -1
- package/dist/gateway/static/root/assets/cron-page-Dv7GII9G.js +0 -1
- package/dist/gateway/static/root/assets/cron-schedule-picker-DH10KgD6.js +0 -1
- package/dist/gateway/static/root/assets/dreaming-settings-L2rgZDQl.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-m_UQYkVc.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-CS177xni.js +0 -1
- package/dist/gateway/static/root/assets/goals-page-C0FujUB5.js +0 -2
- package/dist/gateway/static/root/assets/index-COkF54xv.js +0 -121
- package/dist/gateway/static/root/assets/index-DIaSNGEO.css +0 -1
- package/dist/gateway/static/root/assets/interval-presets-B29Ss_2y.js +0 -2
- package/dist/gateway/static/root/assets/messages-Csef1aW7.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-panel-DHGiTIvf.js +0 -2
- package/dist/gateway/static/root/assets/note-detail-page-BM7zlDiT.js +0 -2
- package/dist/gateway/static/root/assets/schedule-field-BPAWui3P.js +0 -1
- package/dist/gateway/static/root/assets/schedule-summary-B-hdSRdR.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-BYS-rpzn.js +0 -1
- package/dist/gateway/static/root/assets/settings-form-section-BsrK7TBF.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-DJiksNu4.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-CU9i0nJV.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-ERbdWENm.js +0 -2
- package/dist/gateway/static/root/assets/use-agent-defaults-form-D3FGVLZb.js +0 -1
- package/dist/gateway/static/root/favicon-16.png +0 -0
- package/dist/gateway/static/root/favicon-32.png +0 -0
- package/dist/src/cron/persistence.d.ts +0 -62
- package/dist/src/cron/persistence.js +0 -188
- package/dist/src/cron/persistence.js.map +0 -1
|
@@ -1,172 +1,192 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import
|
|
2
|
+
import { CronExpressionParser } from "cron-parser";
|
|
3
3
|
//#region src/cron/validation.ts
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
code: z.ZodIssueCode.custom,
|
|
7
|
-
message: `Invalid cron expression: ${val}`
|
|
8
|
-
});
|
|
9
|
-
});
|
|
10
|
-
const validTimezones = [
|
|
11
|
-
"UTC",
|
|
12
|
-
"America/New_York",
|
|
13
|
-
"America/Chicago",
|
|
14
|
-
"America/Denver",
|
|
15
|
-
"America/Los_Angeles",
|
|
16
|
-
"America/Toronto",
|
|
17
|
-
"Europe/London",
|
|
18
|
-
"Europe/Paris",
|
|
19
|
-
"Europe/Berlin",
|
|
20
|
-
"Europe/Moscow",
|
|
21
|
-
"Asia/Tokyo",
|
|
22
|
-
"Asia/Shanghai",
|
|
23
|
-
"Asia/Hong_Kong",
|
|
24
|
-
"Asia/Singapore",
|
|
25
|
-
"Asia/Seoul",
|
|
26
|
-
"Asia/Dubai",
|
|
27
|
-
"Asia/Mumbai",
|
|
28
|
-
"Australia/Sydney",
|
|
29
|
-
"Pacific/Auckland"
|
|
30
|
-
];
|
|
31
|
-
const CronDeliveryMode = z.enum([
|
|
32
|
-
"none",
|
|
33
|
-
"announce",
|
|
34
|
-
"direct"
|
|
35
|
-
]);
|
|
36
|
-
/** Treat `''` / `null` / whitespace-only as absent so optional fields do not fail `.min(1)` */
|
|
37
|
-
function optionalTrimmedString(max, min = 1) {
|
|
38
|
-
return z.preprocess((v) => {
|
|
39
|
-
if (v === null || v === void 0) return void 0;
|
|
40
|
-
if (typeof v !== "string") return v;
|
|
41
|
-
const t = v.trim();
|
|
42
|
-
return t.length === 0 ? void 0 : t;
|
|
43
|
-
}, z.string().min(min).max(max).optional());
|
|
44
|
-
}
|
|
45
|
-
/** Optional agent id on create; empty string → undefined. */
|
|
46
|
-
const optionalJobAgentId = optionalTrimmedString(64, 1);
|
|
47
|
-
/** Optional absolute workspace path on create; empty string → undefined. */
|
|
48
|
-
const optionalJobWorkingDirectory = optionalTrimmedString(4096, 1);
|
|
49
|
-
/**
|
|
50
|
-
* PATCH: set string, or `null` / empty to clear `workingDirectory` on the job.
|
|
51
|
-
*/
|
|
52
|
-
const patchJobWorkingDirectory = z.preprocess((v) => {
|
|
53
|
-
if (v === null) return null;
|
|
4
|
+
const nonEmptyString = z.string().trim().min(1);
|
|
5
|
+
const optionalTrimmedString = (max) => z.preprocess((v) => {
|
|
54
6
|
if (v === void 0) return void 0;
|
|
7
|
+
if (v === null) return v;
|
|
55
8
|
if (typeof v !== "string") return v;
|
|
56
9
|
const t = v.trim();
|
|
57
|
-
return t.length === 0 ?
|
|
58
|
-
}, z.
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
10
|
+
return t.length === 0 ? void 0 : t;
|
|
11
|
+
}, z.string().min(1).max(max).optional());
|
|
12
|
+
const CronScheduleSchema = z.discriminatedUnion("kind", [
|
|
13
|
+
z.object({
|
|
14
|
+
kind: z.literal("at"),
|
|
15
|
+
at: nonEmptyString
|
|
16
|
+
}).strict(),
|
|
17
|
+
z.object({
|
|
18
|
+
kind: z.literal("every"),
|
|
19
|
+
everyMs: z.number().int().min(1),
|
|
20
|
+
anchorMs: z.number().int().nonnegative().optional()
|
|
21
|
+
}).strict(),
|
|
22
|
+
z.object({
|
|
23
|
+
kind: z.literal("cron"),
|
|
24
|
+
expr: nonEmptyString.superRefine((val, ctx) => {
|
|
25
|
+
try {
|
|
26
|
+
CronExpressionParser.parse(val);
|
|
27
|
+
} catch {
|
|
28
|
+
ctx.addIssue({
|
|
29
|
+
code: z.ZodIssueCode.custom,
|
|
30
|
+
message: `Invalid cron expression: ${val}`
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}),
|
|
34
|
+
tz: optionalTrimmedString(100),
|
|
35
|
+
staggerMs: z.number().int().nonnegative().optional()
|
|
36
|
+
}).strict()
|
|
37
|
+
]);
|
|
38
|
+
const CronDeliverySchema = z.discriminatedUnion("mode", [
|
|
39
|
+
z.object({ mode: z.literal("none") }).strict(),
|
|
40
|
+
z.object({
|
|
41
|
+
mode: z.literal("announce"),
|
|
42
|
+
channel: optionalTrimmedString(32),
|
|
43
|
+
to: optionalTrimmedString(200),
|
|
44
|
+
accountId: optionalTrimmedString(100),
|
|
45
|
+
threadId: z.union([z.string(), z.number()]).optional(),
|
|
46
|
+
bestEffort: z.boolean().optional(),
|
|
47
|
+
completionDestination: z.object({
|
|
48
|
+
mode: z.literal("webhook"),
|
|
49
|
+
to: nonEmptyString
|
|
50
|
+
}).strict().optional(),
|
|
51
|
+
failureDestination: z.object({
|
|
52
|
+
mode: z.enum(["announce", "webhook"]).optional(),
|
|
53
|
+
channel: optionalTrimmedString(32),
|
|
54
|
+
to: optionalTrimmedString(500),
|
|
55
|
+
accountId: optionalTrimmedString(100)
|
|
56
|
+
}).strict().optional()
|
|
57
|
+
}).strict(),
|
|
58
|
+
z.object({
|
|
59
|
+
mode: z.literal("webhook"),
|
|
60
|
+
to: nonEmptyString,
|
|
61
|
+
bestEffort: z.boolean().optional()
|
|
62
|
+
}).strict()
|
|
63
|
+
]);
|
|
69
64
|
const CronSystemEventPayloadSchema = z.object({
|
|
70
65
|
kind: z.literal("systemEvent"),
|
|
71
66
|
text: z.string().min(1).max(5e4)
|
|
72
|
-
});
|
|
67
|
+
}).strict();
|
|
73
68
|
const CronAgentTurnPayloadSchema = z.object({
|
|
74
69
|
kind: z.literal("agentTurn"),
|
|
75
70
|
message: z.string().min(1).max(5e4),
|
|
76
|
-
model: optionalTrimmedString(100
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
model: optionalTrimmedString(100),
|
|
72
|
+
thinking: optionalTrimmedString(50),
|
|
73
|
+
toolsAllow: z.array(z.string().trim().min(1)).optional(),
|
|
74
|
+
timeoutSeconds: z.number().int().min(1).max(86400).optional()
|
|
75
|
+
}).strict();
|
|
79
76
|
const CronGoalContinuePayloadSchema = z.object({
|
|
80
77
|
kind: z.literal("goalContinue"),
|
|
81
|
-
goalId:
|
|
82
|
-
message: optionalTrimmedString(5e4
|
|
78
|
+
goalId: nonEmptyString.max(100),
|
|
79
|
+
message: optionalTrimmedString(5e4),
|
|
83
80
|
maxRetries: z.number().int().min(0).max(10).optional()
|
|
84
|
-
});
|
|
81
|
+
}).strict();
|
|
85
82
|
const WorkflowRunInputEnvelopeSchema = z.object({
|
|
86
83
|
payload: z.unknown(),
|
|
87
|
-
goal: optionalTrimmedString(5e3
|
|
84
|
+
goal: optionalTrimmedString(5e3),
|
|
88
85
|
variables: z.record(z.string(), z.unknown()).optional(),
|
|
89
86
|
context: z.record(z.string(), z.unknown()).optional()
|
|
90
|
-
});
|
|
87
|
+
}).strict();
|
|
91
88
|
const CronWorkflowRunPayloadSchema = z.object({
|
|
92
89
|
kind: z.literal("workflowRun"),
|
|
93
|
-
definitionId:
|
|
90
|
+
definitionId: nonEmptyString.max(200),
|
|
94
91
|
input: z.unknown().optional(),
|
|
95
92
|
inputEnvelope: WorkflowRunInputEnvelopeSchema.optional(),
|
|
96
|
-
goal: optionalTrimmedString(5e3
|
|
97
|
-
agentId: optionalTrimmedString(64
|
|
98
|
-
sessionKey: optionalTrimmedString(300
|
|
93
|
+
goal: optionalTrimmedString(5e3),
|
|
94
|
+
agentId: optionalTrimmedString(64),
|
|
95
|
+
sessionKey: optionalTrimmedString(300),
|
|
96
|
+
maxRetries: z.number().int().min(0).max(10).optional(),
|
|
99
97
|
waitForCompletion: z.boolean().optional(),
|
|
100
98
|
source: z.object({
|
|
101
99
|
kind: z.literal("cron").optional(),
|
|
102
|
-
scheduleId: optionalTrimmedString(200
|
|
103
|
-
fireId: optionalTrimmedString(200
|
|
100
|
+
scheduleId: optionalTrimmedString(200),
|
|
101
|
+
fireId: optionalTrimmedString(200),
|
|
104
102
|
scheduledAtMs: z.number().int().nonnegative().optional()
|
|
105
|
-
}).optional()
|
|
106
|
-
});
|
|
107
|
-
const CronPayloadSchema = z.
|
|
103
|
+
}).strict().optional()
|
|
104
|
+
}).strict();
|
|
105
|
+
const CronPayloadSchema = z.discriminatedUnion("kind", [
|
|
108
106
|
CronSystemEventPayloadSchema,
|
|
109
107
|
CronAgentTurnPayloadSchema,
|
|
110
108
|
CronGoalContinuePayloadSchema,
|
|
111
109
|
CronWorkflowRunPayloadSchema
|
|
112
110
|
]);
|
|
113
|
-
const
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
111
|
+
const CronFailureAlertSchema = z.object({
|
|
112
|
+
after: z.number().int().min(1).optional(),
|
|
113
|
+
cooldownMs: z.number().int().nonnegative().optional(),
|
|
114
|
+
includeSkipped: z.boolean().optional(),
|
|
115
|
+
mode: z.enum(["announce", "webhook"]).optional(),
|
|
116
|
+
channel: optionalTrimmedString(32),
|
|
117
|
+
to: optionalTrimmedString(500),
|
|
118
|
+
accountId: optionalTrimmedString(100)
|
|
119
|
+
}).strict();
|
|
120
|
+
const JobStateSchema = z.object({
|
|
121
|
+
nextRunAtMs: z.number().int().nonnegative().optional(),
|
|
122
|
+
runningAtMs: z.number().int().nonnegative().optional(),
|
|
123
|
+
runningSessionKey: optionalTrimmedString(300),
|
|
124
|
+
lastRunAtMs: z.number().int().nonnegative().optional(),
|
|
125
|
+
lastRunStatus: z.enum([
|
|
126
|
+
"ok",
|
|
127
|
+
"error",
|
|
128
|
+
"skipped"
|
|
129
|
+
]).optional(),
|
|
130
|
+
lastError: z.string().optional(),
|
|
131
|
+
lastDurationMs: z.number().int().nonnegative().optional(),
|
|
132
|
+
consecutiveErrors: z.number().int().nonnegative().optional(),
|
|
133
|
+
consecutiveSkipped: z.number().int().nonnegative().optional(),
|
|
134
|
+
lastDeliveryStatus: z.enum([
|
|
135
|
+
"delivered",
|
|
136
|
+
"not-delivered",
|
|
137
|
+
"unknown",
|
|
138
|
+
"not-requested"
|
|
139
|
+
]).optional(),
|
|
140
|
+
lastDeliveryError: z.string().optional(),
|
|
141
|
+
lastFailureAlertAtMs: z.number().int().nonnegative().optional()
|
|
142
|
+
}).strict();
|
|
119
143
|
const JobDataSchema = z.object({
|
|
120
|
-
id:
|
|
121
|
-
name:
|
|
122
|
-
|
|
144
|
+
id: nonEmptyString.max(64),
|
|
145
|
+
name: nonEmptyString.max(200),
|
|
146
|
+
description: z.string().max(2e3).optional(),
|
|
123
147
|
enabled: z.boolean(),
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
agentId: optionalTrimmedString(64
|
|
136
|
-
|
|
148
|
+
deleteAfterRun: z.boolean().optional(),
|
|
149
|
+
createdAtMs: z.number().int().nonnegative(),
|
|
150
|
+
updatedAtMs: z.number().int().nonnegative(),
|
|
151
|
+
schedule: CronScheduleSchema,
|
|
152
|
+
sessionTarget: z.union([
|
|
153
|
+
z.literal("main"),
|
|
154
|
+
z.literal("isolated"),
|
|
155
|
+
z.literal("current"),
|
|
156
|
+
z.string().regex(/^session:.+$/)
|
|
157
|
+
]),
|
|
158
|
+
wakeMode: z.enum(["now", "next-heartbeat"]),
|
|
159
|
+
agentId: optionalTrimmedString(64),
|
|
160
|
+
sessionKey: optionalTrimmedString(300),
|
|
161
|
+
workingDirectory: optionalTrimmedString(4096),
|
|
137
162
|
payload: CronPayloadSchema,
|
|
138
163
|
delivery: CronDeliverySchema.optional(),
|
|
139
|
-
|
|
140
|
-
state:
|
|
164
|
+
failureAlert: z.union([z.literal(false), CronFailureAlertSchema]).optional(),
|
|
165
|
+
state: JobStateSchema.default({})
|
|
141
166
|
}).strict();
|
|
142
|
-
const AddJobRequestSchema =
|
|
143
|
-
|
|
144
|
-
name:
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
sessionTarget:
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
});
|
|
155
|
-
const UpdateJobRequestSchema = z.object({
|
|
156
|
-
name: z.string().max(100).optional(),
|
|
157
|
-
schedule: cronExpression.optional(),
|
|
158
|
-
timezone: z.string().optional(),
|
|
159
|
-
maxRetries: z.number().int().min(0).max(10).optional(),
|
|
160
|
-
timeout: z.number().int().min(1e3).max(72e5).optional(),
|
|
167
|
+
const AddJobRequestSchema = JobDataSchema.omit({
|
|
168
|
+
id: true,
|
|
169
|
+
name: true,
|
|
170
|
+
enabled: true,
|
|
171
|
+
createdAtMs: true,
|
|
172
|
+
updatedAtMs: true,
|
|
173
|
+
sessionTarget: true,
|
|
174
|
+
wakeMode: true,
|
|
175
|
+
state: true
|
|
176
|
+
}).extend({
|
|
177
|
+
id: optionalTrimmedString(64),
|
|
178
|
+
name: optionalTrimmedString(200),
|
|
161
179
|
enabled: z.boolean().optional(),
|
|
162
|
-
sessionTarget:
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
180
|
+
sessionTarget: JobDataSchema.shape.sessionTarget.optional(),
|
|
181
|
+
wakeMode: JobDataSchema.shape.wakeMode.optional(),
|
|
182
|
+
state: JobStateSchema.partial().optional()
|
|
183
|
+
});
|
|
184
|
+
const UpdateJobRequestSchema = JobDataSchema.omit({
|
|
185
|
+
id: true,
|
|
186
|
+
createdAtMs: true,
|
|
187
|
+
updatedAtMs: true
|
|
188
|
+
}).partial().refine((data) => Object.keys(data).length > 0, { message: "At least one field must be provided for update" });
|
|
169
189
|
//#endregion
|
|
170
|
-
export { AddJobRequestSchema, JobDataSchema,
|
|
190
|
+
export { AddJobRequestSchema, CronDeliverySchema, CronFailureAlertSchema, CronPayloadSchema, CronScheduleSchema, JobDataSchema, JobStateSchema, UpdateJobRequestSchema };
|
|
171
191
|
|
|
172
192
|
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","names":[],"sources":["../../../src/cron/validation.ts"],"sourcesContent":["// Cron input validation using Zod\nimport { z } from 'zod';\nimport nodeCron from 'node-cron';\n\n// Custom cron validation\nconst cronExpression = z.string().superRefine((val, ctx) => {\n if (!nodeCron.validate(val)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Invalid cron expression: ${val}`,\n });\n }\n});\n\n// Valid timezones (subset of IANA timezones)\nconst validTimezones = [\n 'UTC',\n 'America/New_York',\n 'America/Chicago',\n 'America/Denver',\n 'America/Los_Angeles',\n 'America/Toronto',\n 'Europe/London',\n 'Europe/Paris',\n 'Europe/Berlin',\n 'Europe/Moscow',\n 'Asia/Tokyo',\n 'Asia/Shanghai',\n 'Asia/Hong_Kong',\n 'Asia/Singapore',\n 'Asia/Seoul',\n 'Asia/Dubai',\n 'Asia/Mumbai',\n 'Australia/Sydney',\n 'Pacific/Auckland',\n];\n\nconst CronDeliveryMode = z.enum(['none', 'announce', 'direct']);\n\n/** Treat `''` / `null` / whitespace-only as absent so optional fields do not fail `.min(1)` */\nfunction optionalTrimmedString(max: number, min = 1) {\n return z.preprocess((v) => {\n if (v === null || v === undefined) return undefined;\n if (typeof v !== 'string') return v;\n const t = v.trim();\n return t.length === 0 ? undefined : t;\n }, z.string().min(min).max(max).optional());\n}\n\n/** Optional agent id on create; empty string → undefined. */\nconst optionalJobAgentId = optionalTrimmedString(64, 1);\n\n/** Optional absolute workspace path on create; empty string → undefined. */\nconst optionalJobWorkingDirectory = optionalTrimmedString(4096, 1);\n\n/**\n * PATCH: set string, or `null` / empty to clear `workingDirectory` on the job.\n */\nconst patchJobWorkingDirectory = z.preprocess((v) => {\n if (v === null) return null;\n if (v === undefined) return undefined;\n if (typeof v !== 'string') return v;\n const t = v.trim();\n return t.length === 0 ? null : t;\n}, z.union([z.string().min(1).max(4096), z.null()]).optional());\n\n/**\n * PATCH: set string, or `null` / empty to clear `agentId` on the job.\n */\nconst patchJobAgentId = z.preprocess((v) => {\n if (v === null) return null;\n if (v === undefined) return undefined;\n if (typeof v !== 'string') return v;\n const t = v.trim();\n return t.length === 0 ? null : t;\n}, z.union([z.string().min(1).max(64), z.null()]).optional());\n\n// CronPayload validation\nconst CronSystemEventPayloadSchema = z.object({\n kind: z.literal('systemEvent'),\n text: z.string().min(1).max(50000),\n});\n\nconst CronAgentTurnPayloadSchema = z.object({\n kind: z.literal('agentTurn'),\n message: z.string().min(1).max(50000),\n model: optionalTrimmedString(100, 1),\n timeoutSeconds: z.number().int().min(10).max(3600).optional(),\n});\n\nconst CronGoalContinuePayloadSchema = z.object({\n kind: z.literal('goalContinue'),\n goalId: z.string().min(1).max(100),\n message: optionalTrimmedString(50000, 1),\n maxRetries: z.number().int().min(0).max(10).optional(),\n});\n\nconst WorkflowRunInputEnvelopeSchema = z.object({\n payload: z.unknown(),\n goal: optionalTrimmedString(5000, 1),\n variables: z.record(z.string(), z.unknown()).optional(),\n context: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst CronWorkflowRunPayloadSchema = z.object({\n kind: z.literal('workflowRun'),\n definitionId: z.string().min(1).max(200),\n input: z.unknown().optional(),\n inputEnvelope: WorkflowRunInputEnvelopeSchema.optional(),\n goal: optionalTrimmedString(5000, 1),\n agentId: optionalTrimmedString(64, 1),\n sessionKey: optionalTrimmedString(300, 1),\n waitForCompletion: z.boolean().optional(),\n source: z.object({\n kind: z.literal('cron').optional(),\n scheduleId: optionalTrimmedString(200, 1),\n fireId: optionalTrimmedString(200, 1),\n scheduledAtMs: z.number().int().nonnegative().optional(),\n }).optional(),\n});\n\nconst CronPayloadSchema = z.union([\n CronSystemEventPayloadSchema,\n CronAgentTurnPayloadSchema,\n CronGoalContinuePayloadSchema,\n CronWorkflowRunPayloadSchema,\n]);\n\n// CronDelivery validation — channel must match gateway UI / message bus ids (telegram, weixin, cli, local, …)\nconst CronDeliverySchema = z.object({\n mode: CronDeliveryMode.default('none'),\n channel: optionalTrimmedString(32, 1),\n to: z.preprocess(\n (v) => (v === '' || v === null || v === undefined ? undefined : v),\n z.string().max(100).optional(),\n ),\n bestEffort: z.boolean().optional(),\n});\n\nexport const JobDataSchema = z\n .object({\n id: z.string().min(1).max(32),\n name: z.string().max(100).optional(),\n schedule: cronExpression,\n enabled: z.boolean(),\n timezone: z.string().superRefine((val, ctx) => {\n if (val && !validTimezones.includes(val)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Invalid timezone: ${val}. Use IANA timezone names.`,\n });\n }\n }).optional(),\n maxRetries: z.number().int().min(0).max(10).default(3),\n timeout: z.number().int().min(1000).max(7_200_000).default(180000),\n created_at: z.string().datetime(),\n updated_at: z.string().datetime(),\n sessionTarget: z.enum(['main', 'isolated']).optional(),\n agentId: optionalTrimmedString(64, 1),\n workingDirectory: optionalJobWorkingDirectory,\n payload: CronPayloadSchema,\n delivery: CronDeliverySchema.optional(),\n model: optionalTrimmedString(100, 1),\n state: z.any().optional(),\n })\n .strict();\n\nexport const AddJobRequestSchema = z.object({\n schedule: cronExpression,\n name: z.string().max(100).optional(),\n timezone: z.string().optional(),\n maxRetries: z.number().int().min(0).max(10).optional(),\n timeout: z.number().int().min(1000).max(7_200_000).optional(),\n sessionTarget: z.enum(['main', 'isolated']).optional(),\n agentId: optionalJobAgentId,\n workingDirectory: optionalJobWorkingDirectory,\n payload: CronPayloadSchema,\n delivery: CronDeliverySchema.optional(),\n model: optionalTrimmedString(100, 1),\n});\n\nexport const UpdateJobRequestSchema = z.object({\n name: z.string().max(100).optional(),\n schedule: cronExpression.optional(),\n timezone: z.string().optional(),\n maxRetries: z.number().int().min(0).max(10).optional(),\n timeout: z.number().int().min(1000).max(7_200_000).optional(),\n enabled: z.boolean().optional(),\n sessionTarget: z.enum(['main', 'isolated']).optional(),\n agentId: patchJobAgentId,\n workingDirectory: patchJobWorkingDirectory,\n payload: CronPayloadSchema.optional(),\n delivery: CronDeliverySchema.optional(),\n model: optionalTrimmedString(100, 1),\n}).refine(\n (data) => Object.keys(data).length > 0,\n { message: 'At least one field must be provided for update' }\n);\n\nexport type ValidatedJobData = z.infer<typeof JobDataSchema>;\nexport type ValidatedAddJobRequest = z.infer<typeof AddJobRequestSchema>;\nexport type ValidatedUpdateJobRequest = z.infer<typeof UpdateJobRequestSchema>;\nexport type ValidatedCronPayload = z.infer<typeof CronPayloadSchema>;\nexport type ValidatedCronDelivery = z.infer<typeof CronDeliverySchema>;\n\n// Re-export common validation helpers\nexport { cronExpression };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validation.js","names":[],"sources":["../../../src/cron/validation.ts"],"sourcesContent":["import { CronExpressionParser } from 'cron-parser';\nimport { z } from 'zod';\n\nconst nonEmptyString = z.string().trim().min(1);\n\nconst optionalTrimmedString = (max: number) =>\n z.preprocess((v) => {\n if (v === undefined) return undefined;\n if (v === null) return v;\n if (typeof v !== 'string') return v;\n const t = v.trim();\n return t.length === 0 ? undefined : t;\n }, z.string().min(1).max(max).optional());\n\nexport const CronScheduleSchema = z.discriminatedUnion('kind', [\n z.object({\n kind: z.literal('at'),\n at: nonEmptyString,\n }).strict(),\n z.object({\n kind: z.literal('every'),\n everyMs: z.number().int().min(1),\n anchorMs: z.number().int().nonnegative().optional(),\n }).strict(),\n z.object({\n kind: z.literal('cron'),\n expr: nonEmptyString.superRefine((val, ctx) => {\n try {\n CronExpressionParser.parse(val);\n } catch {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Invalid cron expression: ${val}`,\n });\n }\n }),\n tz: optionalTrimmedString(100),\n staggerMs: z.number().int().nonnegative().optional(),\n }).strict(),\n]);\n\nexport const CronDeliverySchema = z.discriminatedUnion('mode', [\n z.object({ mode: z.literal('none') }).strict(),\n z.object({\n mode: z.literal('announce'),\n channel: optionalTrimmedString(32),\n to: optionalTrimmedString(200),\n accountId: optionalTrimmedString(100),\n threadId: z.union([z.string(), z.number()]).optional(),\n bestEffort: z.boolean().optional(),\n completionDestination: z.object({\n mode: z.literal('webhook'),\n to: nonEmptyString,\n }).strict().optional(),\n failureDestination: z.object({\n mode: z.enum(['announce', 'webhook']).optional(),\n channel: optionalTrimmedString(32),\n to: optionalTrimmedString(500),\n accountId: optionalTrimmedString(100),\n }).strict().optional(),\n }).strict(),\n z.object({\n mode: z.literal('webhook'),\n to: nonEmptyString,\n bestEffort: z.boolean().optional(),\n }).strict(),\n]);\n\nconst CronSystemEventPayloadSchema = z.object({\n kind: z.literal('systemEvent'),\n text: z.string().min(1).max(50000),\n}).strict();\n\nconst CronAgentTurnPayloadSchema = z.object({\n kind: z.literal('agentTurn'),\n message: z.string().min(1).max(50000),\n model: optionalTrimmedString(100),\n thinking: optionalTrimmedString(50),\n toolsAllow: z.array(z.string().trim().min(1)).optional(),\n timeoutSeconds: z.number().int().min(1).max(86400).optional(),\n}).strict();\n\nconst CronGoalContinuePayloadSchema = z.object({\n kind: z.literal('goalContinue'),\n goalId: nonEmptyString.max(100),\n message: optionalTrimmedString(50000),\n maxRetries: z.number().int().min(0).max(10).optional(),\n}).strict();\n\nconst WorkflowRunInputEnvelopeSchema = z.object({\n payload: z.unknown(),\n goal: optionalTrimmedString(5000),\n variables: z.record(z.string(), z.unknown()).optional(),\n context: z.record(z.string(), z.unknown()).optional(),\n}).strict();\n\nconst CronWorkflowRunPayloadSchema = z.object({\n kind: z.literal('workflowRun'),\n definitionId: nonEmptyString.max(200),\n input: z.unknown().optional(),\n inputEnvelope: WorkflowRunInputEnvelopeSchema.optional(),\n goal: optionalTrimmedString(5000),\n agentId: optionalTrimmedString(64),\n sessionKey: optionalTrimmedString(300),\n maxRetries: z.number().int().min(0).max(10).optional(),\n waitForCompletion: z.boolean().optional(),\n source: z.object({\n kind: z.literal('cron').optional(),\n scheduleId: optionalTrimmedString(200),\n fireId: optionalTrimmedString(200),\n scheduledAtMs: z.number().int().nonnegative().optional(),\n }).strict().optional(),\n}).strict();\n\nexport const CronPayloadSchema = z.discriminatedUnion('kind', [\n CronSystemEventPayloadSchema,\n CronAgentTurnPayloadSchema,\n CronGoalContinuePayloadSchema,\n CronWorkflowRunPayloadSchema,\n]);\n\nexport const CronFailureAlertSchema = z.object({\n after: z.number().int().min(1).optional(),\n cooldownMs: z.number().int().nonnegative().optional(),\n includeSkipped: z.boolean().optional(),\n mode: z.enum(['announce', 'webhook']).optional(),\n channel: optionalTrimmedString(32),\n to: optionalTrimmedString(500),\n accountId: optionalTrimmedString(100),\n}).strict();\n\nexport const JobStateSchema = z.object({\n nextRunAtMs: z.number().int().nonnegative().optional(),\n runningAtMs: z.number().int().nonnegative().optional(),\n runningSessionKey: optionalTrimmedString(300),\n lastRunAtMs: z.number().int().nonnegative().optional(),\n lastRunStatus: z.enum(['ok', 'error', 'skipped']).optional(),\n lastError: z.string().optional(),\n lastDurationMs: z.number().int().nonnegative().optional(),\n consecutiveErrors: z.number().int().nonnegative().optional(),\n consecutiveSkipped: z.number().int().nonnegative().optional(),\n lastDeliveryStatus: z.enum(['delivered', 'not-delivered', 'unknown', 'not-requested']).optional(),\n lastDeliveryError: z.string().optional(),\n lastFailureAlertAtMs: z.number().int().nonnegative().optional(),\n}).strict();\n\nexport const JobDataSchema = z.object({\n id: nonEmptyString.max(64),\n name: nonEmptyString.max(200),\n description: z.string().max(2000).optional(),\n enabled: z.boolean(),\n deleteAfterRun: z.boolean().optional(),\n createdAtMs: z.number().int().nonnegative(),\n updatedAtMs: z.number().int().nonnegative(),\n schedule: CronScheduleSchema,\n sessionTarget: z.union([\n z.literal('main'),\n z.literal('isolated'),\n z.literal('current'),\n z.string().regex(/^session:.+$/),\n ]),\n wakeMode: z.enum(['now', 'next-heartbeat']),\n agentId: optionalTrimmedString(64),\n sessionKey: optionalTrimmedString(300),\n workingDirectory: optionalTrimmedString(4096),\n payload: CronPayloadSchema,\n delivery: CronDeliverySchema.optional(),\n failureAlert: z.union([z.literal(false), CronFailureAlertSchema]).optional(),\n state: JobStateSchema.default({}),\n}).strict();\n\nexport const AddJobRequestSchema = JobDataSchema.omit({\n id: true,\n name: true,\n enabled: true,\n createdAtMs: true,\n updatedAtMs: true,\n sessionTarget: true,\n wakeMode: true,\n state: true,\n}).extend({\n id: optionalTrimmedString(64),\n name: optionalTrimmedString(200),\n enabled: z.boolean().optional(),\n sessionTarget: JobDataSchema.shape.sessionTarget.optional(),\n wakeMode: JobDataSchema.shape.wakeMode.optional(),\n state: JobStateSchema.partial().optional(),\n});\n\nexport const UpdateJobRequestSchema = JobDataSchema.omit({\n id: true,\n createdAtMs: true,\n updatedAtMs: true,\n}).partial().refine(\n (data) => Object.keys(data).length > 0,\n { message: 'At least one field must be provided for update' },\n);\n\nexport type ValidatedJobData = z.infer<typeof JobDataSchema>;\nexport type ValidatedAddJobRequest = z.infer<typeof AddJobRequestSchema>;\nexport type ValidatedUpdateJobRequest = z.infer<typeof UpdateJobRequestSchema>;\nexport type ValidatedCronPayload = z.infer<typeof CronPayloadSchema>;\nexport type ValidatedCronDelivery = z.infer<typeof CronDeliverySchema>;\n"],"mappings":";;;AAGA,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;AAE/C,MAAM,yBAAyB,QAC7B,EAAE,YAAY,MAAM;AAClB,KAAI,MAAM,KAAA,EAAW,QAAO,KAAA;AAC5B,KAAI,MAAM,KAAM,QAAO;AACvB,KAAI,OAAO,MAAM,SAAU,QAAO;CAClC,MAAM,IAAI,EAAE,MAAM;AAClB,QAAO,EAAE,WAAW,IAAI,KAAA,IAAY;GACnC,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;AAE3C,MAAa,qBAAqB,EAAE,mBAAmB,QAAQ;CAC7D,EAAE,OAAO;EACP,MAAM,EAAE,QAAQ,KAAK;EACrB,IAAI;EACL,CAAC,CAAC,QAAQ;CACX,EAAE,OAAO;EACP,MAAM,EAAE,QAAQ,QAAQ;EACxB,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE;EAChC,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU;EACpD,CAAC,CAAC,QAAQ;CACX,EAAE,OAAO;EACP,MAAM,EAAE,QAAQ,OAAO;EACvB,MAAM,eAAe,aAAa,KAAK,QAAQ;AAC7C,OAAI;AACF,yBAAqB,MAAM,IAAI;WACzB;AACN,QAAI,SAAS;KACX,MAAM,EAAE,aAAa;KACrB,SAAS,4BAA4B;KACtC,CAAC;;IAEJ;EACF,IAAI,sBAAsB,IAAI;EAC9B,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU;EACrD,CAAC,CAAC,QAAQ;CACZ,CAAC;AAEF,MAAa,qBAAqB,EAAE,mBAAmB,QAAQ;CAC7D,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,OAAO,EAAE,CAAC,CAAC,QAAQ;CAC9C,EAAE,OAAO;EACP,MAAM,EAAE,QAAQ,WAAW;EAC3B,SAAS,sBAAsB,GAAG;EAClC,IAAI,sBAAsB,IAAI;EAC9B,WAAW,sBAAsB,IAAI;EACrC,UAAU,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU;EACtD,YAAY,EAAE,SAAS,CAAC,UAAU;EAClC,uBAAuB,EAAE,OAAO;GAC9B,MAAM,EAAE,QAAQ,UAAU;GAC1B,IAAI;GACL,CAAC,CAAC,QAAQ,CAAC,UAAU;EACtB,oBAAoB,EAAE,OAAO;GAC3B,MAAM,EAAE,KAAK,CAAC,YAAY,UAAU,CAAC,CAAC,UAAU;GAChD,SAAS,sBAAsB,GAAG;GAClC,IAAI,sBAAsB,IAAI;GAC9B,WAAW,sBAAsB,IAAI;GACtC,CAAC,CAAC,QAAQ,CAAC,UAAU;EACvB,CAAC,CAAC,QAAQ;CACX,EAAE,OAAO;EACP,MAAM,EAAE,QAAQ,UAAU;EAC1B,IAAI;EACJ,YAAY,EAAE,SAAS,CAAC,UAAU;EACnC,CAAC,CAAC,QAAQ;CACZ,CAAC;AAEF,MAAM,+BAA+B,EAAE,OAAO;CAC5C,MAAM,EAAE,QAAQ,cAAc;CAC9B,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAM;CACnC,CAAC,CAAC,QAAQ;AAEX,MAAM,6BAA6B,EAAE,OAAO;CAC1C,MAAM,EAAE,QAAQ,YAAY;CAC5B,SAAS,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAM;CACrC,OAAO,sBAAsB,IAAI;CACjC,UAAU,sBAAsB,GAAG;CACnC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU;CACxD,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,UAAU;CAC9D,CAAC,CAAC,QAAQ;AAEX,MAAM,gCAAgC,EAAE,OAAO;CAC7C,MAAM,EAAE,QAAQ,eAAe;CAC/B,QAAQ,eAAe,IAAI,IAAI;CAC/B,SAAS,sBAAsB,IAAM;CACrC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU;CACvD,CAAC,CAAC,QAAQ;AAEX,MAAM,iCAAiC,EAAE,OAAO;CAC9C,SAAS,EAAE,SAAS;CACpB,MAAM,sBAAsB,IAAK;CACjC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC,UAAU;CACvD,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC,UAAU;CACtD,CAAC,CAAC,QAAQ;AAEX,MAAM,+BAA+B,EAAE,OAAO;CAC5C,MAAM,EAAE,QAAQ,cAAc;CAC9B,cAAc,eAAe,IAAI,IAAI;CACrC,OAAO,EAAE,SAAS,CAAC,UAAU;CAC7B,eAAe,+BAA+B,UAAU;CACxD,MAAM,sBAAsB,IAAK;CACjC,SAAS,sBAAsB,GAAG;CAClC,YAAY,sBAAsB,IAAI;CACtC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU;CACtD,mBAAmB,EAAE,SAAS,CAAC,UAAU;CACzC,QAAQ,EAAE,OAAO;EACf,MAAM,EAAE,QAAQ,OAAO,CAAC,UAAU;EAClC,YAAY,sBAAsB,IAAI;EACtC,QAAQ,sBAAsB,IAAI;EAClC,eAAe,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU;EACzD,CAAC,CAAC,QAAQ,CAAC,UAAU;CACvB,CAAC,CAAC,QAAQ;AAEX,MAAa,oBAAoB,EAAE,mBAAmB,QAAQ;CAC5D;CACA;CACA;CACA;CACD,CAAC;AAEF,MAAa,yBAAyB,EAAE,OAAO;CAC7C,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU;CACzC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU;CACrD,gBAAgB,EAAE,SAAS,CAAC,UAAU;CACtC,MAAM,EAAE,KAAK,CAAC,YAAY,UAAU,CAAC,CAAC,UAAU;CAChD,SAAS,sBAAsB,GAAG;CAClC,IAAI,sBAAsB,IAAI;CAC9B,WAAW,sBAAsB,IAAI;CACtC,CAAC,CAAC,QAAQ;AAEX,MAAa,iBAAiB,EAAE,OAAO;CACrC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU;CACtD,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU;CACtD,mBAAmB,sBAAsB,IAAI;CAC7C,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU;CACtD,eAAe,EAAE,KAAK;EAAC;EAAM;EAAS;EAAU,CAAC,CAAC,UAAU;CAC5D,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU;CACzD,mBAAmB,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU;CAC5D,oBAAoB,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU;CAC7D,oBAAoB,EAAE,KAAK;EAAC;EAAa;EAAiB;EAAW;EAAgB,CAAC,CAAC,UAAU;CACjG,mBAAmB,EAAE,QAAQ,CAAC,UAAU;CACxC,sBAAsB,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU;CAChE,CAAC,CAAC,QAAQ;AAEX,MAAa,gBAAgB,EAAE,OAAO;CACpC,IAAI,eAAe,IAAI,GAAG;CAC1B,MAAM,eAAe,IAAI,IAAI;CAC7B,aAAa,EAAE,QAAQ,CAAC,IAAI,IAAK,CAAC,UAAU;CAC5C,SAAS,EAAE,SAAS;CACpB,gBAAgB,EAAE,SAAS,CAAC,UAAU;CACtC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;CAC3C,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;CAC3C,UAAU;CACV,eAAe,EAAE,MAAM;EACrB,EAAE,QAAQ,OAAO;EACjB,EAAE,QAAQ,WAAW;EACrB,EAAE,QAAQ,UAAU;EACpB,EAAE,QAAQ,CAAC,MAAM,eAAe;EACjC,CAAC;CACF,UAAU,EAAE,KAAK,CAAC,OAAO,iBAAiB,CAAC;CAC3C,SAAS,sBAAsB,GAAG;CAClC,YAAY,sBAAsB,IAAI;CACtC,kBAAkB,sBAAsB,KAAK;CAC7C,SAAS;CACT,UAAU,mBAAmB,UAAU;CACvC,cAAc,EAAE,MAAM,CAAC,EAAE,QAAQ,MAAM,EAAE,uBAAuB,CAAC,CAAC,UAAU;CAC5E,OAAO,eAAe,QAAQ,EAAE,CAAC;CAClC,CAAC,CAAC,QAAQ;AAEX,MAAa,sBAAsB,cAAc,KAAK;CACpD,IAAI;CACJ,MAAM;CACN,SAAS;CACT,aAAa;CACb,aAAa;CACb,eAAe;CACf,UAAU;CACV,OAAO;CACR,CAAC,CAAC,OAAO;CACR,IAAI,sBAAsB,GAAG;CAC7B,MAAM,sBAAsB,IAAI;CAChC,SAAS,EAAE,SAAS,CAAC,UAAU;CAC/B,eAAe,cAAc,MAAM,cAAc,UAAU;CAC3D,UAAU,cAAc,MAAM,SAAS,UAAU;CACjD,OAAO,eAAe,SAAS,CAAC,UAAU;CAC3C,CAAC;AAEF,MAAa,yBAAyB,cAAc,KAAK;CACvD,IAAI;CACJ,aAAa;CACb,aAAa;CACd,CAAC,CAAC,SAAS,CAAC,QACV,SAAS,OAAO,KAAK,KAAK,CAAC,SAAS,GACrC,EAAE,SAAS,kDAAkD,CAC9D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { renderWorkflowText } from "../agent/workflow/snapshot.js";
|
|
2
|
+
import { runViewToSnapshot } from "../workflows/service/run-view-to-snapshot.js";
|
|
2
3
|
import { isTerminalWorkflowRunStatus } from "../workflows/domain/run.js";
|
|
3
4
|
import "../workflows/domain/index.js";
|
|
4
|
-
import { runViewToSnapshot } from "../workflows/service/run-view-to-snapshot.js";
|
|
5
5
|
//#region src/cron/workflow-run-completion.ts
|
|
6
6
|
/** Default wait budget for cron workflow runs (35 minutes). */
|
|
7
7
|
const DEFAULT_WORKFLOW_CRON_WAIT_MS = 2100 * 1e3;
|
|
@@ -2,9 +2,9 @@ import { PACKAGE_VERSION, init_package_version } from "../package-version.js";
|
|
|
2
2
|
import { createLogger } from "../utils/logger/index.js";
|
|
3
3
|
import { init_logger } from "../utils/logger.js";
|
|
4
4
|
import { SERVICE_VERSION_ENV_KEY, formatGatewayServiceDescription } from "./constants.js";
|
|
5
|
-
import { homedir } from "node:os";
|
|
6
|
-
import path from "node:path";
|
|
7
5
|
import { existsSync } from "node:fs";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
import { homedir } from "node:os";
|
|
8
8
|
//#region src/daemon/install-plan.ts
|
|
9
9
|
/**
|
|
10
10
|
* Install Plan Builder - Build gateway installation configuration
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createLogger } from "../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../utils/logger.js";
|
|
3
3
|
import { resolveGatewayLaunchAgentLabel, resolveLaunchAgentPlistPath as resolveLaunchAgentPlistPath$1 } from "./constants.js";
|
|
4
|
-
import os from "node:os";
|
|
5
|
-
import path from "node:path";
|
|
6
4
|
import { existsSync } from "node:fs";
|
|
7
5
|
import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
import os from "node:os";
|
|
8
8
|
import { spawn, spawnSync } from "node:child_process";
|
|
9
9
|
//#region src/daemon/launchd.ts
|
|
10
10
|
/**
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createLogger } from "../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../utils/logger.js";
|
|
3
3
|
import { resolveGatewayWindowsTaskName } from "./constants.js";
|
|
4
|
-
import os from "node:os";
|
|
5
|
-
import path from "node:path";
|
|
6
4
|
import { mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import os from "node:os";
|
|
7
7
|
import { spawn, spawnSync } from "node:child_process";
|
|
8
8
|
//#region src/daemon/schtasks.ts
|
|
9
9
|
/**
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createLogger } from "../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../utils/logger.js";
|
|
3
3
|
import { resolveGatewaySystemdServiceName, resolveSystemdUnitPath } from "./constants.js";
|
|
4
|
-
import os from "node:os";
|
|
5
|
-
import path from "node:path";
|
|
6
4
|
import { existsSync } from "node:fs";
|
|
7
5
|
import { access, constants as constants$1, mkdir, readFile, rm, writeFile } from "node:fs/promises";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
import os from "node:os";
|
|
8
8
|
import { spawn, spawnSync } from "node:child_process";
|
|
9
9
|
//#region src/daemon/systemd.ts
|
|
10
10
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { init_paths, resolveBundledExtensionsDir, resolveExtensionsDir } from "../config/paths.js";
|
|
2
2
|
import { isRecord } from "../utils/is-record.js";
|
|
3
3
|
import { normalizeConfiguredMcpServers } from "../config/mcp-config-normalize.js";
|
|
4
|
-
import { join } from "node:path";
|
|
5
4
|
import { existsSync, readFileSync, readdirSync } from "node:fs";
|
|
5
|
+
import { join } from "node:path";
|
|
6
6
|
//#region src/extensions/bundle-mcp.ts
|
|
7
7
|
init_paths();
|
|
8
8
|
function extractMcpServerMap(raw) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { init_agent_scope, resolveDefaultAgentId } from "../agent/agent-scope.js";
|
|
3
|
+
import { init_paths, resolveBundledExtensionsDir, resolveExtensionsDir, resolveWorkspaceExtensionsDir } from "../config/paths.js";
|
|
3
4
|
import { createLogger } from "../utils/logger/index.js";
|
|
4
5
|
import { init_logger } from "../utils/logger.js";
|
|
5
|
-
import { init_paths, resolveBundledExtensionsDir, resolveExtensionsDir, resolveWorkspaceExtensionsDir } from "../config/paths.js";
|
|
6
6
|
import { init_normalize_manifest, normalizeExtensionManifest } from "./normalize-manifest.js";
|
|
7
|
-
import { join } from "path";
|
|
8
7
|
import { existsSync, readFileSync, readdirSync } from "fs";
|
|
8
|
+
import { join } from "path";
|
|
9
9
|
//#region src/extensions/discover-extensions.ts
|
|
10
10
|
/**
|
|
11
11
|
* Filesystem-only extension discovery (manifest parse, no module load).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { init_paths, resolveExtensionsDir } from "../config/paths.js";
|
|
2
2
|
import { getExtensionLockfileManager } from "./lockfile.js";
|
|
3
|
-
import { join } from "path";
|
|
4
3
|
import { existsSync } from "fs";
|
|
4
|
+
import { join } from "path";
|
|
5
5
|
import { readFile, readdir } from "fs/promises";
|
|
6
6
|
//#region src/extensions/health.ts
|
|
7
7
|
init_paths();
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { PACKAGE_VERSION, init_package_version } from "../package-version.js";
|
|
2
|
+
import { init_paths, resolveBundledExtensionsDir, resolveExtensionsDir as resolveExtensionsDir$1 } from "../config/paths.js";
|
|
2
3
|
import { createLogger } from "../utils/logger/index.js";
|
|
3
4
|
import { init_logger } from "../utils/logger.js";
|
|
4
|
-
import { init_paths, resolveBundledExtensionsDir, resolveExtensionsDir as resolveExtensionsDir$1 } from "../config/paths.js";
|
|
5
5
|
import { checkEngineCompatibility } from "./engine-check.js";
|
|
6
6
|
import { collectExtensionPackageDependencyIssues } from "./package-contract.js";
|
|
7
7
|
import { MAX_EXTENSION_STORE_ZIP_BYTES } from "./store-zip-limits.js";
|
|
8
|
-
import { dirname, isAbsolute, join, resolve, sep } from "path";
|
|
9
8
|
import { cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, writeFileSync } from "fs";
|
|
10
9
|
import { execSync } from "child_process";
|
|
10
|
+
import { dirname, isAbsolute, join, resolve, sep } from "path";
|
|
11
11
|
import { tmpdir } from "os";
|
|
12
12
|
import AdmZip from "adm-zip";
|
|
13
13
|
//#region src/extensions/install.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { PACKAGE_VERSION, init_package_version } from "../package-version.js";
|
|
2
2
|
import { init_agent_scope, resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agent/agent-scope.js";
|
|
3
|
+
import { init_paths, resolveBundledExtensionsDir, resolveExtensionSdkPath, resolveExtensionsDir, resolveWorkspaceExtensionsDir } from "../config/paths.js";
|
|
3
4
|
import { createLogger, createServiceLogger } from "../utils/logger/index.js";
|
|
4
5
|
import { init_logger } from "../utils/logger.js";
|
|
5
|
-
import { init_paths, resolveBundledExtensionsDir, resolveExtensionSdkPath, resolveExtensionsDir, resolveWorkspaceExtensionsDir } from "../config/paths.js";
|
|
6
6
|
import { init_normalize_manifest, normalizeExtensionManifest } from "./normalize-manifest.js";
|
|
7
7
|
import { areExtensionsGloballyDisabled, discoverExtensionsFromDisk, init_discover_extensions } from "./discover-extensions.js";
|
|
8
8
|
import { ManifestRegistry, init_manifest_registry } from "./manifest-registry.js";
|
|
@@ -18,8 +18,8 @@ import { validateMediaUnderstandingProviderContracts } from "./media-provider-co
|
|
|
18
18
|
import { DEFAULT_SECURITY_CONFIG, checkExtensionPathSafety, isExtensionAllowed, logSecurityIssue, provenanceTracker } from "./security.js";
|
|
19
19
|
import { getSlotRegistry } from "./slots.js";
|
|
20
20
|
import { getExtensionCache, getExtensionDiagnostics } from "./diagnostics.js";
|
|
21
|
-
import { dirname, isAbsolute, join } from "path";
|
|
22
21
|
import { existsSync, readFileSync } from "fs";
|
|
22
|
+
import { dirname, isAbsolute, join } from "path";
|
|
23
23
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
24
24
|
import { createJiti } from "jiti";
|
|
25
25
|
//#region src/extensions/loader.ts
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { init_write_file_atomic, writeTextAtomic } from "../infra/write-file-atomic.js";
|
|
2
|
+
import { init_paths, resolveExtensionsDir, resolveExtensionsLockPath } from "../config/paths.js";
|
|
1
3
|
import { createLogger } from "../utils/logger/index.js";
|
|
2
4
|
import { init_logger } from "../utils/logger.js";
|
|
3
|
-
import { init_paths, resolveExtensionsDir, resolveExtensionsLockPath } from "../config/paths.js";
|
|
4
|
-
import { init_write_file_atomic, writeTextAtomic } from "../infra/write-file-atomic.js";
|
|
5
|
-
import { dirname, join } from "path";
|
|
6
5
|
import { existsSync } from "fs";
|
|
6
|
+
import { dirname, join } from "path";
|
|
7
7
|
import { mkdir, readFile } from "fs/promises";
|
|
8
8
|
import { createHash } from "crypto";
|
|
9
9
|
//#region src/extensions/lockfile.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createLogger } from "../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../utils/logger.js";
|
|
3
|
-
import * as path$1 from "path";
|
|
4
3
|
import * as fs from "fs";
|
|
4
|
+
import * as path$1 from "path";
|
|
5
5
|
//#region src/extensions/security.ts
|
|
6
6
|
/**
|
|
7
7
|
* Extension Security Module
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
import { init_paths, resolveBundledExtensionsDir, resolveExtensionsDir } from "../config/paths.js";
|
|
1
2
|
import { createLogger } from "../utils/logger/index.js";
|
|
2
3
|
import { init_logger } from "../utils/logger.js";
|
|
3
|
-
import { init_paths, resolveBundledExtensionsDir, resolveExtensionsDir } from "../config/paths.js";
|
|
4
4
|
import { init_loader, loadConfig } from "../config/loader.js";
|
|
5
5
|
import { getExtensionLockfileManager } from "./lockfile.js";
|
|
6
6
|
import { installExtensionFromStoreZip, installFromNpm } from "./install.js";
|
|
7
7
|
import { findExtension } from "./marketplace.js";
|
|
8
8
|
import { downloadExtensionStoreZipBuffer, resolveExtensionZipDownloadUrl, resolveExtensionsStoreBaseUrl } from "../agent/skills/marketplace/adapters/store/store-api-client.js";
|
|
9
|
-
import { join } from "node:path";
|
|
10
9
|
import { existsSync, readFileSync, readdirSync, rmSync } from "node:fs";
|
|
10
|
+
import { join } from "node:path";
|
|
11
11
|
import semver from "semver";
|
|
12
12
|
//#region src/extensions/update.ts
|
|
13
13
|
/**
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { DEFAULT_AGENT_ID, init_agent_scope, listAgentEntries, normalizeAgentId, resolveAgentDir, resolveAgentProfileDir, resolveAgentWorkspaceDir, resolveDefaultAgentId, resolveUserPath, validateAgentIdForNewAgent } from "../agent/agent-scope.js";
|
|
2
|
-
import { resolveEffectiveAgentProfile } from "../config/agent-profile.js";
|
|
3
2
|
import { WORKSPACE_FILES, init_paths } from "../config/paths.js";
|
|
3
|
+
import { resolveEffectiveAgentProfile } from "../config/agent-profile.js";
|
|
4
4
|
import { AGENT_PROFILE_MARKDOWN_SYSTEM_FILES } from "../agent/context/workspace.js";
|
|
5
5
|
import { isPathUnderWorkspace, resolveWorkspaceSafePath } from "./workspace-editor-path.js";
|
|
6
6
|
import { applyAgentConfig, findAgentEntryIndex, pruneAgentConfig, removeAgentDirsFromDisk } from "../commands/agents.config.js";
|
|
7
7
|
import { resolveEffectiveTypedModels } from "../config/agent-typed-models.js";
|
|
8
8
|
import { GATEWAY_BUILTIN_TOOL_IDS } from "./agent-builtin-tools.js";
|
|
9
9
|
import { seedAgentProfileMarkdownFiles } from "../agent/context/workspace-seed.js";
|
|
10
|
-
import { join, resolve } from "node:path";
|
|
11
10
|
import { cp, mkdir, readFile, readdir, realpath, stat, unlink, writeFile } from "node:fs/promises";
|
|
11
|
+
import { join, resolve } from "node:path";
|
|
12
12
|
//#region src/gateway/agents-admin.ts
|
|
13
13
|
/**
|
|
14
14
|
* Gateway REST helpers for multi-agent management.
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var ChatStreamMapper = class {
|
|
3
3
|
assistantIndex = 0;
|
|
4
4
|
currentAssistantMessageId;
|
|
5
|
+
lastAssistantMessageId;
|
|
5
6
|
currentAssistantText = "";
|
|
6
7
|
toolCallToMessageId = /* @__PURE__ */ new Map();
|
|
7
8
|
started = false;
|
|
@@ -13,7 +14,7 @@ var ChatStreamMapper = class {
|
|
|
13
14
|
const event = input;
|
|
14
15
|
switch (event.type) {
|
|
15
16
|
case "agent_start": return this.start();
|
|
16
|
-
case "agent_end": return
|
|
17
|
+
case "agent_end": return [];
|
|
17
18
|
case "message_start": return this.mapMessageStart(event.message);
|
|
18
19
|
case "message_update": return this.mapMessageUpdate(event);
|
|
19
20
|
case "message_end": return this.mapMessageEnd(event.message);
|
|
@@ -38,7 +39,9 @@ var ChatStreamMapper = class {
|
|
|
38
39
|
case "tts_audio": return [this.make("tts_audio", {
|
|
39
40
|
uri: String(event.uri ?? ""),
|
|
40
41
|
mimeType: String(event.mimeType ?? "audio/mpeg"),
|
|
41
|
-
name: String(event.name ?? "voice.mp3")
|
|
42
|
+
name: String(event.name ?? "voice.mp3"),
|
|
43
|
+
attachTo: "last_assistant",
|
|
44
|
+
...this.lastAssistantMessageId ? { messageId: this.lastAssistantMessageId } : {}
|
|
42
45
|
})];
|
|
43
46
|
case "clarify_request": return [this.make("clarify_request", {
|
|
44
47
|
requestId: String(event.requestId ?? ""),
|
|
@@ -120,6 +123,7 @@ var ChatStreamMapper = class {
|
|
|
120
123
|
messageId,
|
|
121
124
|
usage: extractUsage(message)
|
|
122
125
|
}));
|
|
126
|
+
this.lastAssistantMessageId = messageId;
|
|
123
127
|
this.currentAssistantMessageId = void 0;
|
|
124
128
|
this.currentAssistantText = "";
|
|
125
129
|
return events;
|