@xopcai/xopc 0.0.390 → 0.0.391
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/{activity-store-DGMAYkw8.js → activity-store-DWQCDi8M.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-B4AsZzJR.js → agent-avatar-dicebear-CzS0TUv9.js} +1 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-DE910MyU.js +1 -0
- package/dist/gateway/static/root/assets/agent-plugin-dialog-0SlvsYl7.js +1 -0
- package/dist/gateway/static/root/assets/agents-BZh28Qn1.js +77 -0
- package/dist/gateway/static/root/assets/{agents-admin-api-DxdaiFWn.js → agents-admin-api-Bb3Kvz3X.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-DHRfLkYD.js → app-management-settings-panel-9A7JN5V5.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-DtKSapgb.js → appearance-settings-BPdLEo6L.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-B9kuRt_z.js → apps-page-Cz7LypV9.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-AgySTXp_.js → archive-plugin-DFnHPNie.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-D1o7ZtUW.js → automations-page-CnBLPVNh.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-BBjS-sk-.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-A1AXOsO6.js → binary-plugins-BQC0Tzoi.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-DUNLkLKF.js → block-editor-DSh5019z.js} +4 -4
- package/dist/gateway/static/root/assets/{browser-automation-inputs-BvUC6OiW.js → browser-automation-inputs-C5tIrIRL.js} +1 -1
- package/dist/gateway/static/root/assets/browser-automations-page-CFCMNfJN.js +3 -0
- package/dist/gateway/static/root/assets/browser-settings-page-C__tyPwu.js +3 -0
- package/dist/gateway/static/root/assets/{capabilities-D61uSJPy.js → capabilities-D6RJG4QY.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-BkCutK0V.js → capabilities-DGEmBQnF.js} +1 -1
- package/dist/gateway/static/root/assets/capabilities-page-B5AZa7ir.js +2 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-Dskz2_bh.js +8 -0
- package/dist/gateway/static/root/assets/{capability-header-actions-D9uGs4Pw.js → capability-header-actions-xzjWZVbg.js} +1 -1
- package/dist/gateway/static/root/assets/{channels-xb7n8rwF.js → channels-DRse_dD3.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-terminal-dock-Dgn09YDs.js → chat-terminal-dock-CQF0M4kE.js} +1 -1
- package/dist/gateway/static/root/assets/{computer-settings-page-C66P4ifT.js → computer-settings-page-ZfzCTS0N.js} +1 -1
- package/dist/gateway/static/root/assets/{connector-service-page-Dp35XdYf.js → connector-service-page-CwAeWVLK.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-CanakKaj.js +1 -0
- package/dist/gateway/static/root/assets/{date-picker-CddHY982.js → date-picker-hmJlEAQZ.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-Ob6BZTqv.js → dependency-picker-Us_Juz6I.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-dmwCV-I4.js → desktop-pet-CvOTI4uw.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-B-TBkZAZ.js → desktop-pet-settings-DYg-Gb8t.js} +1 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-B1FbZ8C1.js +1 -0
- package/dist/gateway/static/root/assets/{directory-picker-path-field-6VZa4fT1.js → directory-picker-path-field-DZN9EDvM.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-C0_njMva.js → extension-debug-page-YIibp6Kk.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-BeBLMFmW.js → extension-page-DkcGyb28.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-DWI0KAKT.js → extension-provider-B1PQGTtY.js} +1 -1
- package/dist/gateway/static/root/assets/extension-settings-page-C_rJiSKo.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-swr-CmYcOqhb.js → gateway-config-swr-Dv_A5FMu.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-Ci1Jst5g.js → gateway-realtime-DghCGfY_.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-CMJVSnvi.js +1 -0
- package/dist/gateway/static/root/assets/gateway-settings-CjCWPHNJ.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-C-BG5M7H.js → gateway-startup-retry-CkTVSESs.js} +1 -1
- package/dist/gateway/static/root/assets/{highlighted-body-KQOG7T2V-CsA7lCVc.js → highlighted-body-KQOG7T2V-DV2wNqBn.js} +1 -1
- package/dist/gateway/static/root/assets/home-page-fAYsd7kG.js +2 -0
- package/dist/gateway/static/root/assets/{image-generation-api-B_DqCwtV.js → image-generation-api-B98iXt6A.js} +1 -1
- package/dist/gateway/static/root/assets/{imports-page-oAvAF9QS.js → imports-page-DoBCBN8G.js} +1 -1
- package/dist/gateway/static/root/assets/index-DFgXwLsv.js +260 -0
- package/dist/gateway/static/root/assets/index-a6ZvhclR.css +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings--MjYe-Pb.js → keyboard-shortcuts-settings-DXVu4lqV.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-B3fz6uRi.js +1 -0
- package/dist/gateway/static/root/assets/{local-apps-page-DOa7mxjB.js → local-apps-page-BC6xhmUh.js} +1 -1
- package/dist/gateway/static/root/assets/{local-session-drafts-DAtLkTPg.js → local-session-drafts-DFnZQu9A.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-DMy9W6IG.js → locale-store-BpK9AiDq.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-CSqSFDRU.js +2 -0
- package/dist/gateway/static/root/assets/{management-settings-C0TzuD3-.js → management-settings-gq5L0THs.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-view-wyOHdXEg.js → markdown-view-IsYTotu6.js} +18 -18
- package/dist/gateway/static/root/assets/{media-plugins-Pb2zr_-L.js → media-plugins-oSChWbcP.js} +1 -1
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-C_QKwqDN.js +1 -0
- package/dist/gateway/static/root/assets/{messages-O0BEUKnx.js → messages-CKTo_sIF.js} +2 -2
- package/dist/gateway/static/root/assets/{models-hub-cache-DdH1MODX.js → models-hub-cache-TjpL7hZ5.js} +1 -1
- package/dist/gateway/static/root/assets/note-detail-panel-CdpNXre-.js +5 -0
- package/dist/gateway/static/root/assets/{notes-api-CYt2pGsm.js → notes-api-CBb944yw.js} +1 -1
- package/dist/gateway/static/root/assets/notes-page-EGvGw8MN.js +8 -0
- package/dist/gateway/static/root/assets/{page-context-capture-button-3uj5EcQC.js → page-context-capture-button-CoWb7BYP.js} +1 -1
- package/dist/gateway/static/root/assets/personal-page-DYzbNTyN.js +1 -0
- package/dist/gateway/static/root/assets/{product-open-page-hI13tPS1.js → product-open-page-CTyy7H7-.js} +1 -1
- package/dist/gateway/static/root/assets/{product-preview-content-lT_in0-Q.js → product-preview-content-D4xqTaEy.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-DIVCw0QQ.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-B4L9VnBN.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-CgQrCqL6.js → registry-api-Dsa2LvRt.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-B8PvgLVz.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-api-D12qVKeC.js → runtime-tools-api-C2Uw89eY.js} +1 -1
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-DOSPOfCU.js → runtime-tools-settings-panel-Bqnp3tyt.js} +1 -1
- package/dist/gateway/static/root/assets/scenes-page-D50g4GM2.js +2 -0
- package/dist/gateway/static/root/assets/{schema-form-CwOFgsyh.js → schema-form-h_RCNfiO.js} +1 -1
- package/dist/gateway/static/root/assets/{send-session-input-nH8Cw0US.js → send-session-input-DypbVTT7.js} +1 -1
- package/dist/gateway/static/root/assets/{session-api-B9HrwF-c.js → session-api-ga-SUOq_.js} +1 -1
- package/dist/gateway/static/root/assets/{session-manager-aXqXuqDX.js → session-manager-C_OiKblh.js} +8 -8
- package/dist/gateway/static/root/assets/sessions-page-BsqDIbIr.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-D3zJAW4p.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-BN70wE6R.js → settings-page-DPCgrICd.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-status-panel-CHzcVRi-.js → setup-status-panel-jjSYJpDd.js} +1 -1
- package/dist/gateway/static/root/assets/{share-link-dialog-B1TDyhPt.js → share-link-dialog-BGicglAS.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-Br-eAZaP.js → share-preview-page-BORe9rLB.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-api-Bl1ZBh5S.js → shares-api-Dbx3z6-1.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-C13FgfWk.js +1 -0
- package/dist/gateway/static/root/assets/{skill-api-ClUw3SRC.js → skill-api-Cq6O1DZK.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-reload-api--1BfIPzb.js → skill-reload-api-Cq7QDjMA.js} +1 -1
- package/dist/gateway/static/root/assets/skills-page-BM1ShEjx.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-tWrqu7ai.js → system-settings-panel-BNCGFO1e.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-4VG82wcF.js +2 -0
- package/dist/gateway/static/root/assets/{task-expandable-content-D2t4ahzR.js → task-expandable-content-DAZGz5YC.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-BBLjE0fi.js → theme-store-Db7hDESt.js} +1 -1
- package/dist/gateway/static/root/assets/{tracing-settings-page-5ATxQH5c.js → tracing-settings-page-C6p2Mu92.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-CF1Qh4wU.js → tunnel-api-Dw15EJp0.js} +1 -1
- package/dist/gateway/static/root/assets/usage-page-DDrIqgGe.js +1 -0
- package/dist/gateway/static/root/assets/{use-autosave-tY3keIbm.js → use-autosave-DDjIdW4U.js} +1 -1
- package/dist/gateway/static/root/assets/{use-composer-attachments-CXsocZjt.js → use-composer-attachments-DNl7O3Vb.js} +1 -1
- package/dist/gateway/static/root/assets/{use-file-preview-expanded-CEsxnDnQ.js → use-file-preview-expanded-DMHehhwG.js} +2 -2
- package/dist/gateway/static/root/assets/user-model-page-CaS9dOIr.js +2 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-COTNLUU3.js → voice-api-key-field-ByAxHE4P.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-DrxBjSja.js → voice-config-api-Dl39b27p.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-transcribe-api-B47j0_xA.js → voice-transcribe-api-CVaU83Jc.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-PByMJrhV.js → work-discovery-overlay-BvVvPA1T.js} +1 -1
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-BcFm9QcC.js +3 -0
- package/dist/gateway/static/root/assets/workflows-page-DMec_XZB.js +6 -0
- package/dist/gateway/static/root/assets/{workspace-api-Bmx1O449.js → workspace-api-BpfKsrtP.js} +2 -2
- package/dist/gateway/static/root/assets/{xopc-cloud-account-card-DVsAbvwP.js → xopc-cloud-account-card-CU5lzzE9.js} +1 -1
- package/dist/gateway/static/root/index.html +28 -36
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.d.ts +1 -0
- package/dist/src/agent/agent-manager.js +4 -1
- package/dist/src/agent/context/execution-scope.js +1 -1
- package/dist/src/agent/embedded/execution-tool-policy.d.ts +2 -0
- package/dist/src/agent/embedded/execution-tool-policy.js +8 -3
- package/dist/src/agent/embedded/run-turn.js +2 -1
- package/dist/src/agent/embedded/session-runner.js +1 -1
- package/dist/src/agent/tools/factory.js +14 -12
- package/dist/src/agent/tools/personal-read-tool.js +4 -0
- package/dist/src/agent/tools/task-collaboration-tool.js +1 -1
- package/dist/src/channels/index.js +1 -1
- package/dist/src/channels/manager.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/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/extension-marketplace.js +1 -1
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/extensions/sdk/index.js +1 -1
- package/dist/src/gateway/hono/lib/voice-settings-revisions.js +2 -1
- package/dist/src/gateway/hono/routes/commands-skills.js +15 -0
- package/dist/src/gateway/service.js +9 -7
- package/dist/src/home-intelligence/host.js +2 -2
- package/dist/src/providers/setup/profiles.d.ts +2 -2
- package/dist/src/providers/setup/profiles.js +6 -22
- package/dist/src/storage/sqlite/migrations/256_task_main_update_retries.sql +21 -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/tasks/task-collaboration-repository.d.ts +2 -0
- package/dist/src/tasks/task-collaboration-repository.js +7 -1
- package/dist/src/tasks/task-main-update-delivery.js +11 -4
- package/dist/src/tasks/task-main-update-input.js +2 -1
- package/dist/src/tasks/task-main-update-retry.d.ts +5 -0
- package/dist/src/tasks/task-main-update-retry.js +15 -0
- package/package.json +3 -3
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-9NUY1sO3.js +0 -1
- package/dist/gateway/static/root/assets/agent-plugin-dialog-CNc6ntzP.js +0 -1
- package/dist/gateway/static/root/assets/agents-QNY9Vkrf.js +0 -77
- package/dist/gateway/static/root/assets/automations-workspace-BJenz0P1.js +0 -6
- package/dist/gateway/static/root/assets/bot-DjLkhyZL.js +0 -1
- package/dist/gateway/static/root/assets/browser-automations-page-Dq2LlVMh.js +0 -3
- package/dist/gateway/static/root/assets/browser-settings-page-BOZ-1g51.js +0 -3
- package/dist/gateway/static/root/assets/capabilities-page-BDP6gzlv.js +0 -2
- package/dist/gateway/static/root/assets/capabilities-settings-panel-D6PL3Mfl.js +0 -8
- package/dist/gateway/static/root/assets/circle-pause-CN9jYH2s.js +0 -1
- package/dist/gateway/static/root/assets/clock-3-DnrAnuyZ.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-BHcRxYib.js +0 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-SWHwRgG3.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-BiLUwoKx.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-BMUiUQMk.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-CzWT_v09.js +0 -1
- package/dist/gateway/static/root/assets/git-branch-Dh9uxTot.js +0 -1
- package/dist/gateway/static/root/assets/home-page-BeXJfxsg.js +0 -2
- package/dist/gateway/static/root/assets/index-W9ls-0Yd.css +0 -1
- package/dist/gateway/static/root/assets/index-xTL-vb51.js +0 -260
- package/dist/gateway/static/root/assets/local-app-workbench-page-DL33dtd7.js +0 -1
- package/dist/gateway/static/root/assets/logs-page-C-GbTYsM.js +0 -2
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-BxyGGa4D.js +0 -1
- package/dist/gateway/static/root/assets/message-square-fVE7Ghj1.js +0 -1
- package/dist/gateway/static/root/assets/note-detail-panel-BFpEqskQ.js +0 -5
- package/dist/gateway/static/root/assets/notes-page-h-qqFJ6Z.js +0 -8
- package/dist/gateway/static/root/assets/pause-DuPxgSxk.js +0 -1
- package/dist/gateway/static/root/assets/personal-page-BGyW6cdt.js +0 -1
- package/dist/gateway/static/root/assets/play-kxZvpBg8.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-Baj7fQ7N.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-D7DyQFU3.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-DU_d93Tm.js +0 -1
- package/dist/gateway/static/root/assets/scenes-page-swyUIF5A.js +0 -2
- package/dist/gateway/static/root/assets/sessions-page-CI_PJmlX.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-DCVaeBLW.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-jgCC_E4Y.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-C9oRZSuL.js +0 -2
- package/dist/gateway/static/root/assets/sparkles-DHlfQFAF.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-BYRW7Rrr.js +0 -2
- package/dist/gateway/static/root/assets/usage-page-CuEHzXil.js +0 -1
- package/dist/gateway/static/root/assets/user-model-page-Dvt5TIZ6.js +0 -2
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-CSUkMo63.js +0 -3
- package/dist/gateway/static/root/assets/workflows-page-BUDvFo3R.js +0 -6
|
@@ -11,15 +11,15 @@
|
|
|
11
11
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=20260910-1" />
|
|
12
12
|
<link rel="manifest" href="/site.webmanifest?v=20260910-1" />
|
|
13
13
|
<title>XOPC — Keep what matters moving.</title>
|
|
14
|
-
<script type="module" crossorigin src="/assets/index-
|
|
14
|
+
<script type="module" crossorigin src="/assets/index-DFgXwLsv.js"></script>
|
|
15
15
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-zJ_50EbN.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="/assets/vendor-react-BOUWij0V.js">
|
|
18
18
|
<link rel="modulepreload" crossorigin href="/assets/dist-CxGUk8J-.js">
|
|
19
19
|
<link rel="modulepreload" crossorigin href="/assets/es2015-DBLcMg5B.js">
|
|
20
20
|
<link rel="modulepreload" crossorigin href="/assets/middleware-Pd0e8Igk.js">
|
|
21
|
-
<link rel="modulepreload" crossorigin href="/assets/messages-
|
|
22
|
-
<link rel="modulepreload" crossorigin href="/assets/locale-store-
|
|
21
|
+
<link rel="modulepreload" crossorigin href="/assets/messages-CKTo_sIF.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/assets/locale-store-BpK9AiDq.js">
|
|
23
23
|
<link rel="modulepreload" crossorigin href="/assets/floating-ui.dom-B7uQOZZW.js">
|
|
24
24
|
<link rel="modulepreload" crossorigin href="/assets/dist-CI_fqRk-.js">
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/assets/dist-BGTk37IG.js">
|
|
@@ -37,14 +37,13 @@
|
|
|
37
37
|
<link rel="modulepreload" crossorigin href="/assets/bundle-mjs-rHxsej31.js">
|
|
38
38
|
<link rel="modulepreload" crossorigin href="/assets/cn-0WouolD0.js">
|
|
39
39
|
<link rel="modulepreload" crossorigin href="/assets/copy-to-clipboard-HOJ79TWv.js">
|
|
40
|
-
<link rel="modulepreload" crossorigin href="/assets/markdown-view-
|
|
40
|
+
<link rel="modulepreload" crossorigin href="/assets/markdown-view-IsYTotu6.js">
|
|
41
41
|
<link rel="modulepreload" crossorigin href="/assets/check-DUBLcKHA.js">
|
|
42
42
|
<link rel="modulepreload" crossorigin href="/assets/copy-Dv6d4Dvw.js">
|
|
43
43
|
<link rel="modulepreload" crossorigin href="/assets/button-aIC072nz.js">
|
|
44
44
|
<link rel="modulepreload" crossorigin href="/assets/copy-text-row-C7egVuKr.js">
|
|
45
45
|
<link rel="modulepreload" crossorigin href="/assets/vendor-swr-BIWyz7Rc.js">
|
|
46
46
|
<link rel="modulepreload" crossorigin href="/assets/activity-YogQEteU.js">
|
|
47
|
-
<link rel="modulepreload" crossorigin href="/assets/bot-DjLkhyZL.js">
|
|
48
47
|
<link rel="modulepreload" crossorigin href="/assets/chevron-left-DqFhpbvK.js">
|
|
49
48
|
<link rel="modulepreload" crossorigin href="/assets/chevron-right-BweFrslA.js">
|
|
50
49
|
<link rel="modulepreload" crossorigin href="/assets/dist-C3DSFZCi.js">
|
|
@@ -55,8 +54,6 @@
|
|
|
55
54
|
<link rel="modulepreload" crossorigin href="/assets/circle-check-C23XjkUj.js">
|
|
56
55
|
<link rel="modulepreload" crossorigin href="/assets/circle-dashed-8qMD7gHf.js">
|
|
57
56
|
<link rel="modulepreload" crossorigin href="/assets/circle-dot-BAseJTrF.js">
|
|
58
|
-
<link rel="modulepreload" crossorigin href="/assets/circle-pause-CN9jYH2s.js">
|
|
59
|
-
<link rel="modulepreload" crossorigin href="/assets/clock-3-DnrAnuyZ.js">
|
|
60
57
|
<link rel="modulepreload" crossorigin href="/assets/cloud-C4-yfnnk.js">
|
|
61
58
|
<link rel="modulepreload" crossorigin href="/assets/ellipsis-0k4rZLoy.js">
|
|
62
59
|
<link rel="modulepreload" crossorigin href="/assets/external-link-DjqjBmc3.js">
|
|
@@ -73,55 +70,50 @@
|
|
|
73
70
|
<link rel="modulepreload" crossorigin href="/assets/rotate-cw-LIg3Am9S.js">
|
|
74
71
|
<link rel="modulepreload" crossorigin href="/assets/search-DA7gz22f.js">
|
|
75
72
|
<link rel="modulepreload" crossorigin href="/assets/index.module-Cd9ENXfk.js">
|
|
76
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-
|
|
77
|
-
<link rel="modulepreload" crossorigin href="/assets/session-api-
|
|
73
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-CkTVSESs.js">
|
|
74
|
+
<link rel="modulepreload" crossorigin href="/assets/session-api-ga-SUOq_.js">
|
|
78
75
|
<link rel="modulepreload" crossorigin href="/assets/constants-DeXt1mV-.js">
|
|
79
76
|
<link rel="modulepreload" crossorigin href="/assets/app-chrome-BeB4KgOf.js">
|
|
80
77
|
<link rel="modulepreload" crossorigin href="/assets/attachment-utils-core-BIOUBrpT.js">
|
|
81
78
|
<link rel="modulepreload" crossorigin href="/assets/files-Bw4SBGdM.js">
|
|
82
|
-
<link rel="modulepreload" crossorigin href="/assets/workspace-api-
|
|
79
|
+
<link rel="modulepreload" crossorigin href="/assets/workspace-api-BpfKsrtP.js">
|
|
83
80
|
<link rel="modulepreload" crossorigin href="/assets/electron-env-Dit0bHgy.js">
|
|
84
81
|
<link rel="modulepreload" crossorigin href="/assets/use-async-resource-GrnWNwMZ.js">
|
|
85
|
-
<link rel="modulepreload" crossorigin href="/assets/activity-store-
|
|
86
|
-
<link rel="modulepreload" crossorigin href="/assets/use-file-preview-expanded-
|
|
82
|
+
<link rel="modulepreload" crossorigin href="/assets/activity-store-DWQCDi8M.js">
|
|
83
|
+
<link rel="modulepreload" crossorigin href="/assets/use-file-preview-expanded-DMHehhwG.js">
|
|
87
84
|
<link rel="modulepreload" crossorigin href="/assets/mic-CuUb7zc-.js">
|
|
88
85
|
<link rel="modulepreload" crossorigin href="/assets/globe-DSSGFWFn.js">
|
|
89
|
-
<link rel="modulepreload" crossorigin href="/assets/share-link-dialog-
|
|
90
|
-
<link rel="modulepreload" crossorigin href="/assets/local-session-drafts-
|
|
86
|
+
<link rel="modulepreload" crossorigin href="/assets/share-link-dialog-BGicglAS.js">
|
|
87
|
+
<link rel="modulepreload" crossorigin href="/assets/local-session-drafts-DFnZQu9A.js">
|
|
91
88
|
<link rel="modulepreload" crossorigin href="/assets/specialists-4bkS5rZ4.js">
|
|
92
89
|
<link rel="modulepreload" crossorigin href="/assets/tasks-PuIUgF9L.js">
|
|
93
|
-
<link rel="modulepreload" crossorigin href="/assets/capabilities-
|
|
90
|
+
<link rel="modulepreload" crossorigin href="/assets/capabilities-DGEmBQnF.js">
|
|
94
91
|
<link rel="modulepreload" crossorigin href="/assets/skill-wire-pattern-BPpeIcCi.js">
|
|
95
|
-
<link rel="modulepreload" crossorigin href="/assets/shares-api-
|
|
96
|
-
<link rel="modulepreload" crossorigin href="/assets/capabilities-
|
|
97
|
-
<link rel="modulepreload" crossorigin href="/assets/use-composer-attachments-
|
|
98
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
99
|
-
<link rel="modulepreload" crossorigin href="/assets/notes-api-CYt2pGsm.js">
|
|
100
|
-
<link rel="modulepreload" crossorigin href="/assets/message-square-fVE7Ghj1.js">
|
|
101
|
-
<link rel="modulepreload" crossorigin href="/assets/pause-DuPxgSxk.js">
|
|
102
|
-
<link rel="modulepreload" crossorigin href="/assets/play-kxZvpBg8.js">
|
|
92
|
+
<link rel="modulepreload" crossorigin href="/assets/shares-api-Dbx3z6-1.js">
|
|
93
|
+
<link rel="modulepreload" crossorigin href="/assets/capabilities-D6RJG4QY.js">
|
|
94
|
+
<link rel="modulepreload" crossorigin href="/assets/use-composer-attachments-DNl7O3Vb.js">
|
|
95
|
+
<link rel="modulepreload" crossorigin href="/assets/notes-api-CBb944yw.js">
|
|
103
96
|
<link rel="modulepreload" crossorigin href="/assets/rotate-ccw-JM1TBLpp.js">
|
|
104
97
|
<link rel="modulepreload" crossorigin href="/assets/settings-2-D-csvaET.js">
|
|
105
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
106
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-realtime-
|
|
107
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-realtime-Ci1Jst5g.js">
|
|
98
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-realtime-store-CMJVSnvi.js">
|
|
99
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-realtime-DghCGfY_.js">
|
|
108
100
|
<link rel="modulepreload" crossorigin href="/assets/tool-activity-BtJkgjFf.js">
|
|
109
|
-
<link rel="modulepreload" crossorigin href="/assets/registry-api-
|
|
110
|
-
<link rel="modulepreload" crossorigin href="/assets/gateway-config-swr-
|
|
111
|
-
<link rel="modulepreload" crossorigin href="/assets/agents-admin-api-
|
|
112
|
-
<link rel="modulepreload" crossorigin href="/assets/session-manager-
|
|
113
|
-
<link rel="modulepreload" crossorigin href="/assets/voice-transcribe-api-
|
|
114
|
-
<link rel="modulepreload" crossorigin href="/assets/send-session-input-
|
|
115
|
-
<link rel="modulepreload" crossorigin href="/assets/theme-store-
|
|
116
|
-
<link rel="modulepreload" crossorigin href="/assets/extension-provider-
|
|
101
|
+
<link rel="modulepreload" crossorigin href="/assets/registry-api-Dsa2LvRt.js">
|
|
102
|
+
<link rel="modulepreload" crossorigin href="/assets/gateway-config-swr-Dv_A5FMu.js">
|
|
103
|
+
<link rel="modulepreload" crossorigin href="/assets/agents-admin-api-Bb3Kvz3X.js">
|
|
104
|
+
<link rel="modulepreload" crossorigin href="/assets/session-manager-C_OiKblh.js">
|
|
105
|
+
<link rel="modulepreload" crossorigin href="/assets/voice-transcribe-api-CVaU83Jc.js">
|
|
106
|
+
<link rel="modulepreload" crossorigin href="/assets/send-session-input-DypbVTT7.js">
|
|
107
|
+
<link rel="modulepreload" crossorigin href="/assets/theme-store-Db7hDESt.js">
|
|
108
|
+
<link rel="modulepreload" crossorigin href="/assets/extension-provider-B1PQGTtY.js">
|
|
117
109
|
<link rel="modulepreload" crossorigin href="/assets/loopi-Djb8XU3l.js">
|
|
118
|
-
<link rel="modulepreload" crossorigin href="/assets/models-hub-cache-
|
|
110
|
+
<link rel="modulepreload" crossorigin href="/assets/models-hub-cache-TjpL7hZ5.js">
|
|
119
111
|
<link rel="modulepreload" crossorigin href="/assets/skill-api-utils-C7V4JVXM.js">
|
|
120
112
|
<link rel="modulepreload" crossorigin href="/assets/date-formatters-CUZAyDEg.js">
|
|
121
113
|
<link rel="modulepreload" crossorigin href="/assets/settings-form-draft-Dy10ldo8.js">
|
|
122
114
|
<link rel="stylesheet" crossorigin href="/assets/markdown-view-Ct4sKkUf.css">
|
|
123
115
|
<link rel="stylesheet" crossorigin href="/assets/loopi-C09I2mNj.css">
|
|
124
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
116
|
+
<link rel="stylesheet" crossorigin href="/assets/index-a6ZvhclR.css">
|
|
125
117
|
</head>
|
|
126
118
|
<body>
|
|
127
119
|
<div id="root"></div>
|
package/dist/package.js
CHANGED
|
@@ -131,6 +131,7 @@ export interface AgentInstance {
|
|
|
131
131
|
activeProjectContext?: string;
|
|
132
132
|
interactionStateVersion?: number;
|
|
133
133
|
userContextAccessVersion: string;
|
|
134
|
+
executionToolPolicyVersion: string;
|
|
134
135
|
/** Declared env var names from skill_view; exec_command reads values from process.env at spawn time. */
|
|
135
136
|
skillEnvPassthroughKeys: Set<string>;
|
|
136
137
|
}
|
|
@@ -26,6 +26,7 @@ import { runPersistentLearningJob } from "./background-review/run-background-rev
|
|
|
26
26
|
import { applyConfigOverrides } from "../config/runtime-overrides.js";
|
|
27
27
|
import { isPersonalConversation } from "../personal-agent/repository.js";
|
|
28
28
|
import { PersonalPromptContext } from "../personal-agent/prompt-context.js";
|
|
29
|
+
import { resolveExecutionToolPolicy } from "./embedded/execution-tool-policy.js";
|
|
29
30
|
import { buildExecutionScopeContextForPrompt } from "./context/execution-scope.js";
|
|
30
31
|
import { clearBootstrapSnapshot } from "./bootstrap/bootstrap-cache.js";
|
|
31
32
|
import { resolveBootstrapContextSync } from "./bootstrap/bootstrap-files.js";
|
|
@@ -769,9 +770,10 @@ var AgentManager = class {
|
|
|
769
770
|
getOrCreateAgent(conversationId) {
|
|
770
771
|
const targetPath = this.getResolvedWorkspaceForSession(conversationId);
|
|
771
772
|
const existing = this.agents.get(conversationId);
|
|
773
|
+
const executionToolPolicyVersion = JSON.stringify(resolveExecutionToolPolicy(conversationId));
|
|
772
774
|
if (existing) {
|
|
773
775
|
const currentConfig = resolveEffectiveAgentProfileForSession(conversationId).config;
|
|
774
|
-
if (!existing.agent.state.isStreaming && (existing.resolvedWorkspacePath !== targetPath || JSON.stringify(existing.effectiveProfile.config) !== JSON.stringify(currentConfig))) this.removeAgent(conversationId);
|
|
776
|
+
if (!existing.agent.state.isStreaming && (existing.executionToolPolicyVersion !== executionToolPolicyVersion || existing.resolvedWorkspacePath !== targetPath || JSON.stringify(existing.effectiveProfile.config) !== JSON.stringify(currentConfig))) this.removeAgent(conversationId);
|
|
775
777
|
else {
|
|
776
778
|
this.refreshDynamicContextIfChanged(existing);
|
|
777
779
|
existing.lastUsedAt = Date.now();
|
|
@@ -807,6 +809,7 @@ var AgentManager = class {
|
|
|
807
809
|
activeProjectContext,
|
|
808
810
|
interactionStateVersion: this.getInteractionStateVersion(conversationId),
|
|
809
811
|
userContextAccessVersion: this.getUserContextAccessVersion(conversationId),
|
|
812
|
+
executionToolPolicyVersion,
|
|
810
813
|
skillEnvPassthroughKeys: /* @__PURE__ */ new Set()
|
|
811
814
|
});
|
|
812
815
|
log.debug({
|
|
@@ -3,8 +3,8 @@ import { TaskRepository, init_task_repository } from "../../tasks/task-repositor
|
|
|
3
3
|
import { getSessionMetadata } from "../../storage/sqlite/session-read-repository.js";
|
|
4
4
|
import { init_sqlite } from "../../storage/sqlite/index.js";
|
|
5
5
|
import { TaskReadModelProjector } from "../../tasks/task-read-model-projector.js";
|
|
6
|
-
import { sanitizeForPromptLiteral } from "../prompt/sanitize-for-prompt.js";
|
|
7
6
|
import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
|
|
7
|
+
import { sanitizeForPromptLiteral } from "../prompt/sanitize-for-prompt.js";
|
|
8
8
|
import { buildActiveProjectContextForPrompt } from "./project-context.js";
|
|
9
9
|
//#region src/agent/context/execution-scope.ts
|
|
10
10
|
init_sqlite();
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { AgentTool } from '@earendil-works/pi-agent-core';
|
|
2
|
+
export declare const TASK_EXECUTION_TOOL_IDS: readonly string[];
|
|
2
3
|
export declare const PERSONAL_REQUEST_TOOL_IDS: readonly ["xopc_tool_search", "xopc_tool_describe", "xopc_tool_execute", "personal_request_result", "personal_request_connection", "task_collaboration"];
|
|
3
4
|
export type ExecutionToolPolicy = Readonly<{
|
|
4
5
|
surface: 'agent' | 'personal_main' | 'personal_request_worker';
|
|
6
|
+
taskExecution: boolean;
|
|
5
7
|
nativeMcp: boolean;
|
|
6
8
|
externalMaterialization: boolean;
|
|
7
9
|
discovery: boolean;
|
|
@@ -4,10 +4,12 @@ import { getSessionMetadata } from "../../storage/sqlite/session-read-repository
|
|
|
4
4
|
import { init_session_repository } from "../../storage/sqlite/session-repository.js";
|
|
5
5
|
import { isPersonalConversation } from "../../personal-agent/repository.js";
|
|
6
6
|
import { PERSONAL_MAIN_TOOL_IDS } from "../../personal-agent/policy.js";
|
|
7
|
+
import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
|
|
7
8
|
//#region src/agent/embedded/execution-tool-policy.ts
|
|
8
9
|
init_request_repository();
|
|
9
10
|
init_connection();
|
|
10
11
|
init_session_repository();
|
|
12
|
+
const TASK_EXECUTION_TOOL_IDS = ["task_collaboration", "publish_task_result"];
|
|
11
13
|
const PERSONAL_REQUEST_TOOL_IDS = [
|
|
12
14
|
"xopc_tool_search",
|
|
13
15
|
"xopc_tool_describe",
|
|
@@ -22,21 +24,24 @@ function resolveExecutionToolPolicy(conversationId) {
|
|
|
22
24
|
if (isPersonalConversation(conversationId)) surface = "personal_main";
|
|
23
25
|
else if (personalRequestForExecution(conversationId) || isXopcDatabaseOpen() && getSessionMetadata(conversationId)?.customData?.personalReadRequestId) surface = "personal_request_worker";
|
|
24
26
|
const configured = surface === "agent";
|
|
27
|
+
const taskExecution = Boolean(isXopcDatabaseOpen() && new TaskConversationRepository().resolveActiveExecutionSession(conversationId));
|
|
25
28
|
return {
|
|
26
29
|
surface,
|
|
30
|
+
taskExecution,
|
|
27
31
|
nativeMcp: configured,
|
|
28
32
|
externalMaterialization: configured,
|
|
29
33
|
discovery: configured,
|
|
30
34
|
codemode: configured,
|
|
31
|
-
revision: "personal-tool-boundaries-
|
|
35
|
+
revision: "personal-tool-boundaries-v3"
|
|
32
36
|
};
|
|
33
37
|
}
|
|
34
38
|
function allowsExecutionTool(policy, name) {
|
|
35
|
-
if (
|
|
39
|
+
if (TASK_EXECUTION_TOOL_IDS.includes(name) && !policy.taskExecution) return false;
|
|
40
|
+
if (policy.surface === "agent") return !name.startsWith("personal_");
|
|
36
41
|
return (policy.surface === "personal_main" ? PERSONAL_MAIN_TOOL_IDS : PERSONAL_REQUEST_TOOL_IDS).includes(name);
|
|
37
42
|
}
|
|
38
43
|
function filterExecutionTools(policy, tools) {
|
|
39
44
|
return tools.filter((tool) => allowsExecutionTool(policy, tool.name));
|
|
40
45
|
}
|
|
41
46
|
//#endregion
|
|
42
|
-
export { PERSONAL_REQUEST_TOOL_IDS, allowsExecutionTool, filterExecutionTools, resolveExecutionToolPolicy };
|
|
47
|
+
export { PERSONAL_REQUEST_TOOL_IDS, TASK_EXECUTION_TOOL_IDS, allowsExecutionTool, filterExecutionTools, resolveExecutionToolPolicy };
|
|
@@ -624,7 +624,8 @@ async function runXopcEmbeddedTurnInner(params) {
|
|
|
624
624
|
block: true,
|
|
625
625
|
reason: "Tool is outside this execution scope."
|
|
626
626
|
};
|
|
627
|
-
|
|
627
|
+
const currentToolPolicy = resolveExecutionToolPolicy(toolPolicyConversationId);
|
|
628
|
+
if (currentToolPolicy.surface !== executionToolPolicy.surface || currentToolPolicy.taskExecution !== executionToolPolicy.taskExecution) {
|
|
628
629
|
policyStopped = true;
|
|
629
630
|
policyStopReason = "Execution identity changed during the run";
|
|
630
631
|
quarantineRunner = true;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createLogger } from "../../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../../utils/logger.js";
|
|
3
|
-
import { isCodemodeCoreRead } from "../tools/codemode-permissions.js";
|
|
4
3
|
import { filterExecutionTools, resolveExecutionToolPolicy } from "./execution-tool-policy.js";
|
|
4
|
+
import { isCodemodeCoreRead } from "../tools/codemode-permissions.js";
|
|
5
5
|
import { deferredToolContract, getXopcToolMetadata } from "./tool-metadata.js";
|
|
6
6
|
import { abortEmbeddedRun } from "./runs.js";
|
|
7
7
|
import { guardSessionManager } from "./session-tool-result-guard.js";
|
|
@@ -11,12 +11,12 @@ import { init_sqlite } from "../../storage/sqlite/index.js";
|
|
|
11
11
|
import { init_agent_scope, resolveDefaultAgentId } from "../agent-scope.js";
|
|
12
12
|
import { resolveUserContextSessionAccess } from "../../user-context/access-policy.js";
|
|
13
13
|
import { resolveEffectiveAgentConfigForAgent, resolveEffectiveAgentConfigForSession } from "../../config/agent-profile.js";
|
|
14
|
+
import { PERSONAL_TOOL_DESCRIPTIONS } from "../../personal-agent/policy.js";
|
|
14
15
|
import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
|
|
16
|
+
import { PERSONAL_REQUEST_TOOL_IDS, TASK_EXECUTION_TOOL_IDS, filterExecutionTools, resolveExecutionToolPolicy } from "../embedded/execution-tool-policy.js";
|
|
15
17
|
import { LOCAL_READ_MAX_CHARS } from "./local-read-budget.js";
|
|
16
18
|
import { createPersonalAttentionTool } from "./personal-attention-tool.js";
|
|
17
19
|
import { markCodemodeCoreRead } from "./codemode-permissions.js";
|
|
18
|
-
import { PERSONAL_TOOL_DESCRIPTIONS } from "../../personal-agent/policy.js";
|
|
19
|
-
import { PERSONAL_REQUEST_TOOL_IDS, filterExecutionTools, resolveExecutionToolPolicy } from "../embedded/execution-tool-policy.js";
|
|
20
20
|
import "../../../packages/browser-control-contract/src/index.js";
|
|
21
21
|
import { getEmbeddedExecutionRunId, getEmbeddedExecutionSession } from "../embedded/execution-context.js";
|
|
22
22
|
import { wrapToolsWithProtection } from "./executor.js";
|
|
@@ -116,7 +116,8 @@ var AgentToolsFactory = class AgentToolsFactory {
|
|
|
116
116
|
disabledTools: denied,
|
|
117
117
|
toolAllowlist: candidate.toolAllowlist
|
|
118
118
|
}).some((tool) => tool.name === name);
|
|
119
|
-
const
|
|
119
|
+
const taskActivatable = TASK_EXECUTION_TOOL_IDS.includes(name) && !denied.has(name) && (!candidate.toolAllowlist || candidate.toolAllowlist.includes(name));
|
|
120
|
+
const activatable = this.getLazyCapabilityToolNames().includes(name) || taskActivatable;
|
|
120
121
|
return {
|
|
121
122
|
condition: `tool:${name}`,
|
|
122
123
|
state: registered || activatable ? "verified" : "blocked",
|
|
@@ -249,8 +250,8 @@ var AgentToolsFactory = class AgentToolsFactory {
|
|
|
249
250
|
let allowed = options?.toolAllowlist ? new Set(options.toolAllowlist) : void 0;
|
|
250
251
|
const currentConversationId = () => options?.conversationId ?? this.deps.getCurrentContext?.()?.conversationId;
|
|
251
252
|
const executionConversationId = currentConversationId();
|
|
252
|
-
const executionToolPolicy =
|
|
253
|
-
const personalToolsConfigured = executionToolPolicy
|
|
253
|
+
const executionToolPolicy = resolveExecutionToolPolicy(executionConversationId ?? "");
|
|
254
|
+
const personalToolsConfigured = executionToolPolicy.surface === "personal_main";
|
|
254
255
|
const primary = getPrimary?.();
|
|
255
256
|
const modelHasVision = primary?.input?.includes("image") ?? false;
|
|
256
257
|
const cfg = this.deps.getConfig?.();
|
|
@@ -432,12 +433,11 @@ var AgentToolsFactory = class AgentToolsFactory {
|
|
|
432
433
|
})] : [],
|
|
433
434
|
createSendMediaTool(workspace, bus, deliveryContext),
|
|
434
435
|
createPublishArtifactsTool(workspace),
|
|
435
|
-
createTaskResultTool(currentConversationId),
|
|
436
|
-
createTaskCollaborationTool({
|
|
436
|
+
...executionToolPolicy.taskExecution ? [createTaskResultTool(currentConversationId), createTaskCollaborationTool({
|
|
437
437
|
...productToolDeps,
|
|
438
438
|
getWorkspace: () => workspace,
|
|
439
439
|
getCurrentConversationId: currentConversationId
|
|
440
|
-
}),
|
|
440
|
+
})] : [],
|
|
441
441
|
createReadMediaTool(personalToolsConfigured ? {
|
|
442
442
|
textOnly: true,
|
|
443
443
|
maxChars: LOCAL_READ_MAX_CHARS,
|
|
@@ -540,7 +540,10 @@ var AgentToolsFactory = class AgentToolsFactory {
|
|
|
540
540
|
...browserEnabled && this.deps.getBrowserAutomationService ? [createBrowserAutomationTool({ getBrowserAutomationService: this.deps.getBrowserAutomationService })] : [],
|
|
541
541
|
...this.deps.getAutomationService || this.deps.getSceneAccess || this.deps.getProjectService || this.deps.getNotesService || this.deps.getLocalAppService || this.deps.getChatPreviewService || this.deps.dispatchTaskEvents || this.deps.dispatchTaskRuns ? [createXopcUseTool(productToolDeps), ...personalToolsConfigured ? [
|
|
542
542
|
createPersonalTaskTool(productToolDeps),
|
|
543
|
-
createPersonalReadTool(
|
|
543
|
+
createPersonalReadTool({
|
|
544
|
+
...productToolDeps,
|
|
545
|
+
getCurrentConversationId: currentConversationId
|
|
546
|
+
}),
|
|
544
547
|
createPersonalResultTool(currentConversationId),
|
|
545
548
|
...createPersonalRequestTools(productToolDeps),
|
|
546
549
|
createPersonalAttentionTool({
|
|
@@ -649,11 +652,10 @@ var AgentToolsFactory = class AgentToolsFactory {
|
|
|
649
652
|
allowHostGit: () => getCommandIsolation()?.mode !== "docker"
|
|
650
653
|
}));
|
|
651
654
|
}
|
|
652
|
-
|
|
655
|
+
return filterExecutionTools(executionToolPolicy, filterToolsByDisabledSet(core.map(markCodemodeCoreRead), disabled).filter((tool) => (!allowed || allowed.has(tool.name)) && !(personalToolsConfigured && tool.name === "clarify")).map((tool) => personalToolsConfigured && !tool.name.startsWith("personal_") && PERSONAL_TOOL_DESCRIPTIONS[tool.name] ? {
|
|
653
656
|
...tool,
|
|
654
657
|
description: PERSONAL_TOOL_DESCRIPTIONS[tool.name]
|
|
655
|
-
} : tool);
|
|
656
|
-
return executionToolPolicy ? filterExecutionTools(executionToolPolicy, selected) : selected;
|
|
658
|
+
} : tool));
|
|
657
659
|
}
|
|
658
660
|
createCapabilityTools(capabilityNames, options) {
|
|
659
661
|
const disabled = options?.disabledTools;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { CapabilityDispatcher } from "../../capabilities/runtime/dispatcher.js";
|
|
2
|
+
import { isPersonalConversation } from "../../personal-agent/repository.js";
|
|
2
3
|
import { LOCAL_READ_MAX_CHARS } from "./local-read-budget.js";
|
|
4
|
+
import { getEmbeddedExecutionSession } from "../embedded/execution-context.js";
|
|
3
5
|
import { registerNoteReadCapabilities } from "../../notes/capabilities/read.js";
|
|
4
6
|
import { registerProjectReadCapabilities } from "../../projects/capabilities/read.js";
|
|
5
7
|
import { registerAutomationReadCapabilities } from "../../automations/capabilities/read.js";
|
|
@@ -90,6 +92,8 @@ function createPersonalReadTool(deps) {
|
|
|
90
92
|
supportsParallel: true,
|
|
91
93
|
idempotent: true,
|
|
92
94
|
async execute(_id, raw, signal) {
|
|
95
|
+
const conversationId = getEmbeddedExecutionSession() ?? deps.getCurrentConversationId?.();
|
|
96
|
+
if (!conversationId || !isPersonalConversation(conversationId)) throw new Error("Personal conversation is unavailable");
|
|
93
97
|
const input = raw;
|
|
94
98
|
if (![
|
|
95
99
|
"note",
|
|
@@ -90,7 +90,7 @@ function createTaskCollaborationTool(deps) {
|
|
|
90
90
|
name: "task_collaboration",
|
|
91
91
|
label: "Task collaboration",
|
|
92
92
|
parameters: Schema,
|
|
93
|
-
description: "Coordinate the current Task with its
|
|
93
|
+
description: "Coordinate the current Task with its originating conversation. get section brief reads the full task body in 4000-character pages (offset/nextOffset); section handoff lists the host-captured original request and selected versioned sources, Read the CURRENT handoff first; source indices can change across work revisions. Only entries marked materializable support materialize=true, with an explicit sourceIndex. section source with materialize=true copies a selected pinned workspace file OR published result artifact into your Task input directory; use the returned executionInputRoot as cwd and readOnlyPath as input, never the owner workspace path. Result body text uses read; materialize requires an exact artifact source. The returned copies are read-only: write revised outputs elsewhere and publish those new files. It grants no wider root access. Otherwise section source reads one sourceIndex (query for result search, revision for pinned extracted text). section evidence lists real successful tool reads, or reads a toolCallId in 4000-character pages. Evidence excerpts must cite that original toolCallId. get with section task reads constraints and waits; default get reads complete ordered messages (afterSequence/limit) or one entryId. post progress for meaningful changes; post question then stop this turn until answered. Initial handoff and source/tool IDs require no ack. Before continuing, post ack only for a user/main_agent collaboration entry of kind answer or instruction, with causationId equal to that entry ID and explain how the result will incorporate it. Confirmation is receipt and intent, not completed verification. Reuse the same Task and executor. Account authorization stays in the main connection UI; answers and instructions cannot change the selected connector/account or permit writes. Preserve idempotencyKey on retries.",
|
|
94
94
|
mutatesWorkspace: true,
|
|
95
95
|
mutationScope: "external",
|
|
96
96
|
requiresExclusiveWorkspaceLock: false,
|
|
@@ -7,8 +7,8 @@ import { compileAllowlist, evaluateAccess, hasBotMention, removeBotMention, reso
|
|
|
7
7
|
import { renderMarkdownWithMarkers } from "../markdown/render.js";
|
|
8
8
|
import { convertMarkdownTables } from "../markdown/tables.js";
|
|
9
9
|
import { buildCodeSpanIndex, createInlineCodeState } from "../markdown/code-spans.js";
|
|
10
|
-
import { ChannelManager, createChannelManager } from "./manager.js";
|
|
11
10
|
import "./format.js";
|
|
12
11
|
import { MessagePipeline, createEnvelopeTimestampHandler, createFilterCommandsHandler, createFilterEmptyHandler, createFilterSelfHandler, createPipeline, standardPreflightHandlers, standardProcessHandlers } from "./pipeline.js";
|
|
12
|
+
import { ChannelManager, createChannelManager } from "./manager.js";
|
|
13
13
|
import { collectSetupWizardChannels } from "./setup-wizard-discovery.js";
|
|
14
14
|
export { ChannelManager, MessagePipeline, buildCodeSpanIndex, chunkMarkdownIR, chunkText, collectSetupWizardChannels, compileAllowlist, convertMarkdownTables, createChannelManager, createEnvelopeTimestampHandler, createFilterCommandsHandler, createFilterEmptyHandler, createFilterSelfHandler, createInlineCodeState, createPipeline, evaluateAccess, findFenceSpanAt, getChannelPlugin, getChannelRegistryVersion, hasBotMention, isSafeFenceBreak, listChannelPlugins, markdownToIR, markdownToIRWithMeta, parseFenceSpans, parseFrontmatterBlock, removeBotMention, renderMarkdownWithMarkers, resolveAllowlistMatch, resolveAllowlistMatchSimple, resolveDmPolicy, resolveGroupPolicy, standardPreflightHandlers, standardProcessHandlers, syncChannelPluginsFromManager };
|
|
@@ -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 { ChannelHealthMonitor } from "./health-monitor.js";
|
|
4
|
-
import { ChannelPluginRegistry } from "./plugin-registry.js";
|
|
5
4
|
import { ChannelHeartbeatScheduler } from "./heartbeat-scheduler.js";
|
|
5
|
+
import { ChannelPluginRegistry } from "./plugin-registry.js";
|
|
6
6
|
import { ChannelOutboundSender } from "./outbound-sender.js";
|
|
7
7
|
import { ChannelLifecycleSupervisor } from "./lifecycle-supervisor.js";
|
|
8
8
|
//#region src/channels/manager.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { buildChannelCatalogForConfig } from "../../channels/catalog/channel-catalog-service.js";
|
|
2
2
|
import { loadConfig, saveConfig } from "../../config/loader.js";
|
|
3
|
-
import { formatExamples, register } from "../registry.js";
|
|
4
3
|
import { listChannelPairingState } from "../../channels/pairing/pairing-service.js";
|
|
5
4
|
import { approveChannelPairingFromCli } from "../../channels/pairing/approve-cli.js";
|
|
5
|
+
import { formatExamples, register } from "../registry.js";
|
|
6
6
|
import { colors } from "../utils/colors.js";
|
|
7
7
|
import { Command } from "commander";
|
|
8
8
|
//#region src/cli/commands/channels.ts
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { getStoreConnectorInstallPlan, installStoreConnector, listStoreConnectors } from "../../capabilities/store-connector.js";
|
|
2
2
|
import { loadConfig, saveConfig } from "../../config/loader.js";
|
|
3
3
|
import { register } from "../registry.js";
|
|
4
|
-
import { Command } from "commander";
|
|
5
4
|
import { confirm } from "@inquirer/prompts";
|
|
5
|
+
import { Command } from "commander";
|
|
6
6
|
//#region src/cli/commands/connectors.ts
|
|
7
7
|
function parsePairs(values, option) {
|
|
8
8
|
const output = {};
|
|
@@ -53,7 +53,7 @@ async function checkDatabaseSchema(ctx) {
|
|
|
53
53
|
id: "database-schema",
|
|
54
54
|
label: "Database schema",
|
|
55
55
|
status: "pass",
|
|
56
|
-
message: `SQLite schema v${status.dbVersion} (current release
|
|
56
|
+
message: `SQLite schema v${status.dbVersion} (current release v256).`,
|
|
57
57
|
hints: []
|
|
58
58
|
};
|
|
59
59
|
}
|
|
@@ -16,8 +16,8 @@ import { existsSync, readFileSync, statSync } from "node:fs";
|
|
|
16
16
|
import { execSync } from "node:child_process";
|
|
17
17
|
import { createHash } from "node:crypto";
|
|
18
18
|
import semver from "semver";
|
|
19
|
-
import { Command } from "commander";
|
|
20
19
|
import { confirm } from "@inquirer/prompts";
|
|
20
|
+
import { Command } from "commander";
|
|
21
21
|
//#region src/cli/commands/extension-marketplace.ts
|
|
22
22
|
init_paths();
|
|
23
23
|
const MANIFEST = "xopc.extension.json";
|
|
@@ -16,8 +16,8 @@ import { prepareUpdateGlobalDefaults } from "../../gateway/global-defaults-admin
|
|
|
16
16
|
import { disconnectProvider } from "../../providers/provider-disconnect.js";
|
|
17
17
|
import { colors } from "../utils/colors.js";
|
|
18
18
|
import { runCliOAuthLogin } from "../utils/oauth-login.js";
|
|
19
|
-
import { Command } from "commander";
|
|
20
19
|
import { input } from "@inquirer/prompts";
|
|
20
|
+
import { Command } from "commander";
|
|
21
21
|
//#region src/cli/commands/models.ts
|
|
22
22
|
init_credentials();
|
|
23
23
|
init_schema();
|
|
@@ -11,8 +11,8 @@ import { initWorkspace } from "../utils/init-workspace.js";
|
|
|
11
11
|
import { setupModel } from "./onboard/model.js";
|
|
12
12
|
import { getChannelConfigurators } from "./onboard/channels/registry.js";
|
|
13
13
|
import { setupChannels } from "./onboard/channels/index.js";
|
|
14
|
-
import { Command } from "commander";
|
|
15
14
|
import { select } from "@inquirer/prompts";
|
|
15
|
+
import { Command } from "commander";
|
|
16
16
|
//#region src/cli/commands/onboard.ts
|
|
17
17
|
init_repository();
|
|
18
18
|
init_schema();
|
|
@@ -7,8 +7,8 @@ import { DEFAULT_SECURITY_CONFIG, checkExtensionDirSafety, checkExtensionPathSaf
|
|
|
7
7
|
import { SlotRegistry, getSlotRegistry, registerSlotType } from "../slots.js";
|
|
8
8
|
import { ExtensionDiagnostics, ExtensionLoaderCacheImpl, getExtensionCache, getExtensionDiagnostics } from "../diagnostics.js";
|
|
9
9
|
import { ExtensionHookRunner, createHookContext, isHookEvent } from "../hooks.js";
|
|
10
|
-
import { registerExtensionCliProgram } from "./channel-helpers.js";
|
|
11
10
|
import { defineChannelPluginEntry } from "./channel-entry.js";
|
|
11
|
+
import { registerExtensionCliProgram } from "./channel-helpers.js";
|
|
12
12
|
import { lazyFunction, lazyModule } from "./lazy.js";
|
|
13
13
|
import { createMockExtensionApi, createTestGateway } from "./testing.js";
|
|
14
14
|
//#region src/extensions/sdk/index.ts
|
|
@@ -12,7 +12,8 @@ function voiceSettingsRevisions(config) {
|
|
|
12
12
|
transcription: {
|
|
13
13
|
stt: config.tools?.media?.audio,
|
|
14
14
|
language: config.voice?.language,
|
|
15
|
-
languageMode: config.voice?.languageMode
|
|
15
|
+
languageMode: config.voice?.languageMode,
|
|
16
|
+
input: config.voice?.input
|
|
16
17
|
},
|
|
17
18
|
speech: config.messages?.tts,
|
|
18
19
|
conversation: config.voice?.realtime
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { getSessionMetadata } from "../../../storage/sqlite/session-read-repository.js";
|
|
2
|
+
import { init_session_repository } from "../../../storage/sqlite/session-repository.js";
|
|
1
3
|
import { init_agent_scope, resolveDefaultAgentId } from "../../../agent/agent-scope.js";
|
|
2
4
|
import { resolveEffectiveAgentProfile } from "../../../config/agent-profile.js";
|
|
3
5
|
import { effectiveWorkspacePathForSession, projectWorkspacePath } from "../../../session/session-workspace.js";
|
|
@@ -12,6 +14,7 @@ import { buildReviewContext, resolveGitRoot } from "../../../review/review-git.j
|
|
|
12
14
|
import "../../../chat-commands/index.js";
|
|
13
15
|
//#region src/gateway/hono/routes/commands-skills.ts
|
|
14
16
|
init_agent_scope();
|
|
17
|
+
init_session_repository();
|
|
15
18
|
function parseMarketplaceProviderQuery(raw) {
|
|
16
19
|
const v = raw?.trim().toLowerCase();
|
|
17
20
|
if (v && isRegisteredProvider(v)) return v;
|
|
@@ -86,6 +89,10 @@ function registerCommandsSkillsRoutes(authenticated, deps) {
|
|
|
86
89
|
});
|
|
87
90
|
authenticated.get("/api/chat/skills", async (c) => {
|
|
88
91
|
const conversationId = c.req.query("conversationId")?.trim();
|
|
92
|
+
if (conversationId && !getSessionMetadata(conversationId)) return c.json({
|
|
93
|
+
ok: false,
|
|
94
|
+
error: "Conversation not found"
|
|
95
|
+
}, 404);
|
|
89
96
|
const agentId = c.req.query("agentId")?.trim() || resolveDefaultAgentId();
|
|
90
97
|
const payload = conversationId ? await service.marketplace.getSessionSkillsApi(conversationId) : service.marketplace.getAgentSkillsApi(agentId);
|
|
91
98
|
return c.json({
|
|
@@ -99,6 +106,10 @@ function registerCommandsSkillsRoutes(authenticated, deps) {
|
|
|
99
106
|
ok: false,
|
|
100
107
|
error: "Missing conversationId"
|
|
101
108
|
}, 400);
|
|
109
|
+
if (!getSessionMetadata(conversationId)) return c.json({
|
|
110
|
+
ok: false,
|
|
111
|
+
error: "Conversation not found"
|
|
112
|
+
}, 404);
|
|
102
113
|
const payload = await service.marketplace.getSessionWorkspaceTrustApi(conversationId);
|
|
103
114
|
return c.json({
|
|
104
115
|
ok: true,
|
|
@@ -120,6 +131,10 @@ function registerCommandsSkillsRoutes(authenticated, deps) {
|
|
|
120
131
|
ok: false,
|
|
121
132
|
error: "Expected { conversationId: string, trusted: boolean }"
|
|
122
133
|
}, 400);
|
|
134
|
+
if (!getSessionMetadata(conversationId)) return c.json({
|
|
135
|
+
ok: false,
|
|
136
|
+
error: "Conversation not found"
|
|
137
|
+
}, 404);
|
|
123
138
|
const payload = await service.marketplace.setSessionWorkspaceTrustApi(conversationId, body.trusted);
|
|
124
139
|
return c.json({
|
|
125
140
|
ok: true,
|
|
@@ -81,6 +81,9 @@ import "../infra/bus/index.js";
|
|
|
81
81
|
import { collectMediaUrisFromMessages, deleteMediaUris } from "../media/session-references.js";
|
|
82
82
|
import { AgentService } from "../agent/service.js";
|
|
83
83
|
import { bootstrapApplicationStateSync } from "../bootstrap/application-state.js";
|
|
84
|
+
import { setPairingBroadcastSink } from "../channels/pairing/pairing-events.js";
|
|
85
|
+
import { registerClarificationChannelRuntime } from "./clarify-runtime.js";
|
|
86
|
+
import { ChannelManager } from "../channels/manager.js";
|
|
84
87
|
import { ChatPreviewService } from "../chat-previews/service.js";
|
|
85
88
|
import "../chat-previews/index.js";
|
|
86
89
|
import "../config/index.js";
|
|
@@ -99,13 +102,8 @@ import { DiscussionSealer } from "../discussions/sealer.js";
|
|
|
99
102
|
import "../discussions/index.js";
|
|
100
103
|
import { EndpointToolRuntime } from "../endpoint-tools/runtime.js";
|
|
101
104
|
import "../endpoint-tools/index.js";
|
|
102
|
-
import { HomeCapabilityPreflightService } from "../home-intelligence/capability-preflight.js";
|
|
103
|
-
import { HomeAdviceGenerator } from "../home-intelligence/generator.js";
|
|
104
|
-
import { HomeIntelligenceHost } from "../home-intelligence/host.js";
|
|
105
|
-
import { HomeSnapshotBuilder } from "../home-intelligence/snapshot.js";
|
|
106
105
|
import { assertGatewayAuthConfigured, extractToken, resolveGatewayAuth, validateToken } from "./auth.js";
|
|
107
106
|
import { prepareAutomationAgentSession } from "./automation-agent-session.js";
|
|
108
|
-
import { registerClarificationChannelRuntime } from "./clarify-runtime.js";
|
|
109
107
|
import { stopTailscaleExposure } from "./tailscale-lifecycle.js";
|
|
110
108
|
import { getGatewayFileSpaceService } from "./file-space-service.js";
|
|
111
109
|
import { reconcileHomeIntelligenceAutomation } from "./home-intelligence-automation-reconciler.js";
|
|
@@ -119,8 +117,6 @@ import { WorkDiscoveryService } from "../work-discovery/service.js";
|
|
|
119
117
|
import { buildVoiceMemoryContext } from "../voice/realtime/memory-context.js";
|
|
120
118
|
import { buildVoicePersonaContext } from "../voice/realtime/persona-context.js";
|
|
121
119
|
import { voiceMemoryBudget, voicePersonaBudget } from "../voice/realtime/conversation-context.js";
|
|
122
|
-
import { setPairingBroadcastSink } from "../channels/pairing/pairing-events.js";
|
|
123
|
-
import { ChannelManager } from "../channels/manager.js";
|
|
124
120
|
import "../notes/index.js";
|
|
125
121
|
import { buildWorkflowChildTools } from "../agent/workflow/workflow-child-tools.js";
|
|
126
122
|
import { WorkflowRunService } from "../workflows/service/workflow-run-service.js";
|
|
@@ -160,12 +156,17 @@ import { GatewayReadiness } from "./startup-readiness.js";
|
|
|
160
156
|
import { createGatewayStartupTrace } from "./startup-trace.js";
|
|
161
157
|
import { GatewaySceneHost } from "./scenes/host.js";
|
|
162
158
|
import { TaskCollaborationDelivery } from "../tasks/task-collaboration-delivery.js";
|
|
159
|
+
import { TaskMainUpdateExhaustedError } from "../tasks/task-main-update-retry.js";
|
|
163
160
|
import { TaskMainUpdateDelivery } from "../tasks/task-main-update-delivery.js";
|
|
164
161
|
import { allowsPersonalTaskNotification, personalReplyNotification, personalRunDelegated } from "../personal-agent/notifications.js";
|
|
165
162
|
import { TaskMainUpdateDecisionService } from "../tasks/task-main-update-decision-service.js";
|
|
166
163
|
import { selectTaskMainUpdateAttempt, submitAndConfirmTaskMainUpdate } from "../tasks/task-main-update-input.js";
|
|
167
164
|
import { checkAppContextAccess, prepareAppContext } from "./service/app-context-access.js";
|
|
168
165
|
import { applyAutomaticVoiceLanguage, inferProductLanguageFromEnvironment, initializeVoiceDefaults } from "../voice/language-profile.js";
|
|
166
|
+
import { HomeAdviceGenerator } from "../home-intelligence/generator.js";
|
|
167
|
+
import { HomeIntelligenceHost } from "../home-intelligence/host.js";
|
|
168
|
+
import { HomeSnapshotBuilder } from "../home-intelligence/snapshot.js";
|
|
169
|
+
import { HomeCapabilityPreflightService } from "../home-intelligence/capability-preflight.js";
|
|
169
170
|
import crypto from "node:crypto";
|
|
170
171
|
//#region src/gateway/service.ts
|
|
171
172
|
init_session_repository();
|
|
@@ -879,6 +880,7 @@ var GatewayService = class {
|
|
|
879
880
|
if (this.voiceRealtime.hasConversation(input.conversationId)) {
|
|
880
881
|
const attempt = selectTaskMainUpdateAttempt(input.conversationId, input.clientMessageId, findSessionInput);
|
|
881
882
|
if (attempt.kind === "completed") return Promise.resolve(true);
|
|
883
|
+
if (attempt.kind === "exhausted") throw new TaskMainUpdateExhaustedError();
|
|
882
884
|
if (attempt.kind !== "new" || !attempt.clientMessageId) return Promise.resolve(false);
|
|
883
885
|
return this.voiceRealtime.offerTaskUpdate({
|
|
884
886
|
...input,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createLogger } from "../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../utils/logger.js";
|
|
3
|
+
import { HomeAdviceBudgetExceededError, isHomeProseLocalized } from "./generator.js";
|
|
3
4
|
import { homePatternKey } from "./strategy.js";
|
|
5
|
+
import { HomeAdvicePolicy } from "./policy.js";
|
|
4
6
|
import { HomeIntelligenceRepository } from "./repository.js";
|
|
5
7
|
import { HomeOpportunityApplicationService } from "./application-service.js";
|
|
6
|
-
import { HomeAdvicePolicy } from "./policy.js";
|
|
7
|
-
import { HomeAdviceBudgetExceededError, isHomeProseLocalized } from "./generator.js";
|
|
8
8
|
import { buildHomeOpportunityNotification } from "./notification.js";
|
|
9
9
|
import { createHash } from "node:crypto";
|
|
10
10
|
//#region src/home-intelligence/host.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { ProviderSetupProfile } from '@xopcai/gateway-contract';
|
|
2
|
-
/**
|
|
3
|
-
export declare function isInteractiveOnlyProvider(
|
|
2
|
+
/** Provider identity and endpoint do not restrict background or unknown calls. */
|
|
3
|
+
export declare function isInteractiveOnlyProvider(_provider: string, _baseUrl?: string): boolean;
|
|
4
4
|
export declare function getProviderSetupProfile(provider: string, name?: string, oauth?: boolean, baseUrl?: string): ProviderSetupProfile;
|