@xopcai/xopc 0.0.352 → 0.0.354

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (587) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/feishu/src/adapters/cli-login.js +3 -3
  3. package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
  4. package/dist/extensions/telegram/src/inbound-processor.js +2 -2
  5. package/dist/extensions/telegram/src/outbound-sender.js +1 -1
  6. package/dist/extensions/telegram/src/plugin.js +2 -2
  7. package/dist/extensions/telegram/xopc.extension.json +1 -1
  8. package/dist/extensions/weixin/src/api/api.js +2 -2
  9. package/dist/extensions/weixin/src/auth/accounts.js +12 -12
  10. package/dist/extensions/weixin/src/messaging/debug-mode.js +5 -5
  11. package/dist/extensions/weixin/src/messaging/inbound.js +11 -11
  12. package/dist/gateway/static/root/assets/activity-YogQEteU.js +1 -0
  13. package/dist/gateway/static/root/assets/activity-store-X7CG9pzB.js +1 -0
  14. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-ChlaFmiD.js → agent-avatar-dicebear-B8PS1eLP.js} +1 -1
  15. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CLBSL9hl.js +1 -0
  16. package/dist/gateway/static/root/assets/agent-plugin-dialog-BninweSg.js +1 -0
  17. package/dist/gateway/static/root/assets/agents-CcVLP_WP.js +66 -0
  18. package/dist/gateway/static/root/assets/{agents-admin-api-C_3ucZGI.js → agents-admin-api-Ck2x78jq.js} +1 -1
  19. package/dist/gateway/static/root/assets/app-chrome-BeB4KgOf.js +1 -0
  20. package/dist/gateway/static/root/assets/app-management-settings-panel-COdQOmdT.js +1 -0
  21. package/dist/gateway/static/root/assets/appearance-settings-CDNjc2yy.js +1 -0
  22. package/dist/gateway/static/root/assets/apps-page-C-kvpPj8.js +1 -0
  23. package/dist/gateway/static/root/assets/{archive-plugin-D4EiLLyl.js → archive-plugin-QfOaQPL_.js} +1 -1
  24. package/dist/gateway/static/root/assets/{automations-page-CMxBpT5v.js → automations-page-87DN5nXX.js} +1 -1
  25. package/dist/gateway/static/root/assets/automations-workspace-BdZ8NO8k.js +7 -0
  26. package/dist/gateway/static/root/assets/{binary-plugins-DQc_BlYP.js → binary-plugins-BF2lVwR9.js} +1 -1
  27. package/dist/gateway/static/root/assets/{block-editor-C3S6gqnS.js → block-editor-B04Kv5DU.js} +39 -39
  28. package/dist/gateway/static/root/assets/bot-DjLkhyZL.js +1 -0
  29. package/dist/gateway/static/root/assets/{browser-automation-inputs-D2SwaQ2F.js → browser-automation-inputs-FW3bYZ-z.js} +1 -1
  30. package/dist/gateway/static/root/assets/{browser-automations-page-CGG1740U.js → browser-automations-page-Ck6Zb9aU.js} +2 -2
  31. package/dist/gateway/static/root/assets/browser-settings-page-DHlyYItE.js +3 -0
  32. package/dist/gateway/static/root/assets/{capabilities-D4qdO980.js → capabilities-BCF_160Z.js} +1 -1
  33. package/dist/gateway/static/root/assets/capabilities-CF4-mrIa.js +1 -0
  34. package/dist/gateway/static/root/assets/capabilities-page-C-6RLFNh.js +2 -0
  35. package/dist/gateway/static/root/assets/capabilities-settings-panel-CST_HBkR.js +8 -0
  36. package/dist/gateway/static/root/assets/capability-header-actions-PBPJJsp6.js +1 -0
  37. package/dist/gateway/static/root/assets/channels-CM4sIvcP.js +1 -0
  38. package/dist/gateway/static/root/assets/{chat-terminal-dock-DfTUgrey.js → chat-terminal-dock-DTd7mWyE.js} +2 -2
  39. package/dist/gateway/static/root/assets/chevron-right-BweFrslA.js +1 -0
  40. package/dist/gateway/static/root/assets/circle-alert-BEjgurr2.js +1 -0
  41. package/dist/gateway/static/root/assets/circle-dashed-8qMD7gHf.js +1 -0
  42. package/dist/gateway/static/root/assets/circle-dot-BAseJTrF.js +1 -0
  43. package/dist/gateway/static/root/assets/circle-pause-CN9jYH2s.js +1 -0
  44. package/dist/gateway/static/root/assets/clock-3-DnrAnuyZ.js +1 -0
  45. package/dist/gateway/static/root/assets/cloud-C4-yfnnk.js +1 -0
  46. package/dist/gateway/static/root/assets/computer-settings-page--9rh1mvu.js +1 -0
  47. package/dist/gateway/static/root/assets/connector-service-page-v6Is0BOO.js +1 -0
  48. package/dist/gateway/static/root/assets/connectors-page-CryQzmEZ.js +2 -0
  49. package/dist/gateway/static/root/assets/copy-text-row-BHDs3cBa.js +1 -0
  50. package/dist/gateway/static/root/assets/date-picker-DTsMzjoZ.js +1 -0
  51. package/dist/gateway/static/root/assets/{dependency-picker-CV2ybJJd.js → dependency-picker-Y1QYCcLp.js} +1 -1
  52. package/dist/gateway/static/root/assets/{desktop-pet-DipFHe4X.js → desktop-pet-D9dfZrOp.js} +1 -1
  53. package/dist/gateway/static/root/assets/desktop-pet-settings-BHVOHZUL.js +1 -0
  54. package/dist/gateway/static/root/assets/device-pairing-wizard-Cy5YDZ2b.js +1 -0
  55. package/dist/gateway/static/root/assets/directory-picker-path-field-DeMo9KlE.js +1 -0
  56. package/dist/gateway/static/root/assets/dist-3h6cXXhT.js +1 -0
  57. package/dist/gateway/static/root/assets/dist-Che_jiQF.js +1 -0
  58. package/dist/gateway/static/root/assets/extension-debug-page-BrGWLJg9.js +1 -0
  59. package/dist/gateway/static/root/assets/extension-page-AWrvy1Nb.js +1 -0
  60. package/dist/gateway/static/root/assets/extension-provider-CUpbXB2k.js +1 -0
  61. package/dist/gateway/static/root/assets/extension-settings-page-C5KgmhYu.js +1 -0
  62. package/dist/gateway/static/root/assets/form-field-width-DJw_jULe.js +1 -0
  63. package/dist/gateway/static/root/assets/{gateway-config-swr-DZWFlfJr.js → gateway-config-swr-B31I6Gbq.js} +1 -1
  64. package/dist/gateway/static/root/assets/{gateway-realtime-HO9tL9xo.js → gateway-realtime-D6ffOiPe.js} +1 -1
  65. package/dist/gateway/static/root/assets/gateway-realtime-store-DQuFWNjA.js +1 -0
  66. package/dist/gateway/static/root/assets/gateway-settings-DC-lok0J.js +1 -0
  67. package/dist/gateway/static/root/assets/{gateway-startup-retry-Cg1nbxJR.js → gateway-startup-retry-DVol958v.js} +1 -1
  68. package/dist/gateway/static/root/assets/git-branch-Dh9uxTot.js +1 -0
  69. package/dist/gateway/static/root/assets/home-page-C29_VFAs.js +1 -0
  70. package/dist/gateway/static/root/assets/{image-generation-api-DSnPfr_U.js → image-generation-api-TVgJfz9r.js} +1 -1
  71. package/dist/gateway/static/root/assets/imports-page-BKVKfVMA.js +1 -0
  72. package/dist/gateway/static/root/assets/index-BJh5gU04.css +1 -0
  73. package/dist/gateway/static/root/assets/index-ByFXhQ-T.js +107 -0
  74. package/dist/gateway/static/root/assets/index.module-Cd9ENXfk.js +1 -0
  75. package/dist/gateway/static/root/assets/interaction-BdhHBbYa.js +1 -0
  76. package/dist/gateway/static/root/assets/is-masked-secret-DOkL5b_X.js +1 -0
  77. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-ixQ8_6ad.js → keyboard-shortcuts-settings-DiwE4gKU.js} +1 -1
  78. package/dist/gateway/static/root/assets/local-app-workbench-page-Dt3TC64L.js +1 -0
  79. package/dist/gateway/static/root/assets/{local-apps-page-BV3NFUJQ.js → local-apps-page-DFPhWkxU.js} +1 -1
  80. package/dist/gateway/static/root/assets/{local-session-drafts-CuyTzbfW.js → local-session-drafts-wiq_12oN.js} +1 -1
  81. package/dist/gateway/static/root/assets/{locale-store-qcYD05PF.js → locale-store-Y1aBayM_.js} +1 -1
  82. package/dist/gateway/static/root/assets/logs-page-C4faHZHj.js +2 -0
  83. package/dist/gateway/static/root/assets/management-settings-pZLdvIiw.js +1 -0
  84. package/dist/gateway/static/root/assets/markdown-view-7tzqIp_G.js +201 -0
  85. package/dist/gateway/static/root/assets/{media-plugins-cpalRgVI.js → media-plugins-cjgrKnne.js} +1 -1
  86. package/dist/gateway/static/root/assets/message-square-fVE7Ghj1.js +1 -0
  87. package/dist/gateway/static/root/assets/messages-DPw2X06D.js +3 -0
  88. package/dist/gateway/static/root/assets/mic-CuUb7zc-.js +1 -0
  89. package/dist/gateway/static/root/assets/model-display-name-DXhO9rcM.js +1 -0
  90. package/dist/gateway/static/root/assets/models-hub-cache-HGrORbzR.js +1 -0
  91. package/dist/gateway/static/root/assets/note-detail-panel-BLnT1tYJ.js +5 -0
  92. package/dist/gateway/static/root/assets/notes-api-J0yhflxC.js +1 -0
  93. package/dist/gateway/static/root/assets/notes-page-BawArJvP.js +8 -0
  94. package/dist/gateway/static/root/assets/oauth-api-CYe61zfD.js +1 -0
  95. package/dist/gateway/static/root/assets/page-context-capture-button-CiBUm2Br.js +1 -0
  96. package/dist/gateway/static/root/assets/page-tabs-D2xpUV26.js +1 -0
  97. package/dist/gateway/static/root/assets/pause-DuPxgSxk.js +1 -0
  98. package/dist/gateway/static/root/assets/personal-page-Cng583RH.js +1 -0
  99. package/dist/gateway/static/root/assets/play-kxZvpBg8.js +1 -0
  100. package/dist/gateway/static/root/assets/popover-select-DcsFzD_i.js +1 -0
  101. package/dist/gateway/static/root/assets/preview-open-alternatives-Dvey7GwU.js +1 -0
  102. package/dist/gateway/static/root/assets/{product-open-page-BJwEshPw.js → product-open-page-B8_w6c3J.js} +1 -1
  103. package/dist/gateway/static/root/assets/project-detail-page-CDZdKiTz.js +1 -0
  104. package/dist/gateway/static/root/assets/projects-page-BvahSrZi.js +1 -0
  105. package/dist/gateway/static/root/assets/{registry-api-C0j3sKT4.js → registry-api-DqDOrPQ0.js} +1 -1
  106. package/dist/gateway/static/root/assets/remote-access-hub-CU_UdkuI.js +1 -0
  107. package/dist/gateway/static/root/assets/rotate-ccw-JM1TBLpp.js +1 -0
  108. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-SbIgL9Ya.js → runtime-tools-settings-panel-BnMS50vK.js} +2 -2
  109. package/dist/gateway/static/root/assets/scenes-page-CDR1-q25.js +2 -0
  110. package/dist/gateway/static/root/assets/schema-form-B4Xa8w8S.js +1 -0
  111. package/dist/gateway/static/root/assets/secret-input-DPl3VYM8.js +1 -0
  112. package/dist/gateway/static/root/assets/send-session-input-C7Nqy0sK.js +1 -0
  113. package/dist/gateway/static/root/assets/{session-api-iR1SFNHe.js → session-api-CTN4qwiN.js} +1 -1
  114. package/dist/gateway/static/root/assets/{session-manager-3YOU74jt.js → session-manager-DsH1DZI_.js} +1 -1
  115. package/dist/gateway/static/root/assets/sessions-page-Ymyg98G-.js +1 -0
  116. package/dist/gateway/static/root/assets/settings-2-D-csvaET.js +1 -0
  117. package/dist/gateway/static/root/assets/settings-advanced-gate-wMZhxwTM.js +1 -0
  118. package/dist/gateway/static/root/assets/settings-form-draft-Dy10ldo8.js +1 -0
  119. package/dist/gateway/static/root/assets/settings-form-section-exRhP9xn.js +1 -0
  120. package/dist/gateway/static/root/assets/settings-page-CHZdpvkT.js +1 -0
  121. package/dist/gateway/static/root/assets/setup-status-panel-HESfALIF.js +1 -0
  122. package/dist/gateway/static/root/assets/share-link-dialog-COlX10Dc.js +1 -0
  123. package/dist/gateway/static/root/assets/share-preview-page-NtRLUieq.js +2 -0
  124. package/dist/gateway/static/root/assets/shares-api-DICV5EKH.js +1 -0
  125. package/dist/gateway/static/root/assets/shares-settings-CXEBo5YL.js +1 -0
  126. package/dist/gateway/static/root/assets/skill-api-DYgcO7y0.js +1 -0
  127. package/dist/gateway/static/root/assets/skill-api-utils-C7V4JVXM.js +1 -0
  128. package/dist/gateway/static/root/assets/skill-reload-api-CWH3Fmx4.js +1 -0
  129. package/dist/gateway/static/root/assets/skill-wire-pattern-BPpeIcCi.js +1 -0
  130. package/dist/gateway/static/root/assets/skills-page-Dx5v64jU.js +2 -0
  131. package/dist/gateway/static/root/assets/sparkles-DHlfQFAF.js +1 -0
  132. package/dist/gateway/static/root/assets/system-settings-panel-wXCBwYwE.js +1 -0
  133. package/dist/gateway/static/root/assets/task-detail-page-hoIyr7tp.js +1 -0
  134. package/dist/gateway/static/root/assets/tasks-Buv1mgPF.js +1 -0
  135. package/dist/gateway/static/root/assets/theme-store-BKgBPLH4.js +1 -0
  136. package/dist/gateway/static/root/assets/tunnel-api-C0t8y3Mi.js +1 -0
  137. package/dist/gateway/static/root/assets/usage-page-A2DZAidl.js +1 -0
  138. package/dist/gateway/static/root/assets/use-async-resource-GrnWNwMZ.js +1 -0
  139. package/dist/gateway/static/root/assets/use-autosave-Cn6hqqyM.js +1 -0
  140. package/dist/gateway/static/root/assets/use-composer-attachments-DL61XeSu.js +2 -0
  141. package/dist/gateway/static/root/assets/use-file-preview-expanded-Cl9mU32w.js +2 -0
  142. package/dist/gateway/static/root/assets/user-model-page-C1jGTwjK.js +2 -0
  143. package/dist/gateway/static/root/assets/voice-api-key-field-Bw05QB_V.js +1 -0
  144. package/dist/gateway/static/root/assets/{voice-config-api-CylVelIb.js → voice-config-api-BM75K3mR.js} +1 -1
  145. package/dist/gateway/static/root/assets/{work-discovery-overlay-9bULjfGk.js → work-discovery-overlay-xB0QpOFk.js} +1 -1
  146. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-VYQHBiz3.js → workflow-run-setup-panel-rM4U1FXc.js} +2 -2
  147. package/dist/gateway/static/root/assets/workflows-page-QKC34FzQ.js +6 -0
  148. package/dist/gateway/static/root/assets/workspace-api-BbBT75Kg.js +2 -0
  149. package/dist/gateway/static/root/index.html +68 -26
  150. package/dist/package.js +1 -1
  151. package/dist/packages/gateway-contract/src/tasks.js +19 -2
  152. package/dist/src/agent/agent-manager.js +27 -22
  153. package/dist/src/agent/agent-scope.js +2 -2
  154. package/dist/src/agent/background-review/prompts.js +1 -1
  155. package/dist/src/agent/background-review/run-background-review.js +4 -4
  156. package/dist/src/agent/bootstrap/bootstrap-files.d.ts +0 -4
  157. package/dist/src/agent/bootstrap/bootstrap-files.js +3 -9
  158. package/dist/src/agent/bootstrap/load-bootstrap-files.js +2 -4
  159. package/dist/src/agent/coding/repository-instructions.js +1 -1
  160. package/dist/src/agent/context/coordinator.js +2 -2
  161. package/dist/src/agent/context/execution-context.js +4 -4
  162. package/dist/src/agent/context/execution-scope.js +2 -2
  163. package/dist/src/agent/context/project-context.js +3 -3
  164. package/dist/src/agent/context/workspace-seed.d.ts +1 -7
  165. package/dist/src/agent/context/workspace-seed.js +4 -13
  166. package/dist/src/agent/context/workspace-templates/AGENTS.md +1 -1
  167. package/dist/src/agent/context/workspace.d.ts +1 -3
  168. package/dist/src/agent/context/workspace.js +3 -7
  169. package/dist/src/agent/data-acquisition/service.js +1 -1
  170. package/dist/src/agent/embedded/index.js +2 -2
  171. package/dist/src/agent/embedded/model-runtime.js +1 -1
  172. package/dist/src/agent/embedded/run-for-session.js +4 -4
  173. package/dist/src/agent/embedded/run-turn.js +15 -5
  174. package/dist/src/agent/embedded/session-tool-result-guard.js +3 -3
  175. package/dist/src/agent/embedded/tool-result-truncation.js +1 -1
  176. package/dist/src/agent/external-tools/cliProvider.js +3 -3
  177. package/dist/src/agent/external-tools/composio-provider.js +3 -3
  178. package/dist/src/agent/external-tools/endpoint-provider.js +2 -2
  179. package/dist/src/agent/external-tools/gateway-tools.js +1 -1
  180. package/dist/src/agent/external-tools/mcp-provider.js +3 -3
  181. package/dist/src/agent/image/generation/openai-images-provider.js +1 -1
  182. package/dist/src/agent/image/generation/providers/dashscope.js +1 -1
  183. package/dist/src/agent/image/generation/providers/fal.js +1 -1
  184. package/dist/src/agent/image/generation/providers/google.js +1 -1
  185. package/dist/src/agent/image/generation/runtime.js +1 -1
  186. package/dist/src/agent/image/index.js +1 -1
  187. package/dist/src/agent/image/load-image-media.js +1 -1
  188. package/dist/src/agent/image/tool-model-config.js +2 -2
  189. package/dist/src/agent/inbound/attachment-pipeline.js +1 -1
  190. package/dist/src/agent/inbound/inbound-loop.js +2 -2
  191. package/dist/src/agent/index.js +1 -1
  192. package/dist/src/agent/mcp/bundle-mcp-config.js +1 -1
  193. package/dist/src/agent/mcp/bundle-mcp-gateway.js +1 -1
  194. package/dist/src/agent/mcp/bundle-mcp-runtime.js +2 -2
  195. package/dist/src/agent/mcp/index.js +2 -2
  196. package/dist/src/agent/mcp/mcp-stdio-transport.js +1 -1
  197. package/dist/src/agent/mcp/mcp-transport.js +1 -1
  198. package/dist/src/agent/mcp/oauth/mcp-oauth-manager.js +1 -1
  199. package/dist/src/agent/mcp/plugin-http-fetch.js +1 -1
  200. package/dist/src/agent/memory/context-recovery.js +1 -1
  201. package/dist/src/agent/memory/index.js +1 -1
  202. package/dist/src/agent/messaging/no-reply.d.ts +1 -0
  203. package/dist/src/agent/messaging/no-reply.js +4 -0
  204. package/dist/src/agent/messaging/outbound-coordinator.d.ts +0 -4
  205. package/dist/src/agent/messaging/outbound-coordinator.js +2 -4
  206. package/dist/src/agent/orchestration/agent-orchestrator.js +1 -1
  207. package/dist/src/agent/prompt/sections/agent-identity.d.ts +3 -0
  208. package/dist/src/agent/prompt/sections/agent-identity.js +13 -0
  209. package/dist/src/agent/prompt/sections/messaging-runtime.d.ts +0 -5
  210. package/dist/src/agent/prompt/sections/messaging-runtime.js +2 -16
  211. package/dist/src/agent/prompt/sections/project-context.d.ts +0 -3
  212. package/dist/src/agent/prompt/sections/project-context.js +2 -9
  213. package/dist/src/agent/prompt/sections/tooling.js +1 -1
  214. package/dist/src/agent/prompt/service-prompt-builder.d.ts +2 -0
  215. package/dist/src/agent/prompt/service-prompt-builder.js +5 -10
  216. package/dist/src/agent/prompt/subagent-context.js +1 -1
  217. package/dist/src/agent/prompt/system-prompt-params.d.ts +0 -4
  218. package/dist/src/agent/prompt/system-prompt-params.js +0 -2
  219. package/dist/src/agent/prompt/system-prompt.d.ts +2 -2
  220. package/dist/src/agent/prompt/system-prompt.js +8 -9
  221. package/dist/src/agent/sandbox/exec-policy.js +1 -1
  222. package/dist/src/agent/service/direct-turn-helpers.js +4 -4
  223. package/dist/src/agent/service/process-direct-one-shot.js +1 -1
  224. package/dist/src/agent/service/process-direct-streaming.js +5 -5
  225. package/dist/src/agent/service/webchat-tts.js +2 -2
  226. package/dist/src/agent/service.js +24 -22
  227. package/dist/src/agent/session/session-config-service.js +27 -1
  228. package/dist/src/agent/session/session-hydrator.js +1 -1
  229. package/dist/src/agent/session/session-inspector.js +1 -1
  230. package/dist/src/agent/source-context/index.js +2 -2
  231. package/dist/src/agent/starter-agents.d.ts +0 -4
  232. package/dist/src/agent/starter-agents.js +57 -98
  233. package/dist/src/agent/tasks/task-judge-service.js +4 -4
  234. package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
  235. package/dist/src/agent/tool-manuals/xopc-use.js +7 -4
  236. package/dist/src/agent/tools/create-share-tool.js +3 -3
  237. package/dist/src/agent/tools/dataBatch.js +1 -1
  238. package/dist/src/agent/tools/delegate-tool.js +3 -3
  239. package/dist/src/agent/tools/delegation-parent-policy.js +1 -1
  240. package/dist/src/agent/tools/executor.js +1 -1
  241. package/dist/src/agent/tools/factory.d.ts +1 -1
  242. package/dist/src/agent/tools/factory.js +37 -30
  243. package/dist/src/agent/tools/fetch-text.js +1 -1
  244. package/dist/src/agent/tools/image-generate-tool.js +3 -3
  245. package/dist/src/agent/tools/index.js +6 -6
  246. package/dist/src/agent/tools/list-dir.js +1 -1
  247. package/dist/src/agent/tools/personal-preference-tool.d.ts +10 -0
  248. package/dist/src/agent/tools/personal-preference-tool.js +43 -0
  249. package/dist/src/agent/tools/personal-task-tool.d.ts +28 -0
  250. package/dist/src/agent/tools/personal-task-tool.js +165 -0
  251. package/dist/src/agent/tools/publish-artifacts.js +2 -2
  252. package/dist/src/agent/tools/read.js +2 -2
  253. package/dist/src/agent/tools/review-workspace.js +1 -1
  254. package/dist/src/agent/tools/send-media.js +2 -2
  255. package/dist/src/agent/tools/skills-tools.js +1 -1
  256. package/dist/src/agent/tools/tts-tool.js +1 -1
  257. package/dist/src/agent/tools/user-context-tool.js +1 -1
  258. package/dist/src/agent/tools/write.js +2 -2
  259. package/dist/src/agent/tools/xopc-use-tool.js +8 -7
  260. package/dist/src/agent/workflow/subagent-runner.js +1 -1
  261. package/dist/src/agent-catalog/capabilities.js +2 -2
  262. package/dist/src/agent-catalog/migrations/identity-markdown-cutover.d.ts +5 -0
  263. package/dist/src/agent-catalog/migrations/identity-markdown-cutover.js +94 -0
  264. package/dist/src/agent-catalog/repository.js +7 -1
  265. package/dist/src/agent-catalog/service.d.ts +1 -1
  266. package/dist/src/agent-catalog/service.js +4 -3
  267. package/dist/src/agent-config/index.js +2 -2
  268. package/dist/src/agent-config/schema.d.ts +167 -0
  269. package/dist/src/agent-config/schema.js +47 -6
  270. package/dist/src/ai-assist/text-assist.js +1 -1
  271. package/dist/src/auth/credentials.js +1 -1
  272. package/dist/src/auth/oauth-provider-lock.js +1 -1
  273. package/dist/src/auth/sync-provider-auth.js +1 -1
  274. package/dist/src/automations/capabilities/drafts.js +1 -1
  275. package/dist/src/automations/domain/index.js +2 -2
  276. package/dist/src/automations/index.js +4 -4
  277. package/dist/src/automations/service/automation-service.js +2 -2
  278. package/dist/src/backup/archive.js +1 -1
  279. package/dist/src/bootstrap/application-state.js +3 -1
  280. package/dist/src/browser/native-messaging-host.js +1 -1
  281. package/dist/src/capabilities/runtime/dispatcher.js +1 -1
  282. package/dist/src/capabilities/runtime/product.js +1 -1
  283. package/dist/src/channels/attachments/voice-stt-webchat.js +2 -2
  284. package/dist/src/channels/index.js +2 -2
  285. package/dist/src/channels/outbound-sender.js +1 -1
  286. package/dist/src/channels/pairing/allow-from-file.js +9 -9
  287. package/dist/src/channels/pairing/pairing-store.js +6 -6
  288. package/dist/src/chat-commands/agent-edit.js +4 -7
  289. package/dist/src/chat-commands/builtins/config.js +4 -4
  290. package/dist/src/chat-commands/builtins/review.js +1 -1
  291. package/dist/src/chat-commands/builtins/session.js +1 -1
  292. package/dist/src/chat-commands/builtins/thinking.js +13 -3
  293. package/dist/src/chat-commands/builtins/tts.js +1 -1
  294. package/dist/src/chat-commands/builtins/understanding.js +1 -1
  295. package/dist/src/chat-commands/builtins/workflow.js +2 -2
  296. package/dist/src/chat-commands/context.js +10 -4
  297. package/dist/src/chat-commands/index.js +3 -3
  298. package/dist/src/cli/commands/agent.js +7 -7
  299. package/dist/src/cli/commands/agents.js +1 -1
  300. package/dist/src/cli/commands/config.js +1 -1
  301. package/dist/src/cli/commands/connectors.js +1 -1
  302. package/dist/src/cli/commands/doctor/checks/channel-plugins.js +1 -1
  303. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  304. package/dist/src/cli/commands/doctor/checks/gateway-health.js +1 -1
  305. package/dist/src/cli/commands/doctor/checks/provider-auth.js +2 -2
  306. package/dist/src/cli/commands/doctor/checks/tool-runtimes.js +1 -1
  307. package/dist/src/cli/commands/doctor/checks/workspace-status.js +0 -1
  308. package/dist/src/cli/commands/extension-agent-plugin.js +2 -2
  309. package/dist/src/cli/commands/extension-dev.js +1 -1
  310. package/dist/src/cli/commands/extension-marketplace.js +2 -2
  311. package/dist/src/cli/commands/extension.js +4 -4
  312. package/dist/src/cli/commands/gateway/shared.js +1 -1
  313. package/dist/src/cli/commands/gateway/token.js +1 -1
  314. package/dist/src/cli/commands/image.js +1 -1
  315. package/dist/src/cli/commands/init.js +1 -34
  316. package/dist/src/cli/commands/models.js +1 -1
  317. package/dist/src/cli/commands/onboard/channels/registry.js +1 -1
  318. package/dist/src/cli/commands/onboard/model.js +2 -2
  319. package/dist/src/cli/commands/onboard.js +1 -1
  320. package/dist/src/cli/commands/project.js +2 -2
  321. package/dist/src/cli/commands/runtime.js +1 -1
  322. package/dist/src/cli/commands/skills.js +2 -2
  323. package/dist/src/cli/commands/tunnel.js +4 -4
  324. package/dist/src/cli/extension-cli-register.js +5 -5
  325. package/dist/src/cli/templates.d.ts +1 -1
  326. package/dist/src/cli/templates.js +1 -23
  327. package/dist/src/cli/utils/gateway-client.js +1 -1
  328. package/dist/src/cli/utils/init-workspace-core.js +2 -2
  329. package/dist/src/cli/utils/session.js +1 -1
  330. package/dist/src/computer/runtime.js +2 -2
  331. package/dist/src/config/index.js +8 -8
  332. package/dist/src/config/loader.js +3 -3
  333. package/dist/src/config/models-json.js +1 -1
  334. package/dist/src/config/paths.d.ts +0 -2
  335. package/dist/src/config/paths.js +1 -3
  336. package/dist/src/config/reload.d.ts +0 -1
  337. package/dist/src/config/reload.js +0 -4
  338. package/dist/src/config/rules.js +0 -5
  339. package/dist/src/config/schema.d.ts +0 -45
  340. package/dist/src/config/schema.js +3 -24
  341. package/dist/src/connectors/cli/authorization.js +1 -1
  342. package/dist/src/connectors/cli/runtime.js +1 -1
  343. package/dist/src/connectors/composio-sessions.js +1 -1
  344. package/dist/src/connectors/composio.js +1 -1
  345. package/dist/src/connectors/connected-source-understanding.js +3 -3
  346. package/dist/src/connectors/connection-recovery-service.js +5 -5
  347. package/dist/src/connectors/health.js +1 -1
  348. package/dist/src/connectors/plugin-mcp-recovery.js +1 -1
  349. package/dist/src/discussions/live-worker.js +1 -1
  350. package/dist/src/discussions/recording.js +1 -1
  351. package/dist/src/discussions/sealer.js +1 -1
  352. package/dist/src/extensions/activation-context.js +3 -3
  353. package/dist/src/extensions/agent-plugins/validation.js +1 -1
  354. package/dist/src/extensions/api.js +4 -4
  355. package/dist/src/extensions/bundled-extension-activation.js +1 -1
  356. package/dist/src/extensions/index.js +3 -3
  357. package/dist/src/extensions/install.js +1 -1
  358. package/dist/src/extensions/loader.js +2 -2
  359. package/dist/src/extensions/sdk/index.js +1 -1
  360. package/dist/src/extensions/sdk/media.js +1 -1
  361. package/dist/src/extensions/update.js +1 -1
  362. package/dist/src/gateway/agents-admin.d.ts +1 -9
  363. package/dist/src/gateway/agents-admin.js +9 -34
  364. package/dist/src/gateway/device-routes.js +2 -2
  365. package/dist/src/gateway/file-path-classifier.js +2 -2
  366. package/dist/src/gateway/global-defaults-admin.js +1 -1
  367. package/dist/src/gateway/hono/app.js +3 -3
  368. package/dist/src/gateway/hono/lib/config-payload.d.ts +1 -0
  369. package/dist/src/gateway/hono/lib/config-payload.js +4 -4
  370. package/dist/src/gateway/hono/routes/agents.js +1 -1
  371. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  372. package/dist/src/gateway/hono/routes/browser.js +1 -1
  373. package/dist/src/gateway/hono/routes/commands-skills.js +4 -4
  374. package/dist/src/gateway/hono/routes/config-patch/gateway.js +1 -1
  375. package/dist/src/gateway/hono/routes/config-patch/misc.js +2 -2
  376. package/dist/src/gateway/hono/routes/home.js +1 -1
  377. package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
  378. package/dist/src/gateway/hono/routes/mcp.js +2 -2
  379. package/dist/src/gateway/hono/routes/media.js +1 -1
  380. package/dist/src/gateway/hono/routes/models.js +5 -5
  381. package/dist/src/gateway/hono/routes/notes.js +3 -3
  382. package/dist/src/gateway/hono/routes/personal-agent.d.ts +3 -0
  383. package/dist/src/gateway/hono/routes/personal-agent.js +107 -0
  384. package/dist/src/gateway/hono/routes/projects.js +4 -4
  385. package/dist/src/gateway/hono/routes/session-command-handler.js +1 -1
  386. package/dist/src/gateway/hono/routes/session-input-handler.js +4 -4
  387. package/dist/src/gateway/hono/routes/sessions.js +6 -1
  388. package/dist/src/gateway/hono/routes/shares.js +3 -3
  389. package/dist/src/gateway/hono/routes/side-chats.js +1 -1
  390. package/dist/src/gateway/hono/routes/site-shares.js +1 -1
  391. package/dist/src/gateway/hono/routes/tasks.js +66 -3
  392. package/dist/src/gateway/hono/routes/user-model-refresh.js +1 -1
  393. package/dist/src/gateway/hono/routes/user-model.js +5 -5
  394. package/dist/src/gateway/hono/routes/voice.js +14 -6
  395. package/dist/src/gateway/hono/routes/workflows.js +2 -2
  396. package/dist/src/gateway/image-generation-setup.js +3 -3
  397. package/dist/src/gateway/index.js +1 -1
  398. package/dist/src/gateway/lock.js +11 -11
  399. package/dist/src/gateway/media-access.js +1 -1
  400. package/dist/src/gateway/mobile-privacy.js +2 -2
  401. package/dist/src/gateway/ports.js +6 -6
  402. package/dist/src/gateway/run-loop.js +1 -1
  403. package/dist/src/gateway/scenes/mailContext.js +1 -1
  404. package/dist/src/gateway/scenes/slackThreadSource.js +1 -1
  405. package/dist/src/gateway/server.js +1 -1
  406. package/dist/src/gateway/service/config-coordinator.js +3 -3
  407. package/dist/src/gateway/service/run-gateway-agent.js +3 -3
  408. package/dist/src/gateway/service/session-command-service.js +7 -1
  409. package/dist/src/gateway/service/sessions-api.js +12 -2
  410. package/dist/src/gateway/service.js +49 -49
  411. package/dist/src/gateway/session-context-summary.js +2 -2
  412. package/dist/src/gateway/session-reset-service.js +5 -0
  413. package/dist/src/gateway/workspace-editor-path.js +2 -2
  414. package/dist/src/gateway/xopc-cloud-capability-setup.js +1 -1
  415. package/dist/src/home-intelligence/generator.js +1 -1
  416. package/dist/src/home-intelligence/host.js +2 -2
  417. package/dist/src/infra/gateway-processes.js +2 -2
  418. package/dist/src/infra/path-env.js +3 -3
  419. package/dist/src/infra/update-global.js +10 -10
  420. package/dist/src/local-apps/service.js +2 -2
  421. package/dist/src/mcp/gateway-http-client.js +1 -1
  422. package/dist/src/media-understanding/openai-compatible-audio.js +1 -1
  423. package/dist/src/notes/agent-context.js +4 -4
  424. package/dist/src/notes/index.js +1 -1
  425. package/dist/src/notes/service.js +1 -1
  426. package/dist/src/notes/store.js +1 -1
  427. package/dist/src/personal-agent/policy.d.ts +1 -0
  428. package/dist/src/personal-agent/policy.js +13 -0
  429. package/dist/src/personal-agent/repository.d.ts +25 -0
  430. package/dist/src/personal-agent/repository.js +68 -0
  431. package/dist/src/personal-agent/service.d.ts +48 -0
  432. package/dist/src/personal-agent/service.js +222 -0
  433. package/dist/src/providers/auth-runtime/resolve-auth.js +1 -1
  434. package/dist/src/providers/index.js +2 -2
  435. package/dist/src/providers/model-catalog-persistence.js +1 -1
  436. package/dist/src/providers/model-reference-auditor.js +1 -1
  437. package/dist/src/providers/register-runtime-providers.js +1 -1
  438. package/dist/src/remote-access/exposure-manager.js +1 -1
  439. package/dist/src/scenes/taskFollowUp/agentExecutor.js +4 -4
  440. package/dist/src/scenes/taskFollowUp/resources.js +1 -1
  441. package/dist/src/scenes/taskFollowUp/service.js +4 -4
  442. package/dist/src/session/index.js +2 -2
  443. package/dist/src/session/resolve-session.js +4 -2
  444. package/dist/src/session/session-title.js +1 -1
  445. package/dist/src/session/store.js +4 -4
  446. package/dist/src/session/thinking-resolve.js +1 -1
  447. package/dist/src/share/share-store.js +1 -1
  448. package/dist/src/share/share-thumbnail.js +1 -1
  449. package/dist/src/share/share-zip.js +1 -1
  450. package/dist/src/share/site-proxy.js +1 -1
  451. package/dist/src/share/site-share-store.js +1 -1
  452. package/dist/src/storage/sqlite/connection.js +9 -9
  453. package/dist/src/storage/sqlite/migrations/229_task_criterion_reviews.sql +12 -0
  454. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  455. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  456. package/dist/src/storage/sqlite/schema.js +1 -1
  457. package/dist/src/storage/sqlite/schema.sql +13 -0
  458. package/dist/src/storage/sqlite/session-repository.js +6 -2
  459. package/dist/src/storage/sqlite/transcript-repository.js +2 -1
  460. package/dist/src/tasks/capabilities/read.js +5 -2
  461. package/dist/src/tasks/capabilities/write.js +1 -1
  462. package/dist/src/tasks/execution-context.js +1 -1
  463. package/dist/src/tasks/home-query-service.js +3 -3
  464. package/dist/src/tasks/index.js +4 -4
  465. package/dist/src/tasks/task-application-service.js +8 -3
  466. package/dist/src/tasks/task-collaboration-delivery.js +1 -1
  467. package/dist/src/tasks/task-context-assembler.js +1 -1
  468. package/dist/src/tasks/task-criterion-review-repository.d.ts +22 -0
  469. package/dist/src/tasks/task-criterion-review-repository.js +74 -0
  470. package/dist/src/tasks/task-handoff-service.js +1 -1
  471. package/dist/src/tasks/task-main-update-decision-service.js +7 -1
  472. package/dist/src/tui/backends/embedded-backend.js +12 -12
  473. package/dist/src/tui/backends/gateway-realtime-backend.js +1 -1
  474. package/dist/src/tui/extension-host/load-extensions.js +1 -1
  475. package/dist/src/tui/tui-command-formatters.js +1 -1
  476. package/dist/src/tui/tui-commands.js +6 -6
  477. package/dist/src/tui/tui-picker-overlay.js +1 -1
  478. package/dist/src/tui/tui-skills-autocomplete.js +1 -1
  479. package/dist/src/tui/tui-startup-resources.js +4 -4
  480. package/dist/src/tui/tui.js +7 -7
  481. package/dist/src/tunnel/frpc-binary.js +1 -1
  482. package/dist/src/tunnel/gateway-lifecycle.js +1 -1
  483. package/dist/src/voice/realtime/memory-context.js +3 -3
  484. package/dist/src/voice/realtime/persona-context.d.ts +2 -2
  485. package/dist/src/voice/realtime/persona-context.js +19 -33
  486. package/dist/src/voice/realtime/runtime.js +3 -3
  487. package/dist/src/voice/stt/index.js +2 -2
  488. package/dist/src/voice/stt/preflight.js +1 -1
  489. package/dist/src/voice/stt/providers/alibaba-transcription.js +1 -1
  490. package/dist/src/voice/stt/providers/xopc-cloud-transcription.js +1 -1
  491. package/dist/src/voice/stt/transcribe-core.js +1 -1
  492. package/dist/src/voice/tts/index.js +3 -3
  493. package/dist/src/voice/tts/merge-config.js +1 -1
  494. package/dist/src/voice/tts/payload.js +1 -1
  495. package/dist/src/voice/tts/providers/xopc-cloud-speech.js +1 -1
  496. package/dist/src/voice/tts/speak-core.js +1 -1
  497. package/dist/src/work-discovery/incremental-repository.js +1 -1
  498. package/dist/src/work-discovery/index.js +1 -1
  499. package/dist/src/work-discovery/service.js +5 -5
  500. package/dist/src/workflows/engine/workflow-engine.js +1 -1
  501. package/dist/src/workflows/service/workflow-run-service.js +8 -8
  502. package/dist/src/workflows/service/workflow-session-bridge.js +1 -1
  503. package/package.json +3 -3
  504. package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CgNagNMG.js +0 -1
  505. package/dist/gateway/static/root/assets/agent-plugin-dialog-CDhtsMpV.js +0 -1
  506. package/dist/gateway/static/root/assets/agents-BLP0zRru.js +0 -70
  507. package/dist/gateway/static/root/assets/app-management-settings-panel-DqC-oj5_.js +0 -1
  508. package/dist/gateway/static/root/assets/appearance-settings-Cfhepf6U.js +0 -1
  509. package/dist/gateway/static/root/assets/apps-page-C6n5r8AP.js +0 -1
  510. package/dist/gateway/static/root/assets/automations-workspace-DJ_-_kGh.js +0 -7
  511. package/dist/gateway/static/root/assets/browser-settings-page-COTo7btH.js +0 -3
  512. package/dist/gateway/static/root/assets/capabilities-page-BsC346Ym.js +0 -2
  513. package/dist/gateway/static/root/assets/capabilities-settings-panel-CRL4gfk5.js +0 -8
  514. package/dist/gateway/static/root/assets/capability-header-actions-B_60-buR.js +0 -1
  515. package/dist/gateway/static/root/assets/channels-DNxr72oD.js +0 -1
  516. package/dist/gateway/static/root/assets/computer-settings-page-Bk84TKyF.js +0 -1
  517. package/dist/gateway/static/root/assets/connector-service-page-B2pC--2X.js +0 -1
  518. package/dist/gateway/static/root/assets/connectors-page-Bu15_14O.js +0 -2
  519. package/dist/gateway/static/root/assets/date-picker-CCN30yiy.js +0 -1
  520. package/dist/gateway/static/root/assets/desktop-pet-settings-Dg3RM_vY.js +0 -1
  521. package/dist/gateway/static/root/assets/device-pairing-wizard-DUy1HymM.js +0 -1
  522. package/dist/gateway/static/root/assets/directory-picker-path-field-BTuFpGIK.js +0 -1
  523. package/dist/gateway/static/root/assets/dist-CKkafhaS.js +0 -1
  524. package/dist/gateway/static/root/assets/dist-io9jFpN72.js +0 -1
  525. package/dist/gateway/static/root/assets/extension-debug-page-xM8vfbRZ.js +0 -1
  526. package/dist/gateway/static/root/assets/extension-page-Cl8zlion.js +0 -1
  527. package/dist/gateway/static/root/assets/extension-settings-page-DODk0nOi.js +0 -1
  528. package/dist/gateway/static/root/assets/gateway-realtime-store-B01fiKrV.js +0 -1
  529. package/dist/gateway/static/root/assets/gateway-settings-BL3C7Q9w.js +0 -1
  530. package/dist/gateway/static/root/assets/home-page-CjJVq_Ff.js +0 -1
  531. package/dist/gateway/static/root/assets/imports-page-By9oc8sD.js +0 -1
  532. package/dist/gateway/static/root/assets/index-B-w6Rk9Z.css +0 -1
  533. package/dist/gateway/static/root/assets/index-S4z-eKe-.js +0 -106
  534. package/dist/gateway/static/root/assets/local-app-workbench-page-Bnz5YOks.js +0 -1
  535. package/dist/gateway/static/root/assets/logs-page-DVqwybaT.js +0 -2
  536. package/dist/gateway/static/root/assets/management-settings-CUoDWFg7.js +0 -1
  537. package/dist/gateway/static/root/assets/markdown-view-BhFHoVtG.js +0 -201
  538. package/dist/gateway/static/root/assets/messages-vL3EpIrL.js +0 -3
  539. package/dist/gateway/static/root/assets/note-detail-panel-CxbZWvj1.js +0 -5
  540. package/dist/gateway/static/root/assets/notes-page-DkEOEza6.js +0 -8
  541. package/dist/gateway/static/root/assets/page-context-capture-button-CjCYNkVb.js +0 -1
  542. package/dist/gateway/static/root/assets/page-tabs-Dnzie6QW.js +0 -1
  543. package/dist/gateway/static/root/assets/popover-select-0p9PIHRy.js +0 -1
  544. package/dist/gateway/static/root/assets/preview-open-alternatives-D1H4_Nfl.js +0 -1
  545. package/dist/gateway/static/root/assets/project-detail-page-BWC89e7l.js +0 -1
  546. package/dist/gateway/static/root/assets/projects-page-BYmHC91B.js +0 -1
  547. package/dist/gateway/static/root/assets/remote-access-hub-DuVzpZ9R.js +0 -1
  548. package/dist/gateway/static/root/assets/scenes-page-BBl_4U1U.js +0 -2
  549. package/dist/gateway/static/root/assets/schema-form-Rj-wi9sm.js +0 -1
  550. package/dist/gateway/static/root/assets/sessions-page-BnipzwJ6.js +0 -1
  551. package/dist/gateway/static/root/assets/settings-advanced-gate-C7oNKVxC.js +0 -1
  552. package/dist/gateway/static/root/assets/settings-form-section-6gOr-ype.js +0 -1
  553. package/dist/gateway/static/root/assets/settings-page-D1tVcmlR.js +0 -1
  554. package/dist/gateway/static/root/assets/setup-status-panel-CR0VBBw3.js +0 -1
  555. package/dist/gateway/static/root/assets/share-preview-page-CK0Bg_-o.js +0 -2
  556. package/dist/gateway/static/root/assets/shares-settings-B3Ghvh3c.js +0 -1
  557. package/dist/gateway/static/root/assets/skill-api-CoIsCPbI.js +0 -1
  558. package/dist/gateway/static/root/assets/skill-reload-api-DMIwfISw.js +0 -1
  559. package/dist/gateway/static/root/assets/skills-page-CDkm7yig.js +0 -2
  560. package/dist/gateway/static/root/assets/system-settings-panel-Cfv-jDmY.js +0 -1
  561. package/dist/gateway/static/root/assets/task-detail-page-eYs6qgcW.js +0 -1
  562. package/dist/gateway/static/root/assets/tasks-BH8_WMUF.js +0 -1
  563. package/dist/gateway/static/root/assets/tunnel-api-CpOQaCFN.js +0 -1
  564. package/dist/gateway/static/root/assets/usage-page-Cye-2eKA.js +0 -1
  565. package/dist/gateway/static/root/assets/use-autosave-o6YLrkpO.js +0 -1
  566. package/dist/gateway/static/root/assets/user-model-page-Bg-jeU7W.js +0 -2
  567. package/dist/gateway/static/root/assets/voice-api-key-field-FMNwQIho.js +0 -1
  568. package/dist/gateway/static/root/assets/workflows-page-KnoMMEDN.js +0 -6
  569. package/dist/src/agent/bootstrap/filter-bootstrap-files.d.ts +0 -3
  570. package/dist/src/agent/bootstrap/filter-bootstrap-files.js +0 -18
  571. package/dist/src/agent/context/workspace-templates/HEARTBEAT.md +0 -26
  572. package/dist/src/agent/context/workspace-templates/IDENTITY.md +0 -30
  573. package/dist/src/agent/service/parse-outbound-session-key.d.ts +0 -8
  574. package/dist/src/agent/service/parse-outbound-session-key.js +0 -44
  575. package/dist/src/heartbeat/active-hours.d.ts +0 -11
  576. package/dist/src/heartbeat/active-hours.js +0 -40
  577. package/dist/src/heartbeat/content-check.d.ts +0 -4
  578. package/dist/src/heartbeat/content-check.js +0 -17
  579. package/dist/src/heartbeat/event-prompt.d.ts +0 -4
  580. package/dist/src/heartbeat/event-prompt.js +0 -11
  581. package/dist/src/heartbeat/index.d.ts +0 -5
  582. package/dist/src/heartbeat/index.js +0 -6
  583. package/dist/src/heartbeat/tokens.d.ts +0 -15
  584. package/dist/src/heartbeat/tokens.js +0 -25
  585. package/dist/src/heartbeat/wake.d.ts +0 -13
  586. package/dist/src/heartbeat/wake.js +0 -46
  587. /package/dist/gateway/static/root/assets/{dist-CI_fqRk-2.js → dist-CI_fqRk-.js} +0 -0
