@xopcai/xopc 0.0.362 → 0.0.363

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 (201) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/telegram/xopc.extension.json +1 -1
  3. package/dist/gateway/static/root/assets/{activity-store-_2aJ4ozN.js → activity-store-GvR2gZ0T.js} +1 -1
  4. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CSIn4ghK.js → agent-avatar-dicebear-DkcXyPH0.js} +1 -1
  5. package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-DBNFaHYa.js → agent-defaults-settings-panel-B-l5AaYN.js} +1 -1
  6. package/dist/gateway/static/root/assets/{agent-plugin-dialog-DJkGbMVg.js → agent-plugin-dialog-BY6tPYOK.js} +1 -1
  7. package/dist/gateway/static/root/assets/{agents-CuQayYYr.js → agents-CdSEoeje.js} +3 -3
  8. package/dist/gateway/static/root/assets/{agents-admin-api-Dl0V7UQq.js → agents-admin-api-BkXb7VEZ.js} +1 -1
  9. package/dist/gateway/static/root/assets/{app-management-settings-panel-CSczq9QV.js → app-management-settings-panel-BtD53cfe.js} +1 -1
  10. package/dist/gateway/static/root/assets/{appearance-settings-W0vc1J1Q.js → appearance-settings-BAweWgX_.js} +1 -1
  11. package/dist/gateway/static/root/assets/{apps-page-esnvb3hh.js → apps-page-CS6-hrIB.js} +1 -1
  12. package/dist/gateway/static/root/assets/{archive-plugin-CBR91gHK.js → archive-plugin-CKe3qAaL.js} +1 -1
  13. package/dist/gateway/static/root/assets/{automations-page-B9RdzKUS.js → automations-page-CtE8r9Y2.js} +1 -1
  14. package/dist/gateway/static/root/assets/{automations-workspace-U9TEZd_t.js → automations-workspace-pnMgR4Da.js} +1 -1
  15. package/dist/gateway/static/root/assets/{binary-plugins-C9KIjPph.js → binary-plugins-J51oS7-D.js} +1 -1
  16. package/dist/gateway/static/root/assets/{block-editor-C0bammwh.js → block-editor-D5hf6WcP.js} +1 -1
  17. package/dist/gateway/static/root/assets/{browser-automation-inputs-D2E0co_S.js → browser-automation-inputs-5B3qAdmb.js} +1 -1
  18. package/dist/gateway/static/root/assets/{browser-automations-page-8kqdhAOz.js → browser-automations-page-PZDQlXH4.js} +1 -1
  19. package/dist/gateway/static/root/assets/{browser-settings-page-Dl4idi13.js → browser-settings-page-2YDV-ZWt.js} +1 -1
  20. package/dist/gateway/static/root/assets/{capabilities-Bfktn_7E.js → capabilities-BKu9BqPe.js} +1 -1
  21. package/dist/gateway/static/root/assets/{capabilities-BmMMlNmY.js → capabilities-CT_ZW9fT.js} +1 -1
  22. package/dist/gateway/static/root/assets/{capabilities-page-3ImhKPBx.js → capabilities-page-CB-iX3Fy.js} +2 -2
  23. package/dist/gateway/static/root/assets/{capabilities-settings-panel-4VDEB_ob.js → capabilities-settings-panel-BCTuWNaW.js} +1 -1
  24. package/dist/gateway/static/root/assets/{capability-header-actions-D1gxCGi8.js → capability-header-actions--aC5XB9E.js} +1 -1
  25. package/dist/gateway/static/root/assets/{channels-Drbr2JR-.js → channels-JnAQP1bt.js} +1 -1
  26. package/dist/gateway/static/root/assets/{chat-terminal-dock-CSkksCaa.js → chat-terminal-dock-BFZEpvzn.js} +1 -1
  27. package/dist/gateway/static/root/assets/{computer-settings-page-BIXpOJAk.js → computer-settings-page-Dc9ooEM-.js} +1 -1
  28. package/dist/gateway/static/root/assets/{connector-service-page-CTnlVEE1.js → connector-service-page-1_QB5D-t.js} +1 -1
  29. package/dist/gateway/static/root/assets/{connectors-page-BluT2l4d.js → connectors-page-Um_Jy5zh.js} +1 -1
  30. package/dist/gateway/static/root/assets/{date-picker-Bw-CydDe.js → date-picker-C9ZqTPui.js} +1 -1
  31. package/dist/gateway/static/root/assets/{dependency-picker-CgHzhtAc.js → dependency-picker-DBz0Pmyr.js} +1 -1
  32. package/dist/gateway/static/root/assets/{desktop-pet-YahEnyfd.js → desktop-pet-BLtp2MmX.js} +1 -1
  33. package/dist/gateway/static/root/assets/{desktop-pet-settings-47Z4bqJr.js → desktop-pet-settings-BNGbqwec.js} +1 -1
  34. package/dist/gateway/static/root/assets/{device-pairing-wizard-C3aPEEaM.js → device-pairing-wizard-7rdo-A7d.js} +1 -1
  35. package/dist/gateway/static/root/assets/{directory-picker-path-field-DH_ok92y.js → directory-picker-path-field-BnilGgwM.js} +1 -1
  36. package/dist/gateway/static/root/assets/{extension-debug-page-t1TiLQrR.js → extension-debug-page-BGyJpRv4.js} +1 -1
  37. package/dist/gateway/static/root/assets/{extension-page-BeV-7G1h.js → extension-page-DsrVktRN.js} +1 -1
  38. package/dist/gateway/static/root/assets/{extension-provider-CFCxzqna.js → extension-provider-F9JzOWZ3.js} +1 -1
  39. package/dist/gateway/static/root/assets/{extension-settings-page-DCODJHOu.js → extension-settings-page-jeb0ytRK.js} +1 -1
  40. package/dist/gateway/static/root/assets/{fallback-models-CJzvASNV.js → fallback-models-bZcxkEDz.js} +1 -1
  41. package/dist/gateway/static/root/assets/{gateway-config-swr-B3LfyXpc.js → gateway-config-swr-CoRoOG1l.js} +1 -1
  42. package/dist/gateway/static/root/assets/{gateway-realtime-CWxXXAe_.js → gateway-realtime-D0ygm6bc.js} +1 -1
  43. package/dist/gateway/static/root/assets/gateway-realtime-store-DBvCRclh.js +1 -0
  44. package/dist/gateway/static/root/assets/{gateway-settings-Q5NFzAJ_.js → gateway-settings-A9SzLsGp.js} +1 -1
  45. package/dist/gateway/static/root/assets/{gateway-startup-retry-BzQP02wp.js → gateway-startup-retry-FDS6S6qa.js} +1 -1
  46. package/dist/gateway/static/root/assets/{home-page-DndTkAw8.js → home-page-CnHzaH9K.js} +1 -1
  47. package/dist/gateway/static/root/assets/{image-generation-api-BO-Xs__S.js → image-generation-api-BPd76jW5.js} +1 -1
  48. package/dist/gateway/static/root/assets/{imports-page-Bb6Gm30L.js → imports-page-CzpsV6Vz.js} +1 -1
  49. package/dist/gateway/static/root/assets/{index-qOHWhsEK.js → index-BYNmHn-z.js} +7 -7
  50. package/dist/gateway/static/root/assets/index-CbJNcWAn.css +1 -0
  51. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-D2u6sk5l.js → keyboard-shortcuts-settings-D90Dvlwo.js} +1 -1
  52. package/dist/gateway/static/root/assets/{local-app-workbench-page-CHeMfXrB.js → local-app-workbench-page-_9IKMkV8.js} +1 -1
  53. package/dist/gateway/static/root/assets/{local-apps-page-BanU1SLr.js → local-apps-page-D6gejARs.js} +1 -1
  54. package/dist/gateway/static/root/assets/{local-session-drafts-DLZQBcZY.js → local-session-drafts-gbemPamv.js} +1 -1
  55. package/dist/gateway/static/root/assets/{locale-store-BbwWB0ra.js → locale-store-DId6-v2R.js} +1 -1
  56. package/dist/gateway/static/root/assets/{logs-page-CQdHKCL0.js → logs-page--t8d-oLb.js} +1 -1
  57. package/dist/gateway/static/root/assets/{management-settings-D0V5kCx0.js → management-settings-DVDmXzTg.js} +1 -1
  58. package/dist/gateway/static/root/assets/{markdown-view-DIBLXsPm.js → markdown-view-DQZ51j9e.js} +1 -1
  59. package/dist/gateway/static/root/assets/{media-plugins-XPzvDZPz.js → media-plugins-XLewwq2q.js} +1 -1
  60. package/dist/gateway/static/root/assets/{messages-B4AhAW4B.js → messages-BHvpZNe9.js} +2 -2
  61. package/dist/gateway/static/root/assets/models-hub-cache-B9SKjidc.js +1 -0
  62. package/dist/gateway/static/root/assets/{note-detail-panel-CodeKI_W.js → note-detail-panel-DuZAEfU1.js} +3 -3
  63. package/dist/gateway/static/root/assets/{notes-api-CLn4r03Z.js → notes-api-Byt65v3r.js} +1 -1
  64. package/dist/gateway/static/root/assets/{notes-page-liRQoHbF.js → notes-page-CgWNESGp.js} +1 -1
  65. package/dist/gateway/static/root/assets/{oauth-api-D9zkd42J.js → oauth-api-BYsCbyGZ.js} +1 -1
  66. package/dist/gateway/static/root/assets/{page-context-capture-button-DO6DB9pi.js → page-context-capture-button-Z72eiQZn.js} +1 -1
  67. package/dist/gateway/static/root/assets/{personal-page-DdfdwOv5.js → personal-page-BtMatL9a.js} +1 -1
  68. package/dist/gateway/static/root/assets/{product-open-page-C9a3sm6Z.js → product-open-page-w5Hdf0hQ.js} +1 -1
  69. package/dist/gateway/static/root/assets/{project-detail-page-BVe5R-Nj.js → project-detail-page-CP6I3ZCV.js} +1 -1
  70. package/dist/gateway/static/root/assets/{projects-page-D_rCwi7w.js → projects-page-DYs6XrrK.js} +1 -1
  71. package/dist/gateway/static/root/assets/{registry-api-BFxQTbXQ.js → registry-api-7F2WNEZC.js} +1 -1
  72. package/dist/gateway/static/root/assets/{remote-access-hub-B3imt2du.js → remote-access-hub-DjYoYAEw.js} +1 -1
  73. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-C9WC8hJM.js → runtime-tools-settings-panel-Qar_DXLv.js} +1 -1
  74. package/dist/gateway/static/root/assets/{scenes-page-DL95V1UP.js → scenes-page-BSIcDCa-.js} +1 -1
  75. package/dist/gateway/static/root/assets/{schema-form-CDgGmgrq.js → schema-form-C_cJLGgF.js} +1 -1
  76. package/dist/gateway/static/root/assets/{send-session-input-tkAQXGBG.js → send-session-input-D1oc6BC6.js} +1 -1
  77. package/dist/gateway/static/root/assets/{session-api-9X7qep91.js → session-api-N3N37MrR.js} +1 -1
  78. package/dist/gateway/static/root/assets/{session-manager-Dy22bbJT.js → session-manager-CMGUwtbN.js} +1 -1
  79. package/dist/gateway/static/root/assets/{sessions-page-CeeKIVsM.js → sessions-page-BBV5Z24a.js} +1 -1
  80. package/dist/gateway/static/root/assets/settings-advanced-gate-DRc9IDJf.js +1 -0
  81. package/dist/gateway/static/root/assets/{settings-page-xmUGYSOG.js → settings-page-F2vGXBw7.js} +1 -1
  82. package/dist/gateway/static/root/assets/{setup-status-panel-CmjT9Q4P.js → setup-status-panel-DJxbjUOg.js} +1 -1
  83. package/dist/gateway/static/root/assets/{share-link-dialog-DeOe9qfQ.js → share-link-dialog-TBBGJPfT.js} +1 -1
  84. package/dist/gateway/static/root/assets/{share-preview-page-Ck27gozJ.js → share-preview-page-DyRLPsPv.js} +1 -1
  85. package/dist/gateway/static/root/assets/{shares-api-D-GuMkPu.js → shares-api-DU0fHP2G.js} +1 -1
  86. package/dist/gateway/static/root/assets/{shares-settings-DpvM2OyO.js → shares-settings-CJa6FBpP.js} +1 -1
  87. package/dist/gateway/static/root/assets/{skill-api-BpD02td8.js → skill-api-C340XD9d.js} +1 -1
  88. package/dist/gateway/static/root/assets/{skill-reload-api-CezAwYxM.js → skill-reload-api-ClyFqHk7.js} +1 -1
  89. package/dist/gateway/static/root/assets/{skills-page-BCgbVI-P.js → skills-page-C4lF94m5.js} +1 -1
  90. package/dist/gateway/static/root/assets/{system-settings-panel-UODcpzsP.js → system-settings-panel-CmJUu3lb.js} +1 -1
  91. package/dist/gateway/static/root/assets/{task-detail-page-BbqQnNes.js → task-detail-page-De-Rr8W6.js} +1 -1
  92. package/dist/gateway/static/root/assets/{theme-store-6IK2Ik2J.js → theme-store-OhcbFEUR.js} +1 -1
  93. package/dist/gateway/static/root/assets/tracing-settings-page-DoBJ0TYY.js +1 -0
  94. package/dist/gateway/static/root/assets/{tunnel-api-Eey2aZIz.js → tunnel-api-Bl4nrCuE.js} +1 -1
  95. package/dist/gateway/static/root/assets/{usage-page-BrWj5mk3.js → usage-page-QZEAaa8n.js} +1 -1
  96. package/dist/gateway/static/root/assets/{use-autosave-B-3BJbnn.js → use-autosave-veoM0dHn.js} +1 -1
  97. package/dist/gateway/static/root/assets/{use-composer-attachments-ByAHuR8v.js → use-composer-attachments-DB0bBGzZ.js} +1 -1
  98. package/dist/gateway/static/root/assets/{use-file-preview-expanded-CXVwWJeP.js → use-file-preview-expanded-Bope6MW6.js} +2 -2
  99. package/dist/gateway/static/root/assets/{user-model-page-Cg-oM8nY.js → user-model-page-Crh2oNpZ.js} +1 -1
  100. package/dist/gateway/static/root/assets/{voice-api-key-field-BtffIKZD.js → voice-api-key-field-CwD6a3KQ.js} +1 -1
  101. package/dist/gateway/static/root/assets/{voice-config-api-BMm9dSKX.js → voice-config-api-Daexehmc.js} +1 -1
  102. package/dist/gateway/static/root/assets/{work-discovery-overlay-ByHhF_4r.js → work-discovery-overlay-9jnjEAaz.js} +1 -1
  103. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-DfNn5VTy.js → workflow-run-setup-panel-BAcPxdcT.js} +1 -1
  104. package/dist/gateway/static/root/assets/{workflows-page-B67D-7Wt.js → workflows-page-D8Zm-ooa.js} +1 -1
  105. package/dist/gateway/static/root/assets/{workspace-api-TAD7LYsc.js → workspace-api-Cs4sjV2A.js} +2 -2
  106. package/dist/gateway/static/root/index.html +28 -28
  107. package/dist/package.js +1 -1
  108. package/dist/src/agent/agent-manager.js +10 -6
  109. package/dist/src/agent/embedded/model-runtime.js +1 -1
  110. package/dist/src/agent/embedded/run-for-session.js +28 -3
  111. package/dist/src/agent/embedded/run-turn.js +18 -3
  112. package/dist/src/agent/image/tool-model-config.js +1 -1
  113. package/dist/src/agent/mcp/oauth/mcp-oauth-store.js +1 -1
  114. package/dist/src/agent/service.js +5 -3
  115. package/dist/src/agent/skills/hub-lock.js +1 -1
  116. package/dist/src/agent-catalog/migrations/legacy-config-cutover.js +1 -1
  117. package/dist/src/agent-catalog/repository.js +1 -1
  118. package/dist/src/auth/credentials.js +2 -2
  119. package/dist/src/auth/oauth-provider-lock.js +1 -1
  120. package/dist/src/auth/profiles/store.js +1 -1
  121. package/dist/src/auth/sync-provider-auth.js +1 -1
  122. package/dist/src/browser/providers/browser-ext-install.js +1 -1
  123. package/dist/src/chat-commands/agent-edit.js +1 -1
  124. package/dist/src/chat-commands/builtins/config.js +1 -1
  125. package/dist/src/cli/commands/agent.js +1 -1
  126. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  127. package/dist/src/cli/commands/doctor/checks/image-providers.js +1 -1
  128. package/dist/src/cli/commands/doctor/checks/provider-auth.js +3 -3
  129. package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
  130. package/dist/src/cli/commands/models.js +1 -1
  131. package/dist/src/cli/commands/onboard/model.js +3 -3
  132. package/dist/src/config/agent-profile.js +1 -1
  133. package/dist/src/config/index.js +4 -4
  134. package/dist/src/config/loader.js +2 -2
  135. package/dist/src/config/models-json.js +1 -1
  136. package/dist/src/config/reload.d.ts +1 -0
  137. package/dist/src/config/reload.js +4 -0
  138. package/dist/src/config/rules.js +5 -0
  139. package/dist/src/config/schema.d.ts +23 -0
  140. package/dist/src/config/schema.js +6 -3
  141. package/dist/src/extensions/activation-context.js +1 -1
  142. package/dist/src/extensions/lockfile.js +1 -1
  143. package/dist/src/gateway/file-path-classifier.js +1 -1
  144. package/dist/src/gateway/hono/lib/config-payload.js +2 -2
  145. package/dist/src/gateway/hono/routes/agents.js +1 -1
  146. package/dist/src/gateway/hono/routes/config-patch/misc.js +2 -2
  147. package/dist/src/gateway/hono/routes/connectors.js +1 -1
  148. package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
  149. package/dist/src/gateway/hono/routes/models.js +2 -2
  150. package/dist/src/gateway/hono/routes/observability.d.ts +3 -0
  151. package/dist/src/gateway/hono/routes/observability.js +106 -0
  152. package/dist/src/gateway/image-generation-setup.js +1 -1
  153. package/dist/src/gateway/lock.js +1 -1
  154. package/dist/src/gateway/security/gateway-scopes.js +1 -0
  155. package/dist/src/gateway/service/config-coordinator.d.ts +0 -25
  156. package/dist/src/gateway/service/config-coordinator.js +31 -0
  157. package/dist/src/gateway/service.js +5 -3
  158. package/dist/src/infra/update-restart.js +1 -1
  159. package/dist/src/observability/config.d.ts +40 -0
  160. package/dist/src/observability/config.js +31 -0
  161. package/dist/src/observability/langfuse.d.ts +31 -0
  162. package/dist/src/observability/langfuse.js +180 -0
  163. package/dist/src/observability/runtime.d.ts +57 -0
  164. package/dist/src/observability/runtime.js +404 -0
  165. package/dist/src/observability/sanitize.d.ts +3 -0
  166. package/dist/src/observability/sanitize.js +74 -0
  167. package/dist/src/observability/store.d.ts +20 -0
  168. package/dist/src/observability/store.js +128 -0
  169. package/dist/src/observability/storeWorker.d.ts +2 -0
  170. package/dist/src/observability/storeWorker.js +155 -0
  171. package/dist/src/observability/types.d.ts +21 -0
  172. package/dist/src/observability/types.js +1 -0
  173. package/dist/src/platform/index.js +1 -1
  174. package/dist/src/providers/auth-runtime/resolve-auth.js +1 -1
  175. package/dist/src/providers/index.js +3 -3
  176. package/dist/src/providers/model-call.js +19 -5
  177. package/dist/src/providers/model-catalog-persistence.js +1 -1
  178. package/dist/src/providers/model-registry.js +1 -1
  179. package/dist/src/providers/provider-disconnect-core.js +1 -1
  180. package/dist/src/providers/xopc-cloud-catalog-coordinator.js +1 -1
  181. package/dist/src/storage/sqlite/ai-usage-repository.d.ts +6 -0
  182. package/dist/src/storage/sqlite/ai-usage-repository.js +4 -2
  183. package/dist/src/storage/sqlite/migrations/233_observability_usage_links.sql +3 -0
  184. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  185. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  186. package/dist/src/storage/sqlite/schema.js +1 -1
  187. package/dist/src/tui/backends/embedded-backend.js +2 -2
  188. package/dist/src/tui/tui-commands.js +1 -1
  189. package/dist/src/tui/tui-startup-resources.js +1 -1
  190. package/dist/src/tui/tui.js +1 -1
  191. package/dist/src/usage/recorder.d.ts +4 -2
  192. package/dist/src/usage/recorder.js +54 -26
  193. package/dist/src/usage/types.d.ts +3 -0
  194. package/dist/src/utils/logger/context.d.ts +1 -1
  195. package/dist/src/utils/logger/context.js +4 -1
  196. package/dist/src/utils/logger/types.d.ts +3 -0
  197. package/package.json +6 -3
  198. package/dist/gateway/static/root/assets/gateway-realtime-store-DS4WzQyF.js +0 -1
  199. package/dist/gateway/static/root/assets/index-Byk2QKIS.css +0 -1
  200. package/dist/gateway/static/root/assets/models-hub-cache-DN5MnhL8.js +0 -1
  201. package/dist/gateway/static/root/assets/settings-advanced-gate-DuvJrDU2.js +0 -1
