@xopcai/xopc 0.0.352 → 0.0.354
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/src/adapters/cli-login.js +3 -3
- package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
- package/dist/extensions/telegram/src/inbound-processor.js +2 -2
- package/dist/extensions/telegram/src/outbound-sender.js +1 -1
- package/dist/extensions/telegram/src/plugin.js +2 -2
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +2 -2
- package/dist/extensions/weixin/src/auth/accounts.js +12 -12
- package/dist/extensions/weixin/src/messaging/debug-mode.js +5 -5
- package/dist/extensions/weixin/src/messaging/inbound.js +11 -11
- package/dist/gateway/static/root/assets/activity-YogQEteU.js +1 -0
- package/dist/gateway/static/root/assets/activity-store-X7CG9pzB.js +1 -0
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-ChlaFmiD.js → agent-avatar-dicebear-B8PS1eLP.js} +1 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CLBSL9hl.js +1 -0
- package/dist/gateway/static/root/assets/agent-plugin-dialog-BninweSg.js +1 -0
- package/dist/gateway/static/root/assets/agents-CcVLP_WP.js +66 -0
- package/dist/gateway/static/root/assets/{agents-admin-api-C_3ucZGI.js → agents-admin-api-Ck2x78jq.js} +1 -1
- package/dist/gateway/static/root/assets/app-chrome-BeB4KgOf.js +1 -0
- package/dist/gateway/static/root/assets/app-management-settings-panel-COdQOmdT.js +1 -0
- package/dist/gateway/static/root/assets/appearance-settings-CDNjc2yy.js +1 -0
- package/dist/gateway/static/root/assets/apps-page-C-kvpPj8.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-D4EiLLyl.js → archive-plugin-QfOaQPL_.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-CMxBpT5v.js → automations-page-87DN5nXX.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-BdZ8NO8k.js +7 -0
- package/dist/gateway/static/root/assets/{binary-plugins-DQc_BlYP.js → binary-plugins-BF2lVwR9.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-C3S6gqnS.js → block-editor-B04Kv5DU.js} +39 -39
- package/dist/gateway/static/root/assets/bot-DjLkhyZL.js +1 -0
- package/dist/gateway/static/root/assets/{browser-automation-inputs-D2SwaQ2F.js → browser-automation-inputs-FW3bYZ-z.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-CGG1740U.js → browser-automations-page-Ck6Zb9aU.js} +2 -2
- package/dist/gateway/static/root/assets/browser-settings-page-DHlyYItE.js +3 -0
- package/dist/gateway/static/root/assets/{capabilities-D4qdO980.js → capabilities-BCF_160Z.js} +1 -1
- package/dist/gateway/static/root/assets/capabilities-CF4-mrIa.js +1 -0
- package/dist/gateway/static/root/assets/capabilities-page-C-6RLFNh.js +2 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-CST_HBkR.js +8 -0
- package/dist/gateway/static/root/assets/capability-header-actions-PBPJJsp6.js +1 -0
- package/dist/gateway/static/root/assets/channels-CM4sIvcP.js +1 -0
- package/dist/gateway/static/root/assets/{chat-terminal-dock-DfTUgrey.js → chat-terminal-dock-DTd7mWyE.js} +2 -2
- package/dist/gateway/static/root/assets/chevron-right-BweFrslA.js +1 -0
- package/dist/gateway/static/root/assets/circle-alert-BEjgurr2.js +1 -0
- package/dist/gateway/static/root/assets/circle-dashed-8qMD7gHf.js +1 -0
- package/dist/gateway/static/root/assets/circle-dot-BAseJTrF.js +1 -0
- package/dist/gateway/static/root/assets/circle-pause-CN9jYH2s.js +1 -0
- package/dist/gateway/static/root/assets/clock-3-DnrAnuyZ.js +1 -0
- package/dist/gateway/static/root/assets/cloud-C4-yfnnk.js +1 -0
- package/dist/gateway/static/root/assets/computer-settings-page--9rh1mvu.js +1 -0
- package/dist/gateway/static/root/assets/connector-service-page-v6Is0BOO.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-CryQzmEZ.js +2 -0
- package/dist/gateway/static/root/assets/copy-text-row-BHDs3cBa.js +1 -0
- package/dist/gateway/static/root/assets/date-picker-DTsMzjoZ.js +1 -0
- package/dist/gateway/static/root/assets/{dependency-picker-CV2ybJJd.js → dependency-picker-Y1QYCcLp.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-DipFHe4X.js → desktop-pet-D9dfZrOp.js} +1 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-BHVOHZUL.js +1 -0
- package/dist/gateway/static/root/assets/device-pairing-wizard-Cy5YDZ2b.js +1 -0
- package/dist/gateway/static/root/assets/directory-picker-path-field-DeMo9KlE.js +1 -0
- package/dist/gateway/static/root/assets/dist-3h6cXXhT.js +1 -0
- package/dist/gateway/static/root/assets/dist-Che_jiQF.js +1 -0
- package/dist/gateway/static/root/assets/extension-debug-page-BrGWLJg9.js +1 -0
- package/dist/gateway/static/root/assets/extension-page-AWrvy1Nb.js +1 -0
- package/dist/gateway/static/root/assets/extension-provider-CUpbXB2k.js +1 -0
- package/dist/gateway/static/root/assets/extension-settings-page-C5KgmhYu.js +1 -0
- package/dist/gateway/static/root/assets/form-field-width-DJw_jULe.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-swr-DZWFlfJr.js → gateway-config-swr-B31I6Gbq.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-HO9tL9xo.js → gateway-realtime-D6ffOiPe.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-DQuFWNjA.js +1 -0
- package/dist/gateway/static/root/assets/gateway-settings-DC-lok0J.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-Cg1nbxJR.js → gateway-startup-retry-DVol958v.js} +1 -1
- package/dist/gateway/static/root/assets/git-branch-Dh9uxTot.js +1 -0
- package/dist/gateway/static/root/assets/home-page-C29_VFAs.js +1 -0
- package/dist/gateway/static/root/assets/{image-generation-api-DSnPfr_U.js → image-generation-api-TVgJfz9r.js} +1 -1
- package/dist/gateway/static/root/assets/imports-page-BKVKfVMA.js +1 -0
- package/dist/gateway/static/root/assets/index-BJh5gU04.css +1 -0
- package/dist/gateway/static/root/assets/index-ByFXhQ-T.js +107 -0
- package/dist/gateway/static/root/assets/index.module-Cd9ENXfk.js +1 -0
- package/dist/gateway/static/root/assets/interaction-BdhHBbYa.js +1 -0
- package/dist/gateway/static/root/assets/is-masked-secret-DOkL5b_X.js +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-ixQ8_6ad.js → keyboard-shortcuts-settings-DiwE4gKU.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-Dt3TC64L.js +1 -0
- package/dist/gateway/static/root/assets/{local-apps-page-BV3NFUJQ.js → local-apps-page-DFPhWkxU.js} +1 -1
- package/dist/gateway/static/root/assets/{local-session-drafts-CuyTzbfW.js → local-session-drafts-wiq_12oN.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-qcYD05PF.js → locale-store-Y1aBayM_.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-C4faHZHj.js +2 -0
- package/dist/gateway/static/root/assets/management-settings-pZLdvIiw.js +1 -0
- package/dist/gateway/static/root/assets/markdown-view-7tzqIp_G.js +201 -0
- package/dist/gateway/static/root/assets/{media-plugins-cpalRgVI.js → media-plugins-cjgrKnne.js} +1 -1
- package/dist/gateway/static/root/assets/message-square-fVE7Ghj1.js +1 -0
- package/dist/gateway/static/root/assets/messages-DPw2X06D.js +3 -0
- package/dist/gateway/static/root/assets/mic-CuUb7zc-.js +1 -0
- package/dist/gateway/static/root/assets/model-display-name-DXhO9rcM.js +1 -0
- package/dist/gateway/static/root/assets/models-hub-cache-HGrORbzR.js +1 -0
- package/dist/gateway/static/root/assets/note-detail-panel-BLnT1tYJ.js +5 -0
- package/dist/gateway/static/root/assets/notes-api-J0yhflxC.js +1 -0
- package/dist/gateway/static/root/assets/notes-page-BawArJvP.js +8 -0
- package/dist/gateway/static/root/assets/oauth-api-CYe61zfD.js +1 -0
- package/dist/gateway/static/root/assets/page-context-capture-button-CiBUm2Br.js +1 -0
- package/dist/gateway/static/root/assets/page-tabs-D2xpUV26.js +1 -0
- package/dist/gateway/static/root/assets/pause-DuPxgSxk.js +1 -0
- package/dist/gateway/static/root/assets/personal-page-Cng583RH.js +1 -0
- package/dist/gateway/static/root/assets/play-kxZvpBg8.js +1 -0
- package/dist/gateway/static/root/assets/popover-select-DcsFzD_i.js +1 -0
- package/dist/gateway/static/root/assets/preview-open-alternatives-Dvey7GwU.js +1 -0
- package/dist/gateway/static/root/assets/{product-open-page-BJwEshPw.js → product-open-page-B8_w6c3J.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-CDZdKiTz.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-BvahSrZi.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-C0j3sKT4.js → registry-api-DqDOrPQ0.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-CU_UdkuI.js +1 -0
- package/dist/gateway/static/root/assets/rotate-ccw-JM1TBLpp.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-SbIgL9Ya.js → runtime-tools-settings-panel-BnMS50vK.js} +2 -2
- package/dist/gateway/static/root/assets/scenes-page-CDR1-q25.js +2 -0
- package/dist/gateway/static/root/assets/schema-form-B4Xa8w8S.js +1 -0
- package/dist/gateway/static/root/assets/secret-input-DPl3VYM8.js +1 -0
- package/dist/gateway/static/root/assets/send-session-input-C7Nqy0sK.js +1 -0
- package/dist/gateway/static/root/assets/{session-api-iR1SFNHe.js → session-api-CTN4qwiN.js} +1 -1
- package/dist/gateway/static/root/assets/{session-manager-3YOU74jt.js → session-manager-DsH1DZI_.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-Ymyg98G-.js +1 -0
- package/dist/gateway/static/root/assets/settings-2-D-csvaET.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-wMZhxwTM.js +1 -0
- package/dist/gateway/static/root/assets/settings-form-draft-Dy10ldo8.js +1 -0
- package/dist/gateway/static/root/assets/settings-form-section-exRhP9xn.js +1 -0
- package/dist/gateway/static/root/assets/settings-page-CHZdpvkT.js +1 -0
- package/dist/gateway/static/root/assets/setup-status-panel-HESfALIF.js +1 -0
- package/dist/gateway/static/root/assets/share-link-dialog-COlX10Dc.js +1 -0
- package/dist/gateway/static/root/assets/share-preview-page-NtRLUieq.js +2 -0
- package/dist/gateway/static/root/assets/shares-api-DICV5EKH.js +1 -0
- package/dist/gateway/static/root/assets/shares-settings-CXEBo5YL.js +1 -0
- package/dist/gateway/static/root/assets/skill-api-DYgcO7y0.js +1 -0
- package/dist/gateway/static/root/assets/skill-api-utils-C7V4JVXM.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-CWH3Fmx4.js +1 -0
- package/dist/gateway/static/root/assets/skill-wire-pattern-BPpeIcCi.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-Dx5v64jU.js +2 -0
- package/dist/gateway/static/root/assets/sparkles-DHlfQFAF.js +1 -0
- package/dist/gateway/static/root/assets/system-settings-panel-wXCBwYwE.js +1 -0
- package/dist/gateway/static/root/assets/task-detail-page-hoIyr7tp.js +1 -0
- package/dist/gateway/static/root/assets/tasks-Buv1mgPF.js +1 -0
- package/dist/gateway/static/root/assets/theme-store-BKgBPLH4.js +1 -0
- package/dist/gateway/static/root/assets/tunnel-api-C0t8y3Mi.js +1 -0
- package/dist/gateway/static/root/assets/usage-page-A2DZAidl.js +1 -0
- package/dist/gateway/static/root/assets/use-async-resource-GrnWNwMZ.js +1 -0
- package/dist/gateway/static/root/assets/use-autosave-Cn6hqqyM.js +1 -0
- package/dist/gateway/static/root/assets/use-composer-attachments-DL61XeSu.js +2 -0
- package/dist/gateway/static/root/assets/use-file-preview-expanded-Cl9mU32w.js +2 -0
- package/dist/gateway/static/root/assets/user-model-page-C1jGTwjK.js +2 -0
- package/dist/gateway/static/root/assets/voice-api-key-field-Bw05QB_V.js +1 -0
- package/dist/gateway/static/root/assets/{voice-config-api-CylVelIb.js → voice-config-api-BM75K3mR.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-9bULjfGk.js → work-discovery-overlay-xB0QpOFk.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-VYQHBiz3.js → workflow-run-setup-panel-rM4U1FXc.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-QKC34FzQ.js +6 -0
- package/dist/gateway/static/root/assets/workspace-api-BbBT75Kg.js +2 -0
- package/dist/gateway/static/root/index.html +68 -26
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/tasks.js +19 -2
- package/dist/src/agent/agent-manager.js +27 -22
- package/dist/src/agent/agent-scope.js +2 -2
- package/dist/src/agent/background-review/prompts.js +1 -1
- package/dist/src/agent/background-review/run-background-review.js +4 -4
- package/dist/src/agent/bootstrap/bootstrap-files.d.ts +0 -4
- package/dist/src/agent/bootstrap/bootstrap-files.js +3 -9
- package/dist/src/agent/bootstrap/load-bootstrap-files.js +2 -4
- package/dist/src/agent/coding/repository-instructions.js +1 -1
- package/dist/src/agent/context/coordinator.js +2 -2
- package/dist/src/agent/context/execution-context.js +4 -4
- package/dist/src/agent/context/execution-scope.js +2 -2
- package/dist/src/agent/context/project-context.js +3 -3
- package/dist/src/agent/context/workspace-seed.d.ts +1 -7
- package/dist/src/agent/context/workspace-seed.js +4 -13
- package/dist/src/agent/context/workspace-templates/AGENTS.md +1 -1
- package/dist/src/agent/context/workspace.d.ts +1 -3
- package/dist/src/agent/context/workspace.js +3 -7
- package/dist/src/agent/data-acquisition/service.js +1 -1
- package/dist/src/agent/embedded/index.js +2 -2
- package/dist/src/agent/embedded/model-runtime.js +1 -1
- package/dist/src/agent/embedded/run-for-session.js +4 -4
- package/dist/src/agent/embedded/run-turn.js +15 -5
- package/dist/src/agent/embedded/session-tool-result-guard.js +3 -3
- package/dist/src/agent/embedded/tool-result-truncation.js +1 -1
- package/dist/src/agent/external-tools/cliProvider.js +3 -3
- package/dist/src/agent/external-tools/composio-provider.js +3 -3
- package/dist/src/agent/external-tools/endpoint-provider.js +2 -2
- package/dist/src/agent/external-tools/gateway-tools.js +1 -1
- package/dist/src/agent/external-tools/mcp-provider.js +3 -3
- package/dist/src/agent/image/generation/openai-images-provider.js +1 -1
- package/dist/src/agent/image/generation/providers/dashscope.js +1 -1
- package/dist/src/agent/image/generation/providers/fal.js +1 -1
- package/dist/src/agent/image/generation/providers/google.js +1 -1
- package/dist/src/agent/image/generation/runtime.js +1 -1
- package/dist/src/agent/image/index.js +1 -1
- package/dist/src/agent/image/load-image-media.js +1 -1
- package/dist/src/agent/image/tool-model-config.js +2 -2
- package/dist/src/agent/inbound/attachment-pipeline.js +1 -1
- package/dist/src/agent/inbound/inbound-loop.js +2 -2
- package/dist/src/agent/index.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-config.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-gateway.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-runtime.js +2 -2
- package/dist/src/agent/mcp/index.js +2 -2
- package/dist/src/agent/mcp/mcp-stdio-transport.js +1 -1
- package/dist/src/agent/mcp/mcp-transport.js +1 -1
- package/dist/src/agent/mcp/oauth/mcp-oauth-manager.js +1 -1
- package/dist/src/agent/mcp/plugin-http-fetch.js +1 -1
- package/dist/src/agent/memory/context-recovery.js +1 -1
- package/dist/src/agent/memory/index.js +1 -1
- package/dist/src/agent/messaging/no-reply.d.ts +1 -0
- package/dist/src/agent/messaging/no-reply.js +4 -0
- package/dist/src/agent/messaging/outbound-coordinator.d.ts +0 -4
- package/dist/src/agent/messaging/outbound-coordinator.js +2 -4
- package/dist/src/agent/orchestration/agent-orchestrator.js +1 -1
- package/dist/src/agent/prompt/sections/agent-identity.d.ts +3 -0
- package/dist/src/agent/prompt/sections/agent-identity.js +13 -0
- package/dist/src/agent/prompt/sections/messaging-runtime.d.ts +0 -5
- package/dist/src/agent/prompt/sections/messaging-runtime.js +2 -16
- package/dist/src/agent/prompt/sections/project-context.d.ts +0 -3
- package/dist/src/agent/prompt/sections/project-context.js +2 -9
- package/dist/src/agent/prompt/sections/tooling.js +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.d.ts +2 -0
- package/dist/src/agent/prompt/service-prompt-builder.js +5 -10
- package/dist/src/agent/prompt/subagent-context.js +1 -1
- package/dist/src/agent/prompt/system-prompt-params.d.ts +0 -4
- package/dist/src/agent/prompt/system-prompt-params.js +0 -2
- package/dist/src/agent/prompt/system-prompt.d.ts +2 -2
- package/dist/src/agent/prompt/system-prompt.js +8 -9
- package/dist/src/agent/sandbox/exec-policy.js +1 -1
- package/dist/src/agent/service/direct-turn-helpers.js +4 -4
- package/dist/src/agent/service/process-direct-one-shot.js +1 -1
- package/dist/src/agent/service/process-direct-streaming.js +5 -5
- package/dist/src/agent/service/webchat-tts.js +2 -2
- package/dist/src/agent/service.js +24 -22
- package/dist/src/agent/session/session-config-service.js +27 -1
- package/dist/src/agent/session/session-hydrator.js +1 -1
- package/dist/src/agent/session/session-inspector.js +1 -1
- package/dist/src/agent/source-context/index.js +2 -2
- package/dist/src/agent/starter-agents.d.ts +0 -4
- package/dist/src/agent/starter-agents.js +57 -98
- package/dist/src/agent/tasks/task-judge-service.js +4 -4
- package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.js +7 -4
- package/dist/src/agent/tools/create-share-tool.js +3 -3
- package/dist/src/agent/tools/dataBatch.js +1 -1
- package/dist/src/agent/tools/delegate-tool.js +3 -3
- package/dist/src/agent/tools/delegation-parent-policy.js +1 -1
- package/dist/src/agent/tools/executor.js +1 -1
- package/dist/src/agent/tools/factory.d.ts +1 -1
- package/dist/src/agent/tools/factory.js +37 -30
- package/dist/src/agent/tools/fetch-text.js +1 -1
- package/dist/src/agent/tools/image-generate-tool.js +3 -3
- package/dist/src/agent/tools/index.js +6 -6
- package/dist/src/agent/tools/list-dir.js +1 -1
- package/dist/src/agent/tools/personal-preference-tool.d.ts +10 -0
- package/dist/src/agent/tools/personal-preference-tool.js +43 -0
- package/dist/src/agent/tools/personal-task-tool.d.ts +28 -0
- package/dist/src/agent/tools/personal-task-tool.js +165 -0
- package/dist/src/agent/tools/publish-artifacts.js +2 -2
- package/dist/src/agent/tools/read.js +2 -2
- package/dist/src/agent/tools/review-workspace.js +1 -1
- package/dist/src/agent/tools/send-media.js +2 -2
- package/dist/src/agent/tools/skills-tools.js +1 -1
- package/dist/src/agent/tools/tts-tool.js +1 -1
- package/dist/src/agent/tools/user-context-tool.js +1 -1
- package/dist/src/agent/tools/write.js +2 -2
- package/dist/src/agent/tools/xopc-use-tool.js +8 -7
- package/dist/src/agent/workflow/subagent-runner.js +1 -1
- package/dist/src/agent-catalog/capabilities.js +2 -2
- package/dist/src/agent-catalog/migrations/identity-markdown-cutover.d.ts +5 -0
- package/dist/src/agent-catalog/migrations/identity-markdown-cutover.js +94 -0
- package/dist/src/agent-catalog/repository.js +7 -1
- package/dist/src/agent-catalog/service.d.ts +1 -1
- package/dist/src/agent-catalog/service.js +4 -3
- package/dist/src/agent-config/index.js +2 -2
- package/dist/src/agent-config/schema.d.ts +167 -0
- package/dist/src/agent-config/schema.js +47 -6
- package/dist/src/ai-assist/text-assist.js +1 -1
- package/dist/src/auth/credentials.js +1 -1
- package/dist/src/auth/oauth-provider-lock.js +1 -1
- package/dist/src/auth/sync-provider-auth.js +1 -1
- package/dist/src/automations/capabilities/drafts.js +1 -1
- package/dist/src/automations/domain/index.js +2 -2
- package/dist/src/automations/index.js +4 -4
- package/dist/src/automations/service/automation-service.js +2 -2
- package/dist/src/backup/archive.js +1 -1
- package/dist/src/bootstrap/application-state.js +3 -1
- package/dist/src/browser/native-messaging-host.js +1 -1
- package/dist/src/capabilities/runtime/dispatcher.js +1 -1
- package/dist/src/capabilities/runtime/product.js +1 -1
- package/dist/src/channels/attachments/voice-stt-webchat.js +2 -2
- package/dist/src/channels/index.js +2 -2
- package/dist/src/channels/outbound-sender.js +1 -1
- package/dist/src/channels/pairing/allow-from-file.js +9 -9
- package/dist/src/channels/pairing/pairing-store.js +6 -6
- package/dist/src/chat-commands/agent-edit.js +4 -7
- package/dist/src/chat-commands/builtins/config.js +4 -4
- package/dist/src/chat-commands/builtins/review.js +1 -1
- package/dist/src/chat-commands/builtins/session.js +1 -1
- package/dist/src/chat-commands/builtins/thinking.js +13 -3
- package/dist/src/chat-commands/builtins/tts.js +1 -1
- package/dist/src/chat-commands/builtins/understanding.js +1 -1
- package/dist/src/chat-commands/builtins/workflow.js +2 -2
- package/dist/src/chat-commands/context.js +10 -4
- package/dist/src/chat-commands/index.js +3 -3
- package/dist/src/cli/commands/agent.js +7 -7
- package/dist/src/cli/commands/agents.js +1 -1
- package/dist/src/cli/commands/config.js +1 -1
- package/dist/src/cli/commands/connectors.js +1 -1
- package/dist/src/cli/commands/doctor/checks/channel-plugins.js +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/gateway-health.js +1 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +2 -2
- package/dist/src/cli/commands/doctor/checks/tool-runtimes.js +1 -1
- package/dist/src/cli/commands/doctor/checks/workspace-status.js +0 -1
- package/dist/src/cli/commands/extension-agent-plugin.js +2 -2
- package/dist/src/cli/commands/extension-dev.js +1 -1
- package/dist/src/cli/commands/extension-marketplace.js +2 -2
- package/dist/src/cli/commands/extension.js +4 -4
- package/dist/src/cli/commands/gateway/shared.js +1 -1
- package/dist/src/cli/commands/gateway/token.js +1 -1
- package/dist/src/cli/commands/image.js +1 -1
- package/dist/src/cli/commands/init.js +1 -34
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/onboard/channels/registry.js +1 -1
- package/dist/src/cli/commands/onboard/model.js +2 -2
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/cli/commands/project.js +2 -2
- package/dist/src/cli/commands/runtime.js +1 -1
- package/dist/src/cli/commands/skills.js +2 -2
- package/dist/src/cli/commands/tunnel.js +4 -4
- package/dist/src/cli/extension-cli-register.js +5 -5
- package/dist/src/cli/templates.d.ts +1 -1
- package/dist/src/cli/templates.js +1 -23
- package/dist/src/cli/utils/gateway-client.js +1 -1
- package/dist/src/cli/utils/init-workspace-core.js +2 -2
- package/dist/src/cli/utils/session.js +1 -1
- package/dist/src/computer/runtime.js +2 -2
- package/dist/src/config/index.js +8 -8
- package/dist/src/config/loader.js +3 -3
- package/dist/src/config/models-json.js +1 -1
- package/dist/src/config/paths.d.ts +0 -2
- package/dist/src/config/paths.js +1 -3
- package/dist/src/config/reload.d.ts +0 -1
- package/dist/src/config/reload.js +0 -4
- package/dist/src/config/rules.js +0 -5
- package/dist/src/config/schema.d.ts +0 -45
- package/dist/src/config/schema.js +3 -24
- package/dist/src/connectors/cli/authorization.js +1 -1
- package/dist/src/connectors/cli/runtime.js +1 -1
- package/dist/src/connectors/composio-sessions.js +1 -1
- package/dist/src/connectors/composio.js +1 -1
- package/dist/src/connectors/connected-source-understanding.js +3 -3
- package/dist/src/connectors/connection-recovery-service.js +5 -5
- package/dist/src/connectors/health.js +1 -1
- package/dist/src/connectors/plugin-mcp-recovery.js +1 -1
- package/dist/src/discussions/live-worker.js +1 -1
- package/dist/src/discussions/recording.js +1 -1
- package/dist/src/discussions/sealer.js +1 -1
- package/dist/src/extensions/activation-context.js +3 -3
- package/dist/src/extensions/agent-plugins/validation.js +1 -1
- package/dist/src/extensions/api.js +4 -4
- package/dist/src/extensions/bundled-extension-activation.js +1 -1
- package/dist/src/extensions/index.js +3 -3
- package/dist/src/extensions/install.js +1 -1
- package/dist/src/extensions/loader.js +2 -2
- package/dist/src/extensions/sdk/index.js +1 -1
- package/dist/src/extensions/sdk/media.js +1 -1
- package/dist/src/extensions/update.js +1 -1
- package/dist/src/gateway/agents-admin.d.ts +1 -9
- package/dist/src/gateway/agents-admin.js +9 -34
- package/dist/src/gateway/device-routes.js +2 -2
- package/dist/src/gateway/file-path-classifier.js +2 -2
- package/dist/src/gateway/global-defaults-admin.js +1 -1
- package/dist/src/gateway/hono/app.js +3 -3
- package/dist/src/gateway/hono/lib/config-payload.d.ts +1 -0
- package/dist/src/gateway/hono/lib/config-payload.js +4 -4
- package/dist/src/gateway/hono/routes/agents.js +1 -1
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
- package/dist/src/gateway/hono/routes/browser.js +1 -1
- package/dist/src/gateway/hono/routes/commands-skills.js +4 -4
- package/dist/src/gateway/hono/routes/config-patch/gateway.js +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +2 -2
- package/dist/src/gateway/hono/routes/home.js +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
- package/dist/src/gateway/hono/routes/mcp.js +2 -2
- package/dist/src/gateway/hono/routes/media.js +1 -1
- package/dist/src/gateway/hono/routes/models.js +5 -5
- package/dist/src/gateway/hono/routes/notes.js +3 -3
- package/dist/src/gateway/hono/routes/personal-agent.d.ts +3 -0
- package/dist/src/gateway/hono/routes/personal-agent.js +107 -0
- package/dist/src/gateway/hono/routes/projects.js +4 -4
- package/dist/src/gateway/hono/routes/session-command-handler.js +1 -1
- package/dist/src/gateway/hono/routes/session-input-handler.js +4 -4
- package/dist/src/gateway/hono/routes/sessions.js +6 -1
- package/dist/src/gateway/hono/routes/shares.js +3 -3
- package/dist/src/gateway/hono/routes/side-chats.js +1 -1
- package/dist/src/gateway/hono/routes/site-shares.js +1 -1
- package/dist/src/gateway/hono/routes/tasks.js +66 -3
- package/dist/src/gateway/hono/routes/user-model-refresh.js +1 -1
- package/dist/src/gateway/hono/routes/user-model.js +5 -5
- package/dist/src/gateway/hono/routes/voice.js +14 -6
- package/dist/src/gateway/hono/routes/workflows.js +2 -2
- package/dist/src/gateway/image-generation-setup.js +3 -3
- package/dist/src/gateway/index.js +1 -1
- package/dist/src/gateway/lock.js +11 -11
- package/dist/src/gateway/media-access.js +1 -1
- package/dist/src/gateway/mobile-privacy.js +2 -2
- package/dist/src/gateway/ports.js +6 -6
- package/dist/src/gateway/run-loop.js +1 -1
- package/dist/src/gateway/scenes/mailContext.js +1 -1
- package/dist/src/gateway/scenes/slackThreadSource.js +1 -1
- package/dist/src/gateway/server.js +1 -1
- package/dist/src/gateway/service/config-coordinator.js +3 -3
- package/dist/src/gateway/service/run-gateway-agent.js +3 -3
- package/dist/src/gateway/service/session-command-service.js +7 -1
- package/dist/src/gateway/service/sessions-api.js +12 -2
- package/dist/src/gateway/service.js +49 -49
- package/dist/src/gateway/session-context-summary.js +2 -2
- package/dist/src/gateway/session-reset-service.js +5 -0
- package/dist/src/gateway/workspace-editor-path.js +2 -2
- package/dist/src/gateway/xopc-cloud-capability-setup.js +1 -1
- package/dist/src/home-intelligence/generator.js +1 -1
- package/dist/src/home-intelligence/host.js +2 -2
- package/dist/src/infra/gateway-processes.js +2 -2
- package/dist/src/infra/path-env.js +3 -3
- package/dist/src/infra/update-global.js +10 -10
- package/dist/src/local-apps/service.js +2 -2
- package/dist/src/mcp/gateway-http-client.js +1 -1
- package/dist/src/media-understanding/openai-compatible-audio.js +1 -1
- package/dist/src/notes/agent-context.js +4 -4
- package/dist/src/notes/index.js +1 -1
- package/dist/src/notes/service.js +1 -1
- package/dist/src/notes/store.js +1 -1
- package/dist/src/personal-agent/policy.d.ts +1 -0
- package/dist/src/personal-agent/policy.js +13 -0
- package/dist/src/personal-agent/repository.d.ts +25 -0
- package/dist/src/personal-agent/repository.js +68 -0
- package/dist/src/personal-agent/service.d.ts +48 -0
- package/dist/src/personal-agent/service.js +222 -0
- package/dist/src/providers/auth-runtime/resolve-auth.js +1 -1
- package/dist/src/providers/index.js +2 -2
- package/dist/src/providers/model-catalog-persistence.js +1 -1
- package/dist/src/providers/model-reference-auditor.js +1 -1
- package/dist/src/providers/register-runtime-providers.js +1 -1
- package/dist/src/remote-access/exposure-manager.js +1 -1
- package/dist/src/scenes/taskFollowUp/agentExecutor.js +4 -4
- package/dist/src/scenes/taskFollowUp/resources.js +1 -1
- package/dist/src/scenes/taskFollowUp/service.js +4 -4
- package/dist/src/session/index.js +2 -2
- package/dist/src/session/resolve-session.js +4 -2
- package/dist/src/session/session-title.js +1 -1
- package/dist/src/session/store.js +4 -4
- package/dist/src/session/thinking-resolve.js +1 -1
- package/dist/src/share/share-store.js +1 -1
- package/dist/src/share/share-thumbnail.js +1 -1
- package/dist/src/share/share-zip.js +1 -1
- package/dist/src/share/site-proxy.js +1 -1
- package/dist/src/share/site-share-store.js +1 -1
- package/dist/src/storage/sqlite/connection.js +9 -9
- package/dist/src/storage/sqlite/migrations/229_task_criterion_reviews.sql +12 -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/schema.js +1 -1
- package/dist/src/storage/sqlite/schema.sql +13 -0
- package/dist/src/storage/sqlite/session-repository.js +6 -2
- package/dist/src/storage/sqlite/transcript-repository.js +2 -1
- package/dist/src/tasks/capabilities/read.js +5 -2
- package/dist/src/tasks/capabilities/write.js +1 -1
- package/dist/src/tasks/execution-context.js +1 -1
- package/dist/src/tasks/home-query-service.js +3 -3
- package/dist/src/tasks/index.js +4 -4
- package/dist/src/tasks/task-application-service.js +8 -3
- package/dist/src/tasks/task-collaboration-delivery.js +1 -1
- package/dist/src/tasks/task-context-assembler.js +1 -1
- package/dist/src/tasks/task-criterion-review-repository.d.ts +22 -0
- package/dist/src/tasks/task-criterion-review-repository.js +74 -0
- package/dist/src/tasks/task-handoff-service.js +1 -1
- package/dist/src/tasks/task-main-update-decision-service.js +7 -1
- package/dist/src/tui/backends/embedded-backend.js +12 -12
- package/dist/src/tui/backends/gateway-realtime-backend.js +1 -1
- package/dist/src/tui/extension-host/load-extensions.js +1 -1
- package/dist/src/tui/tui-command-formatters.js +1 -1
- package/dist/src/tui/tui-commands.js +6 -6
- package/dist/src/tui/tui-picker-overlay.js +1 -1
- package/dist/src/tui/tui-skills-autocomplete.js +1 -1
- package/dist/src/tui/tui-startup-resources.js +4 -4
- package/dist/src/tui/tui.js +7 -7
- package/dist/src/tunnel/frpc-binary.js +1 -1
- package/dist/src/tunnel/gateway-lifecycle.js +1 -1
- package/dist/src/voice/realtime/memory-context.js +3 -3
- package/dist/src/voice/realtime/persona-context.d.ts +2 -2
- package/dist/src/voice/realtime/persona-context.js +19 -33
- package/dist/src/voice/realtime/runtime.js +3 -3
- package/dist/src/voice/stt/index.js +2 -2
- package/dist/src/voice/stt/preflight.js +1 -1
- package/dist/src/voice/stt/providers/alibaba-transcription.js +1 -1
- package/dist/src/voice/stt/providers/xopc-cloud-transcription.js +1 -1
- package/dist/src/voice/stt/transcribe-core.js +1 -1
- package/dist/src/voice/tts/index.js +3 -3
- package/dist/src/voice/tts/merge-config.js +1 -1
- package/dist/src/voice/tts/payload.js +1 -1
- package/dist/src/voice/tts/providers/xopc-cloud-speech.js +1 -1
- package/dist/src/voice/tts/speak-core.js +1 -1
- package/dist/src/work-discovery/incremental-repository.js +1 -1
- package/dist/src/work-discovery/index.js +1 -1
- package/dist/src/work-discovery/service.js +5 -5
- package/dist/src/workflows/engine/workflow-engine.js +1 -1
- package/dist/src/workflows/service/workflow-run-service.js +8 -8
- package/dist/src/workflows/service/workflow-session-bridge.js +1 -1
- package/package.json +3 -3
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CgNagNMG.js +0 -1
- package/dist/gateway/static/root/assets/agent-plugin-dialog-CDhtsMpV.js +0 -1
- package/dist/gateway/static/root/assets/agents-BLP0zRru.js +0 -70
- package/dist/gateway/static/root/assets/app-management-settings-panel-DqC-oj5_.js +0 -1
- package/dist/gateway/static/root/assets/appearance-settings-Cfhepf6U.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-C6n5r8AP.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-DJ_-_kGh.js +0 -7
- package/dist/gateway/static/root/assets/browser-settings-page-COTo7btH.js +0 -3
- package/dist/gateway/static/root/assets/capabilities-page-BsC346Ym.js +0 -2
- package/dist/gateway/static/root/assets/capabilities-settings-panel-CRL4gfk5.js +0 -8
- package/dist/gateway/static/root/assets/capability-header-actions-B_60-buR.js +0 -1
- package/dist/gateway/static/root/assets/channels-DNxr72oD.js +0 -1
- package/dist/gateway/static/root/assets/computer-settings-page-Bk84TKyF.js +0 -1
- package/dist/gateway/static/root/assets/connector-service-page-B2pC--2X.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-Bu15_14O.js +0 -2
- package/dist/gateway/static/root/assets/date-picker-CCN30yiy.js +0 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-Dg3RM_vY.js +0 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-DUy1HymM.js +0 -1
- package/dist/gateway/static/root/assets/directory-picker-path-field-BTuFpGIK.js +0 -1
- package/dist/gateway/static/root/assets/dist-CKkafhaS.js +0 -1
- package/dist/gateway/static/root/assets/dist-io9jFpN72.js +0 -1
- package/dist/gateway/static/root/assets/extension-debug-page-xM8vfbRZ.js +0 -1
- package/dist/gateway/static/root/assets/extension-page-Cl8zlion.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-DODk0nOi.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-B01fiKrV.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-BL3C7Q9w.js +0 -1
- package/dist/gateway/static/root/assets/home-page-CjJVq_Ff.js +0 -1
- package/dist/gateway/static/root/assets/imports-page-By9oc8sD.js +0 -1
- package/dist/gateway/static/root/assets/index-B-w6Rk9Z.css +0 -1
- package/dist/gateway/static/root/assets/index-S4z-eKe-.js +0 -106
- package/dist/gateway/static/root/assets/local-app-workbench-page-Bnz5YOks.js +0 -1
- package/dist/gateway/static/root/assets/logs-page-DVqwybaT.js +0 -2
- package/dist/gateway/static/root/assets/management-settings-CUoDWFg7.js +0 -1
- package/dist/gateway/static/root/assets/markdown-view-BhFHoVtG.js +0 -201
- package/dist/gateway/static/root/assets/messages-vL3EpIrL.js +0 -3
- package/dist/gateway/static/root/assets/note-detail-panel-CxbZWvj1.js +0 -5
- package/dist/gateway/static/root/assets/notes-page-DkEOEza6.js +0 -8
- package/dist/gateway/static/root/assets/page-context-capture-button-CjCYNkVb.js +0 -1
- package/dist/gateway/static/root/assets/page-tabs-Dnzie6QW.js +0 -1
- package/dist/gateway/static/root/assets/popover-select-0p9PIHRy.js +0 -1
- package/dist/gateway/static/root/assets/preview-open-alternatives-D1H4_Nfl.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-BWC89e7l.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-BYmHC91B.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-DuVzpZ9R.js +0 -1
- package/dist/gateway/static/root/assets/scenes-page-BBl_4U1U.js +0 -2
- package/dist/gateway/static/root/assets/schema-form-Rj-wi9sm.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-BnipzwJ6.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-C7oNKVxC.js +0 -1
- package/dist/gateway/static/root/assets/settings-form-section-6gOr-ype.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-D1tVcmlR.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-CR0VBBw3.js +0 -1
- package/dist/gateway/static/root/assets/share-preview-page-CK0Bg_-o.js +0 -2
- package/dist/gateway/static/root/assets/shares-settings-B3Ghvh3c.js +0 -1
- package/dist/gateway/static/root/assets/skill-api-CoIsCPbI.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-DMIwfISw.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-CDkm7yig.js +0 -2
- package/dist/gateway/static/root/assets/system-settings-panel-Cfv-jDmY.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-eYs6qgcW.js +0 -1
- package/dist/gateway/static/root/assets/tasks-BH8_WMUF.js +0 -1
- package/dist/gateway/static/root/assets/tunnel-api-CpOQaCFN.js +0 -1
- package/dist/gateway/static/root/assets/usage-page-Cye-2eKA.js +0 -1
- package/dist/gateway/static/root/assets/use-autosave-o6YLrkpO.js +0 -1
- package/dist/gateway/static/root/assets/user-model-page-Bg-jeU7W.js +0 -2
- package/dist/gateway/static/root/assets/voice-api-key-field-FMNwQIho.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-KnoMMEDN.js +0 -6
- package/dist/src/agent/bootstrap/filter-bootstrap-files.d.ts +0 -3
- package/dist/src/agent/bootstrap/filter-bootstrap-files.js +0 -18
- package/dist/src/agent/context/workspace-templates/HEARTBEAT.md +0 -26
- package/dist/src/agent/context/workspace-templates/IDENTITY.md +0 -30
- package/dist/src/agent/service/parse-outbound-session-key.d.ts +0 -8
- package/dist/src/agent/service/parse-outbound-session-key.js +0 -44
- package/dist/src/heartbeat/active-hours.d.ts +0 -11
- package/dist/src/heartbeat/active-hours.js +0 -40
- package/dist/src/heartbeat/content-check.d.ts +0 -4
- package/dist/src/heartbeat/content-check.js +0 -17
- package/dist/src/heartbeat/event-prompt.d.ts +0 -4
- package/dist/src/heartbeat/event-prompt.js +0 -11
- package/dist/src/heartbeat/index.d.ts +0 -5
- package/dist/src/heartbeat/index.js +0 -6
- package/dist/src/heartbeat/tokens.d.ts +0 -15
- package/dist/src/heartbeat/tokens.js +0 -25
- package/dist/src/heartbeat/wake.d.ts +0 -13
- package/dist/src/heartbeat/wake.js +0 -46
- /package/dist/gateway/static/root/assets/{dist-CI_fqRk-2.js → dist-CI_fqRk-.js} +0 -0
|
@@ -7,7 +7,7 @@ import { init_node_sqlite, requireNodeSqlite } from "../../infra/node-sqlite.js"
|
|
|
7
7
|
import { ensureXopcDatabaseSchema, init_schema } from "./schema.js";
|
|
8
8
|
import { init_unhandled_rejections, installSqliteTransientRejectionHandler } from "../../infra/unhandled-rejections.js";
|
|
9
9
|
import path from "node:path";
|
|
10
|
-
import
|
|
10
|
+
import fs from "node:fs";
|
|
11
11
|
import childProcess from "node:child_process";
|
|
12
12
|
//#region src/storage/sqlite/connection.ts
|
|
13
13
|
function normalizeNonNegativeInteger(value, label) {
|
|
@@ -17,7 +17,7 @@ function normalizeNonNegativeInteger(value, label) {
|
|
|
17
17
|
function findExistingVolumePath(targetPath) {
|
|
18
18
|
let current = path.resolve(targetPath);
|
|
19
19
|
while (true) try {
|
|
20
|
-
return
|
|
20
|
+
return fs.statSync(current).isDirectory() ? current : path.dirname(current);
|
|
21
21
|
} catch {
|
|
22
22
|
const parent = path.dirname(current);
|
|
23
23
|
if (parent === current) return null;
|
|
@@ -64,7 +64,7 @@ function parseMountCommandEntries(contents) {
|
|
|
64
64
|
}
|
|
65
65
|
function readMountEntries() {
|
|
66
66
|
try {
|
|
67
|
-
return parseProcMountInfoEntries(
|
|
67
|
+
return parseProcMountInfoEntries(fs.readFileSync(PROC_MOUNTINFO_PATH, "utf8"));
|
|
68
68
|
} catch {}
|
|
69
69
|
try {
|
|
70
70
|
return parseMountCommandEntries(String(childProcess.execFileSync("mount", [])));
|
|
@@ -91,7 +91,7 @@ function isNetworkMountEntryPath(targetPath) {
|
|
|
91
91
|
return mountEntry ? isNetworkMountType(mountEntry.fsType) : false;
|
|
92
92
|
}
|
|
93
93
|
function isNetworkBackedPath(targetPath) {
|
|
94
|
-
if (typeof
|
|
94
|
+
if (typeof fs.statfsSync !== "function") return isNetworkMountEntryPath(targetPath);
|
|
95
95
|
const checkedPath = findExistingVolumePath(targetPath);
|
|
96
96
|
if (!checkedPath) return false;
|
|
97
97
|
try {
|
|
@@ -100,7 +100,7 @@ function isNetworkBackedPath(targetPath) {
|
|
|
100
100
|
4283649346,
|
|
101
101
|
4266872130,
|
|
102
102
|
20859
|
|
103
|
-
].includes(
|
|
103
|
+
].includes(fs.statfsSync(checkedPath).type >>> 0)) return true;
|
|
104
104
|
} catch {
|
|
105
105
|
return isNetworkMountEntryPath(checkedPath);
|
|
106
106
|
}
|
|
@@ -145,13 +145,13 @@ function ensureDatabasePermissions(pathname) {
|
|
|
145
145
|
if (pathname === ":memory:") return;
|
|
146
146
|
const dir = pathname.slice(0, Math.max(pathname.lastIndexOf("/"), pathname.lastIndexOf("\\")));
|
|
147
147
|
if (dir) {
|
|
148
|
-
|
|
149
|
-
|
|
148
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
149
|
+
fs.chmodSync(dir, DB_DIR_MODE);
|
|
150
150
|
}
|
|
151
151
|
for (const suffix of DB_SIDECAR_SUFFIXES) {
|
|
152
152
|
const candidate = `${pathname}${suffix}`;
|
|
153
|
-
if (!
|
|
154
|
-
|
|
153
|
+
if (!fs.existsSync(candidate)) continue;
|
|
154
|
+
fs.chmodSync(candidate, DB_FILE_MODE);
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
function openDatabaseAtPath(pathname) {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS task_criterion_reviews (
|
|
2
|
+
task_id TEXT NOT NULL,
|
|
3
|
+
contract_version INTEGER NOT NULL,
|
|
4
|
+
criterion_index INTEGER NOT NULL,
|
|
5
|
+
criterion_text TEXT NOT NULL,
|
|
6
|
+
status TEXT NOT NULL CHECK (status IN ('passed', 'failed')),
|
|
7
|
+
note TEXT,
|
|
8
|
+
reviewed_by_json TEXT NOT NULL,
|
|
9
|
+
reviewed_at INTEGER NOT NULL,
|
|
10
|
+
PRIMARY KEY (task_id, contract_version, criterion_index),
|
|
11
|
+
FOREIGN KEY (task_id, contract_version) REFERENCES task_contracts(task_id, version) ON DELETE CASCADE
|
|
12
|
+
);
|
|
@@ -3,7 +3,7 @@ import type { ApplyMigrationsOptions } from './types.js';
|
|
|
3
3
|
/** Baseline schema version applied from schema.sql on first open. */
|
|
4
4
|
export declare const XOPC_DB_BASELINE_SCHEMA_VERSION = 165;
|
|
5
5
|
/** Latest schema version this release supports (increment when adding migrations). */
|
|
6
|
-
export declare const XOPC_DB_SCHEMA_VERSION =
|
|
6
|
+
export declare const XOPC_DB_SCHEMA_VERSION = 229;
|
|
7
7
|
export declare function resolveMigrationsDir(override?: string): string;
|
|
8
8
|
/**
|
|
9
9
|
* Apply sequential SQL migrations from (currentVersion + 1) through targetVersion.
|
|
@@ -57,7 +57,7 @@ function applySingleMigration(db, migration, discardOldScenes = false) {
|
|
|
57
57
|
*/
|
|
58
58
|
function applyPendingMigrations(db, options = {}) {
|
|
59
59
|
db.function("xopc_operation_id", () => currentOperationId() ?? null);
|
|
60
|
-
const targetVersion = options.targetVersion ??
|
|
60
|
+
const targetVersion = options.targetVersion ?? 229;
|
|
61
61
|
let currentVersion = readSchemaVersion(db);
|
|
62
62
|
if (currentVersion > targetVersion) throw new DatabaseSchemaTooNewError(currentVersion, targetVersion);
|
|
63
63
|
if (!options.migrationsDir && currentVersion < 165) throw new DatabaseSchemaTooOldError(currentVersion, 165);
|
|
@@ -95,7 +95,7 @@ function applyPendingMigrations(db, options = {}) {
|
|
|
95
95
|
}
|
|
96
96
|
/** Inspect schema version without mutating the database. */
|
|
97
97
|
function inspectSchemaMigrationStatus(db, options = {}) {
|
|
98
|
-
const appVersion = options.targetVersion ??
|
|
98
|
+
const appVersion = options.targetVersion ?? 229;
|
|
99
99
|
const dbVersion = readSchemaVersion(db);
|
|
100
100
|
if (dbVersion > appVersion) return {
|
|
101
101
|
dbVersion,
|
|
@@ -137,7 +137,7 @@ var init_runner = __esmMin((() => {
|
|
|
137
137
|
init_errors();
|
|
138
138
|
log = createLogger("Sqlite:Migrations");
|
|
139
139
|
XOPC_DB_BASELINE_SCHEMA_VERSION = 165;
|
|
140
|
-
XOPC_DB_SCHEMA_VERSION =
|
|
140
|
+
XOPC_DB_SCHEMA_VERSION = 229;
|
|
141
141
|
}));
|
|
142
142
|
//#endregion
|
|
143
143
|
init_runner();
|
|
@@ -1277,6 +1277,19 @@ CREATE TABLE task_contracts (
|
|
|
1277
1277
|
FOREIGN KEY (task_id) REFERENCES tasks(task_id) ON DELETE CASCADE
|
|
1278
1278
|
);
|
|
1279
1279
|
|
|
1280
|
+
CREATE TABLE task_criterion_reviews (
|
|
1281
|
+
task_id TEXT NOT NULL,
|
|
1282
|
+
contract_version INTEGER NOT NULL,
|
|
1283
|
+
criterion_index INTEGER NOT NULL,
|
|
1284
|
+
criterion_text TEXT NOT NULL,
|
|
1285
|
+
status TEXT NOT NULL CHECK (status IN ('passed', 'failed')),
|
|
1286
|
+
note TEXT,
|
|
1287
|
+
reviewed_by_json TEXT NOT NULL,
|
|
1288
|
+
reviewed_at INTEGER NOT NULL,
|
|
1289
|
+
PRIMARY KEY (task_id, contract_version, criterion_index),
|
|
1290
|
+
FOREIGN KEY (task_id, contract_version) REFERENCES task_contracts(task_id, version) ON DELETE CASCADE
|
|
1291
|
+
);
|
|
1292
|
+
|
|
1280
1293
|
CREATE TABLE task_dependencies (
|
|
1281
1294
|
task_id TEXT NOT NULL,
|
|
1282
1295
|
depends_on_task_id TEXT NOT NULL,
|
|
@@ -90,8 +90,12 @@ function listSessionMetadata(query = {}) {
|
|
|
90
90
|
JOIN task_origin_links origin ON origin.task_id = worker.task_id
|
|
91
91
|
JOIN sessions parent ON parent.conversation_id = origin.conversation_id
|
|
92
92
|
WHERE worker.conversation_id = s.conversation_id AND worker.role = 'execution'
|
|
93
|
-
AND
|
|
94
|
-
|
|
93
|
+
AND (
|
|
94
|
+
COALESCE(CASE WHEN json_valid(parent.custom_data_json)
|
|
95
|
+
THEN json_extract(parent.custom_data_json, '$.keepHiddenFromSessionList') END, 0) = 1
|
|
96
|
+
OR (parent.hidden_from_session_list = 0
|
|
97
|
+
AND (parent.updated_at >= ? OR parent.status = 'pinned' OR parent.conversation_id = ?))
|
|
98
|
+
)
|
|
95
99
|
)`);
|
|
96
100
|
params.push(query.updatedAfter ?? 0, query.includeConversationId ?? "");
|
|
97
101
|
}
|
|
@@ -14,7 +14,8 @@ function shouldRevealSessionForUserMessage(db, conversationId) {
|
|
|
14
14
|
const row = db.prepare(`SELECT custom_data_json FROM sessions WHERE conversation_id = ?`).get(conversationId);
|
|
15
15
|
if (!row?.custom_data_json) return true;
|
|
16
16
|
try {
|
|
17
|
-
|
|
17
|
+
const customData = JSON.parse(row.custom_data_json);
|
|
18
|
+
return customData.deferVisibilityUntilOutput !== true && customData.keepHiddenFromSessionList !== true;
|
|
18
19
|
} catch {
|
|
19
20
|
return true;
|
|
20
21
|
}
|
|
@@ -2,12 +2,13 @@ import { ProductReadContracts } from "../../../packages/gateway-contract/src/cap
|
|
|
2
2
|
import { init_src } from "../../../packages/gateway-contract/src/index.js";
|
|
3
3
|
import { TaskRepository, init_task_repository } from "../task-repository.js";
|
|
4
4
|
import { TaskRunRepository, init_task_run_repository } from "../task-run-repository.js";
|
|
5
|
+
import { TaskConversationRepository } from "../task-conversation-repository.js";
|
|
6
|
+
import { TaskReadModelProjector } from "../task-read-model-projector.js";
|
|
5
7
|
import { CapabilityError } from "../../capabilities/runtime/errors.js";
|
|
6
8
|
import { defineReadCapability } from "../../capabilities/runtime/dispatcher.js";
|
|
7
9
|
import { TaskContextRepository } from "../task-context-repository.js";
|
|
8
|
-
import { TaskReadModelProjector } from "../task-read-model-projector.js";
|
|
9
10
|
import { TaskDependencyService } from "../task-dependency-service.js";
|
|
10
|
-
import {
|
|
11
|
+
import { TaskCriterionReviewRepository } from "../task-criterion-review-repository.js";
|
|
11
12
|
import { TaskValueMetricsService } from "../task-value-metrics-service.js";
|
|
12
13
|
//#region src/tasks/capabilities/read.ts
|
|
13
14
|
init_src();
|
|
@@ -37,6 +38,7 @@ function registerTaskReadCapabilities(dispatcher) {
|
|
|
37
38
|
const context = new TaskContextRepository();
|
|
38
39
|
const conversations = new TaskConversationRepository();
|
|
39
40
|
const dependencies = new TaskDependencyService();
|
|
41
|
+
const criterionReviews = new TaskCriterionReviewRepository();
|
|
40
42
|
dispatcher.register(defineReadCapability({
|
|
41
43
|
id: "xopc.task_runs.get",
|
|
42
44
|
majorVersion: 1,
|
|
@@ -106,6 +108,7 @@ function registerTaskReadCapabilities(dispatcher) {
|
|
|
106
108
|
waits: runs.listActiveWaits(id),
|
|
107
109
|
runs: runs.listByTask(id),
|
|
108
110
|
receipts: runs.listReceipts(id),
|
|
111
|
+
criterionReviews: criterionReviews.list(id, task.latestContractVersion),
|
|
109
112
|
context: context.list(id),
|
|
110
113
|
conversation: conversations.requireState(id),
|
|
111
114
|
sessions: conversations.listSessions(id),
|
|
@@ -4,8 +4,8 @@ import { TaskRepository, init_task_repository } from "../task-repository.js";
|
|
|
4
4
|
import { TaskRunRepository, init_task_run_repository } from "../task-run-repository.js";
|
|
5
5
|
import { CapabilityError } from "../../capabilities/runtime/errors.js";
|
|
6
6
|
import { defineAtomicCapability } from "../../capabilities/runtime/dispatcher.js";
|
|
7
|
-
import { TaskApplicationService } from "../task-application-service.js";
|
|
8
7
|
import { resolveProjectAgentId } from "../../projects/project-agent.js";
|
|
8
|
+
import { TaskApplicationService } from "../task-application-service.js";
|
|
9
9
|
import { TaskSignalService } from "../task-signal-service.js";
|
|
10
10
|
import { z } from "zod";
|
|
11
11
|
//#region src/tasks/capabilities/write.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isXopcDatabaseOpen } from "../storage/sqlite/connection.js";
|
|
2
2
|
import { init_sqlite } from "../storage/sqlite/index.js";
|
|
3
|
-
import { getExecutionEnvironmentForSession } from "../execution-environments/subject.js";
|
|
4
3
|
import { TaskConversationRepository } from "./task-conversation-repository.js";
|
|
4
|
+
import { getExecutionEnvironmentForSession } from "../execution-environments/subject.js";
|
|
5
5
|
//#region src/tasks/execution-context.ts
|
|
6
6
|
init_sqlite();
|
|
7
7
|
const ORIGINS = new Set([
|
|
@@ -2,11 +2,11 @@ import { TaskRepository, init_task_repository } from "./task-repository.js";
|
|
|
2
2
|
import { isHomeAttentionAcknowledged } from "../storage/sqlite/home-attention-repository.js";
|
|
3
3
|
import { listConnectorApprovals } from "../storage/sqlite/connector-repository.js";
|
|
4
4
|
import { init_sqlite } from "../storage/sqlite/index.js";
|
|
5
|
-
import "../automations/domain/defaults.js";
|
|
6
|
-
import "../automations/index.js";
|
|
7
5
|
import { TaskReadModelProjector } from "./task-read-model-projector.js";
|
|
8
|
-
import
|
|
6
|
+
import "../automations/domain/defaults.js";
|
|
9
7
|
import { AttentionGovernor } from "./attention-governor.js";
|
|
8
|
+
import { listGatewayAgents } from "../gateway/agents-admin.js";
|
|
9
|
+
import "../automations/index.js";
|
|
10
10
|
//#region src/tasks/home-query-service.ts
|
|
11
11
|
init_sqlite();
|
|
12
12
|
init_task_repository();
|
package/dist/src/tasks/index.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { enqueueTaskAttentionRequiredEvent, enqueueTaskChanged, enqueueTaskChangedEvent, init_task_change_events } from "./task-change-events.js";
|
|
2
2
|
import { TaskRepository, init_task_repository } from "./task-repository.js";
|
|
3
3
|
import { TaskRunRepository, init_task_run_repository } from "./task-run-repository.js";
|
|
4
|
-
import {
|
|
4
|
+
import { TaskConversationConflictError, TaskConversationRepository } from "./task-conversation-repository.js";
|
|
5
5
|
import { TaskReadModelProjector } from "./task-read-model-projector.js";
|
|
6
|
+
import { TaskContextRepository } from "./task-context-repository.js";
|
|
6
7
|
import { TaskDependencyError, TaskDependencyService } from "./task-dependency-service.js";
|
|
7
|
-
import { TaskConversationConflictError, TaskConversationRepository } from "./task-conversation-repository.js";
|
|
8
|
-
import { TaskApplicationService } from "./task-application-service.js";
|
|
9
|
-
import { assembleTaskContext, buildDelegatedTaskDirective, buildTaskExecutionDirective, getTaskContextManifest, getTaskExecutionBrief } from "./task-context-assembler.js";
|
|
10
8
|
import { TaskValueMetricsService } from "./task-value-metrics-service.js";
|
|
11
9
|
import { TaskDeletionService } from "./task-deletion-service.js";
|
|
10
|
+
import { TaskApplicationService } from "./task-application-service.js";
|
|
12
11
|
import { TaskSignalService } from "./task-signal-service.js";
|
|
13
12
|
import { resolveExecutionContext } from "./execution-context.js";
|
|
14
13
|
import { AttentionGovernor } from "./attention-governor.js";
|
|
@@ -16,6 +15,7 @@ import { HomeQueryService, buildHomeWorkbench, decisionFromTask } from "./home-q
|
|
|
16
15
|
import { TaskWorkflowCoordinator } from "./task-workflow-coordinator.js";
|
|
17
16
|
import { defineTaskContract } from "./task-contract-definition.js";
|
|
18
17
|
import { ModelTaskContractPlanner, parseTaskContractResponse } from "./task-contract-planner.js";
|
|
18
|
+
import { assembleTaskContext, buildDelegatedTaskDirective, buildTaskExecutionDirective, getTaskContextManifest, getTaskExecutionBrief } from "./task-context-assembler.js";
|
|
19
19
|
import { TaskRunCoordinator } from "./task-run-coordinator.js";
|
|
20
20
|
import { ProjectOperatingViewService, summarizeProjectOperatingView } from "./project-operating-view-service.js";
|
|
21
21
|
import { TaskHandoffService } from "./task-handoff-service.js";
|
|
@@ -4,11 +4,12 @@ import { init_src } from "../../packages/gateway-contract/src/index.js";
|
|
|
4
4
|
import { enqueueTaskAttentionRequiredEvent, enqueueTaskChangedEvent, init_task_change_events } from "./task-change-events.js";
|
|
5
5
|
import { TaskRepository, init_task_repository } from "./task-repository.js";
|
|
6
6
|
import { TaskRunRepository, init_task_run_repository } from "./task-run-repository.js";
|
|
7
|
-
import {
|
|
7
|
+
import { TaskConversationRepository } from "./task-conversation-repository.js";
|
|
8
8
|
import { TaskReadModelProjector } from "./task-read-model-projector.js";
|
|
9
|
+
import { TaskContextRepository } from "./task-context-repository.js";
|
|
9
10
|
import { TaskDependencyService } from "./task-dependency-service.js";
|
|
11
|
+
import { TaskCriterionReviewRepository } from "./task-criterion-review-repository.js";
|
|
10
12
|
import { TaskCollaborationRepository } from "./task-collaboration-repository.js";
|
|
11
|
-
import { TaskConversationRepository } from "./task-conversation-repository.js";
|
|
12
13
|
import { createHash, randomUUID } from "node:crypto";
|
|
13
14
|
//#region src/tasks/task-application-service.ts
|
|
14
15
|
init_src();
|
|
@@ -231,7 +232,11 @@ var TaskApplicationService = class {
|
|
|
231
232
|
};
|
|
232
233
|
break;
|
|
233
234
|
case "close":
|
|
234
|
-
result = this.
|
|
235
|
+
result = input.command.resolution === "done" && (!new TaskCriterionReviewRepository().allPassed(task) || this.#runs.getActiveRoot(task.id) !== void 0 || this.#runs.listActiveWaits(task.id).length > 0) ? {
|
|
236
|
+
ok: false,
|
|
237
|
+
reason: "blocked",
|
|
238
|
+
model
|
|
239
|
+
} : this.lifecycle(task.id, task.version, "closed", input.command.resolution);
|
|
235
240
|
break;
|
|
236
241
|
case "reopen":
|
|
237
242
|
result = task.phase === "closed" ? this.lifecycle(task.id, task.version, input.command.phase) : {
|
|
@@ -3,8 +3,8 @@ import { init_logger } from "../utils/logger.js";
|
|
|
3
3
|
import { getSqliteDatabase, init_transaction } from "../storage/sqlite/transaction.js";
|
|
4
4
|
import { TaskRepository, init_task_repository } from "./task-repository.js";
|
|
5
5
|
import { TaskRunRepository, init_task_run_repository } from "./task-run-repository.js";
|
|
6
|
-
import { TaskCollaborationRepository } from "./task-collaboration-repository.js";
|
|
7
6
|
import { TaskConversationRepository } from "./task-conversation-repository.js";
|
|
7
|
+
import { TaskCollaborationRepository } from "./task-collaboration-repository.js";
|
|
8
8
|
import { TaskApplicationService } from "./task-application-service.js";
|
|
9
9
|
//#region src/tasks/task-collaboration-delivery.ts
|
|
10
10
|
init_task_repository();
|
|
@@ -4,9 +4,9 @@ import { init_src } from "../../packages/gateway-contract/src/index.js";
|
|
|
4
4
|
import { TaskRepository, init_task_repository } from "./task-repository.js";
|
|
5
5
|
import { TaskRunRepository, init_task_run_repository } from "./task-run-repository.js";
|
|
6
6
|
import { init_sqlite } from "../storage/sqlite/index.js";
|
|
7
|
+
import { TaskConversationRepository } from "./task-conversation-repository.js";
|
|
7
8
|
import { TaskContextRepository } from "./task-context-repository.js";
|
|
8
9
|
import { TaskCollaborationRepository } from "./task-collaboration-repository.js";
|
|
9
|
-
import { TaskConversationRepository } from "./task-conversation-repository.js";
|
|
10
10
|
import { TaskOriginRepository } from "./task-origin-repository.js";
|
|
11
11
|
//#region src/tasks/task-context-assembler.ts
|
|
12
12
|
init_src();
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ActorRef, Task } from '@xopcai/gateway-contract';
|
|
2
|
+
export interface TaskCriterionReview {
|
|
3
|
+
contractVersion: number;
|
|
4
|
+
criterionIndex: number;
|
|
5
|
+
criterionText: string;
|
|
6
|
+
status: 'passed' | 'failed';
|
|
7
|
+
note?: string;
|
|
8
|
+
reviewedBy: ActorRef;
|
|
9
|
+
reviewedAt: number;
|
|
10
|
+
}
|
|
11
|
+
export declare class TaskCriterionReviewRepository {
|
|
12
|
+
list(taskId: string, contractVersion: number): TaskCriterionReview[];
|
|
13
|
+
set(input: {
|
|
14
|
+
task: Task;
|
|
15
|
+
expectedVersion: number;
|
|
16
|
+
criterionIndex: number;
|
|
17
|
+
status: 'passed' | 'failed';
|
|
18
|
+
note?: string;
|
|
19
|
+
actor: ActorRef;
|
|
20
|
+
}): TaskCriterionReview | undefined;
|
|
21
|
+
allPassed(task: Task): boolean;
|
|
22
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { getSqliteDatabase, init_transaction, runSqliteWriteTransaction } from "../storage/sqlite/transaction.js";
|
|
2
|
+
import { verifiedTaskCriteria } from "../../packages/gateway-contract/src/tasks.js";
|
|
3
|
+
import { init_src } from "../../packages/gateway-contract/src/index.js";
|
|
4
|
+
import { TaskRunRepository, init_task_run_repository } from "./task-run-repository.js";
|
|
5
|
+
//#region src/tasks/task-criterion-review-repository.ts
|
|
6
|
+
init_src();
|
|
7
|
+
init_transaction();
|
|
8
|
+
init_task_run_repository();
|
|
9
|
+
function fromRow(row) {
|
|
10
|
+
return {
|
|
11
|
+
contractVersion: row.contract_version,
|
|
12
|
+
criterionIndex: row.criterion_index,
|
|
13
|
+
criterionText: row.criterion_text,
|
|
14
|
+
status: row.status,
|
|
15
|
+
...row.note ? { note: row.note } : {},
|
|
16
|
+
reviewedBy: JSON.parse(row.reviewed_by_json),
|
|
17
|
+
reviewedAt: row.reviewed_at
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
var TaskCriterionReviewRepository = class {
|
|
21
|
+
list(taskId, contractVersion) {
|
|
22
|
+
return getSqliteDatabase().prepare(`SELECT * FROM task_criterion_reviews WHERE task_id = ? AND contract_version = ?
|
|
23
|
+
ORDER BY criterion_index`).all(taskId, contractVersion).map(fromRow);
|
|
24
|
+
}
|
|
25
|
+
set(input) {
|
|
26
|
+
const criterionText = input.task.contract?.acceptanceCriteria[input.criterionIndex];
|
|
27
|
+
if (criterionText === void 0 || input.criterionIndex < 0) return void 0;
|
|
28
|
+
const reviewedAt = Date.now();
|
|
29
|
+
return runSqliteWriteTransaction((db) => {
|
|
30
|
+
if (db.prepare(`UPDATE tasks SET version = version + 1, updated_at = ?
|
|
31
|
+
WHERE task_id = ? AND version = ? AND latest_contract_version = ? AND phase != 'closed'`).run(reviewedAt, input.task.id, input.expectedVersion, input.task.latestContractVersion).changes !== 1) return void 0;
|
|
32
|
+
db.prepare(`INSERT INTO task_criterion_reviews (
|
|
33
|
+
task_id, contract_version, criterion_index, criterion_text, status, note,
|
|
34
|
+
reviewed_by_json, reviewed_at
|
|
35
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
36
|
+
ON CONFLICT(task_id, contract_version, criterion_index) DO UPDATE SET
|
|
37
|
+
criterion_text = excluded.criterion_text,
|
|
38
|
+
status = excluded.status,
|
|
39
|
+
note = excluded.note,
|
|
40
|
+
reviewed_by_json = excluded.reviewed_by_json,
|
|
41
|
+
reviewed_at = excluded.reviewed_at`).run(input.task.id, input.task.latestContractVersion, input.criterionIndex, criterionText, input.status, input.note?.trim() || null, JSON.stringify(input.actor), reviewedAt);
|
|
42
|
+
return {
|
|
43
|
+
contractVersion: input.task.latestContractVersion,
|
|
44
|
+
criterionIndex: input.criterionIndex,
|
|
45
|
+
criterionText,
|
|
46
|
+
status: input.status,
|
|
47
|
+
...input.note?.trim() ? { note: input.note.trim() } : {},
|
|
48
|
+
reviewedBy: input.actor,
|
|
49
|
+
reviewedAt
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
allPassed(task) {
|
|
54
|
+
const criteria = task.contract?.acceptanceCriteria ?? [];
|
|
55
|
+
if (criteria.length === 0) return false;
|
|
56
|
+
const reviews = new Map(this.list(task.id, task.latestContractVersion).map((review) => [review.criterionIndex, review.status]));
|
|
57
|
+
const runs = new TaskRunRepository();
|
|
58
|
+
const versions = new Map(runs.listByTask(task.id).map((run) => [run.id, run.contractVersion]));
|
|
59
|
+
const receipts = runs.listReceipts(task.id).filter((receipt) => versions.get(receipt.runId) === task.latestContractVersion).sort((a, b) => b.finalizedAt - a.finalizedAt);
|
|
60
|
+
return criteria.every((criterion, index) => {
|
|
61
|
+
const reviewed = reviews.get(index);
|
|
62
|
+
if (reviewed && task.contract?.acceptancePolicy !== "verified_auto") return reviewed === "passed";
|
|
63
|
+
if (task.contract?.acceptancePolicy === "manual") return false;
|
|
64
|
+
for (const receipt of receipts) {
|
|
65
|
+
const check = receipt.verification.checks.find((item) => item.criterion === criterion);
|
|
66
|
+
if (!check || check.status === "unverified") continue;
|
|
67
|
+
return check.status === "passed" && verifiedTaskCriteria(receipt).has(criterion);
|
|
68
|
+
}
|
|
69
|
+
return false;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
//#endregion
|
|
74
|
+
export { TaskCriterionReviewRepository };
|
|
@@ -5,8 +5,8 @@ import { TaskRunRepository, init_task_run_repository } from "./task-run-reposito
|
|
|
5
5
|
import { normalizeAgentId } from "../agent-catalog/id.js";
|
|
6
6
|
import { init_agent_scope, listAgentEntries } from "../agent/agent-scope.js";
|
|
7
7
|
import { init_session_key, resolveConversationId, sanitizeSegment } from "../routing/session-key.js";
|
|
8
|
-
import { TaskContextRepository } from "./task-context-repository.js";
|
|
9
8
|
import { TaskConversationRepository } from "./task-conversation-repository.js";
|
|
9
|
+
import { TaskContextRepository } from "./task-context-repository.js";
|
|
10
10
|
//#region src/tasks/task-handoff-service.ts
|
|
11
11
|
init_agent_scope();
|
|
12
12
|
init_session_key();
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { TaskRepository, init_task_repository } from "./task-repository.js";
|
|
2
2
|
import { TaskRunRepository, init_task_run_repository } from "./task-run-repository.js";
|
|
3
|
-
import { extractAssistantText, getAssistantMessageErrorReason, stripCodeFences } from "../providers/model-response.js";
|
|
4
3
|
import { init_providers, resolveModel } from "../providers/index.js";
|
|
5
4
|
import { completeWithResolvedCredentials } from "../providers/model-call.js";
|
|
5
|
+
import { extractAssistantText, getAssistantMessageErrorReason, stripCodeFences } from "../providers/model-response.js";
|
|
6
6
|
import { TaskCollaborationRepository } from "./task-collaboration-repository.js";
|
|
7
|
+
import { getPersonalAgentByConversation } from "../personal-agent/repository.js";
|
|
7
8
|
//#region src/tasks/task-main-update-decision-service.ts
|
|
8
9
|
init_providers();
|
|
9
10
|
init_task_repository();
|
|
@@ -58,6 +59,11 @@ var TaskMainUpdateDecisionService = class {
|
|
|
58
59
|
reason: "Task no longer exists",
|
|
59
60
|
userPreference: "unspecified"
|
|
60
61
|
};
|
|
62
|
+
if (getPersonalAgentByConversation(input.conversationId)?.preferences.proactivity === "decisions" && input.entry.kind === "progress") return {
|
|
63
|
+
notify: false,
|
|
64
|
+
reason: "Personal AI is set to report results and decisions only",
|
|
65
|
+
userPreference: "final_only"
|
|
66
|
+
};
|
|
61
67
|
const run = this.#runs.getLatestRoot(task.id);
|
|
62
68
|
const history = recentConversation(await this.deps.loadHistory(input.conversationId));
|
|
63
69
|
const board = this.#entries.recent(task.id, void 0, 5).map((entry) => ({
|
|
@@ -9,30 +9,30 @@ import { appendComposerInputHistory, listComposerInputHistory } from "../../stor
|
|
|
9
9
|
import { getSessionMetadata } from "../../storage/sqlite/session-read-repository.js";
|
|
10
10
|
import { init_sqlite } from "../../storage/sqlite/index.js";
|
|
11
11
|
import { normalizeAgentId } from "../../agent-catalog/id.js";
|
|
12
|
-
import { init_agent_scope, listAgentEntries } from "../../agent/agent-scope.js";
|
|
13
|
-
import { init_paths } from "../../config/paths.js";
|
|
14
|
-
import { AgentCatalogService } from "../../agent-catalog/service.js";
|
|
15
12
|
import { getAgentDefaultModelRef, init_schema } from "../../config/schema.js";
|
|
13
|
+
import { init_agent_scope, listAgentEntries } from "../../agent/agent-scope.js";
|
|
16
14
|
import { init_agent_session_key, resolveAgentIdFromConversationId } from "../../routing/agent-session-key.js";
|
|
17
|
-
import { loadConfig } from "../../config/loader.js";
|
|
18
|
-
import { prependEnvelopeTimestamp } from "../../channels/envelope-timestamp.js";
|
|
19
15
|
import { resolveEffectiveAgentProfile } from "../../config/agent-profile.js";
|
|
16
|
+
import { init_paths } from "../../config/paths.js";
|
|
20
17
|
import { effectiveWorkspacePathForSession } from "../../session/session-workspace.js";
|
|
21
|
-
import { buildReviewContext, resolveGitRoot } from "../../review/review-git.js";
|
|
22
|
-
import { MessageBus, MessageBusShutdownError } from "../../infra/bus/queue.js";
|
|
23
|
-
import "../../infra/bus/index.js";
|
|
24
|
-
import { getWorkspacePath } from "../../config/workspace-path-helpers.js";
|
|
25
|
-
import "../../config/index.js";
|
|
26
18
|
import { ProjectService } from "../../projects/project-service.js";
|
|
27
19
|
import { inferSuggestedProjectDefaultAgentId } from "../../projects/project-agent-suggestion.js";
|
|
28
20
|
import "../../projects/index.js";
|
|
29
21
|
import { buildSessionTimeline } from "../../session/transcript-outline.js";
|
|
30
22
|
import { transcriptRowsToClientHistory } from "../../session/client-history.js";
|
|
23
|
+
import { createCreateShareTool, isShareToolAvailable } from "../../agent/tools/create-share-tool.js";
|
|
24
|
+
import { evictEmbeddedSessionRunner } from "../../agent/embedded/session-runner.js";
|
|
25
|
+
import { AgentCatalogService } from "../../agent-catalog/service.js";
|
|
31
26
|
import { SessionIndex } from "../../session/manager.js";
|
|
32
27
|
import "../../session/index.js";
|
|
33
28
|
import { parseModelRef } from "../../agent/models/selection.js";
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
29
|
+
import { loadConfig } from "../../config/loader.js";
|
|
30
|
+
import { buildReviewContext, resolveGitRoot } from "../../review/review-git.js";
|
|
31
|
+
import { MessageBus, MessageBusShutdownError } from "../../infra/bus/queue.js";
|
|
32
|
+
import "../../infra/bus/index.js";
|
|
33
|
+
import { prependEnvelopeTimestamp } from "../../channels/envelope-timestamp.js";
|
|
34
|
+
import { getWorkspacePath } from "../../config/workspace-path-helpers.js";
|
|
35
|
+
import "../../config/index.js";
|
|
36
36
|
import { buildWorkflowChildTools } from "../../agent/workflow/workflow-child-tools.js";
|
|
37
37
|
import { WorkflowRunService } from "../../workflows/service/workflow-run-service.js";
|
|
38
38
|
import { WorkflowSessionBridge } from "../../workflows/service/workflow-session-bridge.js";
|
|
@@ -5,9 +5,9 @@ import { sessionInputCommandSchema } from "../../../packages/gateway-contract/sr
|
|
|
5
5
|
import { isSessionCommandRejected } from "../../../packages/gateway-contract/src/session-command-rejection.js";
|
|
6
6
|
import { init_src } from "../../../packages/gateway-contract/src/index.js";
|
|
7
7
|
import { init_paths } from "../../config/paths.js";
|
|
8
|
-
import { gatewayCredentialAuthorization } from "../../gateway/credential.js";
|
|
9
8
|
import { transcriptRowsToClientHistory } from "../../session/client-history.js";
|
|
10
9
|
import { parseModelRef } from "../../agent/models/selection.js";
|
|
10
|
+
import { gatewayCredentialAuthorization } from "../../gateway/credential.js";
|
|
11
11
|
import { RealtimeClient } from "../../../packages/realtime-client/src/index.js";
|
|
12
12
|
import { buildTuiTranscriptTree, transcriptTreeEntryIdToRowNumber } from "../tui-transcript-tree.js";
|
|
13
13
|
import { computeTuiSessionStats } from "../tui-session-stats.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
3
|
import { init_paths, resolveExtensionsDir } from "../../config/paths.js";
|
|
4
|
+
import { ExtensionLoader } from "../../extensions/loader.js";
|
|
4
5
|
import { loadConfig } from "../../config/loader.js";
|
|
5
6
|
import { getWorkspacePath } from "../../config/workspace-path-helpers.js";
|
|
6
7
|
import "../../config/index.js";
|
|
7
|
-
import { ExtensionLoader } from "../../extensions/loader.js";
|
|
8
8
|
//#region src/tui/extension-host/load-extensions.ts
|
|
9
9
|
init_paths();
|
|
10
10
|
init_logger();
|
|
@@ -3,8 +3,8 @@ import { getRuntimeLogStats } from "../utils/logger/stats.js";
|
|
|
3
3
|
import { init_logger } from "../utils/logger.js";
|
|
4
4
|
import { resolveConfigPath } from "../config/paths.js";
|
|
5
5
|
import { getProviderDisplayName, getSortedProviders, init_providers, providerSupportsApiKey, providerSupportsOAuth } from "../providers/index.js";
|
|
6
|
-
import { normalizeVerboseLevel } from "../agent/transcript/thinking-types.js";
|
|
7
6
|
import { createWorkflowCatalog } from "../agent/workflow/catalog.js";
|
|
7
|
+
import { normalizeVerboseLevel } from "../agent/transcript/thinking-types.js";
|
|
8
8
|
import "../config/index.js";
|
|
9
9
|
import { countPendingChatInputs } from "./tui-chat-input-state.js";
|
|
10
10
|
import { computeContextUsagePercent, formatContextUsageLabel } from "./tui-context-usage.js";
|
|
@@ -2,19 +2,19 @@ import { closeXopcDatabase, isXopcDatabaseOpen, openXopcDatabase } from "../stor
|
|
|
2
2
|
import { TaskRepository } from "../tasks/task-repository.js";
|
|
3
3
|
import { getSessionMetadata } from "../storage/sqlite/session-read-repository.js";
|
|
4
4
|
import { init_sqlite } from "../storage/sqlite/index.js";
|
|
5
|
-
import { resolveConfigPath } from "../config/paths.js";
|
|
6
5
|
import { init_agent_session_key, isValidAgentId, normalizeAgentId } from "../routing/agent-session-key.js";
|
|
6
|
+
import { resolveConfigPath } from "../config/paths.js";
|
|
7
7
|
import { init_providers, providerSupportsOAuth } from "../providers/index.js";
|
|
8
|
-
import { loadConfig } from "../config/loader.js";
|
|
9
|
-
import { normalizeReasoningLevel, normalizeThinkLevel, normalizeVerboseLevel } from "../agent/transcript/thinking-types.js";
|
|
10
|
-
import { createWorkflowCatalog } from "../agent/workflow/catalog.js";
|
|
11
|
-
import "../config/index.js";
|
|
12
|
-
import { provenanceTracker } from "../extensions/security.js";
|
|
13
8
|
import { ProjectService } from "../projects/project-service.js";
|
|
14
9
|
import { isValidProjectAgentId, normalizeProjectAgentId } from "../projects/project-agent.js";
|
|
15
10
|
import { inferSuggestedProjectDefaultAgentId } from "../projects/project-agent-suggestion.js";
|
|
16
11
|
import "../projects/index.js";
|
|
12
|
+
import { createWorkflowCatalog } from "../agent/workflow/catalog.js";
|
|
17
13
|
import "../tasks/index.js";
|
|
14
|
+
import { normalizeReasoningLevel, normalizeThinkLevel, normalizeVerboseLevel } from "../agent/transcript/thinking-types.js";
|
|
15
|
+
import { provenanceTracker } from "../extensions/security.js";
|
|
16
|
+
import { loadConfig } from "../config/loader.js";
|
|
17
|
+
import "../config/index.js";
|
|
18
18
|
import { theme } from "./theme.js";
|
|
19
19
|
import { getTuiKeybindingsPath } from "./tui-keybindings-file.js";
|
|
20
20
|
import { formatKeyIds, formatXopcTuiHotkeys } from "./format-tui-hotkeys.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { listThinkingLevels, normalizeThinkLevel } from "../agent/transcript/thinking-types.js";
|
|
2
1
|
import { getProjectTrustOptions, hasTrustRequiringProjectResources } from "../project-trust/trust-store.js";
|
|
2
|
+
import { listThinkingLevels, normalizeThinkLevel } from "../agent/transcript/thinking-types.js";
|
|
3
3
|
import { searchableSelectListTheme, theme } from "./theme.js";
|
|
4
4
|
import { formatKeyIds } from "./format-tui-hotkeys.js";
|
|
5
5
|
import { formatSessionPickerDescription } from "./tui-session-format.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { resolveStateDir } from "../config/paths-state.js";
|
|
2
2
|
import { init_paths, resolveBundledSkillsDir } from "../config/paths.js";
|
|
3
|
+
import { loadSkills } from "../agent/skills/index.js";
|
|
3
4
|
import { loadConfig } from "../config/loader.js";
|
|
4
5
|
import { getWorkspacePath } from "../config/workspace-path-helpers.js";
|
|
5
6
|
import "../config/index.js";
|
|
6
|
-
import { loadSkills } from "../agent/skills/index.js";
|
|
7
7
|
//#region src/tui/tui-skills-autocomplete.ts
|
|
8
8
|
init_paths();
|
|
9
9
|
/** `@skill` autocomplete from workspace + global + bundled skill directories. */
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { resolveStateDir } from "../config/paths-state.js";
|
|
2
|
+
import { resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
|
|
2
3
|
import { init_paths, resolveAgentProfileDir, resolveBundledSkillsDir } from "../config/paths.js";
|
|
4
|
+
import { resolveBootstrapFilesSync } from "../agent/bootstrap/bootstrap-files.js";
|
|
3
5
|
import { listConnectorInstances } from "../connectors/instances.js";
|
|
4
|
-
import {
|
|
6
|
+
import { createSkillConfigManager, isSkillEnabled } from "../agent/skills/config.js";
|
|
7
|
+
import { loadSkills } from "../agent/skills/index.js";
|
|
5
8
|
import { createWorkflowCatalog } from "../agent/workflow/catalog.js";
|
|
6
9
|
import { getWorkspacePath } from "../config/workspace-path-helpers.js";
|
|
7
10
|
import "../config/index.js";
|
|
8
|
-
import { createSkillConfigManager, isSkillEnabled } from "../agent/skills/config.js";
|
|
9
|
-
import { loadSkills } from "../agent/skills/index.js";
|
|
10
|
-
import { resolveBootstrapFilesSync } from "../agent/bootstrap/bootstrap-files.js";
|
|
11
11
|
import { basename } from "node:path";
|
|
12
12
|
//#region src/tui/tui-startup-resources.ts
|
|
13
13
|
init_paths();
|