@@ -7,27 +7,16 @@ import { getSessionMetadata } from "../../storage/sqlite/session-read-repository
7
7
  import { getSessionTaskPlan, setSessionTaskPlan } from "../../storage/sqlite/session-task-plan-repository.js";
8
8
  import { init_sqlite } from "../../storage/sqlite/index.js";
9
9
  import { init_agent_scope, resolveDefaultAgentId } from "../agent-scope.js";
10
- import { BrowserRuntime } from "../../browser/runtime/browser-runtime.js";
11
- import "../../../packages/browser-control-contract/src/index.js";
12
- import { createBrowserDriver } from "../../browser/drivers/create-driver.js";
13
- import { checkBrowserReadiness } from "../../browser/readiness.js";
14
- import "../../browser/index.js";
15
- import { mergeTtsConfigFromAppConfig } from "../../voice/tts/merge-config.js";
16
10
  import { resolveEffectiveAgentConfigForAgent, resolveEffectiveAgentConfigForSession } from "../../config/agent-profile.js";
17
- import { createWorkflowCatalog } from "../workflow/catalog.js";
18
- import { ComputerRuntime } from "../../computer/runtime.js";
19
- import { buildRuntimeEnvironment } from "../../runtime-tools/environment.js";
20
- import { skillEnvironmentId } from "../skills/installer.js";
11
+ import "../../../packages/browser-control-contract/src/index.js";
12
+ import { getEmbeddedExecutionRunId, getEmbeddedExecutionSession } from "../embedded/execution-context.js";
21
13
  import { wrapToolsWithProtection } from "./executor.js";
