@xopcai/xopc 0.0.180 → 0.0.187
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 +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{activity-store-DFKtQDgE.js → activity-store-WlR2zEvA.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CcTvB_4W.js → agent-avatar-dicebear-RedDszrG.js} +1 -1
- package/dist/gateway/static/root/assets/agents-Df9mTa-K.js +2 -0
- package/dist/gateway/static/root/assets/{api-CUClAvuL.js → api-tVOllncq.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-Ib-cWKHM.js → app-management-settings-panel-C9hKBzaF.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-CRSN8WuA.js → appearance-settings-5cQvq7hd.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-Bd3tN-k2.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-BBF9zspN.js → archive-plugin-Ct-shK4n.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-D3QQfA7w.js → attachment-load-CpPj3m-q.js} +1 -1
- package/dist/gateway/static/root/assets/automations-page-w6K9GZQ7.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-D78XOjJ3.js → binary-plugins-BpSXZBle.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-D_VVXlYX.js → block-editor-B8hR2tXc.js} +46 -46
- package/dist/gateway/static/root/assets/browser-settings-page-jb5Hf-hm.js +8 -0
- package/dist/gateway/static/root/assets/browser-workflow-inputs-D_LAXUrh.js +1 -0
- package/dist/gateway/static/root/assets/{browser-workflows-page-58DBMXgG.js → browser-workflows-page-CPAs7-6s.js} +2 -2
- package/dist/gateway/static/root/assets/capabilities-settings-panel-BjUe4raq.js +7 -0
- package/dist/gateway/static/root/assets/capability-presets-api-CKklVY2p.js +1 -0
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-DiWIMYRr.js +1 -0
- package/dist/gateway/static/root/assets/{channel-recipient-api-DYtoNV5A.js → channel-recipient-api-WWN-nbFL.js} +1 -1
- package/dist/gateway/static/root/assets/channels-settings-D8IkjMuX.js +1 -0
- package/dist/gateway/static/root/assets/channels-status-swr-CySs1GQX.js +1 -0
- package/dist/gateway/static/root/assets/{connector-logo-CxIXnifA.js → connector-logo-CdNkVFdB.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-BT2ahw52.js +2 -0
- package/dist/gateway/static/root/assets/desktop-pet-Bm_IEAf3.js +1 -0
- package/dist/gateway/static/root/assets/{desktop-pet-settings-BOIp4q0Z.js → desktop-pet-settings-C0Ve04-G.js} +1 -1
- package/dist/gateway/static/root/assets/{directory-picker-path-field-C8_lsW6S.js → directory-picker-path-field-B2cvhvAI.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-CMNnSJP6.js → extension-debug-page-DNashgGu.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-t0pJqLvM.js → extension-page-Bvo-5htX.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-aiR-tKnW.js → extension-settings-page-BBESdISV.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-api-CkyQBD6r.js → gateway-config-api-ClQvokMo.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-BIZfAgfB.js → gateway-settings-CIRs2QVy.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-CSU7UvzG.js → gateway-startup-retry-CntXJF6W.js} +1 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-CWKcZuvc.js +1 -0
- package/dist/gateway/static/root/assets/home-page-C59f8UJw.js +3 -0
- package/dist/gateway/static/root/assets/{image-generation-api-BR6Kb77X.js → image-generation-api-DjSAQwGy.js} +1 -1
- package/dist/gateway/static/root/assets/index-D-YfWVyS.css +1 -0
- package/dist/gateway/static/root/assets/index-vi5KlR5_.js +222 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-D76uYKeQ.js → keyboard-shortcuts-settings-ahKHpjoW.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-DRB4UQBE.js +2 -0
- package/dist/gateway/static/root/assets/{local-apps-page-BsLnojTh.js → local-apps-page-B6GKdgza.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-BNC8HUCI.js → locale-store-Bff30u5V.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-CNp4XiBN.js +7 -0
- package/dist/gateway/static/root/assets/{markdown-split-D6smTQWD.js → markdown-split-BeNMJm_i.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-D1TmMF0A.js → media-plugins-Bdzrj_-6.js} +1 -1
- package/dist/gateway/static/root/assets/messages-CPxz48hr.js +3 -0
- package/dist/gateway/static/root/assets/{notes-page-Vt-diFf0.js → notes-page-MYIi-9S9.js} +1 -1
- package/dist/gateway/static/root/assets/notes-workbench-DqSkeDXX.js +4 -0
- package/dist/gateway/static/root/assets/{page-tabs-BnSzIjH0.js → page-tabs-3t88bbGx.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-CF12Eqi4.js → preview-open-alternatives-Cf_BWbeE.js} +1 -1
- package/dist/gateway/static/root/assets/product-delivery-C8JbSj5Y.js +1 -0
- package/dist/gateway/static/root/assets/{product-open-page-Du0TE_CU.js → product-open-page-CKq73c98.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-BrbHs4Wp.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-B80rtkj6.js +1 -0
- package/dist/gateway/static/root/assets/remote-access-hub-_Q3GEznb.js +1 -0
- package/dist/gateway/static/root/assets/{schema-form-BKvpxqof.js → schema-form-NqOm-OG1.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-55dJOUVg.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-CSFCZj14.js +1 -0
- package/dist/gateway/static/root/assets/{settings-form-section-kt6GIS32.js → settings-form-section-DYAS8p8z.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-loading-skeleton-85eUPcKz.js → settings-loading-skeleton-DZFhxihA.js} +1 -1
- package/dist/gateway/static/root/assets/settings-page-BSIiMLi-.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-layout-CkkCee_x.js → settings-page-layout-DfFfkdED.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-q_yE6-H1.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-BtLEstaI.js → share-preview-page-CYtrQaZN.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-gYkRX9Ik.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-BoNBMKW6.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-GZHKDFSb.js +2 -0
- package/dist/gateway/static/root/assets/{skills-page.utils-C2SHvq8V.js → skills-page.utils-BBXirAjc.js} +1 -1
- package/dist/gateway/static/root/assets/system-settings-panel-DLf5YvFl.js +1 -0
- package/dist/gateway/static/root/assets/task-detail-page-DFGkuYfl.js +1 -0
- package/dist/gateway/static/root/assets/{theme-store-ClDa_Bci.js → theme-store-y7e_tvYi.js} +1 -1
- package/dist/gateway/static/root/assets/time-picker-5sHEZ5w5.js +1 -0
- package/dist/gateway/static/root/assets/{typed-models-lib-GsmwmB40.js → typed-models-lib-DR12j_dr.js} +1 -1
- package/dist/gateway/static/root/assets/use-save-bar-registration-BsvcJgZl.js +1 -0
- package/dist/gateway/static/root/assets/user-context-page-q5dr8JFG.js +1 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-Blaxsbb3.js → voice-api-key-field-DKADXFWD.js} +1 -1
- package/dist/gateway/static/root/assets/work-discovery-overlay-BC1nExf8.js +1 -0
- package/dist/gateway/static/root/assets/work-discovery-page-fNvSg40M.js +1 -0
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-CTG4RpRE.js → workflow-run-setup-panel-C8X5W-8k.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-YJBKmPYK.js +11 -0
- package/dist/gateway/static/root/index.html +8 -8
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/product-delivery.js +1 -3
- package/dist/packages/gateway-contract/src/project-monitoring.js +31 -0
- package/dist/packages/gateway-contract/src/task-lifecycle.js +67 -0
- package/dist/packages/gateway-contract/src/task-runs.js +80 -0
- package/dist/packages/gateway-contract/src/tasks.js +353 -0
- package/dist/src/activity/types.d.ts +2 -2
- package/dist/src/agent/agent-instance-gateway.d.ts +1 -1
- package/dist/src/agent/agent-manager.d.ts +3 -3
- package/dist/src/agent/agent-manager.js +23 -22
- package/dist/src/agent/bootstrap/filter-bootstrap-files.js +1 -1
- package/dist/src/agent/child-agent-factory.d.ts +1 -2
- package/dist/src/agent/child-agent-factory.js +4 -10
- package/dist/src/agent/context/execution-scope.d.ts +2 -2
- package/dist/src/agent/context/execution-scope.js +17 -20
- package/dist/src/agent/context/project-context.d.ts +6 -2
- package/dist/src/agent/context/project-context.js +17 -25
- package/dist/src/agent/context/workspace-templates/AGENTS.md +1 -1
- package/dist/src/agent/embedded/model-runtime.js +1 -1
- package/dist/src/agent/embedded/run-turn.js +2 -0
- package/dist/src/agent/embedded/session-tool-result-guard.d.ts +2 -0
- package/dist/src/agent/embedded/session-tool-result-guard.js +16 -4
- package/dist/src/agent/image/tool-model-config.js +1 -1
- package/dist/src/agent/inbound/inbound-loop.js +1 -1
- package/dist/src/agent/inbound/turn-dispatcher.js +1 -1
- package/dist/src/agent/ipc/inbox.js +1 -1
- package/dist/src/agent/lifecycle/progress.js +0 -1
- package/dist/src/agent/mcp/bundle-mcp-policy.d.ts +3 -5
- package/dist/src/agent/mcp/bundle-mcp-policy.js +8 -5
- package/dist/src/agent/mcp/index.js +2 -2
- package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +5 -6
- package/dist/src/agent/memory/builtin-provider.d.ts +1 -5
- package/dist/src/agent/memory/builtin-provider.js +75 -229
- package/dist/src/agent/memory/compaction.js +1 -1
- package/dist/src/agent/memory/context/planner.d.ts +3 -0
- package/dist/src/agent/memory/context/planner.js +32 -11
- package/dist/src/agent/memory/context/types.d.ts +6 -0
- package/dist/src/agent/memory/create-memory-manager.d.ts +1 -2
- package/dist/src/agent/memory/create-memory-manager.js +4 -4
- package/dist/src/agent/memory/dreaming/config.d.ts +16 -13
- package/dist/src/agent/memory/dreaming/config.js +47 -40
- package/dist/src/agent/memory/dreaming/constants.d.ts +5 -22
- package/dist/src/agent/memory/dreaming/constants.js +6 -24
- package/dist/src/agent/memory/dreaming/deep-promotion.d.ts +4 -11
- package/dist/src/agent/memory/dreaming/deep-promotion.js +126 -279
- package/dist/src/agent/memory/dreaming/light-sweep.d.ts +5 -2
- package/dist/src/agent/memory/dreaming/light-sweep.js +79 -197
- package/dist/src/agent/memory/dreaming/preview.d.ts +3 -9
- package/dist/src/agent/memory/dreaming/preview.js +34 -77
- package/dist/src/agent/memory/dreaming/promotion-lifecycle.d.ts +1 -15
- package/dist/src/agent/memory/dreaming/promotion-lifecycle.js +3 -42
- package/dist/src/agent/memory/dreaming/rem-patterns.d.ts +7 -13
- package/dist/src/agent/memory/dreaming/rem-patterns.js +104 -261
- package/dist/src/agent/memory/dreaming/runner.d.ts +10 -0
- package/dist/src/agent/memory/dreaming/runner.js +78 -0
- package/dist/src/agent/memory/dreaming/schedule.d.ts +23 -0
- package/dist/src/agent/memory/dreaming/schedule.js +38 -0
- package/dist/src/agent/memory/dreaming/scope.d.ts +2 -4
- package/dist/src/agent/memory/dreaming/scope.js +21 -13
- package/dist/src/agent/memory/dreaming/utils.d.ts +2 -51
- package/dist/src/agent/memory/dreaming/utils.js +4 -112
- package/dist/src/agent/memory/index.d.ts +1 -3
- package/dist/src/agent/memory/index.js +2 -3
- package/dist/src/agent/memory/manager.d.ts +1 -5
- package/dist/src/agent/memory/manager.js +1 -27
- package/dist/src/agent/memory/memory-config.d.ts +1 -6
- package/dist/src/agent/memory/memory-config.js +2 -23
- package/dist/src/agent/memory/summary-generator.d.ts +1 -1
- package/dist/src/agent/memory/types.d.ts +5 -48
- package/dist/src/agent/memory/understanding/service.js +1 -2
- package/dist/src/agent/memory/user-context-coordinator.d.ts +2 -1
- package/dist/src/agent/memory/user-context-coordinator.js +32 -14
- package/dist/src/agent/messaging/command-handler.d.ts +1 -9
- package/dist/src/agent/messaging/command-handler.js +0 -8
- package/dist/src/agent/messaging/outbound-coordinator.d.ts +5 -14
- package/dist/src/agent/messaging/outbound-coordinator.js +4 -9
- package/dist/src/agent/middleware/index.d.ts +1 -1
- package/dist/src/agent/middleware/self-verify.d.ts +2 -2
- package/dist/src/agent/middleware/self-verify.js +7 -7
- package/dist/src/agent/orchestration/agent-orchestrator.js +16 -66
- package/dist/src/agent/prompt/response-language.d.ts +3 -0
- package/dist/src/agent/prompt/response-language.js +11 -0
- package/dist/src/agent/prompt/sections/behavior.js +2 -2
- package/dist/src/agent/prompt/sections/memory-skills.js +10 -13
- package/dist/src/agent/prompt/sections/response-language.d.ts +2 -0
- package/dist/src/agent/prompt/sections/response-language.js +13 -0
- package/dist/src/agent/prompt/sections/tooling.js +0 -2
- package/dist/src/agent/prompt/service-prompt-builder.d.ts +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +6 -29
- package/dist/src/agent/prompt/subagent-context.d.ts +2 -0
- package/dist/src/agent/prompt/subagent-context.js +1 -0
- package/dist/src/agent/prompt/system-prompt.d.ts +3 -0
- package/dist/src/agent/prompt/system-prompt.js +10 -2
- package/dist/src/agent/service/direct-turn-helpers.d.ts +2 -2
- package/dist/src/agent/service/direct-turn-helpers.js +8 -5
- package/dist/src/agent/service/process-direct-streaming.d.ts +2 -2
- package/dist/src/agent/service/process-direct-streaming.js +2 -2
- package/dist/src/agent/service.d.ts +6 -9
- package/dist/src/agent/service.js +31 -25
- package/dist/src/agent/service.types.d.ts +2 -15
- package/dist/src/agent/session/index.d.ts +1 -1
- package/dist/src/agent/session/session-config-service.d.ts +1 -0
- package/dist/src/agent/session/session-config-service.js +14 -0
- package/dist/src/agent/session/session-inspector.js +1 -1
- package/dist/src/agent/session/session-state-bag.d.ts +8 -8
- package/dist/src/agent/session/session-state-bag.js +10 -10
- package/dist/src/agent/skills/hub-lock.js +1 -1
- package/dist/src/agent/source-context/types.d.ts +1 -1
- package/dist/src/agent/source-context/types.js +1 -1
- package/dist/src/agent/starter-agents.js +1 -1
- package/dist/src/agent/{outcomes → tasks}/execution-verifier.d.ts +3 -0
- package/dist/src/agent/{outcomes → tasks}/execution-verifier.js +3 -2
- package/dist/src/agent/tasks/task-judge-service.d.ts +31 -0
- package/dist/src/agent/tasks/task-judge-service.js +183 -0
- package/dist/src/agent/tool-manuals/index.js +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.js +253 -118
- package/dist/src/agent/tools/apply-patch.d.ts +1 -5
- package/dist/src/agent/tools/apply-patch.js +1 -12
- package/dist/src/agent/tools/clarify-tool.js +1 -1
- package/dist/src/agent/tools/delegate-tool.js +4 -4
- package/dist/src/agent/tools/dreaming-tool.d.ts +0 -1
- package/dist/src/agent/tools/dreaming-tool.js +48 -80
- package/dist/src/agent/tools/exec-command.d.ts +0 -2
- package/dist/src/agent/tools/exec-command.js +2 -19
- package/dist/src/agent/tools/factory.d.ts +2 -4
- package/dist/src/agent/tools/factory.js +8 -29
- package/dist/src/agent/tools/index.d.ts +0 -2
- package/dist/src/agent/tools/index.js +1 -3
- package/dist/src/agent/tools/managed-job-tool.js +1 -1
- package/dist/src/agent/tools/memory-tool.d.ts +0 -3
- package/dist/src/agent/tools/memory-tool.js +14 -36
- package/dist/src/agent/tools/tool-manual-tool.js +1 -1
- package/dist/src/agent/tools/workflow-tool.d.ts +1 -1
- package/dist/src/agent/tools/workflow-tool.js +4 -4
- package/dist/src/agent/tools/write.d.ts +0 -2
- package/dist/src/agent/tools/write.js +0 -11
- package/dist/src/agent/tools/xopc-use-tool.d.ts +5 -4
- package/dist/src/agent/tools/xopc-use-tool.js +987 -143
- package/dist/src/agent/transcript/thinking-types.d.ts +3 -0
- package/dist/src/agent/workflow/builtins/index.js +2 -2
- package/dist/src/agent/workflow/index.js +2 -2
- package/dist/src/agent/workflow/subagent-runner.js +1 -0
- package/dist/src/agent/workflow/workflow-child-tools.js +0 -3
- package/dist/src/agent/workspace-runtime/registry.d.ts +2 -4
- package/dist/src/agent/workspace-runtime/registry.js +1 -2
- package/dist/src/agent-manifest/index.js +3 -3
- package/dist/src/agent-manifest/resolver.d.ts +20 -1
- package/dist/src/agent-manifest/resolver.js +47 -20
- package/dist/src/agent-manifest/schema.d.ts +128 -52
- package/dist/src/agent-manifest/schema.js +46 -8
- package/dist/src/agent-runtime/memory-runtime.d.ts +2 -2
- package/dist/src/ai-assist/text-assist.js +4 -4
- package/dist/src/auth/credentials.js +2 -2
- package/dist/src/auth/profiles/store.js +1 -1
- package/dist/src/auth/sync-provider-auth.js +2 -2
- package/dist/src/automations/domain/defaults.js +1 -1
- package/dist/src/automations/domain/types.d.ts +15 -1
- package/dist/src/automations/domain/validation.d.ts +336 -12
- package/dist/src/automations/domain/validation.js +6 -0
- package/dist/src/automations/draft/automation-draft-prompt.js +3 -3
- package/dist/src/automations/draft/automation-draft-validator.d.ts +62 -1
- package/dist/src/automations/draft/automation-draft-validator.js +1 -0
- package/dist/src/automations/index.js +1 -1
- package/dist/src/automations/service/action-executor.d.ts +2 -2
- package/dist/src/automations/service/action-executor.js +21 -1
- package/dist/src/automations/service/automation-service.js +21 -21
- package/dist/src/browser/providers/browser-ext-install.js +1 -1
- package/dist/src/browser/providers/cloakbrowser.js +1 -1
- package/dist/src/chat-commands/builtins/understanding.d.ts +1 -0
- package/dist/src/chat-commands/builtins/understanding.js +91 -0
- package/dist/src/chat-commands/context.d.ts +0 -3
- package/dist/src/chat-commands/context.js +0 -2
- package/dist/src/chat-commands/index.d.ts +1 -2
- package/dist/src/chat-commands/index.js +3 -5
- package/dist/src/chat-commands/types.d.ts +0 -3
- package/dist/src/cli/command-catalog.js +0 -43
- package/dist/src/cli/command-loaders.js +0 -1
- package/dist/src/cli/command-manifest.js +0 -4
- 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/gateway/lifecycle-core.js +1 -1
- package/dist/src/cli/commands/gateway/restart-health.d.ts +2 -2
- package/dist/src/cli/commands/gateway/restart-health.js +3 -3
- package/dist/src/cli/commands/gateway/service.js +4 -4
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/onboard/gateway.js +1 -1
- package/dist/src/cli/commands/project.js +12 -33
- package/dist/src/cli/commands/providers.d.ts +4 -4
- package/dist/src/cli/commands/providers.js +16 -16
- package/dist/src/cli/commands/search.js +7 -7
- package/dist/src/cli/commands/setup-shared/index.d.ts +2 -2
- package/dist/src/cli/commands/setup-shared/index.js +2 -2
- package/dist/src/cli/commands/setup-shared/output.d.ts +4 -4
- package/dist/src/cli/commands/setup-shared/output.js +26 -26
- package/dist/src/cli/commands/setup-shared/runner.d.ts +8 -8
- package/dist/src/cli/commands/setup-shared/runner.js +9 -9
- package/dist/src/cli/commands/setup-shared/types.d.ts +2 -2
- package/dist/src/cli/commands/skills.d.ts +7 -0
- package/dist/src/cli/commands/skills.js +16 -16
- package/dist/src/cli/commands/update.js +1 -1
- package/dist/src/cli/commands/voice.d.ts +1 -1
- package/dist/src/cli/commands/voice.js +6 -6
- package/dist/src/cli/templates.js +1 -1
- package/dist/src/commands/agents.config.js +2 -18
- package/dist/src/config/agent-profile.d.ts +1 -1
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/index.js +7 -7
- package/dist/src/config/loader.js +1 -1
- package/dist/src/config/models-json.js +1 -1
- package/dist/src/config/paths.d.ts +0 -3
- package/dist/src/config/paths.js +2 -7
- package/dist/src/config/schema.d.ts +160 -258
- package/dist/src/config/schema.js +8 -114
- package/dist/src/config/web-patch.d.ts +0 -29
- package/dist/src/config/web-patch.js +2 -69
- package/dist/src/connectors/composio-catalog.js +7 -20
- package/dist/src/connectors/composio-sessions.js +14 -4
- package/dist/src/connectors/composio.d.ts +7 -2
- package/dist/src/connectors/composio.js +49 -40
- package/dist/src/connectors/connected-source-ingestion.js +2 -1
- package/dist/src/connectors/connected-source-normalizers.js +5 -5
- package/dist/src/connectors/connector-identity.d.ts +2 -0
- package/dist/src/connectors/connector-identity.js +64 -1
- package/dist/src/connectors/learning-coordinator.js +34 -15
- package/dist/src/connectors/learning-recipes.d.ts +2 -0
- package/dist/src/connectors/learning-recipes.js +11 -1
- package/dist/src/connectors/source-change-publisher.js +5 -4
- package/dist/src/connectors/types.d.ts +16 -0
- package/dist/src/daemon/launchd.js +2 -2
- package/dist/src/daemon/schtasks.js +1 -1
- package/dist/src/daemon/service.js +3 -3
- package/dist/src/daemon/systemd.js +1 -1
- package/dist/src/daemon/types.d.ts +5 -5
- package/dist/src/discussions/analyzer.d.ts +6 -6
- package/dist/src/discussions/analyzer.js +32 -22
- package/dist/src/discussions/index.d.ts +3 -2
- package/dist/src/discussions/index.js +5 -4
- package/dist/src/discussions/live-worker.d.ts +5 -3
- package/dist/src/discussions/live-worker.js +24 -12
- package/dist/src/discussions/{worker.d.ts → organizer-worker.d.ts} +3 -5
- package/dist/src/discussions/organizer-worker.js +58 -0
- package/dist/src/discussions/organizer.d.ts +22 -0
- package/dist/src/discussions/organizer.js +92 -0
- package/dist/src/discussions/repository.d.ts +16 -5
- package/dist/src/discussions/repository.js +159 -135
- package/dist/src/discussions/sealer.d.ts +25 -0
- package/dist/src/discussions/sealer.js +116 -0
- package/dist/src/discussions/service.d.ts +2 -1
- package/dist/src/discussions/service.js +70 -60
- package/dist/src/discussions/transcript.js +1 -1
- package/dist/src/discussions/types.d.ts +45 -20
- package/dist/src/discussions/types.js +4 -2
- package/dist/src/extensions/lockfile.js +1 -1
- package/dist/src/extensions/types/core.d.ts +3 -3
- package/dist/src/extensions/types/tui.d.ts +2 -2
- package/dist/src/extensions/update.d.ts +3 -3
- package/dist/src/extensions/update.js +13 -13
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/agent-builtin-tools.js +0 -1
- package/dist/src/gateway/agent-run-relay.d.ts +1 -1
- package/dist/src/gateway/agents-admin.js +17 -19
- package/dist/src/gateway/capability-presets-admin.d.ts +13 -0
- package/dist/src/gateway/capability-presets-admin.js +59 -2
- package/dist/src/gateway/chat-limits.d.ts +6 -2
- package/dist/src/gateway/chat-limits.js +17 -3
- package/dist/src/gateway/chat-stream/thinking-delta-coalescer.js +3 -3
- package/dist/src/gateway/dreaming-automation-reconciler.js +13 -12
- package/dist/src/gateway/file-path-classifier.js +1 -1
- package/dist/src/gateway/heartbeat/service.js +1 -1
- package/dist/src/gateway/hono/app.js +9 -10
- package/dist/src/gateway/hono/index.d.ts +1 -1
- package/dist/src/gateway/hono/index.js +2 -2
- package/dist/src/gateway/hono/lib/config-payload.d.ts +15 -35
- package/dist/src/gateway/hono/lib/config-payload.js +6 -4
- package/dist/src/gateway/hono/middleware/strict-rate-limit.d.ts +4 -0
- package/dist/src/gateway/hono/middleware/strict-rate-limit.js +8 -1
- package/dist/src/gateway/hono/routes/activity.js +1 -2
- package/dist/src/gateway/hono/routes/agent-stream.js +135 -34
- package/dist/src/gateway/hono/routes/capability-presets.js +27 -1
- package/dist/src/gateway/hono/routes/composer-history.js +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 +1 -6
- package/dist/src/gateway/hono/routes/connectors.js +35 -30
- package/dist/src/gateway/hono/routes/deps.d.ts +1 -0
- package/dist/src/gateway/hono/routes/discussions.js +13 -3
- package/dist/src/gateway/hono/routes/home.d.ts +1 -1
- package/dist/src/gateway/hono/routes/home.js +2 -2
- package/dist/src/gateway/hono/routes/index.js +2 -4
- package/dist/src/gateway/hono/routes/lazy-bundles.js +0 -16
- package/dist/src/gateway/hono/routes/media.js +9 -3
- package/dist/src/gateway/hono/routes/memory.js +38 -113
- package/dist/src/gateway/hono/routes/models.js +1 -1
- package/dist/src/gateway/hono/routes/projects.js +220 -588
- package/dist/src/gateway/hono/routes/public-gateway.js +4 -2
- package/dist/src/gateway/hono/routes/{work.d.ts → tasks.d.ts} +1 -1
- package/dist/src/gateway/hono/routes/tasks.js +343 -0
- package/dist/src/gateway/hono/routes/workflows.js +7 -8
- package/dist/src/gateway/hono/routes/you.d.ts +1 -1
- package/dist/src/gateway/hono/routes/you.js +250 -78
- package/dist/src/gateway/hono/sse.d.ts +1 -16
- package/dist/src/gateway/hono/sse.js +4 -161
- package/dist/src/gateway/index.js +2 -2
- package/dist/src/gateway/rate-limit/buckets.d.ts +3 -0
- package/dist/src/gateway/rate-limit/buckets.js +12 -0
- package/dist/src/gateway/security/csp.d.ts +2 -0
- package/dist/src/gateway/security/csp.js +4 -0
- package/dist/src/gateway/service/agent-runner.d.ts +32 -13
- package/dist/src/gateway/service/agent-runner.js +97 -46
- package/dist/src/gateway/service/config-coordinator.js +1 -1
- package/dist/src/gateway/service/run-gateway-agent.d.ts +1 -1
- package/dist/src/gateway/service/run-gateway-agent.js +27 -42
- package/dist/src/gateway/service/session-input-coordinator.d.ts +59 -0
- package/dist/src/gateway/service/session-input-coordinator.js +183 -0
- package/dist/src/gateway/service/sessions-api.d.ts +1 -0
- package/dist/src/gateway/service.d.ts +28 -16
- package/dist/src/gateway/service.js +150 -133
- package/dist/src/gateway/session-reset-service.js +6 -6
- package/dist/src/gateway/user-turn-input.d.ts +0 -1
- package/dist/src/heartbeat/index.js +1 -1
- package/dist/src/i18n/index.d.ts +0 -1
- package/dist/src/i18n/index.js +1 -2
- package/dist/src/i18n/language-consistency.d.ts +10 -0
- package/dist/src/i18n/language-consistency.js +34 -0
- package/dist/src/i18n/response-language.d.ts +8 -0
- package/dist/src/i18n/response-language.js +17 -0
- package/dist/src/i18n/share-tool-bundle.js +2 -2
- package/dist/src/mcp/channel-bridge.js +5 -3
- package/dist/src/media/store.js +1 -1
- package/dist/src/media/types.d.ts +1 -1
- package/dist/src/media/uri.js +1 -2
- package/dist/src/media-understanding/runner.d.ts +1 -1
- package/dist/src/media-understanding/runner.js +9 -9
- package/dist/src/media-understanding/types.d.ts +4 -4
- package/dist/src/mobile/notification-service.js +16 -21
- package/dist/src/mobile/notification-types.d.ts +2 -2
- package/dist/src/notes/types.d.ts +0 -1
- package/dist/src/proactive/events/product-event-bridge.js +17 -14
- package/dist/src/proactive/execution/context.js +45 -28
- package/dist/src/proactive/execution/insight.js +1 -1
- package/dist/src/proactive/temporal/worker.js +2 -2
- package/dist/src/projects/index.d.ts +0 -1
- package/dist/src/projects/index.js +1 -2
- package/dist/src/projects/project-loop.d.ts +16 -8
- package/dist/src/projects/project-loop.js +41 -48
- package/dist/src/projects/project-service.d.ts +14 -4
- package/dist/src/projects/project-service.js +18 -10
- package/dist/src/projects/project-store.d.ts +36 -3
- package/dist/src/projects/project-store.js +116 -14
- package/dist/src/projects/types.d.ts +50 -3
- package/dist/src/providers/auth-runtime/resolve-auth.js +1 -1
- package/dist/src/providers/index.js +2 -2
- package/dist/src/providers/model-registry.js +1 -1
- package/dist/src/providers/model-response.d.ts +4 -0
- package/dist/src/providers/model-response.js +28 -0
- package/dist/src/providers/register-runtime-providers.js +1 -1
- package/dist/src/session/config-types.d.ts +3 -0
- package/dist/src/session/index.d.ts +0 -1
- package/dist/src/session/index.js +1 -2
- package/dist/src/session/init-session-turn.js +6 -6
- package/dist/src/session/store.js +4 -4
- package/dist/src/session/types.d.ts +1 -6
- package/dist/src/share/site-proxy.js +1 -1
- package/dist/src/storage/sqlite/config-repository.js +7 -4
- package/dist/src/storage/sqlite/connection.js +1 -1
- package/dist/src/storage/sqlite/connector-account-repository.d.ts +12 -0
- package/dist/src/storage/sqlite/connector-account-repository.js +143 -0
- package/dist/src/storage/sqlite/connector-learning-repository.d.ts +5 -2
- package/dist/src/storage/sqlite/connector-learning-repository.js +14 -7
- package/dist/src/storage/sqlite/connector-repository.js +12 -3
- package/dist/src/storage/sqlite/connector-sync-policy-repository.d.ts +4 -3
- package/dist/src/storage/sqlite/connector-sync-policy-repository.js +20 -10
- package/dist/src/storage/sqlite/dreaming-repository.d.ts +61 -0
- package/dist/src/storage/sqlite/dreaming-repository.js +88 -0
- package/dist/src/storage/sqlite/index.d.ts +6 -4
- package/dist/src/storage/sqlite/index.js +7 -5
- package/dist/src/storage/sqlite/memory-readiness-repository.d.ts +7 -0
- package/dist/src/storage/sqlite/memory-readiness-repository.js +30 -0
- package/dist/src/storage/sqlite/memory-records-repository.d.ts +31 -26
- package/dist/src/storage/sqlite/memory-records-repository.js +109 -138
- package/dist/src/storage/sqlite/migrations/090_outcome_contract_judgment.sql +2 -0
- package/dist/src/storage/sqlite/migrations/091_context_allocation.sql +1 -0
- package/dist/src/storage/sqlite/migrations/092_outcome_execution_runtime.sql +88 -0
- package/dist/src/storage/sqlite/migrations/093_remove_legacy_goals.sql +174 -0
- package/dist/src/storage/sqlite/migrations/094_outcome_judgment_and_authority.sql +3 -0
- package/dist/src/storage/sqlite/migrations/095_session_input_queue.sql +35 -0
- package/dist/src/storage/sqlite/migrations/096_drop_work_intakes.sql +6 -0
- package/dist/src/storage/sqlite/migrations/097_work_item_lifecycle.sql +194 -0
- package/dist/src/storage/sqlite/migrations/098_discussion_note_documents.sql +99 -0
- package/dist/src/storage/sqlite/migrations/099_task_model.sql +500 -0
- package/dist/src/storage/sqlite/migrations/100_project_task_taskrun.sql +763 -0
- package/dist/src/storage/sqlite/migrations/101_session_response_language.sql +1 -0
- package/dist/src/storage/sqlite/migrations/102_session_user_context_mode.sql +2 -0
- package/dist/src/storage/sqlite/migrations/103_finalize_structured_memory.sql +3 -0
- package/dist/src/storage/sqlite/migrations/104_turn_memory_feedback.sql +77 -0
- package/dist/src/storage/sqlite/migrations/105_dreaming_ledger.sql +34 -0
- package/dist/src/storage/sqlite/migrations/106_dreaming_run_reproducibility.sql +2 -0
- package/dist/src/storage/sqlite/migrations/107_connector_accounts.sql +146 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +37 -5
- package/dist/src/storage/sqlite/migrations/runner.ts +44 -3
- package/dist/src/storage/sqlite/migrations/types.d.ts +2 -0
- package/dist/src/storage/sqlite/migrations/types.ts +2 -0
- package/dist/src/storage/sqlite/row-mappers.d.ts +2 -2
- package/dist/src/storage/sqlite/row-mappers.js +2 -2
- package/dist/src/storage/sqlite/schema.d.ts +3 -1
- package/dist/src/storage/sqlite/schema.js +5 -2
- package/dist/src/storage/sqlite/schema.sql +76 -61
- package/dist/src/storage/sqlite/session-input-repository.d.ts +59 -0
- package/dist/src/storage/sqlite/session-input-repository.js +147 -0
- package/dist/src/storage/sqlite/session-repository.js +5 -6
- package/dist/src/{work → tasks}/attention-governor.d.ts +5 -5
- package/dist/src/{work → tasks}/attention-governor.js +3 -4
- package/dist/src/tasks/execution-context.d.ts +23 -0
- package/dist/src/{work → tasks}/execution-context.js +7 -20
- package/dist/src/{work → tasks}/home-query-service.d.ts +16 -28
- package/dist/src/{work → tasks}/home-query-service.js +56 -126
- package/dist/src/tasks/index.d.ts +20 -0
- package/dist/src/tasks/index.js +21 -0
- package/dist/src/{work → tasks}/project-monitoring-service.js +1 -1
- package/dist/src/{work → tasks}/project-operating-view-service.d.ts +2 -4
- package/dist/src/tasks/project-operating-view-service.js +77 -0
- package/dist/src/tasks/task-application-service.d.ts +35 -0
- package/dist/src/tasks/task-application-service.js +423 -0
- package/dist/src/tasks/task-context-assembler.d.ts +36 -0
- package/dist/src/tasks/task-context-assembler.js +125 -0
- package/dist/src/tasks/task-context-repository.d.ts +52 -0
- package/dist/src/tasks/task-context-repository.js +97 -0
- package/dist/src/tasks/task-contract-definition.d.ts +10 -0
- package/dist/src/{work/outcome-contract-definition.js → tasks/task-contract-definition.js} +7 -5
- package/dist/src/tasks/task-contract-planner.d.ts +17 -0
- package/dist/src/tasks/task-contract-planner.js +87 -0
- package/dist/src/tasks/task-dependency-service.d.ts +21 -0
- package/dist/src/tasks/task-dependency-service.js +81 -0
- package/dist/src/tasks/task-outbox-dispatcher.d.ts +6 -0
- package/dist/src/tasks/task-outbox-dispatcher.js +31 -0
- package/dist/src/tasks/task-read-model-projector.d.ts +16 -0
- package/dist/src/tasks/task-read-model-projector.js +93 -0
- package/dist/src/tasks/task-repository.d.ts +82 -0
- package/dist/src/tasks/task-repository.js +185 -0
- package/dist/src/{work/outcome-run-coordinator.d.ts → tasks/task-run-coordinator.d.ts} +6 -8
- package/dist/src/tasks/task-run-coordinator.js +130 -0
- package/dist/src/tasks/task-run-dispatcher.d.ts +11 -0
- package/dist/src/tasks/task-run-dispatcher.js +90 -0
- package/dist/src/tasks/task-run-repository.d.ts +102 -0
- package/dist/src/tasks/task-run-repository.js +312 -0
- package/dist/src/tasks/task-signal-service.d.ts +8 -0
- package/dist/src/tasks/task-signal-service.js +72 -0
- package/dist/src/tasks/task-value-metrics-service.d.ts +4 -0
- package/dist/src/tasks/task-value-metrics-service.js +78 -0
- package/dist/src/tasks/task-workflow-coordinator.d.ts +5 -0
- package/dist/src/tasks/task-workflow-coordinator.js +54 -0
- package/dist/src/tui/backends/embedded-backend.d.ts +11 -1
- package/dist/src/tui/backends/embedded-backend.js +29 -3
- package/dist/src/tui/backends/gateway-sse-backend.d.ts +6 -3
- package/dist/src/tui/backends/gateway-sse-backend.js +38 -127
- package/dist/src/tui/components/settings-selector.js +0 -20
- package/dist/src/tui/components/tui-bottom-bar.d.ts +2 -3
- package/dist/src/tui/components/tui-bottom-bar.js +4 -9
- package/dist/src/tui/extension-host/runtime-context.js +1 -1
- package/dist/src/tui/tui-backend.d.ts +13 -1
- package/dist/src/tui/tui-backend.js +10 -1
- package/dist/src/tui/tui-command-formatters.js +1 -2
- package/dist/src/tui/tui-commands.js +8 -19
- package/dist/src/tui/tui-session-actions.js +0 -2
- package/dist/src/tui/tui-settings.d.ts +0 -6
- package/dist/src/tui/tui-settings.js +0 -10
- package/dist/src/tui/tui-startup-resources.js +1 -1
- package/dist/src/tui/tui-types.d.ts +1 -4
- package/dist/src/tui/tui-types.js +1 -2
- package/dist/src/tui/tui.js +90 -73
- package/dist/src/tui/xopc-tui-keybindings.d.ts +25 -6
- package/dist/src/tui/xopc-tui-keybindings.js +0 -5
- package/dist/src/tunnel/frpc-extract.js +1 -1
- package/dist/src/user-context/config.d.ts +165 -16
- package/dist/src/user-context/config.js +74 -14
- package/dist/src/user-context/context-compiler.d.ts +4 -8
- package/dist/src/user-context/context-compiler.js +7 -10
- package/dist/src/user-context/interaction-state.js +8 -4
- package/dist/src/user-context/manual-understanding.d.ts +19 -0
- package/dist/src/user-context/manual-understanding.js +69 -0
- package/dist/src/user-context/memory-episode-evaluator.d.ts +32 -0
- package/dist/src/user-context/memory-episode-evaluator.js +35 -0
- package/dist/src/user-context/memory-readiness.d.ts +33 -0
- package/dist/src/user-context/memory-readiness.js +41 -0
- package/dist/src/user-context/memory-use-audit.js +3 -2
- package/dist/src/user-context/projection.d.ts +13 -0
- package/dist/src/user-context/projection.js +13 -2
- package/dist/src/user-context/relationship-continuity.js +1 -1
- package/dist/src/user-context/runtime.d.ts +0 -2
- package/dist/src/user-context/runtime.js +1 -10
- package/dist/src/user-context/source-recommendations.d.ts +5 -5
- package/dist/src/user-context/source-recommendations.js +9 -8
- package/dist/src/voice/stt/transcribe-core.js +3 -3
- package/dist/src/voice/stt/types.d.ts +2 -2
- package/dist/src/voice/tts/speak-core.js +4 -4
- package/dist/src/voice/tts/types.d.ts +2 -2
- package/dist/src/work-discovery/analyzer.js +5 -5
- package/dist/src/work-discovery/service.d.ts +1 -10
- package/dist/src/work-discovery/service.js +3 -5
- package/dist/src/work-discovery/types.d.ts +1 -1
- package/dist/src/workflows/domain/run.d.ts +3 -4
- package/dist/src/workflows/draft/workflow-draft-prompt.js +1 -1
- package/dist/src/workflows/index.js +1 -1
- package/dist/src/workflows/service/workflow-run-service.d.ts +2 -2
- package/dist/src/workflows/service/workflow-run-service.js +105 -35
- package/dist/src/workflows/service/workflow-run-service.types.d.ts +1 -2
- package/dist/src/workflows/service/workflow-session-bridge.js +4 -12
- package/dist/src/workflows/store/run-index-store.d.ts +1 -1
- package/dist/src/workflows/store/run-index-store.js +10 -8
- package/dist/src/workflows/store/run-store.d.ts +1 -1
- package/dist/src/workflows/store/run-store.js +2 -2
- package/package.json +5 -5
- package/dist/gateway/static/root/assets/agents-DgGj9bu6.js +0 -2
- package/dist/gateway/static/root/assets/apps-page-B5xahuT-.js +0 -1
- package/dist/gateway/static/root/assets/automations-page-BUYrvMmD.js +0 -6
- package/dist/gateway/static/root/assets/browser-settings-page-Cjw07q9h.js +0 -8
- package/dist/gateway/static/root/assets/browser-workflow-inputs-_gu08MA4.js +0 -1
- package/dist/gateway/static/root/assets/capabilities-settings-panel-D_dfVxHY.js +0 -7
- package/dist/gateway/static/root/assets/capability-presets-api-DhCn9rPv.js +0 -1
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-LWWIYUT7.js +0 -1
- package/dist/gateway/static/root/assets/channels-settings-Cyj5OunL.js +0 -1
- package/dist/gateway/static/root/assets/channels-status-swr-TEFnV0IG.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-0TobCpBB.js +0 -2
- package/dist/gateway/static/root/assets/desktop-pet-CwVSLL6N.js +0 -1
- package/dist/gateway/static/root/assets/dreaming-scene-BHMRVEUS.js +0 -4585
- package/dist/gateway/static/root/assets/dreaming-settings-Da9FeWQl.js +0 -3
- package/dist/gateway/static/root/assets/format-cron-label-arqgGlVV.js +0 -1
- package/dist/gateway/static/root/assets/goals-settings-Dx9uTyWF.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-Cnr5ORXL.js +0 -1
- package/dist/gateway/static/root/assets/index-B0Tdge_q.css +0 -1
- package/dist/gateway/static/root/assets/index-BA56bQ68.js +0 -224
- package/dist/gateway/static/root/assets/local-app-workbench-page-DSUNtLHg.js +0 -2
- package/dist/gateway/static/root/assets/logs-page-yI8kpQtO.js +0 -7
- package/dist/gateway/static/root/assets/messages-H_iJjnEM.js +0 -3
- package/dist/gateway/static/root/assets/notes-workbench-BD297EZt.js +0 -4
- package/dist/gateway/static/root/assets/outcome-detail-page-C5i_ZR9a.js +0 -1
- package/dist/gateway/static/root/assets/product-delivery-BVG-eWQO.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-D1HGz7Dy.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-CqP2TnW-.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-BXdVJLS3.js +0 -1
- package/dist/gateway/static/root/assets/save-bar-controls-B53UNtDM.js +0 -1
- package/dist/gateway/static/root/assets/schedule-field-C3dIMN5q.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-CPAwDdl5.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-C-jGsoft.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-Di5x6Xrc.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-uxEE6gAB.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-2mcsMWgn.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-ocDwsrEt.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-9_jfsFU5.js +0 -2
- package/dist/gateway/static/root/assets/system-settings-panel-CIJ66cUy.js +0 -1
- package/dist/gateway/static/root/assets/time-picker-D0zAsHOo.js +0 -1
- package/dist/gateway/static/root/assets/use-channel-catalog-BQz3K7xj.js +0 -1
- package/dist/gateway/static/root/assets/user-context-page-Bn4BLg4W.js +0 -1
- package/dist/gateway/static/root/assets/work-copy-Cwyan9Sn.js +0 -1
- package/dist/gateway/static/root/assets/work-discovery-page-iJ9RBSpu.js +0 -1
- package/dist/gateway/static/root/assets/work-item-detail-page-CqTH7PQX.js +0 -1
- package/dist/gateway/static/root/assets/work-page-H3m99ccS.js +0 -3
- package/dist/gateway/static/root/assets/workflows-page-BxZSKMfv.js +0 -11
- package/dist/packages/gateway-contract/src/outcomes.js +0 -137
- package/dist/packages/gateway-contract/src/work-intake.js +0 -85
- package/dist/src/agent/goals/checklist-judge.d.ts +0 -48
- package/dist/src/agent/goals/checklist-judge.js +0 -237
- package/dist/src/agent/goals/checklist-types.d.ts +0 -21
- package/dist/src/agent/goals/checklist-types.js +0 -24
- package/dist/src/agent/goals/evaluate-turn.d.ts +0 -29
- package/dist/src/agent/goals/evaluate-turn.js +0 -209
- package/dist/src/agent/goals/goal-locale.d.ts +0 -26
- package/dist/src/agent/goals/goal-locale.js +0 -61
- package/dist/src/agent/goals/judge.d.ts +0 -41
- package/dist/src/agent/goals/judge.js +0 -176
- package/dist/src/agent/goals/persistent-goal-apis.d.ts +0 -15
- package/dist/src/agent/goals/persistent-goal-apis.js +0 -1
- package/dist/src/agent/goals/persistent-goal-service.d.ts +0 -93
- package/dist/src/agent/goals/persistent-goal-service.js +0 -128
- package/dist/src/agent/goals/post-turn.d.ts +0 -28
- package/dist/src/agent/goals/post-turn.js +0 -187
- package/dist/src/agent/goals/state.d.ts +0 -46
- package/dist/src/agent/goals/state.js +0 -80
- package/dist/src/agent/memory/builtin-memory-store.d.ts +0 -54
- package/dist/src/agent/memory/builtin-memory-store.js +0 -315
- package/dist/src/agent/memory/dreaming/events.d.ts +0 -36
- package/dist/src/agent/memory/dreaming/events.js +0 -42
- package/dist/src/agent/memory/dreaming/last-run.d.ts +0 -80
- package/dist/src/agent/memory/dreaming/last-run.js +0 -96
- package/dist/src/agent/memory/dreaming/short-term-store.d.ts +0 -75
- package/dist/src/agent/memory/dreaming/short-term-store.js +0 -273
- package/dist/src/agent/outcomes/execution-evaluation.d.ts +0 -20
- package/dist/src/agent/outcomes/execution-evaluation.js +0 -48
- package/dist/src/agent/prompt/memory/index.d.ts +0 -23
- package/dist/src/agent/prompt/memory/index.js +0 -101
- package/dist/src/agent/tools/curated-memory-tool.d.ts +0 -3
- package/dist/src/agent/tools/curated-memory-tool.js +0 -174
- package/dist/src/agent/tools/goal-evidence-recorder.d.ts +0 -6
- package/dist/src/agent/tools/goal-evidence-recorder.js +0 -32
- package/dist/src/agent/tools/goal-tool.d.ts +0 -29
- package/dist/src/agent/tools/goal-tool.js +0 -136
- package/dist/src/chat-commands/builtins/goal.d.ts +0 -4
- package/dist/src/chat-commands/builtins/goal.js +0 -122
- package/dist/src/chat-commands/builtins/subgoal.d.ts +0 -4
- package/dist/src/chat-commands/builtins/subgoal.js +0 -117
- package/dist/src/cli/commands/goal.d.ts +0 -4
- package/dist/src/cli/commands/goal.js +0 -235
- package/dist/src/discussions/pipeline.d.ts +0 -33
- package/dist/src/discussions/pipeline.js +0 -205
- package/dist/src/discussions/worker.js +0 -74
- package/dist/src/gateway/hono/routes/dreaming.d.ts +0 -3
- package/dist/src/gateway/hono/routes/dreaming.js +0 -323
- package/dist/src/gateway/hono/routes/execution-receipts.d.ts +0 -3
- package/dist/src/gateway/hono/routes/execution-receipts.js +0 -163
- package/dist/src/gateway/hono/routes/goals.d.ts +0 -4
- package/dist/src/gateway/hono/routes/goals.js +0 -786
- package/dist/src/gateway/hono/routes/work.js +0 -207
- package/dist/src/goals/goal-notifications.d.ts +0 -31
- package/dist/src/goals/goal-notifications.js +0 -157
- package/dist/src/goals/goal-queue-store.d.ts +0 -18
- package/dist/src/goals/goal-queue-store.js +0 -133
- package/dist/src/goals/goal-queue-types.d.ts +0 -42
- package/dist/src/goals/goal-queue-types.js +0 -1
- package/dist/src/goals/goal-runner.d.ts +0 -17
- package/dist/src/goals/goal-runner.js +0 -153
- package/dist/src/goals/goal-service.d.ts +0 -87
- package/dist/src/goals/goal-service.js +0 -323
- package/dist/src/goals/goal-store.d.ts +0 -44
- package/dist/src/goals/goal-store.js +0 -472
- package/dist/src/goals/goal-workflow-judge.d.ts +0 -13
- package/dist/src/goals/goal-workflow-judge.js +0 -145
- package/dist/src/goals/index.d.ts +0 -10
- package/dist/src/goals/index.js +0 -7
- package/dist/src/goals/types.d.ts +0 -136
- package/dist/src/goals/types.js +0 -1
- package/dist/src/i18n/goals-bundle.d.ts +0 -35
- package/dist/src/i18n/goals-bundle.js +0 -61
- package/dist/src/i18n/locales/goals.en.js +0 -36
- package/dist/src/i18n/locales/goals.zh.js +0 -35
- package/dist/src/projects/goal-bind.d.ts +0 -4
- package/dist/src/projects/goal-bind.js +0 -38
- package/dist/src/session/abort-cutoff.d.ts +0 -6
- package/dist/src/session/abort-cutoff.js +0 -8
- package/dist/src/storage/sqlite/execution-receipt-repository.d.ts +0 -146
- package/dist/src/storage/sqlite/execution-receipt-repository.js +0 -235
- package/dist/src/storage/sqlite/memory-index-repository.d.ts +0 -18
- package/dist/src/storage/sqlite/memory-index-repository.js +0 -136
- package/dist/src/tui/tui-follow-up-queue.d.ts +0 -9
- package/dist/src/tui/tui-follow-up-queue.js +0 -16
- package/dist/src/work/execution-context.d.ts +0 -16
- package/dist/src/work/index.d.ts +0 -14
- package/dist/src/work/index.js +0 -15
- package/dist/src/work/outcome-contract-definition.d.ts +0 -8
- package/dist/src/work/outcome-execution-service.d.ts +0 -27
- package/dist/src/work/outcome-execution-service.js +0 -60
- package/dist/src/work/outcome-projection-service.d.ts +0 -7
- package/dist/src/work/outcome-projection-service.js +0 -51
- package/dist/src/work/outcome-receipt-service.d.ts +0 -13
- package/dist/src/work/outcome-receipt-service.js +0 -55
- package/dist/src/work/outcome-repository.d.ts +0 -50
- package/dist/src/work/outcome-repository.js +0 -112
- package/dist/src/work/outcome-run-coordinator.js +0 -117
- package/dist/src/work/project-operating-view-service.js +0 -46
- package/dist/src/work/work-intake-repository.d.ts +0 -49
- package/dist/src/work/work-intake-repository.js +0 -97
- package/dist/src/work/work-intake-service.d.ts +0 -26
- package/dist/src/work/work-intake-service.js +0 -171
- package/dist/src/work/work-value-metrics-service.d.ts +0 -4
- package/dist/src/work/work-value-metrics-service.js +0 -88
- package/dist/src/work-items/agent-context.d.ts +0 -7
- package/dist/src/work-items/agent-context.js +0 -73
- package/dist/src/work-items/index.d.ts +0 -5
- package/dist/src/work-items/index.js +0 -5
- package/dist/src/work-items/types.d.ts +0 -112
- package/dist/src/work-items/types.js +0 -1
- package/dist/src/work-items/work-item-service.d.ts +0 -36
- package/dist/src/work-items/work-item-service.js +0 -281
- package/dist/src/work-items/work-item-store.d.ts +0 -22
- package/dist/src/work-items/work-item-store.js +0 -313
- package/dist/src/work-items/work-item-workflow-judge.d.ts +0 -8
- package/dist/src/work-items/work-item-workflow-judge.js +0 -48
- /package/dist/src/{work → tasks}/project-monitoring-service.d.ts +0 -0
|
@@ -2,11 +2,11 @@ import { closeXopcDatabase, isXopcDatabaseOpen, openXopcDatabase } from "../../s
|
|
|
2
2
|
import { getSessionMetadata } from "../../storage/sqlite/session-repository.js";
|
|
3
3
|
import "../../storage/sqlite/index.js";
|
|
4
4
|
import { init_loader, loadConfig } from "../../config/loader.js";
|
|
5
|
-
import {
|
|
6
|
-
import "../../goals/index.js";
|
|
5
|
+
import { TaskRepository } from "../../tasks/task-repository.js";
|
|
7
6
|
import { ProjectService } from "../../projects/project-service.js";
|
|
8
7
|
import { isValidProjectAgentId, normalizeProjectAgentId } from "../../projects/project-agent.js";
|
|
9
8
|
import "../../projects/index.js";
|
|
9
|
+
import "../../tasks/index.js";
|
|
10
10
|
import { formatExamples, register } from "../registry.js";
|
|
11
11
|
import { Command } from "commander";
|
|
12
12
|
//#region src/cli/commands/project.ts
|
|
@@ -29,8 +29,8 @@ function resolveProject(projects, ref) {
|
|
|
29
29
|
function formatProject(project) {
|
|
30
30
|
const counts = [
|
|
31
31
|
project.sessionCount != null ? `sessions ${project.sessionCount}` : void 0,
|
|
32
|
-
project.
|
|
33
|
-
project.
|
|
32
|
+
project.taskCount != null ? `tasks ${project.taskCount}` : void 0,
|
|
33
|
+
project.activeTaskCount != null ? `active tasks ${project.activeTaskCount}` : void 0
|
|
34
34
|
].filter(Boolean).join(" | ");
|
|
35
35
|
return [
|
|
36
36
|
`${project.id} [${project.status}] ${project.name}`,
|
|
@@ -47,8 +47,7 @@ function createProjectCommand(ctx) {
|
|
|
47
47
|
"xopc project list",
|
|
48
48
|
"xopc project new xopc --workspace ~/develop/github/xopc",
|
|
49
49
|
"xopc project show xopc",
|
|
50
|
-
"xopc project attach-session <session-key> xopc"
|
|
51
|
-
"xopc project attach-goal <goal-id> xopc"
|
|
50
|
+
"xopc project attach-session <session-key> xopc"
|
|
52
51
|
]));
|
|
53
52
|
cmd.addCommand(new Command("list").description("List projects").option("--status <status>", "active, paused, or archived").option("--search <query>", "Search by name, slug, or description").option("--limit <n>", "Maximum rows", "20").option("--json", "Output JSON").action(async (options) => {
|
|
54
53
|
await withProjects(ctx, (projects) => {
|
|
@@ -69,7 +68,7 @@ function createProjectCommand(ctx) {
|
|
|
69
68
|
for (const project of result.items) console.log(`${formatProject(project)}\n`);
|
|
70
69
|
});
|
|
71
70
|
}));
|
|
72
|
-
cmd.addCommand(new Command("new").description("Create a project").argument("<name>", "Project name").option("--description <text>", "Project description").option("--default-agent <id>", "Default agent id for new project sessions and
|
|
71
|
+
cmd.addCommand(new Command("new").description("Create a project").argument("<name>", "Project name").option("--description <text>", "Project description").option("--default-agent <id>", "Default agent id for new project sessions and tasks").option("--workspace <path>", "Project workspace root").option("--brief <text>", "Project brief").option("--instructions <text>", "Project instructions").option("--json", "Output JSON").action(async (name, options) => {
|
|
73
72
|
const cfg = loadConfig(ctx.configPath);
|
|
74
73
|
const defaultAgentId = normalizeProjectAgentId(options.defaultAgent);
|
|
75
74
|
if (!isValidProjectAgentId(cfg, defaultAgentId)) {
|
|
@@ -110,7 +109,7 @@ function createProjectCommand(ctx) {
|
|
|
110
109
|
if (detailed.instructions) console.log(`\nInstructions:\n${detailed.instructions}`);
|
|
111
110
|
});
|
|
112
111
|
}));
|
|
113
|
-
cmd.addCommand(new Command("update").description("Update a project").argument("<project>", "Project id or slug").option("--name <name>", "New name").option("--description <text>", "Project description").option("--default-agent <id>", "Default agent id for new project sessions and
|
|
112
|
+
cmd.addCommand(new Command("update").description("Update a project").argument("<project>", "Project id or slug").option("--name <name>", "New name").option("--description <text>", "Project description").option("--default-agent <id>", "Default agent id for new project sessions and tasks").option("--clear-default-agent", "Clear project default agent").option("--status <status>", "active, paused, or archived").option("--workspace <path>", "Project workspace root").option("--brief <text>", "Project brief").option("--instructions <text>", "Project instructions").action(async (projectRef, options) => {
|
|
114
113
|
const cfg = loadConfig(ctx.configPath);
|
|
115
114
|
const defaultAgentId = options.clearDefaultAgent ? null : normalizeProjectAgentId(options.defaultAgent);
|
|
116
115
|
if (defaultAgentId && !isValidProjectAgentId(cfg, defaultAgentId)) {
|
|
@@ -163,23 +162,6 @@ function createProjectCommand(ctx) {
|
|
|
163
162
|
console.log("Detached session from project.");
|
|
164
163
|
});
|
|
165
164
|
}));
|
|
166
|
-
cmd.addCommand(new Command("attach-goal").description("Attach a goal to a project").argument("<goal-id>", "Goal id").argument("<project>", "Project id or slug").action(async (goalId, projectRef) => {
|
|
167
|
-
await withProjects(ctx, (projects) => {
|
|
168
|
-
const project = resolveProject(projects, projectRef);
|
|
169
|
-
if (!project) {
|
|
170
|
-
console.error(`Project not found: ${projectRef}`);
|
|
171
|
-
process.exit(1);
|
|
172
|
-
}
|
|
173
|
-
projects.attachGoal(goalId, project.id);
|
|
174
|
-
console.log(`Attached goal to ${project.name}`);
|
|
175
|
-
});
|
|
176
|
-
}));
|
|
177
|
-
cmd.addCommand(new Command("detach-goal").description("Detach a goal from its project").argument("<goal-id>", "Goal id").action(async (goalId) => {
|
|
178
|
-
await withProjects(ctx, (projects) => {
|
|
179
|
-
projects.detachGoal(goalId);
|
|
180
|
-
console.log("Detached goal from project.");
|
|
181
|
-
});
|
|
182
|
-
}));
|
|
183
165
|
cmd.addCommand(new Command("sessions").description("List sessions in a project").argument("<project>", "Project id or slug").option("--limit <n>", "Maximum rows", "20").action(async (projectRef, options) => {
|
|
184
166
|
await withProjects(ctx, (projects) => {
|
|
185
167
|
const project = resolveProject(projects, projectRef);
|
|
@@ -199,22 +181,19 @@ function createProjectCommand(ctx) {
|
|
|
199
181
|
}
|
|
200
182
|
});
|
|
201
183
|
}));
|
|
202
|
-
cmd.addCommand(new Command("
|
|
184
|
+
cmd.addCommand(new Command("tasks").description("List tasks in a project").argument("<project>", "Project id or slug").option("--limit <n>", "Maximum rows", "20").action(async (projectRef, options) => {
|
|
203
185
|
await withProjects(ctx, (projects) => {
|
|
204
186
|
const project = resolveProject(projects, projectRef);
|
|
205
187
|
if (!project) {
|
|
206
188
|
console.error(`Project not found: ${projectRef}`);
|
|
207
189
|
process.exit(1);
|
|
208
190
|
}
|
|
209
|
-
const
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
});
|
|
213
|
-
if (!goals.length) {
|
|
214
|
-
console.log("No goals.");
|
|
191
|
+
const tasks = new TaskRepository().listByProject(project.id, Number(options.limit) || 20);
|
|
192
|
+
if (!tasks.length) {
|
|
193
|
+
console.log("No tasks.");
|
|
215
194
|
return;
|
|
216
195
|
}
|
|
217
|
-
for (const
|
|
196
|
+
for (const task of tasks) console.log(`${task.id} [${task.phase}] ${task.title}`);
|
|
218
197
|
});
|
|
219
198
|
}));
|
|
220
199
|
return cmd;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* This command sits on top of the existing auth-profile store (`xopc auth …`),
|
|
5
5
|
* but presents a setup-style surface — `list / set-key / unset-key / schema` —
|
|
6
|
-
* with the same `
|
|
6
|
+
* with the same `SetupTask` JSON contract used by other M1 setup commands.
|
|
7
7
|
* Agents (M2 skills) and the WebUI (M3) can consume both shapes uniformly.
|
|
8
8
|
*
|
|
9
9
|
* Capability-provider (image / voice) settings live under `cfg.providers.<id>`
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { type AuthProfileCredential, listAllProfiles } from '../../auth/profiles/index.js';
|
|
13
13
|
import { type ProviderMeta } from '../../providers/index.js';
|
|
14
|
-
import { type
|
|
14
|
+
import { type SetupTask } from './setup-shared/index.js';
|
|
15
15
|
type KeyStatus = 'configured' | 'env-only' | 'oauth' | 'not-configured';
|
|
16
16
|
interface ProviderListEntry {
|
|
17
17
|
id: string;
|
|
@@ -43,11 +43,11 @@ declare function runSetKey(args: {
|
|
|
43
43
|
profileId: string;
|
|
44
44
|
key: string;
|
|
45
45
|
options: MutationOptions;
|
|
46
|
-
}): Promise<
|
|
46
|
+
}): Promise<SetupTask>;
|
|
47
47
|
declare function runUnsetKey(args: {
|
|
48
48
|
provider: string;
|
|
49
49
|
profileId: string;
|
|
50
50
|
options: MutationOptions;
|
|
51
|
-
}): Promise<
|
|
51
|
+
}): Promise<SetupTask>;
|
|
52
52
|
export { listProviders, planSetKey, maskKey, runSetKey, runUnsetKey };
|
|
53
53
|
export { listAllProfiles };
|
|
@@ -4,7 +4,7 @@ import { formatExamples, register } from "../registry.js";
|
|
|
4
4
|
import { getProfile, listAllProfiles, listProfilesForProvider, removeAuthProfile, upsertAuthProfile } from "../../auth/profiles/profiles.js";
|
|
5
5
|
import { colors } from "../utils/colors.js";
|
|
6
6
|
import { SETUP_EXIT } from "./setup-shared/types.js";
|
|
7
|
-
import {
|
|
7
|
+
import { emitTask } from "./setup-shared/output.js";
|
|
8
8
|
import { isPromptCancelled, promptSecret } from "./setup-shared/prompts.js";
|
|
9
9
|
import "./setup-shared/index.js";
|
|
10
10
|
import { Command } from "commander";
|
|
@@ -14,7 +14,7 @@ import { Command } from "commander";
|
|
|
14
14
|
*
|
|
15
15
|
* This command sits on top of the existing auth-profile store (`xopc auth …`),
|
|
16
16
|
* but presents a setup-style surface — `list / set-key / unset-key / schema` —
|
|
17
|
-
* with the same `
|
|
17
|
+
* with the same `SetupTask` JSON contract used by other M1 setup commands.
|
|
18
18
|
* Agents (M2 skills) and the WebUI (M3) can consume both shapes uniformly.
|
|
19
19
|
*
|
|
20
20
|
* Capability-provider (image / voice) settings live under `cfg.providers.<id>`
|
|
@@ -99,10 +99,10 @@ function printListJson(entries) {
|
|
|
99
99
|
providers: entries
|
|
100
100
|
}) + "\n");
|
|
101
101
|
}
|
|
102
|
-
function
|
|
103
|
-
|
|
104
|
-
process.exitCode =
|
|
105
|
-
return
|
|
102
|
+
function finalizeProviderTask(task, options) {
|
|
103
|
+
emitTask(task, options.json);
|
|
104
|
+
process.exitCode = task.ok ? SETUP_EXIT.OK : SETUP_EXIT.ERROR;
|
|
105
|
+
return task;
|
|
106
106
|
}
|
|
107
107
|
function planSetKey(args) {
|
|
108
108
|
const existing = getProfile(args.profileId);
|
|
@@ -118,7 +118,7 @@ function planSetKey(args) {
|
|
|
118
118
|
}
|
|
119
119
|
async function runSetKey(args) {
|
|
120
120
|
const meta = PROVIDER_META[args.provider];
|
|
121
|
-
if (meta && meta.supportsApiKey === false) return
|
|
121
|
+
if (meta && meta.supportsApiKey === false) return finalizeProviderTask({
|
|
122
122
|
ok: false,
|
|
123
123
|
action: "add",
|
|
124
124
|
domain: "providers",
|
|
@@ -130,7 +130,7 @@ async function runSetKey(args) {
|
|
|
130
130
|
const { existing, willChange } = planSetKey(args);
|
|
131
131
|
const changedPaths = willChange ? [`profiles.${args.profileId}.key`] : [];
|
|
132
132
|
const action = existing ? "set" : "add";
|
|
133
|
-
if (!willChange) return
|
|
133
|
+
if (!willChange) return finalizeProviderTask({
|
|
134
134
|
ok: true,
|
|
135
135
|
action: "noop",
|
|
136
136
|
domain: "providers",
|
|
@@ -153,7 +153,7 @@ async function runSetKey(args) {
|
|
|
153
153
|
}
|
|
154
154
|
});
|
|
155
155
|
} catch (error) {
|
|
156
|
-
return
|
|
156
|
+
return finalizeProviderTask({
|
|
157
157
|
ok: false,
|
|
158
158
|
action,
|
|
159
159
|
domain: "providers",
|
|
@@ -163,7 +163,7 @@ async function runSetKey(args) {
|
|
|
163
163
|
errors: [{ message: error.message }]
|
|
164
164
|
}, args.options);
|
|
165
165
|
}
|
|
166
|
-
return
|
|
166
|
+
return finalizeProviderTask({
|
|
167
167
|
ok: true,
|
|
168
168
|
action,
|
|
169
169
|
domain: "providers",
|
|
@@ -177,7 +177,7 @@ async function runSetKey(args) {
|
|
|
177
177
|
}, args.options);
|
|
178
178
|
}
|
|
179
179
|
async function runUnsetKey(args) {
|
|
180
|
-
if (!getProfile(args.profileId)) return
|
|
180
|
+
if (!getProfile(args.profileId)) return finalizeProviderTask({
|
|
181
181
|
ok: true,
|
|
182
182
|
action: "noop",
|
|
183
183
|
domain: "providers",
|
|
@@ -188,7 +188,7 @@ async function runUnsetKey(args) {
|
|
|
188
188
|
}, args.options);
|
|
189
189
|
const changedPaths = [`profiles.${args.profileId}`];
|
|
190
190
|
if (!args.options.dryRun) removeAuthProfile(args.profileId);
|
|
191
|
-
return
|
|
191
|
+
return finalizeProviderTask({
|
|
192
192
|
ok: true,
|
|
193
193
|
action: "remove",
|
|
194
194
|
domain: "providers",
|
|
@@ -232,7 +232,7 @@ function emitSchema(opts) {
|
|
|
232
232
|
description: "Optional profile id when managing multiple keys per provider."
|
|
233
233
|
}
|
|
234
234
|
},
|
|
235
|
-
|
|
235
|
+
task: {
|
|
236
236
|
ok: "boolean",
|
|
237
237
|
action: "add | set | remove | noop",
|
|
238
238
|
domain: "providers",
|
|
@@ -263,14 +263,14 @@ function createProvidersCommand(_ctx) {
|
|
|
263
263
|
if (opts.json) printListJson(entries);
|
|
264
264
|
else printListText(entries);
|
|
265
265
|
});
|
|
266
|
-
cmd.command("set-key <provider>").description("Set or update the API key for a provider (writes an auth profile)").option("--key <value>", `API key value. ${KEY_OPTION_HINT}`).option("--profile <id>", "Profile id (default: <provider>:default)").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON
|
|
266
|
+
cmd.command("set-key <provider>").description("Set or update the API key for a provider (writes an auth profile)").option("--key <value>", `API key value. ${KEY_OPTION_HINT}`).option("--profile <id>", "Profile id (default: <provider>:default)").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON task line", false).action(async (provider, opts) => {
|
|
267
267
|
const profileId = opts.profile?.trim() || defaultProfileId(provider);
|
|
268
268
|
let key = opts.key?.trim();
|
|
269
269
|
if (!key) try {
|
|
270
270
|
key = await promptSecret(`API key for ${provider}:`);
|
|
271
271
|
} catch (error) {
|
|
272
272
|
if (isPromptCancelled(error)) {
|
|
273
|
-
|
|
273
|
+
emitTask({
|
|
274
274
|
ok: false,
|
|
275
275
|
action: "set",
|
|
276
276
|
domain: "providers",
|
|
@@ -294,7 +294,7 @@ function createProvidersCommand(_ctx) {
|
|
|
294
294
|
}
|
|
295
295
|
});
|
|
296
296
|
});
|
|
297
|
-
cmd.command("unset-key <provider>").description("Remove a provider auth profile").option("--profile <id>", "Profile id (default: <provider>:default)").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON
|
|
297
|
+
cmd.command("unset-key <provider>").description("Remove a provider auth profile").option("--profile <id>", "Profile id (default: <provider>:default)").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON task line", false).action(async (provider, opts) => {
|
|
298
298
|
await runUnsetKey({
|
|
299
299
|
provider,
|
|
300
300
|
profileId: opts.profile?.trim() || defaultProfileId(provider),
|
|
@@ -3,7 +3,7 @@ import { init_loader, loadConfig } from "../../config/loader.js";
|
|
|
3
3
|
import { formatExamples, register } from "../registry.js";
|
|
4
4
|
import { colors } from "../utils/colors.js";
|
|
5
5
|
import { SETUP_EXIT } from "./setup-shared/types.js";
|
|
6
|
-
import {
|
|
6
|
+
import { emitTask } from "./setup-shared/output.js";
|
|
7
7
|
import { isPromptCancelled, promptSecret } from "./setup-shared/prompts.js";
|
|
8
8
|
import { SetupValidationError, runSetup } from "./setup-shared/runner.js";
|
|
9
9
|
import "./setup-shared/index.js";
|
|
@@ -115,12 +115,12 @@ function createSearchCommand(_ctx) {
|
|
|
115
115
|
console.log("");
|
|
116
116
|
console.log(colors.gray(`Supported: ${SEARCH_TYPES.join(", ")}`));
|
|
117
117
|
});
|
|
118
|
-
cmd.command("add <type>").description("Add or replace a search provider entry (idempotent by type)").option("--key <value>", "API key (brave / tavily / bing). Prompts securely if omitted.").option("--url <value>", "SearXNG instance URL (required for type=searxng)").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON
|
|
118
|
+
cmd.command("add <type>").description("Add or replace a search provider entry (idempotent by type)").option("--key <value>", "API key (brave / tavily / bing). Prompts securely if omitted.").option("--url <value>", "SearXNG instance URL (required for type=searxng)").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON task line", false).action(async (type, opts, command) => {
|
|
119
119
|
const dryRun = Boolean(opts.dryRun);
|
|
120
120
|
const json = Boolean(opts.json);
|
|
121
121
|
const t = type.trim().toLowerCase();
|
|
122
122
|
if (!isSearchType(t)) {
|
|
123
|
-
|
|
123
|
+
emitTask({
|
|
124
124
|
ok: false,
|
|
125
125
|
action: "add",
|
|
126
126
|
domain: "search",
|
|
@@ -135,7 +135,7 @@ function createSearchCommand(_ctx) {
|
|
|
135
135
|
const entry = { type: t };
|
|
136
136
|
if (t === "searxng") {
|
|
137
137
|
if (!opts.url) {
|
|
138
|
-
|
|
138
|
+
emitTask({
|
|
139
139
|
ok: false,
|
|
140
140
|
action: "add",
|
|
141
141
|
domain: "search",
|
|
@@ -157,7 +157,7 @@ function createSearchCommand(_ctx) {
|
|
|
157
157
|
key = await promptSecret(`API key for ${t}:`);
|
|
158
158
|
} catch (error) {
|
|
159
159
|
if (isPromptCancelled(error)) {
|
|
160
|
-
|
|
160
|
+
emitTask({
|
|
161
161
|
ok: false,
|
|
162
162
|
action: "add",
|
|
163
163
|
domain: "search",
|
|
@@ -190,10 +190,10 @@ function createSearchCommand(_ctx) {
|
|
|
190
190
|
}
|
|
191
191
|
});
|
|
192
192
|
});
|
|
193
|
-
cmd.command("remove <type>").description("Remove a search provider entry").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON
|
|
193
|
+
cmd.command("remove <type>").description("Remove a search provider entry").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON task line", false).action(async (type, opts, command) => {
|
|
194
194
|
const t = type.trim().toLowerCase();
|
|
195
195
|
if (!isSearchType(t)) {
|
|
196
|
-
|
|
196
|
+
emitTask({
|
|
197
197
|
ok: false,
|
|
198
198
|
action: "remove",
|
|
199
199
|
domain: "search",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { SETUP_EXIT, type SetupAction, type SetupError, type
|
|
1
|
+
export { SETUP_EXIT, type SetupAction, type SetupError, type SetupTask, type SetupRunOptions, } from './types.js';
|
|
2
2
|
export { runSetup, runSetupHeadless, SetupValidationError, type SetupMutator, type RunSetupArgs, } from './runner.js';
|
|
3
|
-
export {
|
|
3
|
+
export { emitTask, printJsonTask, printTextTask } from './output.js';
|
|
4
4
|
export { promptSecret, isInteractive, isPromptCancelled } from './prompts.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SETUP_EXIT } from "./types.js";
|
|
2
|
-
import {
|
|
2
|
+
import { emitTask, printJsonTask, printTextTask } from "./output.js";
|
|
3
3
|
import { isInteractive, isPromptCancelled, promptSecret } from "./prompts.js";
|
|
4
4
|
import { SetupValidationError, runSetup, runSetupHeadless } from "./runner.js";
|
|
5
|
-
export { SETUP_EXIT, SetupValidationError,
|
|
5
|
+
export { SETUP_EXIT, SetupValidationError, emitTask, isInteractive, isPromptCancelled, printJsonTask, printTextTask, promptSecret, runSetup, runSetupHeadless };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SetupTask } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Single-line JSON for `--json` mode. Agents (M2) parse stdout, so we keep
|
|
4
4
|
* this stable: `{ ok, action, domain, target?, changedPaths, dryRun, errors?,
|
|
5
5
|
* value?, notes? }`.
|
|
6
6
|
*/
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function
|
|
7
|
+
export declare function printJsonTask(task: SetupTask): void;
|
|
8
|
+
export declare function printTextTask(task: SetupTask): void;
|
|
9
|
+
export declare function emitTask(task: SetupTask, json: boolean): void;
|
|
@@ -5,18 +5,18 @@ import { colors } from "../../utils/colors.js";
|
|
|
5
5
|
* this stable: `{ ok, action, domain, target?, changedPaths, dryRun, errors?,
|
|
6
6
|
* value?, notes? }`.
|
|
7
7
|
*/
|
|
8
|
-
function
|
|
8
|
+
function printJsonTask(task) {
|
|
9
9
|
const payload = {
|
|
10
|
-
ok:
|
|
11
|
-
action:
|
|
12
|
-
domain:
|
|
13
|
-
changedPaths:
|
|
14
|
-
dryRun:
|
|
10
|
+
ok: task.ok,
|
|
11
|
+
action: task.action,
|
|
12
|
+
domain: task.domain,
|
|
13
|
+
changedPaths: task.changedPaths,
|
|
14
|
+
dryRun: task.dryRun
|
|
15
15
|
};
|
|
16
|
-
if (
|
|
17
|
-
if (
|
|
18
|
-
if (
|
|
19
|
-
if (
|
|
16
|
+
if (task.target !== void 0) payload.target = task.target;
|
|
17
|
+
if (task.errors?.length) payload.errors = task.errors;
|
|
18
|
+
if (task.value !== void 0) payload.value = task.value;
|
|
19
|
+
if (task.notes?.length) payload.notes = task.notes;
|
|
20
20
|
process.stdout.write(JSON.stringify(payload) + "\n");
|
|
21
21
|
}
|
|
22
22
|
const ACTION_VERB = {
|
|
@@ -25,28 +25,28 @@ const ACTION_VERB = {
|
|
|
25
25
|
remove: "Removed",
|
|
26
26
|
noop: "No change"
|
|
27
27
|
};
|
|
28
|
-
function
|
|
29
|
-
if (!
|
|
30
|
-
console.error(colors.red("✗") + " " + colors.bold(`${
|
|
31
|
-
for (const err of
|
|
28
|
+
function printTextTask(task) {
|
|
29
|
+
if (!task.ok) {
|
|
30
|
+
console.error(colors.red("✗") + " " + colors.bold(`${task.domain} ${task.action}`) + " failed");
|
|
31
|
+
for (const err of task.errors ?? []) {
|
|
32
32
|
const where = err.path ? colors.gray(`[${err.path}] `) : "";
|
|
33
33
|
console.error(` ${where}${err.message}`);
|
|
34
34
|
}
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
37
|
-
const target =
|
|
38
|
-
const verb = ACTION_VERB[
|
|
39
|
-
const dryRun =
|
|
40
|
-
console.log(colors.green("✓") + ` ${verb} ${
|
|
41
|
-
if (
|
|
37
|
+
const target = task.target ? ` ${colors.bold(task.target)}` : "";
|
|
38
|
+
const verb = ACTION_VERB[task.action];
|
|
39
|
+
const dryRun = task.dryRun ? colors.yellow(" [dry-run]") : "";
|
|
40
|
+
console.log(colors.green("✓") + ` ${verb} ${task.domain}${target}${dryRun}`);
|
|
41
|
+
if (task.changedPaths.length > 0) {
|
|
42
42
|
console.log(colors.gray(" Changed paths:"));
|
|
43
|
-
for (const path of
|
|
44
|
-
} else if (
|
|
45
|
-
for (const note of
|
|
43
|
+
for (const path of task.changedPaths) console.log(` ${colors.cyan(path)}`);
|
|
44
|
+
} else if (task.action === "noop") console.log(colors.gray(" Nothing to change."));
|
|
45
|
+
for (const note of task.notes ?? []) console.log(` ${colors.gray("→")} ${note}`);
|
|
46
46
|
}
|
|
47
|
-
function
|
|
48
|
-
if (json)
|
|
49
|
-
else
|
|
47
|
+
function emitTask(task, json) {
|
|
48
|
+
if (json) printJsonTask(task);
|
|
49
|
+
else printTextTask(task);
|
|
50
50
|
}
|
|
51
51
|
//#endregion
|
|
52
|
-
export {
|
|
52
|
+
export { emitTask, printJsonTask, printTextTask };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Config } from '../../../config/schema.js';
|
|
2
|
-
import { type SetupAction, type SetupError, type
|
|
2
|
+
import { type SetupAction, type SetupError, type SetupTask, type SetupRunOptions } from './types.js';
|
|
3
3
|
/** Thrown by a {@link SetupMutator.mutate} to fail the run with a clean message. */
|
|
4
4
|
export declare class SetupValidationError extends Error {
|
|
5
5
|
readonly errors: SetupError[];
|
|
@@ -14,9 +14,9 @@ export interface SetupMutator {
|
|
|
14
14
|
action: SetupAction;
|
|
15
15
|
/** Mutates `config` in place (or returns a replacement) and returns it. */
|
|
16
16
|
mutate(config: Config): Config | Promise<Config>;
|
|
17
|
-
/** Optional masked value to surface in the
|
|
17
|
+
/** Optional masked value to surface in the task (for agents / UI). */
|
|
18
18
|
resultValue?(config: Config): unknown;
|
|
19
|
-
/** Optional human-readable notes appended to the
|
|
19
|
+
/** Optional human-readable notes appended to the task. */
|
|
20
20
|
notes?(config: Config): string[];
|
|
21
21
|
}
|
|
22
22
|
export interface RunSetupArgs {
|
|
@@ -26,24 +26,24 @@ export interface RunSetupArgs {
|
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* Headless setup pipeline — load → clone → mutate → validate(zod) → diff →
|
|
29
|
-
* (write | dry-run) →
|
|
29
|
+
* (write | dry-run) → task. Returns the {@link SetupTask} without any
|
|
30
30
|
* I/O side effects (no stdout, no `process.exitCode`).
|
|
31
31
|
*
|
|
32
32
|
* Used by CLI setup commands via {@link runSetup}. Keep this side-effect-free
|
|
33
33
|
* so it stays safe to call from tests and other programmatic callers.
|
|
34
34
|
*
|
|
35
|
-
* Custom errors thrown by the mutator surface as `errors[]` on the
|
|
35
|
+
* Custom errors thrown by the mutator surface as `errors[]` on the task:
|
|
36
36
|
* - `SetupValidationError` — explicit `{path?, message}[]` entries
|
|
37
37
|
* - `ExitPromptError` (from `@inquirer/prompts`) — surfaced as "Cancelled by user"
|
|
38
38
|
* - any other `Error` — the message is used verbatim
|
|
39
39
|
*/
|
|
40
|
-
export declare function runSetupHeadless(args: RunSetupArgs): Promise<
|
|
40
|
+
export declare function runSetupHeadless(args: RunSetupArgs): Promise<SetupTask>;
|
|
41
41
|
/**
|
|
42
|
-
* CLI wrapper around {@link runSetupHeadless}: emits the
|
|
42
|
+
* CLI wrapper around {@link runSetupHeadless}: emits the task to stdout
|
|
43
43
|
* (text or single-line JSON) and sets `process.exitCode` to the standard
|
|
44
44
|
* setup exit codes (0 ok / 1 error / 2 cancelled).
|
|
45
45
|
*
|
|
46
46
|
* Use this from CLI command actions; use {@link runSetupHeadless} from any
|
|
47
47
|
* non-CLI caller (HTTP routes, library code, tests).
|
|
48
48
|
*/
|
|
49
|
-
export declare function runSetup(args: RunSetupArgs): Promise<
|
|
49
|
+
export declare function runSetup(args: RunSetupArgs): Promise<SetupTask>;
|
|
@@ -3,7 +3,7 @@ import { loadConfig, saveConfig } from "../../../config/loader.js";
|
|
|
3
3
|
import { diffConfigPaths } from "../../../config/diff.js";
|
|
4
4
|
import "../../../config/index.js";
|
|
5
5
|
import { SETUP_EXIT } from "./types.js";
|
|
6
|
-
import {
|
|
6
|
+
import { emitTask } from "./output.js";
|
|
7
7
|
import { isPromptCancelled } from "./prompts.js";
|
|
8
8
|
//#region src/cli/commands/setup-shared/runner.ts
|
|
9
9
|
init_schema();
|
|
@@ -25,13 +25,13 @@ function zodErrorToSetupErrors(err) {
|
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
27
|
* Headless setup pipeline — load → clone → mutate → validate(zod) → diff →
|
|
28
|
-
* (write | dry-run) →
|
|
28
|
+
* (write | dry-run) → task. Returns the {@link SetupTask} without any
|
|
29
29
|
* I/O side effects (no stdout, no `process.exitCode`).
|
|
30
30
|
*
|
|
31
31
|
* Used by CLI setup commands via {@link runSetup}. Keep this side-effect-free
|
|
32
32
|
* so it stays safe to call from tests and other programmatic callers.
|
|
33
33
|
*
|
|
34
|
-
* Custom errors thrown by the mutator surface as `errors[]` on the
|
|
34
|
+
* Custom errors thrown by the mutator surface as `errors[]` on the task:
|
|
35
35
|
* - `SetupValidationError` — explicit `{path?, message}[]` entries
|
|
36
36
|
* - `ExitPromptError` (from `@inquirer/prompts`) — surfaced as "Cancelled by user"
|
|
37
37
|
* - any other `Error` — the message is used verbatim
|
|
@@ -117,7 +117,7 @@ async function runSetupHeadless(args) {
|
|
|
117
117
|
};
|
|
118
118
|
}
|
|
119
119
|
/**
|
|
120
|
-
* CLI wrapper around {@link runSetupHeadless}: emits the
|
|
120
|
+
* CLI wrapper around {@link runSetupHeadless}: emits the task to stdout
|
|
121
121
|
* (text or single-line JSON) and sets `process.exitCode` to the standard
|
|
122
122
|
* setup exit codes (0 ok / 1 error / 2 cancelled).
|
|
123
123
|
*
|
|
@@ -125,12 +125,12 @@ async function runSetupHeadless(args) {
|
|
|
125
125
|
* non-CLI caller (HTTP routes, library code, tests).
|
|
126
126
|
*/
|
|
127
127
|
async function runSetup(args) {
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
if (
|
|
131
|
-
else if (
|
|
128
|
+
const task = await runSetupHeadless(args);
|
|
129
|
+
emitTask(task, args.options.json);
|
|
130
|
+
if (task.ok) process.exitCode = SETUP_EXIT.OK;
|
|
131
|
+
else if (task.errors?.some((e) => /cancelled/i.test(e.message))) process.exitCode = SETUP_EXIT.CANCELLED;
|
|
132
132
|
else process.exitCode = SETUP_EXIT.ERROR;
|
|
133
|
-
return
|
|
133
|
+
return task;
|
|
134
134
|
}
|
|
135
135
|
//#endregion
|
|
136
136
|
export { SetupValidationError, runSetup, runSetupHeadless };
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Shared types for `xopc <domain>` setup-style commands (providers / channels / ...).
|
|
3
3
|
*
|
|
4
4
|
* Every setup command runs the same load → mutate → validate → diff → write
|
|
5
|
-
* pipeline, and emits the same structured
|
|
5
|
+
* pipeline, and emits the same structured task so agents (M2 skills) and the
|
|
6
6
|
* WebUI (M3) can consume results uniformly.
|
|
7
7
|
*/
|
|
8
8
|
export type SetupAction = 'add' | 'set' | 'remove' | 'noop';
|
|
@@ -11,7 +11,7 @@ export interface SetupError {
|
|
|
11
11
|
path?: string;
|
|
12
12
|
message: string;
|
|
13
13
|
}
|
|
14
|
-
export interface
|
|
14
|
+
export interface SetupTask {
|
|
15
15
|
ok: boolean;
|
|
16
16
|
action: SetupAction;
|
|
17
17
|
/** Logical domain — `providers`, `channels.<id>`, etc. */
|
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
* Manage skills: list, install, enable/disable, configure, test
|
|
5
5
|
*/
|
|
6
6
|
import { Command } from 'commander';
|
|
7
|
+
import { type LoadSkillsResult } from '../../agent/skills/index.js';
|
|
8
|
+
import { ProjectTrustStore } from '../../project-trust/trust-store.js';
|
|
7
9
|
import { type CLIContext } from '../registry.js';
|
|
10
|
+
export interface WorkspaceSkillCatalogOptions {
|
|
11
|
+
trustStore?: Pick<ProjectTrustStore, 'get'>;
|
|
12
|
+
bundledSkillsDir?: string | null;
|
|
13
|
+
}
|
|
14
|
+
export declare function loadWorkspaceSkillCatalog(workspaceDir: string, options?: WorkspaceSkillCatalogOptions): LoadSkillsResult;
|
|
8
15
|
declare function createSkillsCommand(ctx: CLIContext): Command;
|
|
9
16
|
export { createSkillsCommand };
|
|
@@ -6,6 +6,7 @@ import { formatScanSummary, scanSkillDirectory } from "../../agent/skills/scanne
|
|
|
6
6
|
import { createSkillLoader } from "../../agent/skills/index.js";
|
|
7
7
|
import { loadSkillsLock } from "../../agent/skills/hub-lock.js";
|
|
8
8
|
import { pullSkillFromSource, updateSkillFromLock } from "../../agent/skills/hub-pull.js";
|
|
9
|
+
import { ProjectTrustStore } from "../../project-trust/trust-store.js";
|
|
9
10
|
import { register } from "../registry.js";
|
|
10
11
|
import { createSkillsTestCommand } from "./skills-test.js";
|
|
11
12
|
import { Command } from "commander";
|
|
@@ -16,10 +17,15 @@ import { Command } from "commander";
|
|
|
16
17
|
* Manage skills: list, install, enable/disable, configure, test
|
|
17
18
|
*/
|
|
18
19
|
init_paths();
|
|
20
|
+
function loadWorkspaceSkillCatalog(workspaceDir, options = {}) {
|
|
21
|
+
const trustStore = options.trustStore ?? new ProjectTrustStore();
|
|
22
|
+
const loader = createSkillLoader({ isWorkspaceTrusted: (resolvedPath) => trustStore.get(resolvedPath) === true });
|
|
23
|
+
const bundledSkillsDir = options.bundledSkillsDir === void 0 ? resolveBundledSkillsDir() : options.bundledSkillsDir;
|
|
24
|
+
loader.init(workspaceDir, bundledSkillsDir);
|
|
25
|
+
return loader.load();
|
|
26
|
+
}
|
|
19
27
|
function loadWorkspaceSkillEntries(workspaceDir) {
|
|
20
|
-
|
|
21
|
-
loader.init(workspaceDir, resolveBundledSkillsDir());
|
|
22
|
-
return loader.load().skills.map((skill) => ({
|
|
28
|
+
return loadWorkspaceSkillCatalog(workspaceDir).skills.map((skill) => ({
|
|
23
29
|
skill,
|
|
24
30
|
metadata: skill.metadata,
|
|
25
31
|
enabled: true
|
|
@@ -29,10 +35,8 @@ function createSkillsCommand(ctx) {
|
|
|
29
35
|
const command = new Command("skills");
|
|
30
36
|
command.description("Manage skills");
|
|
31
37
|
command.command("list").description("List available skills").option("-v, --verbose", "Show detailed information").option("--json", "Output as JSON").action(async (options) => {
|
|
32
|
-
const loader = createSkillLoader();
|
|
33
38
|
const workspaceDir = ctx.workspacePath;
|
|
34
|
-
|
|
35
|
-
const result = loader.load();
|
|
39
|
+
const result = loadWorkspaceSkillCatalog(workspaceDir);
|
|
36
40
|
if (options.json) {
|
|
37
41
|
console.log(JSON.stringify({
|
|
38
42
|
skills: result.skills.map((s) => ({
|
|
@@ -78,12 +82,12 @@ function createSkillsCommand(ctx) {
|
|
|
78
82
|
});
|
|
79
83
|
command.command("install <skill-name>").description("Install a skill dependency").option("-i, --id <install-id>", "Install spec ID to use").option("--timeout <ms>", "Installation timeout in ms", "300000").option("--dry-run", "Show what would be installed without executing").action(async (skillName, options) => {
|
|
80
84
|
const workspaceDir = ctx.workspacePath;
|
|
81
|
-
const
|
|
85
|
+
const entries = loadWorkspaceSkillEntries(workspaceDir);
|
|
86
|
+
const entry = entries.find((e) => e.skill.name === skillName);
|
|
82
87
|
if (!entry) {
|
|
83
88
|
console.error(`Error: Skill "${skillName}" not found in workspace`);
|
|
84
89
|
console.log("\nAvailable skills:");
|
|
85
|
-
const
|
|
86
|
-
for (const skill of result.skills) console.log(` - ${skill.name}`);
|
|
90
|
+
for (const { skill } of entries) console.log(` - ${skill.name}`);
|
|
87
91
|
process.exit(1);
|
|
88
92
|
}
|
|
89
93
|
const installSpecs = entry.metadata.xopc?.install || entry.metadata.install || [];
|
|
@@ -143,10 +147,8 @@ function createSkillsCommand(ctx) {
|
|
|
143
147
|
console.log(`✓ Skill "${skillName}" disabled`);
|
|
144
148
|
});
|
|
145
149
|
command.command("status [skill-name]").description("Show skill status").option("--json", "Output as JSON").action(async (skillName, options) => {
|
|
146
|
-
const loader = createSkillLoader();
|
|
147
150
|
const workspaceDir = ctx.workspacePath;
|
|
148
|
-
|
|
149
|
-
const result = loader.load();
|
|
151
|
+
const result = loadWorkspaceSkillCatalog(workspaceDir);
|
|
150
152
|
const config = createSkillConfigManager(resolveStateDir()).load();
|
|
151
153
|
if (skillName) {
|
|
152
154
|
const skill = result.skills.find((s) => s.name === skillName);
|
|
@@ -213,10 +215,8 @@ function createSkillsCommand(ctx) {
|
|
|
213
215
|
}
|
|
214
216
|
});
|
|
215
217
|
command.command("audit [skill-name]").description("Security audit for skills").option("--deep", "Show detailed findings").action(async (skillName, options) => {
|
|
216
|
-
const loader = createSkillLoader();
|
|
217
218
|
const workspaceDir = ctx.workspacePath;
|
|
218
|
-
|
|
219
|
-
const result = loader.load();
|
|
219
|
+
const result = loadWorkspaceSkillCatalog(workspaceDir);
|
|
220
220
|
async function auditSkill(skill) {
|
|
221
221
|
const summary = await scanSkillDirectory(skill.baseDir);
|
|
222
222
|
console.log(`\n${formatScanSummary(summary, skill.name)}\n`);
|
|
@@ -359,4 +359,4 @@ register({
|
|
|
359
359
|
}
|
|
360
360
|
});
|
|
361
361
|
//#endregion
|
|
362
|
-
export { createSkillsCommand };
|
|
362
|
+
export { createSkillsCommand, loadWorkspaceSkillCatalog };
|