@xopcai/xopc 0.0.118 → 0.0.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/README.zh-CN.md +2 -1
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-dzUrQoeZ.js → agent-avatar-dicebear-APTlX9Sq.js} +1 -1
- package/dist/gateway/static/root/assets/agents-CFW_FS_V.js +2 -0
- package/dist/gateway/static/root/assets/app-management-settings-panel-DTKc5HHT.js +1 -0
- package/dist/gateway/static/root/assets/appearance-settings-BTciFrE9.js +1 -0
- package/dist/gateway/static/root/assets/{apps-page--wMEL00f.js → apps-page-DT52OrbM.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-Cki4SfU2.js → archive-plugin-CiHaUMII.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-D-KnS2Do.js → attachment-load-t4gSrNjL.js} +1 -1
- package/dist/gateway/static/root/assets/automation-suggestion-card-CtysjSoQ.js +1 -0
- package/dist/gateway/static/root/assets/automations-page-B2YvT3ES.js +1 -0
- package/dist/gateway/static/root/assets/{binary-plugins-D2sgvJja.js → binary-plugins-BAbSldW5.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-DIq-4Gvb.js → block-editor-BNr_82xl.js} +28 -28
- package/dist/gateway/static/root/assets/browser-settings-page-BQEXPhDU.js +8 -0
- package/dist/gateway/static/root/assets/capability-presets-api-tzD702Gg.js +1 -0
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-AGhTueAc.js +1 -0
- package/dist/gateway/static/root/assets/channel-recipient-api-DL_KzwGE.js +1 -0
- package/dist/gateway/static/root/assets/channels-settings-DRTutLlN.js +1 -0
- package/dist/gateway/static/root/assets/cn-BQ_8x0bT.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-DneJVuge.js +2 -0
- package/dist/gateway/static/root/assets/cron-expression-B3B1eqnr.js +2 -0
- package/dist/gateway/static/root/assets/dreaming-settings-BEwWA1yf.js +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-DYu1KaFQ.js → extension-debug-page-Dl2kO0Sf.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-B3W6QwlZ.js → extension-page-DmbLPsx_.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-D7VQ-cxE.js → extension-settings-page-BS2rx40e.js} +1 -1
- package/dist/gateway/static/root/assets/{fetch-B7xDPu-R.js → fetch-B3ME5Eri.js} +1 -1
- package/dist/gateway/static/root/assets/format-cron-label-arqgGlVV.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-api-BTBLSeUu.js → gateway-config-api-DI9_BBTo.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-DAFI_T0W.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-CYj9FWCp.js → gateway-startup-retry-CSZQTz6K.js} +1 -1
- package/dist/gateway/static/root/assets/goal-detail-page-DLuz4jC9.js +1 -0
- package/dist/gateway/static/root/assets/{goals-config-api-CQQgzPr3.js → goals-config-api-Bhzqrp2w.js} +1 -1
- package/dist/gateway/static/root/assets/{goals-page-BHitvJAv.js → goals-page-DTAfv9Ft.js} +2 -2
- package/dist/gateway/static/root/assets/goals-settings-CWN2iirQ.js +1 -0
- package/dist/gateway/static/root/assets/heartbeat-settings-CkkkHvOi.js +1 -0
- package/dist/gateway/static/root/assets/index-CnjzMw5i.js +191 -0
- package/dist/gateway/static/root/assets/index-E1QinYKp.css +1 -0
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-kMp08SlX.js +1 -0
- package/dist/gateway/static/root/assets/{locale-store-DjbfSsfA.js → locale-store-Ba72bFmP.js} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-C2Uqvae9.js → logs-page-CDXDlS_W.js} +2 -2
- package/dist/gateway/static/root/assets/{markdown-split-BwOFrJ2E.js → markdown-split-Bc0w40vz.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-Cnz6Q5G6.js → media-plugins-DJ_HvgIy.js} +1 -1
- package/dist/gateway/static/root/assets/messages-CISb1HLv.js +3 -0
- package/dist/gateway/static/root/assets/models-hub-panel-BTwxMIgZ.js +2 -0
- package/dist/gateway/static/root/assets/note-detail-page-BBfOeB0m.js +2 -0
- package/dist/gateway/static/root/assets/{note-image-lightbox-B-Svpmza.js → note-image-lightbox-4zntqpZq.js} +1 -1
- package/dist/gateway/static/root/assets/notes-page-VocWOjoK.js +1 -0
- package/dist/gateway/static/root/assets/{preview-open-alternatives-Bss4TiwP.js → preview-open-alternatives-BbA7sRd_.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-CXwjuD_Q.js +1 -0
- package/dist/gateway/static/root/assets/{save-bar-controls-BRNjdgKq.js → save-bar-controls-Dividh61.js} +1 -1
- package/dist/gateway/static/root/assets/schedule-field-pRheF2CO.js +1 -0
- package/dist/gateway/static/root/assets/{schema-form-Dub9sy8r.js → schema-form-D6PiPxfr.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-CpcVySQK.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-BVy_TawT.js +1 -0
- package/dist/gateway/static/root/assets/{settings-collapsible-section-BeFLavGi.js → settings-collapsible-section-BMCOfuE_.js} +1 -1
- package/dist/gateway/static/root/assets/settings-form-section-DBkGwpIN.js +1 -0
- package/dist/gateway/static/root/assets/settings-page-CZpNyCWn.js +1 -0
- package/dist/gateway/static/root/assets/settings-page-layout-NxoW5Y57.js +1 -0
- package/dist/gateway/static/root/assets/setup-status-panel-MVHLLu_a.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-C8glrdqe.js → share-preview-page-B0suFCfj.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-C6DBbQGo.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-6hJmhwSn.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-Im1MA0Iw.js +2 -0
- package/dist/gateway/static/root/assets/system-settings-panel-CrmEnyX4.js +1 -0
- package/dist/gateway/static/root/assets/{theme-store-CD2wtgZV.js → theme-store-Bt6vAkSB.js} +1 -1
- package/dist/gateway/static/root/assets/typed-models-lib-BAsGn25g.js +1 -0
- package/dist/gateway/static/root/assets/{use-channel-catalog-DqlWTsDb.js → use-channel-catalog-C7vcAoGb.js} +1 -1
- package/dist/gateway/static/root/assets/user-profile-settings-panel-QAQWGelF.js +1 -0
- package/dist/gateway/static/root/assets/utils-Dl9efgnV.js +1 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-C73IVZeC.js → voice-api-key-field-D-6XueTv.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-player-store-C_ArLJPM.js → voice-player-store-CMC5NOJp.js} +1 -1
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-DVPllR4k.js +3 -0
- package/dist/gateway/static/root/assets/workflows-page-B94WISTW.js +18 -0
- package/dist/gateway/static/root/index.html +8 -9
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.d.ts +4 -5
- package/dist/src/agent/agent-manager.js +4 -8
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/context/workspace-templates/AGENTS.md +3 -2
- package/dist/src/agent/embedded/run-for-session.js +102 -14
- package/dist/src/agent/embedded/run-for-session.js.map +1 -1
- package/dist/src/agent/fallback/candidates.d.ts +0 -8
- package/dist/src/agent/fallback/candidates.js.map +1 -1
- package/dist/src/agent/index.js +1 -1
- package/dist/src/agent/lifecycle/handlers/compaction.d.ts +1 -3
- package/dist/src/agent/lifecycle/handlers/compaction.js +1 -16
- package/dist/src/agent/lifecycle/handlers/compaction.js.map +1 -1
- package/dist/src/agent/lifecycle/progress.d.ts +0 -1
- package/dist/src/agent/lifecycle/progress.js +1 -6
- package/dist/src/agent/lifecycle/progress.js.map +1 -1
- package/dist/src/agent/lifecycle/timeout-wrapper.d.ts +1 -2
- package/dist/src/agent/lifecycle/timeout-wrapper.js +1 -7
- package/dist/src/agent/lifecycle/timeout-wrapper.js.map +1 -1
- package/dist/src/agent/memory/builtin-memory-store.d.ts +1 -1
- package/dist/src/agent/memory/builtin-memory-store.js +1 -1
- package/dist/src/agent/memory/builtin-memory-store.js.map +1 -1
- package/dist/src/agent/memory/builtin-provider.d.ts +2 -2
- package/dist/src/agent/memory/builtin-provider.js +2 -2
- package/dist/src/agent/memory/builtin-provider.js.map +1 -1
- package/dist/src/agent/memory/dreaming/light-sweep.d.ts +0 -7
- package/dist/src/agent/memory/dreaming/light-sweep.js +16 -277
- package/dist/src/agent/memory/dreaming/light-sweep.js.map +1 -1
- package/dist/src/agent/memory/dreaming/rem-patterns.d.ts +1 -1
- package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
- package/dist/src/agent/memory/dreaming/rem-patterns.js.map +1 -1
- package/dist/src/agent/memory/dreaming/short-term-store.d.ts +3 -3
- package/dist/src/agent/memory/dreaming/short-term-store.js +5 -5
- package/dist/src/agent/memory/dreaming/short-term-store.js.map +1 -1
- package/dist/src/agent/memory/dreaming/utils.d.ts +2 -2
- package/dist/src/agent/memory/dreaming/utils.js +2 -2
- package/dist/src/agent/memory/dreaming/utils.js.map +1 -1
- package/dist/src/agent/memory/index.d.ts +0 -2
- package/dist/src/agent/memory/index.js +1 -2
- package/dist/src/agent/middleware/self-verify.d.ts +0 -1
- package/dist/src/agent/middleware/self-verify.js +0 -2
- package/dist/src/agent/middleware/self-verify.js.map +1 -1
- package/dist/src/agent/models/index.d.ts +1 -1
- package/dist/src/agent/models/manager.d.ts +4 -20
- package/dist/src/agent/models/manager.js +9 -126
- package/dist/src/agent/models/manager.js.map +1 -1
- package/dist/src/agent/orchestration/agent-orchestrator.d.ts +0 -4
- package/dist/src/agent/orchestration/agent-orchestrator.js +1 -9
- package/dist/src/agent/orchestration/agent-orchestrator.js.map +1 -1
- package/dist/src/agent/prompt/sections/memory-skills.js +11 -10
- package/dist/src/agent/prompt/sections/memory-skills.js.map +1 -1
- package/dist/src/agent/prompt/sections/tooling.js +4 -4
- package/dist/src/agent/prompt/sections/tooling.js.map +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.d.ts +0 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +0 -12
- package/dist/src/agent/prompt/service-prompt-builder.js.map +1 -1
- package/dist/src/agent/prompt/subagent-context.js +1 -1
- package/dist/src/agent/prompt/subagent-context.js.map +1 -1
- package/dist/src/agent/prompt/types.d.ts +1 -1
- package/dist/src/agent/reply/startup-context.js +6 -105
- package/dist/src/agent/reply/startup-context.js.map +1 -1
- package/dist/src/agent/service.d.ts +1 -12
- package/dist/src/agent/service.js +3 -81
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/service.types.d.ts +2 -2
- package/dist/src/agent/session/session-config-service.d.ts +11 -11
- package/dist/src/agent/session/session-config-service.js +14 -14
- package/dist/src/agent/session/session-config-service.js.map +1 -1
- package/dist/src/agent/session/session-inspector.js +3 -2
- package/dist/src/agent/session/session-inspector.js.map +1 -1
- package/dist/src/agent/starter-agents.js +12 -12
- package/dist/src/agent/starter-agents.js.map +1 -1
- package/dist/src/agent/tools/automation-tool.d.ts +14 -0
- package/dist/src/agent/tools/automation-tool.js +102 -0
- package/dist/src/agent/tools/automation-tool.js.map +1 -0
- package/dist/src/agent/tools/delegate-tool.js +1 -1
- package/dist/src/agent/tools/delegate-tool.js.map +1 -1
- package/dist/src/agent/tools/factory.d.ts +3 -3
- package/dist/src/agent/tools/factory.js +2 -2
- package/dist/src/agent/tools/factory.js.map +1 -1
- package/dist/src/agent/tools/index.d.ts +1 -1
- package/dist/src/agent/tools/index.js +2 -2
- package/dist/src/agent/tools/memory-tool.js +2 -2
- package/dist/src/agent/tools/memory-tool.js.map +1 -1
- package/dist/src/agent-manifest/resolver.d.ts +1 -0
- package/dist/src/agent-manifest/resolver.js +1 -0
- package/dist/src/agent-manifest/resolver.js.map +1 -1
- package/dist/src/agent-manifest/schema.d.ts +6 -0
- package/dist/src/agent-manifest/schema.js +12 -3
- package/dist/src/agent-manifest/schema.js.map +1 -1
- package/dist/src/ai-assist/text-assist.d.ts +1 -1
- package/dist/src/ai-assist/text-assist.js +56 -0
- package/dist/src/ai-assist/text-assist.js.map +1 -1
- package/dist/src/auth/profiles/store.js.map +1 -1
- package/dist/src/automations/api/routes.d.ts +3 -0
- package/dist/src/automations/api/routes.js +193 -0
- package/dist/src/automations/api/routes.js.map +1 -0
- package/dist/src/automations/domain/index.d.ts +3 -0
- package/dist/src/automations/domain/index.js +3 -0
- package/dist/src/automations/domain/schedule.d.ts +4 -0
- package/dist/src/automations/domain/schedule.js +37 -0
- package/dist/src/automations/domain/schedule.js.map +1 -0
- package/dist/src/automations/domain/types.d.ts +160 -0
- package/dist/src/automations/domain/validation.d.ts +370 -0
- package/dist/src/automations/domain/validation.js +149 -0
- package/dist/src/automations/domain/validation.js.map +1 -0
- package/dist/src/automations/draft/automation-draft-prompt.d.ts +26 -0
- package/dist/src/automations/draft/automation-draft-prompt.js +127 -0
- package/dist/src/automations/draft/automation-draft-prompt.js.map +1 -0
- package/dist/src/automations/draft/automation-draft-service.d.ts +12 -0
- package/dist/src/automations/draft/automation-draft-service.js +135 -0
- package/dist/src/automations/draft/automation-draft-service.js.map +1 -0
- package/dist/src/automations/draft/automation-draft-validator.d.ts +99 -0
- package/dist/src/automations/draft/automation-draft-validator.js +105 -0
- package/dist/src/automations/draft/automation-draft-validator.js.map +1 -0
- package/dist/src/automations/draft/automation-draft.types.d.ts +40 -0
- package/dist/src/automations/draft/index.d.ts +3 -0
- package/dist/src/automations/draft/index.js +3 -0
- package/dist/src/automations/index.d.ts +3 -0
- package/dist/src/automations/index.js +8 -0
- package/dist/src/automations/product-events.d.ts +5 -0
- package/dist/src/automations/product-events.js +21 -0
- package/dist/src/automations/product-events.js.map +1 -0
- package/dist/src/automations/service/action-executor.d.ts +9 -0
- package/dist/src/automations/service/action-executor.js +157 -0
- package/dist/src/automations/service/action-executor.js.map +1 -0
- package/dist/src/automations/service/automation-service.d.ts +54 -0
- package/dist/src/automations/service/automation-service.js +404 -0
- package/dist/src/automations/service/automation-service.js.map +1 -0
- package/dist/src/automations/service/index.d.ts +2 -0
- package/dist/src/automations/service/index.js +3 -0
- package/dist/src/automations/storage/automation-repository.d.ts +6 -0
- package/dist/src/automations/storage/automation-repository.js +61 -0
- package/dist/src/automations/storage/automation-repository.js.map +1 -0
- package/dist/src/automations/storage/automation-run-repository.d.ts +17 -0
- package/dist/src/automations/storage/automation-run-repository.js +130 -0
- package/dist/src/automations/storage/automation-run-repository.js.map +1 -0
- package/dist/src/automations/storage/index.d.ts +2 -0
- package/dist/src/automations/storage/index.js +3 -0
- package/dist/src/channels/plugin-types.d.ts +3 -0
- package/dist/src/chat-commands/builtins/thinking.js.map +1 -1
- package/dist/src/cli/command-catalog.js +0 -39
- package/dist/src/cli/command-catalog.js.map +1 -1
- package/dist/src/cli/command-loaders.js +0 -1
- package/dist/src/cli/command-loaders.js.map +1 -1
- package/dist/src/cli/command-manifest.js +0 -4
- package/dist/src/cli/command-manifest.js.map +1 -1
- package/dist/src/cli/commands/agents.js +7 -6
- package/dist/src/cli/commands/agents.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/{cron-health.d.ts → migrations.d.ts} +1 -1
- package/dist/src/cli/commands/doctor/checks/migrations.js +40 -0
- package/dist/src/cli/commands/doctor/checks/migrations.js.map +1 -0
- package/dist/src/cli/commands/doctor/flow.js +2 -2
- package/dist/src/cli/commands/doctor/flow.js.map +1 -1
- package/dist/src/cli/commands/gateway/call.js +2 -2
- package/dist/src/cli/commands/gateway/call.js.map +1 -1
- package/dist/src/cli/commands/gateway/run-foreground.js +4 -2
- package/dist/src/cli/commands/gateway/run-foreground.js.map +1 -1
- package/dist/src/cli/commands/init.js +27 -9
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/tui.js +24 -2
- package/dist/src/cli/commands/tui.js.map +1 -1
- package/dist/src/cli/templates.js +3 -2
- package/dist/src/cli/templates.js.map +1 -1
- package/dist/src/cli/utils/init-workspace-core.js +2 -0
- package/dist/src/cli/utils/init-workspace-core.js.map +1 -1
- package/dist/src/commands/agents.config.d.ts +9 -0
- package/dist/src/commands/agents.config.js +40 -2
- package/dist/src/commands/agents.config.js.map +1 -1
- package/dist/src/config/agent-profile.js +4 -3
- package/dist/src/config/agent-profile.js.map +1 -1
- package/dist/src/config/agent-typed-models.js.map +1 -1
- package/dist/src/config/config-surface.d.ts +3 -0
- package/dist/src/config/index.d.ts +0 -1
- package/dist/src/config/index.js +3 -3
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/config/paths.d.ts +0 -9
- package/dist/src/config/paths.js +1 -14
- package/dist/src/config/paths.js.map +1 -1
- package/dist/src/config/profile.js +0 -1
- package/dist/src/config/profile.js.map +1 -1
- package/dist/src/config/rules.js +0 -5
- package/dist/src/config/rules.js.map +1 -1
- package/dist/src/config/schema.d.ts +13 -12
- package/dist/src/config/schema.js +22 -26
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/config/web-patch.d.ts +0 -12
- package/dist/src/config/web-patch.js +2 -29
- package/dist/src/config/web-patch.js.map +1 -1
- package/dist/src/extensions/api.d.ts +2 -0
- package/dist/src/extensions/api.js +10 -0
- package/dist/src/extensions/api.js.map +1 -1
- package/dist/src/extensions/extension-registry-impl.d.ts +4 -1
- package/dist/src/extensions/extension-registry-impl.js +8 -0
- package/dist/src/extensions/extension-registry-impl.js.map +1 -1
- package/dist/src/extensions/loader.d.ts +3 -3
- package/dist/src/extensions/loader.js +3 -3
- package/dist/src/extensions/loader.js.map +1 -1
- package/dist/src/extensions/sdk/testing.d.ts +2 -0
- package/dist/src/extensions/sdk/testing.js +7 -0
- package/dist/src/extensions/sdk/testing.js.map +1 -1
- package/dist/src/extensions/types/core.d.ts +10 -1
- package/dist/src/extensions/types/index.d.ts +1 -1
- package/dist/src/extensions/types/{phase4.d.ts → registration.d.ts} +2 -2
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/agent-builtin-tools.js +1 -1
- package/dist/src/gateway/agent-builtin-tools.js.map +1 -1
- package/dist/src/gateway/agents-admin.d.ts +1 -0
- package/dist/src/gateway/agents-admin.js +13 -15
- package/dist/src/gateway/agents-admin.js.map +1 -1
- package/dist/src/gateway/capability-presets-admin.d.ts +1 -0
- package/dist/src/gateway/capability-presets-admin.js +19 -10
- package/dist/src/gateway/capability-presets-admin.js.map +1 -1
- package/dist/src/gateway/dreaming-automation-reconciler.d.ts +11 -0
- package/dist/src/gateway/dreaming-automation-reconciler.js +105 -0
- package/dist/src/gateway/dreaming-automation-reconciler.js.map +1 -0
- package/dist/src/gateway/heartbeat/service.d.ts +0 -2
- package/dist/src/gateway/heartbeat/service.js +0 -7
- package/dist/src/gateway/heartbeat/service.js.map +1 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +5 -6
- package/dist/src/gateway/hono/lib/config-payload.js +2 -2
- package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
- package/dist/src/gateway/hono/routes/agents.js.map +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.d.ts +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +15 -6
- package/dist/src/gateway/hono/routes/config-patch/misc.js.map +1 -1
- package/dist/src/gateway/hono/routes/dreaming.js +27 -37
- package/dist/src/gateway/hono/routes/dreaming.js.map +1 -1
- package/dist/src/gateway/hono/routes/home.d.ts +2 -2
- package/dist/src/gateway/hono/routes/home.js +34 -25
- package/dist/src/gateway/hono/routes/home.js.map +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +10 -6
- package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
- package/dist/src/gateway/hono/routes/migrations.d.ts +3 -0
- package/dist/src/gateway/hono/routes/migrations.js +35 -0
- package/dist/src/gateway/hono/routes/migrations.js.map +1 -0
- package/dist/src/gateway/hono/routes/public-gateway.js +2 -1
- package/dist/src/gateway/hono/routes/public-gateway.js.map +1 -1
- package/dist/src/gateway/hono/routes/sessions.js +14 -0
- package/dist/src/gateway/hono/routes/sessions.js.map +1 -1
- package/dist/src/gateway/run-loop.js +2 -0
- package/dist/src/gateway/run-loop.js.map +1 -1
- package/dist/src/gateway/security/operator-scopes.js +5 -1
- package/dist/src/gateway/security/operator-scopes.js.map +1 -1
- package/dist/src/gateway/service/config-coordinator.d.ts +4 -4
- package/dist/src/gateway/service/config-coordinator.js +14 -8
- package/dist/src/gateway/service/config-coordinator.js.map +1 -1
- package/dist/src/gateway/service/sessions-api.d.ts +2 -1
- package/dist/src/gateway/service/sessions-api.js +6 -1
- package/dist/src/gateway/service/sessions-api.js.map +1 -1
- package/dist/src/gateway/service.d.ts +7 -3
- package/dist/src/gateway/service.js +61 -27
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/goals/goal-service.js +45 -4
- package/dist/src/goals/goal-service.js.map +1 -1
- package/dist/src/migrations/config/default-capability-preset.d.ts +10 -0
- package/dist/src/migrations/config/default-capability-preset.js +135 -0
- package/dist/src/migrations/config/default-capability-preset.js.map +1 -0
- package/dist/src/migrations/index.d.ts +4 -0
- package/dist/src/migrations/index.js +4 -0
- package/dist/src/migrations/registry.d.ts +8 -0
- package/dist/src/migrations/registry.js +18 -0
- package/dist/src/migrations/registry.js.map +1 -0
- package/dist/src/migrations/runner.d.ts +17 -0
- package/dist/src/migrations/runner.js +191 -0
- package/dist/src/migrations/runner.js.map +1 -0
- package/dist/src/migrations/types.d.ts +34 -0
- package/dist/src/notes/service.js +24 -1
- package/dist/src/notes/service.js.map +1 -1
- package/dist/src/providers/model-registry.d.ts +0 -1
- package/dist/src/providers/model-registry.js +0 -3
- package/dist/src/providers/model-registry.js.map +1 -1
- package/dist/src/routing/resolve-tui-session-key.d.ts +3 -0
- package/dist/src/routing/resolve-tui-session-key.js +14 -3
- package/dist/src/routing/resolve-tui-session-key.js.map +1 -1
- package/dist/src/session/transcript-outline.d.ts +47 -0
- package/dist/src/session/transcript-outline.js +481 -0
- package/dist/src/session/transcript-outline.js.map +1 -0
- package/dist/src/storage/sqlite/index.d.ts +0 -2
- package/dist/src/storage/sqlite/index.js +1 -3
- package/dist/src/storage/sqlite/migrations/016_automations.sql +47 -0
- package/dist/src/storage/sqlite/migrations/017_automation_run_events.sql +14 -0
- package/dist/src/storage/sqlite/migrations/018_automation_safety.sql +1 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- 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/row-mappers.js +3 -1
- package/dist/src/storage/sqlite/row-mappers.js.map +1 -1
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/schema.sql +56 -46
- package/dist/src/tui/backends/embedded-backend.d.ts +6 -0
- package/dist/src/tui/backends/embedded-backend.js +19 -9
- package/dist/src/tui/backends/embedded-backend.js.map +1 -1
- package/dist/src/tui/backends/gateway-sse-backend.d.ts +3 -0
- package/dist/src/tui/backends/gateway-sse-backend.js +14 -0
- package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -1
- package/dist/src/tui/tui-backend.d.ts +4 -0
- package/dist/src/tui/tui-commands.d.ts +5 -0
- package/dist/src/tui/tui-commands.js +43 -0
- package/dist/src/tui/tui-commands.js.map +1 -1
- package/dist/src/tui/tui-transcript-tree.d.ts +1 -1
- package/dist/src/tui/tui-transcript-tree.js +17 -257
- package/dist/src/tui/tui-transcript-tree.js.map +1 -1
- package/dist/src/tui/tui-types.d.ts +2 -0
- package/dist/src/tui/tui-types.js.map +1 -1
- package/dist/src/tui/tui.js +7 -2
- package/dist/src/tui/tui.js.map +1 -1
- package/dist/src/workflows/domain/index.js +1 -1
- package/dist/src/workflows/domain/run.d.ts +7 -7
- package/dist/src/workflows/domain/run.js.map +1 -1
- package/dist/src/workflows/index.js +2 -2
- package/dist/src/workflows/service/workflow-run-service.d.ts +2 -0
- package/dist/src/workflows/service/workflow-run-service.js +31 -9
- package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
- package/dist/src/workflows/service/workflow-run-service.types.d.ts +1 -1
- package/package.json +4 -2
- package/dist/gateway/static/root/assets/agents-BCxZbkOw.js +0 -2
- package/dist/gateway/static/root/assets/app-management-settings-panel-bxYJVJpx.js +0 -1
- package/dist/gateway/static/root/assets/appearance-settings-BCIykXlI.js +0 -1
- package/dist/gateway/static/root/assets/browser-settings-page-DRhKdn81.js +0 -8
- package/dist/gateway/static/root/assets/capability-presets-api-CorhiHlg.js +0 -1
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-qFx9Jtce.js +0 -1
- package/dist/gateway/static/root/assets/channels-settings-BAwAkqIA.js +0 -1
- package/dist/gateway/static/root/assets/cn-JdwAhgNB.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-BQLcfitM.js +0 -2
- package/dist/gateway/static/root/assets/createLucideIcon-DPHK1VkS.js +0 -1
- package/dist/gateway/static/root/assets/cron-api-qGwmL-24.js +0 -1
- package/dist/gateway/static/root/assets/cron-dreaming-jobs-nCMWCf0p.js +0 -1
- package/dist/gateway/static/root/assets/cron-page-BBWMAj8-.js +0 -3
- package/dist/gateway/static/root/assets/dreaming-settings-Dw89Obml.js +0 -1
- package/dist/gateway/static/root/assets/format-cron-label-BsotZDO5.js +0 -2
- package/dist/gateway/static/root/assets/format-interval-label-BzxafKxR.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-Cmwy58rS.js +0 -1
- package/dist/gateway/static/root/assets/goal-detail-page-l7mu5GWX.js +0 -1
- package/dist/gateway/static/root/assets/goals-settings-CYVY4NGp.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-config-api-DriO_CN9.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-CUQTKxg7.js +0 -1
- package/dist/gateway/static/root/assets/index-C17Tsd_b.css +0 -1
- package/dist/gateway/static/root/assets/index-Cc41r16l.js +0 -191
- package/dist/gateway/static/root/assets/interval-presets-DFPCKW_W.js +0 -1
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-CcVcqstx.js +0 -1
- package/dist/gateway/static/root/assets/messages-B1iSKjiw.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-panel-BfLfcta8.js +0 -2
- package/dist/gateway/static/root/assets/note-detail-page-BjwOQBfT.js +0 -2
- package/dist/gateway/static/root/assets/notes-page-DktdBiwB.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-rfVx96fq.js +0 -1
- package/dist/gateway/static/root/assets/schedule-field-CUCKODde.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-DbtMFuuH.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-5re5gAnP.js +0 -1
- package/dist/gateway/static/root/assets/settings-form-section-dmyaPOTG.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-D-WMyLlj.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-Cl-DEJAU.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-CyPVvbLt.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-CleTH1oz.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-Ck8hdXqR.js +0 -2
- package/dist/gateway/static/root/assets/system-settings-panel-DI-LN_8G.js +0 -1
- package/dist/gateway/static/root/assets/typed-models-lib-kX9duch4.js +0 -1
- package/dist/gateway/static/root/assets/user-profile-settings-panel-B-UFPMXy.js +0 -1
- package/dist/gateway/static/root/assets/utils-Dm0hKalR.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-BtFGp2y_.js +0 -18
- package/dist/src/agent/fallback/error.d.ts +0 -22
- package/dist/src/agent/fallback/error.js +0 -32
- package/dist/src/agent/fallback/error.js.map +0 -1
- package/dist/src/agent/fallback/index.d.ts +0 -5
- package/dist/src/agent/fallback/index.js +0 -9
- package/dist/src/agent/fallback/index.js.map +0 -1
- package/dist/src/agent/memory/memory-flush.d.ts +0 -27
- package/dist/src/agent/memory/memory-flush.js +0 -124
- package/dist/src/agent/memory/memory-flush.js.map +0 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.d.ts +0 -29
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js +0 -76
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js.map +0 -1
- package/dist/src/agent/service/reconcile-dreaming-cron.d.ts +0 -6
- package/dist/src/agent/service/reconcile-dreaming-cron.js +0 -84
- package/dist/src/agent/service/reconcile-dreaming-cron.js.map +0 -1
- package/dist/src/agent/tools/cronjob-tool.d.ts +0 -29
- package/dist/src/agent/tools/cronjob-tool.js +0 -274
- package/dist/src/agent/tools/cronjob-tool.js.map +0 -1
- package/dist/src/cli/commands/cron-cli.d.ts +0 -2
- package/dist/src/cli/commands/cron-cli.js +0 -15
- package/dist/src/cli/commands/cron-cli.js.map +0 -1
- package/dist/src/cli/commands/cron.d.ts +0 -4
- package/dist/src/cli/commands/cron.js +0 -188
- package/dist/src/cli/commands/cron.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/cron-health.js +0 -35
- package/dist/src/cli/commands/doctor/checks/cron-health.js.map +0 -1
- package/dist/src/cron/execution-types.d.ts +0 -42
- package/dist/src/cron/executor.d.ts +0 -67
- package/dist/src/cron/executor.js +0 -669
- package/dist/src/cron/executor.js.map +0 -1
- package/dist/src/cron/index.d.ts +0 -7
- package/dist/src/cron/index.js +0 -7
- package/dist/src/cron/job-content.d.ts +0 -5
- package/dist/src/cron/job-content.js +0 -15
- package/dist/src/cron/job-content.js.map +0 -1
- package/dist/src/cron/run-log-store.d.ts +0 -12
- package/dist/src/cron/run-log-store.js +0 -58
- package/dist/src/cron/run-log-store.js.map +0 -1
- package/dist/src/cron/schedule.d.ts +0 -10
- package/dist/src/cron/schedule.js +0 -85
- package/dist/src/cron/schedule.js.map +0 -1
- package/dist/src/cron/service.d.ts +0 -58
- package/dist/src/cron/service.js +0 -419
- package/dist/src/cron/service.js.map +0 -1
- package/dist/src/cron/types.d.ts +0 -183
- package/dist/src/cron/validation.d.ts +0 -500
- package/dist/src/cron/validation.js +0 -192
- package/dist/src/cron/validation.js.map +0 -1
- package/dist/src/cron/workflow-run-completion.d.ts +0 -23
- package/dist/src/cron/workflow-run-completion.js +0 -72
- package/dist/src/cron/workflow-run-completion.js.map +0 -1
- package/dist/src/extensions/types/phase4.js +0 -1
- package/dist/src/gateway/hono/routes/cron.d.ts +0 -3
- package/dist/src/gateway/hono/routes/cron.js +0 -109
- package/dist/src/gateway/hono/routes/cron.js.map +0 -1
- package/dist/src/storage/sqlite/cron-job-repository.d.ts +0 -6
- package/dist/src/storage/sqlite/cron-job-repository.js +0 -70
- package/dist/src/storage/sqlite/cron-job-repository.js.map +0 -1
- package/dist/src/storage/sqlite/cron-run-repository.d.ts +0 -5
- package/dist/src/storage/sqlite/cron-run-repository.js +0 -96
- package/dist/src/storage/sqlite/cron-run-repository.js.map +0 -1
- /package/dist/src/{cron → automations/domain}/types.js +0 -0
- /package/dist/src/{config/defaults.d.ts → automations/draft/automation-draft.types.js} +0 -0
- /package/dist/src/{config/defaults.js → extensions/types/registration.js} +0 -0
- /package/dist/src/{cron/execution-types.js → migrations/types.js} +0 -0
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import { describeSchedule } from "../../cron/schedule.js";
|
|
2
|
-
import { formatExamples, register } from "../registry.js";
|
|
3
|
-
import "../../cron/index.js";
|
|
4
|
-
import { withCronService } from "./cron-cli.js";
|
|
5
|
-
import { Command } from "commander";
|
|
6
|
-
//#region src/cli/commands/cron.ts
|
|
7
|
-
function parseDurationMs(value) {
|
|
8
|
-
const match = /^(\d+)\s*(ms|s|m|h|d)?$/i.exec(value.trim());
|
|
9
|
-
if (!match) return null;
|
|
10
|
-
const amount = Number.parseInt(match[1], 10);
|
|
11
|
-
const unit = (match[2] ?? "ms").toLowerCase();
|
|
12
|
-
return amount > 0 ? amount * (unit === "d" ? 864e5 : unit === "h" ? 36e5 : unit === "m" ? 6e4 : unit === "s" ? 1e3 : 1) : null;
|
|
13
|
-
}
|
|
14
|
-
function resolveSchedule(options) {
|
|
15
|
-
if ([
|
|
16
|
-
options.at,
|
|
17
|
-
options.every,
|
|
18
|
-
options.cron,
|
|
19
|
-
options.schedule
|
|
20
|
-
].filter((v) => typeof v === "string" && v.trim()).length !== 1) return null;
|
|
21
|
-
if (options.at?.trim()) {
|
|
22
|
-
const raw = options.at.trim();
|
|
23
|
-
const rel = parseDurationMs(raw);
|
|
24
|
-
return {
|
|
25
|
-
kind: "at",
|
|
26
|
-
at: new Date(rel ? Date.now() + rel : Date.parse(raw)).toISOString()
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
if (options.every?.trim()) {
|
|
30
|
-
const everyMs = parseDurationMs(options.every);
|
|
31
|
-
return everyMs ? {
|
|
32
|
-
kind: "every",
|
|
33
|
-
everyMs,
|
|
34
|
-
anchorMs: Date.now()
|
|
35
|
-
} : null;
|
|
36
|
-
}
|
|
37
|
-
const expr = options.cron?.trim() || options.schedule?.trim();
|
|
38
|
-
return expr ? {
|
|
39
|
-
kind: "cron",
|
|
40
|
-
expr,
|
|
41
|
-
...options.tz?.trim() ? { tz: options.tz.trim() } : {}
|
|
42
|
-
} : null;
|
|
43
|
-
}
|
|
44
|
-
function createCronCommand(_ctx) {
|
|
45
|
-
const cmd = new Command("cron").description("Manage scheduled tasks").addHelpText("after", formatExamples([
|
|
46
|
-
"xopc cron list # List all tasks",
|
|
47
|
-
"xopc cron add --cron \"0 9 * * *\" --message \"Good morning\"",
|
|
48
|
-
"xopc cron add --every 1h --message \"Check for updates\"",
|
|
49
|
-
"xopc cron add --at 20m --message \"Remind me\"",
|
|
50
|
-
"xopc cron enable <job-id> # Enable a task",
|
|
51
|
-
"xopc cron disable <job-id> # Disable a task",
|
|
52
|
-
"xopc cron run <job-id> # Run a task now",
|
|
53
|
-
"xopc cron remove <job-id> # Remove a task"
|
|
54
|
-
]));
|
|
55
|
-
cmd.addCommand(new Command("list").description("List all scheduled tasks").action(async () => {
|
|
56
|
-
await withCronService(async (cronService) => {
|
|
57
|
-
const jobs = await cronService.listJobs();
|
|
58
|
-
if (jobs.length === 0) {
|
|
59
|
-
console.log("No scheduled tasks.");
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
console.log("Scheduled Tasks:\n");
|
|
63
|
-
const { getCronPayloadText } = await import("../../cron/job-content.js");
|
|
64
|
-
for (const job of jobs) {
|
|
65
|
-
const state = job.enabled ? "enabled " : "disabled";
|
|
66
|
-
console.log(` ${job.id} [${state}] - ${describeSchedule(job.schedule)}`);
|
|
67
|
-
console.log(` ${getCronPayloadText({ payload: job.payload })}`);
|
|
68
|
-
console.log(` Next: ${job.state.nextRunAtMs ? new Date(job.state.nextRunAtMs).toISOString() : "N/A"}`);
|
|
69
|
-
console.log();
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}));
|
|
73
|
-
cmd.addCommand(new Command("add").description("Add a scheduled task").option("--name <text>", "Task name").option("--at <time>", "One-shot time: ISO timestamp or duration like 20m").option("--every <duration>", "Interval like 10m, 1h, 1d").option("--cron <expr>", "Cron expression (e.g., \"0 9 * * *\")").option("--tz <iana>", "IANA timezone for --cron").option("--message <text>", "Message to send (system event)").option("--workflow <id>", "Workflow definition id").option("--goal <text>", "Optional workflow goal").option("--input-json <json>", "Workflow input payload as JSON object").option("--agent-id <id>", "Agent profile for workflow or isolated jobs").option("--no-wait", "Start workflow and return without waiting for completion").option("--channel <name>", "Delivery channel (e.g. telegram)").option("--to <chatId>", "Delivery recipient chat id").action(async (options) => {
|
|
74
|
-
const hasWorkflow = Boolean(options.workflow?.trim());
|
|
75
|
-
const hasMessage = Boolean(options.message?.trim());
|
|
76
|
-
const schedule = resolveSchedule(options);
|
|
77
|
-
if (!schedule || !hasWorkflow && !hasMessage || hasWorkflow && hasMessage) {
|
|
78
|
-
console.error("Error: provide exactly one schedule (--at, --every, --cron) and exactly one of --message or --workflow");
|
|
79
|
-
process.exit(1);
|
|
80
|
-
}
|
|
81
|
-
await withCronService(async (cronService) => {
|
|
82
|
-
if (hasWorkflow) {
|
|
83
|
-
let inputEnvelope;
|
|
84
|
-
if (options.inputJson) try {
|
|
85
|
-
inputEnvelope = { payload: JSON.parse(options.inputJson) };
|
|
86
|
-
} catch {
|
|
87
|
-
console.error("Error: --input-json must be valid JSON");
|
|
88
|
-
process.exit(1);
|
|
89
|
-
}
|
|
90
|
-
const agentId = options.agentId?.trim() || void 0;
|
|
91
|
-
const delivery = options.channel?.trim() && options.to?.trim() ? {
|
|
92
|
-
mode: "announce",
|
|
93
|
-
channel: options.channel.trim(),
|
|
94
|
-
to: options.to.trim()
|
|
95
|
-
} : void 0;
|
|
96
|
-
const result = await cronService.addJob(schedule, {
|
|
97
|
-
name: options.name,
|
|
98
|
-
sessionTarget: "isolated",
|
|
99
|
-
...agentId ? { agentId } : {},
|
|
100
|
-
delivery,
|
|
101
|
-
payload: {
|
|
102
|
-
kind: "workflowRun",
|
|
103
|
-
definitionId: options.workflow.trim(),
|
|
104
|
-
...options.goal?.trim() ? { goal: options.goal.trim() } : {},
|
|
105
|
-
...inputEnvelope ? { inputEnvelope } : {},
|
|
106
|
-
...agentId ? { agentId } : {},
|
|
107
|
-
...options.noWait ? { waitForCompletion: false } : {}
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
console.log(`✅ Added workflow job ${result.id}`);
|
|
111
|
-
console.log(` Schedule: ${describeSchedule(result.schedule)}`);
|
|
112
|
-
console.log(` Workflow: ${options.workflow.trim()}`);
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
const result = await cronService.addJob(schedule, {
|
|
116
|
-
name: options.name,
|
|
117
|
-
payload: {
|
|
118
|
-
kind: "systemEvent",
|
|
119
|
-
text: options.message
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
console.log(`✅ Added job ${result.id}`);
|
|
123
|
-
console.log(` Schedule: ${describeSchedule(result.schedule)}`);
|
|
124
|
-
});
|
|
125
|
-
}));
|
|
126
|
-
cmd.addCommand(new Command("remove").description("Remove a scheduled task").argument("<id>", "Job ID").action(async (id) => {
|
|
127
|
-
await withCronService(async (cronService) => {
|
|
128
|
-
if (await cronService.removeJob(id)) console.log(`✅ Removed job ${id}`);
|
|
129
|
-
else {
|
|
130
|
-
console.error(`Job ${id} not found`);
|
|
131
|
-
process.exit(1);
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
}));
|
|
135
|
-
cmd.addCommand(new Command("enable").description("Enable a scheduled task").argument("<id>", "Job ID").action(async (id) => {
|
|
136
|
-
await withCronService(async (cronService) => {
|
|
137
|
-
if (await cronService.toggleJob(id, true)) console.log(`✅ Enabled job ${id}`);
|
|
138
|
-
else {
|
|
139
|
-
console.error(`Job ${id} not found`);
|
|
140
|
-
process.exit(1);
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
}));
|
|
144
|
-
cmd.addCommand(new Command("disable").description("Disable a scheduled task").argument("<id>", "Job ID").action(async (id) => {
|
|
145
|
-
await withCronService(async (cronService) => {
|
|
146
|
-
if (await cronService.toggleJob(id, false)) console.log(`✅ Disabled job ${id}`);
|
|
147
|
-
else {
|
|
148
|
-
console.error(`Job ${id} not found`);
|
|
149
|
-
process.exit(1);
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
}));
|
|
153
|
-
const runNowAction = async (id) => {
|
|
154
|
-
await withCronService(async (cronService) => {
|
|
155
|
-
try {
|
|
156
|
-
await cronService.runJobNow(id);
|
|
157
|
-
console.log(`✅ Triggered job ${id}`);
|
|
158
|
-
} catch (err) {
|
|
159
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
160
|
-
console.error(message);
|
|
161
|
-
process.exit(1);
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
};
|
|
165
|
-
cmd.addCommand(new Command("run").description("Run a scheduled task immediately").argument("<id>", "Job ID").action(runNowAction));
|
|
166
|
-
cmd.addCommand(new Command("trigger").description("Alias for `cron run`").argument("<id>", "Job ID").action(runNowAction));
|
|
167
|
-
return cmd;
|
|
168
|
-
}
|
|
169
|
-
register({
|
|
170
|
-
id: "cron",
|
|
171
|
-
name: "cron",
|
|
172
|
-
description: "Manage scheduled tasks",
|
|
173
|
-
factory: createCronCommand,
|
|
174
|
-
metadata: {
|
|
175
|
-
category: "utility",
|
|
176
|
-
examples: [
|
|
177
|
-
"xopc cron list",
|
|
178
|
-
"xopc cron add --cron \"0 9 * * *\" --message \"Hello\"",
|
|
179
|
-
"xopc cron add --every 1h --workflow weekly_review",
|
|
180
|
-
"xopc cron enable abc12345",
|
|
181
|
-
"xopc cron run abc12345"
|
|
182
|
-
]
|
|
183
|
-
}
|
|
184
|
-
});
|
|
185
|
-
//#endregion
|
|
186
|
-
export { createCronCommand };
|
|
187
|
-
|
|
188
|
-
//# sourceMappingURL=cron.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cron.js","names":[],"sources":["../../../../src/cli/commands/cron.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { register, formatExamples } from '../registry.js';\nimport type { CLIContext } from '../registry.js';\nimport { withCronService } from './cron-cli.js';\nimport { describeSchedule, type CronSchedule } from '../../cron/index.js';\n\nfunction parseDurationMs(value: string): number | null {\n const match = /^(\\d+)\\s*(ms|s|m|h|d)?$/i.exec(value.trim());\n if (!match) return null;\n const amount = Number.parseInt(match[1], 10);\n const unit = (match[2] ?? 'ms').toLowerCase();\n const factor = unit === 'd' ? 86_400_000 : unit === 'h' ? 3_600_000 : unit === 'm' ? 60_000 : unit === 's' ? 1000 : 1;\n return amount > 0 ? amount * factor : null;\n}\n\nfunction resolveSchedule(options: { at?: string; every?: string; cron?: string; tz?: string; schedule?: string }): CronSchedule | null {\n const chosen = [options.at, options.every, options.cron, options.schedule].filter((v) => typeof v === 'string' && v.trim()).length;\n if (chosen !== 1) return null;\n if (options.at?.trim()) {\n const raw = options.at.trim();\n const rel = parseDurationMs(raw);\n return { kind: 'at', at: new Date(rel ? Date.now() + rel : Date.parse(raw)).toISOString() };\n }\n if (options.every?.trim()) {\n const everyMs = parseDurationMs(options.every);\n return everyMs ? { kind: 'every', everyMs, anchorMs: Date.now() } : null;\n }\n const expr = options.cron?.trim() || options.schedule?.trim();\n return expr ? { kind: 'cron', expr, ...(options.tz?.trim() ? { tz: options.tz.trim() } : {}) } : null;\n}\n\nfunction createCronCommand(_ctx: CLIContext): Command {\n const cmd = new Command('cron')\n .description('Manage scheduled tasks')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc cron list # List all tasks',\n 'xopc cron add --cron \"0 9 * * *\" --message \"Good morning\"',\n 'xopc cron add --every 1h --message \"Check for updates\"',\n 'xopc cron add --at 20m --message \"Remind me\"',\n 'xopc cron enable <job-id> # Enable a task',\n 'xopc cron disable <job-id> # Disable a task',\n 'xopc cron run <job-id> # Run a task now',\n 'xopc cron remove <job-id> # Remove a task',\n ]),\n );\n\n cmd.addCommand(\n new Command('list')\n .description('List all scheduled tasks')\n .action(async () => {\n await withCronService(async (cronService) => {\n const jobs = await cronService.listJobs();\n\n if (jobs.length === 0) {\n console.log('No scheduled tasks.');\n return;\n }\n\n console.log('Scheduled Tasks:\\n');\n const { getCronPayloadText } = await import('../../cron/job-content.js');\n for (const job of jobs) {\n const state = job.enabled ? 'enabled ' : 'disabled';\n console.log(` ${job.id} [${state}] - ${describeSchedule(job.schedule)}`);\n console.log(` ${getCronPayloadText({ payload: job.payload })}`);\n console.log(` Next: ${job.state.nextRunAtMs ? new Date(job.state.nextRunAtMs).toISOString() : 'N/A'}`);\n console.log();\n }\n });\n }),\n );\n\n cmd.addCommand(\n new Command('add')\n .description('Add a scheduled task')\n .option('--name <text>', 'Task name')\n .option('--at <time>', 'One-shot time: ISO timestamp or duration like 20m')\n .option('--every <duration>', 'Interval like 10m, 1h, 1d')\n .option('--cron <expr>', 'Cron expression (e.g., \"0 9 * * *\")')\n .option('--tz <iana>', 'IANA timezone for --cron')\n .option('--message <text>', 'Message to send (system event)')\n .option('--workflow <id>', 'Workflow definition id')\n .option('--goal <text>', 'Optional workflow goal')\n .option('--input-json <json>', 'Workflow input payload as JSON object')\n .option('--agent-id <id>', 'Agent profile for workflow or isolated jobs')\n .option('--no-wait', 'Start workflow and return without waiting for completion')\n .option('--channel <name>', 'Delivery channel (e.g. telegram)')\n .option('--to <chatId>', 'Delivery recipient chat id')\n .action(async (options) => {\n const hasWorkflow = Boolean(options.workflow?.trim());\n const hasMessage = Boolean(options.message?.trim());\n const schedule = resolveSchedule(options);\n if (!schedule || (!hasWorkflow && !hasMessage) || (hasWorkflow && hasMessage)) {\n console.error(\n 'Error: provide exactly one schedule (--at, --every, --cron) and exactly one of --message or --workflow',\n );\n process.exit(1);\n }\n\n await withCronService(async (cronService) => {\n if (hasWorkflow) {\n let inputEnvelope: { payload: unknown } | undefined;\n if (options.inputJson) {\n try {\n inputEnvelope = { payload: JSON.parse(options.inputJson) as unknown };\n } catch {\n console.error('Error: --input-json must be valid JSON');\n process.exit(1);\n }\n }\n const agentId = options.agentId?.trim() || undefined;\n const delivery =\n options.channel?.trim() && options.to?.trim()\n ? {\n mode: 'announce' as const,\n channel: options.channel.trim(),\n to: options.to.trim(),\n }\n : undefined;\n const result = await cronService.addJob(schedule, {\n name: options.name,\n sessionTarget: 'isolated',\n ...(agentId ? { agentId } : {}),\n delivery,\n payload: {\n kind: 'workflowRun',\n definitionId: options.workflow.trim(),\n ...(options.goal?.trim() ? { goal: options.goal.trim() } : {}),\n ...(inputEnvelope ? { inputEnvelope } : {}),\n ...(agentId ? { agentId } : {}),\n ...(options.noWait ? { waitForCompletion: false } : {}),\n },\n });\n console.log(`✅ Added workflow job ${result.id}`);\n console.log(` Schedule: ${describeSchedule(result.schedule)}`);\n console.log(` Workflow: ${options.workflow.trim()}`);\n return;\n }\n\n const result = await cronService.addJob(schedule, {\n name: options.name,\n payload: { kind: 'systemEvent', text: options.message },\n });\n\n console.log(`✅ Added job ${result.id}`);\n console.log(` Schedule: ${describeSchedule(result.schedule)}`);\n });\n }),\n );\n\n cmd.addCommand(\n new Command('remove')\n .description('Remove a scheduled task')\n .argument('<id>', 'Job ID')\n .action(async (id) => {\n await withCronService(async (cronService) => {\n const success = await cronService.removeJob(id);\n if (success) {\n console.log(`✅ Removed job ${id}`);\n } else {\n console.error(`Job ${id} not found`);\n process.exit(1);\n }\n });\n }),\n );\n\n cmd.addCommand(\n new Command('enable')\n .description('Enable a scheduled task')\n .argument('<id>', 'Job ID')\n .action(async (id) => {\n await withCronService(async (cronService) => {\n const success = await cronService.toggleJob(id, true);\n if (success) {\n console.log(`✅ Enabled job ${id}`);\n } else {\n console.error(`Job ${id} not found`);\n process.exit(1);\n }\n });\n }),\n );\n\n cmd.addCommand(\n new Command('disable')\n .description('Disable a scheduled task')\n .argument('<id>', 'Job ID')\n .action(async (id) => {\n await withCronService(async (cronService) => {\n const success = await cronService.toggleJob(id, false);\n if (success) {\n console.log(`✅ Disabled job ${id}`);\n } else {\n console.error(`Job ${id} not found`);\n process.exit(1);\n }\n });\n }),\n );\n\n const runNowAction = async (id: string) => {\n await withCronService(async (cronService) => {\n try {\n await cronService.runJobNow(id);\n console.log(`✅ Triggered job ${id}`);\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n console.error(message);\n process.exit(1);\n }\n });\n };\n\n cmd.addCommand(\n new Command('run')\n .description('Run a scheduled task immediately')\n .argument('<id>', 'Job ID')\n .action(runNowAction),\n );\n\n cmd.addCommand(\n new Command('trigger')\n .description('Alias for `cron run`')\n .argument('<id>', 'Job ID')\n .action(runNowAction),\n );\n\n return cmd;\n}\n\nregister({\n id: 'cron',\n name: 'cron',\n description: 'Manage scheduled tasks',\n factory: createCronCommand,\n metadata: {\n category: 'utility',\n examples: [\n 'xopc cron list',\n 'xopc cron add --cron \"0 9 * * *\" --message \"Hello\"',\n 'xopc cron add --every 1h --workflow weekly_review',\n 'xopc cron enable abc12345',\n 'xopc cron run abc12345',\n ],\n },\n});\n\nexport { createCronCommand };\n"],"mappings":"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"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { init_loader, loadConfig } from "../../../../config/loader.js";
|
|
2
|
-
//#region src/cli/commands/doctor/checks/cron-health.ts
|
|
3
|
-
init_loader();
|
|
4
|
-
async function checkCronHealth(ctx) {
|
|
5
|
-
let cfg;
|
|
6
|
-
try {
|
|
7
|
-
cfg = loadConfig(ctx.configPath);
|
|
8
|
-
} catch {
|
|
9
|
-
return {
|
|
10
|
-
id: "cron-health",
|
|
11
|
-
label: "Cron",
|
|
12
|
-
status: "skip",
|
|
13
|
-
message: "Config could not be loaded; skipped.",
|
|
14
|
-
hints: []
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
if (cfg.cron?.enabled === false) return {
|
|
18
|
-
id: "cron-health",
|
|
19
|
-
label: "Cron",
|
|
20
|
-
status: "skip",
|
|
21
|
-
message: "Cron is disabled in config; skipped.",
|
|
22
|
-
hints: []
|
|
23
|
-
};
|
|
24
|
-
return {
|
|
25
|
-
id: "cron-health",
|
|
26
|
-
label: "Cron",
|
|
27
|
-
status: "pass",
|
|
28
|
-
message: "Cron is enabled. Scheduled jobs are stored in SQLite.",
|
|
29
|
-
hints: ["Run: xopc doctor --deep for SQLite integrity checks."]
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
//#endregion
|
|
33
|
-
export { checkCronHealth };
|
|
34
|
-
|
|
35
|
-
//# sourceMappingURL=cron-health.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cron-health.js","names":[],"sources":["../../../../../../src/cli/commands/doctor/checks/cron-health.ts"],"sourcesContent":["import { loadConfig } from '../../../../config/loader.js';\nimport type { Config } from '../../../../config/schema.js';\nimport type { CheckResult, DoctorContext } from '../types.js';\n\nexport async function checkCronHealth(ctx: DoctorContext): Promise<CheckResult> {\n let cfg: Config;\n try {\n cfg = loadConfig(ctx.configPath);\n } catch {\n return {\n id: 'cron-health',\n label: 'Cron',\n status: 'skip',\n message: 'Config could not be loaded; skipped.',\n hints: [],\n };\n }\n\n if (cfg.cron?.enabled === false) {\n return {\n id: 'cron-health',\n label: 'Cron',\n status: 'skip',\n message: 'Cron is disabled in config; skipped.',\n hints: [],\n };\n }\n\n return {\n id: 'cron-health',\n label: 'Cron',\n status: 'pass',\n message: 'Cron is enabled. Scheduled jobs are stored in SQLite.',\n hints: ['Run: xopc doctor --deep for SQLite integrity checks.'],\n };\n}\n"],"mappings":";;aAA0D;AAI1D,eAAsB,gBAAgB,KAA0C;CAC9E,IAAI;AACJ,KAAI;AACF,QAAM,WAAW,IAAI,WAAW;SAC1B;AACN,SAAO;GACL,IAAI;GACJ,OAAO;GACP,QAAQ;GACR,SAAS;GACT,OAAO,EAAE;GACV;;AAGH,KAAI,IAAI,MAAM,YAAY,MACxB,QAAO;EACL,IAAI;EACJ,OAAO;EACP,QAAQ;EACR,SAAS;EACT,OAAO,EAAE;EACV;AAGH,QAAO;EACL,IAAI;EACJ,OAAO;EACP,QAAQ;EACR,SAAS;EACT,OAAO,CAAC,uDAAuD;EAChE"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
export interface CronUsageSummary {
|
|
2
|
-
input_tokens?: number;
|
|
3
|
-
output_tokens?: number;
|
|
4
|
-
total_tokens?: number;
|
|
5
|
-
}
|
|
6
|
-
export interface JobExecution {
|
|
7
|
-
id: string;
|
|
8
|
-
jobId: string;
|
|
9
|
-
status: 'running' | 'success' | 'failed' | 'cancelled' | 'skipped';
|
|
10
|
-
startedAt: string;
|
|
11
|
-
endedAt?: string;
|
|
12
|
-
duration?: number;
|
|
13
|
-
error?: string;
|
|
14
|
-
output?: string;
|
|
15
|
-
retryCount: number;
|
|
16
|
-
summary?: string;
|
|
17
|
-
sessionId?: string;
|
|
18
|
-
sessionKey?: string;
|
|
19
|
-
/** Persisted for local run logs (e.g. `cron` for isolated agent jobs). */
|
|
20
|
-
sessionType?: string;
|
|
21
|
-
model?: string;
|
|
22
|
-
provider?: string;
|
|
23
|
-
usage?: CronUsageSummary;
|
|
24
|
-
workflowRunId?: string;
|
|
25
|
-
}
|
|
26
|
-
/** One row for GET /api/cron/runs/history (optional display name from job definition). */
|
|
27
|
-
export interface CronRunHistoryRow extends JobExecution {
|
|
28
|
-
jobName?: string;
|
|
29
|
-
}
|
|
30
|
-
export type CronRunStatus = 'ok' | 'error' | 'skipped';
|
|
31
|
-
export interface CronRunOutcome {
|
|
32
|
-
status: CronRunStatus;
|
|
33
|
-
error?: string;
|
|
34
|
-
summary?: string;
|
|
35
|
-
sessionId?: string;
|
|
36
|
-
sessionKey?: string;
|
|
37
|
-
sessionType?: string;
|
|
38
|
-
model?: string;
|
|
39
|
-
provider?: string;
|
|
40
|
-
usage?: CronUsageSummary;
|
|
41
|
-
workflowRunId?: string;
|
|
42
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import type { CronRunOutcome, JobData, JobExecution, JobExecutor, JobExecutorDeps } from './types.js';
|
|
2
|
-
import type { CronRunLogStore } from './run-log-store.js';
|
|
3
|
-
export declare class DefaultJobExecutor implements JobExecutor {
|
|
4
|
-
private history;
|
|
5
|
-
private runningJobs;
|
|
6
|
-
private agentService;
|
|
7
|
-
private messageBus;
|
|
8
|
-
private heartbeatService;
|
|
9
|
-
private sessionStore;
|
|
10
|
-
private runLogStore;
|
|
11
|
-
private getDefaultCronAgentId;
|
|
12
|
-
private workflowRunService;
|
|
13
|
-
private goalRunner;
|
|
14
|
-
setRunLogStore(store: CronRunLogStore | null): void;
|
|
15
|
-
setDeps(deps: JobExecutorDeps): void;
|
|
16
|
-
private buildCronOutboundMessage;
|
|
17
|
-
execute(job: JobData, signal: AbortSignal, deps?: JobExecutorDeps): Promise<void>;
|
|
18
|
-
/**
|
|
19
|
-
* Perform the actual job work - integrate with AgentService
|
|
20
|
-
*/
|
|
21
|
-
protected performJob(job: JobData, signal: AbortSignal): Promise<CronRunOutcome>;
|
|
22
|
-
private executeGoalContinue;
|
|
23
|
-
private executeWorkflowRun;
|
|
24
|
-
private waitForWorkflowRunOutcome;
|
|
25
|
-
private deliverWorkflowRunOutcome;
|
|
26
|
-
/**
|
|
27
|
-
* Execute in main session - sends system event
|
|
28
|
-
*/
|
|
29
|
-
private executeMainSession;
|
|
30
|
-
/**
|
|
31
|
-
* Execute in isolated mode - runs agent independently
|
|
32
|
-
*/
|
|
33
|
-
private executeIsolated;
|
|
34
|
-
/**
|
|
35
|
-
* Basic execution without agent service (fallback)
|
|
36
|
-
*/
|
|
37
|
-
private basicExecute;
|
|
38
|
-
/**
|
|
39
|
-
* Cancel a running job
|
|
40
|
-
*/
|
|
41
|
-
cancelJob(jobId: string): boolean;
|
|
42
|
-
/**
|
|
43
|
-
* Get execution history for a job
|
|
44
|
-
*/
|
|
45
|
-
getHistory(jobId: string, limit?: number): JobExecution[];
|
|
46
|
-
/**
|
|
47
|
-
* Get currently running executions
|
|
48
|
-
*/
|
|
49
|
-
getRunningExecutions(): JobExecution[];
|
|
50
|
-
/**
|
|
51
|
-
* Check if a job is currently running
|
|
52
|
-
*/
|
|
53
|
-
isRunning(jobId: string): boolean;
|
|
54
|
-
/**
|
|
55
|
-
* Get consecutive error count for a job
|
|
56
|
-
*/
|
|
57
|
-
getConsecutiveErrors(jobId: string): number;
|
|
58
|
-
/**
|
|
59
|
-
* Calculate backoff delay for a job
|
|
60
|
-
*/
|
|
61
|
-
calculateBackoff(jobId: string): number;
|
|
62
|
-
/**
|
|
63
|
-
* Clear old history entries
|
|
64
|
-
*/
|
|
65
|
-
cleanupHistory(maxAgeDays?: number): void;
|
|
66
|
-
private addToHistory;
|
|
67
|
-
}
|