22
14
  import { EXTERNAL_TOOL_NAMES } from "../external-tools/gateway-tools.js";
15
+ import { buildRuntimeEnvironment } from "../../runtime-tools/environment.js";
23
16
  import { createDefaultExternalToolGatewayTools } from "../external-tools/index.js";
24
- import { resolveUserContextSessionAccess } from "../../user-context/access-policy.js";
25
- import { getPendingTranscriptUserText } from "../inbound/attachment-pipeline.js";
26
- import { createDataBatchTool } from "./dataBatch.js";
27
- import { getEmbeddedExecutionRunId, getEmbeddedExecutionSession } from "../embedded/execution-context.js";
28
- import { createDelegateTool } from "./delegate-tool.js";
29
- import { createDelegationParentPolicy } from "./delegation-parent-policy.js";
30
17
  import { createReadFileTool } from "./read.js";
18
+ import { createDataBatchTool } from "./dataBatch.js";
19
+ import { skillEnvironmentId } from "../skills/installer.js";
31
20
  import { createWriteFileTool } from "./write.js";
32
21
  import { createListDirTool } from "./list-dir.js";
33
22
  import { createPublishArtifactsTool } from "./publish-artifacts.js";
@@ -50,7 +39,14 @@ import { createUpdatePlanTool } from "./update-plan-tool.js";
50
39
  import { createSessionStatusTool } from "./session-status-tool.js";
