@xopcai/xopc 0.0.179 → 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-A5FUMjeV.js → activity-store-WlR2zEvA.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-NghNiDWx.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-Bmzslx0Z.js → api-tVOllncq.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-DDWS_BBJ.js → app-management-settings-panel-C9hKBzaF.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-C6znvVtX.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-fvTZhPUr.js → archive-plugin-Ct-shK4n.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-BFEgvg-Q.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-CuI2bOc7.js → binary-plugins-BpSXZBle.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-Z_k8W0al.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-Cq5qXStp.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-TwMak0SE.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-DBKotvNr.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-CyIg2jJp.js → desktop-pet-settings-C0Ve04-G.js} +1 -1
- package/dist/gateway/static/root/assets/{directory-picker-path-field-B6fc_7SL.js → directory-picker-path-field-B2cvhvAI.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-AbRNi2ON.js → extension-debug-page-DNashgGu.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-ClYfiLXC.js → extension-page-Bvo-5htX.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-BGVP2hw1.js → extension-settings-page-BBESdISV.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-api-B7GqtklK.js → gateway-config-api-ClQvokMo.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-BMeK8igT.js → gateway-settings-CIRs2QVy.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-CKKL96r_.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-BY3VQ5Mv.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-CELtDFz3.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-CF5uUd1n.js → local-apps-page-B6GKdgza.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-DIVc0AQs.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-CN85EdB8.js → markdown-split-BeNMJm_i.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-CxYEc-b8.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-Goab4781.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-tQNQcAts.js → page-tabs-3t88bbGx.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-BSTlgsDB.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-iQ5gTCip.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-Bbw8l2ri.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-BqbibcnJ.js → settings-form-section-DYAS8p8z.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-loading-skeleton-DNLNCEGT.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-Cdb1e2Cz.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-CkrASny2.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-BG5dGkyA.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-DtwI_VLT.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-DOnpwsrE.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-DP80jW-W.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-BLlVqKdA.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 +7 -4
- package/dist/src/agent/agent-manager.js +38 -23
- 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/run-for-session.d.ts +2 -0
- package/dist/src/agent/embedded/run-for-session.js +3 -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/inbound/inbound-loop.js +1 -1
- package/dist/src/agent/inbound/turn-dispatcher.d.ts +6 -1
- package/dist/src/agent/inbound/turn-dispatcher.js +6 -3
- package/dist/src/agent/lifecycle/progress.js +0 -1
- package/dist/src/agent/lifecycle/timeout-wrapper.d.ts +2 -0
- package/dist/src/agent/lifecycle/timeout-wrapper.js +39 -9
- package/dist/src/agent/mcp/bundle-mcp-materialize.js +2 -2
- 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/bundle-mcp-runtime.js +6 -1
- package/dist/src/agent/mcp/bundle-mcp-types.d.ts +1 -1
- package/dist/src/agent/mcp/index.js +2 -2
- package/dist/src/agent/mcp/mcp-transport-config.d.ts +2 -0
- package/dist/src/agent/mcp/mcp-transport-config.js +10 -3
- package/dist/src/agent/mcp/mcp-transport.d.ts +1 -0
- package/dist/src/agent/mcp/mcp-transport.js +5 -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/orchestration/run-agent-turn-with-timeout.d.ts +1 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +6 -2
- 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 +3 -2
- package/dist/src/agent/service/direct-turn-helpers.js +9 -5
- package/dist/src/agent/service/process-direct-one-shot.d.ts +3 -0
- package/dist/src/agent/service/process-direct-one-shot.js +4 -1
- 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 +7 -9
- package/dist/src/agent/service.js +32 -23
- 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-state-bag.d.ts +8 -8
- package/dist/src/agent/session/session-state-bag.js +10 -10
- package/dist/src/agent/skills/config.js +6 -0
- package/dist/src/agent/skills/filesystem-watcher.d.ts +4 -0
- package/dist/src/agent/skills/filesystem-watcher.js +16 -7
- package/dist/src/agent/skills/index.d.ts +10 -7
- package/dist/src/agent/skills/index.js +56 -47
- package/dist/src/agent/skills/skill-manage-ops.js +1 -1
- package/dist/src/agent/skills/skill-manager.d.ts +5 -2
- package/dist/src/agent/skills/skill-manager.js +10 -5
- package/dist/src/agent/skills/skill-sources.d.ts +18 -0
- package/dist/src/agent/skills/skill-sources.js +143 -0
- package/dist/src/agent/skills/types.d.ts +25 -2
- 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 +6 -5
- 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/executor.d.ts +2 -0
- package/dist/src/agent/tools/executor.js +18 -11
- package/dist/src/agent/tools/factory.d.ts +2 -4
- package/dist/src/agent/tools/factory.js +10 -29
- package/dist/src/agent/tools/index.d.ts +1 -2
- package/dist/src/agent/tools/index.js +2 -3
- package/dist/src/agent/tools/managed-job-tool.d.ts +2 -0
- package/dist/src/agent/tools/managed-job-tool.js +160 -0
- 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 +5 -4
- package/dist/src/agent/workspace-runtime/registry.js +4 -3
- 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/index.js +1 -1
- package/dist/src/agent-runtime/memory-runtime.d.ts +2 -2
- package/dist/src/agent-runtime/runtime-profile.js +1 -1
- package/dist/src/ai-assist/text-assist.js +4 -4
- package/dist/src/auth/credentials.d.ts +9 -1
- package/dist/src/auth/credentials.js +110 -54
- package/dist/src/auth/model-credential-store.js +7 -22
- package/dist/src/auth/oauth-provider-lock.d.ts +5 -0
- package/dist/src/auth/oauth-provider-lock.js +91 -0
- package/dist/src/automations/domain/defaults.d.ts +8 -1
- package/dist/src/automations/domain/defaults.js +9 -2
- package/dist/src/automations/domain/index.js +2 -2
- package/dist/src/automations/domain/types.d.ts +48 -8
- package/dist/src/automations/domain/validation.d.ts +344 -12
- package/dist/src/automations/domain/validation.js +8 -0
- package/dist/src/automations/draft/automation-draft-prompt.js +3 -3
- package/dist/src/automations/draft/automation-draft-validator.d.ts +63 -1
- package/dist/src/automations/draft/automation-draft-validator.js +1 -0
- package/dist/src/automations/index.js +3 -3
- package/dist/src/automations/service/action-executor.d.ts +2 -2
- package/dist/src/automations/service/action-executor.js +165 -35
- package/dist/src/automations/service/automation-service.d.ts +4 -0
- package/dist/src/automations/service/automation-service.js +207 -28
- package/dist/src/automations/storage/automation-run-repository.d.ts +1 -0
- package/dist/src/automations/storage/automation-run-repository.js +37 -7
- package/dist/src/automations/storage/index.js +2 -2
- 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/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/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/cli/utils/oauth-login.js +1 -7
- 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 +2 -2
- package/dist/src/config/index.js +3 -3
- package/dist/src/config/paths.d.ts +0 -3
- package/dist/src/config/paths.js +2 -7
- package/dist/src/config/schema.d.ts +163 -258
- package/dist/src/config/schema.js +10 -115
- 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/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 +16 -18
- 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/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 +5 -3
- 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/oauth-async.js +1 -7
- package/dist/src/gateway/hono/oauth.js +1 -7
- 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/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/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 +147 -130
- package/dist/src/gateway/session-reset-service.js +6 -6
- package/dist/src/gateway/user-turn-input.d.ts +0 -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/service.js +1 -1
- 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/oauth.js +12 -0
- package/dist/src/providers/model-response.d.ts +4 -0
- package/dist/src/providers/model-response.js +28 -0
- 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/088_automation_execution_deadlines.sql +5 -0
- package/dist/src/storage/sqlite/migrations/089_automation_run_leases.sql +8 -0
- 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 +43 -26
- package/dist/src/{work → tasks}/home-query-service.js +57 -127
- 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 +13 -1
- package/dist/src/tui/backends/embedded-backend.js +40 -10
- 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 +15 -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-oauth-login.js +1 -7
- package/dist/src/tui/tui-picker-overlay.js +1 -0
- package/dist/src/tui/tui-picker-services.d.ts +1 -0
- 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-skills-autocomplete.d.ts +6 -2
- package/dist/src/tui/tui-skills-autocomplete.js +10 -6
- package/dist/src/tui/tui-startup-resources.d.ts +3 -1
- package/dist/src/tui/tui-startup-resources.js +3 -2
- 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 +92 -72
- 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 +104 -34
- package/dist/src/workflows/service/workflow-run-service.types.d.ts +4 -3
- 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-Baq8Shzy.js +0 -2
- package/dist/gateway/static/root/assets/apps-page-d-Y0Jbe1.js +0 -1
- package/dist/gateway/static/root/assets/automations-page-CFYOCBlQ.js +0 -6
- package/dist/gateway/static/root/assets/browser-settings-page-CGApoYPr.js +0 -8
- package/dist/gateway/static/root/assets/browser-workflow-inputs-gs6b5e9-.js +0 -1
- package/dist/gateway/static/root/assets/capabilities-settings-panel-BC-8n4Hl.js +0 -7
- package/dist/gateway/static/root/assets/capability-presets-api-BTKhPoDC.js +0 -1
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-D7WQ0oBN.js +0 -1
- package/dist/gateway/static/root/assets/channels-settings-DysELlO_.js +0 -1
- package/dist/gateway/static/root/assets/channels-status-swr-BAC-R8IK.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-QH-0WnOo.js +0 -2
- package/dist/gateway/static/root/assets/desktop-pet-Dwml8znf.js +0 -1
- package/dist/gateway/static/root/assets/dreaming-scene-BHMRVEUS.js +0 -4585
- package/dist/gateway/static/root/assets/dreaming-settings-CUQxGnDf.js +0 -3
- package/dist/gateway/static/root/assets/format-cron-label-arqgGlVV.js +0 -1
- package/dist/gateway/static/root/assets/goals-settings-Dj0ao2qA.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-settings-CTI2nPKa.js +0 -1
- package/dist/gateway/static/root/assets/index-B0Tdge_q.css +0 -1
- package/dist/gateway/static/root/assets/index-BDzspHrg.js +0 -224
- package/dist/gateway/static/root/assets/local-app-workbench-page-m8CTSGix.js +0 -2
- package/dist/gateway/static/root/assets/logs-page-DmH7Tk4k.js +0 -7
- package/dist/gateway/static/root/assets/messages-DYqBwJAK.js +0 -3
- package/dist/gateway/static/root/assets/notes-workbench-C4jDBVBN.js +0 -4
- package/dist/gateway/static/root/assets/outcome-detail-page-DNRfeLZp.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-D7anK-eu.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-BePESKWy.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-CHrzBKIs.js +0 -1
- package/dist/gateway/static/root/assets/save-bar-controls-BsPf5Gkk.js +0 -1
- package/dist/gateway/static/root/assets/schedule-field-kAytH7mq.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-He5YAczL.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-2eAC9GCP.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-BR6Ss0bK.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-moT-D-ia.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-X49zY21H.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-CjpnFfOH.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-DEwfSOUE.js +0 -2
- package/dist/gateway/static/root/assets/system-settings-panel-XdY8eyYf.js +0 -1
- package/dist/gateway/static/root/assets/time-picker-UghsQu_I.js +0 -1
- package/dist/gateway/static/root/assets/use-channel-catalog-BWDtfNvQ.js +0 -1
- package/dist/gateway/static/root/assets/user-context-page-BtNBEtKj.js +0 -1
- package/dist/gateway/static/root/assets/work-copy-hQmivDgT.js +0 -1
- package/dist/gateway/static/root/assets/work-discovery-page-CkDOVZBr.js +0 -1
- package/dist/gateway/static/root/assets/work-item-detail-page-CqvkcFcR.js +0 -1
- package/dist/gateway/static/root/assets/work-page-BL8TZW4Z.js +0 -3
- package/dist/gateway/static/root/assets/workflows-page-BgsdRu3_.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
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { buildTaskExecutionDirective } from "../../tasks/task-context-assembler.js";
|
|
1
2
|
import { resolveImageHandlingStrategy } from "../image/vision-detection.js";
|
|
2
3
|
import { hydrateUserTurnForLlm } from "../inbound/attachment-pipeline.js";
|
|
4
|
+
import { prependAgentContext } from "../memory/context/planner.js";
|
|
3
5
|
import { extractAgentUserPlainText } from "../memory/user-message-text.js";
|
|
4
6
|
import { shouldSkipResetOverlapCommand } from "../../session/reset-triggers.js";
|
|
5
7
|
import { parseSlashCommand } from "../../chat-commands/command-parse.js";
|
|
@@ -74,12 +76,13 @@ async function tryRunSlashCommand(deps, ctx, content, options) {
|
|
|
74
76
|
* prefetch + background-review nudge wiring used by every direct entry point.
|
|
75
77
|
*/
|
|
76
78
|
async function runDirectAgentTurn(deps, input) {
|
|
79
|
+
const turnId = input.runId ?? crypto.randomUUID();
|
|
77
80
|
const userPlain = extractAgentUserPlainText(input.userMessage);
|
|
78
|
-
const userContext = await deps.agentManager.prepareUserTurnContext(input.userMessage, input.sessionKey);
|
|
79
|
-
const userMessageForModel = userContext.modelMessage;
|
|
81
|
+
const userContext = await deps.agentManager.prepareUserTurnContext(input.userMessage, input.sessionKey, turnId);
|
|
82
|
+
const userMessageForModel = prependAgentContext(userContext.modelMessage, buildTaskExecutionDirective(input.sessionKey));
|
|
80
83
|
if (userContext.consentRequests.length > 0) input.onEvent?.({
|
|
81
84
|
type: "memory_consent_required",
|
|
82
|
-
runId:
|
|
85
|
+
runId: turnId,
|
|
83
86
|
requests: userContext.consentRequests
|
|
84
87
|
});
|
|
85
88
|
const modelRef = deps.modelManager.getModelForSession(input.sessionKey);
|
|
@@ -91,7 +94,7 @@ async function runDirectAgentTurn(deps, input) {
|
|
|
91
94
|
const llmImages = [...llmTurn.images, ...sourceImages];
|
|
92
95
|
const result = await runEmbeddedTurnForSession({
|
|
93
96
|
sessionKey: input.sessionKey,
|
|
94
|
-
runId:
|
|
97
|
+
runId: turnId,
|
|
95
98
|
userMessage: userMessageForModel,
|
|
96
99
|
llmImages,
|
|
97
100
|
sessionStore: deps.sessionStore,
|
|
@@ -99,13 +102,14 @@ async function runDirectAgentTurn(deps, input) {
|
|
|
99
102
|
modelManager: deps.modelManager,
|
|
100
103
|
getConfig: () => deps.config,
|
|
101
104
|
abortSignal: input.abortSignal,
|
|
105
|
+
deadlineAtMs: input.deadlineAtMs,
|
|
102
106
|
beforeTurn: () => deps.agentManager.beginBackgroundReviewUserTurn(input.sessionKey),
|
|
103
107
|
onEvent: input.onEvent
|
|
104
108
|
});
|
|
105
109
|
const understandingReview = await deps.agentManager.afterAgentTurn(input.sessionKey, userPlain);
|
|
106
110
|
if (understandingReview?.createdRecords.length) input.onEvent?.({
|
|
107
111
|
type: "memory_captured",
|
|
108
|
-
runId:
|
|
112
|
+
runId: turnId,
|
|
109
113
|
records: understandingReview.createdRecords
|
|
110
114
|
});
|
|
111
115
|
deps.agentManager.scheduleBackgroundReviewAfterUserTurn(input.sessionKey);
|
|
@@ -61,7 +61,10 @@ async function runProcessDirect(deps, input) {
|
|
|
61
61
|
config: deps.config
|
|
62
62
|
}, {
|
|
63
63
|
sessionKey: input.sessionKey,
|
|
64
|
-
|
|
64
|
+
runId: input.runId,
|
|
65
|
+
userMessage,
|
|
66
|
+
abortSignal: input.signal,
|
|
67
|
+
deadlineAtMs: input.deadlineAtMs
|
|
65
68
|
}));
|
|
66
69
|
} finally {
|
|
67
70
|
clearPendingTranscriptUserMessage(input.sessionKey, pendingUserMessage);
|
|
@@ -36,8 +36,8 @@ export interface ProcessDirectStreamingDeps {
|
|
|
36
36
|
commandHandler: Pick<CommandHandler, 'executeCommandAndAggregateReply'>;
|
|
37
37
|
prepareInboundAttachments: (sessionKey: string, attachments?: DirectStreamInboundAttachment[]) => Promise<MediaRef[] | undefined>;
|
|
38
38
|
buildTranscriptUserMessage: (content: string, prepared: MediaRef[] | undefined, sessionKey: string) => Promise<TranscriptUserMessage>;
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
recordTaskReviewStreamHint?: (sessionKey: string, task: {
|
|
40
|
+
skipTaskReview: boolean;
|
|
41
41
|
}) => void;
|
|
42
42
|
onTurnComplete?: (sessionKey: string, lastAssistantText?: string) => void;
|
|
43
43
|
enqueueProvisionalSessionTitle?: (sessionKey: string, userText: string) => void;
|
|
@@ -237,7 +237,7 @@ async function* runProcessDirectStreaming(deps, input) {
|
|
|
237
237
|
webchatSlashReceipt = text;
|
|
238
238
|
pushAssistantReceipt(queue, text, input.runId, slashCommandMetadata);
|
|
239
239
|
} else if (channel === "webchat") {
|
|
240
|
-
webchatSlashReceipt = "Command finished with no assistant text.
|
|
240
|
+
webchatSlashReceipt = "Command finished with no assistant text. An Task continuation may still be scheduled automatically.";
|
|
241
241
|
pushAssistantReceipt(queue, webchatSlashReceipt, input.runId);
|
|
242
242
|
}
|
|
243
243
|
const workflowRun = slash.metadata?.workflowRun;
|
|
@@ -350,7 +350,7 @@ async function* runProcessDirectStreaming(deps, input) {
|
|
|
350
350
|
sessionKey
|
|
351
351
|
}, "Failed to persist webchat slash command receipt");
|
|
352
352
|
}
|
|
353
|
-
deps.
|
|
353
|
+
deps.recordTaskReviewStreamHint?.(sessionKey, { skipTaskReview: ranSlashCommand });
|
|
354
354
|
} finally {
|
|
355
355
|
if (channel === "webchat") deps.unregisterWebchatSsePublisher(sessionKey);
|
|
356
356
|
deps.endDirectRequestContext();
|
|
@@ -9,7 +9,7 @@ import { type AgentSkillAvailabilityPayload, type SkillCatalogEntry, type SkillC
|
|
|
9
9
|
import type { SkillMarkdownPreviewPayload } from './skills/types.js';
|
|
10
10
|
import type { AgentCapabilityCatalogEntry } from './capabilities/index.js';
|
|
11
11
|
import type { AgentServiceConfig, StreamHandle } from './service.types.js';
|
|
12
|
-
import {
|
|
12
|
+
import { TaskJudgeService } from './tasks/task-judge-service.js';
|
|
13
13
|
import type { SkillInstallToolOptions, SkillInstallToolResult, MarketplaceSkillInstallToolOptions, MarketplaceSkillInstallToolResult } from './tools/skill-install-tool.js';
|
|
14
14
|
import { type InboundAttachmentInput, type MediaRef } from '../channels/attachments/inbound-persist.js';
|
|
15
15
|
export type { AgentServiceConfig, AgentContext, StreamHandle } from './service.types.js';
|
|
@@ -55,12 +55,8 @@ export declare class AgentService {
|
|
|
55
55
|
* TUI, CLI, and automations do not need to thread every call through `AgentService`.
|
|
56
56
|
*/
|
|
57
57
|
readonly turnDispatcher: TurnDispatcher;
|
|
58
|
-
/**
|
|
59
|
-
|
|
60
|
-
* stream-outcome state, post-turn verdict. Public so the gateway can wire
|
|
61
|
-
* the webchat continuation scheduler and read stream outcomes directly.
|
|
62
|
-
*/
|
|
63
|
-
readonly persistentGoals: PersistentGoalService;
|
|
58
|
+
/** Independent acceptance review for the active Task after an agent turn. */
|
|
59
|
+
readonly taskJudge: TaskJudgeService;
|
|
64
60
|
/**
|
|
65
61
|
* Per-session config writes (model / thinking / reasoning / working directory).
|
|
66
62
|
* Public so REST endpoints and CLI flows can hit it without going through a
|
|
@@ -88,8 +84,8 @@ export declare class AgentService {
|
|
|
88
84
|
private agentManager;
|
|
89
85
|
/**
|
|
90
86
|
* Unified per-session state container (replaces six ad-hoc Maps). Owns webchat
|
|
91
|
-
* publishers, last assistant text, embedded stream buffer,
|
|
92
|
-
*
|
|
87
|
+
* publishers, last assistant text, embedded stream buffer, Task review stream
|
|
88
|
+
* tasks, concurrent-turn depth, and event-listener unsubscribers; runs a TTL
|
|
93
89
|
* sweep for slots that have no explicit owner.
|
|
94
90
|
*/
|
|
95
91
|
private sessionState;
|
|
@@ -113,6 +109,7 @@ export declare class AgentService {
|
|
|
113
109
|
getCapabilityCatalog(sessionKey?: string): AgentCapabilityCatalogEntry[];
|
|
114
110
|
getSkillMarkdownSource(skillName: string): SkillMarkdownPreviewPayload | null;
|
|
115
111
|
refreshSkillsAfterDiskChange(): void;
|
|
112
|
+
refreshSkillsAfterTrustChange(): void;
|
|
116
113
|
installSkillFromSource(opts: SkillInstallToolOptions): Promise<SkillInstallToolResult>;
|
|
117
114
|
installSkillFromMarketplace(opts: MarketplaceSkillInstallToolOptions): Promise<MarketplaceSkillInstallToolResult>;
|
|
118
115
|
refreshSkillsAfterSkillConfigChange(): void;
|
|
@@ -133,6 +130,7 @@ export declare class AgentService {
|
|
|
133
130
|
beginInboundTurn(sessionKey: string): void;
|
|
134
131
|
endInboundTurn(sessionKey: string): void;
|
|
135
132
|
getInboundTurnDepth(sessionKey: string): number;
|
|
133
|
+
takeTaskReviewStreamHint(sessionKey: string): import("./session/session-state-bag.js").TaskReviewStreamHint;
|
|
136
134
|
start(): Promise<void>;
|
|
137
135
|
stop(): Promise<void>;
|
|
138
136
|
reconcileDreamingNow(): Promise<void>;
|
|
@@ -9,6 +9,7 @@ import { init_paths, resolveUserProfilePath } from "../config/paths.js";
|
|
|
9
9
|
import { extractTextContent } from "./context/workspace.js";
|
|
10
10
|
import { effectiveWorkspacePathForSession } from "../session/session-workspace.js";
|
|
11
11
|
import { getProjectForSession } from "../projects/workspace.js";
|
|
12
|
+
import { resolveResponseLanguageForSession } from "./prompt/response-language.js";
|
|
12
13
|
import { resolveWorkspaceSkillsDir, resolveWorkspaceSkillsLockPath } from "./skills/workspace-skills-dir.js";
|
|
13
14
|
import { removeSkillsLockEntry } from "./skills/hub-lock.js";
|
|
14
15
|
import { installSkillFromZip } from "./skills/managed-store.js";
|
|
@@ -63,7 +64,8 @@ import { getWorkflowProgressBroker } from "./workflow/progress-broker.js";
|
|
|
63
64
|
import "./workflow/index.js";
|
|
64
65
|
import { FeedbackCoordinator } from "./feedback/feedback-coordinator.js";
|
|
65
66
|
import "./feedback/index.js";
|
|
66
|
-
import {
|
|
67
|
+
import { TaskJudgeService } from "./tasks/task-judge-service.js";
|
|
68
|
+
import { analyzeResponseLanguage } from "../i18n/language-consistency.js";
|
|
67
69
|
import { existsSync, readFileSync } from "node:fs";
|
|
68
70
|
import { readFile } from "node:fs/promises";
|
|
69
71
|
//#region src/agent/service.ts
|
|
@@ -124,12 +126,8 @@ var AgentService = class {
|
|
|
124
126
|
* TUI, CLI, and automations do not need to thread every call through `AgentService`.
|
|
125
127
|
*/
|
|
126
128
|
turnDispatcher;
|
|
127
|
-
/**
|
|
128
|
-
|
|
129
|
-
* stream-outcome state, post-turn verdict. Public so the gateway can wire
|
|
130
|
-
* the webchat continuation scheduler and read stream outcomes directly.
|
|
131
|
-
*/
|
|
132
|
-
persistentGoals;
|
|
129
|
+
/** Independent acceptance review for the active Task after an agent turn. */
|
|
130
|
+
taskJudge;
|
|
133
131
|
/**
|
|
134
132
|
* Per-session config writes (model / thinking / reasoning / working directory).
|
|
135
133
|
* Public so REST endpoints and CLI flows can hit it without going through a
|
|
@@ -157,8 +155,8 @@ var AgentService = class {
|
|
|
157
155
|
agentManager;
|
|
158
156
|
/**
|
|
159
157
|
* Unified per-session state container (replaces six ad-hoc Maps). Owns webchat
|
|
160
|
-
* publishers, last assistant text, embedded stream buffer,
|
|
161
|
-
*
|
|
158
|
+
* publishers, last assistant text, embedded stream buffer, Task review stream
|
|
159
|
+
* tasks, concurrent-turn depth, and event-listener unsubscribers; runs a TTL
|
|
162
160
|
* sweep for slots that have no explicit owner.
|
|
163
161
|
*/
|
|
164
162
|
sessionState = new SessionStateBag();
|
|
@@ -243,8 +241,8 @@ var AgentService = class {
|
|
|
243
241
|
getBrowserRecipeService: config.getBrowserRecipeService,
|
|
244
242
|
getNotesService: config.getNotesService,
|
|
245
243
|
getProjectService: config.getProjectService,
|
|
246
|
-
getWorkItemService: config.getWorkItemService,
|
|
247
244
|
getLocalAppService: config.getLocalAppService,
|
|
245
|
+
dispatchTaskRuns: config.dispatchTaskRuns,
|
|
248
246
|
getWorkflowRunService: config.getWorkflowRunService,
|
|
249
247
|
onSkillsUpdated: config.onSkillsUpdated,
|
|
250
248
|
installSkillFromSource: (opts) => this.installSkillFromSource(opts),
|
|
@@ -270,6 +268,18 @@ var AgentService = class {
|
|
|
270
268
|
const changedPaths = readChangedPathsFromToolEnd(e.toolName, e.args, e.result);
|
|
271
269
|
this.agentManager.markCodeIntelligenceDirty(context.sessionKey, changedPaths);
|
|
272
270
|
});
|
|
271
|
+
this.agentEventHandler.registerListener("message_end", (event, context) => {
|
|
272
|
+
const message = event.message;
|
|
273
|
+
if (message.role !== "assistant") return;
|
|
274
|
+
const analysis = analyzeResponseLanguage(assistantMessageText(message), resolveResponseLanguageForSession(this.effectiveAppConfig(), context.sessionKey));
|
|
275
|
+
const fields = {
|
|
276
|
+
phase: "response_language_check",
|
|
277
|
+
sessionKey: context.sessionKey,
|
|
278
|
+
...analysis
|
|
279
|
+
};
|
|
280
|
+
if (analysis.compliant) log.debug(fields, "Assistant response language check passed");
|
|
281
|
+
else log.warn(fields, "Assistant response language did not match the active preference");
|
|
282
|
+
});
|
|
273
283
|
this.workflowProgressBrokerHandle = getWorkflowProgressBroker().attachTo(this.agentEventHandler);
|
|
274
284
|
this.sessionHydrator = new SessionHydrator({
|
|
275
285
|
sessionConfigStore: this.sessionConfigStore,
|
|
@@ -311,7 +321,6 @@ var AgentService = class {
|
|
|
311
321
|
bus,
|
|
312
322
|
sessionStore: this.sessionStore,
|
|
313
323
|
sessionConfigStore: this.sessionConfigStore,
|
|
314
|
-
getPersistentGoalApisForCommand: (routing) => this.persistentGoals.buildApisForRouting(routing),
|
|
315
324
|
getWorkflowRunService: config.getWorkflowRunService,
|
|
316
325
|
applySessionThinkingLevel: (sessionKey, level) => {
|
|
317
326
|
this.agentManager.setThinkingLevel(sessionKey, level);
|
|
@@ -333,16 +342,10 @@ var AgentService = class {
|
|
|
333
342
|
getSessionContextReport: (sessionKey, mode) => this.sessionInspector.report(sessionKey, mode)
|
|
334
343
|
});
|
|
335
344
|
this.sessionLifecycleManager = new SessionLifecycleManager(this.sessionStore, this.sessionTracker, this.lifecycleManager);
|
|
336
|
-
this.
|
|
337
|
-
bus,
|
|
345
|
+
this.taskJudge = new TaskJudgeService({
|
|
338
346
|
sessionStore: this.sessionStore,
|
|
339
347
|
modelManager: this.modelManager,
|
|
340
|
-
|
|
341
|
-
getConfig: () => this.effectiveAppConfig(),
|
|
342
|
-
getResolvedWorkspaceForSession: (sk) => this.agentManager.getResolvedWorkspaceForSession(sk),
|
|
343
|
-
onSessionMetadataUpdated: this.onSessionMetadataUpdated,
|
|
344
|
-
onGoalStatusUpdated: config.onGoalStatusUpdated,
|
|
345
|
-
notifyWebchatTranscriptAppend: (sk, text) => this.turnDispatcher.notifyWebchatTranscriptAppend(sk, text)
|
|
348
|
+
getConfig: () => this.effectiveAppConfig()
|
|
346
349
|
});
|
|
347
350
|
this.sessionConfig = new SessionConfigService({
|
|
348
351
|
sessionStore: this.sessionStore,
|
|
@@ -366,7 +369,7 @@ var AgentService = class {
|
|
|
366
369
|
streamManager: this.streamManager,
|
|
367
370
|
getConfig: () => this.effectiveAppConfig(),
|
|
368
371
|
getLastAssistantPlainText: (sk) => this.getLastAssistantPlainText(sk),
|
|
369
|
-
|
|
372
|
+
reviewTaskTurn: (payload) => this.taskJudge.reviewTurn(payload)
|
|
370
373
|
});
|
|
371
374
|
this.turnDispatcher = new TurnDispatcher({
|
|
372
375
|
log,
|
|
@@ -532,6 +535,9 @@ var AgentService = class {
|
|
|
532
535
|
refreshSkillsAfterDiskChange() {
|
|
533
536
|
this.agentManager.refreshSkillsAfterDiskChange();
|
|
534
537
|
}
|
|
538
|
+
refreshSkillsAfterTrustChange() {
|
|
539
|
+
this.agentManager.refreshSkillsAfterTrustChange();
|
|
540
|
+
}
|
|
535
541
|
async installSkillFromSource(opts) {
|
|
536
542
|
const target = normalizeSkillInstallTarget(opts.target);
|
|
537
543
|
const workspace = opts.workspace?.trim() || (opts.sessionKey ? this.agentManager.getResolvedWorkspaceForSession(opts.sessionKey) : void 0) || this.workspaceDir;
|
|
@@ -622,6 +628,9 @@ var AgentService = class {
|
|
|
622
628
|
getInboundTurnDepth(sessionKey) {
|
|
623
629
|
return this.sessionState.getInboundTurnDepth(sessionKey);
|
|
624
630
|
}
|
|
631
|
+
takeTaskReviewStreamHint(sessionKey) {
|
|
632
|
+
return this.sessionState.takeTaskReviewStreamHint(sessionKey);
|
|
633
|
+
}
|
|
625
634
|
async start() {
|
|
626
635
|
await this.sessionConfigStore.initialize();
|
|
627
636
|
await this.hookHandler.trigger("gateway_start", {
|
|
@@ -759,14 +768,14 @@ var AgentService = class {
|
|
|
759
768
|
const { abortEmbeddedRun } = await import("./embedded/runs.js");
|
|
760
769
|
const { retireSessionMcpRuntimeForSessionKey } = await import("./mcp/bundle-mcp-tools.js");
|
|
761
770
|
await abortEmbeddedRun(key);
|
|
762
|
-
const
|
|
763
|
-
if (!
|
|
771
|
+
const task = await this.sessionStore.reset(key);
|
|
772
|
+
if (!task) return null;
|
|
764
773
|
this.agentManager.removeAgent(key);
|
|
765
774
|
await retireSessionMcpRuntimeForSessionKey({
|
|
766
775
|
sessionKey: key,
|
|
767
776
|
reason: "session-reset"
|
|
768
777
|
});
|
|
769
|
-
return
|
|
778
|
+
return task;
|
|
770
779
|
}
|
|
771
780
|
/**
|
|
772
781
|
* Drop in-memory agent so the next turn reloads transcript from disk (e.g. after checkpoint restore).
|
|
@@ -5,7 +5,6 @@ import type { AutomationService } from '../automations/index.js';
|
|
|
5
5
|
import type { ExtensionRegistryImpl as ExtensionRegistry } from '../extensions/index.js';
|
|
6
6
|
import type { NotesService } from '../notes/index.js';
|
|
7
7
|
import type { ProjectService } from '../projects/index.js';
|
|
8
|
-
import type { WorkItemService } from '../work-items/index.js';
|
|
9
8
|
import type { LocalAppService } from '../local-apps/index.js';
|
|
10
9
|
import type { GatewayClarifyRequestFn } from './tools/clarify-tool.js';
|
|
11
10
|
import type { ProgressStage } from './lifecycle/progress.js';
|
|
@@ -32,30 +31,18 @@ export interface AgentServiceConfig {
|
|
|
32
31
|
/** Gateway: exposes first-class xopc product objects for the `xopc_use` tool. */
|
|
33
32
|
getNotesService?: () => NotesService | undefined;
|
|
34
33
|
getProjectService?: () => ProjectService | undefined;
|
|
35
|
-
getWorkItemService?: () => WorkItemService | undefined;
|
|
36
34
|
getLocalAppService?: () => LocalAppService | undefined;
|
|
35
|
+
dispatchTaskRuns?: () => void;
|
|
37
36
|
/**
|
|
38
37
|
* Gateway: reuse the gateway `SessionManager` store so web API and agent share one index + files.
|
|
39
38
|
* When omitted, `AgentService` creates its own `SessionStore` (CLI / embedded).
|
|
40
39
|
*/
|
|
41
40
|
sessionStore?: SessionStore;
|
|
42
|
-
/**
|
|
43
|
-
* Gateway: invoked after `sessionStore.updateMetadata` from built-in `/goal` APIs (store does not emit).
|
|
44
|
-
* Wire to `sessionManager.emit('sessionUpdated', { key })` so the console refetches.
|
|
45
|
-
*/
|
|
46
41
|
onSessionMetadataUpdated?: (sessionKey: string, patch?: {
|
|
47
42
|
name?: string;
|
|
48
43
|
}) => void;
|
|
49
|
-
/** Gateway: transcript
|
|
44
|
+
/** Gateway: transcript append notification. */
|
|
50
45
|
onSessionTranscriptUpdated?: (sessionKey: string) => void;
|
|
51
|
-
/** Gateway: durable goal status changed after post-turn judge. */
|
|
52
|
-
onGoalStatusUpdated?: (payload: {
|
|
53
|
-
goalId: string;
|
|
54
|
-
sessionKey: string;
|
|
55
|
-
previousStatus: string;
|
|
56
|
-
status: string;
|
|
57
|
-
goal: import('../goals/types.js').GoalWithDetails;
|
|
58
|
-
}) => void;
|
|
59
46
|
/** Gateway/TUI: local skill catalog changed or skill config toggles changed. */
|
|
60
47
|
onSkillsUpdated?: (payload: {
|
|
61
48
|
reason: 'disk' | 'config';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export { SessionContextManager, type SessionContext, } from './session-context.js';
|
|
5
5
|
export { SessionLifecycleManager, type SessionLifecycleEvents, type SessionStats, } from './session-lifecycle.js';
|
|
6
|
-
export { SessionStateBag, type SessionStateBagOptions, type WebchatSsePublisher, type
|
|
6
|
+
export { SessionStateBag, type SessionStateBagOptions, type WebchatSsePublisher, type TaskReviewStreamHint, } from './session-state-bag.js';
|
|
7
7
|
export { SessionConfigService, type SessionConfigServiceOptions, type PatchSessionAgentConfigInput, type PatchSessionAgentConfigResult, } from './session-config-service.js';
|
|
8
8
|
export { SessionHydrator, type SessionHydratorOptions, } from './session-hydrator.js';
|
|
9
9
|
export { SessionInspector, type SessionInspectorOptions, type SessionContextUsage, type SessionAgentConfigView, } from './session-inspector.js';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
|
+
import { ResponseLanguageSchema, init_response_language } from "../../i18n/response-language.js";
|
|
3
4
|
import { normalizeWorkingDirectoryInput } from "../../session/session-workspace.js";
|
|
4
5
|
import { getProjectWorkspacePathForSession } from "../../projects/workspace.js";
|
|
5
6
|
import { normalizeReasoningLevel, normalizeThinkLevel, normalizeVerboseLevel } from "../transcript/thinking-types.js";
|
|
@@ -21,6 +22,7 @@ import { mkdir } from "node:fs/promises";
|
|
|
21
22
|
* "session config write" concerns, and so future additions to the patch API
|
|
22
23
|
* (e.g. new per-session overrides) only touch this file.
|
|
23
24
|
*/
|
|
25
|
+
init_response_language();
|
|
24
26
|
init_logger();
|
|
25
27
|
const log = createLogger("SessionConfigService");
|
|
26
28
|
var SessionConfigService = class {
|
|
@@ -71,6 +73,18 @@ var SessionConfigService = class {
|
|
|
71
73
|
};
|
|
72
74
|
await this.opts.sessionConfigStore.update(sessionKey, { verboseLevel: normalized });
|
|
73
75
|
}
|
|
76
|
+
if (partial.responseLanguage !== void 0) {
|
|
77
|
+
if (partial.responseLanguage === null) await this.opts.sessionConfigStore.update(sessionKey, { responseLanguage: void 0 });
|
|
78
|
+
else {
|
|
79
|
+
const parsed = ResponseLanguageSchema.safeParse(partial.responseLanguage);
|
|
80
|
+
if (!parsed.success) return {
|
|
81
|
+
ok: false,
|
|
82
|
+
error: "Invalid response language"
|
|
83
|
+
};
|
|
84
|
+
await this.opts.sessionConfigStore.update(sessionKey, { responseLanguage: parsed.data });
|
|
85
|
+
}
|
|
86
|
+
this.opts.agentManager.removeAgent(sessionKey);
|
|
87
|
+
}
|
|
74
88
|
if (partial.workingDirectory !== void 0) {
|
|
75
89
|
if (!this.opts.getConfig()) return {
|
|
76
90
|
ok: false,
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* - Hard upper bound for the same TTL'd slots to bound worst-case memory.
|
|
13
13
|
*
|
|
14
14
|
* Slots whose lifetime is fully owned by explicit lifecycle calls
|
|
15
|
-
* (`inboundTurnDepth`, `
|
|
15
|
+
* (`inboundTurnDepth`, `taskReviewHintBySession`, `embeddedStreamText`,
|
|
16
16
|
* `sessionEventUnsubscribers`) are still cleared via `disposeSession`, but they
|
|
17
17
|
* are NOT subject to TTL — sweeping them would race with their owners.
|
|
18
18
|
*/
|
|
@@ -20,8 +20,8 @@ export type WebchatSsePublisher = (event: {
|
|
|
20
20
|
type: string;
|
|
21
21
|
[key: string]: unknown;
|
|
22
22
|
}) => void;
|
|
23
|
-
export interface
|
|
24
|
-
|
|
23
|
+
export interface TaskReviewStreamHint {
|
|
24
|
+
skipTaskReview: boolean;
|
|
25
25
|
}
|
|
26
26
|
export interface SessionStateBagOptions {
|
|
27
27
|
/** Idle TTL for TTL-managed slots. Defaults to 1 hour. Set to 0 to disable sweeping. */
|
|
@@ -40,8 +40,8 @@ export declare class SessionStateBag {
|
|
|
40
40
|
private readonly lastAssistantText;
|
|
41
41
|
/** Stream text for the in-flight embedded turn (managed by turn). */
|
|
42
42
|
private readonly embeddedStreamText;
|
|
43
|
-
/**
|
|
44
|
-
private readonly
|
|
43
|
+
/** Task review stream state (take-and-delete). */
|
|
44
|
+
private readonly taskReviewHintBySession;
|
|
45
45
|
/** Concurrent inbound turn depth (counter). */
|
|
46
46
|
private readonly inboundTurnDepth;
|
|
47
47
|
/** Agent-event subscription tear-downs (run on dispose). */
|
|
@@ -58,8 +58,8 @@ export declare class SessionStateBag {
|
|
|
58
58
|
getLastAssistantText(sessionKey: string): string | undefined;
|
|
59
59
|
appendEmbeddedStreamText(sessionKey: string, chunk: string): string;
|
|
60
60
|
clearEmbeddedStreamText(sessionKey: string): void;
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
recordTaskReviewStreamHint(sessionKey: string, task: TaskReviewStreamHint): void;
|
|
62
|
+
takeTaskReviewStreamHint(sessionKey: string): TaskReviewStreamHint | undefined;
|
|
63
63
|
beginInboundTurn(sessionKey: string): void;
|
|
64
64
|
endInboundTurn(sessionKey: string): void;
|
|
65
65
|
getInboundTurnDepth(sessionKey: string): number;
|
|
@@ -74,7 +74,7 @@ export declare class SessionStateBag {
|
|
|
74
74
|
webchatPublishers: number;
|
|
75
75
|
lastAssistantText: number;
|
|
76
76
|
embeddedStreamText: number;
|
|
77
|
-
|
|
77
|
+
taskReviewHintBySession: number;
|
|
78
78
|
inboundTurnDepth: number;
|
|
79
79
|
sessionEventUnsubscribers: number;
|
|
80
80
|
};
|
|
@@ -13,8 +13,8 @@ var SessionStateBag = class {
|
|
|
13
13
|
lastAssistantText = /* @__PURE__ */ new Map();
|
|
14
14
|
/** Stream text for the in-flight embedded turn (managed by turn). */
|
|
15
15
|
embeddedStreamText = /* @__PURE__ */ new Map();
|
|
16
|
-
/**
|
|
17
|
-
|
|
16
|
+
/** Task review stream state (take-and-delete). */
|
|
17
|
+
taskReviewHintBySession = /* @__PURE__ */ new Map();
|
|
18
18
|
/** Concurrent inbound turn depth (counter). */
|
|
19
19
|
inboundTurnDepth = /* @__PURE__ */ new Map();
|
|
20
20
|
/** Agent-event subscription tear-downs (run on dispose). */
|
|
@@ -72,12 +72,12 @@ var SessionStateBag = class {
|
|
|
72
72
|
clearEmbeddedStreamText(sessionKey) {
|
|
73
73
|
this.embeddedStreamText.delete(sessionKey);
|
|
74
74
|
}
|
|
75
|
-
|
|
76
|
-
this.
|
|
75
|
+
recordTaskReviewStreamHint(sessionKey, task) {
|
|
76
|
+
this.taskReviewHintBySession.set(sessionKey, task);
|
|
77
77
|
}
|
|
78
|
-
|
|
79
|
-
const v = this.
|
|
80
|
-
this.
|
|
78
|
+
takeTaskReviewStreamHint(sessionKey) {
|
|
79
|
+
const v = this.taskReviewHintBySession.get(sessionKey);
|
|
80
|
+
this.taskReviewHintBySession.delete(sessionKey);
|
|
81
81
|
return v;
|
|
82
82
|
}
|
|
83
83
|
beginInboundTurn(sessionKey) {
|
|
@@ -123,7 +123,7 @@ var SessionStateBag = class {
|
|
|
123
123
|
this.webchatPublishers.delete(sessionKey);
|
|
124
124
|
this.lastAssistantText.delete(sessionKey);
|
|
125
125
|
this.embeddedStreamText.delete(sessionKey);
|
|
126
|
-
this.
|
|
126
|
+
this.taskReviewHintBySession.delete(sessionKey);
|
|
127
127
|
this.inboundTurnDepth.delete(sessionKey);
|
|
128
128
|
}
|
|
129
129
|
/** Tear down every session (process stop / hot reload). */
|
|
@@ -140,7 +140,7 @@ var SessionStateBag = class {
|
|
|
140
140
|
this.webchatPublishers.clear();
|
|
141
141
|
this.lastAssistantText.clear();
|
|
142
142
|
this.embeddedStreamText.clear();
|
|
143
|
-
this.
|
|
143
|
+
this.taskReviewHintBySession.clear();
|
|
144
144
|
this.inboundTurnDepth.clear();
|
|
145
145
|
if (this.sweepTimer) clearInterval(this.sweepTimer);
|
|
146
146
|
}
|
|
@@ -150,7 +150,7 @@ var SessionStateBag = class {
|
|
|
150
150
|
webchatPublishers: this.webchatPublishers.size,
|
|
151
151
|
lastAssistantText: this.lastAssistantText.size,
|
|
152
152
|
embeddedStreamText: this.embeddedStreamText.size,
|
|
153
|
-
|
|
153
|
+
taskReviewHintBySession: this.taskReviewHintBySession.size,
|
|
154
154
|
inboundTurnDepth: this.inboundTurnDepth.size,
|
|
155
155
|
sessionEventUnsubscribers: this.sessionEventUnsubscribers.size
|
|
156
156
|
};
|
|
@@ -162,6 +162,12 @@ function isSkillEnabled(skill, skillsConfig) {
|
|
|
162
162
|
*/
|
|
163
163
|
function validateSkillConfig(config) {
|
|
164
164
|
const errors = [];
|
|
165
|
+
const extraDirs = config.load?.extraDirs;
|
|
166
|
+
if (extraDirs !== void 0 && (!Array.isArray(extraDirs) || !extraDirs.every((dir) => typeof dir === "string"))) errors.push("load.extraDirs must contain only strings");
|
|
167
|
+
const agentsGlobalSource = config.load?.sources?.agentsGlobal;
|
|
168
|
+
if (agentsGlobalSource !== void 0 && (typeof agentsGlobalSource !== "object" || agentsGlobalSource === null || Array.isArray(agentsGlobalSource) || "enabled" in agentsGlobalSource && typeof agentsGlobalSource.enabled !== "boolean")) errors.push("load.sources.agentsGlobal.enabled must be a boolean");
|
|
169
|
+
const agentsWorkspaceSource = config.load?.sources?.agentsWorkspace;
|
|
170
|
+
if (agentsWorkspaceSource !== void 0 && (typeof agentsWorkspaceSource !== "object" || agentsWorkspaceSource === null || Array.isArray(agentsWorkspaceSource) || "enabled" in agentsWorkspaceSource && typeof agentsWorkspaceSource.enabled !== "boolean")) errors.push("load.sources.agentsWorkspace.enabled must be a boolean");
|
|
165
171
|
if (config.toolGating !== void 0 && typeof config.toolGating !== "boolean") errors.push("toolGating must be a boolean");
|
|
166
172
|
if (config.agentWritePolicy !== void 0 && config.agentWritePolicy !== "global" && config.agentWritePolicy !== "workspace" && config.agentWritePolicy !== "both") errors.push("agentWritePolicy must be \"global\", \"workspace\", or \"both\"");
|
|
167
173
|
const limits = config.limits;
|
|
@@ -3,13 +3,17 @@ export interface SkillFilesystemWatcherOptions {
|
|
|
3
3
|
reason: 'watch';
|
|
4
4
|
changedPath?: string;
|
|
5
5
|
}) => void;
|
|
6
|
+
/** Dependency-injection override for the ~/.agents/skills compatibility root. */
|
|
7
|
+
agentsSkillsDir?: string;
|
|
6
8
|
}
|
|
7
9
|
export declare class SkillFilesystemWatcher {
|
|
8
10
|
private readonly targets;
|
|
9
11
|
private readonly onChange;
|
|
12
|
+
private readonly agentsSkillsDir;
|
|
10
13
|
private disposed;
|
|
11
14
|
constructor(options: SkillFilesystemWatcherOptions);
|
|
12
15
|
watchGlobalSkillsDir(): void;
|
|
16
|
+
watchAgentsGlobalSkillsDir(): void;
|
|
13
17
|
watchWorkspace(workspaceDir: string): void;
|
|
14
18
|
refreshPrimaryWorkspace(workspaceDir: string): void;
|
|
15
19
|
dispose(): void;
|
|
@@ -4,6 +4,7 @@ import { init_logger } from "../../utils/logger.js";
|
|
|
4
4
|
import { init_paths, resolveSkillsDir } from "../../config/paths.js";
|
|
5
5
|
import { createSkillConfigManager } from "./config.js";
|
|
6
6
|
import { resolveWorkspaceSkillsDir } from "./workspace-skills-dir.js";
|
|
7
|
+
import { resolveAgentsSkillsDir, resolveWorkspaceAgentsSkillsDir } from "./skill-sources.js";
|
|
7
8
|
import { isManagedSkillTransientDirName } from "./managed-store.js";
|
|
8
9
|
import path from "node:path";
|
|
9
10
|
import chokidar from "chokidar";
|
|
@@ -41,11 +42,11 @@ function isSameOrInside(parent, child) {
|
|
|
41
42
|
return rel === "" || !!rel && !rel.startsWith("..") && !path.isAbsolute(rel);
|
|
42
43
|
}
|
|
43
44
|
function isWorkspaceSkillPath(workspaceRoot, candidate) {
|
|
44
|
-
const
|
|
45
|
-
return candidate === workspaceRoot || isSameOrInside(skillsRoot, candidate) || isSameOrInside(candidate, skillsRoot);
|
|
45
|
+
const skillsRoots = [resolveWorkspaceSkillsDir(workspaceRoot), resolveWorkspaceAgentsSkillsDir(workspaceRoot)];
|
|
46
|
+
return candidate === workspaceRoot || skillsRoots.some((skillsRoot) => isSameOrInside(skillsRoot, candidate) || isSameOrInside(candidate, skillsRoot));
|
|
46
47
|
}
|
|
47
48
|
function isWorkspaceSkillsRoot(workspaceRoot, candidate) {
|
|
48
|
-
return candidate === resolveWorkspaceSkillsDir(workspaceRoot);
|
|
49
|
+
return candidate === resolveWorkspaceSkillsDir(workspaceRoot) || candidate === resolveWorkspaceAgentsSkillsDir(workspaceRoot);
|
|
49
50
|
}
|
|
50
51
|
function isSkillMdPath(candidate) {
|
|
51
52
|
return path.basename(candidate).toLowerCase() === "skill.md";
|
|
@@ -55,20 +56,27 @@ function readWatcherConfig() {
|
|
|
55
56
|
const rawDebounce = cfg.load?.watchDebounceMs;
|
|
56
57
|
return {
|
|
57
58
|
enabled: cfg.load?.watch !== false,
|
|
59
|
+
agentsGlobalEnabled: cfg.load?.sources?.agentsGlobal?.enabled !== false,
|
|
58
60
|
debounceMs: typeof rawDebounce === "number" && Number.isFinite(rawDebounce) ? Math.max(0, rawDebounce) : DEFAULT_DEBOUNCE_MS
|
|
59
61
|
};
|
|
60
62
|
}
|
|
61
63
|
var SkillFilesystemWatcher = class {
|
|
62
64
|
targets = /* @__PURE__ */ new Map();
|
|
63
65
|
onChange;
|
|
66
|
+
agentsSkillsDir;
|
|
64
67
|
disposed = false;
|
|
65
68
|
constructor(options) {
|
|
66
69
|
this.onChange = options.onChange;
|
|
70
|
+
this.agentsSkillsDir = options.agentsSkillsDir ?? resolveAgentsSkillsDir();
|
|
67
71
|
this.watchGlobalSkillsDir();
|
|
72
|
+
this.watchAgentsGlobalSkillsDir();
|
|
68
73
|
}
|
|
69
74
|
watchGlobalSkillsDir() {
|
|
70
75
|
this.watchRoot(resolveSkillsDir(), "global");
|
|
71
76
|
}
|
|
77
|
+
watchAgentsGlobalSkillsDir() {
|
|
78
|
+
this.watchRoot(this.agentsSkillsDir, "agents-global");
|
|
79
|
+
}
|
|
72
80
|
watchWorkspace(workspaceDir) {
|
|
73
81
|
const resolved = normalizePath(workspaceDir);
|
|
74
82
|
if (!resolved) return;
|
|
@@ -76,6 +84,7 @@ var SkillFilesystemWatcher = class {
|
|
|
76
84
|
}
|
|
77
85
|
refreshPrimaryWorkspace(workspaceDir) {
|
|
78
86
|
this.watchGlobalSkillsDir();
|
|
87
|
+
this.watchAgentsGlobalSkillsDir();
|
|
79
88
|
this.watchWorkspace(workspaceDir);
|
|
80
89
|
}
|
|
81
90
|
dispose() {
|
|
@@ -93,10 +102,10 @@ var SkillFilesystemWatcher = class {
|
|
|
93
102
|
}
|
|
94
103
|
watchRoot(root, kind) {
|
|
95
104
|
if (this.disposed) return;
|
|
96
|
-
const { enabled, debounceMs } = readWatcherConfig();
|
|
105
|
+
const { enabled, agentsGlobalEnabled, debounceMs } = readWatcherConfig();
|
|
97
106
|
const resolvedRoot = normalizePath(root);
|
|
98
107
|
const key = `${kind}:${resolvedRoot}`;
|
|
99
|
-
if (!enabled) {
|
|
108
|
+
if (!enabled || kind === "agents-global" && !agentsGlobalEnabled) {
|
|
100
109
|
this.unwatch(key);
|
|
101
110
|
return;
|
|
102
111
|
}
|
|
@@ -159,8 +168,8 @@ var SkillFilesystemWatcher = class {
|
|
|
159
168
|
this.targets.delete(key);
|
|
160
169
|
}
|
|
161
170
|
scheduleRefresh(target, changedPath) {
|
|
162
|
-
const { enabled, debounceMs } = readWatcherConfig();
|
|
163
|
-
if (!enabled) {
|
|
171
|
+
const { enabled, agentsGlobalEnabled, debounceMs } = readWatcherConfig();
|
|
172
|
+
if (!enabled || target.kind === "agents-global" && !agentsGlobalEnabled) {
|
|
164
173
|
this.unwatch(target.key);
|
|
165
174
|
return;
|
|
166
175
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
extraDirs?: string[];
|
|
1
|
+
import { type ResolveSkillSourcesOptions } from './skill-sources.js';
|
|
2
|
+
import type { Skill, SkillConfig, SkillDiagnostic, LoadSkillsResult } from './types.js';
|
|
3
|
+
export declare function loadSkills(options: ResolveSkillSourcesOptions & {
|
|
4
|
+
/** Dependency-injection override for the ~/.agents/skills compatibility root. */
|
|
5
|
+
agentsDir?: string;
|
|
7
6
|
}): LoadSkillsResult;
|
|
8
7
|
/** Discover only skills owned by a workspace, without global or bundled skills. */
|
|
9
8
|
export declare function loadWorkspaceSkills(workspaceDir: string): LoadSkillsResult;
|
|
@@ -20,7 +19,11 @@ export interface SkillLoader {
|
|
|
20
19
|
getSkillByName: (name: string) => Skill | undefined;
|
|
21
20
|
getEnabledSkills: (config?: Record<string, SkillConfig>) => Skill[];
|
|
22
21
|
}
|
|
23
|
-
export
|
|
22
|
+
export interface SkillLoaderOptions {
|
|
23
|
+
/** Re-evaluated on every load so trust changes take effect without recreating the runtime. */
|
|
24
|
+
isWorkspaceTrusted?: (workspaceDir: string) => boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare function createSkillLoader(options?: SkillLoaderOptions): SkillLoader;
|
|
24
27
|
export type { Skill, SkillMetadata, SkillConfig, SkillInstallSpec, SkillInstallResult, SkillInstallRequest, LoadSkillsResult, SkillSnapshot, } from './types.js';
|
|
25
28
|
export { installSkill, findInstallSpec, hasBinary, getDefaultInstallerPreferences, type InstallerPreferences, type InstallContext, } from './installer.js';
|
|
26
29
|
export { scanSkillDirectory, formatScanSummary, collectSkillInstallWarnings, type ScanSummary, type SecurityFinding, type Severity, } from './scanner.js';
|