@@ -11,7 +11,7 @@
11
11
  <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=20260910-1" />
12
12
  <link rel="manifest" href="/site.webmanifest?v=20260910-1" />
13
13
  <title>XOPC — Keep what matters moving.</title>
14
- <script type="module" crossorigin src="/assets/index-qOHWhsEK.js"></script>
14
+ <script type="module" crossorigin src="/assets/index-BYNmHn-z.js"></script>
15
15
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
16
16
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-zJ_50EbN.js">
17
17
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-BOUWij0V.js">
@@ -25,15 +25,15 @@
25
25
  <link rel="modulepreload" crossorigin href="/assets/download-Dk-ZjtO6.js">
26
26
  <link rel="modulepreload" crossorigin href="/assets/plus-Q2yW6OE7.js">
27
27
  <link rel="modulepreload" crossorigin href="/assets/x-B_N4OPjy.js">
28
- <link rel="modulepreload" crossorigin href="/assets/messages-B4AhAW4B.js">
29
- <link rel="modulepreload" crossorigin href="/assets/locale-store-BbwWB0ra.js">
28
+ <link rel="modulepreload" crossorigin href="/assets/messages-BHvpZNe9.js">
29
+ <link rel="modulepreload" crossorigin href="/assets/locale-store-DId6-v2R.js">
30
30
  <link rel="modulepreload" crossorigin href="/assets/cn-JdwAhgNB.js">
