@xopcai/xopc 0.0.351 → 0.0.353

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 (226) hide show
  1. package/README.md +2 -2
  2. package/README.zh-CN.md +2 -2
  3. package/dist/browser-ext/dist/sidepanel.js +1 -1
  4. package/dist/browser-ext/manifest.json +1 -1
  5. package/dist/extensions/telegram/xopc.extension.json +1 -1
  6. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-Dc0yBlKV.js → agent-avatar-dicebear-BVIuZcCP.js} +1 -1
  7. package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-BXFins6I.js → agent-defaults-settings-panel-CcTnphqy.js} +1 -1
  8. package/dist/gateway/static/root/assets/{agent-plugin-dialog-B-w6bJuj.js → agent-plugin-dialog-CdCzMPhC.js} +1 -1
  9. package/dist/gateway/static/root/assets/agents-BiNKpndr.js +66 -0
  10. package/dist/gateway/static/root/assets/{agents-admin-api-yUALtmym.js → agents-admin-api-Ck2x78jq.js} +1 -1
  11. package/dist/gateway/static/root/assets/{app-management-settings-panel-C7QjGlMZ.js → app-management-settings-panel-BvGDN5J6.js} +1 -1
  12. package/dist/gateway/static/root/assets/{appearance-settings-CgApGxhN.js → appearance-settings-BhQYkuQj.js} +1 -1
  13. package/dist/gateway/static/root/assets/{apps-page-DWii4stP.js → apps-page-BQZJuM-C.js} +1 -1
  14. package/dist/gateway/static/root/assets/{archive-plugin--oP0UmoE.js → archive-plugin-BZXXJvpX.js} +1 -1
  15. package/dist/gateway/static/root/assets/{automations-page-DkV4w6xr.js → automations-page-C7VKkDb5.js} +1 -1
  16. package/dist/gateway/static/root/assets/{automations-workspace-DT95Uk9d.js → automations-workspace-y4qcvlg8.js} +1 -1
  17. package/dist/gateway/static/root/assets/{binary-plugins-DIpBiw_8.js → binary-plugins-DoT3g5SP.js} +1 -1
  18. package/dist/gateway/static/root/assets/{block-editor-Di4X446B.js → block-editor-sqqrCafh.js} +1 -1
  19. package/dist/gateway/static/root/assets/{browser-automation-inputs-B0TlAcoB.js → browser-automation-inputs-CZOKsAaa.js} +1 -1
  20. package/dist/gateway/static/root/assets/{browser-automations-page-pKPvkGW8.js → browser-automations-page-TEeTmkGP.js} +1 -1
  21. package/dist/gateway/static/root/assets/{browser-settings-page-cJ200PlY.js → browser-settings-page--N4P7V0l.js} +1 -1
  22. package/dist/gateway/static/root/assets/{capabilities-e-fO70DK.js → capabilities-BOrLei_L.js} +1 -1
  23. package/dist/gateway/static/root/assets/{capabilities-page-CPKbJUDL.js → capabilities-page-F7OAv-iz.js} +2 -2
  24. package/dist/gateway/static/root/assets/{capabilities-settings-panel-D5xUFWBJ.js → capabilities-settings-panel-CaiIo1S1.js} +1 -1
  25. package/dist/gateway/static/root/assets/{capability-header-actions-9qDm8ioP.js → capability-header-actions-CR_O9_Vr.js} +1 -1
  26. package/dist/gateway/static/root/assets/{channels-CO_9_oIH.js → channels-Bb-8c4wl.js} +1 -1
  27. package/dist/gateway/static/root/assets/{chat-terminal-dock-DCFwzHu2.js → chat-terminal-dock-Q99iKyiO.js} +1 -1
  28. package/dist/gateway/static/root/assets/{computer-settings-page-bwWQ3axN.js → computer-settings-page-QuXZBfky.js} +1 -1
  29. package/dist/gateway/static/root/assets/{connector-service-page-BIIP-gX4.js → connector-service-page-BIqzVqCO.js} +1 -1
  30. package/dist/gateway/static/root/assets/{connectors-page-C0b5Xbca.js → connectors-page-CZ24DSBJ.js} +1 -1
  31. package/dist/gateway/static/root/assets/{date-picker-DBio7OE6.js → date-picker-Ck-FmYEL.js} +1 -1
  32. package/dist/gateway/static/root/assets/{dependency-picker-hyPm_1tB.js → dependency-picker-BjH8XrKb.js} +1 -1
  33. package/dist/gateway/static/root/assets/{desktop-pet-BDPfot60.js → desktop-pet-DyGxNAVW.js} +1 -1
  34. package/dist/gateway/static/root/assets/{desktop-pet-settings-C6IRO2iD.js → desktop-pet-settings-C1rKgB-S.js} +1 -1
  35. package/dist/gateway/static/root/assets/{device-pairing-wizard-CUOh38IK.js → device-pairing-wizard-UrPcOU6Q.js} +1 -1
  36. package/dist/gateway/static/root/assets/{directory-picker-path-field-ljXXfuLL.js → directory-picker-path-field-BYxUgMZb.js} +1 -1
  37. package/dist/gateway/static/root/assets/{extension-debug-page-DHw1dG1g.js → extension-debug-page-CGL0jpQA.js} +1 -1
  38. package/dist/gateway/static/root/assets/{extension-page-BjLN3E6q.js → extension-page-DPWf-tYg.js} +1 -1
  39. package/dist/gateway/static/root/assets/{extension-settings-page-BMp6v6zP.js → extension-settings-page-DZWBY39d.js} +1 -1
  40. package/dist/gateway/static/root/assets/{gateway-config-swr-CmjHbMj7.js → gateway-config-swr-B31I6Gbq.js} +1 -1
  41. package/dist/gateway/static/root/assets/{gateway-realtime-DzyR6LYb.js → gateway-realtime-D6ffOiPe.js} +1 -1
  42. package/dist/gateway/static/root/assets/gateway-realtime-store-DQuFWNjA.js +1 -0
  43. package/dist/gateway/static/root/assets/{gateway-settings-D76thCuX.js → gateway-settings-D5w5aYXK.js} +1 -1
  44. package/dist/gateway/static/root/assets/{gateway-startup-retry-CbOUnKv5.js → gateway-startup-retry-DVol958v.js} +1 -1
  45. package/dist/gateway/static/root/assets/{home-page-D1Tyeuul.js → home-page-DPQwxBGy.js} +1 -1
  46. package/dist/gateway/static/root/assets/{image-generation-api-BmLpVntI.js → image-generation-api-TVgJfz9r.js} +1 -1
  47. package/dist/gateway/static/root/assets/{imports-page-CabovqRQ.js → imports-page-CnRWDtGz.js} +1 -1
  48. package/dist/gateway/static/root/assets/index-B-w6Rk9Z.css +1 -0
  49. package/dist/gateway/static/root/assets/{index-Bb32g7Ll.js → index-DU5Eb1V8.js} +20 -20
  50. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DvN-2bcS.js → keyboard-shortcuts-settings-CoYdyBRh.js} +1 -1
  51. package/dist/gateway/static/root/assets/{local-app-workbench-page-CSEzRWxs.js → local-app-workbench-page-hjFeYlIq.js} +1 -1
  52. package/dist/gateway/static/root/assets/{local-apps-page-C3Wy2zG2.js → local-apps-page-CeBhXeoX.js} +1 -1
  53. package/dist/gateway/static/root/assets/local-session-drafts-wiq_12oN.js +1 -0
  54. package/dist/gateway/static/root/assets/{locale-store-WMaCMm3_.js → locale-store-Y1aBayM_.js} +1 -1
  55. package/dist/gateway/static/root/assets/{logs-page-YojQFX9o.js → logs-page-CzpZDjkA.js} +1 -1
  56. package/dist/gateway/static/root/assets/{management-settings-CNMk0HRn.js → management-settings-Beu_R_Rc.js} +1 -1
  57. package/dist/gateway/static/root/assets/{markdown-view-Oe4rXk1N.js → markdown-view-BlzX7Ze5.js} +1 -1
  58. package/dist/gateway/static/root/assets/{media-plugins-Ds7HF3EM.js → media-plugins-C9ya5rUH.js} +1 -1
  59. package/dist/gateway/static/root/assets/messages-DPw2X06D.js +3 -0
  60. package/dist/gateway/static/root/assets/{note-detail-panel-D8vQ_INI.js → note-detail-panel-D8bpTGwP.js} +3 -3
  61. package/dist/gateway/static/root/assets/{notes-page-CIFcEPAd.js → notes-page-OmgXowUG.js} +1 -1
  62. package/dist/gateway/static/root/assets/{page-context-capture-button-YKiYT0q2.js → page-context-capture-button-BjjjuLkz.js} +1 -1
  63. package/dist/gateway/static/root/assets/{page-tabs-ZUC486EH.js → page-tabs-_DiuzxyD.js} +1 -1
  64. package/dist/gateway/static/root/assets/{preview-open-alternatives-Ca9tBmOg.js → preview-open-alternatives-BKvUadws.js} +1 -1
  65. package/dist/gateway/static/root/assets/{product-open-page-BuGb8QPn.js → product-open-page-DUPsiVP9.js} +1 -1
  66. package/dist/gateway/static/root/assets/{project-detail-page-C6Awj1Ql.js → project-detail-page-CWlCg2x5.js} +1 -1
  67. package/dist/gateway/static/root/assets/{projects-page-CmO8Gb9G.js → projects-page-NbVNo0tP.js} +1 -1
  68. package/dist/gateway/static/root/assets/{registry-api-DEePN1Rc.js → registry-api-DqDOrPQ0.js} +1 -1
  69. package/dist/gateway/static/root/assets/{remote-access-hub-BsqHroXR.js → remote-access-hub-CD8HrqGC.js} +1 -1
  70. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-Cva9t35o.js → runtime-tools-settings-panel-C25xEYTK.js} +1 -1
  71. package/dist/gateway/static/root/assets/{scenes-page-3_61bQHN.js → scenes-page-DbWaemwR.js} +1 -1
  72. package/dist/gateway/static/root/assets/{schema-form-DWHFyKEB.js → schema-form-_3LQ4hyB.js} +1 -1
  73. package/dist/gateway/static/root/assets/{session-api-Bv-hCMKS.js → session-api-CTN4qwiN.js} +1 -1
  74. package/dist/gateway/static/root/assets/{session-manager-BcDptzCN.js → session-manager-DsH1DZI_.js} +5 -5
  75. package/dist/gateway/static/root/assets/{sessions-page-BaHue2bK.js → sessions-page-B7ZUdXlb.js} +1 -1
  76. package/dist/gateway/static/root/assets/settings-advanced-gate-CpKzZMft.js +1 -0
  77. package/dist/gateway/static/root/assets/{settings-form-section-BwdrtX6k.js → settings-form-section-DS80hVSY.js} +1 -1
  78. package/dist/gateway/static/root/assets/settings-page-DqCJHcdG.js +1 -0
  79. package/dist/gateway/static/root/assets/{setup-status-panel-nMWHz-ra.js → setup-status-panel-De-kC3yJ.js} +1 -1
  80. package/dist/gateway/static/root/assets/{share-preview-page-DH0KHlev.js → share-preview-page-T-0g_rwr.js} +1 -1
  81. package/dist/gateway/static/root/assets/{shares-settings-KK-VNbMw.js → shares-settings-Dz33T3du.js} +1 -1
  82. package/dist/gateway/static/root/assets/{skill-api-BbNk-3Ig.js → skill-api-Cx6GGpSY.js} +1 -1
  83. package/dist/gateway/static/root/assets/skill-reload-api-DyJ-Duem.js +1 -0
  84. package/dist/gateway/static/root/assets/{skills-page-BQya9ygw.js → skills-page-B2iyN-kP.js} +1 -1
  85. package/dist/gateway/static/root/assets/{system-settings-panel-akm5mc8b.js → system-settings-panel-By3SZQR_.js} +1 -1
  86. package/dist/gateway/static/root/assets/{task-detail-page-wLGUc7Nu.js → task-detail-page-4yHUTs4_.js} +1 -1
  87. package/dist/gateway/static/root/assets/{tunnel-api-vZ7P_KIQ.js → tunnel-api-BoH0LBkw.js} +1 -1
  88. package/dist/gateway/static/root/assets/{usage-page-BV1KJ0EY.js → usage-page-dKU5X9zT.js} +1 -1
  89. package/dist/gateway/static/root/assets/{use-autosave-DQdLcZfO.js → use-autosave-YKCwQvqT.js} +1 -1
  90. package/dist/gateway/static/root/assets/{user-model-page-DnLTTyOE.js → user-model-page-Uht32LPP.js} +1 -1
  91. package/dist/gateway/static/root/assets/{voice-api-key-field-CJ-FjNHr.js → voice-api-key-field-DiqHIA8l.js} +1 -1
  92. package/dist/gateway/static/root/assets/{voice-config-api-DbjjZkIg.js → voice-config-api-BM75K3mR.js} +1 -1
  93. package/dist/gateway/static/root/assets/{work-discovery-overlay-BA1AAqaW.js → work-discovery-overlay-BnfD6w0k.js} +1 -1
  94. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-BhIOKmjW.js → workflow-run-setup-panel-DSy57rBr.js} +1 -1
  95. package/dist/gateway/static/root/assets/{workflows-page-aYoObmuS.js → workflows-page-Cq3vRUbc.js} +1 -1
  96. package/dist/gateway/static/root/index.html +15 -15
  97. package/dist/package.js +1 -1
  98. package/dist/packages/gateway-contract/src/session-input-command.js +2 -1
  99. package/dist/src/agent/agent-manager.js +25 -11
  100. package/dist/src/agent/bootstrap/bootstrap-files.d.ts +0 -4
  101. package/dist/src/agent/bootstrap/bootstrap-files.js +3 -9
  102. package/dist/src/agent/bootstrap/load-bootstrap-files.js +2 -4
  103. package/dist/src/agent/context/workspace-seed.d.ts +1 -7
  104. package/dist/src/agent/context/workspace-seed.js +4 -13
  105. package/dist/src/agent/context/workspace-templates/AGENTS.md +1 -1
  106. package/dist/src/agent/context/workspace.d.ts +1 -3
  107. package/dist/src/agent/context/workspace.js +3 -7
  108. package/dist/src/agent/mcp/oauth/mcp-oauth-store.js +1 -1
  109. package/dist/src/agent/messaging/no-reply.d.ts +1 -0
  110. package/dist/src/agent/messaging/no-reply.js +4 -0
  111. package/dist/src/agent/messaging/outbound-coordinator.d.ts +0 -4
  112. package/dist/src/agent/messaging/outbound-coordinator.js +2 -4
  113. package/dist/src/agent/prompt/sections/agent-identity.d.ts +3 -0
  114. package/dist/src/agent/prompt/sections/agent-identity.js +13 -0
  115. package/dist/src/agent/prompt/sections/messaging-runtime.d.ts +0 -5
  116. package/dist/src/agent/prompt/sections/messaging-runtime.js +2 -16
  117. package/dist/src/agent/prompt/sections/project-context.d.ts +0 -3
  118. package/dist/src/agent/prompt/sections/project-context.js +2 -9
  119. package/dist/src/agent/prompt/sections/tooling.js +1 -1
  120. package/dist/src/agent/prompt/service-prompt-builder.d.ts +2 -0
  121. package/dist/src/agent/prompt/service-prompt-builder.js +3 -8
  122. package/dist/src/agent/prompt/subagent-context.js +1 -1
  123. package/dist/src/agent/prompt/system-prompt-params.d.ts +0 -4
  124. package/dist/src/agent/prompt/system-prompt-params.js +0 -2
  125. package/dist/src/agent/prompt/system-prompt.d.ts +2 -2
  126. package/dist/src/agent/prompt/system-prompt.js +8 -9
  127. package/dist/src/agent/service.js +0 -1
  128. package/dist/src/agent/skills/hub-lock.js +1 -1
  129. package/dist/src/agent/skills/index.js +1 -1
  130. package/dist/src/agent/skills/managed-store.js +1 -1
  131. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  132. package/dist/src/agent/starter-agents.d.ts +3 -4
  133. package/dist/src/agent/starter-agents.js +104 -90
  134. package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
  135. package/dist/src/agent/tool-manuals/xopc-use.js +7 -4
  136. package/dist/src/agent/tools/factory.d.ts +4 -2
  137. package/dist/src/agent/tools/factory.js +6 -3
  138. package/dist/src/agent/workflow/workflow-child-tools.js +2 -1
  139. package/dist/src/agent-catalog/migrations/identity-markdown-cutover.d.ts +5 -0
  140. package/dist/src/agent-catalog/migrations/identity-markdown-cutover.js +94 -0
  141. package/dist/src/agent-catalog/repository.js +7 -1
  142. package/dist/src/agent-catalog/service.js +2 -2
  143. package/dist/src/agent-config/resolver.js +2 -0
  144. package/dist/src/agent-config/schema.d.ts +21 -0
  145. package/dist/src/agent-config/schema.js +9 -4
  146. package/dist/src/auth/credentials.js +1 -1
  147. package/dist/src/auth/profiles/store.js +1 -1
  148. package/dist/src/auth/sync-provider-auth.js +1 -1
  149. package/dist/src/automations/events/event-repository.js +2 -1
  150. package/dist/src/bootstrap/application-state.js +2 -0
  151. package/dist/src/browser/providers/browser-ext-install.js +1 -1
  152. package/dist/src/chat-commands/agent-edit.js +4 -7
  153. package/dist/src/chat-commands/builtins/config.js +1 -1
  154. package/dist/src/cli/commands/auth.js +1 -1
  155. package/dist/src/cli/commands/doctor/checks/workspace-status.js +0 -1
  156. package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
  157. package/dist/src/cli/commands/init.js +0 -33
  158. package/dist/src/cli/commands/onboard/model.js +2 -2
  159. package/dist/src/cli/commands/providers.js +1 -1
  160. package/dist/src/cli/templates.d.ts +1 -1
  161. package/dist/src/cli/templates.js +1 -23
  162. package/dist/src/config/index.js +3 -3
  163. package/dist/src/config/loader.js +1 -1
  164. package/dist/src/config/models-json.js +1 -1
  165. package/dist/src/config/paths.d.ts +0 -2
  166. package/dist/src/config/paths.js +1 -3
  167. package/dist/src/config/reload.d.ts +0 -1
  168. package/dist/src/config/reload.js +0 -4
  169. package/dist/src/config/rules.js +0 -5
  170. package/dist/src/config/schema.d.ts +0 -45
  171. package/dist/src/config/schema.js +2 -23
  172. package/dist/src/connectors/connection-recovery-service.js +5 -0
  173. package/dist/src/extensions/lockfile.js +1 -1
  174. package/dist/src/gateway/agents-admin.d.ts +2 -9
  175. package/dist/src/gateway/agents-admin.js +8 -32
  176. package/dist/src/gateway/file-path-classifier.js +1 -1
  177. package/dist/src/gateway/hono/lib/config-payload.js +1 -1
  178. package/dist/src/gateway/hono/routes/agents.js +8 -1
  179. package/dist/src/gateway/hono/routes/connectors.js +1 -1
  180. package/dist/src/gateway/hono/routes/device-push.js +1 -1
  181. package/dist/src/gateway/hono/routes/models.js +1 -1
  182. package/dist/src/gateway/host.d.ts +0 -2
  183. package/dist/src/gateway/host.js +2 -5
  184. package/dist/src/gateway/service.js +11 -11
  185. package/dist/src/home-intelligence/host.js +2 -2
  186. package/dist/src/infra/update-restart.js +1 -1
  187. package/dist/src/notifications/device-store.d.ts +0 -1
  188. package/dist/src/notifications/device-store.js +2 -7
  189. package/dist/src/notifications/service.d.ts +0 -1
  190. package/dist/src/notifications/service.js +13 -82
  191. package/dist/src/session/execution-detail.js +16 -0
  192. package/dist/src/storage/sqlite/notes-repository.js +19 -4
  193. package/dist/src/tui/backends/embedded-backend.js +1 -1
  194. package/dist/src/tui/tui-commands.js +1 -1
  195. package/dist/src/tui/tui-startup-resources.js +1 -1
  196. package/dist/src/tui/tui.js +1 -1
  197. package/dist/src/voice/audio/normalize.js +34 -1
  198. package/dist/src/voice/realtime/persona-context.d.ts +2 -2
  199. package/dist/src/voice/realtime/persona-context.js +19 -33
  200. package/package.json +11 -12
  201. package/dist/gateway/static/root/assets/agents-CuFzMN58.js +0 -70
  202. package/dist/gateway/static/root/assets/gateway-realtime-store-KyhksZSM.js +0 -1
  203. package/dist/gateway/static/root/assets/index-CPi50n0l.css +0 -1
  204. package/dist/gateway/static/root/assets/local-session-drafts-CxXjQ5Du.js +0 -1
  205. package/dist/gateway/static/root/assets/messages-sXePe3LQ.js +0 -3
  206. package/dist/gateway/static/root/assets/settings-advanced-gate-C4y4c2M7.js +0 -1
  207. package/dist/gateway/static/root/assets/settings-page-B6YZFEye.js +0 -1
  208. package/dist/gateway/static/root/assets/skill-reload-api-DUOG2Ig1.js +0 -1
  209. package/dist/src/agent/bootstrap/filter-bootstrap-files.d.ts +0 -3
  210. package/dist/src/agent/bootstrap/filter-bootstrap-files.js +0 -18
  211. package/dist/src/agent/context/workspace-templates/HEARTBEAT.md +0 -26
  212. package/dist/src/agent/context/workspace-templates/IDENTITY.md +0 -30
  213. package/dist/src/agent/service/parse-outbound-session-key.d.ts +0 -8
  214. package/dist/src/agent/service/parse-outbound-session-key.js +0 -44
  215. package/dist/src/heartbeat/active-hours.d.ts +0 -11
  216. package/dist/src/heartbeat/active-hours.js +0 -40
  217. package/dist/src/heartbeat/content-check.d.ts +0 -4
  218. package/dist/src/heartbeat/content-check.js +0 -17
  219. package/dist/src/heartbeat/event-prompt.d.ts +0 -4
  220. package/dist/src/heartbeat/event-prompt.js +0 -11
  221. package/dist/src/heartbeat/index.d.ts +0 -5
  222. package/dist/src/heartbeat/index.js +0 -6
  223. package/dist/src/heartbeat/tokens.d.ts +0 -15
  224. package/dist/src/heartbeat/tokens.js +0 -25
  225. package/dist/src/heartbeat/wake.d.ts +0 -13
  226. package/dist/src/heartbeat/wake.js +0 -46