51
40
  import { createMemoryMaintenanceTool } from "./memory-maintenance-tool.js";
52
41
  import { createClarifyTool } from "./clarify-tool.js";
42
+ import { BrowserRuntime } from "../../browser/runtime/browser-runtime.js";
43
+ import { createBrowserDriver } from "../../browser/drivers/create-driver.js";
44
+ import { checkBrowserReadiness } from "../../browser/readiness.js";
45
+ import "../../browser/index.js";
46
+ import { getPendingTranscriptUserText } from "../inbound/attachment-pipeline.js";
47
+ import { createDelegateTool } from "./delegate-tool.js";
53
48
  import { createWorkflowTool } from "./workflow-tool.js";
49
+ import { createWorkflowCatalog } from "../workflow/catalog.js";
54
50
  import { createWorkflowManageTool } from "./workflow-manage-tool.js";
55
51
  import { createAutomationTool } from "./automation-tool.js";
56
52
  import { createBrowserAutomationTool } from "./browser-automation-tool.js";
@@ -65,10 +61,16 @@ import { createManagedJobTool } from "./managed-job-tool.js";
65
61
  import { createImageTool } from "./image-tool.js";
66
62
  import { createImageGenerateTool } from "./image-generate-tool.js";
67
63
  import "./index.js";
