@xopcai/xopc 0.0.393 → 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.
Files changed (293) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/telegram/src/plugin.js +1 -1
  3. package/dist/extensions/telegram/xopc.extension.json +1 -1
  4. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-1AF2KGju.js → agent-avatar-dicebear-CIpp0ZG6.js} +1 -1
  5. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-DzkKx0Dv.js +1 -0
  6. package/dist/gateway/static/root/assets/{agent-plugin-dialog-cjJXJj_3.js → agent-plugin-dialog-dWqozfQm.js} +1 -1
  7. package/dist/gateway/static/root/assets/agents-CXG8SYr5.js +77 -0
  8. package/dist/gateway/static/root/assets/{app-management-settings-panel-B_MFhXXU.js → app-management-settings-panel-SmT1HDDg.js} +1 -1
  9. package/dist/gateway/static/root/assets/{appearance-settings-TYGidVnd.js → appearance-settings-Da9jf0ZC.js} +1 -1
  10. package/dist/gateway/static/root/assets/apps-page-DYaxWrTI.js +1 -0
  11. package/dist/gateway/static/root/assets/{archive-plugin-BrFfEp0u.js → archive-plugin-D6bFXdsA.js} +1 -1
  12. package/dist/gateway/static/root/assets/{automations-page-B7OofUPF.js → automations-page-CM3wI2Nr.js} +1 -1
  13. package/dist/gateway/static/root/assets/automations-workspace-BSMdKgxD.js +6 -0
  14. package/dist/gateway/static/root/assets/{binary-plugins-BfAWnYG8.js → binary-plugins-CYKGdQnF.js} +1 -1
  15. package/dist/gateway/static/root/assets/{block-editor-_Y-QwZ-3.js → block-editor-Fx38xFF4.js} +40 -40
  16. package/dist/gateway/static/root/assets/{browser-automation-inputs-DH9QHI9m.js → browser-automation-inputs-CQMc-Gol.js} +1 -1
  17. package/dist/gateway/static/root/assets/browser-automations-page-C4VhFvyu.js +3 -0
  18. package/dist/gateway/static/root/assets/browser-settings-page-8WZOkfL7.js +3 -0
  19. package/dist/gateway/static/root/assets/capabilities-page-dreSJEes.js +2 -0
  20. package/dist/gateway/static/root/assets/capabilities-settings-panel-9DviVNpG.js +8 -0
  21. package/dist/gateway/static/root/assets/{capability-header-actions-CFVx3iaZ.js → capability-header-actions-AbVbg7kZ.js} +1 -1
  22. package/dist/gateway/static/root/assets/channels-DqGCiVmr.js +1 -0
  23. package/dist/gateway/static/root/assets/{chat-terminal-dock-D3GuiG3N.js → chat-terminal-dock-djkqphez.js} +16 -16
  24. package/dist/gateway/static/root/assets/{computer-settings-page-CIbHDlp8.js → computer-settings-page-DE9zl7bK.js} +1 -1
  25. package/dist/gateway/static/root/assets/{connector-service-page-CDyCHkpK.js → connector-service-page--gB9vL3C.js} +1 -1
  26. package/dist/gateway/static/root/assets/connectors-page-Bcr2NNoX.js +1 -0
  27. package/dist/gateway/static/root/assets/{date-picker-C424c_g9.js → date-picker-D9q-5a8a.js} +1 -1
  28. package/dist/gateway/static/root/assets/{dependency-picker-BVJh9sYc.js → dependency-picker-Ci0dApIr.js} +1 -1
  29. package/dist/gateway/static/root/assets/{desktop-pet-Q52A8vjp.js → desktop-pet-CjaVVJDQ.js} +1 -1
  30. package/dist/gateway/static/root/assets/{desktop-pet-settings-CZr1CXxu.js → desktop-pet-settings-C7TFazyr.js} +1 -1
  31. package/dist/gateway/static/root/assets/device-pairing-wizard-B6S-RpNJ.js +1 -0
  32. package/dist/gateway/static/root/assets/{directory-picker-path-field-C6cUgrvg.js → directory-picker-path-field-BpymM_E_.js} +1 -1
  33. package/dist/gateway/static/root/assets/{extension-debug-page-DyyfC4gA.js → extension-debug-page-CABAv66K.js} +1 -1
  34. package/dist/gateway/static/root/assets/{extension-page-Dho9o3ZZ.js → extension-page-B3dACpKA.js} +1 -1
  35. package/dist/gateway/static/root/assets/{extension-settings-page-CdnIGyCH.js → extension-settings-page-B3bwBvgp.js} +1 -1
  36. package/dist/gateway/static/root/assets/gateway-settings-CzA1bTXZ.js +1 -0
  37. package/dist/gateway/static/root/assets/{highlighted-body-KQOG7T2V-BNpj_mIM.js → highlighted-body-KQOG7T2V-53FJXO9w.js} +1 -1
  38. package/dist/gateway/static/root/assets/home-page-KRPp-I4O.js +2 -0
  39. package/dist/gateway/static/root/assets/{image-generation-api-DwkO2y46.js → image-generation-api-DWRmAkoe.js} +1 -1
  40. package/dist/gateway/static/root/assets/{imports-page-BrYvomnU.js → imports-page-B0Y8iy6G.js} +1 -1
  41. package/dist/gateway/static/root/assets/index-BvAvfZ5R.js +260 -0
  42. package/dist/gateway/static/root/assets/index-CMRCop32.css +1 -0
  43. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-BveDYfYk.js → keyboard-shortcuts-settings-CjkACa5H.js} +1 -1
  44. package/dist/gateway/static/root/assets/{local-app-workbench-page-CcIi1BhT.js → local-app-workbench-page-DROP52YA.js} +1 -1
  45. package/dist/gateway/static/root/assets/{local-apps-page-B1a69mlV.js → local-apps-page-BELUF7Pg.js} +1 -1
  46. package/dist/gateway/static/root/assets/logs-page-DBm3g8Mu.js +2 -0
  47. package/dist/gateway/static/root/assets/management-settings-CcsW4Z-r.js +1 -0
  48. package/dist/gateway/static/root/assets/{media-plugins-CR1fp6IL.js → media-plugins-UU3qSAhq.js} +1 -1
  49. package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-CG664NRI.js +1 -0
  50. package/dist/gateway/static/root/assets/note-detail-panel-BS9XnQ8a.js +5 -0
  51. package/dist/gateway/static/root/assets/notes-page-Cfy_WnU-.js +8 -0
  52. package/dist/gateway/static/root/assets/{page-context-capture-button-Cn_WK68Y.js → page-context-capture-button-BD7T7uqR.js} +1 -1
  53. package/dist/gateway/static/root/assets/personal-page-DZEh3dXq.js +1 -0
  54. package/dist/gateway/static/root/assets/{preview-open-alternatives-3NbiWGRG.js → preview-open-alternatives--3aGeYJ5.js} +1 -1
  55. package/dist/gateway/static/root/assets/{product-open-page-KKE5-V8k.js → product-open-page-B0ZxsnFO.js} +1 -1
  56. package/dist/gateway/static/root/assets/{product-preview-content-BM0oqNxi.js → product-preview-content-CheSHKJq.js} +1 -1
  57. package/dist/gateway/static/root/assets/project-detail-page-Bm7bVHVo.js +1 -0
  58. package/dist/gateway/static/root/assets/projects-page-DPA6QL_Z.js +1 -0
  59. package/dist/gateway/static/root/assets/remote-access-hub-Pxf4EiKh.js +1 -0
  60. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-W0X_Fy7b.js → runtime-tools-settings-panel-2BnqCeNt.js} +1 -1
  61. package/dist/gateway/static/root/assets/{schema-form-DNM2Zdyr.js → schema-form-KmnpEBtP.js} +1 -1
  62. package/dist/gateway/static/root/assets/sessions-page-d0anT7iK.js +1 -0
  63. package/dist/gateway/static/root/assets/settings-advanced-gate-DfDaPyh5.js +1 -0
  64. package/dist/gateway/static/root/assets/{settings-form-section-DCSHPFAN.js → settings-form-section-Db5XOKMH.js} +1 -1
  65. package/dist/gateway/static/root/assets/{settings-page-B18UbbaJ.js → settings-page-aRM6ax6B.js} +1 -1
  66. package/dist/gateway/static/root/assets/setup-status-panel-DCNAcalA.js +1 -0
  67. package/dist/gateway/static/root/assets/{share-preview-page-BLnS3hoH.js → share-preview-page-DR3Esqa_.js} +1 -1
  68. package/dist/gateway/static/root/assets/shares-settings-CvEwnQch.js +1 -0
  69. package/dist/gateway/static/root/assets/{skill-api-CcYGkRPL.js → skill-api-BJBU8YgD.js} +1 -1
  70. package/dist/gateway/static/root/assets/{skill-reload-api-PnUZjoPK.js → skill-reload-api-DEQ1bdN9.js} +1 -1
  71. package/dist/gateway/static/root/assets/skills-page-BXNFSIIy.js +2 -0
  72. package/dist/gateway/static/root/assets/sliding-indicator-hwz0sx3h.js +1 -0
  73. package/dist/gateway/static/root/assets/{style-BQqU-1pP.js → style-Df_wL13k.js} +1 -1
  74. package/dist/gateway/static/root/assets/{system-settings-panel-C974myUM.js → system-settings-panel-DWnyafB7.js} +1 -1
  75. package/dist/gateway/static/root/assets/task-detail-page-DyHDW8A5.js +2 -0
  76. package/dist/gateway/static/root/assets/tracing-settings-page-vvREqbQ3.js +1 -0
  77. package/dist/gateway/static/root/assets/{tunnel-api-DWyI3uA3.js → tunnel-api-BEzsymVO.js} +1 -1
  78. package/dist/gateway/static/root/assets/usage-page-ByYOqsHo.js +1 -0
  79. package/dist/gateway/static/root/assets/{use-autosave-CY0YuljR.js → use-autosave-Cp4kZ3E-.js} +1 -1
  80. package/dist/gateway/static/root/assets/user-model-page-D0qeCXwD.js +2 -0
  81. package/dist/gateway/static/root/assets/{voice-api-key-field-BNG4ixJE.js → voice-api-key-field-DH3OdR-w.js} +1 -1
  82. package/dist/gateway/static/root/assets/{work-discovery-overlay-CohIoAre.js → work-discovery-overlay-CICdfBBR.js} +1 -1
  83. package/dist/gateway/static/root/assets/workflow-run-setup-panel-VIJQCUY5.js +3 -0
  84. package/dist/gateway/static/root/assets/workflows-page-DDYp2Jbo.js +6 -0
  85. package/dist/gateway/static/root/assets/{xopc-cloud-account-card-C_COnY_B.js → xopc-cloud-account-card-BTMfgVTk.js} +1 -1
  86. package/dist/gateway/static/root/index.html +3 -2
  87. package/dist/package.js +1 -1
  88. package/dist/src/agent/agent-manager.js +10 -10
  89. package/dist/src/agent/background-review/run-background-review.js +5 -5
  90. package/dist/src/agent/coding/run-verification.js +4 -4
  91. package/dist/src/agent/context/execution-context.js +3 -3
  92. package/dist/src/agent/context/project-context.js +3 -3
  93. package/dist/src/agent/embedded/agent-profile-context.js +10 -4
  94. package/dist/src/agent/embedded/execution-tool-policy.js +1 -1
  95. package/dist/src/agent/embedded/run-for-session.js +2 -2
  96. package/dist/src/agent/embedded/run-turn.js +1 -1
  97. package/dist/src/agent/external-tools/cliProvider.js +1 -1
  98. package/dist/src/agent/external-tools/composio-provider.js +1 -1
  99. package/dist/src/agent/inbound/attachment-pipeline.js +3 -3
  100. package/dist/src/agent/prompt/response-language.js +1 -1
  101. package/dist/src/agent/prompt/service-prompt-builder.js +1 -1
  102. package/dist/src/agent/prompt/system-prompt-params.js +1 -1
  103. package/dist/src/agent/sandbox/exec-policy.js +1 -1
  104. package/dist/src/agent/service/process-direct-streaming.js +1 -1
  105. package/dist/src/agent/service.js +9 -9
  106. package/dist/src/agent/session/session-config-service.js +2 -2
  107. package/dist/src/agent/session/session-inspector.js +1 -1
  108. package/dist/src/agent/skills/filesystem-watcher.js +1 -1
  109. package/dist/src/agent/skills/hub-pull.js +2 -2
  110. package/dist/src/agent/skills/marketplace/adapters/store/adapter.js +1 -1
  111. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +1 -1
  112. package/dist/src/agent/tasks/task-judge-service.js +6 -6
  113. package/dist/src/agent/tools/exec-command.d.ts +2 -0
  114. package/dist/src/agent/tools/exec-command.js +45 -1
  115. package/dist/src/agent/tools/factory.js +4 -4
  116. package/dist/src/agent/tools/personal-attention-tool.js +1 -1
  117. package/dist/src/agent/tools/personal-request-result-tool.js +1 -1
  118. package/dist/src/agent/tools/personal-request-tool.js +2 -2
  119. package/dist/src/agent/tools/personal-task-tool.js +6 -6
  120. package/dist/src/agent/tools/publish-artifacts.js +1 -1
  121. package/dist/src/agent/tools/review-workspace.js +1 -1
  122. package/dist/src/agent/tools/skills-tools.js +1 -1
  123. package/dist/src/agent/tools/task-collaboration-tool.js +3 -3
  124. package/dist/src/agent/tools/write.js +1 -1
  125. package/dist/src/agent/tools/xopc-use-tool.js +4 -4
  126. package/dist/src/agent-matching/delegation-service.js +1 -1
  127. package/dist/src/ai-assist/text-assist.js +1 -1
  128. package/dist/src/auth/oauth/xopc-cloud.js +2 -2
  129. package/dist/src/auth/sync-provider-auth.js +1 -1
  130. package/dist/src/automations/domain/index.js +1 -1
  131. package/dist/src/automations/draft/automation-draft-service.js +1 -1
  132. package/dist/src/automations/index.js +2 -2
  133. package/dist/src/capabilities/store-connector.js +2 -2
  134. package/dist/src/channels/index.js +1 -1
  135. package/dist/src/channels/manager.js +1 -1
  136. package/dist/src/chat-commands/builtins/config.js +1 -1
  137. package/dist/src/chat-commands/context.js +1 -1
  138. package/dist/src/cli/commands/channels.js +1 -1
  139. package/dist/src/cli/commands/connectors.js +1 -1
  140. package/dist/src/cli/commands/extension-marketplace.js +2 -2
  141. package/dist/src/cli/commands/models.js +1 -1
  142. package/dist/src/cli/commands/onboard/model.js +1 -1
  143. package/dist/src/cli/commands/onboard.js +1 -1
  144. package/dist/src/cli/commands/skills.js +1 -1
  145. package/dist/src/computer/flows.js +1 -1
  146. package/dist/src/config/agent-model-intents.js +1 -1
  147. package/dist/src/config/index.js +1 -1
  148. package/dist/src/config/loader.js +1 -1
  149. package/dist/src/config/models-json.d.ts +16 -16
  150. package/dist/src/config/models-json.js +1 -1
  151. package/dist/src/config/schema.js +6 -6
  152. package/dist/src/connectors/composio-sessions.js +1 -1
  153. package/dist/src/connectors/composio.js +1 -1
  154. package/dist/src/connectors/connected-source-ingestion.js +1 -1
  155. package/dist/src/connectors/connected-source-understanding.js +2 -2
  156. package/dist/src/connectors/health.js +1 -1
  157. package/dist/src/extensions/agent-plugins/auth.js +1 -1
  158. package/dist/src/extensions/agent-plugins/credentials.js +1 -1
  159. package/dist/src/extensions/agent-plugins/source-http-fetch.js +1 -1
  160. package/dist/src/extensions/api.js +1 -1
  161. package/dist/src/extensions/install.js +1 -1
  162. package/dist/src/extensions/sdk/index.js +1 -1
  163. package/dist/src/extensions/update.js +1 -1
  164. package/dist/src/gateway/file-path-classifier.js +1 -1
  165. package/dist/src/gateway/hono/lib/config-payload.js +1 -1
  166. package/dist/src/gateway/hono/routes/commands-skills.js +3 -3
  167. package/dist/src/gateway/hono/routes/config-patch/misc.js +4 -4
  168. package/dist/src/gateway/hono/routes/context-sources.js +2 -2
  169. package/dist/src/gateway/hono/routes/memory-learning.js +2 -2
  170. package/dist/src/gateway/hono/routes/models.js +2 -2
  171. package/dist/src/gateway/hono/routes/projects.js +3 -3
  172. package/dist/src/gateway/hono/routes/runtime-tools.js +1 -1
  173. package/dist/src/gateway/hono/routes/session-input-handler.js +1 -1
  174. package/dist/src/gateway/hono/routes/sessions.js +1 -1
  175. package/dist/src/gateway/hono/routes/tasks.js +1 -1
  176. package/dist/src/gateway/hono/routes/user-model-refresh.js +1 -1
  177. package/dist/src/gateway/hono/routes/user-model.js +6 -6
  178. package/dist/src/gateway/hono/routes/voice.js +1 -1
  179. package/dist/src/gateway/media-access.js +1 -1
  180. package/dist/src/gateway/service/agent-runner.js +3 -3
  181. package/dist/src/gateway/service/marketplace-service.js +2 -2
  182. package/dist/src/gateway/service/run-gateway-agent.js +1 -1
  183. package/dist/src/gateway/service/session-command-service.js +2 -2
  184. package/dist/src/gateway/service.js +31 -31
  185. package/dist/src/gateway/session-context-summary.js +4 -4
  186. package/dist/src/home-intelligence/generator.js +2 -2
  187. package/dist/src/home-intelligence/host.js +2 -2
  188. package/dist/src/imports/compatibility.js +1 -1
  189. package/dist/src/imports/inventory.js +3 -3
  190. package/dist/src/imports/productImport.js +2 -2
  191. package/dist/src/imports/runtime.js +1 -1
  192. package/dist/src/knowledge/connected-knowledge-pipeline.js +1 -1
  193. package/dist/src/knowledge-memory/repository.js +1 -1
  194. package/dist/src/local-apps/service.js +2 -2
  195. package/dist/src/memory-learning/source-learning.js +2 -2
  196. package/dist/src/notes/index.js +1 -1
  197. package/dist/src/notes/service.js +3 -3
  198. package/dist/src/personal-agent/capability-service.js +2 -2
  199. package/dist/src/personal-agent/proactivity/routes.js +1 -1
  200. package/dist/src/personal-agent/proactivity/service.js +5 -5
  201. package/dist/src/personal-agent/prompt-context.js +7 -7
  202. package/dist/src/personal-agent/reply-composer.js +7 -7
  203. package/dist/src/personal-agent/request-delivery.js +2 -2
  204. package/dist/src/personal-agent/request-service.js +6 -6
  205. package/dist/src/personal-agent/result-reader.js +1 -1
  206. package/dist/src/personal-agent/service.js +1 -1
  207. package/dist/src/personal-agent/task-cancel.js +1 -1
  208. package/dist/src/platform/index.js +1 -1
  209. package/dist/src/projects/index.js +1 -1
  210. package/dist/src/projects/project-agent-suggestion.js +1 -1
  211. package/dist/src/projects/project-service.js +1 -1
  212. package/dist/src/projects/project-skill-service.js +2 -2
  213. package/dist/src/projects/workspace.js +1 -1
  214. package/dist/src/providers/cloud-thinking.d.ts +3 -0
  215. package/dist/src/providers/cloud-thinking.js +13 -0
  216. package/dist/src/providers/model-registry.js +4 -1
  217. package/dist/src/providers/register-runtime-providers.js +3 -0
  218. package/dist/src/routing/agent-session-key.js +1 -1
  219. package/dist/src/session/index.js +1 -1
  220. package/dist/src/session/init-session-turn.js +1 -1
  221. package/dist/src/session/resolve-session.js +1 -1
  222. package/dist/src/session/store.js +2 -2
  223. package/dist/src/share/hosted-session-share.js +2 -2
  224. package/dist/src/share/session-share-service.js +1 -1
  225. package/dist/src/tasks/capabilities/read.js +2 -2
  226. package/dist/src/tasks/capabilities/write.js +1 -1
  227. package/dist/src/tasks/home-query-service.js +1 -1
  228. package/dist/src/tasks/index.js +3 -3
  229. package/dist/src/tasks/task-allocation-service.js +5 -5
  230. package/dist/src/tasks/task-application-service.js +6 -6
  231. package/dist/src/tasks/task-collaboration-delivery.js +1 -1
  232. package/dist/src/tasks/task-context-assembler.js +2 -2
  233. package/dist/src/tasks/task-contract-planner.js +1 -1
  234. package/dist/src/tasks/task-handoff-service.js +1 -1
  235. package/dist/src/tasks/task-handoff.js +5 -5
  236. package/dist/src/tasks/task-main-update-decision-service.js +3 -3
  237. package/dist/src/tasks/task-model-call.js +1 -1
  238. package/dist/src/tasks/task-research-result.js +4 -4
  239. package/dist/src/tasks/task-result-delivery-repository.js +1 -1
  240. package/dist/src/tasks/task-result-delivery-service.js +2 -2
  241. package/dist/src/tasks/task-run-coordinator.js +4 -4
  242. package/dist/src/tasks/task-run-dispatcher.js +1 -1
  243. package/dist/src/tui/backends/embedded-backend.js +5 -5
  244. package/dist/src/tui/tui-commands.js +2 -2
  245. package/dist/src/tui/tui-skills-autocomplete.js +1 -1
  246. package/dist/src/tui/tui-startup-resources.js +3 -3
  247. package/dist/src/tui/tui.js +1 -1
  248. package/dist/src/user-context/access-policy.js +2 -2
  249. package/dist/src/user-model/bootstrap.js +1 -1
  250. package/dist/src/user-model/capture/executor.js +1 -1
  251. package/dist/src/user-model/index.js +2 -2
  252. package/dist/src/voice/realtime/memory-context.js +5 -5
  253. package/dist/src/voice/realtime/runtime.js +1 -1
  254. package/dist/src/work-discovery/incremental-repository.js +1 -1
  255. package/dist/src/work-discovery/service.js +7 -7
  256. package/dist/src/workflows/context/workflow-context.js +1 -1
  257. package/dist/src/workflows/service/workflow-run-service.js +5 -5
  258. package/package.json +3 -3
  259. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CPJr7NRR.js +0 -1
  260. package/dist/gateway/static/root/assets/agents-DW3TlnIg.js +0 -77
  261. package/dist/gateway/static/root/assets/apps-page-DOkyvOF0.js +0 -1
  262. package/dist/gateway/static/root/assets/automations-workspace-DIod-bfm.js +0 -6
  263. package/dist/gateway/static/root/assets/browser-automations-page-B_SnD9B0.js +0 -3
  264. package/dist/gateway/static/root/assets/browser-settings-page-BPlqYpMM.js +0 -3
  265. package/dist/gateway/static/root/assets/capabilities-page-BtzZvMIK.js +0 -2
  266. package/dist/gateway/static/root/assets/capabilities-settings-panel-WzoG3oBb.js +0 -8
  267. package/dist/gateway/static/root/assets/channels-BXA55GY2.js +0 -1
  268. package/dist/gateway/static/root/assets/connectors-page-DA2b6cJu.js +0 -1
  269. package/dist/gateway/static/root/assets/device-pairing-wizard-D_WWTsze.js +0 -1
  270. package/dist/gateway/static/root/assets/gateway-settings-D0KSQRNZ.js +0 -1
  271. package/dist/gateway/static/root/assets/home-page-CH_A0W29.js +0 -2
  272. package/dist/gateway/static/root/assets/index-CKdOZoVu.js +0 -260
  273. package/dist/gateway/static/root/assets/index-Rxjt-jc3.css +0 -1
  274. package/dist/gateway/static/root/assets/logs-page-Us1jv3C4.js +0 -2
  275. package/dist/gateway/static/root/assets/management-settings-C9RAM7-s.js +0 -1
  276. package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-DQdcaMiu.js +0 -1
  277. package/dist/gateway/static/root/assets/note-detail-panel-Q4yRx9iZ.js +0 -5
  278. package/dist/gateway/static/root/assets/notes-page-C9qu16IN.js +0 -8
  279. package/dist/gateway/static/root/assets/personal-page-DrP6hEcg.js +0 -1
  280. package/dist/gateway/static/root/assets/project-detail-page-CPZrwf8n.js +0 -1
  281. package/dist/gateway/static/root/assets/projects-page-Besfx_07.js +0 -1
  282. package/dist/gateway/static/root/assets/remote-access-hub-CTDghL5L.js +0 -1
  283. package/dist/gateway/static/root/assets/sessions-page-Dxtablvd.js +0 -1
  284. package/dist/gateway/static/root/assets/settings-advanced-gate-C7zklouD.js +0 -1
  285. package/dist/gateway/static/root/assets/setup-status-panel-JoSfluza.js +0 -1
  286. package/dist/gateway/static/root/assets/shares-settings-DcIuPJK3.js +0 -1
  287. package/dist/gateway/static/root/assets/skills-page-D3JAw62U.js +0 -2
  288. package/dist/gateway/static/root/assets/task-detail-page-CiljFekC.js +0 -2
  289. package/dist/gateway/static/root/assets/tracing-settings-page-DEE75MUn.js +0 -1
  290. package/dist/gateway/static/root/assets/usage-page-DJYvbxk7.js +0 -1
  291. package/dist/gateway/static/root/assets/user-model-page-eHZJD6Fw.js +0 -2
  292. package/dist/gateway/static/root/assets/workflow-run-setup-panel-BXI8eyYh.js +0 -3
  293. package/dist/gateway/static/root/assets/workflows-page-CVti0u-l.js +0 -6