@@ -1 +0,0 @@
1
- import{Dn as e}from"./index-Bb32g7Ll.js";function t(t){let{children:n,fallback:r}=t,i=r===void 0?null:r;return e()?n:i}export{t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{m as i,r as a}from"./chunk-KS7C4IRE-BMYIfy9x.js";import{t as o}from"./messages-sXePe3LQ.js";import{n as s}from"./locale-store-WMaCMm3_.js";import{ao as c,co as l,do as u,fo as d,io as f,lo as p,mo as m,oo as h,po as g,ro as _,so as v,uo as y}from"./index-Bb32g7Ll.js";var b=n(),x=e(t(),1),S=r(),C=[`overview`,`appearance`,`keyboard-shortcuts`,`system`,`desktop-pet`,`desktop-app`,`agent-defaults`,`gateway`,`runtimes`,`devices`,`heartbeat`,`remote-access`,`shares`],w=(0,x.lazy)(()=>d().then(e=>({default:e.SetupStatusPanel}))),T=(0,x.lazy)(()=>c().then(e=>({default:e.AppearanceSettingsPanel}))),E=(0,x.lazy)(()=>p().then(e=>({default:e.KeyboardShortcutsSettingsPanel}))),D=(0,x.lazy)(()=>m().then(e=>({default:e.SystemSettingsPanel}))),O=(0,x.lazy)(()=>h().then(e=>({default:e.DesktopPetSettings}))),k=(0,x.lazy)(()=>f().then(e=>({default:e.AppManagementSettingsPanel}))),A=(0,x.lazy)(()=>l().then(e=>({default:e.GatewaySettingsPanel}))),j=(0,x.lazy)(()=>u().then(e=>({default:e.RuntimeToolsSettingsPanel}))),M=(0,x.lazy)(()=>y().then(e=>({default:e.RemoteAccessHub}))),N=(0,x.lazy)(()=>g().then(e=>({default:e.SharesSettingsPanel}))),P=(0,x.lazy)(()=>_().then(e=>({default:e.AgentDefaultsSettingsPanel}))),F=(0,x.lazy)(()=>v().then(e=>({default:e.EndpointToolsManagementSettings})));function I(){let e=(0,b.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,S.jsxs)(`div`,{className:`w-full flex-1 px-3 py-8 sm:px-5 xl:px-6`,"aria-busy":!0,children:[(0,S.jsx)(`div`,{className:`h-8 w-48 max-w-full animate-pulse rounded-md bg-surface-hover`}),(0,S.jsx)(`div`,{className:`mt-6 h-36 animate-pulse rounded-xl bg-surface-hover`}),(0,S.jsx)(`div`,{className:`mt-4 h-24 animate-pulse rounded-xl bg-surface-hover`})]}),e[0]=t):t=e[0],t}function L(e){return(0,S.jsx)(x.Suspense,{fallback:(0,S.jsx)(I,{}),children:(0,S.jsx)(e,{})})}function R(){let e=(0,b.c)(27),{section:t}=i(),n=s(z),r,c,l,u,d;if(e[0]!==n||e[1]!==t){d=Symbol.for(`react.early_return_sentinel`);bb0:{let i=o(n);if(!t||!C.includes(t)){let t;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,S.jsx)(a,{to:`/settings/overview`,replace:!0}),e[7]=t):t=e[7],d=t;break bb0}let s=t;if(s===`overview`){let t;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(t=L(w),e[8]=t):t=e[8],d=t;break bb0}let f=i.settingsSections[s];if(s===`appearance`){let t;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(t=L(T),e[9]=t):t=e[9],d=t;break bb0}if(s===`keyboard-shortcuts`){let t;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(t=L(E),e[10]=t):t=e[10],d=t;break bb0}if(s===`system`){let t;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(t=L(D),e[11]=t):t=e[11],d=t;break bb0}if(s===`desktop-pet`){let t;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(t=L(O),e[12]=t):t=e[12],d=t;break bb0}if(s===`desktop-app`){let t;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(t=L(k),e[13]=t):t=e[13],d=t;break bb0}if(s===`agent-defaults`){let t;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(t=L(P),e[14]=t):t=e[14],d=t;break bb0}if(s===`gateway`){let t;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(t=L(A),e[15]=t):t=e[15],d=t;break bb0}if(s===`runtimes`){let t;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(t=L(j),e[16]=t):t=e[16],d=t;break bb0}if(s===`devices`){let t;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(t=L(F),e[17]=t):t=e[17],d=t;break bb0}if(s===`remote-access`){let t;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(t=L(M),e[18]=t):t=e[18],d=t;break bb0}if(s===`shares`){let t;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(t=L(N),e[19]=t):t=e[19],d=t;break bb0}l=`flex w-full flex-col gap-3 px-3 py-8 sm:px-5 xl:px-6`,u=(0,S.jsx)(`h1`,{className:`text-lg font-semibold text-fg`,children:f}),r=`text-sm text-fg-muted`,c=i.settingsPage.comingSoon.replace(`{{title}}`,f)}e[0]=n,e[1]=t,e[2]=r,e[3]=c,e[4]=l,e[5]=u,e[6]=d}else r=e[2],c=e[3],l=e[4],u=e[5],d=e[6];if(d!==Symbol.for(`react.early_return_sentinel`))return d;let f;e[20]!==r||e[21]!==c?(f=(0,S.jsx)(`p`,{className:r,children:c}),e[20]=r,e[21]=c,e[22]=f):f=e[22];let p;return e[23]!==l||e[24]!==u||e[25]!==f?(p=(0,S.jsxs)(`div`,{className:l,children:[u,f]}),e[23]=l,e[24]=u,e[25]=f,e[26]=p):p=e[26],p}function z(e){return e.language}export{R as SettingsPage};
@@ -1 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{i as t,r as n}from"./locale-store-WMaCMm3_.js";import{zi as r}from"./index-Bb32g7Ll.js";var i=e({reloadSkills:()=>a});async function a(){let e=await t(n(`/api/skills/reload`),{method:`POST`});if(!e.ok)throw Error(await r(e))}export{i as n,a as t};
@@ -1,3 +0,0 @@
1
- import type { WorkspaceBootstrapFile } from './types.js';
2
- /** Subagent and cron sessions load only the minimal identity and instruction profile. */
3
- export declare function filterBootstrapFilesForSession(files: WorkspaceBootstrapFile[], conversationId?: string): WorkspaceBootstrapFile[];
@@ -1,18 +0,0 @@
1
- import { DEFAULT_AGENTS_FILENAME, DEFAULT_IDENTITY_FILENAME, DEFAULT_SOUL_FILENAME, DEFAULT_TOOLS_FILENAME } from "../context/workspace.js";
2
- import { isCronConversationId, isSubagentConversationId } from "../../routing/agent-session-key.js";
3
- import { init_session_key } from "../../routing/session-key.js";
4
- //#region src/agent/bootstrap/filter-bootstrap-files.ts
5
- init_session_key();
6
- const MINIMAL_BOOTSTRAP_ALLOWLIST = new Set([
7
- DEFAULT_AGENTS_FILENAME,
8
- DEFAULT_TOOLS_FILENAME,
9
- DEFAULT_SOUL_FILENAME,
10
- DEFAULT_IDENTITY_FILENAME
11
- ]);
12
- /** Subagent and cron sessions load only the minimal identity and instruction profile. */
13
- function filterBootstrapFilesForSession(files, conversationId) {
14
- if (!conversationId || !isSubagentConversationId(conversationId) && !isCronConversationId(conversationId)) return files;
15
- return files.filter((file) => MINIMAL_BOOTSTRAP_ALLOWLIST.has(file.name));
16
- }
17
- //#endregion
18
- export { filterBootstrapFilesForSession };
@@ -1,26 +0,0 @@
1
- ---
2
- title: "HEARTBEAT.md Template"
3
- summary: "Periodic checks template for agents"
4
- read_when:
5
- - Configuring heartbeat behavior
6
- ---
7
-
8
- # HEARTBEAT.md - Periodic Checks
9
-
10
- Edit this file to define what you check during heartbeat polls.
11
-
12
- Keep it small to limit token burn.
13
-
14
- ## Example Checklist
15
-
16
- - [ ] Check email for urgent messages
17
- - [ ] Check calendar for upcoming events (< 2h)
18
- - [ ] Check any notifications/mentions
19
-
20
- ## Current Focus
21
-
22
- _(What should you be tracking right now?)_
23
-
24
- ---
25
-
26
- **Remember:** If nothing needs attention, just reply `HEARTBEAT_OK`.
@@ -1,30 +0,0 @@
1
- ---
2
- title: "IDENTITY.md Template"
3
- summary: "Agent identity record"
4
- read_when:
5
- - Setting up a workspace manually
6
- ---
7
-
8
- # IDENTITY.md - Who Am I?
9
-
10
- _Fill this in during your first conversation. Make it yours._
11
-
12
- - **Name:**
13
- _(pick something you like)_
14
- - **Creature:**
15
- _(AI? robot? familiar? ghost in the machine? something weirder?)_
16
- - **Vibe:**
17
- _(how do you come across? sharp? warm? chaotic? calm?)_
18
- - **Emoji:**
19
- _(your signature — pick one that feels right)_
20
- - **Avatar:**
21
- _(workspace-relative path, http(s) URL, or data URI)_
22
-
23
- ---
24
-
25
- This isn't just metadata. It's the start of figuring out who you are.
26
-
27
- Notes:
28
-
29
- - Save this file at the workspace root as `IDENTITY.md`.
30
- - For avatars, use a workspace-relative path like `avatars/xopc.png`.
@@ -1,8 +0,0 @@
1
- import type { Config } from '../../config/schema.js';
2
- /**
3
- * Map a session key to outbound channel routing (heartbeat/cron/virtual keys included).
4
- */
5
- export declare function parseOutboundConversationId(conversationId: string, config: Config | undefined): {
6
- channel: string;
7
- chatId: string;
8
- };
@@ -1,44 +0,0 @@
1
- import { getSessionMetadata } from "../../storage/sqlite/session-read-repository.js";
2
- import { init_sqlite } from "../../storage/sqlite/index.js";
3
- import { INTERNAL_OUTBOUND_DROP_CHANNEL } from "../../channels/internal-outbound.js";
4
- //#region src/agent/service/parse-outbound-session-key.ts
5
- init_sqlite();
6
- /**
7
- * Map a session key to outbound channel routing (heartbeat/cron/virtual keys included).
8
- */
9
- function parseOutboundConversationId(conversationId, config) {
10
- const metadata = getSessionMetadata(conversationId);
11
- if (!metadata) throw new Error(`Conversation not found: ${conversationId}`);
12
- if (metadata.sessionType === "heartbeat") {
13
- const hb = config?.gateway?.heartbeat;
14
- const target = hb?.target?.trim();
15
- const targetChatId = hb?.targetChatId?.trim();
16
- if (target && targetChatId) return {
17
- channel: target,
18
- chatId: targetChatId
19
- };
20
- return {
21
- channel: INTERNAL_OUTBOUND_DROP_CHANNEL,
22
- chatId: conversationId
23
- };
24
- }
25
- const routing = metadata?.routing;
26
- if (routing?.source && routing.peerId) return {
27
- channel: routing.source,
28
- chatId: routing.peerId
29
- };
30
- if (metadata?.sourceChannel && metadata.sourceChatId) return {
31
- channel: metadata.sourceChannel,
32
- chatId: metadata.sourceChatId
33
- };
34
- if (metadata.sessionType === "cron") return {
35
- channel: INTERNAL_OUTBOUND_DROP_CHANNEL,
36
- chatId: conversationId
37
- };
38
- return {
39
- channel: "cli",
40
- chatId: "main"
41
- };
42
- }
43
- //#endregion
44
- export { parseOutboundConversationId };
@@ -1,11 +0,0 @@
1
- export interface ActiveHoursWindow {
2
- start: string;
3
- end: string;
4
- /** IANA zone (e.g. Asia/Shanghai) or omit / `local` for host local time */
5
- timezone?: string;
6
- }
7
- /**
8
- * Whether `now` falls inside [start, end) in the configured timezone (or local).
9
- * Supports windows that cross midnight when end <= start in clock terms.
10
- */
11
- export declare function isWithinActiveHours(activeHours: ActiveHoursWindow, now?: Date): boolean;
@@ -1,40 +0,0 @@
1
- //#region src/heartbeat/active-hours.ts
2
- function parseHm(s) {
3
- const m = /^(\d{1,2}):(\d{2})$/.exec(s.trim());
4
- if (!m) return null;
5
- const h = Number(m[1]);
6
- const min = Number(m[2]);
7
- if (h < 0 || h > 23 || min < 0 || min > 59) return null;
8
- return {
9
- h,
10
- m: min
11
- };
12
- }
13
- function currentMinuteInZone(now, timezone) {
14
- if (!timezone || timezone === "local") return now.getHours() * 60 + now.getMinutes();
15
- const parts = new Intl.DateTimeFormat("en-GB", {
16
- timeZone: timezone,
17
- hour: "2-digit",
18
- minute: "2-digit",
19
- hour12: false
20
- }).formatToParts(now);
21
- const hour = Number(parts.find((p) => p.type === "hour")?.value ?? "0");
22
- const minute = Number(parts.find((p) => p.type === "minute")?.value ?? "0");
23
- return hour * 60 + minute;
24
- }
25
- /**
26
- * Whether `now` falls inside [start, end) in the configured timezone (or local).
27
- * Supports windows that cross midnight when end <= start in clock terms.
28
- */
29
- function isWithinActiveHours(activeHours, now = /* @__PURE__ */ new Date()) {
30
- const startP = parseHm(activeHours.start);
31
- const endP = parseHm(activeHours.end);
32
- if (!startP || !endP) return true;
33
- const currentMin = currentMinuteInZone(now, activeHours.timezone);
34
- const startMin = startP.h * 60 + startP.m;
35
- const endMin = endP.h * 60 + endP.m;
36
- if (endMin > startMin) return currentMin >= startMin && currentMin < endMin;
37
- return currentMin >= startMin || currentMin < endMin;
38
- }
39
- //#endregion
40
- export { isWithinActiveHours };
@@ -1,4 +0,0 @@
1
- /**
2
- * True when HEARTBEAT.md has no actionable content (only headings, blanks, empty list items).
3
- */
4
- export declare function isHeartbeatContentEmpty(content: string): boolean;
@@ -1,17 +0,0 @@
1
- //#region src/heartbeat/content-check.ts
2
- /**
3
- * True when HEARTBEAT.md has no actionable content (only headings, blanks, empty list items).
4
- */
5
- function isHeartbeatContentEmpty(content) {
6
- const lines = content.split("\n");
7
- for (const line of lines) {
8
- const trimmed = line.trim();
9
- if (!trimmed) continue;
10
- if (/^#+(\s|$)/.test(trimmed)) continue;
11
- if (/^[-*+]\s*(\[[\sXx]?\]\s*)?$/.test(trimmed)) continue;
12
- return false;
13
- }
14
- return true;
15
- }
16
- //#endregion
17
- export { isHeartbeatContentEmpty };
@@ -1,4 +0,0 @@
1
- /**
2
- * Append cron-style trigger lines to the heartbeat user prompt.
3
- */
4
- export declare function appendCronEventLines(basePrompt: string, reasons: string[]): string;
@@ -1,11 +0,0 @@
1
- //#region src/heartbeat/event-prompt.ts
2
- /**
3
- * Append cron-style trigger lines to the heartbeat user prompt.
4
- */
5
- function appendCronEventLines(basePrompt, reasons) {
6
- const cronReasons = reasons.filter((r) => r.startsWith("cron:"));
7
- if (cronReasons.length === 0) return basePrompt;
8
- return `${basePrompt}\n\nTriggered cron events:\n${cronReasons.join("\n")}`;
9
- }
10
- //#endregion
11
- export { appendCronEventLines };
@@ -1,5 +0,0 @@
1
- export * from './tokens.js';
2
- export * from './wake.js';
3
- export * from './content-check.js';
4
- export * from './active-hours.js';
5
- export * from './event-prompt.js';
@@ -1,6 +0,0 @@
1
- import { DEFAULT_ACK_MAX_CHARS, HEARTBEAT_OK, NO_REPLY, shouldSilence, stripHeartbeatToken } from "./tokens.js";
2
- import { isWithinActiveHours } from "./active-hours.js";
3
- import { isHeartbeatContentEmpty } from "./content-check.js";
4
- import { appendCronEventLines } from "./event-prompt.js";
5
- import { createHeartbeatWake } from "./wake.js";
6
- export { DEFAULT_ACK_MAX_CHARS, HEARTBEAT_OK, NO_REPLY, appendCronEventLines, createHeartbeatWake, isHeartbeatContentEmpty, isWithinActiveHours, shouldSilence, stripHeartbeatToken };
@@ -1,15 +0,0 @@
1
- export declare const HEARTBEAT_OK = "HEARTBEAT_OK";
2
- export declare const NO_REPLY = "NO_REPLY";
3
- export declare const DEFAULT_ACK_MAX_CHARS = 300;
4
- /**
5
- * Strip HEARTBEAT_OK token from model text.
6
- * Supports plain text, Markdown bold, inline code, trailing punctuation.
7
- */
8
- export declare function stripHeartbeatToken(text: string): {
9
- stripped: string;
10
- hadToken: boolean;
11
- };
12
- /**
13
- * Whether the reply should not be sent to the user: HEARTBEAT_OK present and little else.
14
- */
15
- export declare function shouldSilence(text: string, ackMaxChars?: number): boolean;
@@ -1,25 +0,0 @@
1
- //#region src/heartbeat/tokens.ts
2
- const HEARTBEAT_OK = "HEARTBEAT_OK";
3
- const NO_REPLY = "NO_REPLY";
4
- const DEFAULT_ACK_MAX_CHARS = 300;
5
- /**
6
- * Strip HEARTBEAT_OK token from model text.
7
- * Supports plain text, Markdown bold, inline code, trailing punctuation.
8
- */
9
- function stripHeartbeatToken(text) {
10
- const hadToken = text.includes(HEARTBEAT_OK);
11
- return {
12
- stripped: text.replace(/<[^>]*>/g, " ").replace(/\*\*HEARTBEAT_OK\*\*/g, "").replace(/`HEARTBEAT_OK`/g, "").replace(/HEARTBEAT_OK\.?/g, "").trim(),
13
- hadToken
14
- };
15
- }
16
- /**
17
- * Whether the reply should not be sent to the user: HEARTBEAT_OK present and little else.
18
- */
19
- function shouldSilence(text, ackMaxChars = 300) {
20
- const { stripped, hadToken } = stripHeartbeatToken(text);
21
- if (!hadToken) return false;
22
- return stripped.length <= ackMaxChars;
23
- }
24
- //#endregion
25
- export { DEFAULT_ACK_MAX_CHARS, HEARTBEAT_OK, NO_REPLY, shouldSilence, stripHeartbeatToken };
@@ -1,13 +0,0 @@
1
- export interface WakeRequest {
2
- reason?: string;
3
- agentId?: string;
4
- conversationId?: string;
5
- coalesceMs?: number;
6
- }
7
- /**
8
- * Coalesces wake requests within coalesceMs and serializes handler execution.
9
- */
10
- export declare function createHeartbeatWake(handler: (reasons: string[]) => Promise<void>): {
11
- request(opts?: WakeRequest): void;
12
- stop(): void;
13
- };
@@ -1,46 +0,0 @@
1
- //#region src/heartbeat/wake.ts
2
- const DEFAULT_COALESCE_MS = 250;
3
- const RETRY_MS = 1e3;
4
- /**
5
- * Coalesces wake requests within coalesceMs and serializes handler execution.
6
- */
7
- function createHeartbeatWake(handler) {
8
- let running = false;
9
- let timer;
10
- let pendingReasons = [];
11
- function schedule(delayMs) {
12
- if (timer) clearTimeout(timer);
13
- timer = setTimeout(async () => {
14
- timer = void 0;
15
- if (running) {
16
- schedule(RETRY_MS);
17
- return;
18
- }
19
- running = true;
20
- const reasons = [...pendingReasons];
21
- pendingReasons = [];
22
- try {
23
- await handler(reasons);
24
- } finally {
25
- running = false;
26
- if (pendingReasons.length > 0) schedule(DEFAULT_COALESCE_MS);
27
- }
28
- }, delayMs);
29
- timer.unref?.();
30
- }
31
- return {
32
- request(opts) {
33
- pendingReasons.push(opts?.reason ?? "interval");
34
- schedule(opts?.coalesceMs ?? DEFAULT_COALESCE_MS);
35
- },
36
- stop() {
37
- if (timer) {
38
- clearTimeout(timer);
39
- timer = void 0;
40
- }
41
- pendingReasons = [];
42
- }
43
- };
44
- }
45
- //#endregion
46
- export { createHeartbeatWake };