31
31
  <link rel="modulepreload" crossorigin href="/assets/schemas-CObaziC7.js">
32
32
  <link rel="modulepreload" crossorigin href="/assets/local-apps-yys1VChX.js">
33
33
  <link rel="modulepreload" crossorigin href="/assets/product-delivery-BAks11S4.js">
34
34
  <link rel="modulepreload" crossorigin href="/assets/app-link-DRL0YnPs.js">
35
35
  <link rel="modulepreload" crossorigin href="/assets/copy-to-clipboard-HOJ79TWv.js">
36
- <link rel="modulepreload" crossorigin href="/assets/markdown-view-DIBLXsPm.js">
36
+ <link rel="modulepreload" crossorigin href="/assets/markdown-view-DQZ51j9e.js">
37
37
  <link rel="modulepreload" crossorigin href="/assets/dist-Che_jiQF.js">
38
38
  <link rel="modulepreload" crossorigin href="/assets/vendor-swr-BIWyz7Rc.js">
39
39
  <link rel="modulepreload" crossorigin href="/assets/activity-YogQEteU.js">
@@ -69,30 +69,30 @@
69
69
  <link rel="modulepreload" crossorigin href="/assets/rotate-cw-LIg3Am9S.js">
70
70
  <link rel="modulepreload" crossorigin href="/assets/search-DA7gz22f.js">
71
71
  <link rel="modulepreload" crossorigin href="/assets/index.module-Cd9ENXfk.js">
72
- <link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-BzQP02wp.js">
73
- <link rel="modulepreload" crossorigin href="/assets/session-api-9X7qep91.js">
72
+ <link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-FDS6S6qa.js">
73
+ <link rel="modulepreload" crossorigin href="/assets/session-api-N3N37MrR.js">
74
74
  <link rel="modulepreload" crossorigin href="/assets/constants-Dy8Gw0sF.js">
75
75
  <link rel="modulepreload" crossorigin href="/assets/app-chrome-BeB4KgOf.js">
76
76
  <link rel="modulepreload" crossorigin href="/assets/attachment-utils-core-BIOUBrpT.js">
77
77
  <link rel="modulepreload" crossorigin href="/assets/files-Bw4SBGdM.js">
78
- <link rel="modulepreload" crossorigin href="/assets/workspace-api-TAD7LYsc.js">
78
+ <link rel="modulepreload" crossorigin href="/assets/workspace-api-Cs4sjV2A.js">
79
79
  <link rel="modulepreload" crossorigin href="/assets/electron-env-Dit0bHgy.js">
80
80
  <link rel="modulepreload" crossorigin href="/assets/use-async-resource-GrnWNwMZ.js">
81
- <link rel="modulepreload" crossorigin href="/assets/activity-store-_2aJ4ozN.js">
82
- <link rel="modulepreload" crossorigin href="/assets/use-file-preview-expanded-CXVwWJeP.js">
81
+ <link rel="modulepreload" crossorigin href="/assets/activity-store-GvR2gZ0T.js">
82
+ <link rel="modulepreload" crossorigin href="/assets/use-file-preview-expanded-Bope6MW6.js">
83
83
  <link rel="modulepreload" crossorigin href="/assets/globe-DSSGFWFn.js">
84
84
  <link rel="modulepreload" crossorigin href="/assets/button-CS04eWY9.js">
85
85
  <link rel="modulepreload" crossorigin href="/assets/copy-text-row-BHDs3cBa.js">
