@xopcai/xopc 0.0.125 → 0.0.127
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 +56 -102
- package/README.zh-CN.md +51 -98
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/src/schema/config-schema.d.ts +6 -6
- package/dist/extensions/feishu/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
- package/dist/extensions/telegram/src/config-schema.d.ts +8 -8
- package/dist/extensions/telegram/src/inbound-processor.js +1 -1
- package/dist/extensions/telegram/src/plugin.js +1 -1
- package/dist/extensions/telegram/src/routing-integration.js +2 -2
- package/dist/extensions/telegram/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +1 -1
- package/dist/extensions/weixin/src/config-schema.d.ts +3 -3
- package/dist/extensions/weixin/src/plugin.js +1 -1
- package/dist/extensions/weixin/src/workflow-progress.js +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BKDKICZV.js → agent-avatar-dicebear-CgGgO4OV.js} +1 -1
- package/dist/gateway/static/root/assets/agents-k59l7NMb.js +2 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-DI4BqHKW.js → app-management-settings-panel-DeQsTsyy.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-6_ie3NQ4.js → appearance-settings-BnHQW7Hv.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-BG9b4abG.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-kUHEJ1HK.js → archive-plugin-5NXT7Zqv.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-Dm-9prpU.js → attachment-load-DghwhYe0.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-suggestion-card-OTxQTPnC.js → automation-suggestion-card-DYmESgwl.js} +1 -1
- package/dist/gateway/static/root/assets/automations-page-De8mVutL.js +4 -0
- package/dist/gateway/static/root/assets/{binary-plugins-DllA_jQ0.js → binary-plugins-DSbPKdWX.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-Cm6CWNj1.js → block-editor-CoZ-_np-.js} +28 -28
- package/dist/gateway/static/root/assets/browser-settings-page-C_ZRa4LF.js +8 -0
- package/dist/gateway/static/root/assets/{capability-presets-api-VJ89b6I2.js → capability-presets-api-hny224j-.js} +1 -1
- package/dist/gateway/static/root/assets/{capability-presets-settings-panel-BaPj8wC2.js → capability-presets-settings-panel-Drc0qLsw.js} +1 -1
- package/dist/gateway/static/root/assets/{channel-recipient-api-B5PwBEUx.js → channel-recipient-api-DAlOHxKJ.js} +1 -1
- package/dist/gateway/static/root/assets/channels-settings-CA20zBV9.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-qMyMB5te.js +2 -0
- package/dist/gateway/static/root/assets/desktop-pet-XG6Vb_fZ.js +1 -0
- package/dist/gateway/static/root/assets/desktop-pet-settings-npJ0Oh5p.js +1 -0
- package/dist/gateway/static/root/assets/desktop-pet-sprite-DqZ6fbIj.js +1 -0
- package/dist/gateway/static/root/assets/directory-picker-path-field-BR2ItBuf.js +1 -0
- package/dist/gateway/static/root/assets/dreaming-settings-CkUZ997f.js +3 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-BaM0FpW7.js → extension-debug-page-Tl0f1rNv.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-DuZWVOGA.js → extension-page-Ck7QuwE3.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-DarVtbmJ.js → extension-settings-page-3RMhQtZ3.js} +1 -1
- package/dist/gateway/static/root/assets/{fetch-NFKfkqrd.js → fetch-pg2ErdAk.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-api-CFEm9rgy.js → gateway-config-api-DbG97ia2.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-B8cyqKk-.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-Dtwh_yGg.js → gateway-startup-retry-Yh8h3hkj.js} +1 -1
- package/dist/gateway/static/root/assets/{goal-create-dialog-BKP7ylcG.js → goal-create-dialog-DmeW7Zz3.js} +1 -1
- package/dist/gateway/static/root/assets/goal-detail-page-DrTyGbVD.js +1 -0
- package/dist/gateway/static/root/assets/{goals-config-api-DTWZNA_Y.js → goals-config-api-CxCWGIBB.js} +1 -1
- package/dist/gateway/static/root/assets/goals-page-DV1bJhIh.js +2 -0
- package/dist/gateway/static/root/assets/{goals-settings-Bhct0ZT-.js → goals-settings-9DrfOkP5.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-settings-C-UxSU4a.js → heartbeat-settings-KaDpZrv0.js} +1 -1
- package/dist/gateway/static/root/assets/index-C2F0Clvm.js +256 -0
- package/dist/gateway/static/root/assets/index-COQSX5d_.css +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DCjy2y4d.js → keyboard-shortcuts-settings-CfQrt_Rb.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-C9dpiNTF.js +2 -0
- package/dist/gateway/static/root/assets/{markdown-split-BaqxP-GQ.js → markdown-split-BwiMdCf_.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-DQ_EXloK.js → media-plugins-DhoizyZv.js} +1 -1
- package/dist/gateway/static/root/assets/messages-DmnbiNxU.js +3 -0
- package/dist/gateway/static/root/assets/models-hub-panel-zdCdmBmH.js +2 -0
- package/dist/gateway/static/root/assets/notes-page-MpGeFfPt.js +1 -0
- package/dist/gateway/static/root/assets/notes-workbench-DYCM3yd2.js +2 -0
- package/dist/gateway/static/root/assets/{page-tabs-EIZhLppK.js → page-tabs-DDC2t4Z8.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-r_uB4Epr.js → preview-open-alternatives-BTmk-XDM.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-Cu0ElRnS.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-DakNaUjZ.js +1 -0
- package/dist/gateway/static/root/assets/remote-access-hub-DYKjt7L9.js +1 -0
- package/dist/gateway/static/root/assets/{save-bar-controls-B132Uf-2.js → save-bar-controls-DqU-yKIh.js} +1 -1
- package/dist/gateway/static/root/assets/{schedule-field-B5qshALm.js → schedule-field-CUttkoSB.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-CvLmkdS9.js → schema-form-CVSQA9nI.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-CcGHDsz1.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-CuFdeKNu.js +1 -0
- package/dist/gateway/static/root/assets/{settings-collapsible-section-pRlvqsAf.js → settings-collapsible-section-CK7ogS-P.js} +1 -1
- package/dist/gateway/static/root/assets/settings-form-section-Bugp38Fa.js +1 -0
- package/dist/gateway/static/root/assets/settings-page-0AJoUvxi.js +1 -0
- package/dist/gateway/static/root/assets/settings-page-layout-DBRWwdhh.js +1 -0
- package/dist/gateway/static/root/assets/setup-status-panel-D6a_hEk7.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-v6-IOp8t.js → share-preview-page-BtsuETKF.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-CcEFT7S9.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-BcN_RuTD.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-BbRZZZA5.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-HUU2FFjM.js → system-settings-panel-DJ6YuLqR.js} +1 -1
- package/dist/gateway/static/root/assets/{typed-models-lib-AH160QHh.js → typed-models-lib-B0T7N8Km.js} +1 -1
- package/dist/gateway/static/root/assets/{use-channel-catalog-BXzDmjCQ.js → use-channel-catalog-C6vrxdzZ.js} +1 -1
- package/dist/gateway/static/root/assets/{user-profile-settings-panel-DxwnQvQ3.js → user-profile-settings-panel-DZ0nKMgj.js} +1 -1
- package/dist/gateway/static/root/assets/{utils-i5POEtqd.js → utils-CehXcWAY.js} +1 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-2QKflCx8.js +1 -0
- package/dist/gateway/static/root/assets/work-item-detail-page-DfJnuWq1.js +1 -0
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-ClVVMgN-.js → workflow-run-setup-panel-c4jeaohQ.js} +2 -2
- package/dist/gateway/static/root/assets/{workflow-start-dialog-Dv4ZA1T0.js → workflow-start-dialog-ENRHjoqa.js} +1 -1
- package/dist/gateway/static/root/assets/workflows-page-BJwwFTm_.js +18 -0
- package/dist/gateway/static/root/index.html +5 -5
- package/dist/package.js +1 -1
- package/dist/src/activity/context.d.ts +11 -0
- package/dist/src/activity/context.js +36 -0
- package/dist/src/activity/context.js.map +1 -0
- package/dist/src/activity/emitter.d.ts +6 -0
- package/dist/src/activity/emitter.js +43 -0
- package/dist/src/activity/emitter.js.map +1 -0
- package/dist/src/activity/index.d.ts +3 -0
- package/dist/src/activity/index.js +3 -0
- package/dist/src/activity/service.d.ts +12 -0
- package/dist/src/activity/service.js +59 -0
- package/dist/src/activity/service.js.map +1 -0
- package/dist/src/activity/types.d.ts +109 -0
- package/dist/src/activity/types.js +1 -0
- package/dist/src/agent/agent-instance-gateway.d.ts +5 -0
- package/dist/src/agent/agent-manager.d.ts +21 -0
- package/dist/src/agent/agent-manager.js +118 -6
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/capabilities/definitions.d.ts +153 -0
- package/dist/src/agent/capabilities/definitions.js +156 -0
- package/dist/src/agent/capabilities/definitions.js.map +1 -0
- package/dist/src/agent/capabilities/index.d.ts +2 -0
- package/dist/src/agent/capabilities/index.js +3 -0
- package/dist/src/agent/capabilities/registry.d.ts +10 -0
- package/dist/src/agent/capabilities/registry.js +51 -0
- package/dist/src/agent/capabilities/registry.js.map +1 -0
- package/dist/src/agent/context/project-context.js +2 -2
- package/dist/src/agent/context/workspace-seed.js +2 -2
- package/dist/src/agent/embedded/run-for-session.js +1 -1
- package/dist/src/agent/goals/post-turn.js +2 -2
- package/dist/src/agent/ipc/bus.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
- package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
- package/dist/src/agent/mcp/mcp-transport.js +1 -1
- package/dist/src/agent/memory/plugin-discovery.js +1 -1
- package/dist/src/agent/models/manager.js +1 -1
- package/dist/src/agent/orchestration/agent-orchestrator.js +1 -1
- package/dist/src/agent/service/process-direct-one-shot.js +5 -3
- package/dist/src/agent/service/process-direct-one-shot.js.map +1 -1
- package/dist/src/agent/service/process-direct-streaming.js +4 -3
- package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
- package/dist/src/agent/service.d.ts +2 -0
- package/dist/src/agent/service.js +9 -3
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/service.types.d.ts +7 -0
- package/dist/src/agent/session/session-inspector.js +1 -1
- package/dist/src/agent/skills/hub-pull.js +1 -1
- package/dist/src/agent/skills/parse-skill-metadata.js +9 -1
- package/dist/src/agent/skills/parse-skill-metadata.js.map +1 -1
- package/dist/src/agent/skills/skill-manager.d.ts +4 -0
- package/dist/src/agent/skills/skill-manager.js +17 -0
- package/dist/src/agent/skills/skill-manager.js.map +1 -1
- package/dist/src/agent/skills/types.d.ts +5 -0
- package/dist/src/agent/tool-manuals/index.js +15 -6
- package/dist/src/agent/tool-manuals/index.js.map +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -0
- package/dist/src/agent/tool-manuals/xopc-use.js +204 -0
- package/dist/src/agent/tool-manuals/xopc-use.js.map +1 -0
- package/dist/src/agent/tools/desktop-pet-tool.d.ts +24 -0
- package/dist/src/agent/tools/desktop-pet-tool.js +90 -0
- package/dist/src/agent/tools/desktop-pet-tool.js.map +1 -0
- package/dist/src/agent/tools/factory.d.ts +9 -0
- package/dist/src/agent/tools/factory.js +26 -0
- package/dist/src/agent/tools/factory.js.map +1 -1
- package/dist/src/agent/tools/goal-tool.js +2 -2
- package/dist/src/agent/tools/index.d.ts +2 -0
- package/dist/src/agent/tools/index.js +3 -1
- package/dist/src/agent/tools/workflow-tool.js +1 -1
- package/dist/src/agent/tools/xopc-use-tool.d.ts +34 -0
- package/dist/src/agent/tools/xopc-use-tool.js +636 -0
- package/dist/src/agent/tools/xopc-use-tool.js.map +1 -0
- package/dist/src/agent-manifest/schema.d.ts +27 -27
- package/dist/src/automations/api/routes.js +1 -1
- package/dist/src/automations/domain/validation.d.ts +55 -55
- package/dist/src/automations/draft/automation-draft-service.js +1 -1
- package/dist/src/automations/draft/automation-draft-validator.d.ts +25 -25
- package/dist/src/automations/service/action-executor.js +2 -2
- package/dist/src/browser/cdp-local-launcher.js +1 -1
- package/dist/src/browser/providers/browser-ext-install.js +3 -3
- package/dist/src/browser/providers/cloakbrowser.js +2 -2
- package/dist/src/browser/providers/playwright-doctor.js +1 -1
- package/dist/src/browser/stealth.js +1 -1
- package/dist/src/chat-commands/agent-edit.js +1 -1
- package/dist/src/chat-commands/builtins/config.js +1 -1
- package/dist/src/chat-commands/builtins/goal.js +2 -2
- package/dist/src/chat-commands/context.js +1 -1
- package/dist/src/cli/commands/agent.js +3 -3
- package/dist/src/cli/commands/doctor/checks/database-schema.js +2 -2
- package/dist/src/cli/commands/doctor/checks/session-integrity.js +1 -1
- package/dist/src/cli/commands/extension-marketplace.js +1 -1
- package/dist/src/cli/commands/extension-pack.js +1 -1
- package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
- package/dist/src/cli/commands/goal.js +3 -3
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/cli/commands/profile.js +1 -1
- package/dist/src/cli/commands/project.js +4 -4
- package/dist/src/cli/commands/tunnel.js +1 -1
- package/dist/src/cli/commands/update.js +1 -1
- package/dist/src/cli/extension-cli-register.js +1 -1
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/gateway-bind.js +1 -1
- package/dist/src/config/index.js +2 -2
- package/dist/src/config/loader.js +1 -1
- package/dist/src/config/models-json.d.ts +14 -14
- package/dist/src/config/models-json.js +1 -1
- package/dist/src/config/schema.d.ts +60 -60
- package/dist/src/daemon/launchd.js +1 -1
- package/dist/src/daemon/systemd.js +1 -1
- package/dist/src/extensions/discover-extensions.js +1 -1
- package/dist/src/extensions/loader.js +2 -2
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/agent-builtin-tools.js +1 -0
- package/dist/src/gateway/agent-builtin-tools.js.map +1 -1
- package/dist/src/gateway/agents-admin.js +1 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +14 -14
- package/dist/src/gateway/hono/lib/static-ui.js +1 -1
- package/dist/src/gateway/hono/middleware/log-context.js +8 -1
- package/dist/src/gateway/hono/middleware/log-context.js.map +1 -1
- package/dist/src/gateway/hono/routes/activity.d.ts +14 -0
- package/dist/src/gateway/hono/routes/activity.js +72 -0
- package/dist/src/gateway/hono/routes/activity.js.map +1 -0
- package/dist/src/gateway/hono/routes/commands-skills.js +7 -0
- package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
- package/dist/src/gateway/hono/routes/goals.js +1 -1
- package/dist/src/gateway/hono/routes/index.js +2 -0
- package/dist/src/gateway/hono/routes/index.js.map +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +2 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
- package/dist/src/gateway/hono/routes/memory.js +2 -2
- package/dist/src/gateway/hono/routes/projects.js +93 -15
- package/dist/src/gateway/hono/routes/projects.js.map +1 -1
- package/dist/src/gateway/hono/routes/sessions.js +101 -2
- package/dist/src/gateway/hono/routes/sessions.js.map +1 -1
- package/dist/src/gateway/hono/routes/workflows.js +2 -2
- package/dist/src/gateway/lock.js +1 -1
- package/dist/src/gateway/ports.js +1 -1
- package/dist/src/gateway/run-loop.js +1 -1
- package/dist/src/gateway/service/run-gateway-agent.js +6 -2
- package/dist/src/gateway/service/run-gateway-agent.js.map +1 -1
- package/dist/src/gateway/service/sessions-api.d.ts +10 -0
- package/dist/src/gateway/service/sessions-api.js +31 -0
- package/dist/src/gateway/service/sessions-api.js.map +1 -1
- package/dist/src/gateway/service.js +12 -9
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/goals/goal-store.js +1 -1
- package/dist/src/goals/goal-store.js.map +1 -1
- package/dist/src/goals/goal-workflow-judge.js +1 -1
- package/dist/src/infra/ports.js +1 -1
- package/dist/src/infra/ssh-tunnel.js +1 -1
- package/dist/src/infra/update-check.js +1 -1
- package/dist/src/infra/update-restart.js +1 -1
- package/dist/src/migrations/runner.js +1 -1
- package/dist/src/notes/service.js +65 -6
- package/dist/src/notes/service.js.map +1 -1
- package/dist/src/notes/store.js +1 -1
- package/dist/src/pets/factory.d.ts +25 -0
- package/dist/src/pets/factory.js +327 -0
- package/dist/src/pets/factory.js.map +1 -0
- package/dist/src/pets/manifest.d.ts +2 -0
- package/dist/src/pets/manifest.js +16 -0
- package/dist/src/pets/manifest.js.map +1 -0
- package/dist/src/pets/validator.d.ts +12 -0
- package/dist/src/pets/validator.js +175 -0
- package/dist/src/pets/validator.js.map +1 -0
- package/dist/src/projects/project-service.d.ts +4 -1
- package/dist/src/projects/project-service.js +65 -2
- package/dist/src/projects/project-service.js.map +1 -1
- package/dist/src/projects/project-store.d.ts +3 -1
- package/dist/src/projects/project-store.js +56 -6
- package/dist/src/projects/project-store.js.map +1 -1
- package/dist/src/projects/types.d.ts +12 -0
- package/dist/src/projects/workspace.js +1 -1
- package/dist/src/routing/agent-session-key.js +1 -1
- package/dist/src/routing/resolve-route.js +1 -1
- package/dist/src/routing/resolve-tui-session-key.js +1 -1
- package/dist/src/session/client-history.d.ts +3 -0
- package/dist/src/session/client-history.js +24 -9
- package/dist/src/session/client-history.js.map +1 -1
- package/dist/src/session/init-session-turn.js +1 -1
- package/dist/src/session/resolve-session.js +1 -1
- package/dist/src/session/session-title.js +24 -4
- package/dist/src/session/session-title.js.map +1 -1
- package/dist/src/session/store.js +1 -1
- package/dist/src/session/types.d.ts +4 -0
- package/dist/src/session/types.js.map +1 -1
- package/dist/src/storage/sqlite/activity-repository.d.ts +8 -0
- package/dist/src/storage/sqlite/activity-repository.js +208 -0
- package/dist/src/storage/sqlite/activity-repository.js.map +1 -0
- package/dist/src/storage/sqlite/connection.js +1 -1
- package/dist/src/storage/sqlite/index.d.ts +1 -0
- package/dist/src/storage/sqlite/index.js +2 -1
- package/dist/src/storage/sqlite/migrations/024_activity_events.sql +62 -0
- package/dist/src/storage/sqlite/migrations/025_project_pinned_at.sql +5 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
- package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
- package/dist/src/storage/sqlite/row-mappers.js +1 -1
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/schema.sql +63 -0
- package/dist/src/storage/sqlite/session-repository.js +11 -0
- package/dist/src/storage/sqlite/session-repository.js.map +1 -1
- package/dist/src/tui/backends/embedded-backend.d.ts +13 -0
- package/dist/src/tui/backends/embedded-backend.js +76 -7
- package/dist/src/tui/backends/embedded-backend.js.map +1 -1
- package/dist/src/tui/backends/gateway-sse-backend.d.ts +13 -0
- package/dist/src/tui/backends/gateway-sse-backend.js +53 -0
- package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -1
- package/dist/src/tui/chat-history.js +16 -3
- package/dist/src/tui/chat-history.js.map +1 -1
- package/dist/src/tui/clipboard-image.js +1 -1
- package/dist/src/tui/components/chat-log.d.ts +23 -3
- package/dist/src/tui/components/chat-log.js +68 -9
- package/dist/src/tui/components/chat-log.js.map +1 -1
- package/dist/src/tui/components/tui-bottom-bar.js +9 -5
- package/dist/src/tui/components/tui-bottom-bar.js.map +1 -1
- package/dist/src/tui/tui-backend.d.ts +16 -0
- package/dist/src/tui/tui-command-formatters.js +2 -2
- package/dist/src/tui/tui-commands.d.ts +9 -0
- package/dist/src/tui/tui-commands.js +95 -6
- package/dist/src/tui/tui-commands.js.map +1 -1
- package/dist/src/tui/tui-picker-overlay.d.ts +1 -0
- package/dist/src/tui/tui-picker-overlay.js +36 -1
- package/dist/src/tui/tui-picker-overlay.js.map +1 -1
- package/dist/src/tui/tui-picker-services.d.ts +13 -0
- package/dist/src/tui/tui-run-state.js +11 -0
- package/dist/src/tui/tui-run-state.js.map +1 -1
- package/dist/src/tui/tui-run-status-format.d.ts +3 -0
- package/dist/src/tui/tui-run-status-format.js +33 -0
- package/dist/src/tui/tui-run-status-format.js.map +1 -0
- package/dist/src/tui/tui-session-actions.d.ts +5 -0
- package/dist/src/tui/tui-session-actions.js +24 -0
- package/dist/src/tui/tui-session-actions.js.map +1 -1
- package/dist/src/tui/tui-timeline-picker.d.ts +19 -0
- package/dist/src/tui/tui-timeline-picker.js +81 -0
- package/dist/src/tui/tui-timeline-picker.js.map +1 -0
- package/dist/src/tui/tui-timeline.d.ts +15 -0
- package/dist/src/tui/tui-timeline.js +65 -0
- package/dist/src/tui/tui-timeline.js.map +1 -0
- package/dist/src/tui/tui-types.d.ts +1 -0
- package/dist/src/tui/tui-types.js +1 -0
- package/dist/src/tui/tui-types.js.map +1 -1
- package/dist/src/tui/tui.js +31 -25
- package/dist/src/tui/tui.js.map +1 -1
- package/dist/src/utils/index.js +1 -1
- package/dist/src/utils/logger/index.js +1 -1
- package/dist/src/utils/logger/stats.d.ts +3 -3
- package/dist/src/utils/logger.js +1 -1
- package/dist/src/work-items/agent-context.d.ts +5 -1
- package/dist/src/work-items/agent-context.js +39 -3
- package/dist/src/work-items/agent-context.js.map +1 -1
- package/dist/src/work-items/work-item-service.d.ts +2 -0
- package/dist/src/work-items/work-item-service.js +97 -0
- package/dist/src/work-items/work-item-service.js.map +1 -1
- package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
- package/dist/src/workflows/service/workflow-session-bridge.js +1 -1
- package/package.json +5 -5
- package/skills/creative/hatch-pet/SKILL.md +63 -0
- package/dist/gateway/static/root/assets/agents-BnTB7-c5.js +0 -2
- package/dist/gateway/static/root/assets/apps-page-B6bG65SW.js +0 -1
- package/dist/gateway/static/root/assets/automations-page-1lVbo0dS.js +0 -1
- package/dist/gateway/static/root/assets/browser-settings-page-CzDBlOK0.js +0 -8
- package/dist/gateway/static/root/assets/channels-settings-Df4m7p1k.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-BMTphmHS.js +0 -2
- package/dist/gateway/static/root/assets/directory-picker-path-field-DySMzOF6.js +0 -1
- package/dist/gateway/static/root/assets/dist-By6Rh2ee.js +0 -1
- package/dist/gateway/static/root/assets/dreaming-settings-D_AjSnV_.js +0 -3
- package/dist/gateway/static/root/assets/gateway-settings-BMk2S5td.js +0 -1
- package/dist/gateway/static/root/assets/goal-detail-page-C2cTxf71.js +0 -1
- package/dist/gateway/static/root/assets/goals-page-CTmA3hWK.js +0 -2
- package/dist/gateway/static/root/assets/index-BNHDd2j1.css +0 -1
- package/dist/gateway/static/root/assets/index-BPXLPMuY.js +0 -193
- package/dist/gateway/static/root/assets/logs-page-CGc3_CQU.js +0 -2
- package/dist/gateway/static/root/assets/messages-CjuIJcZl.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-panel-Drz4UQMb.js +0 -2
- package/dist/gateway/static/root/assets/notes-page-CY1ylng1.js +0 -1
- package/dist/gateway/static/root/assets/notes-workbench-X7IaD--t.js +0 -2
- package/dist/gateway/static/root/assets/project-detail-page-DE5adRBE.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-CuOb1k6F.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-BOxNrUVA.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-CY0IQcGW.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-D4NBNVCB.js +0 -1
- package/dist/gateway/static/root/assets/settings-form-section-BBYUDLVd.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-DaO7zYZM.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-layout-D8g9PAek.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-Bks0CLLT.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-CEZsKm9r.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-oTkHbb9W.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-DigsbZ6K.js +0 -2
- package/dist/gateway/static/root/assets/voice-api-key-field-CEJklEgb.js +0 -1
- package/dist/gateway/static/root/assets/work-item-detail-page-CD6FL_Rs.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-OLQiUpoW.js +0 -18
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
export type AgentCapabilityCategory = 'authoring' | 'research' | 'analysis' | 'assets';
|
|
2
|
+
export type AgentCapabilityActivationMode = 'explicit' | 'ui-entry' | 'workflow-scoped';
|
|
3
|
+
export type AgentCapabilityTtl = 'turn' | 'session' | 'until-complete';
|
|
4
|
+
export type AgentCapabilityActivationSource = 'skill' | 'ui' | 'workflow';
|
|
5
|
+
export type AgentCapabilitySessionStatus = 'collecting' | 'running' | 'complete';
|
|
6
|
+
export type AgentCapabilityPermissions = {
|
|
7
|
+
writesFiles?: boolean;
|
|
8
|
+
runsCode?: boolean;
|
|
9
|
+
usesBrowser?: boolean;
|
|
10
|
+
usesNetwork?: boolean;
|
|
11
|
+
requiresConfirm?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export type AgentCapabilityDefinition = {
|
|
14
|
+
id: string;
|
|
15
|
+
label: string;
|
|
16
|
+
description: string;
|
|
17
|
+
category: AgentCapabilityCategory;
|
|
18
|
+
tools: readonly string[];
|
|
19
|
+
requiredSkills?: readonly string[];
|
|
20
|
+
promptHint?: string;
|
|
21
|
+
activation: {
|
|
22
|
+
mode: AgentCapabilityActivationMode;
|
|
23
|
+
ttl: AgentCapabilityTtl;
|
|
24
|
+
};
|
|
25
|
+
permissions: AgentCapabilityPermissions;
|
|
26
|
+
};
|
|
27
|
+
export type AgentCapabilitySessionState = {
|
|
28
|
+
id: string;
|
|
29
|
+
source: AgentCapabilityActivationSource;
|
|
30
|
+
activatedAt: number;
|
|
31
|
+
ttl: AgentCapabilityTtl;
|
|
32
|
+
status: AgentCapabilitySessionStatus;
|
|
33
|
+
};
|
|
34
|
+
export type AgentCapabilityCatalogEntry = AgentCapabilityDefinition & {
|
|
35
|
+
availableTools: string[];
|
|
36
|
+
unavailableTools: string[];
|
|
37
|
+
};
|
|
38
|
+
export declare const AGENT_CAPABILITY_DEFINITIONS: readonly [{
|
|
39
|
+
readonly id: "desktop-pet-authoring";
|
|
40
|
+
readonly label: "Desktop pet authoring";
|
|
41
|
+
readonly description: "Create, repair, and update local animated desktop pet packages.";
|
|
42
|
+
readonly category: "authoring";
|
|
43
|
+
readonly tools: readonly ["create_desktop_pet"];
|
|
44
|
+
readonly requiredSkills: readonly ["hatch-pet"];
|
|
45
|
+
readonly promptHint: "Use clarify when the pet concept is vague. Create or update the pet only after appearance, personality, and animation goals are clear.";
|
|
46
|
+
readonly activation: {
|
|
47
|
+
readonly mode: "explicit";
|
|
48
|
+
readonly ttl: "until-complete";
|
|
49
|
+
};
|
|
50
|
+
readonly permissions: {
|
|
51
|
+
readonly writesFiles: true;
|
|
52
|
+
};
|
|
53
|
+
}, {
|
|
54
|
+
readonly id: "automation-authoring";
|
|
55
|
+
readonly label: "Automation authoring";
|
|
56
|
+
readonly description: "Create and update reminders, monitors, recurring checks, and scheduled follow-ups.";
|
|
57
|
+
readonly category: "authoring";
|
|
58
|
+
readonly tools: readonly ["automation"];
|
|
59
|
+
readonly activation: {
|
|
60
|
+
readonly mode: "explicit";
|
|
61
|
+
readonly ttl: "until-complete";
|
|
62
|
+
};
|
|
63
|
+
readonly permissions: {
|
|
64
|
+
readonly writesFiles: true;
|
|
65
|
+
readonly requiresConfirm: true;
|
|
66
|
+
};
|
|
67
|
+
}, {
|
|
68
|
+
readonly id: "workflow-authoring";
|
|
69
|
+
readonly label: "Workflow authoring";
|
|
70
|
+
readonly description: "Design, validate, and run xopc workflows.";
|
|
71
|
+
readonly category: "authoring";
|
|
72
|
+
readonly tools: readonly ["workflow"];
|
|
73
|
+
readonly activation: {
|
|
74
|
+
readonly mode: "explicit";
|
|
75
|
+
readonly ttl: "until-complete";
|
|
76
|
+
};
|
|
77
|
+
readonly permissions: {
|
|
78
|
+
readonly writesFiles: true;
|
|
79
|
+
readonly runsCode: true;
|
|
80
|
+
readonly requiresConfirm: true;
|
|
81
|
+
};
|
|
82
|
+
}, {
|
|
83
|
+
readonly id: "extension-authoring";
|
|
84
|
+
readonly label: "Plugin and extension authoring";
|
|
85
|
+
readonly description: "Scaffold, inspect, and package xopc plugins or extensions.";
|
|
86
|
+
readonly category: "authoring";
|
|
87
|
+
readonly tools: readonly ["read_file", "write_file", "apply_patch", "list_dir", "grep", "find", "exec_command"];
|
|
88
|
+
readonly activation: {
|
|
89
|
+
readonly mode: "explicit";
|
|
90
|
+
readonly ttl: "until-complete";
|
|
91
|
+
};
|
|
92
|
+
readonly permissions: {
|
|
93
|
+
readonly writesFiles: true;
|
|
94
|
+
readonly runsCode: true;
|
|
95
|
+
readonly requiresConfirm: true;
|
|
96
|
+
};
|
|
97
|
+
}, {
|
|
98
|
+
readonly id: "skill-authoring";
|
|
99
|
+
readonly label: "Skill authoring";
|
|
100
|
+
readonly description: "Create, edit, inspect, and maintain xopc skills.";
|
|
101
|
+
readonly category: "authoring";
|
|
102
|
+
readonly tools: readonly ["skills_list", "skill_view", "skill_manage"];
|
|
103
|
+
readonly activation: {
|
|
104
|
+
readonly mode: "explicit";
|
|
105
|
+
readonly ttl: "until-complete";
|
|
106
|
+
};
|
|
107
|
+
readonly permissions: {
|
|
108
|
+
readonly writesFiles: true;
|
|
109
|
+
readonly requiresConfirm: true;
|
|
110
|
+
};
|
|
111
|
+
}, {
|
|
112
|
+
readonly id: "visual-asset-authoring";
|
|
113
|
+
readonly label: "Visual asset authoring";
|
|
114
|
+
readonly description: "Generate and inspect images, icons, sprites, and other visual assets.";
|
|
115
|
+
readonly category: "assets";
|
|
116
|
+
readonly tools: readonly ["image", "image_generate", "read_media", "send_media"];
|
|
117
|
+
readonly activation: {
|
|
118
|
+
readonly mode: "explicit";
|
|
119
|
+
readonly ttl: "session";
|
|
120
|
+
};
|
|
121
|
+
readonly permissions: {
|
|
122
|
+
readonly writesFiles: true;
|
|
123
|
+
readonly usesNetwork: true;
|
|
124
|
+
};
|
|
125
|
+
}, {
|
|
126
|
+
readonly id: "browser-research";
|
|
127
|
+
readonly label: "Browser research";
|
|
128
|
+
readonly description: "Perform deeper web research with search, extraction, fetch, and browser interaction.";
|
|
129
|
+
readonly category: "research";
|
|
130
|
+
readonly tools: readonly ["web_search", "web_fetch", "web_extract", "browser_use"];
|
|
131
|
+
readonly activation: {
|
|
132
|
+
readonly mode: "explicit";
|
|
133
|
+
readonly ttl: "turn";
|
|
134
|
+
};
|
|
135
|
+
readonly permissions: {
|
|
136
|
+
readonly usesBrowser: true;
|
|
137
|
+
readonly usesNetwork: true;
|
|
138
|
+
};
|
|
139
|
+
}, {
|
|
140
|
+
readonly id: "data-analysis";
|
|
141
|
+
readonly label: "Data analysis";
|
|
142
|
+
readonly description: "Analyze local structured data and produce derived tables, summaries, or artifacts.";
|
|
143
|
+
readonly category: "analysis";
|
|
144
|
+
readonly tools: readonly ["read_file", "write_file", "list_dir", "grep", "find"];
|
|
145
|
+
readonly activation: {
|
|
146
|
+
readonly mode: "explicit";
|
|
147
|
+
readonly ttl: "session";
|
|
148
|
+
};
|
|
149
|
+
readonly permissions: {
|
|
150
|
+
readonly writesFiles: true;
|
|
151
|
+
readonly runsCode: true;
|
|
152
|
+
};
|
|
153
|
+
}];
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
//#region src/agent/capabilities/definitions.ts
|
|
2
|
+
const AGENT_CAPABILITY_DEFINITIONS = [
|
|
3
|
+
{
|
|
4
|
+
id: "desktop-pet-authoring",
|
|
5
|
+
label: "Desktop pet authoring",
|
|
6
|
+
description: "Create, repair, and update local animated desktop pet packages.",
|
|
7
|
+
category: "authoring",
|
|
8
|
+
tools: ["create_desktop_pet"],
|
|
9
|
+
requiredSkills: ["hatch-pet"],
|
|
10
|
+
promptHint: "Use clarify when the pet concept is vague. Create or update the pet only after appearance, personality, and animation goals are clear.",
|
|
11
|
+
activation: {
|
|
12
|
+
mode: "explicit",
|
|
13
|
+
ttl: "until-complete"
|
|
14
|
+
},
|
|
15
|
+
permissions: { writesFiles: true }
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
id: "automation-authoring",
|
|
19
|
+
label: "Automation authoring",
|
|
20
|
+
description: "Create and update reminders, monitors, recurring checks, and scheduled follow-ups.",
|
|
21
|
+
category: "authoring",
|
|
22
|
+
tools: ["automation"],
|
|
23
|
+
activation: {
|
|
24
|
+
mode: "explicit",
|
|
25
|
+
ttl: "until-complete"
|
|
26
|
+
},
|
|
27
|
+
permissions: {
|
|
28
|
+
writesFiles: true,
|
|
29
|
+
requiresConfirm: true
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: "workflow-authoring",
|
|
34
|
+
label: "Workflow authoring",
|
|
35
|
+
description: "Design, validate, and run xopc workflows.",
|
|
36
|
+
category: "authoring",
|
|
37
|
+
tools: ["workflow"],
|
|
38
|
+
activation: {
|
|
39
|
+
mode: "explicit",
|
|
40
|
+
ttl: "until-complete"
|
|
41
|
+
},
|
|
42
|
+
permissions: {
|
|
43
|
+
writesFiles: true,
|
|
44
|
+
runsCode: true,
|
|
45
|
+
requiresConfirm: true
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: "extension-authoring",
|
|
50
|
+
label: "Plugin and extension authoring",
|
|
51
|
+
description: "Scaffold, inspect, and package xopc plugins or extensions.",
|
|
52
|
+
category: "authoring",
|
|
53
|
+
tools: [
|
|
54
|
+
"read_file",
|
|
55
|
+
"write_file",
|
|
56
|
+
"apply_patch",
|
|
57
|
+
"list_dir",
|
|
58
|
+
"grep",
|
|
59
|
+
"find",
|
|
60
|
+
"exec_command"
|
|
61
|
+
],
|
|
62
|
+
activation: {
|
|
63
|
+
mode: "explicit",
|
|
64
|
+
ttl: "until-complete"
|
|
65
|
+
},
|
|
66
|
+
permissions: {
|
|
67
|
+
writesFiles: true,
|
|
68
|
+
runsCode: true,
|
|
69
|
+
requiresConfirm: true
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
id: "skill-authoring",
|
|
74
|
+
label: "Skill authoring",
|
|
75
|
+
description: "Create, edit, inspect, and maintain xopc skills.",
|
|
76
|
+
category: "authoring",
|
|
77
|
+
tools: [
|
|
78
|
+
"skills_list",
|
|
79
|
+
"skill_view",
|
|
80
|
+
"skill_manage"
|
|
81
|
+
],
|
|
82
|
+
activation: {
|
|
83
|
+
mode: "explicit",
|
|
84
|
+
ttl: "until-complete"
|
|
85
|
+
},
|
|
86
|
+
permissions: {
|
|
87
|
+
writesFiles: true,
|
|
88
|
+
requiresConfirm: true
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
id: "visual-asset-authoring",
|
|
93
|
+
label: "Visual asset authoring",
|
|
94
|
+
description: "Generate and inspect images, icons, sprites, and other visual assets.",
|
|
95
|
+
category: "assets",
|
|
96
|
+
tools: [
|
|
97
|
+
"image",
|
|
98
|
+
"image_generate",
|
|
99
|
+
"read_media",
|
|
100
|
+
"send_media"
|
|
101
|
+
],
|
|
102
|
+
activation: {
|
|
103
|
+
mode: "explicit",
|
|
104
|
+
ttl: "session"
|
|
105
|
+
},
|
|
106
|
+
permissions: {
|
|
107
|
+
writesFiles: true,
|
|
108
|
+
usesNetwork: true
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
id: "browser-research",
|
|
113
|
+
label: "Browser research",
|
|
114
|
+
description: "Perform deeper web research with search, extraction, fetch, and browser interaction.",
|
|
115
|
+
category: "research",
|
|
116
|
+
tools: [
|
|
117
|
+
"web_search",
|
|
118
|
+
"web_fetch",
|
|
119
|
+
"web_extract",
|
|
120
|
+
"browser_use"
|
|
121
|
+
],
|
|
122
|
+
activation: {
|
|
123
|
+
mode: "explicit",
|
|
124
|
+
ttl: "turn"
|
|
125
|
+
},
|
|
126
|
+
permissions: {
|
|
127
|
+
usesBrowser: true,
|
|
128
|
+
usesNetwork: true
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
id: "data-analysis",
|
|
133
|
+
label: "Data analysis",
|
|
134
|
+
description: "Analyze local structured data and produce derived tables, summaries, or artifacts.",
|
|
135
|
+
category: "analysis",
|
|
136
|
+
tools: [
|
|
137
|
+
"read_file",
|
|
138
|
+
"write_file",
|
|
139
|
+
"list_dir",
|
|
140
|
+
"grep",
|
|
141
|
+
"find"
|
|
142
|
+
],
|
|
143
|
+
activation: {
|
|
144
|
+
mode: "explicit",
|
|
145
|
+
ttl: "session"
|
|
146
|
+
},
|
|
147
|
+
permissions: {
|
|
148
|
+
writesFiles: true,
|
|
149
|
+
runsCode: true
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
];
|
|
153
|
+
//#endregion
|
|
154
|
+
export { AGENT_CAPABILITY_DEFINITIONS };
|
|
155
|
+
|
|
156
|
+
//# sourceMappingURL=definitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.js","names":[],"sources":["../../../../src/agent/capabilities/definitions.ts"],"sourcesContent":["export type AgentCapabilityCategory = 'authoring' | 'research' | 'analysis' | 'assets';\n\nexport type AgentCapabilityActivationMode = 'explicit' | 'ui-entry' | 'workflow-scoped';\n\nexport type AgentCapabilityTtl = 'turn' | 'session' | 'until-complete';\n\nexport type AgentCapabilityActivationSource = 'skill' | 'ui' | 'workflow';\n\nexport type AgentCapabilitySessionStatus = 'collecting' | 'running' | 'complete';\n\nexport type AgentCapabilityPermissions = {\n writesFiles?: boolean;\n runsCode?: boolean;\n usesBrowser?: boolean;\n usesNetwork?: boolean;\n requiresConfirm?: boolean;\n};\n\nexport type AgentCapabilityDefinition = {\n id: string;\n label: string;\n description: string;\n category: AgentCapabilityCategory;\n tools: readonly string[];\n requiredSkills?: readonly string[];\n promptHint?: string;\n activation: {\n mode: AgentCapabilityActivationMode;\n ttl: AgentCapabilityTtl;\n };\n permissions: AgentCapabilityPermissions;\n};\n\nexport type AgentCapabilitySessionState = {\n id: string;\n source: AgentCapabilityActivationSource;\n activatedAt: number;\n ttl: AgentCapabilityTtl;\n status: AgentCapabilitySessionStatus;\n};\n\nexport type AgentCapabilityCatalogEntry = AgentCapabilityDefinition & {\n availableTools: string[];\n unavailableTools: string[];\n};\n\nexport const AGENT_CAPABILITY_DEFINITIONS = [\n {\n id: 'desktop-pet-authoring',\n label: 'Desktop pet authoring',\n description: 'Create, repair, and update local animated desktop pet packages.',\n category: 'authoring',\n tools: ['create_desktop_pet'],\n requiredSkills: ['hatch-pet'],\n promptHint:\n 'Use clarify when the pet concept is vague. Create or update the pet only after appearance, personality, and animation goals are clear.',\n activation: { mode: 'explicit', ttl: 'until-complete' },\n permissions: { writesFiles: true },\n },\n {\n id: 'automation-authoring',\n label: 'Automation authoring',\n description: 'Create and update reminders, monitors, recurring checks, and scheduled follow-ups.',\n category: 'authoring',\n tools: ['automation'],\n activation: { mode: 'explicit', ttl: 'until-complete' },\n permissions: { writesFiles: true, requiresConfirm: true },\n },\n {\n id: 'workflow-authoring',\n label: 'Workflow authoring',\n description: 'Design, validate, and run xopc workflows.',\n category: 'authoring',\n tools: ['workflow'],\n activation: { mode: 'explicit', ttl: 'until-complete' },\n permissions: { writesFiles: true, runsCode: true, requiresConfirm: true },\n },\n {\n id: 'extension-authoring',\n label: 'Plugin and extension authoring',\n description: 'Scaffold, inspect, and package xopc plugins or extensions.',\n category: 'authoring',\n tools: ['read_file', 'write_file', 'apply_patch', 'list_dir', 'grep', 'find', 'exec_command'],\n activation: { mode: 'explicit', ttl: 'until-complete' },\n permissions: { writesFiles: true, runsCode: true, requiresConfirm: true },\n },\n {\n id: 'skill-authoring',\n label: 'Skill authoring',\n description: 'Create, edit, inspect, and maintain xopc skills.',\n category: 'authoring',\n tools: ['skills_list', 'skill_view', 'skill_manage'],\n activation: { mode: 'explicit', ttl: 'until-complete' },\n permissions: { writesFiles: true, requiresConfirm: true },\n },\n {\n id: 'visual-asset-authoring',\n label: 'Visual asset authoring',\n description: 'Generate and inspect images, icons, sprites, and other visual assets.',\n category: 'assets',\n tools: ['image', 'image_generate', 'read_media', 'send_media'],\n activation: { mode: 'explicit', ttl: 'session' },\n permissions: { writesFiles: true, usesNetwork: true },\n },\n {\n id: 'browser-research',\n label: 'Browser research',\n description: 'Perform deeper web research with search, extraction, fetch, and browser interaction.',\n category: 'research',\n tools: ['web_search', 'web_fetch', 'web_extract', 'browser_use'],\n activation: { mode: 'explicit', ttl: 'turn' },\n permissions: { usesBrowser: true, usesNetwork: true },\n },\n {\n id: 'data-analysis',\n label: 'Data analysis',\n description: 'Analyze local structured data and produce derived tables, summaries, or artifacts.',\n category: 'analysis',\n tools: ['read_file', 'write_file', 'list_dir', 'grep', 'find'],\n activation: { mode: 'explicit', ttl: 'session' },\n permissions: { writesFiles: true, runsCode: true },\n },\n] as const satisfies readonly AgentCapabilityDefinition[];\n"],"mappings":";AA8CA,MAAa,+BAA+B;CAC1C;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,UAAU;EACV,OAAO,CAAC,qBAAqB;EAC7B,gBAAgB,CAAC,YAAY;EAC7B,YACE;EACF,YAAY;GAAE,MAAM;GAAY,KAAK;GAAkB;EACvD,aAAa,EAAE,aAAa,MAAM;EACnC;CACD;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,UAAU;EACV,OAAO,CAAC,aAAa;EACrB,YAAY;GAAE,MAAM;GAAY,KAAK;GAAkB;EACvD,aAAa;GAAE,aAAa;GAAM,iBAAiB;GAAM;EAC1D;CACD;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,UAAU;EACV,OAAO,CAAC,WAAW;EACnB,YAAY;GAAE,MAAM;GAAY,KAAK;GAAkB;EACvD,aAAa;GAAE,aAAa;GAAM,UAAU;GAAM,iBAAiB;GAAM;EAC1E;CACD;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,UAAU;EACV,OAAO;GAAC;GAAa;GAAc;GAAe;GAAY;GAAQ;GAAQ;GAAe;EAC7F,YAAY;GAAE,MAAM;GAAY,KAAK;GAAkB;EACvD,aAAa;GAAE,aAAa;GAAM,UAAU;GAAM,iBAAiB;GAAM;EAC1E;CACD;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,UAAU;EACV,OAAO;GAAC;GAAe;GAAc;GAAe;EACpD,YAAY;GAAE,MAAM;GAAY,KAAK;GAAkB;EACvD,aAAa;GAAE,aAAa;GAAM,iBAAiB;GAAM;EAC1D;CACD;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,UAAU;EACV,OAAO;GAAC;GAAS;GAAkB;GAAc;GAAa;EAC9D,YAAY;GAAE,MAAM;GAAY,KAAK;GAAW;EAChD,aAAa;GAAE,aAAa;GAAM,aAAa;GAAM;EACtD;CACD;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,UAAU;EACV,OAAO;GAAC;GAAc;GAAa;GAAe;GAAc;EAChE,YAAY;GAAE,MAAM;GAAY,KAAK;GAAQ;EAC7C,aAAa;GAAE,aAAa;GAAM,aAAa;GAAM;EACtD;CACD;EACE,IAAI;EACJ,OAAO;EACP,aAAa;EACb,UAAU;EACV,OAAO;GAAC;GAAa;GAAc;GAAY;GAAQ;GAAO;EAC9D,YAAY;GAAE,MAAM;GAAY,KAAK;GAAW;EAChD,aAAa;GAAE,aAAa;GAAM,UAAU;GAAM;EACnD;CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { AGENT_CAPABILITY_DEFINITIONS, type AgentCapabilityActivationMode, type AgentCapabilityActivationSource, type AgentCapabilityCatalogEntry, type AgentCapabilityCategory, type AgentCapabilityDefinition, type AgentCapabilityPermissions, type AgentCapabilitySessionState, type AgentCapabilitySessionStatus, type AgentCapabilityTtl, } from './definitions.js';
|
|
2
|
+
export { createAgentCapabilitySessionState, getAgentCapability, getAgentCapabilityToolNames, listAgentCapabilities, resolveAgentCapabilityCatalog, } from './registry.js';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AGENT_CAPABILITY_DEFINITIONS } from "./definitions.js";
|
|
2
|
+
import { createAgentCapabilitySessionState, getAgentCapability, getAgentCapabilityToolNames, listAgentCapabilities, resolveAgentCapabilityCatalog } from "./registry.js";
|
|
3
|
+
export { AGENT_CAPABILITY_DEFINITIONS, createAgentCapabilitySessionState, getAgentCapability, getAgentCapabilityToolNames, listAgentCapabilities, resolveAgentCapabilityCatalog };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type AgentCapabilityActivationSource, type AgentCapabilityCatalogEntry, type AgentCapabilityDefinition, type AgentCapabilitySessionState } from './definitions.js';
|
|
2
|
+
export declare function listAgentCapabilities(): AgentCapabilityDefinition[];
|
|
3
|
+
export declare function getAgentCapability(id: string): AgentCapabilityDefinition | undefined;
|
|
4
|
+
export declare function getAgentCapabilityToolNames(ids: readonly string[]): string[];
|
|
5
|
+
export declare function resolveAgentCapabilityCatalog(options?: {
|
|
6
|
+
registeredToolNames?: readonly string[];
|
|
7
|
+
lazyToolNames?: readonly string[];
|
|
8
|
+
deniedToolNames?: readonly string[];
|
|
9
|
+
}): AgentCapabilityCatalogEntry[];
|
|
10
|
+
export declare function createAgentCapabilitySessionState(id: string, source: AgentCapabilityActivationSource, now?: number): AgentCapabilitySessionState | null;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { AGENT_CAPABILITY_DEFINITIONS } from "./definitions.js";
|
|
2
|
+
//#region src/agent/capabilities/registry.ts
|
|
3
|
+
const definitionsById = new Map(AGENT_CAPABILITY_DEFINITIONS.map((definition) => [definition.id, definition]));
|
|
4
|
+
function listAgentCapabilities() {
|
|
5
|
+
return [...AGENT_CAPABILITY_DEFINITIONS];
|
|
6
|
+
}
|
|
7
|
+
function getAgentCapability(id) {
|
|
8
|
+
return definitionsById.get(id.trim());
|
|
9
|
+
}
|
|
10
|
+
function getAgentCapabilityToolNames(ids) {
|
|
11
|
+
const out = [];
|
|
12
|
+
const seen = /* @__PURE__ */ new Set();
|
|
13
|
+
for (const id of ids) {
|
|
14
|
+
const definition = getAgentCapability(id);
|
|
15
|
+
if (!definition) continue;
|
|
16
|
+
for (const toolName of definition.tools) {
|
|
17
|
+
if (seen.has(toolName)) continue;
|
|
18
|
+
seen.add(toolName);
|
|
19
|
+
out.push(toolName);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return out;
|
|
23
|
+
}
|
|
24
|
+
function resolveAgentCapabilityCatalog(options = {}) {
|
|
25
|
+
const available = new Set([...options.registeredToolNames ?? [], ...options.lazyToolNames ?? []]);
|
|
26
|
+
const denied = new Set(options.deniedToolNames ?? []);
|
|
27
|
+
return AGENT_CAPABILITY_DEFINITIONS.map((definition) => {
|
|
28
|
+
const availableTools = definition.tools.filter((toolName) => available.has(toolName) && !denied.has(toolName));
|
|
29
|
+
const unavailableTools = definition.tools.filter((toolName) => !availableTools.includes(toolName));
|
|
30
|
+
return {
|
|
31
|
+
...definition,
|
|
32
|
+
availableTools,
|
|
33
|
+
unavailableTools
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
function createAgentCapabilitySessionState(id, source, now = Date.now()) {
|
|
38
|
+
const definition = getAgentCapability(id);
|
|
39
|
+
if (!definition) return null;
|
|
40
|
+
return {
|
|
41
|
+
id: definition.id,
|
|
42
|
+
source,
|
|
43
|
+
activatedAt: now,
|
|
44
|
+
ttl: definition.activation.ttl,
|
|
45
|
+
status: "collecting"
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//#endregion
|
|
49
|
+
export { createAgentCapabilitySessionState, getAgentCapability, getAgentCapabilityToolNames, listAgentCapabilities, resolveAgentCapabilityCatalog };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","names":[],"sources":["../../../../src/agent/capabilities/registry.ts"],"sourcesContent":["import {\n AGENT_CAPABILITY_DEFINITIONS,\n type AgentCapabilityActivationSource,\n type AgentCapabilityCatalogEntry,\n type AgentCapabilityDefinition,\n type AgentCapabilitySessionState,\n} from './definitions.js';\n\nconst definitionsById: Map<string, AgentCapabilityDefinition> = new Map(\n AGENT_CAPABILITY_DEFINITIONS.map((definition) => [definition.id, definition]),\n);\n\nexport function listAgentCapabilities(): AgentCapabilityDefinition[] {\n return [...AGENT_CAPABILITY_DEFINITIONS];\n}\n\nexport function getAgentCapability(id: string): AgentCapabilityDefinition | undefined {\n return definitionsById.get(id.trim());\n}\n\nexport function getAgentCapabilityToolNames(ids: readonly string[]): string[] {\n const out: string[] = [];\n const seen = new Set<string>();\n for (const id of ids) {\n const definition = getAgentCapability(id);\n if (!definition) continue;\n for (const toolName of definition.tools) {\n if (seen.has(toolName)) continue;\n seen.add(toolName);\n out.push(toolName);\n }\n }\n return out;\n}\n\nexport function resolveAgentCapabilityCatalog(options: {\n registeredToolNames?: readonly string[];\n lazyToolNames?: readonly string[];\n deniedToolNames?: readonly string[];\n} = {}): AgentCapabilityCatalogEntry[] {\n const available = new Set([\n ...(options.registeredToolNames ?? []),\n ...(options.lazyToolNames ?? []),\n ]);\n const denied = new Set(options.deniedToolNames ?? []);\n return AGENT_CAPABILITY_DEFINITIONS.map((definition) => {\n const availableTools = definition.tools.filter((toolName) => available.has(toolName) && !denied.has(toolName));\n const unavailableTools = definition.tools.filter((toolName) => !availableTools.includes(toolName));\n return {\n ...definition,\n availableTools,\n unavailableTools,\n };\n });\n}\n\nexport function createAgentCapabilitySessionState(\n id: string,\n source: AgentCapabilityActivationSource,\n now = Date.now(),\n): AgentCapabilitySessionState | null {\n const definition = getAgentCapability(id);\n if (!definition) return null;\n return {\n id: definition.id,\n source,\n activatedAt: now,\n ttl: definition.activation.ttl,\n status: 'collecting',\n };\n}\n"],"mappings":";;AAQA,MAAM,kBAA0D,IAAI,IAClE,6BAA6B,KAAK,eAAe,CAAC,WAAW,IAAI,WAAW,CAAC,CAC9E;AAED,SAAgB,wBAAqD;AACnE,QAAO,CAAC,GAAG,6BAA6B;;AAG1C,SAAgB,mBAAmB,IAAmD;AACpF,QAAO,gBAAgB,IAAI,GAAG,MAAM,CAAC;;AAGvC,SAAgB,4BAA4B,KAAkC;CAC5E,MAAM,MAAgB,EAAE;CACxB,MAAM,uBAAO,IAAI,KAAa;AAC9B,MAAK,MAAM,MAAM,KAAK;EACpB,MAAM,aAAa,mBAAmB,GAAG;AACzC,MAAI,CAAC,WAAY;AACjB,OAAK,MAAM,YAAY,WAAW,OAAO;AACvC,OAAI,KAAK,IAAI,SAAS,CAAE;AACxB,QAAK,IAAI,SAAS;AAClB,OAAI,KAAK,SAAS;;;AAGtB,QAAO;;AAGT,SAAgB,8BAA8B,UAI1C,EAAE,EAAiC;CACrC,MAAM,YAAY,IAAI,IAAI,CACxB,GAAI,QAAQ,uBAAuB,EAAE,EACrC,GAAI,QAAQ,iBAAiB,EAAE,CAChC,CAAC;CACF,MAAM,SAAS,IAAI,IAAI,QAAQ,mBAAmB,EAAE,CAAC;AACrD,QAAO,6BAA6B,KAAK,eAAe;EACtD,MAAM,iBAAiB,WAAW,MAAM,QAAQ,aAAa,UAAU,IAAI,SAAS,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC;EAC9G,MAAM,mBAAmB,WAAW,MAAM,QAAQ,aAAa,CAAC,eAAe,SAAS,SAAS,CAAC;AAClG,SAAO;GACL,GAAG;GACH;GACA;GACD;GACD;;AAGJ,SAAgB,kCACd,IACA,QACA,MAAM,KAAK,KAAK,EACoB;CACpC,MAAM,aAAa,mBAAmB,GAAG;AACzC,KAAI,CAAC,WAAY,QAAO;AACxB,QAAO;EACL,IAAI,WAAW;EACf;EACA,aAAa;EACb,KAAK,WAAW,WAAW;EAC3B,QAAQ;EACT"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { GoalService } from "../../goals/goal-service.js";
|
|
2
|
-
import "../../goals/index.js";
|
|
3
1
|
import { listMemoryRecords } from "../../storage/sqlite/memory-records-repository.js";
|
|
4
2
|
import "../../storage/sqlite/index.js";
|
|
3
|
+
import { GoalService } from "../../goals/goal-service.js";
|
|
4
|
+
import "../../goals/index.js";
|
|
5
5
|
import { ProjectStore } from "../../projects/project-store.js";
|
|
6
6
|
import { getProjectForSession, getProjectWorkspacePathForSession } from "../../projects/workspace.js";
|
|
7
7
|
import { sanitizeForPromptLiteral } from "../prompt/sanitize-for-prompt.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { init_agent_scope, resolveAgentProfileDir, resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agent-scope.js";
|
|
2
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
3
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
|
+
import { init_agent_scope, resolveAgentProfileDir, resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agent-scope.js";
|
|
4
4
|
import { WORKSPACE_FILES, init_paths } from "../../config/paths.js";
|
|
5
5
|
import { AGENT_PROFILE_MARKDOWN_SYSTEM_FILES } from "./workspace.js";
|
|
6
6
|
import { dirname, join } from "node:path";
|
|
7
7
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
8
|
-
import { execFileSync } from "node:child_process";
|
|
9
8
|
import { fileURLToPath } from "node:url";
|
|
9
|
+
import { execFileSync } from "node:child_process";
|
|
10
10
|
//#region src/agent/context/workspace-seed.ts
|
|
11
11
|
/**
|
|
12
12
|
* Seed profile Markdown files into `agents/<agentId>/profile/` (and optionally `git init` the Markdown workspace).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { resolveEffectiveAgentManifestForSession } from "../../config/agent-profile.js";
|
|
2
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
3
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
|
+
import { resolveEffectiveAgentManifestForSession } from "../../config/agent-profile.js";
|
|
4
4
|
import { init_providers, resolveModel } from "../../providers/index.js";
|
|
5
5
|
import { resolveAgentTurnTimeoutMs } from "../orchestration/run-agent-turn-with-timeout.js";
|
|
6
6
|
import { runXopcEmbeddedTurn } from "./run-turn.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { getAgentDefaultModelRef, init_schema } from "../../config/schema.js";
|
|
2
|
-
import { resolveEffectiveAgentProfileForSession } from "../../config/agent-profile.js";
|
|
3
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
4
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
|
+
import { getAgentDefaultModelRef, init_schema } from "../../config/schema.js";
|
|
4
|
+
import { resolveEffectiveAgentProfileForSession } from "../../config/agent-profile.js";
|
|
5
5
|
import { GoalService } from "../../goals/goal-service.js";
|
|
6
6
|
import { resolveGoalUiLocale } from "./goal-locale.js";
|
|
7
7
|
import { evaluateAfterTurnHermesLike } from "./evaluate-turn.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { init_agent_scope, resolveDefaultAgentId } from "../agent-scope.js";
|
|
2
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
3
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
|
+
import { init_agent_scope, resolveDefaultAgentId } from "../agent-scope.js";
|
|
4
4
|
import { createResponseMessage, createSignalMessage, createTaskMessage } from "./types.js";
|
|
5
5
|
import { AgentInbox } from "./inbox.js";
|
|
6
6
|
//#region src/agent/ipc/bus.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { init_string_coerce, normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "../../utils/string-coerce.js";
|
|
2
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
3
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
|
+
import { init_string_coerce, normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "../../utils/string-coerce.js";
|
|
4
4
|
import { buildSafeToolName, normalizeReservedToolNames } from "./bundle-mcp-names.js";
|
|
5
5
|
import { setPluginToolMeta } from "./mcp-tool-meta.js";
|
|
6
6
|
import crypto from "node:crypto";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { init_string_coerce, normalizeOptionalString } from "../../utils/string-coerce.js";
|
|
2
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
3
2
|
import { init_logger } from "../../utils/logger.js";
|
|
4
3
|
import { resolveGlobalSingleton } from "../../utils/global-singleton.js";
|
|
4
|
+
import { init_string_coerce, normalizeOptionalString } from "../../utils/string-coerce.js";
|
|
5
5
|
import { sanitizeServerName } from "./bundle-mcp-names.js";
|
|
6
6
|
import { redactSensitiveUrlLikeString } from "../../utils/redact-sensitive-url.js";
|
|
7
7
|
import { loadEmbeddedMcpConfig } from "./embedded-mcp.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { init_string_coerce, normalizeLowercaseStringOrEmpty } from "../../utils/string-coerce.js";
|
|
2
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
3
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
|
+
import { init_string_coerce, normalizeLowercaseStringOrEmpty } from "../../utils/string-coerce.js";
|
|
4
4
|
import { resolveXopcMcpTransportAlias } from "../../config/mcp-config-normalize.js";
|
|
5
5
|
import { sanitizeForLog } from "../../utils/sanitize-log.js";
|
|
6
6
|
import { describeHttpMcpServerLaunchConfig, resolveHttpMcpServerLaunchConfig } from "./mcp-http.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { init_string_coerce, normalizeOptionalString } from "../../utils/string-coerce.js";
|
|
2
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
3
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
|
+
import { init_string_coerce, normalizeOptionalString } from "../../utils/string-coerce.js";
|
|
4
4
|
import { XopcStdioClientTransport } from "./mcp-stdio-transport.js";
|
|
5
5
|
import { resolveMcpTransportConfig } from "./mcp-transport-config.js";
|
|
6
6
|
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { discoverExtensionsFromDisk, init_discover_extensions } from "../../extensions/discover-extensions.js";
|
|
2
2
|
import { isAbsolute, join } from "node:path";
|
|
3
|
-
import { stat } from "node:fs/promises";
|
|
4
3
|
import { pathToFileURL } from "node:url";
|
|
4
|
+
import { stat } from "node:fs/promises";
|
|
5
5
|
//#region src/agent/memory/plugin-discovery.ts
|
|
6
6
|
init_discover_extensions();
|
|
7
7
|
async function discoverMemoryPlugins(config) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getAgentDefaultModelRef, init_schema } from "../../config/schema.js";
|
|
2
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
3
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
|
+
import { getAgentDefaultModelRef, init_schema } from "../../config/schema.js";
|
|
4
4
|
import { getAllModels, getDefaultModelSync, init_providers, resolveModel } from "../../providers/index.js";
|
|
5
5
|
import { parseModelRef } from "./selection.js";
|
|
6
6
|
import { resolveFallbackCandidates } from "../fallback/candidates.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { resolveEffectiveAgentProfileForSession } from "../../config/agent-profile.js";
|
|
2
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
3
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
|
+
import { resolveEffectiveAgentProfileForSession } from "../../config/agent-profile.js";
|
|
4
4
|
import "../memory/dreaming/constants.js";
|
|
5
5
|
import { resolveDreamingAgentScope } from "../memory/dreaming/scope.js";
|
|
6
6
|
import { persistInboundAttachments } from "../../channels/attachments/inbound-persist.js";
|
|
@@ -42,8 +42,10 @@ async function runProcessDirect(deps, input) {
|
|
|
42
42
|
});
|
|
43
43
|
return slash.aggregatedText ?? "";
|
|
44
44
|
}
|
|
45
|
+
const skillTurn = deps.agentManager.prepareSkillTurn(input.sessionKey, turnBody);
|
|
46
|
+
const textForDirect = skillTurn.text;
|
|
45
47
|
const userMessage = await buildDirectUserMessageContent({
|
|
46
|
-
content:
|
|
48
|
+
content: textForDirect,
|
|
47
49
|
attachments: prepared,
|
|
48
50
|
sessionKey: input.sessionKey,
|
|
49
51
|
config: deps.config,
|
|
@@ -54,13 +56,13 @@ async function runProcessDirect(deps, input) {
|
|
|
54
56
|
setPendingTranscriptUserMessage(input.sessionKey, pendingUserMessage);
|
|
55
57
|
const result = await (async () => {
|
|
56
58
|
try {
|
|
57
|
-
return await runDirectAgentTurn({
|
|
59
|
+
return await deps.agentManager.withSkillCapabilities(input.sessionKey, skillTurn.activatedCapabilityNames, () => runDirectAgentTurn({
|
|
58
60
|
...deps,
|
|
59
61
|
config: deps.config
|
|
60
62
|
}, {
|
|
61
63
|
sessionKey: input.sessionKey,
|
|
62
64
|
userMessage
|
|
63
|
-
});
|
|
65
|
+
}));
|
|
64
66
|
} finally {
|
|
65
67
|
clearPendingTranscriptUserMessage(input.sessionKey, pendingUserMessage);
|
|
66
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-direct-one-shot.js","names":[],"sources":["../../../../src/agent/service/process-direct-one-shot.ts"],"sourcesContent":["import type { AgentMessage } from '@earendil-works/pi-agent-core';\n\nimport type { CommandHandler } from '../messaging/command-handler.js';\nimport type { AgentInstanceGateway } from '../agent-instance-gateway.js';\nimport type { ModelManager } from '../models/index.js';\nimport type { SessionStore } from '../../session/index.js';\nimport type { Config } from '../../config/schema.js';\nimport { initSessionTurn } from '../../session/index.js';\nimport {\n buildDirectUserMessageContent,\n} from './build-direct-message-content.js';\nimport type { ProcessDirectStreamLog } from './process-direct-streaming.js';\nimport type {\n InboundAttachmentInput,\n MediaRef,\n} from '../../channels/attachments/inbound-persist.js';\nimport {\n hydratePerTurnState,\n runDirectAgentTurn,\n tryRunSlashCommand,\n} from './direct-turn-helpers.js';\nimport {\n clearPendingTranscriptUserMessage,\n setPendingTranscriptUserMessage,\n type TranscriptUserMessage,\n} from '../inbound/attachment-pipeline.js';\nimport type { ReviewOutput } from '../../review/review-types.js';\n\nexport type RunProcessDirectDeps = {\n log: ProcessDirectStreamLog;\n config: Config;\n resolveSessionEndpoint: (sessionKey: string) => Promise<{ channel: string; chatId: string }>;\n initSessionContext: (sessionKey: string, channel: string, chatId: string) => void;\n hydrateSessionWorkspaceFromStore: (sessionKey: string) => Promise<void>;\n hydrateSessionModelFromStore: (sessionKey: string) => Promise<void>;\n agentManager: AgentInstanceGateway;\n sessionStore: SessionStore;\n modelManager: ModelManager;\n applyResolvedThinkingLevel: (sessionKey: string, thinking?: string | null) => Promise<void>;\n prepareInboundAttachments: (\n sessionKey: string,\n attachments?: InboundAttachmentInput[],\n ) => Promise<MediaRef[] | undefined>;\n commandHandler: Pick<CommandHandler, 'executeCommandAndAggregateReply'>;\n onTurnComplete?: (sessionKey: string, lastAssistantText?: string) => void;\n endDirectRequestContext: () => void;\n resetSession: (sessionKey: string) => Promise<{ sessionId: string; previousSessionId: string } | null>;\n};\n\nfunction isReviewOutput(value: unknown): value is ReviewOutput {\n return !!value && typeof value === 'object' && !Array.isArray(value)\n && (value as { type?: unknown }).type === 'review';\n}\n\nexport async function runProcessDirect(\n deps: RunProcessDirectDeps,\n input: {\n content: string;\n sessionKey: string;\n attachments?: InboundAttachmentInput[];\n thinking?: string;\n },\n): Promise<string> {\n const { channel, chatId } = await deps.resolveSessionEndpoint(input.sessionKey);\n deps.initSessionContext(input.sessionKey, channel, chatId);\n\n try {\n let turnBody = input.content;\n let resetTriggeredAtInit = false;\n const turn = await initSessionTurn({\n cfg: deps.config,\n sessionKey: input.sessionKey,\n body: input.content,\n resetSession: deps.resetSession,\n });\n resetTriggeredAtInit = turn.resetTriggered;\n if (turn.bareReset && turn.ackMessage) {\n return turn.ackMessage;\n }\n turnBody = turn.bodyStripped;\n\n await hydratePerTurnState(deps, input.sessionKey, input.thinking);\n const prepared = await deps.prepareInboundAttachments(input.sessionKey, input.attachments);\n\n const slash = await tryRunSlashCommand(\n deps,\n { sessionKey: input.sessionKey, channel, chatId },\n turnBody,\n { skipResetCommands: resetTriggeredAtInit },\n );\n if (slash.matched) {\n const trimmed = slash.aggregatedText.trim();\n if (trimmed) {\n await deps.sessionStore.appendTranscriptMessage(input.sessionKey, {\n role: 'assistant',\n content: isReviewOutput(slash.metadata?.review)\n ? [slash.metadata.review]\n : [{ type: 'text', text: trimmed }],\n timestamp: Date.now(),\n ...(slash.metadata && Object.keys(slash.metadata).length > 0\n ? { metadata: slash.metadata }\n : {}),\n } as AgentMessage);\n }\n return slash.aggregatedText ?? '';\n }\n\n const
|
|
1
|
+
{"version":3,"file":"process-direct-one-shot.js","names":[],"sources":["../../../../src/agent/service/process-direct-one-shot.ts"],"sourcesContent":["import type { AgentMessage } from '@earendil-works/pi-agent-core';\n\nimport type { CommandHandler } from '../messaging/command-handler.js';\nimport type { AgentInstanceGateway } from '../agent-instance-gateway.js';\nimport type { ModelManager } from '../models/index.js';\nimport type { SessionStore } from '../../session/index.js';\nimport type { Config } from '../../config/schema.js';\nimport { initSessionTurn } from '../../session/index.js';\nimport {\n buildDirectUserMessageContent,\n} from './build-direct-message-content.js';\nimport type { ProcessDirectStreamLog } from './process-direct-streaming.js';\nimport type {\n InboundAttachmentInput,\n MediaRef,\n} from '../../channels/attachments/inbound-persist.js';\nimport {\n hydratePerTurnState,\n runDirectAgentTurn,\n tryRunSlashCommand,\n} from './direct-turn-helpers.js';\nimport {\n clearPendingTranscriptUserMessage,\n setPendingTranscriptUserMessage,\n type TranscriptUserMessage,\n} from '../inbound/attachment-pipeline.js';\nimport type { ReviewOutput } from '../../review/review-types.js';\n\nexport type RunProcessDirectDeps = {\n log: ProcessDirectStreamLog;\n config: Config;\n resolveSessionEndpoint: (sessionKey: string) => Promise<{ channel: string; chatId: string }>;\n initSessionContext: (sessionKey: string, channel: string, chatId: string) => void;\n hydrateSessionWorkspaceFromStore: (sessionKey: string) => Promise<void>;\n hydrateSessionModelFromStore: (sessionKey: string) => Promise<void>;\n agentManager: AgentInstanceGateway;\n sessionStore: SessionStore;\n modelManager: ModelManager;\n applyResolvedThinkingLevel: (sessionKey: string, thinking?: string | null) => Promise<void>;\n prepareInboundAttachments: (\n sessionKey: string,\n attachments?: InboundAttachmentInput[],\n ) => Promise<MediaRef[] | undefined>;\n commandHandler: Pick<CommandHandler, 'executeCommandAndAggregateReply'>;\n onTurnComplete?: (sessionKey: string, lastAssistantText?: string) => void;\n endDirectRequestContext: () => void;\n resetSession: (sessionKey: string) => Promise<{ sessionId: string; previousSessionId: string } | null>;\n};\n\nfunction isReviewOutput(value: unknown): value is ReviewOutput {\n return !!value && typeof value === 'object' && !Array.isArray(value)\n && (value as { type?: unknown }).type === 'review';\n}\n\nexport async function runProcessDirect(\n deps: RunProcessDirectDeps,\n input: {\n content: string;\n sessionKey: string;\n attachments?: InboundAttachmentInput[];\n thinking?: string;\n },\n): Promise<string> {\n const { channel, chatId } = await deps.resolveSessionEndpoint(input.sessionKey);\n deps.initSessionContext(input.sessionKey, channel, chatId);\n\n try {\n let turnBody = input.content;\n let resetTriggeredAtInit = false;\n const turn = await initSessionTurn({\n cfg: deps.config,\n sessionKey: input.sessionKey,\n body: input.content,\n resetSession: deps.resetSession,\n });\n resetTriggeredAtInit = turn.resetTriggered;\n if (turn.bareReset && turn.ackMessage) {\n return turn.ackMessage;\n }\n turnBody = turn.bodyStripped;\n\n await hydratePerTurnState(deps, input.sessionKey, input.thinking);\n const prepared = await deps.prepareInboundAttachments(input.sessionKey, input.attachments);\n\n const slash = await tryRunSlashCommand(\n deps,\n { sessionKey: input.sessionKey, channel, chatId },\n turnBody,\n { skipResetCommands: resetTriggeredAtInit },\n );\n if (slash.matched) {\n const trimmed = slash.aggregatedText.trim();\n if (trimmed) {\n await deps.sessionStore.appendTranscriptMessage(input.sessionKey, {\n role: 'assistant',\n content: isReviewOutput(slash.metadata?.review)\n ? [slash.metadata.review]\n : [{ type: 'text', text: trimmed }],\n timestamp: Date.now(),\n ...(slash.metadata && Object.keys(slash.metadata).length > 0\n ? { metadata: slash.metadata }\n : {}),\n } as AgentMessage);\n }\n return slash.aggregatedText ?? '';\n }\n\n const skillTurn = deps.agentManager.prepareSkillTurn(input.sessionKey, turnBody);\n const textForDirect = skillTurn.text;\n const userMessage = await buildDirectUserMessageContent({\n content: textForDirect,\n attachments: prepared,\n sessionKey: input.sessionKey,\n config: deps.config,\n agentManager: deps.agentManager,\n modelManager: deps.modelManager,\n });\n\n const pendingUserMessage = userMessage as TranscriptUserMessage;\n setPendingTranscriptUserMessage(input.sessionKey, pendingUserMessage);\n\n const result = await (async () => {\n try {\n return await deps.agentManager.withSkillCapabilities(\n input.sessionKey,\n skillTurn.activatedCapabilityNames,\n () =>\n runDirectAgentTurn(\n { ...deps, config: deps.config },\n {\n sessionKey: input.sessionKey,\n userMessage,\n },\n ),\n );\n } finally {\n clearPendingTranscriptUserMessage(input.sessionKey, pendingUserMessage);\n }\n })();\n\n if (result.lastAssistantText) {\n deps.onTurnComplete?.(input.sessionKey, result.lastAssistantText);\n }\n\n return result.lastAssistantText ?? '';\n } finally {\n deps.endDirectRequestContext();\n }\n}\n"],"mappings":";;;;;;AAiDA,SAAS,eAAe,OAAuC;AAC7D,QAAO,CAAC,CAAC,SAAS,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM,IAC9D,MAA6B,SAAS;;AAG9C,eAAsB,iBACpB,MACA,OAMiB;CACjB,MAAM,EAAE,SAAS,WAAW,MAAM,KAAK,uBAAuB,MAAM,WAAW;AAC/E,MAAK,mBAAmB,MAAM,YAAY,SAAS,OAAO;AAE1D,KAAI;EACF,IAAI,WAAW,MAAM;EACrB,IAAI,uBAAuB;EAC3B,MAAM,OAAO,MAAM,gBAAgB;GACjC,KAAK,KAAK;GACV,YAAY,MAAM;GAClB,MAAM,MAAM;GACZ,cAAc,KAAK;GACpB,CAAC;AACF,yBAAuB,KAAK;AAC5B,MAAI,KAAK,aAAa,KAAK,WACzB,QAAO,KAAK;AAEd,aAAW,KAAK;AAEhB,QAAM,oBAAoB,MAAM,MAAM,YAAY,MAAM,SAAS;EACjE,MAAM,WAAW,MAAM,KAAK,0BAA0B,MAAM,YAAY,MAAM,YAAY;EAE1F,MAAM,QAAQ,MAAM,mBAClB,MACA;GAAE,YAAY,MAAM;GAAY;GAAS;GAAQ,EACjD,UACA,EAAE,mBAAmB,sBAAsB,CAC5C;AACD,MAAI,MAAM,SAAS;GACjB,MAAM,UAAU,MAAM,eAAe,MAAM;AAC3C,OAAI,QACF,OAAM,KAAK,aAAa,wBAAwB,MAAM,YAAY;IAChE,MAAM;IACN,SAAS,eAAe,MAAM,UAAU,OAAO,GAC3C,CAAC,MAAM,SAAS,OAAO,GACvB,CAAC;KAAE,MAAM;KAAQ,MAAM;KAAS,CAAC;IACrC,WAAW,KAAK,KAAK;IACrB,GAAI,MAAM,YAAY,OAAO,KAAK,MAAM,SAAS,CAAC,SAAS,IACvD,EAAE,UAAU,MAAM,UAAU,GAC5B,EAAE;IACP,CAAiB;AAEpB,UAAO,MAAM,kBAAkB;;EAGjC,MAAM,YAAY,KAAK,aAAa,iBAAiB,MAAM,YAAY,SAAS;EAChF,MAAM,gBAAgB,UAAU;EAChC,MAAM,cAAc,MAAM,8BAA8B;GACtD,SAAS;GACT,aAAa;GACb,YAAY,MAAM;GAClB,QAAQ,KAAK;GACb,cAAc,KAAK;GACnB,cAAc,KAAK;GACpB,CAAC;EAEF,MAAM,qBAAqB;AAC3B,kCAAgC,MAAM,YAAY,mBAAmB;EAErE,MAAM,SAAS,OAAO,YAAY;AAChC,OAAI;AACF,WAAO,MAAM,KAAK,aAAa,sBAC7B,MAAM,YACN,UAAU,gCAER,mBACE;KAAE,GAAG;KAAM,QAAQ,KAAK;KAAQ,EAChC;KACE,YAAY,MAAM;KAClB;KACD,CACF,CACJ;aACO;AACR,sCAAkC,MAAM,YAAY,mBAAmB;;MAEvE;AAEJ,MAAI,OAAO,kBACT,MAAK,iBAAiB,MAAM,YAAY,OAAO,kBAAkB;AAGnE,SAAO,OAAO,qBAAqB;WAC3B;AACR,OAAK,yBAAyB"}
|
|
@@ -165,7 +165,8 @@ async function* runProcessDirectStreaming(deps, input) {
|
|
|
165
165
|
});
|
|
166
166
|
return;
|
|
167
167
|
}
|
|
168
|
-
const
|
|
168
|
+
const skillTurn = deps.agentManager.prepareSkillTurn(sessionKey, mergedUserText);
|
|
169
|
+
const textForAgent = skillTurn.text;
|
|
169
170
|
const userMessage = await deps.buildTranscriptUserMessage(textForAgent, prepared, sessionKey);
|
|
170
171
|
let sourceEnrichedUserMessage = userMessage;
|
|
171
172
|
let sourceImages;
|
|
@@ -190,7 +191,7 @@ async function* runProcessDirectStreaming(deps, input) {
|
|
|
190
191
|
const pendingUserMessage = userMessage;
|
|
191
192
|
setPendingTranscriptUserMessage(sessionKey, pendingUserMessage);
|
|
192
193
|
try {
|
|
193
|
-
const result = await runDirectAgentTurn({
|
|
194
|
+
const result = await deps.agentManager.withSkillCapabilities(sessionKey, skillTurn.activatedCapabilityNames, () => runDirectAgentTurn({
|
|
194
195
|
sessionStore: deps.sessionStore,
|
|
195
196
|
agentManager: deps.agentManager,
|
|
196
197
|
modelManager: deps.modelManager,
|
|
@@ -206,7 +207,7 @@ async function* runProcessDirectStreaming(deps, input) {
|
|
|
206
207
|
if (event.type === "error" && typeof event.content === "string") event.content = formatStreamError(event.content);
|
|
207
208
|
pushVisible(event);
|
|
208
209
|
}
|
|
209
|
-
});
|
|
210
|
+
}));
|
|
210
211
|
if (result.lastAssistantText) deps.onTurnComplete?.(sessionKey, result.lastAssistantText);
|
|
211
212
|
if (!result.ok && result.errorMessage && !abortHandled) pushVisible({
|
|
212
213
|
type: "error",
|