@xopcai/xopc 0.0.392 → 0.0.394
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/telegram/src/plugin.js +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CZmaQbC9.js → agent-avatar-dicebear-CIpp0ZG6.js} +1 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-DzkKx0Dv.js +1 -0
- package/dist/gateway/static/root/assets/agent-plugin-dialog-dWqozfQm.js +1 -0
- package/dist/gateway/static/root/assets/agents-CXG8SYr5.js +77 -0
- package/dist/gateway/static/root/assets/{agents-admin-api-znm6_dW_.js → agents-admin-api-B5aykqg_.js} +1 -1
- package/dist/gateway/static/root/assets/app-management-settings-panel-SmT1HDDg.js +1 -0
- package/dist/gateway/static/root/assets/appearance-settings-Da9jf0ZC.js +1 -0
- package/dist/gateway/static/root/assets/apps-page-DYaxWrTI.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-dSkmoISk.js → archive-plugin-D6bFXdsA.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-DhWRn0dZ.js → automations-page-CM3wI2Nr.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-BSMdKgxD.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-BJlZrYym.js → binary-plugins-CYKGdQnF.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-OHBssIfN.js → block-editor-Fx38xFF4.js} +40 -40
- package/dist/gateway/static/root/assets/browser-automation-inputs-CQMc-Gol.js +1 -0
- package/dist/gateway/static/root/assets/browser-automations-page-C4VhFvyu.js +3 -0
- package/dist/gateway/static/root/assets/browser-settings-page-8WZOkfL7.js +3 -0
- package/dist/gateway/static/root/assets/capabilities-page-dreSJEes.js +2 -0
- package/dist/gateway/static/root/assets/{capabilities-CgDteXZH.js → capabilities-pt2M56-E.js} +1 -1
- package/dist/gateway/static/root/assets/capabilities-settings-panel-9DviVNpG.js +8 -0
- package/dist/gateway/static/root/assets/capability-header-actions-AbVbg7kZ.js +1 -0
- package/dist/gateway/static/root/assets/channels-DqGCiVmr.js +1 -0
- package/dist/gateway/static/root/assets/chat-terminal-dock-djkqphez.js +36 -0
- package/dist/gateway/static/root/assets/computer-settings-page-DE9zl7bK.js +1 -0
- package/dist/gateway/static/root/assets/connector-service-page--gB9vL3C.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-Bcr2NNoX.js +1 -0
- package/dist/gateway/static/root/assets/date-picker-D9q-5a8a.js +1 -0
- package/dist/gateway/static/root/assets/dependency-picker-Ci0dApIr.js +1 -0
- package/dist/gateway/static/root/assets/desktop-pet-CjaVVJDQ.js +1 -0
- package/dist/gateway/static/root/assets/desktop-pet-settings-C7TFazyr.js +1 -0
- package/dist/gateway/static/root/assets/desktop-pet-sprite-Bd-aOI7N.js +30 -0
- package/dist/gateway/static/root/assets/desktop-pet-sprite-BuB0g8zv.css +1 -0
- package/dist/gateway/static/root/assets/device-pairing-wizard-B6S-RpNJ.js +1 -0
- package/dist/gateway/static/root/assets/directory-picker-path-field-BpymM_E_.js +1 -0
- package/dist/gateway/static/root/assets/extension-debug-page-CABAv66K.js +1 -0
- package/dist/gateway/static/root/assets/extension-page-B3dACpKA.js +1 -0
- package/dist/gateway/static/root/assets/extension-settings-page-B3bwBvgp.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-swr-BM__9Fws.js → gateway-config-swr-BEePO3Wl.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-DS_GDx-x.js → gateway-realtime-Dng_VOvI.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-DtlBf7oH.js +1 -0
- package/dist/gateway/static/root/assets/gateway-settings-CzA1bTXZ.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-DosoyMIH.js → gateway-startup-retry-CDCiy7Cd.js} +1 -1
- package/dist/gateway/static/root/assets/{highlighted-body-KQOG7T2V-BYHXWIfK.js → highlighted-body-KQOG7T2V-53FJXO9w.js} +1 -1
- package/dist/gateway/static/root/assets/home-page-KRPp-I4O.js +2 -0
- package/dist/gateway/static/root/assets/image-generation-api-DWRmAkoe.js +1 -0
- package/dist/gateway/static/root/assets/imports-page-B0Y8iy6G.js +1 -0
- package/dist/gateway/static/root/assets/index-BvAvfZ5R.js +260 -0
- package/dist/gateway/static/root/assets/index-CMRCop32.css +1 -0
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-CjkACa5H.js +1 -0
- package/dist/gateway/static/root/assets/local-app-workbench-page-DROP52YA.js +1 -0
- package/dist/gateway/static/root/assets/local-apps-page-BELUF7Pg.js +1 -0
- package/dist/gateway/static/root/assets/{local-session-drafts-Bye3ZtsW.js → local-session-drafts-CYEDUPH7.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-BKyOF23r.js → locale-store-CE7L6MlS.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-DBm3g8Mu.js +2 -0
- package/dist/gateway/static/root/assets/management-settings-CcsW4Z-r.js +1 -0
- package/dist/gateway/static/root/assets/{markdown-view-D_7clISS.js → markdown-view-PrKvVpRh.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-B_4o8hac.js → media-plugins-UU3qSAhq.js} +1 -1
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-CG664NRI.js +1 -0
- package/dist/gateway/static/root/assets/messages-CaeL_miw.js +3 -0
- package/dist/gateway/static/root/assets/note-detail-panel-BS9XnQ8a.js +5 -0
- package/dist/gateway/static/root/assets/notes-page-Cfy_WnU-.js +8 -0
- package/dist/gateway/static/root/assets/page-context-capture-button-BD7T7uqR.js +1 -0
- package/dist/gateway/static/root/assets/personal-page-DZEh3dXq.js +1 -0
- package/dist/gateway/static/root/assets/preview-open-alternatives--3aGeYJ5.js +1 -0
- package/dist/gateway/static/root/assets/product-open-page-B0ZxsnFO.js +1 -0
- package/dist/gateway/static/root/assets/product-preview-content-CheSHKJq.js +1 -0
- package/dist/gateway/static/root/assets/project-detail-page-Bm7bVHVo.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-DPA6QL_Z.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-DLHHYP_v.js → registry-api-BO2Ck3aA.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-Pxf4EiKh.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-api-Dq_50s27.js → runtime-tools-api-B1sb8nlw.js} +1 -1
- package/dist/gateway/static/root/assets/runtime-tools-settings-panel-2BnqCeNt.js +1 -0
- package/dist/gateway/static/root/assets/schema-form-KmnpEBtP.js +1 -0
- package/dist/gateway/static/root/assets/{session-api-Br11ih_M.js → session-api-CaAUJvu1.js} +1 -1
- package/dist/gateway/static/root/assets/session-manager-DoFTlgNz.js +16 -0
- package/dist/gateway/static/root/assets/sessions-page-d0anT7iK.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-DfDaPyh5.js +1 -0
- package/dist/gateway/static/root/assets/settings-form-section-Db5XOKMH.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-4odCW0_2.js → settings-page-aRM6ax6B.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-DCNAcalA.js +1 -0
- package/dist/gateway/static/root/assets/share-preview-page-DR3Esqa_.js +2 -0
- package/dist/gateway/static/root/assets/shares-settings-CvEwnQch.js +1 -0
- package/dist/gateway/static/root/assets/skill-api-BJBU8YgD.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-DEQ1bdN9.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-BXNFSIIy.js +2 -0
- package/dist/gateway/static/root/assets/sliding-indicator-hwz0sx3h.js +1 -0
- package/dist/gateway/static/root/assets/style-Df_wL13k.js +7 -0
- package/dist/gateway/static/root/assets/system-settings-panel-DWnyafB7.js +1 -0
- package/dist/gateway/static/root/assets/tab-completion-input-CxtEp0aP.js +1 -0
- package/dist/gateway/static/root/assets/task-detail-page-DyHDW8A5.js +2 -0
- package/dist/gateway/static/root/assets/{task-expandable-content-CmQt5uxa.js → task-expandable-content-DTEVoNrM.js} +1 -1
- package/dist/gateway/static/root/assets/tracing-settings-page-vvREqbQ3.js +1 -0
- package/dist/gateway/static/root/assets/tunnel-api-BEzsymVO.js +1 -0
- package/dist/gateway/static/root/assets/usage-page-ByYOqsHo.js +1 -0
- package/dist/gateway/static/root/assets/use-autosave-Cp4kZ3E-.js +1 -0
- package/dist/gateway/static/root/assets/user-model-page-D0qeCXwD.js +2 -0
- package/dist/gateway/static/root/assets/voice-api-key-field-DH3OdR-w.js +1 -0
- package/dist/gateway/static/root/assets/{voice-config-api-CmDtDA4g.js → voice-config-api-D0Wscn9W.js} +1 -1
- package/dist/gateway/static/root/assets/work-discovery-overlay-CICdfBBR.js +1 -0
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-VIJQCUY5.js +3 -0
- package/dist/gateway/static/root/assets/workflows-page-DDYp2Jbo.js +6 -0
- package/dist/gateway/static/root/assets/xopc-cloud-account-card-BTMfgVTk.js +1 -0
- package/dist/gateway/static/root/index.html +20 -69
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-instance-gateway.d.ts +2 -0
- package/dist/src/agent/agent-manager.d.ts +1 -1
- package/dist/src/agent/agent-manager.js +19 -28
- package/dist/src/agent/background-review/run-background-review.js +6 -6
- package/dist/src/agent/child-agent-factory.d.ts +2 -1
- package/dist/src/agent/child-agent-factory.js +2 -1
- package/dist/src/agent/coding/projectEvidence.d.ts +9 -0
- package/dist/src/agent/coding/projectEvidence.js +177 -0
- package/dist/src/agent/coding/repository-instructions.d.ts +8 -1
- package/dist/src/agent/coding/repository-instructions.js +9 -4
- package/dist/src/agent/coding/run-verification.d.ts +17 -2
- package/dist/src/agent/coding/run-verification.js +82 -12
- package/dist/src/agent/context/execution-context.js +3 -3
- package/dist/src/agent/context/project-context.js +3 -3
- package/dist/src/agent/embedded/agent-profile-context.js +10 -4
- package/dist/src/agent/embedded/codemode-extension.js +1 -1
- package/dist/src/agent/embedded/execution-context.d.ts +1 -0
- package/dist/src/agent/embedded/execution-context.js +4 -1
- package/dist/src/agent/embedded/execution-tool-policy.js +1 -1
- package/dist/src/agent/embedded/external-tool-discovery.js +1 -1
- package/dist/src/agent/embedded/run-for-session.js +3 -2
- package/dist/src/agent/embedded/run-turn.js +42 -6
- package/dist/src/agent/embedded/session-runner.js +1 -1
- package/dist/src/agent/embedded/session-tool-result-guard.js +5 -0
- package/dist/src/agent/embedded/types.d.ts +2 -0
- package/dist/src/agent/embedded/xopc-tools-bridge.js +2 -1
- package/dist/src/agent/external-tools/cliProvider.js +2 -2
- 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/extension-provider.js +1 -1
- package/dist/src/agent/external-tools/gateway-tools.js +1 -1
- package/dist/src/agent/external-tools/memory-provider.js +1 -1
- package/dist/src/agent/inbound/attachment-pipeline.js +3 -3
- package/dist/src/agent/independent-execution.d.ts +2 -0
- package/dist/src/agent/independent-execution.js +12 -0
- package/dist/src/agent/memory/compaction.js +1 -1
- package/dist/src/agent/orchestration/delegation-scope.d.ts +1 -0
- package/dist/src/agent/orchestration/delegation-scope.js +4 -1
- package/dist/src/agent/orchestration/loop-guard.js +6 -2
- package/dist/src/agent/prompt/response-language.js +1 -1
- package/dist/src/agent/prompt/sections/agent-identity.js +4 -6
- package/dist/src/agent/prompt/sections/behavior.d.ts +3 -2
- package/dist/src/agent/prompt/sections/behavior.js +34 -27
- package/dist/src/agent/prompt/sections/memory-skills.d.ts +1 -1
- package/dist/src/agent/prompt/sections/memory-skills.js +10 -11
- package/dist/src/agent/prompt/sections/messaging-runtime.d.ts +3 -2
- package/dist/src/agent/prompt/sections/messaging-runtime.js +21 -24
- package/dist/src/agent/prompt/sections/response-language.js +7 -6
- package/dist/src/agent/prompt/sections/tooling.js +11 -10
- package/dist/src/agent/prompt/service-prompt-builder.js +4 -2
- package/dist/src/agent/prompt/system-prompt-params.d.ts +2 -1
- package/dist/src/agent/prompt/system-prompt-params.js +2 -0
- package/dist/src/agent/prompt/system-prompt.d.ts +2 -1
- package/dist/src/agent/prompt/system-prompt.js +21 -18
- package/dist/src/agent/prompt/types.d.ts +2 -0
- package/dist/src/agent/sandbox/exec-policy.js +1 -1
- package/dist/src/agent/service/process-direct-streaming.js +2 -2
- package/dist/src/agent/service.js +12 -11
- package/dist/src/agent/session/session-config-service.js +2 -2
- package/dist/src/agent/session/session-inspector.js +1 -1
- package/dist/src/agent/skills/filesystem-watcher.js +1 -1
- package/dist/src/agent/skills/format-skills-prompt.js +5 -2
- package/dist/src/agent/skills/hub-pull.js +2 -2
- package/dist/src/agent/skills/index.js +1 -1
- package/dist/src/agent/skills/managed-store.js +1 -1
- package/dist/src/agent/skills/marketplace/adapters/store/adapter.js +1 -1
- package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +1 -1
- package/dist/src/agent/skills/skill-manage-ops.js +1 -1
- package/dist/src/agent/tasks/task-judge-service.js +6 -6
- package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.js +5 -0
- package/dist/src/agent/tools/dataBatch.d.ts +1 -0
- package/dist/src/agent/tools/dataBatch.js +4 -1
- package/dist/src/agent/tools/delegate-tool.d.ts +1 -0
- package/dist/src/agent/tools/delegate-tool.js +1 -0
- package/dist/src/agent/tools/error-tracker.js +4 -2
- package/dist/src/agent/tools/exec-command.d.ts +2 -0
- package/dist/src/agent/tools/exec-command.js +48 -3
- package/dist/src/agent/tools/factory.d.ts +1 -0
- package/dist/src/agent/tools/factory.js +23 -24
- package/dist/src/agent/tools/{delegation-parent-policy.d.ts → noninteractive-tool-policy.d.ts} +1 -1
- package/dist/src/agent/tools/{delegation-parent-policy.js → noninteractive-tool-policy.js} +4 -4
- package/dist/src/agent/tools/personal-attention-tool.js +1 -1
- package/dist/src/agent/tools/personal-read-tool.js +1 -1
- package/dist/src/agent/tools/personal-request-result-tool.js +1 -1
- package/dist/src/agent/tools/personal-request-tool.js +2 -2
- package/dist/src/agent/tools/personal-task-tool.js +6 -6
- package/dist/src/agent/tools/publish-artifacts.js +2 -2
- package/dist/src/agent/tools/review-workspace.js +1 -1
- package/dist/src/agent/tools/search/cache.d.ts +3 -1
- package/dist/src/agent/tools/search/cache.js +4 -1
- package/dist/src/agent/tools/search/providers/deepseek-protocol.d.ts +9 -0
- package/dist/src/agent/tools/search/providers/deepseek-protocol.js +84 -0
- package/dist/src/agent/tools/search/providers/deepseek.d.ts +9 -0
- package/dist/src/agent/tools/search/providers/deepseek.js +55 -0
- package/dist/src/agent/tools/search/providers/xopc-cloud.d.ts +2 -1
- package/dist/src/agent/tools/search/providers/xopc-cloud.js +36 -1
- package/dist/src/agent/tools/search/registry.d.ts +1 -0
- package/dist/src/agent/tools/search/registry.js +32 -6
- package/dist/src/agent/tools/search/request-gate.d.ts +13 -0
- package/dist/src/agent/tools/search/request-gate.js +41 -0
- package/dist/src/agent/tools/search/resolve-config.js +1 -1
- package/dist/src/agent/tools/search/search-info.d.ts +8 -0
- package/dist/src/agent/tools/search/search-info.js +34 -0
- package/dist/src/agent/tools/search/types.d.ts +19 -1
- package/dist/src/agent/tools/skills-tools.js +1 -1
- package/dist/src/agent/tools/task-collaboration-tool.js +3 -3
- package/dist/src/agent/tools/toolExposure.d.ts +3 -0
- package/dist/src/agent/tools/toolExposure.js +25 -0
- package/dist/src/agent/tools/web.js +8 -1
- package/dist/src/agent/tools/write.js +1 -1
- package/dist/src/agent/tools/xopc-use-tool.js +11 -7
- package/dist/src/agent/workflow/subagent-runner.d.ts +1 -0
- package/dist/src/agent/workflow/subagent-runner.js +3 -3
- package/dist/src/agent/workflow/workflow-child-tools.js +13 -8
- package/dist/src/agent/workspace-runtime/registry.js +1 -1
- package/dist/src/agent-catalog/capabilities.js +2 -2
- package/dist/src/agent-matching/delegation-service.js +1 -1
- package/dist/src/ai-assist/text-assist.js +1 -1
- package/dist/src/auth/oauth/xopc-cloud.js +2 -2
- 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 +1 -1
- package/dist/src/automations/draft/automation-draft-service.js +1 -1
- package/dist/src/automations/index.js +2 -2
- package/dist/src/automations/service/action-executor.js +2 -2
- package/dist/src/bootstrap/application-state.js +1 -1
- package/dist/src/capabilities/runtime/dispatcher.js +1 -1
- package/dist/src/capabilities/runtime/product.js +1 -1
- package/dist/src/capabilities/store-connector.js +2 -2
- package/dist/src/channels/index.js +1 -1
- package/dist/src/channels/manager.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/context.js +1 -1
- package/dist/src/cli/command-manifest.js +1 -1
- package/dist/src/cli/commands/agent.js +1 -1
- package/dist/src/cli/commands/agents.js +1 -1
- package/dist/src/cli/commands/channels.js +1 -1
- package/dist/src/cli/commands/connectors.js +1 -1
- package/dist/src/cli/commands/extension-marketplace.js +2 -2
- package/dist/src/cli/commands/models.js +2 -2
- package/dist/src/cli/commands/onboard/model.js +2 -2
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/cli/commands/search.d.ts +2 -2
- package/dist/src/cli/commands/search.js +8 -6
- package/dist/src/cli/commands/skills.js +1 -1
- package/dist/src/cli/utils/init-workspace-core.js +1 -1
- package/dist/src/computer/flows.js +1 -1
- package/dist/src/computer/model-adapter.d.ts +3 -0
- package/dist/src/computer/model-adapter.js +120 -3
- package/dist/src/computer/model-policy.d.ts +1 -1
- package/dist/src/computer/model-policy.js +13 -6
- package/dist/src/computer/runtime.js +1 -0
- package/dist/src/config/agent-model-intents.js +1 -1
- package/dist/src/config/agent-profile.js +2 -2
- package/dist/src/config/index.js +1 -1
- package/dist/src/config/loader.js +1 -1
- package/dist/src/config/models-json.d.ts +30 -24
- package/dist/src/config/models-json.js +3 -1
- package/dist/src/config/outbound-proxy.d.ts +11 -0
- package/dist/src/config/outbound-proxy.js +30 -0
- package/dist/src/config/rules.js +5 -0
- package/dist/src/config/schema.d.ts +29 -6
- package/dist/src/config/schema.js +25 -8
- package/dist/src/connectors/composio-sessions.js +1 -1
- package/dist/src/connectors/composio.js +1 -1
- package/dist/src/connectors/connected-source-ingestion.js +1 -1
- package/dist/src/connectors/connected-source-understanding.js +2 -2
- package/dist/src/connectors/health.js +1 -1
- package/dist/src/extensions/agent-plugins/auth.js +1 -1
- package/dist/src/extensions/agent-plugins/credentials.js +1 -1
- package/dist/src/extensions/agent-plugins/source-http-fetch.js +1 -1
- package/dist/src/extensions/agent-plugins/validation.js +1 -1
- package/dist/src/extensions/api.js +1 -1
- package/dist/src/extensions/install.js +1 -1
- package/dist/src/extensions/sdk/index.js +1 -1
- package/dist/src/extensions/update.js +1 -1
- package/dist/src/gateway/agents-admin.js +2 -2
- package/dist/src/gateway/config-tools-web.js +15 -4
- package/dist/src/gateway/file-path-classifier.js +1 -1
- package/dist/src/gateway/gateway-workflow-host.types.d.ts +3 -0
- package/dist/src/gateway/hono/lib/config-payload.d.ts +5 -0
- package/dist/src/gateway/hono/lib/config-payload.js +6 -1
- package/dist/src/gateway/hono/routes/commands-skills.js +3 -3
- package/dist/src/gateway/hono/routes/config-patch/gateway.js +7 -0
- package/dist/src/gateway/hono/routes/config-patch/misc.js +5 -5
- package/dist/src/gateway/hono/routes/connectors.js +1 -1
- package/dist/src/gateway/hono/routes/context-sources.js +2 -2
- package/dist/src/gateway/hono/routes/memory-learning.js +2 -2
- package/dist/src/gateway/hono/routes/models.js +7 -4
- package/dist/src/gateway/hono/routes/notes.js +2 -2
- package/dist/src/gateway/hono/routes/projects.js +4 -4
- package/dist/src/gateway/hono/routes/runtime-tools.js +1 -1
- package/dist/src/gateway/hono/routes/session-input-handler.js +2 -2
- package/dist/src/gateway/hono/routes/sessions.js +1 -1
- package/dist/src/gateway/hono/routes/tasks.js +1 -1
- package/dist/src/gateway/hono/routes/user-model-refresh.js +1 -1
- package/dist/src/gateway/hono/routes/user-model.js +6 -6
- package/dist/src/gateway/hono/routes/voice.js +1 -1
- package/dist/src/gateway/image-generation-setup.js +1 -1
- package/dist/src/gateway/lock.js +1 -1
- package/dist/src/gateway/media-access.js +1 -1
- package/dist/src/gateway/service/agent-runner.js +3 -3
- package/dist/src/gateway/service/config-coordinator.d.ts +8 -3
- package/dist/src/gateway/service/marketplace-service.js +2 -2
- package/dist/src/gateway/service/run-gateway-agent.js +1 -1
- package/dist/src/gateway/service/session-command-service.js +2 -2
- package/dist/src/gateway/service.js +33 -31
- package/dist/src/gateway/session-context-summary.js +4 -4
- package/dist/src/gateway/xopc-cloud-capability-setup.js +1 -1
- package/dist/src/home-intelligence/generator.js +2 -2
- package/dist/src/home-intelligence/host.js +2 -2
- package/dist/src/imports/compatibility.js +1 -1
- package/dist/src/imports/inventory.js +3 -3
- package/dist/src/imports/productImport.js +2 -2
- package/dist/src/imports/runtime.js +1 -1
- package/dist/src/infra/http-proxy-env.d.ts +3 -0
- package/dist/src/infra/http-proxy-env.js +22 -2
- package/dist/src/knowledge/connected-knowledge-pipeline.js +1 -1
- package/dist/src/knowledge-memory/repository.js +1 -1
- package/dist/src/local-apps/service.js +3 -3
- package/dist/src/memory-learning/source-learning.js +2 -2
- package/dist/src/notes/index.js +1 -1
- package/dist/src/notes/service.js +3 -3
- package/dist/src/personal-agent/capability-service.js +2 -2
- package/dist/src/personal-agent/communication.d.ts +2 -1
- package/dist/src/personal-agent/communication.js +11 -2
- package/dist/src/personal-agent/persona.d.ts +2 -1
- package/dist/src/personal-agent/persona.js +3 -2
- package/dist/src/personal-agent/proactivity/routes.js +1 -1
- package/dist/src/personal-agent/proactivity/service.js +5 -5
- package/dist/src/personal-agent/prompt-context.js +7 -7
- package/dist/src/personal-agent/prompts.d.ts +2 -0
- package/dist/src/personal-agent/prompts.js +69 -7
- package/dist/src/personal-agent/reply-composer.js +8 -8
- package/dist/src/personal-agent/reply-style.d.ts +4 -2
- package/dist/src/personal-agent/reply-style.js +19 -3
- package/dist/src/personal-agent/request-delivery.js +2 -2
- package/dist/src/personal-agent/request-service.js +19 -14
- package/dist/src/personal-agent/result-reader.js +1 -1
- package/dist/src/personal-agent/service.js +3 -3
- package/dist/src/personal-agent/task-cancel.js +1 -1
- package/dist/src/pets/loopi-artwork.d.ts +2 -0
- package/dist/src/pets/loopi-artwork.js +36 -0
- package/dist/src/pets/pointer.d.ts +6 -0
- package/dist/src/pets/pointer.js +16 -0
- package/dist/src/platform/index.js +1 -1
- package/dist/src/project-trust/trust-store.d.ts +5 -0
- package/dist/src/project-trust/trust-store.js +7 -1
- package/dist/src/projects/index.js +1 -1
- package/dist/src/projects/project-agent-suggestion.js +1 -1
- package/dist/src/projects/project-service.js +1 -1
- package/dist/src/projects/project-skill-service.js +2 -2
- package/dist/src/projects/workspace.js +1 -1
- package/dist/src/providers/cloud-thinking.d.ts +3 -0
- package/dist/src/providers/cloud-thinking.js +13 -0
- package/dist/src/providers/index.js +3 -3
- package/dist/src/providers/model-catalog-persistence.js +1 -1
- package/dist/src/providers/model-registry.js +6 -1
- package/dist/src/providers/model-supplements.d.ts +0 -2
- package/dist/src/providers/model-supplements.js +2 -18
- package/dist/src/providers/register-runtime-providers.js +3 -0
- package/dist/src/providers/xopc-cloud-credit-budget.d.ts +1 -0
- package/dist/src/providers/xopc-cloud-credit-budget.js +4 -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/index.js +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/store.js +2 -2
- package/dist/src/share/hosted-session-share.js +2 -2
- package/dist/src/share/session-share-service.js +1 -1
- package/dist/src/tasks/capabilities/read.js +2 -2
- package/dist/src/tasks/capabilities/write.js +2 -2
- package/dist/src/tasks/home-query-service.js +1 -1
- package/dist/src/tasks/index.js +3 -3
- package/dist/src/tasks/task-allocation-service.js +56 -45
- package/dist/src/tasks/task-application-service.js +11 -7
- package/dist/src/tasks/task-collaboration-delivery.js +1 -1
- package/dist/src/tasks/task-context-assembler.js +2 -2
- package/dist/src/tasks/task-contract-planner.js +21 -6
- package/dist/src/tasks/task-handoff-service.js +2 -2
- package/dist/src/tasks/task-handoff.js +5 -5
- package/dist/src/tasks/task-language.d.ts +2 -0
- package/dist/src/tasks/task-language.js +13 -2
- package/dist/src/tasks/task-main-update-decision-service.js +3 -3
- package/dist/src/tasks/task-model-call.js +1 -1
- package/dist/src/tasks/task-research-result.js +4 -4
- package/dist/src/tasks/task-result-delivery-repository.js +1 -1
- package/dist/src/tasks/task-result-delivery-service.js +2 -2
- package/dist/src/tasks/task-run-coordinator.js +9 -5
- package/dist/src/tasks/task-run-dispatcher.js +3 -2
- package/dist/src/tui/backends/embedded-backend.js +7 -7
- package/dist/src/tui/tui-commands.js +2 -2
- package/dist/src/tui/tui-skills-autocomplete.js +1 -1
- package/dist/src/tui/tui-startup-resources.js +3 -3
- package/dist/src/tui/tui.js +2 -2
- package/dist/src/user-context/access-policy.js +2 -2
- package/dist/src/user-model/bootstrap.js +1 -1
- package/dist/src/user-model/capture/executor.js +1 -1
- package/dist/src/user-model/index.js +2 -2
- package/dist/src/voice/realtime/memory-context.js +5 -5
- package/dist/src/voice/realtime/persona-context.js +1 -1
- package/dist/src/voice/realtime/runtime.js +1 -1
- package/dist/src/work-discovery/incremental-repository.js +1 -1
- package/dist/src/work-discovery/service.js +7 -7
- package/dist/src/workflows/context/workflow-context.js +1 -1
- package/dist/src/workflows/service/workflow-run-service.js +7 -8
- package/package.json +7 -3
- package/dist/gateway/static/root/assets/activity-YogQEteU.js +0 -1
- package/dist/gateway/static/root/assets/activity-store-DtTSRUyF.js +0 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-0GXoU7WL.js +0 -1
- package/dist/gateway/static/root/assets/agent-plugin-dialog-BxDqL7uc.js +0 -1
- package/dist/gateway/static/root/assets/agents-CYmRcXr-.js +0 -77
- package/dist/gateway/static/root/assets/app-chrome-BeB4KgOf.js +0 -1
- package/dist/gateway/static/root/assets/app-management-settings-panel-FhWeowCY.js +0 -1
- package/dist/gateway/static/root/assets/appearance-settings-DXin262V.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-2M_l4Naz.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-CVIWgoTx.js +0 -6
- package/dist/gateway/static/root/assets/browser-automation-inputs-uVEhZWHz.js +0 -1
- package/dist/gateway/static/root/assets/browser-automations-page-CEFnpvTO.js +0 -3
- package/dist/gateway/static/root/assets/browser-settings-page-sQpJic5b.js +0 -3
- package/dist/gateway/static/root/assets/button-aIC072nz.js +0 -1
- package/dist/gateway/static/root/assets/capabilities-BSB93QBR.js +0 -1
- package/dist/gateway/static/root/assets/capabilities-page-BKkN4sTh.js +0 -2
- package/dist/gateway/static/root/assets/capabilities-settings-panel-DCZTR8Hu.js +0 -8
- package/dist/gateway/static/root/assets/capability-header-actions-D0HwmxyW.js +0 -1
- package/dist/gateway/static/root/assets/channels-DRraXYSd.js +0 -1
- package/dist/gateway/static/root/assets/chat-terminal-dock-DpM489kK.js +0 -36
- package/dist/gateway/static/root/assets/chevron-left-DqFhpbvK.js +0 -1
- package/dist/gateway/static/root/assets/chevron-right-BweFrslA.js +0 -1
- package/dist/gateway/static/root/assets/circle-alert-BEjgurr2.js +0 -1
- package/dist/gateway/static/root/assets/circle-dashed-8qMD7gHf.js +0 -1
- package/dist/gateway/static/root/assets/circle-dot-BAseJTrF.js +0 -1
- package/dist/gateway/static/root/assets/cloud-C4-yfnnk.js +0 -1
- package/dist/gateway/static/root/assets/computer-settings-page-D0ir9aA1.js +0 -1
- package/dist/gateway/static/root/assets/connector-service-page-Y5SYaiJO.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-DRSbj4gn.js +0 -1
- package/dist/gateway/static/root/assets/copy-text-row-C7egVuKr.js +0 -1
- package/dist/gateway/static/root/assets/date-formatters-CUZAyDEg.js +0 -1
- package/dist/gateway/static/root/assets/date-picker-DyUP-8hR.js +0 -1
- package/dist/gateway/static/root/assets/dependency-picker-QF9qLWIG.js +0 -1
- package/dist/gateway/static/root/assets/desktop-pet-Qfns4SO-.js +0 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-CuITd-Xa.js +0 -1
- package/dist/gateway/static/root/assets/desktop-pet-sprite-BP6iMVw1.js +0 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-C8RPqM_F.js +0 -1
- package/dist/gateway/static/root/assets/directory-picker-path-field-DnD9eyoU.js +0 -1
- package/dist/gateway/static/root/assets/dist-C3DSFZCi.js +0 -1
- package/dist/gateway/static/root/assets/electron-env-Dit0bHgy.js +0 -1
- package/dist/gateway/static/root/assets/extension-debug-page-B5ikNsSj.js +0 -1
- package/dist/gateway/static/root/assets/extension-page-D-PBMAtT.js +0 -1
- package/dist/gateway/static/root/assets/extension-provider-CdlACvkE.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-BPUYMNb0.js +0 -1
- package/dist/gateway/static/root/assets/form-field-width-DJw_jULe.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-uEdmIROn.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-BKj4PQs4.js +0 -1
- package/dist/gateway/static/root/assets/globe-DSSGFWFn.js +0 -1
- package/dist/gateway/static/root/assets/home-page-D1ZBF3me.js +0 -2
- package/dist/gateway/static/root/assets/image-generation-api-BB3D6OV1.js +0 -1
- package/dist/gateway/static/root/assets/imports-page-BCcWIxOO.js +0 -1
- package/dist/gateway/static/root/assets/index-Bo70AuAq.js +0 -260
- package/dist/gateway/static/root/assets/index-BxoR4_xr.css +0 -1
- package/dist/gateway/static/root/assets/index.module-Cd9ENXfk.js +0 -1
- package/dist/gateway/static/root/assets/interaction-BdhHBbYa.js +0 -1
- package/dist/gateway/static/root/assets/is-masked-secret-DOkL5b_X.js +0 -1
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-Bc9UWPqr.js +0 -1
- package/dist/gateway/static/root/assets/loader-circle-CifKLtgG.js +0 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-jnK1j04U.js +0 -1
- package/dist/gateway/static/root/assets/local-apps-page-DpN8UN_Y.js +0 -1
- package/dist/gateway/static/root/assets/logs-page-DBR5mfxw.js +0 -2
- package/dist/gateway/static/root/assets/loopi-C09I2mNj.css +0 -1
- package/dist/gateway/static/root/assets/loopi-Djb8XU3l.js +0 -1
- package/dist/gateway/static/root/assets/management-settings-rs2cdb5f.js +0 -1
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-Bl4kOOZT.js +0 -1
- package/dist/gateway/static/root/assets/message-square-plus-XP0tGdlV.js +0 -1
- package/dist/gateway/static/root/assets/messages-B7VtMXec.js +0 -3
- package/dist/gateway/static/root/assets/mic-CuUb7zc-.js +0 -1
- package/dist/gateway/static/root/assets/minimize-2-DtOGrlpo.js +0 -1
- package/dist/gateway/static/root/assets/models-hub-cache-D0vR7vex.js +0 -1
- package/dist/gateway/static/root/assets/note-detail-panel-B7R-cZWE.js +0 -5
- package/dist/gateway/static/root/assets/notes-api-DZkezSIy.js +0 -2
- package/dist/gateway/static/root/assets/notes-page-DY9MNatd.js +0 -8
- package/dist/gateway/static/root/assets/page-context-capture-button-C-X8J1IO.js +0 -1
- package/dist/gateway/static/root/assets/pencil-DmIY3Oa-.js +0 -1
- package/dist/gateway/static/root/assets/personal-page-CIZWUoUh.js +0 -1
- package/dist/gateway/static/root/assets/popover-select-DGKUpVsz.js +0 -1
- package/dist/gateway/static/root/assets/preview-open-alternatives-BJU2fmPn.js +0 -1
- package/dist/gateway/static/root/assets/product-open-page-CYV_8zRl.js +0 -1
- package/dist/gateway/static/root/assets/product-preview-content-DfQ9h_YX.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-B_fYXcAW.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-CHdeAtpp.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-CbJWGHW_.js +0 -1
- package/dist/gateway/static/root/assets/rotate-ccw-JM1TBLpp.js +0 -1
- package/dist/gateway/static/root/assets/rotate-cw-LIg3Am9S.js +0 -1
- package/dist/gateway/static/root/assets/runtime-tools-settings-panel-jqYXsCuk.js +0 -1
- package/dist/gateway/static/root/assets/schema-form-DNXZLVqh.js +0 -1
- package/dist/gateway/static/root/assets/search-DA7gz22f.js +0 -1
- package/dist/gateway/static/root/assets/secret-input-BxWHx6J6.js +0 -1
- package/dist/gateway/static/root/assets/send-session-input-NpLYu1ip.js +0 -1
- package/dist/gateway/static/root/assets/session-manager-Bb9pevyM.js +0 -16
- package/dist/gateway/static/root/assets/sessions-page-DrGCnBhV.js +0 -1
- package/dist/gateway/static/root/assets/settings-2-D-csvaET.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-B61Eh7eB.js +0 -1
- package/dist/gateway/static/root/assets/settings-form-draft-Dy10ldo8.js +0 -1
- package/dist/gateway/static/root/assets/settings-form-section-num14vSv.js +0 -1
- package/dist/gateway/static/root/assets/settings-shell-dialog-layer-BU3UuiJr.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-DaU9o0Ll.js +0 -1
- package/dist/gateway/static/root/assets/share-link-dialog-BhjQPZbF.js +0 -1
- package/dist/gateway/static/root/assets/share-preview-page-LERhIwgz.js +0 -2
- package/dist/gateway/static/root/assets/shares-api-CgsiMdCX.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-DmvyqIyT.js +0 -1
- package/dist/gateway/static/root/assets/skeleton-BI5TyibZ.js +0 -1
- package/dist/gateway/static/root/assets/skill-api-plToSoFo.js +0 -1
- package/dist/gateway/static/root/assets/skill-api-utils-C7V4JVXM.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-BFw81Ar6.js +0 -1
- package/dist/gateway/static/root/assets/skill-wire-pattern-BPpeIcCi.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-BLUsxGOo.js +0 -2
- package/dist/gateway/static/root/assets/style-1FPsMO2E.js +0 -7
- package/dist/gateway/static/root/assets/system-settings-panel-DL3WXRnL.js +0 -1
- package/dist/gateway/static/root/assets/tab-completion-input-D64VNmiA.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-DWM5xGbe.js +0 -2
- package/dist/gateway/static/root/assets/theme-store-CPdeCbZI.js +0 -1
- package/dist/gateway/static/root/assets/tracing-settings-page-m51enJFx.js +0 -1
- package/dist/gateway/static/root/assets/tunnel-api-B5I53jzk.js +0 -1
- package/dist/gateway/static/root/assets/usage-page-B7qyfnMN.js +0 -1
- package/dist/gateway/static/root/assets/use-async-resource-GrnWNwMZ.js +0 -1
- package/dist/gateway/static/root/assets/use-autosave-C2__K1-y.js +0 -1
- package/dist/gateway/static/root/assets/use-composer-attachments-61W-5Q6m.js +0 -2
- package/dist/gateway/static/root/assets/use-file-preview-expanded-DZUWxdhm.js +0 -2
- package/dist/gateway/static/root/assets/user-model-page-DkIuYpuf.js +0 -2
- package/dist/gateway/static/root/assets/voice-api-key-field-DB--pFJX.js +0 -1
- package/dist/gateway/static/root/assets/voice-transcribe-api-Cp2uDvFO.js +0 -1
- package/dist/gateway/static/root/assets/work-discovery-overlay-Blwp7T-_.js +0 -1
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-Czfs5XFH.js +0 -3
- package/dist/gateway/static/root/assets/workflows-page-RN_QXcGY.js +0 -6
- package/dist/gateway/static/root/assets/workspace-api-lHTRLje0.js +0 -2
- package/dist/gateway/static/root/assets/xopc-cloud-account-card-D31rz9OQ.js +0 -1
- package/dist/src/agent/bootstrap/project-agents-context.d.ts +0 -2
- package/dist/src/agent/bootstrap/project-agents-context.js +0 -30
|
@@ -9,15 +9,25 @@ export interface CodingVerificationEvidence {
|
|
|
9
9
|
logPath?: string;
|
|
10
10
|
}
|
|
11
11
|
export declare function toolResultFailed(result: AgentToolResult<unknown>, isError?: boolean): boolean;
|
|
12
|
+
type VerificationOptions = {
|
|
13
|
+
required?: boolean;
|
|
14
|
+
toolNames?: string[];
|
|
15
|
+
workspace?: string;
|
|
16
|
+
};
|
|
12
17
|
/** One run owns its evidence; transcript tool results are the durable record. */
|
|
13
18
|
export declare class RunVerification {
|
|
14
19
|
private readonly snapshot;
|
|
20
|
+
private readonly options;
|
|
15
21
|
private revision?;
|
|
16
22
|
private changed;
|
|
23
|
+
private proseOnly;
|
|
17
24
|
private readonly before;
|
|
18
25
|
private readonly evidence;
|
|
19
|
-
|
|
20
|
-
|
|
26
|
+
private readonly successfulCommands;
|
|
27
|
+
private readonly editedProse;
|
|
28
|
+
private readonly inspectedProse;
|
|
29
|
+
constructor(snapshot: () => Promise<string | undefined>, options?: VerificationOptions);
|
|
30
|
+
static open(workspace: string, options?: VerificationOptions): Promise<RunVerification>;
|
|
21
31
|
restore(value: unknown, includeEvidence: boolean): void;
|
|
22
32
|
beforeTool(toolCallId: string, toolName?: string): Promise<void>;
|
|
23
33
|
afterTool(context: AfterToolCallContext): Promise<{
|
|
@@ -25,10 +35,15 @@ export declare class RunVerification {
|
|
|
25
35
|
isError: boolean;
|
|
26
36
|
}>;
|
|
27
37
|
private observeRevision;
|
|
38
|
+
private pendingEvidence;
|
|
39
|
+
private hasTool;
|
|
40
|
+
modelGuidance(): string;
|
|
28
41
|
pendingContext(): Promise<string>;
|
|
29
42
|
summary(): Promise<{
|
|
30
43
|
changed: boolean;
|
|
44
|
+
proseOnly: boolean;
|
|
31
45
|
revision?: string;
|
|
32
46
|
evidence: CodingVerificationEvidence[];
|
|
33
47
|
}>;
|
|
34
48
|
}
|
|
49
|
+
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { readWorkspaceRevision } from "./workspace-revision.js";
|
|
2
2
|
import { classifyVerificationCommand } from "./verification-command.js";
|
|
3
|
+
import { extname, resolve } from "node:path";
|
|
3
4
|
//#region src/agent/coding/run-verification.ts
|
|
4
5
|
const READ_ONLY_TOOLS = new Set([
|
|
5
6
|
"read_file",
|
|
@@ -22,23 +23,44 @@ function toolResultFailed(result, isError = false) {
|
|
|
22
23
|
"interrupted"
|
|
23
24
|
].includes(String(details.status)) || details.timedOut === true || typeof details.exitCode === "number" && details.exitCode !== 0;
|
|
24
25
|
}
|
|
26
|
+
function mutationPaths(name, args) {
|
|
27
|
+
return (name === "write_file" ? [args.path] : name === "apply_patch" ? [...String(args.patch ?? "").matchAll(/^\*\*\* (?:Add File|Update File|Delete File|Move to): (.+)$/gm)].map((match) => match[1].trim()) : []).filter((path) => typeof path === "string");
|
|
28
|
+
}
|
|
29
|
+
function editsOnlyProse(name, args) {
|
|
30
|
+
const paths = mutationPaths(name, args);
|
|
31
|
+
return paths.length > 0 && paths.every((path) => typeof path === "string" && [
|
|
32
|
+
".md",
|
|
33
|
+
".txt",
|
|
34
|
+
".rst",
|
|
35
|
+
".adoc"
|
|
36
|
+
].includes(extname(path).toLowerCase()));
|
|
37
|
+
}
|
|
25
38
|
/** One run owns its evidence; transcript tool results are the durable record. */
|
|
26
39
|
var RunVerification = class RunVerification {
|
|
27
40
|
revision;
|
|
28
41
|
changed = false;
|
|
42
|
+
proseOnly = true;
|
|
29
43
|
before = /* @__PURE__ */ new Map();
|
|
30
44
|
evidence = /* @__PURE__ */ new Map();
|
|
31
|
-
|
|
45
|
+
successfulCommands = /* @__PURE__ */ new Map();
|
|
46
|
+
editedProse = /* @__PURE__ */ new Set();
|
|
47
|
+
inspectedProse = /* @__PURE__ */ new Map();
|
|
48
|
+
constructor(snapshot, options = {}) {
|
|
32
49
|
this.snapshot = snapshot;
|
|
50
|
+
this.options = options;
|
|
33
51
|
}
|
|
34
|
-
static async open(workspace) {
|
|
35
|
-
const run = new RunVerification(() => readWorkspaceRevision(workspace)
|
|
52
|
+
static async open(workspace, options = {}) {
|
|
53
|
+
const run = new RunVerification(() => readWorkspaceRevision(workspace), {
|
|
54
|
+
...options,
|
|
55
|
+
workspace
|
|
56
|
+
});
|
|
36
57
|
run.revision = await run.snapshot();
|
|
37
58
|
return run;
|
|
38
59
|
}
|
|
39
60
|
restore(value, includeEvidence) {
|
|
40
61
|
const checkpoint = record(value);
|
|
41
62
|
this.changed ||= checkpoint.changed === true || typeof checkpoint.revision === "string" && checkpoint.revision !== this.revision;
|
|
63
|
+
if (this.changed) this.proseOnly &&= checkpoint.proseOnly === true && typeof checkpoint.revision === "string" && checkpoint.revision === this.revision;
|
|
42
64
|
if (!includeEvidence) return;
|
|
43
65
|
for (const raw of Array.isArray(checkpoint.evidence) ? checkpoint.evidence : []) {
|
|
44
66
|
const item = record(raw);
|
|
@@ -63,10 +85,14 @@ var RunVerification = class RunVerification {
|
|
|
63
85
|
const before = this.before.get(toolCall.id);
|
|
64
86
|
this.before.delete(toolCall.id);
|
|
65
87
|
const revision = READ_ONLY_TOOLS.has(toolCall.name) ? this.revision : await this.snapshot();
|
|
66
|
-
this.observeRevision(revision);
|
|
67
88
|
const details = record(result.details);
|
|
68
89
|
const isError = toolResultFailed(result, context.isError);
|
|
69
|
-
|
|
90
|
+
const mutation = toolCall.name === "apply_patch" || toolCall.name === "write_file";
|
|
91
|
+
this.observeRevision(revision, mutation && !isError);
|
|
92
|
+
if (mutation && !isError) this.proseOnly &&= editsOnlyProse(toolCall.name, record(args));
|
|
93
|
+
if (mutation && !isError) this.changed = true;
|
|
94
|
+
if (mutation && !isError && this.proseOnly) for (const path of mutationPaths(toolCall.name, record(args))) this.editedProse.add(resolve(this.options.workspace ?? ".", path));
|
|
95
|
+
if (toolCall.name === "read_file" && !isError && revision && revision === before && details.truncated === false && details.offset === 1 && typeof record(args).path === "string") this.inspectedProse.set(resolve(this.options.workspace ?? ".", record(args).path), revision);
|
|
70
96
|
const command = toolCall.name === "exec_command" || toolCall.name === "managed_job" || toolCall.name === "language_diagnostics" || toolCall.name === "review_workspace" ? String(details.command ?? record(args).cmd ?? "") : "";
|
|
71
97
|
const kind = toolCall.name === "review_workspace" && details.complete === true ? "diff-review" : toolCall.name === "language_diagnostics" && details.diagnosticEngine === "typescript" ? "check" : classifyVerificationCommand(command);
|
|
72
98
|
let verification;
|
|
@@ -85,35 +111,78 @@ var RunVerification = class RunVerification {
|
|
|
85
111
|
};
|
|
86
112
|
this.evidence.set(command, verification);
|
|
87
113
|
}
|
|
114
|
+
const pending = this.pendingEvidence();
|
|
115
|
+
const commandKey = JSON.stringify([record(args).cwd ?? "", command]);
|
|
116
|
+
const repeatedSuccess = toolCall.name === "exec_command" && !isError && revision && this.successfulCommands.get(commandKey) === revision;
|
|
117
|
+
if (toolCall.name === "exec_command" && !isError && details.exitCode === 0 && revision === before && revision) this.successfulCommands.set(commandKey, revision);
|
|
118
|
+
const verificationHint = this.options.required !== false && !kind && toolCall.name === "exec_command" && pending.includes("check") ? "This command did not record a check; repeating it will not supply missing evidence. Use the existing test runner as a standalone command. If the task has no tests and needs executable assertions, write one test file and run node --test path/to/file.test.mjs (never combine --test with --eval/-e); do not create another competing script. Finish requested files first; use cwd instead of cd, chains, or pipes." : "";
|
|
119
|
+
const receipt = this.options.required !== false && this.changed && (mutation || command) ? [
|
|
120
|
+
`Verification pending for current files: ${pending.length ? pending.map((item) => item === "diff-review" ? this.hasTool("review_workspace") ? "review_workspace" : "content inspection" : "standalone assertion test").join(", ") : "none"}.`,
|
|
121
|
+
verificationHint,
|
|
122
|
+
verification?.kind === "check" && verification.status === "failed" ? "Resolve the failing assertion against current requirements and source facts before rerunning. Fix the discrepancy, not the expected value blindly; inspect the environment only for an actual runtime error." : "",
|
|
123
|
+
repeatedSuccess ? "This exact command already succeeded on the same workspace revision. Reuse its result; rerun only for a concrete freshness requirement or changed inputs." : ""
|
|
124
|
+
].filter(Boolean).join(" ") : "";
|
|
88
125
|
return {
|
|
89
126
|
isError,
|
|
90
127
|
result: {
|
|
91
128
|
...result,
|
|
129
|
+
content: [...result.content, ...receipt ? [{
|
|
130
|
+
type: "text",
|
|
131
|
+
text: receipt
|
|
132
|
+
}] : []],
|
|
92
133
|
details: {
|
|
93
134
|
...details,
|
|
94
135
|
workspaceRevision: revision ?? null,
|
|
95
136
|
workspaceChanged: this.changed,
|
|
96
|
-
...verification ? { verification } : {}
|
|
137
|
+
...verification ? { verification } : {},
|
|
138
|
+
...this.options.required !== false && this.changed ? {
|
|
139
|
+
verificationPending: pending,
|
|
140
|
+
...verificationHint ? { verificationHint } : {}
|
|
141
|
+
} : {}
|
|
97
142
|
}
|
|
98
143
|
}
|
|
99
144
|
};
|
|
100
145
|
}
|
|
101
|
-
observeRevision(revision) {
|
|
102
|
-
if (this.revision && revision !== this.revision)
|
|
146
|
+
observeRevision(revision, knownMutation = false) {
|
|
147
|
+
if (this.revision && revision !== this.revision) {
|
|
148
|
+
this.changed = true;
|
|
149
|
+
if (!knownMutation) this.proseOnly = false;
|
|
150
|
+
}
|
|
103
151
|
this.revision = revision;
|
|
104
152
|
}
|
|
153
|
+
pendingEvidence() {
|
|
154
|
+
const current = [...this.evidence.values()].filter((item) => item.revision && item.revision === this.revision);
|
|
155
|
+
return (this.proseOnly && this.changed && !current.some((item) => item.kind === "check" && item.status === "failed") ? ["diff-review"] : ["check", "diff-review"]).filter((kind) => !current.some((item) => item.kind === kind && item.status === "passed") || current.some((item) => item.kind === kind && item.status === "failed"));
|
|
156
|
+
}
|
|
157
|
+
hasTool(name) {
|
|
158
|
+
return this.options.toolNames === void 0 || this.options.toolNames.includes(name);
|
|
159
|
+
}
|
|
160
|
+
modelGuidance() {
|
|
161
|
+
if (this.options.required === false) {
|
|
162
|
+
if (!this.changed || !this.proseOnly || this.editedProse.size === 0) return "";
|
|
163
|
+
return !!this.revision && [...this.editedProse].every((path) => this.inspectedProse.get(path) === this.revision) ? "Document changes have been read back in full at the current revision. If all requested requirements are met, give the final answer now. Do not add Git, byte, checksum, or executable checks for wording alone; honor any explicitly requested validation or delivery. State limitations honestly; inspection is not a behavior-test receipt." : "For this prose-only edit, finish the requested wording, then inspect final content once with an available read tool. No assertion script, byte dump, or extra Git inspection is needed. Deliver the result with any capability limitations.";
|
|
164
|
+
}
|
|
165
|
+
const focus = "Read the inputs named by the current request directly before listing. Read another file only for a specific unresolved dependency; no neighboring datasets or Git history. Preserve the latest requested root fields, types and units; replace superseded scope. Reuse known facts and update affected files only.";
|
|
166
|
+
if (!this.changed) return `Execution phase: focused implementation. ${focus} Choose the existing test runner; run checks standalone without shell chains/pipes. No assertion scripts for prose.`;
|
|
167
|
+
const pending = this.pendingEvidence();
|
|
168
|
+
const delivery = this.hasTool("exec_command") ? "Link completed workspace files directly. Publish downloadable copies only when requested: plan outputs on the necessary final check in advance, use reuseVerification:true with outputs to reuse an unchanged successful check; never repeat execution just to attach files. Reuse receipts; source, tests and helpers stay in the workspace unless explicitly requested." : this.hasTool("publish_artifacts") ? "Use publish_artifacts only for completed requested deliverables missing a successful receipt, never for blocked edits or source files." : "";
|
|
169
|
+
if (pending.length === 0) return `Execution phase: verification complete for the observed workspace revision. If all requested fields and deliverables are complete, give the final answer now, briefly linking them with verification and any limitation. Do not repeat input tables or the work log. ${delivery} Stop calling tools when requirements and valid evidence are complete. Do not rerun passing checks, regenerate outputs, publish extra copies, inspect Git/checksums, or edit for discretionary polish. Further edits invalidate current evidence; passing checks alone do not establish that all user requirements are met.`;
|
|
170
|
+
const missing = pending.map((kind) => kind === "check" ? "a successful standalone assertion test" : this.hasTool("review_workspace") ? "review_workspace" : "content inspection with available read tools");
|
|
171
|
+
return `Execution phase: complete outstanding requirements, then verify once with a direct command (no cd, chains, or pipes). ${this.proseOnly ? "Inspect final prose once; no assertion script is required." : "Finish outstanding requested changes, then check the final contract once."} Still missing: ${missing.join(", ")}. Reuse valid evidence; report unavailable verification.`;
|
|
172
|
+
}
|
|
105
173
|
async pendingContext() {
|
|
106
174
|
this.observeRevision(await this.snapshot());
|
|
107
|
-
if (!this.changed) return "";
|
|
175
|
+
if (!this.changed || this.options.required === false) return "";
|
|
108
176
|
const current = [...this.evidence.values()].filter((item) => item.revision && item.revision === this.revision);
|
|
109
|
-
const checked =
|
|
177
|
+
const checked = !this.pendingEvidence().includes("check");
|
|
110
178
|
const reviewed = current.some((item) => item.kind === "diff-review" && item.status === "passed");
|
|
111
179
|
const failed = current.filter((item) => item.kind === "check" && item.status === "failed");
|
|
180
|
+
if (!this.pendingEvidence().some((kind) => kind === "check" ? this.hasTool("exec_command") || this.hasTool("language_diagnostics") : this.hasTool("review_workspace"))) return "";
|
|
112
181
|
if (checked && reviewed && failed.length === 0) return "";
|
|
113
182
|
return [
|
|
114
183
|
"Workspace changes still need verification against the current files.",
|
|
115
|
-
...!reviewed ? ["Inspect tracked and untracked changes using `review_workspace`."] : [],
|
|
116
|
-
...!checked ? ["Run the smallest meaningful check as a direct command using exec_command."] : [],
|
|
184
|
+
...!reviewed ? [this.hasTool("review_workspace") ? "Inspect tracked and untracked changes using `review_workspace`." : "Inspect final content with available read tools; report any verification that cannot be completed."] : [],
|
|
185
|
+
...!checked ? [this.hasTool("exec_command") ? "Run the smallest meaningful check as a direct command using exec_command." : "A behavior check is still missing; use available verification tools or report why it is unavailable."] : [],
|
|
117
186
|
...failed.map((item) => `Resolve or explicitly report the failed check: ${item.command}`),
|
|
118
187
|
"If a check is unavailable or unrelated to the requested change, report what remains unverified and why. Do not claim verified completion."
|
|
119
188
|
].join("\n");
|
|
@@ -122,6 +191,7 @@ var RunVerification = class RunVerification {
|
|
|
122
191
|
this.observeRevision(await this.snapshot());
|
|
123
192
|
return {
|
|
124
193
|
changed: this.changed,
|
|
194
|
+
proseOnly: this.proseOnly,
|
|
125
195
|
revision: this.revision,
|
|
126
196
|
evidence: [...this.evidence.values()].map((item) => ({
|
|
127
197
|
...item,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { getSqliteDatabase, init_transaction } from "../../storage/sqlite/transaction.js";
|
|
2
2
|
import { init_collaboration_rule_repository, listCollaborationRules } from "../../storage/sqlite/collaboration-rule-repository.js";
|
|
3
|
-
import { canUseKnowledge } from "../../knowledge-memory/usage-policy.js";
|
|
4
|
-
import { listKnowledgeItems, searchKnowledgeItems } from "../../knowledge-memory/repository.js";
|
|
5
|
-
import "../../knowledge-memory/index.js";
|
|
6
3
|
import { listUserAssertions } from "../../user-model/repository.js";
|
|
7
4
|
import { calculateExecutionValue } from "../../user-model/importance.js";
|
|
8
5
|
import { canUseAssertion } from "../../user-model/usage-policy.js";
|
|
6
|
+
import { canUseKnowledge } from "../../knowledge-memory/usage-policy.js";
|
|
7
|
+
import { listKnowledgeItems, searchKnowledgeItems } from "../../knowledge-memory/repository.js";
|
|
8
|
+
import "../../knowledge-memory/index.js";
|
|
9
9
|
import { retrievalLexicalSimilarity } from "../../retrieval/textFeatures.js";
|
|
10
10
|
import { getExecutionContextFeedbackScores } from "./audit.js";
|
|
11
11
|
import { buildUserContextBlock } from "../memory/context-fence.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { TaskRepository, init_task_repository } from "../../tasks/task-repository.js";
|
|
2
2
|
import { getSessionMetadata } from "../../storage/sqlite/session-read-repository.js";
|
|
3
3
|
import { init_sqlite } from "../../storage/sqlite/index.js";
|
|
4
|
+
import { TaskReadModelProjector } from "../../tasks/task-read-model-projector.js";
|
|
5
|
+
import { ProjectStore } from "../../projects/project-store.js";
|
|
6
|
+
import { getProjectForSession, getProjectWorkspacePathForSession } from "../../projects/workspace.js";
|
|
4
7
|
import { canUseKnowledge } from "../../knowledge-memory/usage-policy.js";
|
|
5
8
|
import { listKnowledgeItems, searchKnowledgeItems } from "../../knowledge-memory/repository.js";
|
|
6
9
|
import "../../knowledge-memory/index.js";
|
|
7
|
-
import { ProjectStore } from "../../projects/project-store.js";
|
|
8
|
-
import { getProjectForSession, getProjectWorkspacePathForSession } from "../../projects/workspace.js";
|
|
9
|
-
import { TaskReadModelProjector } from "../../tasks/task-read-model-projector.js";
|
|
10
10
|
import { sanitizeForPromptLiteral } from "../prompt/sanitize-for-prompt.js";
|
|
11
11
|
import { LocalAppStore } from "../../local-apps/store.js";
|
|
12
12
|
//#region src/agent/context/project-context.ts
|
|
@@ -53,18 +53,25 @@ function createAgentProfileContextExtension(conversationId) {
|
|
|
53
53
|
previous: data?.configuration?.[key] ?? null,
|
|
54
54
|
current: configuration[key] ?? null
|
|
55
55
|
}]));
|
|
56
|
+
if (!changed) return;
|
|
57
|
+
const projected = Object.fromEntries(Object.entries(configuration).filter(([key]) => [
|
|
58
|
+
"agentId",
|
|
59
|
+
"name",
|
|
60
|
+
"role"
|
|
61
|
+
].includes(key) || changedFields.includes(key)));
|
|
56
62
|
return {
|
|
57
63
|
role: "custom",
|
|
58
64
|
timestamp: Date.now(),
|
|
59
65
|
customType: AGENT_PROFILE_UPDATE_EVENT,
|
|
60
66
|
content: JSON.stringify({
|
|
61
|
-
event:
|
|
67
|
+
event: "agent_configuration_updated",
|
|
62
68
|
source: "xopc-runtime",
|
|
63
69
|
...changed ? {
|
|
64
70
|
changedFields: changedFields.length ? changedFields : ["instructions"],
|
|
65
71
|
updates
|
|
66
72
|
} : {},
|
|
67
|
-
|
|
73
|
+
scope: "agent_defaults",
|
|
74
|
+
current: projected
|
|
68
75
|
}),
|
|
69
76
|
display: false
|
|
70
77
|
};
|
|
@@ -75,10 +82,9 @@ function createAgentProfileContextExtension(conversationId) {
|
|
|
75
82
|
});
|
|
76
83
|
pi.on("context_with_system", (event, context) => {
|
|
77
84
|
snapshot ??= snapshotForTurn(context);
|
|
78
|
-
if (!snapshot) return;
|
|
79
85
|
const messages = event.messages.filter((message) => message.role !== "system" && !(message.role === "custom" && message.customType === "xopc.agent-profile-update"));
|
|
80
86
|
const inputIndex = messages.findLastIndex((message) => message.role === "user" || message.role === "custom");
|
|
81
|
-
messages.splice(inputIndex < 0 ? messages.length : inputIndex, 0, snapshot);
|
|
87
|
+
if (snapshot) messages.splice(inputIndex < 0 ? messages.length : inputIndex, 0, snapshot);
|
|
82
88
|
return { messages: [{
|
|
83
89
|
role: "system",
|
|
84
90
|
content: context.getSystemPrompt(),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { isCodemodeCoreRead } from "../tools/codemode-permissions.js";
|
|
2
1
|
import { getXopcToolMetadata } from "./tool-metadata.js";
|
|
2
|
+
import { isCodemodeCoreRead } from "../tools/codemode-permissions.js";
|
|
3
3
|
import { withDataToolPermissions } from "../tools/dataBatch.js";
|
|
4
4
|
import { retainCodemodeOutput } from "./codemode-output.js";
|
|
5
5
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export declare function withoutEmbeddedExecutionSession<T>(run: () => T): T;
|
|
1
2
|
export declare function runWithEmbeddedExecutionSession<T>(conversationId: string, run: () => T, runId?: string): T;
|
|
2
3
|
export declare function getEmbeddedExecutionSession(): string | undefined;
|
|
3
4
|
export declare function getEmbeddedExecutionRunId(): string | undefined;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
2
|
//#region src/agent/embedded/execution-context.ts
|
|
3
3
|
const executionSessionStorage = new AsyncLocalStorage();
|
|
4
|
+
function withoutEmbeddedExecutionSession(run) {
|
|
5
|
+
return executionSessionStorage.exit(run);
|
|
6
|
+
}
|
|
4
7
|
function runWithEmbeddedExecutionSession(conversationId, run, runId) {
|
|
5
8
|
return executionSessionStorage.run({
|
|
6
9
|
conversationId,
|
|
@@ -14,4 +17,4 @@ function getEmbeddedExecutionRunId() {
|
|
|
14
17
|
return executionSessionStorage.getStore()?.runId;
|
|
15
18
|
}
|
|
16
19
|
//#endregion
|
|
17
|
-
export { getEmbeddedExecutionRunId, getEmbeddedExecutionSession, runWithEmbeddedExecutionSession };
|
|
20
|
+
export { getEmbeddedExecutionRunId, getEmbeddedExecutionSession, runWithEmbeddedExecutionSession, withoutEmbeddedExecutionSession };
|
|
@@ -3,8 +3,8 @@ import { init_request_repository, personalRequestForExecution } from "../../pers
|
|
|
3
3
|
import { getSessionMetadata } from "../../storage/sqlite/session-read-repository.js";
|
|
4
4
|
import { init_session_repository } from "../../storage/sqlite/session-repository.js";
|
|
5
5
|
import { isPersonalConversation } from "../../personal-agent/repository.js";
|
|
6
|
-
import { PERSONAL_MAIN_TOOL_IDS } from "../../personal-agent/policy.js";
|
|
7
6
|
import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
|
|
7
|
+
import { PERSONAL_MAIN_TOOL_IDS } from "../../personal-agent/policy.js";
|
|
8
8
|
//#region src/agent/embedded/execution-tool-policy.ts
|
|
9
9
|
init_request_repository();
|
|
10
10
|
init_connection();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { setXopcToolMetadata } from "./tool-metadata.js";
|
|
1
2
|
import { getEmbeddedExecutionRunId, runWithEmbeddedExecutionSession } from "./execution-context.js";
|
|
2
3
|
import { parseExternalToolRef } from "../external-tools/refs.js";
|
|
3
4
|
import { wrapToolsWithProtection } from "../tools/executor.js";
|
|
4
|
-
import { setXopcToolMetadata } from "./tool-metadata.js";
|
|
5
5
|
import { getExternalToolRegistry } from "../external-tools/tool-registry.js";
|
|
6
6
|
import { createHash } from "node:crypto";
|
|
7
7
|
//#region src/agent/embedded/external-tool-discovery.ts
|
|
@@ -2,13 +2,13 @@ import { createLogger } from "../../utils/logger/index.js";
|
|
|
2
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
3
|
import { parseTurnOutcome } from "../../../packages/gateway-contract/src/turn-outcome.js";
|
|
4
4
|
import { init_src } from "../../../packages/gateway-contract/src/index.js";
|
|
5
|
-
import {
|
|
5
|
+
import { isPersonalConversation } from "../../personal-agent/repository.js";
|
|
6
6
|
import { resolveEffectiveAgentProfileForSession } from "../../config/agent-profile.js";
|
|
7
|
+
import { assertProviderUsage, getModelUsageOrigin, init_model_usage, isProviderUsageScopeError } from "../../providers/model-usage.js";
|
|
7
8
|
import { init_providers, resolveModel } from "../../providers/index.js";
|
|
8
9
|
import { appendDynamicPromptSection } from "../prompt/cache-boundary.js";
|
|
9
10
|
import { setTraceIdentity, startObservation, traceOperation, traceRun } from "../../observability/runtime.js";
|
|
10
11
|
import { resolveAgentTurnTimeoutMs } from "../orchestration/run-agent-turn-with-timeout.js";
|
|
11
|
-
import { isPersonalConversation } from "../../personal-agent/repository.js";
|
|
12
12
|
import { filterExecutionTools, resolveExecutionToolPolicy } from "./execution-tool-policy.js";
|
|
13
13
|
import { runWithEmbeddedExecutionSession } from "./execution-context.js";
|
|
14
14
|
import { resolvePromptCachePolicy } from "../../providers/prompt-cache-plan.js";
|
|
@@ -301,6 +301,7 @@ async function runEmbeddedTurnForSessionInner(params) {
|
|
|
301
301
|
promptCachePolicy,
|
|
302
302
|
compactionPolicy: resolveCompactionPolicy(config),
|
|
303
303
|
workspaceDir,
|
|
304
|
+
isWorkspaceTrusted: agentManager.isProjectWorkspaceTrusted?.bind(agentManager),
|
|
304
305
|
sessionStore,
|
|
305
306
|
timeoutMs: attemptPlan.timeoutMs,
|
|
306
307
|
turnPolicy,
|
|
@@ -6,8 +6,8 @@ import { getConnectionResumeInput, init_connection_wait_repository, isConnection
|
|
|
6
6
|
import { getSessionMetadata } from "../../storage/sqlite/session-read-repository.js";
|
|
7
7
|
import { init_session_repository } from "../../storage/sqlite/session-repository.js";
|
|
8
8
|
import { init_sqlite } from "../../storage/sqlite/index.js";
|
|
9
|
-
import { ProviderUsageScopeError, init_model_usage } from "../../providers/model-usage.js";
|
|
10
9
|
import { resolveEffectiveAgentConfigForSession } from "../../config/agent-profile.js";
|
|
10
|
+
import { ProviderUsageScopeError, init_model_usage } from "../../providers/model-usage.js";
|
|
11
11
|
import { setTraceIdentity, traceOperation, traceRun, traceTools } from "../../observability/runtime.js";
|
|
12
12
|
import { continuesAfterTool, trackAiUsageStream } from "../../usage/recorder.js";
|
|
13
13
|
import { cloudCreditBudgetStopMessage, isCloudCreditBudgetExhausted, reportCloudCreditError, withCloudCreditBudget } from "../../providers/xopc-cloud-credit-budget.js";
|
|
@@ -17,8 +17,8 @@ import { isContextOverflowError } from "../orchestration/context-overflow.js";
|
|
|
17
17
|
import { ACCEPTANCE_REPAIR_READ_TOOLS, canResumeAfterModelFailure, completedRecoveryToolResult } from "../orchestration/turn-recovery.js";
|
|
18
18
|
import { getAssistantTurnErrorMessage, isAssistantTurnAborted, isAssistantTurnFailed, maybeRetryTurnAfterTransientLlmFailure, stripTrailingErrorAssistantMessages } from "../orchestration/llm-turn-retry.js";
|
|
19
19
|
import { allowsExecutionTool, filterExecutionTools, resolveExecutionToolPolicy } from "./execution-tool-policy.js";
|
|
20
|
-
import { runWithEmbeddedExecutionSession } from "./execution-context.js";
|
|
21
20
|
import { externalPolicyContext, getXopcToolMetadata } from "./tool-metadata.js";
|
|
21
|
+
import { runWithEmbeddedExecutionSession } from "./execution-context.js";
|
|
22
22
|
import { isComputerControlActive, isComputerLeaseTool, stopComputerControl } from "../../computer/control-guard.js";
|
|
23
23
|
import { EmbeddedRunConflictError, abortEmbeddedRun, acquireEmbeddedRunLease, queueEmbeddedSteer } from "./runs.js";
|
|
24
24
|
import { lastAssistantPlainText, subscribeEmbeddedSessionEvents } from "./subscribe-session.js";
|
|
@@ -37,6 +37,7 @@ import { isPromptCacheExpired, recordPromptCacheTouch } from "../../providers/pr
|
|
|
37
37
|
import { markTurnToolResult } from "../memory/turn-provenance.js";
|
|
38
38
|
import { RepositoryInstructions } from "../coding/repository-instructions.js";
|
|
39
39
|
import { RunVerification } from "../coding/run-verification.js";
|
|
40
|
+
import { projectWorkEvidence } from "../coding/projectEvidence.js";
|
|
40
41
|
import { withDelegationScope } from "../orchestration/delegation-scope.js";
|
|
41
42
|
import { getModelThinking } from "../../providers/model-thinking.js";
|
|
42
43
|
import "../messaging/no-reply.js";
|
|
@@ -344,13 +345,14 @@ async function runXopcEmbeddedTurnInner(params) {
|
|
|
344
345
|
let runLease;
|
|
345
346
|
let restorePrepareNextTurn;
|
|
346
347
|
let restorePrepareRequest;
|
|
348
|
+
let restoreTransformContext;
|
|
347
349
|
try {
|
|
348
350
|
runLease = acquireEmbeddedRunLease({
|
|
349
351
|
conversationId,
|
|
350
352
|
transcriptId: transcriptRuntime.transcriptId,
|
|
351
353
|
runId
|
|
352
354
|
});
|
|
353
|
-
const instructions = await RepositoryInstructions.open(workspaceDir);
|
|
355
|
+
const instructions = await RepositoryInstructions.open(workspaceDir, { isWorkspaceTrusted: params.isWorkspaceTrusted });
|
|
354
356
|
const rootInstructions = await instructions.load(".", true);
|
|
355
357
|
runner = await acquireEmbeddedSessionRunner({
|
|
356
358
|
runtimeId: transcriptRuntime.runtimeId,
|
|
@@ -469,11 +471,22 @@ async function runXopcEmbeddedTurnInner(params) {
|
|
|
469
471
|
if (session.agent.prepareRequest === authoritativePrepareRequest) session.agent.prepareRequest = basePrepareRequest;
|
|
470
472
|
};
|
|
471
473
|
const streamFnWithXopcExtensions = wrapStreamFnForXopcExtensions(session.agent.streamFunction, params.promptCachePolicy);
|
|
474
|
+
let evidenceProjection;
|
|
475
|
+
const baseTransformContext = session.agent.transformContext;
|
|
476
|
+
const transformWorkEvidence = async (messages, signal) => {
|
|
477
|
+
const transformed = await baseTransformContext?.(messages, signal) ?? messages;
|
|
478
|
+
evidenceProjection = params.verifyChanges ? projectWorkEvidence(transformed) : void 0;
|
|
479
|
+
return evidenceProjection?.messages ?? transformed;
|
|
480
|
+
};
|
|
481
|
+
session.agent.transformContext = transformWorkEvidence;
|
|
482
|
+
restoreTransformContext = () => {
|
|
483
|
+
if (session.agent.transformContext === transformWorkEvidence) session.agent.transformContext = baseTransformContext;
|
|
484
|
+
};
|
|
472
485
|
const loggingStreamFn = (streamModel, context, options) => {
|
|
473
486
|
instructions.acknowledge();
|
|
474
487
|
const sourceMessages = [...context.messages];
|
|
475
488
|
const hygienicMessages = tryApplySessionTranscriptHygiene(sourceMessages, streamModel);
|
|
476
|
-
const loopGuard = detectToolLoops(extractRecentToolCalls(
|
|
489
|
+
const loopGuard = detectToolLoops(extractRecentToolCalls(session.agent.state.messages));
|
|
477
490
|
let effectiveContext = {
|
|
478
491
|
...context,
|
|
479
492
|
messages: hygienicMessages
|
|
@@ -486,6 +499,16 @@ async function runXopcEmbeddedTurnInner(params) {
|
|
|
486
499
|
timestamp: Date.now()
|
|
487
500
|
}]
|
|
488
501
|
};
|
|
502
|
+
const executionGuidance = verification.modelGuidance();
|
|
503
|
+
if (executionGuidance) effectiveContext = {
|
|
504
|
+
...effectiveContext,
|
|
505
|
+
messages: [...effectiveContext.messages, {
|
|
506
|
+
role: "system",
|
|
507
|
+
content: "",
|
|
508
|
+
sections: { "xopc.execution-focus": executionGuidance },
|
|
509
|
+
timestamp: 0
|
|
510
|
+
}]
|
|
511
|
+
};
|
|
489
512
|
let effectiveSystemPrompt = getCurrentSystemPrompt(effectiveContext.messages);
|
|
490
513
|
let effectiveTools = getCurrentTools(effectiveContext.messages);
|
|
491
514
|
const projection = projectContextForModel({
|
|
@@ -556,7 +579,12 @@ async function runXopcEmbeddedTurnInner(params) {
|
|
|
556
579
|
systemPromptLength: effectiveSystemPrompt.length,
|
|
557
580
|
messageCount: effectiveContext.messages.filter((message) => message.role !== "system").length,
|
|
558
581
|
transcriptRepaired: hygienicMessages !== sourceMessages,
|
|
582
|
+
sharedEvidenceChars: evidenceProjection?.savedChars ?? 0,
|
|
583
|
+
sharedReviews: evidenceProjection?.sharedReviews ?? 0,
|
|
584
|
+
sharedReads: evidenceProjection?.sharedReads ?? 0,
|
|
559
585
|
toolCount: effectiveTools.length,
|
|
586
|
+
toolSchemaChars: JSON.stringify(effectiveTools).length,
|
|
587
|
+
estimatedContextTokens: assessed.evaluation.estimatedTokens,
|
|
560
588
|
lastUserMessagePreview: getLastUserMessagePreview(effectiveContext.messages),
|
|
561
589
|
loopWarningInjected: !!loopGuard.injection,
|
|
562
590
|
promptCache: promptCacheSnapshot,
|
|
@@ -582,7 +610,9 @@ async function runXopcEmbeddedTurnInner(params) {
|
|
|
582
610
|
preparationMs: firstModelRequestAt - preparationStartedAt,
|
|
583
611
|
messageCount: effectiveContext.messages.length,
|
|
584
612
|
systemPromptLength: effectiveSystemPrompt.length,
|
|
585
|
-
toolCount: effectiveTools.length
|
|
613
|
+
toolCount: effectiveTools.length,
|
|
614
|
+
toolSchemaChars: JSON.stringify(effectiveTools).length,
|
|
615
|
+
estimatedContextTokens: assessed.evaluation.estimatedTokens
|
|
586
616
|
}, "Embedded first model request ready");
|
|
587
617
|
}
|
|
588
618
|
return trackAiUsageStream(streamModel, {
|
|
@@ -596,7 +626,10 @@ async function runXopcEmbeddedTurnInner(params) {
|
|
|
596
626
|
});
|
|
597
627
|
};
|
|
598
628
|
session.agent.streamFunction = loggingStreamFn;
|
|
599
|
-
const verification = await RunVerification.open(workspaceDir
|
|
629
|
+
const verification = await RunVerification.open(workspaceDir, {
|
|
630
|
+
required: params.verifyChanges === true,
|
|
631
|
+
toolNames: tools.map((tool) => tool.name)
|
|
632
|
+
});
|
|
600
633
|
const checkpoints = runner.piSm.getBranch?.() ?? [];
|
|
601
634
|
const recoveryTurn = params.resumeLastUserMessage === true || Boolean(params.recoveryMessage);
|
|
602
635
|
const lastStart = checkpoints.findLastIndex((entry) => entry.type === "custom" && entry.customType === "coding_run_started");
|
|
@@ -925,6 +958,8 @@ async function runXopcEmbeddedTurnInner(params) {
|
|
|
925
958
|
restorePrepareNextTurn = void 0;
|
|
926
959
|
restorePrepareRequest();
|
|
927
960
|
restorePrepareRequest = void 0;
|
|
961
|
+
restoreTransformContext();
|
|
962
|
+
restoreTransformContext = void 0;
|
|
928
963
|
runAbortSignal.removeEventListener("abort", abortListener);
|
|
929
964
|
}
|
|
930
965
|
} catch (err) {
|
|
@@ -966,6 +1001,7 @@ async function runXopcEmbeddedTurnInner(params) {
|
|
|
966
1001
|
} finally {
|
|
967
1002
|
restorePrepareNextTurn?.();
|
|
968
1003
|
restorePrepareRequest?.();
|
|
1004
|
+
restoreTransformContext?.();
|
|
969
1005
|
runLease?.release();
|
|
970
1006
|
unsubscribe?.();
|
|
971
1007
|
try {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
3
|
import { filterExecutionTools, resolveExecutionToolPolicy } from "./execution-tool-policy.js";
|
|
4
|
-
import { isCodemodeCoreRead } from "../tools/codemode-permissions.js";
|
|
5
4
|
import { deferredToolContract, getXopcToolMetadata } from "./tool-metadata.js";
|
|
5
|
+
import { isCodemodeCoreRead } from "../tools/codemode-permissions.js";
|
|
6
6
|
import { abortEmbeddedRun } from "./runs.js";
|
|
7
7
|
import { guardSessionManager } from "./session-tool-result-guard.js";
|
|
8
8
|
import { transformUserMessageForPersistence } from "../inbound/attachment-pipeline.js";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { init_string_coerce, normalizeOptionalString } from "../../utils/string-coerce.js";
|
|
2
2
|
import { emitSessionTranscriptUpdate } from "../../session/transcript-events.js";
|
|
3
|
+
import { sanitizeSearchInfo } from "../tools/search/search-info.js";
|
|
3
4
|
import { extractToolCallsFromAssistant, extractToolResultId } from "../transcript/tool-call-id.js";
|
|
4
5
|
import { makeMissingToolResult, sanitizeToolCallInputs } from "../transcript/session-transcript-repair.js";
|
|
5
6
|
import { boundedJsonUtf8Bytes, firstEnumerableOwnKeys, jsonUtf8BytesOrInfinity } from "../../infra/json-utf8-bytes.js";
|
|
@@ -109,6 +110,8 @@ function buildPersistedDetailsFallback(src, originalSize, sanitizedBytes) {
|
|
|
109
110
|
if (sanitizedBytes !== void 0) fallback.sanitizedDetailsBytes = sanitizedBytes;
|
|
110
111
|
if (src) {
|
|
111
112
|
fallback.originalDetailKeys = firstEnumerableOwnKeys(src, 40);
|
|
113
|
+
const searchInfo = sanitizeSearchInfo(src.searchInfo);
|
|
114
|
+
if (searchInfo) fallback.searchInfo = searchInfo;
|
|
112
115
|
for (const key of [
|
|
113
116
|
"status",
|
|
114
117
|
"transcriptId",
|
|
@@ -150,6 +153,8 @@ function sanitizeToolResultDetailsForPersistence(details) {
|
|
|
150
153
|
...originalDetailsSizeFields(originalSize),
|
|
151
154
|
originalDetailKeys: firstEnumerableOwnKeys(src, 40)
|
|
152
155
|
};
|
|
156
|
+
const searchInfo = sanitizeSearchInfo(src.searchInfo);
|
|
157
|
+
if (searchInfo) out.searchInfo = searchInfo;
|
|
153
158
|
for (const key of [
|
|
154
159
|
"status",
|
|
155
160
|
"transcriptId",
|
|
@@ -85,6 +85,8 @@ export type RunXopcEmbeddedTurnParams = {
|
|
|
85
85
|
codemode?: import('./codemode-extension.js').CodemodePolicy;
|
|
86
86
|
mcp?: import('@earendil-works/pi-coding-agent').LoadedMcpConfig;
|
|
87
87
|
workspaceDir: string;
|
|
88
|
+
/** Host-owned temporary trust; persisted project decisions always take precedence. */
|
|
89
|
+
isWorkspaceTrusted?: (workspaceDir: string) => boolean | null | undefined;
|
|
88
90
|
sessionStore?: SessionStore;
|
|
89
91
|
transcriptRuntime?: EmbeddedTranscriptRuntime;
|
|
90
92
|
timeoutMs: number;
|
|
@@ -124,7 +124,8 @@ function xopcToolsToDefinitions(tools) {
|
|
|
124
124
|
return invalidApplyPatchEnvelopeResult(envelopeError);
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
|
-
|
|
127
|
+
const execute = () => tool.execute(toolCallId, params, signal, onUpdate);
|
|
128
|
+
return tool.name === "data_batch" ? withDataToolPermissions(new Set(tools.map((item) => item.name)), execute) : execute();
|
|
128
129
|
}
|
|
129
130
|
};
|
|
130
131
|
});
|
|
@@ -5,11 +5,11 @@ import { getConnectorAccount, init_connector_account_repository } from "../../st
|
|
|
5
5
|
import { appendConnectorExecutionAudit, consumeConnectorApproval, createConnectorApproval, getConnectorApproval, getConnectorConnection, getConnectorInstallation, init_connector_repository } from "../../storage/sqlite/connector-repository.js";
|
|
6
6
|
import { connectorObjectiveScope, init_connection_wait_repository, publishConnectionWait, requireSessionConnection } from "../../storage/sqlite/connection-wait-repository.js";
|
|
7
7
|
import { init_sqlite } from "../../storage/sqlite/index.js";
|
|
8
|
-
import { connectorArgumentsHash, connectorArgumentsPreview } from "../../connectors/approval.js";
|
|
9
|
-
import { connectorPrincipalForSession } from "../../connectors/principal.js";
|
|
10
8
|
import { CapabilityError } from "../../capabilities/runtime/errors.js";
|
|
11
9
|
import { ExternalEffectNotAppliedError, executeExternalOperation } from "../../capabilities/runtime/external-operations.js";
|
|
12
10
|
import "../../capabilities/runtime/dispatcher.js";
|
|
11
|
+
import { connectorPrincipalForSession } from "../../connectors/principal.js";
|
|
12
|
+
import { connectorArgumentsHash, connectorArgumentsPreview } from "../../connectors/approval.js";
|
|
13
13
|
import { selectConnectorAccount } from "../../connectors/account-selection.js";
|
|
14
14
|
import { cliContextPath } from "../../connectors/cli/process.js";
|
|
15
15
|
import { validateActionInput } from "../../connectors/cli/protocol.js";
|
|
@@ -5,11 +5,11 @@ import { getConnectorAccount } from "../../storage/sqlite/connector-account-repo
|
|
|
5
5
|
import { consumeConnectorApproval, createConnectorApproval, getConnectorApproval, getConnectorConnection, getConnectorInstallation, listConnectorActionMetadata, listConnectorConnections, listConnectorInstallations, upsertConnectorActionMetadata, upsertConnectorInstallation } from "../../storage/sqlite/connector-repository.js";
|
|
6
6
|
import { bindObjectiveAccount, connectionBinding, connectionBindings, connectorObjectiveScope, init_connection_wait_repository, publishConnectionWait, requireSessionConnection } from "../../storage/sqlite/connection-wait-repository.js";
|
|
7
7
|
import { init_sqlite } from "../../storage/sqlite/index.js";
|
|
8
|
-
import { connectorArgumentsHash, connectorArgumentsPreview } from "../../connectors/approval.js";
|
|
9
|
-
import { canAccessConnectorAccount, currentAccountConnections } from "../../connectors/account-access.js";
|
|
10
|
-
import { connectorPrincipalForSession } from "../../connectors/principal.js";
|
|
11
8
|
import { CapabilityError } from "../../capabilities/runtime/errors.js";
|
|
12
9
|
import { ExternalEffectNotAppliedError, executeExternalOperation } from "../../capabilities/runtime/external-operations.js";
|
|
10
|
+
import { canAccessConnectorAccount, currentAccountConnections } from "../../connectors/account-access.js";
|
|
11
|
+
import { connectorPrincipalForSession } from "../../connectors/principal.js";
|
|
12
|
+
import { connectorArgumentsHash, connectorArgumentsPreview } from "../../connectors/approval.js";
|
|
13
13
|
import { connectorIdentitySummary } from "../../connectors/connector-identity.js";
|
|
14
14
|
import { evaluateConnectorExecutionPolicy } from "../../connectors/policy.js";
|
|
15
15
|
import { ComposioSessionsAdapter } from "../../connectors/composio-sessions.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { init_src } from "../../../packages/computer-control-contract/src/index.js";
|
|
2
|
-
import "../../../packages/browser-control-contract/src/index.js";
|
|
3
1
|
import { ExternalEffectNotAppliedError, executeExternalOperation } from "../../capabilities/runtime/external-operations.js";
|
|
4
2
|
import { canonicalCapabilityJson } from "../../capabilities/runtime/dispatcher.js";
|
|
3
|
+
import { init_src } from "../../../packages/computer-control-contract/src/index.js";
|
|
4
|
+
import "../../../packages/browser-control-contract/src/index.js";
|
|
5
5
|
import { externalToolRef, parseExternalToolRef } from "./refs.js";
|
|
6
6
|
import { extractDocumentText } from "../../document-understanding/extract.js";
|
|
7
7
|
import { prepareImageForModel } from "../image/prepare-image-for-model.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { getXopcToolMetadata } from "../embedded/tool-metadata.js";
|
|
1
2
|
import { externalToolRef, parseExternalToolRef } from "./refs.js";
|
|
2
3
|
import { executeToolWithProtection } from "../tools/executor.js";
|
|
3
|
-
import { getXopcToolMetadata } from "../embedded/tool-metadata.js";
|
|
4
4
|
//#region src/agent/external-tools/extension-provider.ts
|
|
5
5
|
function toolSummary(tool) {
|
|
6
6
|
return tool.description || tool.label || tool.name;
|
|
@@ -6,9 +6,9 @@ import { connectionBindings, getActiveConnectionWait, init_connection_wait_repos
|
|
|
6
6
|
import { getSessionMetadata } from "../../storage/sqlite/session-read-repository.js";
|
|
7
7
|
import { init_session_repository } from "../../storage/sqlite/session-repository.js";
|
|
8
8
|
import { connectorPrincipalForSession } from "../../connectors/principal.js";
|
|
9
|
+
import { setXopcToolMetadata } from "../embedded/tool-metadata.js";
|
|
9
10
|
import { listConnectorInstances } from "../../connectors/instances.js";
|
|
10
11
|
import { parseExternalToolRef } from "./refs.js";
|
|
11
|
-
import { setXopcToolMetadata } from "../embedded/tool-metadata.js";
|
|
12
12
|
import { getStoreConnectorInstallPlan, parseStoreConnectorCandidateRef, searchStoreConnectorInstallCandidates } from "../../capabilities/store-connector.js";
|
|
13
13
|
import { assertPersonalRequestAccountAccess } from "../../personal-agent/request-access.js";
|
|
14
14
|
import { connectionCandidates, resolveConnectionCandidate } from "../../connectors/connection-candidates.js";
|