86
- <link rel="modulepreload" crossorigin href="/assets/share-link-dialog-DeOe9qfQ.js">
87
- <link rel="modulepreload" crossorigin href="/assets/local-session-drafts-DLZQBcZY.js">
86
+ <link rel="modulepreload" crossorigin href="/assets/share-link-dialog-TBBGJPfT.js">
87
+ <link rel="modulepreload" crossorigin href="/assets/local-session-drafts-gbemPamv.js">
88
88
  <link rel="modulepreload" crossorigin href="/assets/tasks-CH6KoBeY.js">
89
- <link rel="modulepreload" crossorigin href="/assets/capabilities-BmMMlNmY.js">
89
+ <link rel="modulepreload" crossorigin href="/assets/capabilities-CT_ZW9fT.js">
90
90
  <link rel="modulepreload" crossorigin href="/assets/skill-wire-pattern-BPpeIcCi.js">
91
- <link rel="modulepreload" crossorigin href="/assets/shares-api-D-GuMkPu.js">
92
- <link rel="modulepreload" crossorigin href="/assets/capabilities-Bfktn_7E.js">
93
- <link rel="modulepreload" crossorigin href="/assets/use-composer-attachments-ByAHuR8v.js">
91
+ <link rel="modulepreload" crossorigin href="/assets/shares-api-DU0fHP2G.js">
92
+ <link rel="modulepreload" crossorigin href="/assets/capabilities-BKu9BqPe.js">
93
+ <link rel="modulepreload" crossorigin href="/assets/use-composer-attachments-DB0bBGzZ.js">
94
94
  <link rel="modulepreload" crossorigin href="/assets/git-branch-Dh9uxTot.js">
95
- <link rel="modulepreload" crossorigin href="/assets/notes-api-CLn4r03Z.js">
95
+ <link rel="modulepreload" crossorigin href="/assets/notes-api-Byt65v3r.js">
96
96
  <link rel="modulepreload" crossorigin href="/assets/message-square-fVE7Ghj1.js">
97
97
  <link rel="modulepreload" crossorigin href="/assets/pause-DuPxgSxk.js">
98
98
  <link rel="modulepreload" crossorigin href="/assets/play-kxZvpBg8.js">
@@ -100,24 +100,24 @@
100
100
  <link rel="modulepreload" crossorigin href="/assets/settings-2-D-csvaET.js">
101
101
  <link rel="modulepreload" crossorigin href="/assets/sparkles-DHlfQFAF.js">
102
102
  <link rel="modulepreload" crossorigin href="/assets/middleware-Pd0e8Igk.js">
103
- <link rel="modulepreload" crossorigin href="/assets/gateway-realtime-store-DS4WzQyF.js">
104
- <link rel="modulepreload" crossorigin href="/assets/gateway-realtime-CWxXXAe_.js">
103
+ <link rel="modulepreload" crossorigin href="/assets/gateway-realtime-store-DBvCRclh.js">
104
+ <link rel="modulepreload" crossorigin href="/assets/gateway-realtime-D0ygm6bc.js">
105
105
  <link rel="modulepreload" crossorigin href="/assets/tool-activity-BtJkgjFf.js">
106
- <link rel="modulepreload" crossorigin href="/assets/registry-api-BFxQTbXQ.js">
107
- <link rel="modulepreload" crossorigin href="/assets/gateway-config-swr-B3LfyXpc.js">
108
- <link rel="modulepreload" crossorigin href="/assets/agents-admin-api-Dl0V7UQq.js">
109
- <link rel="modulepreload" crossorigin href="/assets/session-manager-Dy22bbJT.js">
110
- <link rel="modulepreload" crossorigin href="/assets/send-session-input-tkAQXGBG.js">
111
- <link rel="modulepreload" crossorigin href="/assets/theme-store-6IK2Ik2J.js">
112
- <link rel="modulepreload" crossorigin href="/assets/extension-provider-CFCxzqna.js">
106
+ <link rel="modulepreload" crossorigin href="/assets/registry-api-7F2WNEZC.js">
107
+ <link rel="modulepreload" crossorigin href="/assets/gateway-config-swr-CoRoOG1l.js">
108
+ <link rel="modulepreload" crossorigin href="/assets/agents-admin-api-BkXb7VEZ.js">
109
+ <link rel="modulepreload" crossorigin href="/assets/session-manager-CMGUwtbN.js">
110
+ <link rel="modulepreload" crossorigin href="/assets/send-session-input-D1oc6BC6.js">
111
+ <link rel="modulepreload" crossorigin href="/assets/theme-store-OhcbFEUR.js">
112
+ <link rel="modulepreload" crossorigin href="/assets/extension-provider-F9JzOWZ3.js">
113
113
  <link rel="modulepreload" crossorigin href="/assets/loopi-Djb8XU3l.js">
114
- <link rel="modulepreload" crossorigin href="/assets/models-hub-cache-DN5MnhL8.js">
115
- <link rel="modulepreload" crossorigin href="/assets/oauth-api-D9zkd42J.js">
114
+ <link rel="modulepreload" crossorigin href="/assets/models-hub-cache-B9SKjidc.js">
115
+ <link rel="modulepreload" crossorigin href="/assets/oauth-api-BYsCbyGZ.js">
116
116
  <link rel="modulepreload" crossorigin href="/assets/skill-api-utils-C7V4JVXM.js">
117
117
  <link rel="modulepreload" crossorigin href="/assets/settings-form-draft-Dy10ldo8.js">
118
118
  <link rel="stylesheet" crossorigin href="/assets/markdown-view-DSjfHfaW.css">
119
119
  <link rel="stylesheet" crossorigin href="/assets/loopi-C09I2mNj.css">
120
- <link rel="stylesheet" crossorigin href="/assets/index-Byk2QKIS.css">
120
+ <link rel="stylesheet" crossorigin href="/assets/index-CbJNcWAn.css">
121
121
  </head>
122
122
  <body>
123
123
  <div id="root"></div>
package/dist/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  //#region package.json
2
- var version = "0.0.362";
2
+ var version = "0.0.363";
3
3
  //#endregion
4
4
  export { version };
@@ -6,14 +6,15 @@ import { consumeClarificationApproval, init_clarification_wait_repository } from
6
6
  import { getInteractionState } from "../storage/sqlite/interaction-state-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 { getAgentDefaultModelRef, init_schema } from "../config/schema.js";
10
- import { applyConfigOverrides } from "../config/runtime-overrides.js";
11
9
  import { expandWorkspacePathString, init_workspace_path } from "../config/workspace-path.js";
12
10
  import { init_agent_scope, listAgentEntries, resolveAgentProfileDir } from "./agent-scope.js";
13
- import { resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
14
11
  import { init_paths, resolveBundledSkillsDir } from "../config/paths.js";
15
- import { init_sync_provider_auth, resolveProviderApiKeySync } from "../auth/sync-provider-auth.js";
16
12
  import { CredentialResolver, init_credentials } from "../auth/credentials.js";
13
+ import { traceTools } from "../observability/runtime.js";
14
+ import { getAgentDefaultModelRef, init_schema } from "../config/schema.js";
15
+ import { applyConfigOverrides } from "../config/runtime-overrides.js";
16
+ import { resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
17
+ import { init_sync_provider_auth, resolveProviderApiKeySync } from "../auth/sync-provider-auth.js";
17
18
  import { getApiKeySync, getDefaultModelSync, init_providers, resolveModel } from "../providers/index.js";
18
19
  import { createExtensionAwareStreamFn } from "../providers/extension-stream-bridge.js";
19
20
  import { continuesAfterTool, trackAiUsageStream } from "../usage/recorder.js";
@@ -1027,7 +1028,7 @@ var AgentManager = class {
1027
1028
  }),
1028
1029
  model,
1029
1030
  thinkingLevel,
1030
- tools,
1031
+ tools: traceTools(tools),
1031
1032
  messages: []
1032
1033
  },
1033
1034
  toolExecution: "parallel",
@@ -1035,7 +1036,10 @@ var AgentManager = class {
1035
1036
  operation: continuesAfterTool(context.messages) ? "agent.continue_after_tool" : "agent.answer",
1036
1037
  conversationId,
1037
1038
  agentId: profile.agentId
1038
- }, () => providerStreamFn(streamModel, context, options)),
1039
+ }, () => providerStreamFn(streamModel, context, options), {
1040
+ context,
1041
+ reasoning: options?.reasoning
1042
+ }),
1039
1043
  getApiKey: (provider) => this.resolveApiKeyWithCache(provider),
1040
1044
  finishTurn: (context) => turnPolicy.shouldStopAfterTurn(context) ? { action: "end" } : void 0,
1041
1045
  beforeToolCall: turnPolicy.beforeToolCall,
@@ -1,6 +1,6 @@
1
1
  import { init_paths, resolveModelsJsonPath } from "../../config/paths.js";