64
+ import { createPersonalTaskTool } from "./personal-task-tool.js";
65
+ import { createPersonalPreferenceTool } from "./personal-preference-tool.js";
66
+ import { resolveUserContextSessionAccess } from "../../user-context/access-policy.js";
68
67
  import { createBrowserUseTool } from "./browser/tool/browser-use-tool.js";
68
+ import { ComputerRuntime } from "../../computer/runtime.js";
69
69
  import { createComputerUseTool } from "./computer-use-tool.js";
70
70
  import { createReviewWorkspaceTool } from "./review-workspace.js";
71
71
  import { createLanguageDiagnosticsTool } from "./language-diagnostics.js";
72
+ import { createDelegationParentPolicy } from "./delegation-parent-policy.js";
73
+ import { mergeTtsConfigFromAppConfig } from "../../voice/tts/merge-config.js";
72
74
  import { createTextToSpeechTool } from "./tts-tool.js";
73
75
  import { getAgentCapabilityToolNames } from "../capabilities/registry.js";
74
76
  import "../capabilities/index.js";
@@ -210,6 +212,7 @@ var AgentToolsFactory = class AgentToolsFactory {
210
212
  const getSkillMgr = options?.getSkillManager;
211
213
  const disabled = options?.disabledTools;
212
214
  const allowed = options?.toolAllowlist ? new Set(options.toolAllowlist) : void 0;
215
+ const personalToolsConfigured = Boolean(allowed?.has("personal_task") || allowed?.has("personal_preference"));
213
216
  const primary = getPrimary?.();
214
217
  const modelHasVision = primary?.input?.includes("image") ?? false;
215
218
  const cfg = this.deps.getConfig?.();
@@ -261,6 +264,22 @@ var AgentToolsFactory = class AgentToolsFactory {
261
264
  const listDir = createListDirTool(workspace);
262
265
  const grep = createGrepTool(workspace);
263
266
  const find = createFindTool(workspace);
267
+ const productToolDeps = {
268
+ getWorkspace: () => this.deps.workspace,
269
+ getConfig: () => this.deps.getConfig?.(),
270
+ getCurrentAgentId: () => options?.agentId,
271
+ getCurrentConversationId: () => this.deps.getCurrentContext()?.conversationId,
272
+ getAutomationService: this.deps.getAutomationService,
273
+ getSceneAccess: this.deps.getSceneAccess,
274
+ getNotesService: this.deps.getNotesService,
275
+ getProjectService: this.deps.getProjectService,
276
+ getWorkDiscovery: this.deps.getWorkDiscovery,
277
+ getLocalAppService: this.deps.getLocalAppService,
278
+ getChatPreviewService: this.deps.getChatPreviewService,
279
+ dispatchTaskEvents: this.deps.dispatchTaskEvents,
280
+ dispatchTaskRuns: this.deps.dispatchTaskRuns,
281
+ onAgentCatalogMutate: this.deps.onAgentCatalogMutate
282
+ };
264
283
  const core = [
265
284
  createSessionStatusTool(),
266
285
  createMemoryMaintenanceTool({ getConfig: () => this.deps.getConfig?.() }),
@@ -432,22 +451,10 @@ var AgentToolsFactory = class AgentToolsFactory {
432
451
  getProjectService: this.deps.getProjectService
433
452
  })] : [],
434
453
  ...browserEnabled && this.deps.getBrowserAutomationService ? [createBrowserAutomationTool({ getBrowserAutomationService: this.deps.getBrowserAutomationService })] : [],
435
- ...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({
436
- getWorkspace: () => this.deps.workspace,
437
- getConfig: () => this.deps.getConfig?.(),
438
- getCurrentAgentId: () => options.agentId,
454
+ ...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 ? [createPersonalTaskTool(productToolDeps), createPersonalPreferenceTool({
439
455
  getCurrentConversationId: () => this.deps.getCurrentContext()?.conversationId,
440
- getAutomationService: this.deps.getAutomationService,
441
- getSceneAccess: this.deps.getSceneAccess,
442
- getNotesService: this.deps.getNotesService,
443
- getProjectService: this.deps.getProjectService,
444
- getWorkDiscovery: this.deps.getWorkDiscovery,
445
- getLocalAppService: this.deps.getLocalAppService,
446
- getChatPreviewService: this.deps.getChatPreviewService,
447
- dispatchTaskEvents: this.deps.dispatchTaskEvents,
448
- dispatchTaskRuns: this.deps.dispatchTaskRuns,
449
456
  onAgentCatalogMutate: this.deps.onAgentCatalogMutate
450
- })] : [],
457
+ })] : []] : [],
451
458
  ...cfg?.computer.enabled && this.deps.endpointTools ? [createComputerUseTool({
452
459
  runtime: this.ensureComputerRuntime(),
453
460
  context: () => {
@@ -1,6 +1,6 @@
1
1
  import { checkUrlSafety, checkWebsiteBlocklist } from "./url-safety.js";
2
- import { lookup } from "node:dns";
3
2
  import { Agent, fetch } from "undici";
3
+ import { lookup } from "node:dns";
4
4
  //#region src/agent/tools/fetch-text.ts
5
5
  /** Validate each redirect and the address actually used for the connection. */
6
6
  async function fetchPublicText(input, blocklist, signal) {
@@ -1,12 +1,12 @@
1
1
  import { getAgentDefaultImageGenerationModelConfig, init_schema } from "../../config/schema.js";
2
+ import { readWorkspaceFile, writeWorkspaceFile } from "../sandbox/fileAccess.js";
2
3
  import { imageAssetFromDataUrl, imageFileExtensionForMimeType, mimeTypeFromFileName, parseImageDataUrl, sniffImageMimeType } from "../image/generation/image-assets.js";
3
- import { getImageGenerationProvider } from "../image/generation/provider-registry.js";
4
+ import { persistToolMedia } from "./tool-media.js";
4
5
  import { buildCapabilityPlansForConfig } from "../../capabilities/readiness/from-config.js";
5
6
  import "../../capabilities/readiness/index.js";
6
7
  import { applyImageGenerationModelConfigDefaults } from "../image/image-helpers.js";
7
- import { readWorkspaceFile, writeWorkspaceFile } from "../sandbox/fileAccess.js";
8
- import { persistToolMedia } from "./tool-media.js";
9
8
  import { isFailoverError } from "../failover-error.js";
9
+ import { getImageGenerationProvider } from "../image/generation/provider-registry.js";
10
10
  import { generateImage, listImageGenerationProvidersSummary } from "../image/generation/runtime.js";
11
11
  import path from "node:path";
12
12
  import { randomBytes } from "node:crypto";
@@ -1,13 +1,8 @@
1
- import { assertBrowserUrlAllowed } from "../../browser/url-policy.js";
2
- import { BrowserRuntime } from "../../browser/runtime/browser-runtime.js";
3
- import "../../browser/index.js";
4
1
  import { DEFAULT_TOOL_METADATA, getToolMetadata } from "./metadata.js";
5
2
  import { ToolConcurrencyController, resolveToolLockMode } from "./concurrency.js";
6
- import { resolveImageModelConfigForTool } from "../image/tool-model-config.js";
7
- import { createDataBatchTool } from "./dataBatch.js";
8
- import { DEFAULT_DELEGATE_TOOLS, DELEGATE_BLOCKED_TOOLS, createDelegateTool } from "./delegate-tool.js";
9
3
  import { DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, GREP_MAX_LINE_LENGTH, formatSize, truncateHead, truncateLine, truncateTail } from "./truncate.js";
10
4
  import { createReadFileTool } from "./read.js";
5
+ import { createDataBatchTool } from "./dataBatch.js";
11
6
  import { createWriteFileTool, writeFileTool } from "./write.js";
12
7
  import { createListDirTool, listDirTool } from "./list-dir.js";
13
8
  import { createPublishArtifactsTool } from "./publish-artifacts.js";
@@ -31,6 +26,11 @@ import { createUpdatePlanTool } from "./update-plan-tool.js";
31
26
  import { createSessionStatusTool } from "./session-status-tool.js";
32
27
  import { createMemoryMaintenanceTool } from "./memory-maintenance-tool.js";
33
28
  import { createClarifyTool } from "./clarify-tool.js";
29
+ import { assertBrowserUrlAllowed } from "../../browser/url-policy.js";
30
+ import { BrowserRuntime } from "../../browser/runtime/browser-runtime.js";
31
+ import "../../browser/index.js";
32
+ import { resolveImageModelConfigForTool } from "../image/tool-model-config.js";
33
+ import { DEFAULT_DELEGATE_TOOLS, DELEGATE_BLOCKED_TOOLS, createDelegateTool } from "./delegate-tool.js";
34
34
  import { createWorkflowTool } from "./workflow-tool.js";
35
35
  import { createWorkflowManageTool } from "./workflow-manage-tool.js";
36
36
  import { createAutomationTool } from "./automation-tool.js";
@@ -1,5 +1,5 @@
1
- import { resolvePathUnderWorkspace } from "./tool-paths.js";
2
1
  import { checkedFilePath } from "../sandbox/fileAccess.js";
2
+ import { resolvePathUnderWorkspace } from "./tool-paths.js";
3
3
  import { readdir } from "fs/promises";
4
4
  import { Type } from "@sinclair/typebox";
5
5
  //#region src/agent/tools/list-dir.ts
@@ -0,0 +1,10 @@
1
+ import type { AgentTool } from '@earendil-works/pi-agent-core';
2
+ declare const PreferenceSchema: import("@sinclair/typebox").TObject<{
3
+ field: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"addressAs">, import("@sinclair/typebox").TLiteral<"warmth">, import("@sinclair/typebox").TLiteral<"humor">, import("@sinclair/typebox").TLiteral<"supportMode">, import("@sinclair/typebox").TLiteral<"detailLevel">, import("@sinclair/typebox").TLiteral<"proactivity">]>;
4
+ value: import("@sinclair/typebox").TString;
5
+ }>;
6
+ export declare function createPersonalPreferenceTool(deps: {
7
+ getCurrentConversationId: () => string | undefined;
8
+ onAgentCatalogMutate?: () => void;
9
+ }): AgentTool<typeof PreferenceSchema, Record<string, never>>;
10
+ export {};
@@ -0,0 +1,43 @@
1
+ import { getPersonalAgentByConversation } from "../../personal-agent/repository.js";
2
+ import { PersonalPreferencesSchema, updatePersonalProfileRecord } from "../../personal-agent/service.js";
3
+ import { Type } from "@sinclair/typebox";
4
+ //#region src/agent/tools/personal-preference-tool.ts
5
+ const PreferenceSchema = Type.Object({
6
+ field: Type.Union([
7
+ Type.Literal("addressAs"),
8
+ Type.Literal("warmth"),
9
+ Type.Literal("humor"),
10
+ Type.Literal("supportMode"),
11
+ Type.Literal("detailLevel"),
12
+ Type.Literal("proactivity")
13
+ ]),
14
+ value: Type.String({ description: "Use the exact enum for the field: warmth=reserved|balanced|gentle; humor=none|occasional|playful; supportMode=listen|untangle|solutions; detailLevel=brief|balanced|detailed; proactivity=decisions|important|open. addressAs is free text. Save only explicitly requested lasting preferences." })
15
+ });
16
+ function createPersonalPreferenceTool(deps) {
17
+ return {
18
+ name: "personal_preference",
19
+ label: "Personal Preference",
20
+ description: "Save how the user explicitly wants you to respond in future conversations. Do not save guesses, a temporary mood, or a one-time instruction.",
21
+ parameters: PreferenceSchema,
22
+ async execute(_toolCallId, input) {
23
+ const conversationId = deps.getCurrentConversationId();
24
+ const personal = conversationId ? getPersonalAgentByConversation(conversationId) : null;
25
+ if (!personal || personal.state !== "ready") throw new Error("Personal AI conversation is unavailable");
26
+ const next = PersonalPreferencesSchema.parse({
27
+ ...personal.preferences,
28
+ [input.field]: input.value.trim()
29
+ });
30
+ if (!await updatePersonalProfileRecord(personal.ownerId, personal.revision, personal.displayName, next, personal.appearance)) throw new Error("Preference changed concurrently; read the current profile and try again");
31
+ deps.onAgentCatalogMutate?.();
32
+ return {
33
+ content: [{
34
+ type: "text",
35
+ text: `Saved ${input.field} as an explicit preference. It takes effect on the next reply.`
36
+ }],
37
+ details: {}
38
+ };
39
+ }
40
+ };
41
+ }
42
+ //#endregion
43
+ export { createPersonalPreferenceTool };
@@ -0,0 +1,28 @@
1
+ import type { AgentTool } from '@earendil-works/pi-agent-core';
2
+ import { type XopcUseToolDeps } from './xopc-use-tool.js';
3
+ declare const PersonalTaskSchema: import("@sinclair/typebox").TObject<{
4
+ command: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"agents">, import("@sinclair/typebox").TLiteral<"create">, import("@sinclair/typebox").TLiteral<"list">, import("@sinclair/typebox").TLiteral<"get">, import("@sinclair/typebox").TLiteral<"instruct">]>;
5
+ title: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
6
+ objective: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
7
+ description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
8
+ agentId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
9
+ taskId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
10
+ instruction: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
11
+ expectedOutputs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
12
+ acceptanceCriteria: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
13
+ constraints: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
14
+ requiredTools: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
15
+ idempotencyKey: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
16
+ }>;
17
+ export declare function buildPersonalTaskBrief(input: {
18
+ title?: string;
19
+ objective: string;
20
+ description?: string;
21
+ }): {
22
+ title: string;
23
+ objective: string;
24
+ body?: string;
25
+ };
26
+ /** A narrow Task surface for the fast personal conversation. */
27
+ export declare function createPersonalTaskTool(deps: XopcUseToolDeps): AgentTool<typeof PersonalTaskSchema, Record<string, never>>;
28
+ export {};
@@ -0,0 +1,165 @@
1
+ import { resolveEffectiveAgentConfig } from "../../agent-config/resolver.js";
2
+ import { init_agent_config } from "../../agent-config/index.js";
3
+ import { AgentCatalogRepository, init_repository } from "../../agent-catalog/repository.js";
4
+ import { resolveEffectiveAgentConfigForAgent } from "../../config/agent-profile.js";
5
+ import { TaskOriginRepository } from "../../tasks/task-origin-repository.js";
6
+ import { createXopcUseTool } from "./xopc-use-tool.js";
7
+ import { isPersonalConversation } from "../../personal-agent/repository.js";
8
+ import { randomUUID } from "node:crypto";
9
+ import { Type } from "@sinclair/typebox";
10
+ //#region src/agent/tools/personal-task-tool.ts
11
+ init_repository();
12
+ init_agent_config();
13
+ const PersonalTaskSchema = Type.Object({
14
+ command: Type.Union([
15
+ Type.Literal("agents"),
16
+ Type.Literal("create"),
17
+ Type.Literal("list"),
18
+ Type.Literal("get"),
19
+ Type.Literal("instruct")
20
+ ]),
21
+ title: Type.Optional(Type.String({ description: "Short task title, ideally under 60 characters. Do not put the full instructions here." })),
22
+ objective: Type.Optional(Type.String({ description: "One-sentence outcome for a new delegated Task." })),
23
+ description: Type.Optional(Type.String({ description: "Full task brief in Markdown: background, specific requests, source material, and delivery expectations." })),
24
+ agentId: Type.Optional(Type.String({ description: "Specialist Agent ID. Never use your own ID." })),
25
+ taskId: Type.Optional(Type.String()),
26
+ instruction: Type.Optional(Type.String({ description: "The user’s new direction for this delegated Task." })),
27
+ expectedOutputs: Type.Optional(Type.Array(Type.String())),
28
+ acceptanceCriteria: Type.Optional(Type.Array(Type.String())),
29
+ constraints: Type.Optional(Type.Array(Type.String())),
30
+ requiredTools: Type.Optional(Type.Array(Type.String({ description: "Tool names needed for this Task. Use names returned by agents; omit when matching by role or expertise." }))),
31
+ idempotencyKey: Type.Optional(Type.String())
32
+ });
33
+ const MAX_PERSONAL_TASK_TITLE = 60;
34
+ const DISCOVERY_TOOLS = [
35
+ "web_search",
36
+ "web_fetch",
37
+ "browser_use",
38
+ "read_file",
39
+ "write_file",
40
+ "exec_command",
41
+ "image",
42
+ "image_generate",
43
+ "read_media",
44
+ "automation",
45
+ "workflow",
46
+ "xopc_use",
47
+ "xopc_tool_search",
48
+ "computer_use",
49
+ "send_message",
50
+ "text_to_speech"
51
+ ];
52
+ function availableAgentTools(config, deps) {
53
+ return (config.toolAllowlist ? [...new Set([...DISCOVERY_TOOLS, ...config.toolAllowlist])] : DISCOVERY_TOOLS).filter((name) => (name !== "browser_use" || deps.getConfig?.()?.browser?.enabled !== false) && (!config.toolAllowlist || config.toolAllowlist.includes(name)) && config.tools[name]?.mode !== "deny");
54
+ }
55
+ function buildPersonalTaskBrief(input) {
56
+ const fullObjective = input.objective.trim();
57
+ const titleSource = (input.title?.trim() || fullObjective).replace(/\s+/g, " ");
58
+ const firstClause = titleSource.split(/[。!?\n]|(?<=[.!?])\s/)[0]?.trim() || titleSource;
59
+ const title = firstClause.length > MAX_PERSONAL_TASK_TITLE ? `${firstClause.slice(0, MAX_PERSONAL_TASK_TITLE - 1).trimEnd()}…` : firstClause;
60
+ const objective = fullObjective.length > 120 ? title : fullObjective;
61
+ const description = input.description?.trim();
62
+ const body = fullObjective !== objective ? [fullObjective, description].filter(Boolean).join("\n\n") : description;
63
+ return {
64
+ title,
65
+ objective,
66
+ ...body ? { body } : {}
67
+ };
68
+ }
69
+ /** A narrow Task surface for the fast personal conversation. */
70
+ function createPersonalTaskTool(deps) {
71
+ const productTool = createXopcUseTool(deps);
72
+ return {
73
+ name: "personal_task",
74
+ label: "Personal Task",
75
+ description: "Find specialist Agents by role and availableTools, delegate work they can do, inspect Tasks, or send instructions. Before saying you cannot do a request, use agents to look for another Agent. If a candidate fails, try another suitable Agent or approach before reporting a blocker. agents can filter by requiredTools; if none match, inspect unfiltered Agents for another viable approach. Return to the user quickly after creation.",
76
+ parameters: PersonalTaskSchema,
77
+ mutatesWorkspace: true,
78
+ mutationScope: "external",
79
+ requiresExclusiveWorkspaceLock: true,
80
+ finalGuardRelevant: true,
81
+ async execute(toolCallId, input, signal) {
82
+ const conversationId = deps.getCurrentConversationId?.();
83
+ const ownAgentId = deps.getCurrentAgentId?.();
84
+ if (!conversationId || !ownAgentId || !isPersonalConversation(conversationId)) throw new Error("Personal conversation context is unavailable");
85
+ if (input.command === "agents") {
86
+ const requiredTools = input.requiredTools ?? [];
87
+ const catalog = new AgentCatalogRepository().snapshot();
88
+ const agents = catalog.agents.filter((agent) => agent.enabled !== false && agent.id !== ownAgentId && !agent.id.startsWith("personal-")).map((agent) => {
89
+ const config = resolveEffectiveAgentConfig({
90
+ defaults: catalog.defaults,
91
+ agent
92
+ }).config;
93
+ const availableTools = availableAgentTools(config, deps);
94
+ return {
95
+ id: agent.id,
96
+ name: agent.profile?.name ?? agent.id,
97
+ description: agent.profile?.description ?? "",
98
+ availableTools
99
+ };
100
+ }).filter((agent) => requiredTools.every((tool) => agent.availableTools.includes(tool)));
101
+ return {
102
+ content: [{
103
+ type: "text",
104
+ text: JSON.stringify(agents)
105
+ }],
106
+ details: {}
107
+ };
108
+ }
109
+ let command = input.command;
110
+ let args = {};
111
+ if (command === "create") {
112
+ const objective = input.objective?.trim();
113
+ const agentId = input.agentId?.trim();
114
+ if (!objective || !agentId) throw new Error("objective and specialist agentId are required");
115
+ if (agentId === ownAgentId || agentId.startsWith("personal-")) throw new Error("Delegate to a specialist Agent, not a personal Agent");
116
+ const specialist = new AgentCatalogRepository().get(agentId);
117
+ if (!specialist || specialist.enabled === false || specialist.provisioningState !== "ready") throw new Error(`Specialist Agent is unavailable: ${agentId}`);
118
+ const availableTools = availableAgentTools(resolveEffectiveAgentConfigForAgent(agentId).config, deps);
119
+ const missingTools = (input.requiredTools ?? []).filter((tool) => !availableTools.includes(tool));
120
+ if (missingTools.length > 0) throw new Error(`Agent ${agentId} lacks required tools: ${missingTools.join(", ")}. Find another Agent or approach.`);
121
+ args = {
122
+ ...buildPersonalTaskBrief({
123
+ title: input.title,
124
+ objective,
125
+ description: input.description
126
+ }),
127
+ agentId,
128
+ createMode: "start",
129
+ includeConversationContext: false,
130
+ expectedOutputs: input.expectedOutputs ?? [],
131
+ acceptanceCriteria: input.acceptanceCriteria ?? [],
132
+ constraints: input.constraints ?? [],
133
+ idempotencyKey: input.idempotencyKey?.trim() || randomUUID()
134
+ };
135
+ } else if (command === "list") {
136
+ command = "delegated_tasks";
137
+ args = { limit: 20 };
138
+ } else {
139
+ const taskId = input.taskId?.trim();
140
+ if (!taskId) throw new Error("taskId is required");
141
+ if (!new TaskOriginRepository().owns(taskId, conversationId)) throw new Error("Task does not belong to this personal conversation");
142
+ if (command === "instruct") {
143
+ const body = input.instruction?.trim();
144
+ if (!body) throw new Error("instruction is required");
145
+ command = "collaboration_post";
146
+ args = {
147
+ taskId,
148
+ kind: "instruction",
149
+ body
150
+ };
151
+ } else args = { taskId };
152
+ }
153
+ return {
154
+ content: (await productTool.execute(toolCallId, {
155
+ mode: "task",
156
+ command,
157
+ args
158
+ }, signal, void 0)).content,
159
+ details: {}
160
+ };
161
+ }
162
+ };
163
+ }
164
+ //#endregion
165
+ export { buildPersonalTaskBrief, createPersonalTaskTool };
@@ -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";
4
- import { resolvePathUnderWorkspace } from "./tool-paths.js";
5
3
  import { evaluateFilePolicy } from "../sandbox/exec-policy.js";
6
4
  import { readWorkspaceFile } from "../sandbox/fileAccess.js";
5
+ 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 { realpath } from "node:fs/promises";
@@ -1,8 +1,8 @@
1
- import { isBareProfileMarkdownFileName, resolvePathUnderWorkspace, resolveProfileMarkdownPathIfBareName } from "./tool-paths.js";
2
1
  import { checkedFilePath, readWorkspaceFileAsync } from "../sandbox/fileAccess.js";
3
- import { checkFileSafety } from "../prompt/safety.js";
4
2
  import { dataScheduler } from "../data-acquisition/scheduler.js";
3
+ import { checkFileSafety } from "../prompt/safety.js";
5
4
  import { DEFAULT_MAX_BYTES, formatSize, truncateHead } from "./truncate.js";
5
+ import { isBareProfileMarkdownFileName, resolvePathUnderWorkspace, resolveProfileMarkdownPathIfBareName } from "./tool-paths.js";
6
6
  import { stat } from "fs/promises";
7
7
  import { Type } from "@sinclair/typebox";
8
8
  //#region src/agent/tools/read.ts
@@ -1,5 +1,5 @@
1
- import { prepareSafeToolEnv } from "../sandbox/sanitize-env-vars.js";
2
1
  import { readWorkspaceRevision } from "../coding/workspace-revision.js";
2
+ import { prepareSafeToolEnv } from "../sandbox/sanitize-env-vars.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,9 +1,9 @@
1
1
  import { turnOutcomeKindFromFileName } from "../../../packages/gateway-contract/src/turn-outcome.js";
2
2
  import { init_src } from "../../../packages/gateway-contract/src/index.js";
3
- import { resolvePathUnderWorkspace } from "./tool-paths.js";
4
- import { MEDIA_MAX_BYTES } from "../../media/store.js";
5
3
  import { readWorkspaceFile } from "../sandbox/fileAccess.js";
6
4
  import { checkFileSafety } from "../prompt/safety.js";
5
+ import { resolvePathUnderWorkspace } from "./tool-paths.js";
6
+ import { MEDIA_MAX_BYTES } from "../../media/store.js";
7
7
  import { persistToolMedia } from "./tool-media.js";
8
8
  import { basename } from "node:path";
9
9
  import { Type } from "@sinclair/typebox";
@@ -1,7 +1,7 @@
1
1
  import { resolveStateDir } from "../../config/paths-state.js";
2
2
  import { init_paths } from "../../config/paths.js";
3
- import { createSkillConfigManager, isSkillEnabled, resolveSkillConfig } from "../skills/config.js";
4
3
  import { DEFAULT_MAX_BYTES, formatSize, truncateHead } from "./truncate.js";
4
+ import { createSkillConfigManager, isSkillEnabled, resolveSkillConfig } from "../skills/config.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";
@@ -1,8 +1,8 @@
1
1
  import { createLogger } from "../../utils/logger/index.js";
2
2
  import { init_logger } from "../../utils/logger.js";
3
+ import { speak } from "../../voice/tts/speak-core.js";
3
4
  import { mergeTtsConfigFromAppConfig } from "../../voice/tts/merge-config.js";
4
5
  import { getChannelOutputFormat } from "../../voice/tts/service.js";
5
- import { speak } from "../../voice/tts/speak-core.js";
6
6
  import { compressAudio } from "../../voice/tts/audio.js";
7
7
  import { persistOutboundTtsAudio } from "../../channels/attachments/outbound-tts-persist.js";
8
8
  import { Type } from "@sinclair/typebox";
@@ -1,7 +1,7 @@
1
+ import { retrievalLexicalSimilarity } from "../../retrieval/textFeatures.js";
1
2
  import { deleteUserAssertion, getAssertionSlot, getUserAssertion, listUserAssertionSources, listUserAssertions, reconcileAssertion, setAssertionStatus } from "../../user-model/repository.js";
2
3
  import { canUseAssertion } from "../../user-model/usage-policy.js";
3
4
  import "../../user-model/index.js";
4
- import { retrievalLexicalSimilarity } from "../../retrieval/textFeatures.js";
5
5
  import { Type } from "@sinclair/typebox";
6
6
  //#region src/agent/tools/user-context-tool.ts
7
7
  const SearchSchema = Type.Object({
@@ -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";
4
- import { isBareProfileMarkdownFileName, resolvePathUnderWorkspace, resolveProfileMarkdownPathIfBareName } from "./tool-paths.js";
5
3
  import { writeWorkspaceFile } from "../sandbox/fileAccess.js";
6
4
  import { checkFileSafety } from "../prompt/safety.js";
5
+ 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";
@@ -10,22 +10,22 @@ import { TaskRunRepository } from "../../tasks/task-run-repository.js";
10
10
  import { getSessionMetadata } from "../../storage/sqlite/session-read-repository.js";
11
11
  import { init_sqlite } from "../../storage/sqlite/index.js";
12
12
  import "../../activity/index.js";
13
- import { CapabilityError } from "../../capabilities/runtime/errors.js";
14
- import "../../capabilities/runtime/dispatcher.js";
15
13
  import { getDefaultAgentId, init_resolve_route } from "../../routing/resolve-route.js";
16
- import { TaskCollaborationRepository } from "../../tasks/task-collaboration-repository.js";
17
14
  import { TaskConversationRepository } from "../../tasks/task-conversation-repository.js";
18
- import { TaskApplicationService } from "../../tasks/task-application-service.js";
15
+ import { CapabilityError } from "../../capabilities/runtime/errors.js";
16
+ import "../../capabilities/runtime/dispatcher.js";
19
17
  import { resolveProjectAgentId } from "../../projects/project-agent.js";
20
18
  import "../../projects/index.js";
21
- import { TaskOriginRepository } from "../../tasks/task-origin-repository.js";
22
19
  import { TaskDeletionService } from "../../tasks/task-deletion-service.js";
23
20
  import { TaskDeleteOutputSchema } from "../../tasks/capabilities/management.js";
21
+ import { TaskCollaborationRepository } from "../../tasks/task-collaboration-repository.js";
22
+ import { TaskApplicationService } from "../../tasks/task-application-service.js";
24
23
  import { AutomationCreateCapabilityInputSchema, AutomationUpdatePatchSchema } from "../../automations/capabilities/write.js";
25
24
  import { TaskMutationOutputSchema } from "../../tasks/capabilities/write.js";
26
25
  import { createProductDispatcher } from "../../capabilities/runtime/product.js";
27
26
  import { localAppCapabilities } from "../../local-apps/capabilities/runtime.js";
28
27
  import { defineTaskContract } from "../../tasks/task-contract-definition.js";
28
+ import { TaskOriginRepository } from "../../tasks/task-origin-repository.js";
29
29
  import "../../tasks/index.js";
30
30
  import { randomUUID } from "node:crypto";
31
31
  import { Type } from "@sinclair/typebox";
@@ -1464,6 +1464,7 @@ async function handleTask(command, args, deps, dryRun, capabilities) {
1464
1464
  const input = {
1465
1465
  idempotencyKey: trimString(args.idempotencyKey) ?? randomUUID(),
1466
1466
  title: trimString(args.title) ?? objective,
1467
+ ...trimString(args.body) ? { body: trimString(args.body) } : {},
1467
1468
  priority: priority ?? "normal",
1468
1469
  ...dueAt === void 0 ? {} : { dueAt },
1469
1470
  ...projectId ? { projectId } : {},
@@ -1476,7 +1477,7 @@ async function handleTask(command, args, deps, dryRun, capabilities) {
1476
1477
  outputDestinations: []
1477
1478
  },
1478
1479
  dependencies: dependsOnTaskIds,
1479
- context: conversationId ? [{
1480
+ context: args.includeConversationContext === false ? [] : conversationId ? [{
1480
1481
  targetKind: "session",
1481
1482
  targetId: conversationId,
1482
1483
  role: "input",
@@ -1889,7 +1890,7 @@ function createXopcUseTool(deps) {
1889
1890
  return {
1890
1891
  name: "xopc_use",
1891
1892
  label: "XOPC Use",
1892
- description: "Operate first-class xopc objects through one safe entry point. To delegate work for immediate execution: mode task, command create, args {objective, createMode:\"start\", agentId:\"researcher\"}; omitting createMode creates a backlog task only. To start an existing Task: mode task, command command, args {taskId, type:\"start\", expectedVersion, commandArgs:{executor:{kind:\"agent\",agentId:\"main\"}}}. Inspect an existing Task and its run before creating another Task for the same objective. For delegated work, task delegated_tasks lists this conversation's tasks; task collaboration reads the shared board; task collaboration_post writes {taskId, kind, body, causationId?, idempotencyKey?}. Workers report progress or questions; the main Agent writes instructions and answers. Use chat_preview for lightweight UI mockups in the current conversation; do not create a Local App unless the user asks for a durable app. Local App capabilities takes extensionId and discovers already granted bindings. Local App invoke requires extensionId, the discovered manifestDigest, capabilityId and a pinned call {majorVersion, descriptorDigest, input, idempotencyKey for writes}. Never manufacture grants or change a retry key after an uncertain write. Use for Agents, scenes, projects, automations, notes, tasks, TaskRuns, chat previews, local apps, and exact settings jump targets instead of editing storage files directly. For non-trivial object changes, load the built-in manual first with tool_manual({ tool: \"xopc_use\" }).",
1893
+ description: "Operate first-class xopc objects through one safe entry point. To delegate work for immediate execution: mode task, command create, args {title:\"Short task name\", objective:\"One-sentence outcome\", body:\"Full Markdown task brief\", createMode:\"start\", agentId:\"researcher\"}; omitting createMode creates a backlog task only. To start an existing Task: mode task, command command, args {taskId, type:\"start\", expectedVersion, commandArgs:{executor:{kind:\"agent\",agentId:\"main\"}}}. Inspect an existing Task and its run before creating another Task for the same objective. For delegated work, task delegated_tasks lists this conversation's tasks; task collaboration reads the shared board; task collaboration_post writes {taskId, kind, body, causationId?, idempotencyKey?}. Workers report progress or questions; the main Agent writes instructions and answers. Use chat_preview for lightweight UI mockups in the current conversation; do not create a Local App unless the user asks for a durable app. Local App capabilities takes extensionId and discovers already granted bindings. Local App invoke requires extensionId, the discovered manifestDigest, capabilityId and a pinned call {majorVersion, descriptorDigest, input, idempotencyKey for writes}. Never manufacture grants or change a retry key after an uncertain write. Use for Agents, scenes, projects, automations, notes, tasks, TaskRuns, chat previews, local apps, and exact settings jump targets instead of editing storage files directly. For non-trivial object changes, load the built-in manual first with tool_manual({ tool: \"xopc_use\" }).",
1893
1894
  parameters: XopcUseToolSchema,
1894
1895
  mutatesWorkspace: true,
1895
1896
  mutationScope: "external",
@@ -1,11 +1,11 @@
1
1
  import { createLogger } from "../../utils/logger/index.js";
2
2
  import { init_logger } from "../../utils/logger.js";
3
3
  import { createSqliteTranscriptRuntime } from "../embedded/transcript-runtime.js";
4
- import { STRUCTURED_OUTPUT_TOOL_NAME, createStructuredOutputTool } from "./structured-output-tool.js";
5
4
  import { createDelegateChildHandle } from "../child-agent-factory.js";
6
5
  import { DELEGATION_TOOL_CAPABILITIES, protectDelegatedTool, resolveDelegationTools } from "../tools/delegation-policy.js";
7
6
  import { DELEGATE_BLOCKED_TOOLS } from "../tools/delegate-tool.js";
8
7
  import { createDelegationParentPolicy } from "../tools/delegation-parent-policy.js";
8
+ import { STRUCTURED_OUTPUT_TOOL_NAME, createStructuredOutputTool } from "./structured-output-tool.js";
9
9
  //#region src/agent/workflow/subagent-runner.ts
10
10
  init_logger();
11
11
  const log = createLogger("Agent:WorkflowSubagent");
@@ -1,10 +1,10 @@
1
1
  import { AgentEntrySchema, EffectiveAgentConfigSchema } from "../agent-config/schema.js";
2
2
  import { resolveEffectiveAgentConfig } from "../agent-config/resolver.js";
3
3
  import { init_agent_config } from "../agent-config/index.js";
4
- import { CapabilityError } from "../capabilities/runtime/errors.js";
5
- import { defineAtomicCapability, defineReadCapability } from "../capabilities/runtime/dispatcher.js";
6
4
  import { AgentCatalogRepository, init_repository } from "./repository.js";
7
5
  import { init_agent_scope, resolveAgentWorkspaceDir } from "../agent/agent-scope.js";
6
+ import { CapabilityError } from "../capabilities/runtime/errors.js";
7
+ import { defineAtomicCapability, defineReadCapability } from "../capabilities/runtime/dispatcher.js";
8
8
  import { AgentCatalogService } from "./service.js";
9
9
  import { z } from "zod";
10
10
  //#region src/agent-catalog/capabilities.ts
@@ -0,0 +1,5 @@
1
+ import type { AgentProfile } from '../../agent-config/index.js';
2
+ /** Parse only known identity fields. The original document is archived after migration. */
3
+ export declare function parseIdentityFieldsForCutover(content: string): Partial<AgentProfile>;
4
+ /** One-time upgrade. Runtime never reads the retired identity document. */
5
+ export declare function migrateIdentityMarkdownToCatalog(): void;