@@ -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: changed ? "agent_configuration_updated" : "agent_configuration_current",
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
- current: configuration
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(),
@@ -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();
@@ -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 { assertProviderUsage, getModelUsageOrigin, init_model_usage, isProviderUsageScopeError } from "../../providers/model-usage.js";
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";
@@ -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";
@@ -8,8 +8,8 @@ import { init_sqlite } from "../../storage/sqlite/index.js";
8
8
  import { CapabilityError } from "../../capabilities/runtime/errors.js";
9
9
  import { ExternalEffectNotAppliedError, executeExternalOperation } from "../../capabilities/runtime/external-operations.js";
10
10
  import "../../capabilities/runtime/dispatcher.js";
11
- import { connectorArgumentsHash, connectorArgumentsPreview } from "../../connectors/approval.js";
12
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";
@@ -7,9 +7,9 @@ import { bindObjectiveAccount, connectionBinding, connectionBindings, connectorO
7
7
  import { init_sqlite } from "../../storage/sqlite/index.js";
8
8
  import { CapabilityError } from "../../capabilities/runtime/errors.js";
9
9
  import { ExternalEffectNotAppliedError, executeExternalOperation } from "../../capabilities/runtime/external-operations.js";
10
- import { connectorArgumentsHash, connectorArgumentsPreview } from "../../connectors/approval.js";
11
10
  import { canAccessConnectorAccount, currentAccountConnections } from "../../connectors/account-access.js";
12
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,10 +1,10 @@
1
1
  import { stripRuntimeUserMessageEnvelope } from "../../../packages/gateway-contract/src/user-message-display.js";
2
2
  import { init_src } from "../../../packages/gateway-contract/src/index.js";
3
- import { extractProfileAgentId } from "../../config/agent-profile.js";
4
- import { readAgentMessageContent } from "../memory/agent-message-access.js";
5
- import { isPersonalConversation } from "../../personal-agent/repository.js";
6
3
  import { mimeTypeFromMediaPath } from "../../media/store.js";
7
4
  import { readMediaReference } from "../../media/media-reference.js";
5
+ import { isPersonalConversation } from "../../personal-agent/repository.js";
6
+ import { extractProfileAgentId } from "../../config/agent-profile.js";
7
+ import { readAgentMessageContent } from "../memory/agent-message-access.js";
8
8
  import { MODEL_IMAGE_MAX_BYTES, MODEL_IMAGE_SOURCE_MAX_BYTES, prepareImageForModel } from "../image/prepare-image-for-model.js";
9
9
  import { isImageInboundAttachment } from "../../channels/attachments/attachment-classifiers.js";
10
10
  import "../../channels/attachments/inbound-persist.js";
@@ -2,9 +2,9 @@ import { isXopcDatabaseOpen } from "../../storage/sqlite/connection.js";
2
2
  import { TaskRepository, init_task_repository } from "../../tasks/task-repository.js";
3
3
  import { getSessionConfig } from "../../storage/sqlite/config-repository.js";
4
4
  import { init_sqlite } from "../../storage/sqlite/index.js";
5
- import { init_response_language, resolveResponseLanguage } from "../../i18n/response-language.js";
6
5
  import { resolveTaskLocale } from "../../tasks/task-language.js";
7
6
  import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
7
+ import { init_response_language, resolveResponseLanguage } from "../../i18n/response-language.js";
8
8
  //#region src/agent/prompt/response-language.ts
9
9
  init_response_language();
10
10
  init_sqlite();
@@ -6,9 +6,9 @@ import { getInteractionState } from "../../storage/sqlite/interaction-state-repo
6
6
  import { DEFAULT_USER_TRUST_LEVEL, init_trust_policy } from "../../user-context/trust-policy.js";
7
7
  import { getUserTrustPolicy } from "../../storage/sqlite/user-trust-repository.js";
8
8
  import { init_sqlite } from "../../storage/sqlite/index.js";
9
- import { appendStablePromptSection } from "./cache-boundary.js";
10
9
  import { getUserTimezone } from "../../user-model/repository.js";
11
10
  import "../../user-model/index.js";
11
+ import { appendStablePromptSection } from "./cache-boundary.js";
12
12
  import { resolveSystemPromptBuildParams } from "./system-prompt-params.js";
13
13
  import { buildSystemPrompt } from "./system-prompt.js";
14
14
  import { resolveResponseLanguageForSession } from "./response-language.js";
@@ -2,8 +2,8 @@ import { PACKAGE_VERSION, init_package_version } from "../../package-version.js"
2
2
  import { getConversationRouting } from "../../storage/sqlite/conversation-repository.js";
3
3
  import { isCronConversationId, isSubagentConversationId } from "../../routing/agent-session-key.js";
4
4
  import { init_session_key } from "../../routing/session-key.js";
5
- import { normalizePromptSection } from "./cache-boundary.js";
6
5
  import { isPersonalConversation } from "../../personal-agent/repository.js";
6
+ import { normalizePromptSection } from "./cache-boundary.js";
7
7
  import { listChannelPlugins } from "../../channels/plugins/registry.js";
8
8
  //#region src/agent/prompt/system-prompt-params.ts
9
9
  init_package_version();
@@ -1,7 +1,7 @@
1
1
  import { createLogger } from "../../utils/logger/index.js";
2
2
  import { init_logger } from "../../utils/logger.js";
3
- import { validatePath, validateWritePath } from "./path-policy.js";
4
3
  import { prepareSafeToolEnv } from "./sanitize-env-vars.js";
4
+ import { validatePath, validateWritePath } from "./path-policy.js";
5
5
  import { auditCommand, validateCommand } from "./command-validator.js";
6
6
  import { DEFAULT_SANDBOX_CONFIG } from "./types.js";
7
7
  import { resolve } from "node:path";
@@ -5,13 +5,13 @@ import { getClarificationResumeInput, init_clarification_wait_repository } from
5
5
  import { getConnectionResumeInput, init_connection_wait_repository } from "../../storage/sqlite/connection-wait-repository.js";
6
6
  import { init_agent_scope, resolveDefaultAgentId } from "../agent-scope.js";
7
7
  import { init_agent_session_key, resolveAgentMainConversationId } from "../../routing/agent-session-key.js";
8
+ import { isSessionSourceBinding, summarizeSourceContext } from "../source-context/types.js";
8
9
  import { init_model_usage, modelUsageOriginFromTurn, withModelUsageOrigin } from "../../providers/model-usage.js";
9
10
  import { readAgentMessageContent } from "../memory/agent-message-access.js";
10
11
  import { abortEmbeddedRun } from "../embedded/runs.js";
11
12
  import { clearPendingTranscriptUserMessage, setPendingTranscriptUserMessage } from "../inbound/attachment-pipeline.js";
12
13
  import { mergeSttConfigFromAppConfig } from "../../voice/stt/config.js";
13
14
  import "../../voice/stt/index.js";
14
- import { isSessionSourceBinding, summarizeSourceContext } from "../source-context/types.js";
15
15
  import { formatAgentRunErrorForClient } from "../client-error-format.js";
16
16
  import { resolveConfiguredActivityDetailDefault, resolveEffectiveReasoningLevel } from "../../session/thinking-resolve.js";
17
17
  import { initSessionTurn } from "../../session/init-session-turn.js";
@@ -3,23 +3,23 @@ import { init_logger } from "../utils/logger.js";
3
3
  import { init_attachment_ref, parseNoteAttachmentTarget } from "../notes/attachment-ref.js";
4
4
  import { init_agent_scope, resolveAgentHomeDir, resolveDefaultAgentId } from "./agent-scope.js";
5
5
  import { extractTextContent } from "./context/workspace.js";
6
+ import { onSessionTranscriptUpdate } from "../session/transcript-events.js";
7
+ import { getUserTimezone } from "../user-model/repository.js";
6
8
  import { init_agent_session_key, resolveAgentIdFromConversationId } from "../routing/agent-session-key.js";
9
+ import "../user-model/index.js";
10
+ import { resolveWorkspaceSkillsDir, resolveWorkspaceSkillsLockPath } from "./skills/workspace-skills-dir.js";
11
+ import { removeSkillsLockEntry } from "./skills/hub-lock.js";
12
+ import { installSkillFromZip } from "./skills/managed-store.js";
13
+ import { pullSkillFromSource } from "./skills/hub-pull.js";
7
14
  import { extractProfileAgentId, resolveEffectiveAgentConfigForSession } from "../config/agent-profile.js";
15
+ import { effectiveWorkspacePathForSession } from "../session/session-workspace.js";
16
+ import { getProjectForSession } from "../projects/workspace.js";
8
17
  import { getAgentDefaultModelRef, init_schema } from "../config/schema.js";
9
18
  import { init_providers, resolveModel } from "../providers/index.js";
10
19
  import { configureTracing, flushTracing } from "../observability/runtime.js";
11
- import { getUserTimezone } from "../user-model/repository.js";
12
20
  import { resolveAgentTurnTimeoutMs } from "./orchestration/run-agent-turn-with-timeout.js";
13
21
  import { applyConfigOverrides } from "../config/runtime-overrides.js";
14
- import { effectiveWorkspacePathForSession } from "../session/session-workspace.js";
15
- import { getProjectForSession } from "../projects/workspace.js";
16
- import "../user-model/index.js";
17
- import { onSessionTranscriptUpdate } from "../session/transcript-events.js";
18
22
  import { runWithEmbeddedExecutionSession } from "./embedded/execution-context.js";
19
- import { removeSkillsLockEntry } from "./skills/hub-lock.js";
20
- import { installSkillFromZip } from "./skills/managed-store.js";
21
- import { resolveWorkspaceSkillsDir, resolveWorkspaceSkillsLockPath } from "./skills/workspace-skills-dir.js";
22
- import { pullSkillFromSource } from "./skills/hub-pull.js";
23
23
  import { persistInboundAttachments } from "../channels/attachments/inbound-persist.js";
24
24
  import { buildTranscriptUserMessage, hydrateUserTurnForLlm } from "./inbound/attachment-pipeline.js";
25
25
  import { drainEmbeddedSessionRunnerShutdowns } from "./embedded/session-runner.js";
@@ -2,11 +2,11 @@ import { createLogger } from "../../utils/logger/index.js";
2
2
  import { init_logger } from "../../utils/logger.js";
3
3
  import { chooseModelThinking } from "../../../packages/gateway-contract/src/model-selection.js";
4
4
  import { init_src } from "../../../packages/gateway-contract/src/index.js";
5
- import { ResponseLanguageSchema, init_response_language } from "../../i18n/response-language.js";
5
+ import { isPersonalConversation } from "../../personal-agent/repository.js";
6
6
  import { resolveEffectiveAgentConfigForSession } from "../../config/agent-profile.js";
7
7
  import { normalizeWorkingDirectoryInput } from "../../session/session-workspace.js";
8
8
  import { getProjectWorkspacePathForSession } from "../../projects/workspace.js";
9
- import { isPersonalConversation } from "../../personal-agent/repository.js";
9
+ import { ResponseLanguageSchema, init_response_language } from "../../i18n/response-language.js";
10
10
  import { getModelThinking } from "../../providers/model-thinking.js";
11
11
  import { normalizeReasoningLevel, normalizeThinkLevel, normalizeVerboseLevel } from "../transcript/thinking-types.js";
12
12
  import "../../session/index.js";
@@ -2,10 +2,10 @@ import { createLogger } from "../../utils/logger/index.js";
2
2
  import { init_logger } from "../../utils/logger.js";
3
3
  import { init_workspace_defaults, resolveDefaultAgentWorkspaceDir } from "../../config/workspace-defaults.js";
4
4
  import { resolveEffectiveAgentProfileForSession } from "../../config/agent-profile.js";
5
- import { init_providers, resolveModel } from "../../providers/index.js";
6
5
  import { getExecutionEnvironmentForSession } from "../../execution-environments/subject.js";
7
6
  import { effectiveWorkspacePathForSession, projectWorkspacePath } from "../../session/session-workspace.js";
8
7
  import { getProjectForSession } from "../../projects/workspace.js";
8
+ import { init_providers, resolveModel } from "../../providers/index.js";
9
9
  import { resolveCompactionPolicy } from "../memory/compaction-policy.js";
10
10
  import { resolveVerboseLevel } from "../../session/config-store.js";
11
11
  import { resolveConfiguredActivityDetailDefault, resolveEffectiveReasoningLevel, resolveEffectiveThinkingLevel } from "../../session/thinking-resolve.js";
@@ -2,10 +2,10 @@ import { resolveStateDir } from "../../config/paths-state.js";
2
2
  import { createLogger } from "../../utils/logger/index.js";
3
3
  import { init_logger } from "../../utils/logger.js";
4
4
  import { init_paths, resolveSkillsDir } from "../../config/paths.js";
5
- import { isManagedSkillTransientDirName } from "./managed-store.js";
6
5
  import { createSkillConfigManager } from "./config.js";
7
6
  import { resolveWorkspaceSkillsDir } from "./workspace-skills-dir.js";
8
7
  import { resolveAgentsSkillsDir, resolveWorkspaceAgentsSkillsDir } from "./skill-sources.js";
8
+ import { isManagedSkillTransientDirName } from "./managed-store.js";
9
9
  import path from "node:path";
10
10
  import chokidar from "chokidar";
11
11
  //#region src/agent/skills/filesystem-watcher.ts
@@ -1,8 +1,8 @@
1
1
  import { parseFrontmatter } from "../../markdown/frontmatter.js";
2
- import { getSkillsLockEntry, recordSkillsHubInstall } from "./hub-lock.js";
3
- import { installSkillFromZip, isIgnorableZipEntry, isValidSkillId, prepareManagedSkillTempDir, promoteManagedSkillTempDir } from "./managed-store.js";
4
2
  import { formatScanSummary, scanSkillDirectory } from "./scanner.js";
5
3
  import { computeSkillTreeHashSync } from "./hub-hash.js";
4
+ import { getSkillsLockEntry, recordSkillsHubInstall } from "./hub-lock.js";
5
+ import { installSkillFromZip, isIgnorableZipEntry, isValidSkillId, prepareManagedSkillTempDir, promoteManagedSkillTempDir } from "./managed-store.js";
6
6
  import { tmpdir } from "node:os";
7
7
  import { basename, dirname, join, normalize, resolve, sep } from "node:path";
8
8
  import { cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from "node:fs";
@@ -1,6 +1,6 @@
1
- import { downloadSkillZipBuffer, fetchMarketplacePackageDetail, listSkillCategories, listSkillPackages, resolveSkillZipDownloadUrl, resolveSkillsStoreBaseUrl, skillIdForMarketplaceInstall, verifyStoreArtifactSha256 } from "./store-api-client.js";
2
1
  import { registerMarketplaceAdapter } from "../../registry.js";
3
2
  import { buildSkillMarkdownPreviewFromRaw } from "../../../skill-markdown-preview-from-raw.js";
3
+ import { downloadSkillZipBuffer, fetchMarketplacePackageDetail, listSkillCategories, listSkillPackages, resolveSkillZipDownloadUrl, resolveSkillsStoreBaseUrl, skillIdForMarketplaceInstall, verifyStoreArtifactSha256 } from "./store-api-client.js";
4
4
  //#region src/agent/skills/marketplace/adapters/store/adapter.ts
5
5
  const storeMarketplaceAdapter = {
6
6
  id: "store",
@@ -1,6 +1,6 @@
1
+ import { MAX_SKILL_ZIP_BYTES, isValidSkillId } from "../../../managed-store.js";
1
2
  import { init_resolution, resolveConnectedPlatformEndpoint } from "../../../../../platform/resolution.js";
2
3
  import { MAX_EXTENSION_STORE_ZIP_BYTES } from "../../../../../extensions/store-zip-limits.js";
3
- import { MAX_SKILL_ZIP_BYTES, isValidSkillId } from "../../../managed-store.js";
4
4
  import { createHash } from "node:crypto";
5
5
  //#region src/agent/skills/marketplace/adapters/store/store-api-client.ts
6
6
  /**
@@ -2,20 +2,20 @@ import { createLogger } from "../../utils/logger/index.js";
2
2
  import { init_logger } from "../../utils/logger.js";
3
3
  import { TaskRepository, init_task_repository } from "../../tasks/task-repository.js";
4
4
  import { TaskRunRepository, init_task_run_repository } from "../../tasks/task-run-repository.js";
5
+ import { resolveTaskLocale } from "../../tasks/task-language.js";
5
6
  import { resolveEffectiveAgentProfileForSession } from "../../config/agent-profile.js";
7
+ import { TaskCollaborationRepository } from "../../tasks/task-collaboration-repository.js";
8
+ import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
9
+ import { extractAssistantText, getAssistantMessageErrorReason, isTransientProviderErrorMessage, stripCodeFences } from "../../providers/model-response.js";
6
10
  import { getAgentDefaultModelRef, init_schema } from "../../config/schema.js";
7
11
  import { getApiKey, init_providers, resolveModel } from "../../providers/index.js";
8
12
  import { completeWithResolvedCredentials } from "../../providers/model-call.js";
9
- import { extractAssistantText, getAssistantMessageErrorReason, isTransientProviderErrorMessage, stripCodeFences } from "../../providers/model-response.js";
13
+ import { currentTaskResearchResult } from "../../tasks/task-research-result.js";
14
+ import { TaskApplicationService } from "../../tasks/task-application-service.js";
10
15
  import { canResumeAfterModelFailure } from "../orchestration/turn-recovery.js";
11
- import { resolveTaskLocale } from "../../tasks/task-language.js";
12
- import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
13
16
  import { readWorkspaceRevision } from "../coding/workspace-revision.js";
14
- import { TaskCollaborationRepository } from "../../tasks/task-collaboration-repository.js";
15
- import { currentTaskResearchResult } from "../../tasks/task-research-result.js";
16
17
  import { buildResponseLanguageSection } from "../prompt/sections/response-language.js";
17
18
  import { resolveResponseLanguageForSession } from "../prompt/response-language.js";
18
- import { TaskApplicationService } from "../../tasks/task-application-service.js";
19
19
  //#region src/agent/tasks/task-judge-service.ts
20
20
  init_schema();
21
21
  init_providers();
@@ -22,6 +22,8 @@ export interface ExecCommandDetails {
22
22
  aggregatedOutput: string;
23
23
  failureHint?: string;
24
24
  artifacts?: TurnOutcomeDeliverable[];
25
+ executionPerformed?: boolean;
26
+ reusedFromToolCallId?: string;
25
27
  }
26
28
  export interface ExecCommandUpdateDetails {
27
29
  kind: 'command_output_delta';
@@ -1,8 +1,10 @@
1
1
  import { runProcess } from "../../process/run-process.js";
2
+ import { readWorkspaceRevision } from "../coding/workspace-revision.js";
2
3
  import { commandRegistry, commandTimeout } from "../commands/command-registry.js";
3
4
  import { evaluateExecPolicy } from "../sandbox/exec-policy.js";
4
5
  import { formatSize, truncateTail } from "./truncate.js";
5
6
  import { publishArtifactPaths } from "./publish-artifacts.js";
7
+ import { classifyVerificationCommand } from "../coding/verification-command.js";
6
8
  import { resolve } from "node:path";
7
9
  import { Type } from "@sinclair/typebox";
8
10
  //#region src/agent/tools/exec-command.ts
@@ -17,6 +19,7 @@ const ExecCommandSchema = Type.Object({
17
19
  maximum: 6e4,
18
20
  description: "Return a running job after this wait; manage it with managed_job. Omit to wait for completion. Cannot be combined with outputs."
19
21
  })),
22
+ reuseVerification: Type.Optional(Type.Boolean({ description: "Publish outputs using this exact command and cwd from a prior successful check at the identical workspace revision, without executing again. Requires outputs. Fails closed if no matching evidence; omit when a fresh execution is required." })),
20
23
  outputs: Type.Optional(Type.Array(Type.String({ minLength: 1 }), {
21
24
  maxItems: 50,
22
25
  description: "Final user-facing files to persist after this command succeeds, including files written earlier in the task. Put all final paths on the final verification command to verify and publish in one call. Relative paths resolve under the effective cwd."
@@ -52,6 +55,7 @@ function formatOutputForModel(details, maxOutputChars) {
52
55
  };
53
56
  }
54
57
  function createExecCommandTool(workspaceCwd, options) {
58
+ const successfulChecks = /* @__PURE__ */ new Map();
55
59
  return {
56
60
  name: "exec_command",
57
61
  description: [
@@ -60,7 +64,7 @@ function createExecCommandTool(workspaceCwd, options) {
60
64
  "Use apply_patch for file edits; do not edit files by shell redirection unless explicitly necessary.",
61
65
  "Relative cwd values resolve under the current agent workspace.",
62
66
  "Use a fresh output directory with mkdir -p. Avoid destructive cleanup such as rm -rf on variable paths; blocked cleanup should be removed, never disguised or moved to bypass policy. A syntax preflight on Unix host commands prevents partial writes from malformed shell syntax.",
63
- "Use outputs on the final verification command to persist all completed user-facing files together, including files written earlier. A successful artifact receipt needs no additional publish_artifacts call unless the file changes or capture failed."
67
+ "Default delivery is a workspace link. For requested downloads, add outputs to a necessary check. After it passed, use reuseVerification:true with the same cmd/cwd and outputs to publish without executing again; never rerun solely for attachments. Successful receipts need no republishing."
64
68
  ].join(" "),
65
69
  parameters: ExecCommandSchema,
66
70
  label: "Run Command",
@@ -170,9 +174,40 @@ function createExecCommandTool(workspaceCwd, options) {
170
174
  };
171
175
  }
172
176
  }
177
+ const checkKey = JSON.stringify([policy.effectiveCwd, command]);
178
+ if (params.reuseVerification) {
179
+ signal?.throwIfAborted();
180
+ const previous = successfulChecks.get(checkKey);
181
+ const revision = await readWorkspaceRevision(workspaceCwd);
182
+ if (!params.outputs?.length || isolation || !revision || previous?.revision !== revision) throw new Error("Nothing executed or published: no reusable successful check at this workspace revision. Use an existing artifact receipt, publish_artifacts, or perform necessary fresh verification.");
183
+ const artifacts = await publishArtifactPaths({
184
+ paths: params.outputs,
185
+ baseDir: policy.effectiveCwd,
186
+ workspaceRoot: workspaceCwd,
187
+ toolCallId
188
+ });
189
+ return {
190
+ content: [{
191
+ type: "text",
192
+ text: `No command executed. Reused successful check ${previous.toolCallId} at unchanged revision ${revision}. Artifacts: ${artifacts.filter((item) => item.availability === "available").length} published.`
193
+ }],
194
+ details: {
195
+ ...previous.details,
196
+ id: void 0,
197
+ durationMs: 0,
198
+ stdout: "",
199
+ stderr: "",
200
+ aggregatedOutput: "",
201
+ executionPerformed: false,
202
+ reusedFromToolCallId: previous.toolCallId,
203
+ artifacts
204
+ }
205
+ };
206
+ }
173
207
  const runtimeEnv = options?.prepareEnv ? await options.prepareEnv(policy.sanitizedEnv, policy.effectiveCwd) : policy.sanitizedEnv;
174
208
  const owner = options?.getConversationId?.() ?? workspaceCwd;
175
209
  const registry = commandRegistry();
210
+ successfulChecks.delete(checkKey);
176
211
  let commandResult = await registry.start({
177
212
  workspace: workspaceCwd,
178
213
  isolation,
@@ -234,6 +269,15 @@ function createExecCommandTool(workspaceCwd, options) {
234
269
  resultText += `\n\nArtifacts: ${published} published${failed > 0 ? `, ${failed} failed` : ""}.`;
235
270
  resultText += `\n${details.artifacts.map((item) => `${JSON.stringify(item.title)}: ${item.availability}`).join("\n")}`;
236
271
  }
272
+ if (!isolation && details.status === "success" && details.exitCode === 0 && classifyVerificationCommand(command) === "check") {
273
+ const revision = await readWorkspaceRevision(workspaceCwd);
274
+ const receipt = commandResult;
275
+ if (revision && receipt.startRevision === revision && receipt.endRevision === revision) successfulChecks.set(checkKey, {
276
+ revision,
277
+ toolCallId,
278
+ details
279
+ });
280
+ }
237
281
  return {
238
282
  content: [{
239
283
  type: "text",
@@ -9,10 +9,12 @@ import { patchSessionMetadata } from "../../storage/sqlite/session-repository.js
9
9
  import { getSessionTaskPlan, setSessionTaskPlan } from "../../storage/sqlite/session-task-plan-repository.js";
10
10
  import { init_sqlite } from "../../storage/sqlite/index.js";
11
11
  import { init_agent_scope, resolveDefaultAgentId } from "../agent-scope.js";
12
- import { resolveUserContextSessionAccess } from "../../user-context/access-policy.js";
12
+ import { buildRuntimeEnvironment } from "../../runtime-tools/environment.js";
13
+ import { skillEnvironmentId } from "../skills/installer.js";
13
14
  import { resolveEffectiveAgentConfigForAgent } from "../../config/agent-profile.js";
14
- import { PERSONAL_TOOL_DESCRIPTIONS } from "../../personal-agent/policy.js";
15
15
  import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
16
+ import { resolveUserContextSessionAccess } from "../../user-context/access-policy.js";
17
+ import { PERSONAL_TOOL_DESCRIPTIONS } from "../../personal-agent/policy.js";
16
18
  import { PERSONAL_REQUEST_TOOL_IDS, TASK_EXECUTION_TOOL_IDS, filterExecutionTools, resolveExecutionToolPolicy } from "../embedded/execution-tool-policy.js";
17
19
  import { LOCAL_READ_MAX_CHARS } from "./local-read-budget.js";
18
20
  import { createPersonalAttentionTool } from "./personal-attention-tool.js";
@@ -24,8 +26,6 @@ import { wrapToolsWithProtection } from "./executor.js";
24
26
  import { createDefaultExternalToolGatewayTools } from "../external-tools/index.js";
25
27
  import { createReadFileTool } from "./read.js";
26
28
  import { createDataBatchTool } from "./dataBatch.js";
27
- import { buildRuntimeEnvironment } from "../../runtime-tools/environment.js";
28
- import { skillEnvironmentId } from "../skills/installer.js";
29
29
  import { createWriteFileTool } from "./write.js";
30
30
  import { createListDirTool } from "./list-dir.js";
31
31
  import { createPublishArtifactsTool } from "./publish-artifacts.js";
@@ -1,7 +1,7 @@
1
1
  import { getSqliteDatabase, init_transaction } from "../../storage/sqlite/transaction.js";
2
2
  import { init_session_instance_repository, readCurrentTranscriptId } from "../../storage/sqlite/session-instance-repository.js";
3
- import { resolveUserContextSessionAccess } from "../../user-context/access-policy.js";
4
3
  import { getPersonalAgentByConversation } from "../../personal-agent/repository.js";
4
+ import { resolveUserContextSessionAccess } from "../../user-context/access-policy.js";
5
5
  import { boundedPersonalResult } from "./personal-result-budget.js";
6
6
  import { parseLocalCheckTime } from "../../personal-agent/proactivity/follow-up-request.js";
7
7
  import { applyThreadFeedback, getAttention, getProactivitySettings, listAttention, listInterestCandidates, patchAttention, patchProactivitySettings, rollbackStrategy, saveAttention, strategyState, userText } from "../../personal-agent/proactivity/repository.js";
@@ -1,9 +1,9 @@
1
1
  import { getSqliteDatabase, init_transaction, runSqliteWriteTransaction } from "../../storage/sqlite/transaction.js";
2
2
  import { TaskRunRepository, init_task_run_repository } from "../../tasks/task-run-repository.js";
3
3
  import { init_request_repository, personalRequestForExecution } from "../../personal-agent/request-repository.js";
4
- import { assertPersonalRequestAccountAccess } from "../../personal-agent/request-access.js";
5
4
  import { TaskCollaborationRepository } from "../../tasks/task-collaboration-repository.js";
6
5
  import { selectionRequestHash } from "../../agent-matching/selection-repository.js";
6
+ import { assertPersonalRequestAccountAccess } from "../../personal-agent/request-access.js";
7
7
  import { PersonalRequestResultSchema } from "../../personal-agent/request-result.js";
8
8
  import { Type } from "@sinclair/typebox";
9
9
  //#region src/agent/tools/personal-request-result-tool.ts
@@ -5,11 +5,11 @@ import { getPersonalRequest, init_request_repository, listPersonalRequests, upda
5
5
  import { getActiveConnectionWait, init_connection_wait_repository, reviseCurrentConnectionObjective, updateConnectionWait } from "../../storage/sqlite/connection-wait-repository.js";
6
6
  import { getSessionMetadata } from "../../storage/sqlite/session-read-repository.js";
7
7
  import { init_session_repository } from "../../storage/sqlite/session-repository.js";
8
- import { isPersonalConversation } from "../../personal-agent/repository.js";
9
8
  import { TaskAllocationRepository } from "../../tasks/task-allocation-repository.js";
9
+ import { isPersonalConversation } from "../../personal-agent/repository.js";
10
+ import { selectionRequestHash } from "../../agent-matching/selection-repository.js";
10
11
  import { boundedPersonalResult } from "./personal-result-budget.js";
11
12
  import { personalCapabilities } from "../../personal-agent/capability-service.js";
12
- import { selectionRequestHash } from "../../agent-matching/selection-repository.js";
13
13
  import { createPersonalTaskTool } from "./personal-task-tool.js";
14
14
  import { assertPersonalRequestTimeRange, cancelPersonalRequest, personalRequestSnapshot, publishPersonalRequest, stopPersonalRequestExecution, submitPersonalRequest } from "../../personal-agent/request-service.js";
15
15
  import { Type } from "@sinclair/typebox";
@@ -6,20 +6,20 @@ import { TaskRepository, init_task_repository } from "../../tasks/task-repositor
6
6
  import { getPersonalRequest, init_request_repository } from "../../personal-agent/request-repository.js";
7
7
  import { getSessionMetadata } from "../../storage/sqlite/session-read-repository.js";
8
8
  import { init_sqlite } from "../../storage/sqlite/index.js";
9
- import { isPersonalConversation } from "../../personal-agent/repository.js";
10
9
  import { TaskAllocationRepository } from "../../tasks/task-allocation-repository.js";
11
10
  import { TaskReadModelProjector } from "../../tasks/task-read-model-projector.js";
11
+ import { isPersonalConversation } from "../../personal-agent/repository.js";
12
12
  import { TaskOriginRepository } from "../../tasks/task-origin-repository.js";
13
- import { boundedPersonalResult } from "./personal-result-budget.js";
14
- import { TaskCollaborationRepository } from "../../tasks/task-collaboration-repository.js";
15
- import { PERSONAL_WORKER_RESULT_GUIDANCE } from "../../personal-agent/communication.js";
16
13
  import { parseTaskHandoffReferences } from "../../tasks/task-handoff.js";
14
+ import { TaskCollaborationRepository } from "../../tasks/task-collaboration-repository.js";
17
15
  import { TaskApplicationService } from "../../tasks/task-application-service.js";
16
+ import { AgentSelectionRepository, selectionRequestHash } from "../../agent-matching/selection-repository.js";
18
17
  import { getAvailablePersonalAgentTools, personalAgentModelAvailability } from "../../personal-agent/specialist-capabilities.js";
19
18
  import { assessSpecialist, matchSpecialists } from "../../agent-matching/service.js";
20
- import { createXopcUseTool } from "./xopc-use-tool.js";
21
- import { AgentSelectionRepository, selectionRequestHash } from "../../agent-matching/selection-repository.js";
22
19
  import { assertSpecialistEligible, createSelectedTask } from "../../agent-matching/delegation-service.js";
20
+ import { boundedPersonalResult } from "./personal-result-budget.js";
21
+ import { PERSONAL_WORKER_RESULT_GUIDANCE } from "../../personal-agent/communication.js";
22
+ import { createXopcUseTool } from "./xopc-use-tool.js";
23
23
  import { cancelPersonalTask } from "../../personal-agent/task-cancel.js";
24
24
  import { randomUUID } from "node:crypto";
25
25
  import { Type } from "@sinclair/typebox";
@@ -1,9 +1,9 @@
1
1
  import { turnOutcomeKindFromFileName, turnOutcomeMimeTypeFromFileName } from "../../../packages/gateway-contract/src/turn-outcome.js";
2
2
  import { init_src } from "../../../packages/gateway-contract/src/index.js";
3
+ import { fileResourceId, fileSpaceId } from "../../files/file-service.js";
3
4
  import { evaluateFilePolicy } from "../sandbox/exec-policy.js";
4
5
  import { readWorkspaceFile } from "../sandbox/fileAccess.js";
5
6
  import { resolvePathUnderWorkspace } from "./tool-paths.js";
6
- import { fileResourceId, fileSpaceId } from "../../files/file-service.js";
7
7
  import { persistToolMedia } from "./tool-media.js";
8
8
  import { basename, isAbsolute, relative, sep } from "node:path";
9
9
  import { Type } from "@sinclair/typebox";
@@ -1,5 +1,5 @@
1
- import { readWorkspaceRevision } from "../coding/workspace-revision.js";
2
1
  import { prepareSafeToolEnv } from "../sandbox/sanitize-env-vars.js";
2
+ import { readWorkspaceRevision } from "../coding/workspace-revision.js";
3
3
  import { evaluateFilePolicy } from "../sandbox/exec-policy.js";
4
4
  import { checkedFilePath, readWorkspaceFile } from "../sandbox/fileAccess.js";
5
5
  import { resolve } from "node:path";
@@ -1,7 +1,7 @@
1
1
  import { resolveStateDir } from "../../config/paths-state.js";
2
2
  import { init_paths } from "../../config/paths.js";
3
- import { DEFAULT_MAX_BYTES, formatSize, truncateHead } from "./truncate.js";
4
3
  import { createSkillConfigManager, isSkillEnabled, resolveSkillConfig } from "../skills/config.js";
4
+ import { DEFAULT_MAX_BYTES, formatSize, truncateHead } from "./truncate.js";
5
5
  import { resolveSkillReadablePath } from "../skills/skill-view-path.js";
6
6
  import { readFileSync, statSync } from "fs";
7
7
  import { Type } from "@sinclair/typebox";
@@ -6,11 +6,11 @@ import { init_request_repository, personalRequestForExecution } from "../../pers
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 { TaskReadModelProjector } from "../../tasks/task-read-model-projector.js";
9
- import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
10
- import { getEmbeddedExecutionSession } from "../embedded/execution-context.js";
9
+ import { assertTaskHandoffAccess, assertTaskHandoffExecutorAccess, getTaskHandoff, materializeTaskHandoffFile, readTaskHandoffSource } from "../../tasks/task-handoff.js";
11
10
  import { TaskCollaborationRepository } from "../../tasks/task-collaboration-repository.js";
11
+ import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
12
12
  import { taskResearchEvidence } from "../../tasks/task-research-result.js";
13
- import { assertTaskHandoffAccess, assertTaskHandoffExecutorAccess, getTaskHandoff, materializeTaskHandoffFile, readTaskHandoffSource } from "../../tasks/task-handoff.js";
13
+ import { getEmbeddedExecutionSession } from "../embedded/execution-context.js";
14
14
  import { createXopcUseTool } from "./xopc-use-tool.js";
15
15
  import { Type } from "@sinclair/typebox";
16
16
  //#region src/agent/tools/task-collaboration-tool.ts
@@ -1,9 +1,9 @@
1
1
  import { appendProductDeliveryText } from "../../../packages/gateway-contract/src/product-delivery.js";
2
2
  import { init_src } from "../../../packages/gateway-contract/src/index.js";
3
+ import { fileResourceId, fileSpaceId } from "../../files/file-service.js";
3
4
  import { writeWorkspaceFile } from "../sandbox/fileAccess.js";
4
5
  import { checkFileSafety } from "../prompt/safety.js";
5
6
  import { isBareProfileMarkdownFileName, resolvePathUnderWorkspace, resolveProfileMarkdownPathIfBareName } from "./tool-paths.js";
6
- import { fileResourceId, fileSpaceId } from "../../files/file-service.js";
7
7
  import { basename, relative, sep } from "path";
8
8
  import { realpath } from "fs/promises";
9
9
  import { Type } from "@sinclair/typebox";