2
- import { init_sync_provider_auth, resolveProviderApiKeySync } from "../../auth/sync-provider-auth.js";
3
2
  import { CredentialResolver, init_credentials } from "../../auth/credentials.js";
3
+ import { init_sync_provider_auth, resolveProviderApiKeySync } from "../../auth/sync-provider-auth.js";
4
4
  import { XopcModelCredentialStore, init_model_credential_store } from "../../auth/model-credential-store.js";
5
5
  import { init_register_bundled_oauth_flows, registerBundledOAuthFlows } from "../../providers/register-bundled-oauth-flows.js";
6
6
  import { init_register_runtime_providers, registerRuntimeProviders } from "../../providers/register-runtime-providers.js";
@@ -2,6 +2,7 @@ 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 { setTraceIdentity, startObservation, traceOperation, traceRun } from "../../observability/runtime.js";
5
6
  import { resolveEffectiveAgentProfileForSession } from "../../config/agent-profile.js";
6
7
  import { init_providers, resolveModel } from "../../providers/index.js";
7
8
  import { appendDynamicPromptSection } from "../prompt/cache-boundary.js";
@@ -10,7 +11,7 @@ import { resolveAgentTurnTimeoutMs } from "../orchestration/run-agent-turn-with-
10
11
  import { isPersonalConversation } from "../../personal-agent/repository.js";
11
12
  import { resolvePromptCachePolicy } from "../../providers/prompt-cache-plan.js";
12
13
  import { evaluateContextBudget } from "../memory/context-budget.js";
13
- import { assessContext, recoverContext } from "../memory/context-recovery.js";
14
+ import { assessContext, recoverContext as recoverContext$1 } from "../memory/context-recovery.js";
14
15
  import { resolveCompactionPolicy } from "../memory/compaction-policy.js";
15
16
  import { runXopcEmbeddedTurn } from "./run-turn.js";
16
17
  import { projectTurnOutcome } from "../../session/turn-outcome-projector.js";
@@ -24,6 +25,16 @@ init_logger();
24
25
  init_providers();
25
26
  const log = createLogger("EmbeddedTurnForSession");
26
27
  async function runEmbeddedTurnForSession(params) {
28
+ const input = {
29
+ ...params,
30
+ runId: params.runId ?? crypto.randomUUID()
31
+ };
32
+ return traceRun("agent.run", {
33
+ conversationId: input.conversationId,
34
+ runId: input.runId
35
+ }, () => runEmbeddedTurnForSessionInner(input), input.userMessage);
36
+ }
37
+ async function runEmbeddedTurnForSessionInner(params) {
27
38
  const { conversationId, agentManager, modelManager, sessionStore, userMessage } = params;
28
39
  const personal = isPersonalConversation(conversationId);
29
40
  const idleScheduler = sessionStore.idleCompaction;
@@ -32,6 +43,7 @@ async function runEmbeddedTurnForSession(params) {
32
43
  let turnCompleted = false;
33
44
  const runId = params.runId ?? crypto.randomUUID();
34
45
  const config = params.getConfig?.();
46
+ if (config) setTraceIdentity({ agentId: resolveEffectiveAgentProfileForSession(conversationId).agentId });
35
47
  const supervisor = new AgentRunSupervisor({
36
48
  timeoutMs: resolveAgentTurnTimeoutMs(config, conversationId),
37
49
  deadlineAtMs: params.deadlineAtMs,
@@ -231,8 +243,16 @@ async function runEmbeddedTurnForSession(params) {
231
243
  attempt: i + 1,
232
244
  total: resolvedCandidates.length
233
245
  }, "Agent model fallback started");
246
+ const attempt = startObservation(isFallbackAttempt ? "model.fallback" : "model.attempt", "span");
247
+ attempt.update({
248
+ "xopc.attempt": i + 1,
249
+ "gen_ai.request.model": candidateModel.id,
250
+ "gen_ai.system": candidateModel.provider,
251
+ "xopc.fallback": isFallbackAttempt,
252
+ "xopc.fallbackReason": lastResult?.errorMessage ?? ""
253
+ });
234
254
  try {
235
- const turnResult = await runWithEmbeddedExecutionSession(conversationId, () => runXopcEmbeddedTurn({
255
+ const turnResult = await attempt.run(() => runWithEmbeddedExecutionSession(conversationId, () => runXopcEmbeddedTurn({
236
256
  conversationId,
237
257
  verifyChanges: config ? resolveEffectiveAgentProfileForSession(conversationId).agentId === "coder" : false,
238
258
  runId,
@@ -254,7 +274,8 @@ async function runEmbeddedTurnForSession(params) {
254
274
  onAgentEvent: (event) => agentManager.emitRuntimeEvent(conversationId, event),
255
275
  resumeLastUserMessage,
256
276
  requireVisibleReply: params.requireVisibleReply
257
- }), runId);
277
+ }), runId));
278
+ attempt.finish(turnResult.ok ? "success" : "error", turnResult.errorMessage);
258
279
  if (turnResult.ok) {
259
280
  if (isFallbackAttempt) log.info({
260
281
  conversationId,
@@ -278,6 +299,7 @@ async function runEmbeddedTurnForSession(params) {
278
299
  errorMessage: turnResult.errorMessage
279
300
  }, hasNextCandidate ? "Agent model turn failed, trying fallback" : "Agent model turn failed, no fallback remains");
280
301
  } catch (err) {
302
+ attempt.finish("error", err instanceof Error ? err.message : String(err));
281
303
  lastError = err;
282
304
  if (err instanceof DOMException && err.name === "AbortError") {
283
305
  await finish({
@@ -411,5 +433,8 @@ async function maybeAutoCompactBeforeTurn(opts) {
411
433
  }, "Foreground compaction wait finished");
412
434
  }
413
435
  }
436
+ async function recoverContext(...args) {
437
+ return traceOperation("context.compaction", () => recoverContext$1(...args));
438
+ }
414
439
  //#endregion
415
440
  export { runEmbeddedTurnForSession };
@@ -6,6 +6,7 @@ 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 { setTraceIdentity, traceOperation, traceRun, traceTools } from "../../observability/runtime.js";
9
10
  import { resolveEffectiveAgentConfigForSession } from "../../config/agent-profile.js";
10
11
  import { continuesAfterTool, trackAiUsageStream } from "../../usage/recorder.js";
11
12
  import { runWithEmbeddedExecutionSession } from "./execution-context.js";
@@ -23,7 +24,7 @@ import { wrapStreamFnForXopcExtensions } from "./xopc-stream-bridge.js";
23
24
  import { acquireEmbeddedSessionRunner, evictEmbeddedSessionRunner } from "./session-runner.js";
24
25
  import { projectContextForModel } from "../memory/context-budget.js";
25
26
  import { createSqliteTranscriptRuntime } from "./transcript-runtime.js";
26
- import { assessContext, recoverContext } from "../memory/context-recovery.js";
27
+ import { assessContext, recoverContext as recoverContext$1 } from "../memory/context-recovery.js";
27
28
  import { resolveCompactionPolicy } from "../memory/compaction-policy.js";
28
29
  import { buildPromptCacheSnapshot, observePromptCacheSnapshot } from "../../providers/prompt-cache-observability.js";
29
30
  import { isPromptCacheExpired, recordPromptCacheTouch } from "../../providers/prompt-cache-lifecycle.js";
@@ -240,7 +241,14 @@ async function maybeRecoverInterruptedContext(params) {
240
241
  return true;
241
242
  }
242
243
  async function runXopcEmbeddedTurn(params) {
243
- const { conversationId, runId, userMessage, model, tools, systemPrompt, thinkingLevel, workspaceDir, sessionStore, onEvent } = params;
244
+ return traceRun("agent.run", {
245
+ conversationId: params.conversationId,
246
+ runId: params.runId
247
+ }, () => runXopcEmbeddedTurnInner(params), params.userMessage);
248
+ }
249
+ async function runXopcEmbeddedTurnInner(params) {
250
+ const { conversationId, runId, userMessage, model, tools: rawTools, systemPrompt, thinkingLevel, workspaceDir, sessionStore, onEvent } = params;
251
+ const tools = traceTools(rawTools);
244
252
  const timeoutMs = params.timeoutMs || resolveAgentTurnTimeoutMs();
245
253
  const resolvedModel = requireEmbeddedModel(model, params.modelRef);
246
254
  const configuredThinking = isXopcDatabaseOpen() && getSessionMetadata(conversationId) ? resolveEffectiveAgentConfigForSession(conversationId).config.runtime.thinkingLevel : void 0;
@@ -252,6 +260,7 @@ async function runXopcEmbeddedTurn(params) {
252
260
  sessionStore
253
261
  }) : void 0);
254
262
  if (!transcriptRuntime) throw new Error("Embedded run requires a transcript runtime");
263
+ setTraceIdentity({ transcriptId: transcriptRuntime.transcriptId });
255
264
  let runner;
256
265
  let unsubscribe;
257
266
  let quarantineRunner = false;
@@ -479,7 +488,10 @@ async function runXopcEmbeddedTurn(params) {
479
488
  conversationId,
480
489
  runId,
481
490
  traceId: runId
482
- }, () => streamFnWithXopcExtensions(streamModel, effectiveContext, { ...options }));
491
+ }, () => streamFnWithXopcExtensions(streamModel, effectiveContext, { ...options }), {
492
+ context: effectiveContext,
493
+ reasoning: options?.reasoning
494
+ });
483
495
  };
484
496
  session.agent.streamFunction = loggingStreamFn;
485
497
  const verification = await RunVerification.open(workspaceDir);
@@ -745,5 +757,8 @@ async function runXopcEmbeddedTurn(params) {
745
757
  runner?.release();
746
758
  }
747
759
  }
760
+ async function recoverContext(...args) {
761
+ return traceOperation("context.compaction", () => recoverContext$1(...args));
762
+ }
748
763
  //#endregion
749
764
  export { abortEmbeddedRun, queueEmbeddedSteer, runXopcEmbeddedTurn };
@@ -1,5 +1,5 @@
1
- import { getAgentDefaultImageModelConfig, getAgentDefaultModelRef, init_schema, parseModelRef } from "../../config/schema.js";
2
1
  import { init_agent_scope, resolveDefaultAgentId } from "../agent-scope.js";
2
+ import { getAgentDefaultImageModelConfig, getAgentDefaultModelRef, init_schema, parseModelRef } from "../../config/schema.js";
3
3
  import { resolveEffectiveAgentConfigForAgent } from "../../config/agent-profile.js";
4
4
  import { getDefaultModelSync, getModelsByProvider, init_providers, isProviderConfiguredSync, resolveModel } from "../../providers/index.js";
5
5
  import { resolveAgentModelFallbackValues, resolveAgentModelPrimaryValue } from "../../config/model-input.js";
@@ -1,5 +1,5 @@
1
- import { init_paths, resolveMcpOAuthPath } from "../../../config/paths.js";
2
1
  import { init_write_file_atomic, writeTextAtomic } from "../../../infra/write-file-atomic.js";
2
+ import { init_paths, resolveMcpOAuthPath } from "../../../config/paths.js";
3
3
  import { dirname, join } from "node:path";
4
4
  import { createHash } from "node:crypto";
5
5
  import { readFile, rm } from "node:fs/promises";
@@ -1,9 +1,10 @@
1
1
  import { createLogger } from "../utils/logger/index.js";
2
2
  import { init_logger } from "../utils/logger.js";
3
3
  import { init_attachment_ref, parseNoteAttachmentTarget } from "../notes/attachment-ref.js";
4
+ import { init_agent_scope, resolveAgentHomeDir, resolveDefaultAgentId } from "./agent-scope.js";
5
+ import { configureTracing, flushTracing } from "../observability/runtime.js";
4
6
  import { getAgentDefaultModelRef, init_schema } from "../config/schema.js";
5
7
  import { applyConfigOverrides } from "../config/runtime-overrides.js";
6
- import { init_agent_scope, resolveAgentHomeDir, resolveDefaultAgentId } from "./agent-scope.js";
7
8
  import { init_agent_session_key, resolveAgentIdFromConversationId } from "../routing/agent-session-key.js";
8
9
  import { extractProfileAgentId, resolveEffectiveAgentConfigForSession } from "../config/agent-profile.js";
9
10
  import { init_providers, resolveModel } from "../providers/index.js";
@@ -667,6 +668,7 @@ var AgentService = class {
667
668
  return this.sessionState.takeTaskReviewStreamHint(conversationId);
668
669
  }
669
670
  async start() {
671
+ await configureTracing(this.config.config?.observability?.tracing);
670
672
  await this.sessionConfigStore.initialize();
671
673
  await this.hookHandler.trigger("gateway_start", {
672
674
  port: 0,
@@ -681,13 +683,13 @@ var AgentService = class {
681
683
  }, `Inbound loop failed: ${em}`);
682
684
  });
683
685
  }
684
- stop() {
686
+ async stop() {
685
687
  this.inboundLoop.stop();
686
688
  this.agentManager.dispose();
687
689
  this.dispose();
688
690
  this.hookHandler.trigger("gateway_stop", { reason: "stopped" });
689
691
  log.debug("Agent service stopped");
690
- return Promise.resolve();
692
+ await flushTracing();
691
693
  }
692
694
  /**
693
695
  * Persist agent messages with the same sanitizer + transcript hygiene as AgentOrchestrator.
@@ -1,5 +1,5 @@
1
- import { init_paths, resolveSkillsLockPath } from "../../config/paths.js";
2
1
  import { init_write_file_atomic, writeTextAtomicSync } from "../../infra/write-file-atomic.js";
2
+ import { init_paths, resolveSkillsLockPath } from "../../config/paths.js";
3
3
  import { existsSync, readFileSync } from "node:fs";
4
4
  //#region src/agent/skills/hub-lock.ts
5
5
  /**
@@ -2,11 +2,11 @@ import { backupDatabaseBeforeCutover, init_conversation_backup } from "../../sto
2
2
  import { getXopcDatabase } from "../../storage/sqlite/connection.js";
3
3
  import { runSqliteWriteTransaction } from "../../storage/sqlite/transaction.js";
4
4
  import { init_sqlite } from "../../storage/sqlite/index.js";
5
+ import { init_write_file_atomic, writeTextAtomicSync } from "../../infra/write-file-atomic.js";
5
6
  import { AgentDefaultsSchema, AgentEntrySchema, AgentIdSchema, DEFAULT_AGENT_MODEL_REF, DEFAULT_SKILL_POLICY } from "../../agent-config/schema.js";
6
7
  import { init_agent_config } from "../../agent-config/index.js";
7
8
  import { BindingsSchema, init_binding_schema } from "../../routing/binding-schema.js";
8
9
  import { AgentCatalogRepository, init_repository } from "../repository.js";
9
- import { init_write_file_atomic, writeTextAtomicSync } from "../../infra/write-file-atomic.js";
10
10
  import { copyFileSync, existsSync, readFileSync } from "node:fs";
11
11
  import { createHash, randomUUID } from "node:crypto";
12
12
  import { z } from "zod";
@@ -1,9 +1,9 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
2
  import { getSqliteDatabase, runSqliteWriteTransaction } from "../storage/sqlite/transaction.js";
3
3
  import { init_sqlite } from "../storage/sqlite/index.js";
4
+ import { DEFAULT_AGENT_ID, init_id, normalizeAgentId } from "./id.js";
4
5
  import { AgentDefaultsSchema, AgentEntrySchema, DEFAULT_AGENT_MODEL_REF, DEFAULT_SKILL_POLICY } from "../agent-config/schema.js";
5
6
  import { init_agent_config } from "../agent-config/index.js";
6
- import { DEFAULT_AGENT_ID, init_id, normalizeAgentId } from "./id.js";
7
7
  import { BindingsSchema, init_binding_schema } from "../routing/binding-schema.js";
8
8
  import { randomUUID } from "node:crypto";
9
9
  //#region src/agent-catalog/repository.ts
@@ -1,10 +1,10 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
2
  import { createLogger } from "../utils/logger/index.js";
3
3
  import { init_logger } from "../utils/logger.js";
4
- import { init_paths, resolveAgentAuthProfilesPath, resolveAuthProfilesPath, resolveCredentialsDir, resolveOAuthPath } from "../config/paths.js";
5
- import { getOAuthProviderDefinition, init_registry } from "./oauth/registry.js";
6
4
  import { init_write_file_atomic, writeTextAtomic } from "../infra/write-file-atomic.js";
7
5
  import { getApiKeyFromEnv, init_env_keys } from "../providers/env-keys.js";
6
+ import { init_paths, resolveAgentAuthProfilesPath, resolveAuthProfilesPath, resolveCredentialsDir, resolveOAuthPath } from "../config/paths.js";
7
+ import { getOAuthProviderDefinition, init_registry } from "./oauth/registry.js";
8
8
  import { init_oauth_provider_lock, withOAuthProviderLock } from "./oauth-provider-lock.js";
9
9
  import { dirname, join } from "path";
10
10
  import { mkdir, readFile, readdir, rm } from "fs/promises";
@@ -3,8 +3,8 @@ import { init_paths, resolveOAuthPath } from "../config/paths.js";
3
3
  import { AsyncLocalStorage } from "node:async_hooks";
4
4
  import { dirname } from "node:path";
5
5
  import { randomUUID } from "node:crypto";
6
- import { setTimeout } from "node:timers/promises";
7
6
  import { mkdir, open, readFile, rm, stat } from "node:fs/promises";
7
+ import { setTimeout } from "node:timers/promises";
8
8
  //#region src/auth/oauth-provider-lock.ts
9
9
  function lockPath(providerId) {
10
10
  return `${resolveOAuthPath(providerId.toLowerCase())}.lock`;
@@ -1,5 +1,5 @@
1
- import { init_paths, resolveCredentialsDir } from "../../config/paths.js";
2
1
  import { init_write_file_atomic, writeTextAtomicSync } from "../../infra/write-file-atomic.js";
2
+ import { init_paths, resolveCredentialsDir } from "../../config/paths.js";
3
3
  import path from "node:path";
4
4
  import { chmodSync, existsSync, mkdirSync, readFileSync } from "node:fs";
5
5
  //#region src/auth/profiles/store.ts
@@ -1,7 +1,7 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
- import { getDefaultAgentId, init_resolve_route } from "../routing/resolve-route.js";
3
2
  import { init_paths, resolveAgentAuthProfilesPath, resolveAuthProfilesPath, resolveOAuthPath } from "../config/paths.js";
4
3
  import { init_registry, isOAuthOnlyProvider } from "./oauth/registry.js";
4
+ import { getDefaultAgentId, init_resolve_route } from "../routing/resolve-route.js";
5
5
  import { existsSync, readFileSync } from "node:fs";
6
6
  //#region src/auth/sync-provider-auth.ts
7
7
  /**
@@ -2,8 +2,8 @@ import { PACKAGE_VERSION, init_package_version } from "../../package-version.js"
2
2
  import { resolveStateDir } from "../../config/paths-state.js";
3
3
  import { createLogger } from "../../utils/logger/index.js";
4
4
  import { init_logger } from "../../utils/logger.js";
5
- import { init_paths, resolveBinDir, resolveConfigPath } from "../../config/paths.js";
6
5
  import { init_write_file_atomic, writeTextAtomic } from "../../infra/write-file-atomic.js";
6
+ import { init_paths, resolveBinDir, resolveConfigPath } from "../../config/paths.js";
7
7
  import { assertCacheDir } from "../cache-dir-policy.js";
8
8
  import { BROWSER_EXTENSION_ID, BROWSER_NATIVE_HOST_NAME } from "../extension-identity.js";
9
9
  import "../native-messaging-host.js";
@@ -1,7 +1,7 @@
1
1
  import { normalizeAgentId } from "../agent-catalog/id.js";
2
2
  import { init_agent_scope, resolveAgentProfileDir } from "../agent/agent-scope.js";
3
- import { init_agent_session_key, resolveAgentIdFromConversationId } from "../routing/agent-session-key.js";
4
3
  import { WORKSPACE_FILES, init_paths } from "../config/paths.js";
4
+ import { init_agent_session_key, resolveAgentIdFromConversationId } from "../routing/agent-session-key.js";
5
5
  import { commandRegistry } from "./registry.js";
6
6
  import { join } from "node:path";
7
7
  import { readFile } from "node:fs/promises";
@@ -1,7 +1,7 @@
1
1
  import { createLogger } from "../../utils/logger/index.js";
2
2
  import { init_logger } from "../../utils/logger.js";
3
- import { ConfigSchema, init_schema } from "../../config/schema.js";
4
3
  import { init_paths, resolveConfigPath } from "../../config/paths.js";
4
+ import { ConfigSchema, init_schema } from "../../config/schema.js";
5
5
  import { commandRegistry } from "../registry.js";
6
6
  import { parseConfigValue } from "../config-value.js";
7
7
  import { getConfigValueAtPath, parseConfigPath, setConfigValueAtPath, unsetConfigValueAtPath } from "../config-paths.js";
@@ -1,7 +1,7 @@
1
1
  import { createLogger } from "../../utils/logger/index.js";
2
2
  import { init_logger } from "../../utils/logger.js";
3
- import { getAgentDefaultModelRef, init_schema } from "../../config/schema.js";
4
3
  import { init_agent_scope, resolveDefaultAgentId } from "../../agent/agent-scope.js";
4
+ import { getAgentDefaultModelRef, init_schema } from "../../config/schema.js";
5
5
  import { init_agent_session_key, resolveAgentMainConversationId } from "../../routing/agent-session-key.js";
6
6
  import { ExtensionLoader } from "../../extensions/loader.js";
7
7
  import "../../extensions/index.js";
@@ -53,7 +53,7 @@ async function checkDatabaseSchema(ctx) {
53
53
  id: "database-schema",
54
54
  label: "Database schema",
55
55
  status: "pass",
56
- message: `SQLite schema v${status.dbVersion} (current release v232).`,
56
+ message: `SQLite schema v${status.dbVersion} (current release v233).`,
57
57
  hints: []
58
58
  };
59
59
  }
@@ -1,6 +1,6 @@
1
1
  import { resolveModelsJsonPath } from "../../../../config/paths.js";
2
- import { init_models_json, loadModelsJson } from "../../../../config/models-json.js";
3
2
  import { CredentialResolver, init_credentials } from "../../../../auth/credentials.js";
3
+ import { init_models_json, loadModelsJson } from "../../../../config/models-json.js";
4
4
  import { classifyHost } from "../../../../media-shared/http/private-network.js";
5
5
  import "../../../../media-shared/http/index.js";
6
6
  import { existsSync } from "node:fs";
@@ -1,9 +1,9 @@
1
+ import { PROVIDER_ENV_MAP, init_env_keys } from "../../../../providers/env-keys.js";
1
2
  import { AgentCatalogRepository, init_repository } from "../../../../agent-catalog/repository.js";
2
- import { getAgentDefaultModelRef, init_schema, parseModelRef } from "../../../../config/schema.js";
3
- import { getDefaultAgentId, init_resolve_route } from "../../../../routing/resolve-route.js";
4
3
  import { getModelOAuthProviderIds, init_registry } from "../../../../auth/oauth/registry.js";
5
- import { PROVIDER_ENV_MAP, init_env_keys } from "../../../../providers/env-keys.js";
6
4
  import { CredentialResolver, init_credentials } from "../../../../auth/credentials.js";
5
+ import { getAgentDefaultModelRef, init_schema, parseModelRef } from "../../../../config/schema.js";
6
+ import { getDefaultAgentId, init_resolve_route } from "../../../../routing/resolve-route.js";
7
7
  import { loadConfig } from "../../../../config/loader.js";
8
8
  import { existsSync } from "node:fs";
9
9
  //#region src/cli/commands/doctor/checks/provider-auth.ts
@@ -1,8 +1,8 @@
1
1
  import { init_paths, resolveConfigPath } from "../../../config/paths.js";
2
2
  import { loadConfig } from "../../../config/loader.js";
3
3
  import "../../../config/index.js";
4
- import { resolveGatewayService } from "../../../daemon/service.js";
5
4
  import { isRestartEnabled } from "../../../config/commands.flags.js";
5
+ import { resolveGatewayService } from "../../../daemon/service.js";
6
6
  import { authorizeGatewaySigusr1Restart, writeGatewayRestartIntentSync } from "../../../infra/restart.js";
7
7
  import { findVerifiedGatewayListenerPidsOnPortSync, formatGatewayPidList, signalVerifiedGatewayPidSync } from "../../../infra/gateway-processes.js";
8
8
  import { runServiceRestart, runServiceStop } from "./lifecycle-core.js";
@@ -1,6 +1,6 @@
1
1
  import { AgentCatalogRepository, init_repository } from "../../agent-catalog/repository.js";
2
- import { getAgentDefaultModelRef, init_schema } from "../../config/schema.js";
3
2
  import { CredentialResolver, init_credentials } from "../../auth/credentials.js";
3
+ import { getAgentDefaultModelRef, init_schema } from "../../config/schema.js";
4
4
  import { getAllModels, getAvailableModels, getConfiguredProviders, getProviderAuthState, getProviderDisplayName, init_providers, isProviderConfigured, providerSupportsApiKey, providerSupportsOAuth, resolveModel } from "../../providers/index.js";
5
5
  import { AgentCatalogService } from "../../agent-catalog/service.js";
6
6
  import { loadConfig } from "../../config/loader.js";
@@ -1,10 +1,10 @@
1
+ import { getApiKeyFromEnv } from "../../../providers/env-keys.js";
1
2
  import { AgentCatalogRepository, init_repository } from "../../../agent-catalog/repository.js";
2
- import { getAgentDefaultModelRef, init_schema } from "../../../config/schema.js";
3
3
  import { resolveModelsJsonPath } from "../../../config/paths.js";
4
+ import { CredentialResolver, init_credentials } from "../../../auth/credentials.js";
5
+ import { getAgentDefaultModelRef, init_schema } from "../../../config/schema.js";
4
6
  import { init_models_json, loadModelsJson, saveModelsJson } from "../../../config/models-json.js";
5
- import { getApiKeyFromEnv } from "../../../providers/env-keys.js";
6
7
  import { getModelRegistry } from "../../../providers/model-registry.js";
7
- import { CredentialResolver, init_credentials } from "../../../auth/credentials.js";
8
8
  import { getAllProviders, getModelsByProvider, getProviderDisplayName, init_providers, providerSupportsApiKey, providerSupportsOAuth } from "../../../providers/index.js";
9
9
  import { AgentCatalogService } from "../../../agent-catalog/service.js";
10
10
  import { prepareUpdateGlobalDefaults } from "../../../gateway/global-defaults-admin.js";
@@ -1,6 +1,6 @@
1
+ import { normalizeAgentId } from "../agent-catalog/id.js";
1
2
  import { resolveEffectiveAgentConfig } from "../agent-config/resolver.js";
2
3
  import { init_agent_config } from "../agent-config/index.js";
3
- import { normalizeAgentId } from "../agent-catalog/id.js";
4
4
  import { AgentCatalogRepository, init_repository } from "../agent-catalog/repository.js";
5
5
  import { init_agent_scope, resolveAgentWorkspaceDir } from "../agent/agent-scope.js";
6
6
  import { getConversationRouting } from "../storage/sqlite/conversation-repository.js";
@@ -1,13 +1,13 @@
1
1
  import { ENV_VARS, XOPC_DB_FILENAME, resolveHomeDir, resolveStateDir, resolveXopcCloudCatalogCachePath, resolveXopcDatabasePath } from "./paths-state.js";
2
+ import { expandWorkspacePathString, init_workspace_path, normalizeWorkspaceDir, resolveWorkspaceRoot } from "./workspace-path.js";
3
+ import { resolveDefaultAgentWorkspaceDir } from "./workspace-defaults.js";
4
+ import { resolveAgentWorkspaceDir } from "../agent/agent-scope.js";
5
+ import { FILENAMES, WORKSPACE_FILES, existsSync, hasBundledExtensionManifest, init_paths, resolveAgentAuthProfilesPath, resolveAgentDir, resolveAgentHomeDir, resolveAgentProfileDir, resolveAgentProfileMarkdownPath, resolveAuthProfilesPath, resolveBinDir, resolveBundledExtensionsDir, resolveBundledSkillsDir, resolveConfigPath, resolveCredentialsDir, resolveExtensionSdkPath, resolveExtensionsDir, resolveExtensionsLockPath, resolveInboxDir, resolveInboxMessagePath, resolveInboxPendingDir, resolveInboxProcessedDir, resolveLogPath, resolveLogsDir, resolveMcpOAuthPath, resolveModelsJsonPath, resolveNodeBinDir, resolveNodeBinPath, resolveNodeToolsDir, resolveNpmBinPath, resolveOAuthPath, resolvePidPath, resolveSkillPath, resolveSkillsCachePath, resolveSkillsDir, resolveSkillsLockPath, resolveSocketPath, resolveStatusPath, resolveToolsDir, resolveWorkspaceExtensionsDir, resolveWorkspaceFile, resolveWorkspaceStateDir, resolveWorkspaceStatePath, resolveXopcBinPath } from "./paths.js";
2
6
  import { TelegramAccountConfigSchema, TelegramConfigSchema, TelegramGroupConfigSchema, TelegramTopicConfigSchema } from "../../extensions/telegram/src/config-schema.js";
3
7
  import { WeixinAccountConfigSchema, WeixinConfigSchema } from "../../extensions/weixin/src/config-schema.js";
4
8
  import { AgentImageGenerationModelSchema, AgentModelRefSchema, AgentModelsSchema, BrowserConfigSchema, ChannelsConfigSchema, CommandsConfigSchema, ConfigSchema, ConnectorsConfigSchema, ExperimentalConfigSchema, ExtensionSecurityConfigSchema, ExtensionSlotsConfigSchema, ExtensionsConfigSchema, GatewayAuthRateLimitSchema, GatewayAuthSchema, GatewayBindModeSchema, GatewayChannelConnectDeferModeSchema, GatewayConfigSchema, GatewayModeSchema, GatewayRemoteSchema, GatewayScenesConfigSchema, GatewaySecuritySchema, GatewayTailscaleConsentSchema, GatewayTailscaleSchema, GatewayTlsSchema, GatewayTrustedProxySchema, GatewayWebchatConfigSchema, McpConfigSchema, McpOAuthConfigSchema, McpServerSchema, MediaUnderstandingCapabilitiesSchema, MediaUnderstandingModelSchema, MessagesConfigSchema, ModelCatalogConfigSchema, ModelsDevConfigSchema, ProviderAuthConfigSchema, ProviderAzureConfigSchema, ProviderRequestOverridesSchema, ProvidersConfigSchema, RuntimeToolsConfigSchema, STTConfigSchema, STTFallbackConfigSchema, STTProviderConfigSchema, SearchProviderEntrySchema, SessionConfigSchema, SessionDmScopeSchema, SessionResetByTypeSchema, SessionResetConfigSchema, SessionResetModeSchema, SessionScopeSchema, SessionStorageConfigSchema, TTSConfigSchema, TTSEdgeConfigSchema, TTSFallbackConfigSchema, TTSModelOverridesConfigSchema, TTSProviderConfigSchema, TTSSummarizationConfigSchema, ToolsConfigSchema, ToolsMediaAudioConfigSchema, ToolsMediaConfigSchema, TunnelConfigSchema, TunnelConsentSchema, UpdateAutoConfigSchema, UpdateConfigSchema, VoiceConfigSchema, VoiceRefinementConfigSchema, WebSearchConfigSchema, WebToolsConfigSchema, WebsiteBlocklistSchema, WorkspaceConfigSchema, WorkspaceImportConfigSchema, getAgentDefaultImageGenerationModelConfig, getAgentDefaultImageModelConfig, getAgentDefaultModelRef, init_schema, parseModelRef } from "./schema.js";
5
9
  import { applyConfigOverrides, getConfigOverrides, resetConfigOverrides, setConfigOverride, unsetConfigOverride } from "./runtime-overrides.js";
6
- import { expandWorkspacePathString, init_workspace_path, normalizeWorkspaceDir, resolveWorkspaceRoot } from "./workspace-path.js";
7
- import { resolveDefaultAgentWorkspaceDir } from "./workspace-defaults.js";
8
- import { resolveAgentWorkspaceDir } from "../agent/agent-scope.js";
9
10
  import { extractProfileAgentId, resolveEffectiveAgentConfigForAgent, resolveEffectiveAgentConfigForSession, resolveEffectiveAgentProfile, resolveEffectiveAgentProfileForSession } from "./agent-profile.js";
10
- import { FILENAMES, WORKSPACE_FILES, existsSync, hasBundledExtensionManifest, init_paths, resolveAgentAuthProfilesPath, resolveAgentDir, resolveAgentHomeDir, resolveAgentProfileDir, resolveAgentProfileMarkdownPath, resolveAuthProfilesPath, resolveBinDir, resolveBundledExtensionsDir, resolveBundledSkillsDir, resolveConfigPath, resolveCredentialsDir, resolveExtensionSdkPath, resolveExtensionsDir, resolveExtensionsLockPath, resolveInboxDir, resolveInboxMessagePath, resolveInboxPendingDir, resolveInboxProcessedDir, resolveLogPath, resolveLogsDir, resolveMcpOAuthPath, resolveModelsJsonPath, resolveNodeBinDir, resolveNodeBinPath, resolveNodeToolsDir, resolveNpmBinPath, resolveOAuthPath, resolvePidPath, resolveSkillPath, resolveSkillsCachePath, resolveSkillsDir, resolveSkillsLockPath, resolveSocketPath, resolveStatusPath, resolveToolsDir, resolveWorkspaceExtensionsDir, resolveWorkspaceFile, resolveWorkspaceStateDir, resolveWorkspaceStatePath, resolveXopcBinPath } from "./paths.js";
11
11
  import { clearConfigValueCache, getAllowedCommands, getCacheStats, init_resolve_config_value, resolveConfigValue, resolveHeaders, testApiKeyResolution } from "./resolve-config-value.js";
12
12
  import { CustomModelSchema, ImageGenerationCapabilitiesSchema, ImageGenerationModelSchema, ImageGenerationProviderSchema, ModelOverrideSchema, ModelsJsonSchema, OpenAICompatSchema, OpenAICompletionsCompatSchema, OpenAIResponsesCompatSchema, OpenRouterRoutingSchema, ProviderConfigSchema, VercelGatewayRoutingSchema, getDefaultModelValues, init_models_json, loadModelsJson, modelsJsonExists, saveModelsJson, validateModelsConfig } from "./models-json.js";
13
13
  import { canonicalizeConfiguredMcpServer, isKnownCliMcpTypeAlias, normalizeConfiguredMcpServers, resolveXopcMcpTransportAlias } from "./mcp-config-normalize.js";