@xopcai/xopc 0.0.146 → 0.0.148

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 (377) hide show
  1. package/README.md +2 -2
  2. package/dist/browser-ext/manifest.json +1 -1
  3. package/dist/extensions/demo-memory/src/index.js +6 -4
  4. package/dist/extensions/demo-memory/src/index.js.map +1 -1
  5. package/dist/extensions/telegram/xopc.extension.json +1 -1
  6. package/dist/gateway/static/root/assets/Combination-14nmIgxH.js +41 -0
  7. package/dist/gateway/static/root/assets/activity-store-B5h0UGWn.js +1 -0
  8. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-gBVDdd-Q.js → agent-avatar-dicebear-Dy5VvLUq.js} +1 -1
  9. package/dist/gateway/static/root/assets/agents-Ci1U96gj.js +2 -0
  10. package/dist/gateway/static/root/assets/api-B3J2AmQW.js +1 -0
  11. package/dist/gateway/static/root/assets/{app-management-settings-panel-Dd5dmRWY.js → app-management-settings-panel-BbSLDubO.js} +1 -1
  12. package/dist/gateway/static/root/assets/{appearance-settings-D89pY61C.js → appearance-settings-D9wK0UKA.js} +1 -1
  13. package/dist/gateway/static/root/assets/apps-page-Z6cQTPS6.js +1 -0
  14. package/dist/gateway/static/root/assets/{archive-plugin-BZj1tk3p.js → archive-plugin-DaDK-FYa.js} +1 -1
  15. package/dist/gateway/static/root/assets/{attachment-load-18eo6l3m.js → attachment-load-CKiBdU_s.js} +1 -1
  16. package/dist/gateway/static/root/assets/{automation-suggestion-card-F1g3MckR.js → automation-suggestion-card-8Qbnxq-p.js} +1 -1
  17. package/dist/gateway/static/root/assets/automations-page-D7HmeFdr.js +6 -0
  18. package/dist/gateway/static/root/assets/{binary-plugins-jOYMquLP.js → binary-plugins-ByZbwN2A.js} +1 -1
  19. package/dist/gateway/static/root/assets/{block-editor-CD77nXJU.js → block-editor-DGaI2ucU.js} +31 -31
  20. package/dist/gateway/static/root/assets/browser-settings-page-BZ25v96s.js +8 -0
  21. package/dist/gateway/static/root/assets/capability-presets-api-DaPf3b5d.js +1 -0
  22. package/dist/gateway/static/root/assets/capability-presets-settings-panel-C0iHFbY9.js +2 -0
  23. package/dist/gateway/static/root/assets/{channel-recipient-api-fTlTnWB4.js → channel-recipient-api-DrbkoYyF.js} +1 -1
  24. package/dist/gateway/static/root/assets/channels-settings-Bc7FVeqs.js +1 -0
  25. package/dist/gateway/static/root/assets/channels-status-swr-P3J5voxb.js +1 -0
  26. package/dist/gateway/static/root/assets/{connector-logo-g9f07qO6.js → connector-logo-CiHea96v.js} +1 -1
  27. package/dist/gateway/static/root/assets/connectors-page-oi41mE3U.js +2 -0
  28. package/dist/gateway/static/root/assets/{desktop-pet-DwPVWi3D.js → desktop-pet-DzdsBRdD.js} +1 -1
  29. package/dist/gateway/static/root/assets/{desktop-pet-settings-Dm1N7RRX.js → desktop-pet-settings-B-URlTdB.js} +1 -1
  30. package/dist/gateway/static/root/assets/{directory-picker-path-field-hZghTKie.js → directory-picker-path-field-g_N_ROC-.js} +1 -1
  31. package/dist/gateway/static/root/assets/dist-C230izr8.js +1 -0
  32. package/dist/gateway/static/root/assets/dist-CxGUk8J-.js +1 -0
  33. package/dist/gateway/static/root/assets/dreaming-settings-DnEe0Mxg.js +3 -0
  34. package/dist/gateway/static/root/assets/extension-debug-page-DPkoOQED.js +1 -0
  35. package/dist/gateway/static/root/assets/{extension-page-otKJCjKP.js → extension-page-Cf_gDelx.js} +1 -1
  36. package/dist/gateway/static/root/assets/{extension-settings-page-ifHzMfT-.js → extension-settings-page-YlXpJV9k.js} +1 -1
  37. package/dist/gateway/static/root/assets/{gateway-config-api-BQX5GGl2.js → gateway-config-api-BxHgXB-I.js} +1 -1
  38. package/dist/gateway/static/root/assets/{gateway-settings-BfXo0j0O.js → gateway-settings-CGphLe9T.js} +1 -1
  39. package/dist/gateway/static/root/assets/{gateway-startup-retry-DtoLihQE.js → gateway-startup-retry-ChI88pp7.js} +1 -1
  40. package/dist/gateway/static/root/assets/{goal-create-dialog-C_Qw_QgW.js → goal-create-dialog-ClzciTH5.js} +1 -1
  41. package/dist/gateway/static/root/assets/goal-detail-page-CyaLkWhd.js +4 -0
  42. package/dist/gateway/static/root/assets/{goals-config-api-DQJ5mBXB.js → goals-config-api-NoJKU8UZ.js} +1 -1
  43. package/dist/gateway/static/root/assets/goals-page-C-srWhsP.js +2 -0
  44. package/dist/gateway/static/root/assets/{goals-settings-CQX8zWKe.js → goals-settings-kQ1pBOM9.js} +1 -1
  45. package/dist/gateway/static/root/assets/{heartbeat-settings-yy_Pt_24.js → heartbeat-settings-C6jSQCXQ.js} +1 -1
  46. package/dist/gateway/static/root/assets/index-DktduA8Z.css +1 -0
  47. package/dist/gateway/static/root/assets/index-twNrYC3D.js +259 -0
  48. package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-CIQ6wLqH.js +1 -0
  49. package/dist/gateway/static/root/assets/local-app-workbench-page-DcaqgchY.js +2 -0
  50. package/dist/gateway/static/root/assets/local-apps-page-BO6odwNn.js +1 -0
  51. package/dist/gateway/static/root/assets/{locale-store-CiM-D9jA.js → locale-store-BP67jtYG.js} +1 -1
  52. package/dist/gateway/static/root/assets/logs-page-B_13EkK7.js +7 -0
  53. package/dist/gateway/static/root/assets/{markdown-split-BYasrWPk.js → markdown-split-DbJZwtmM.js} +1 -1
  54. package/dist/gateway/static/root/assets/{media-plugins--cJpmHc2.js → media-plugins-B0WH561o.js} +1 -1
  55. package/dist/gateway/static/root/assets/messages-BIsSVgW7.js +5 -0
  56. package/dist/gateway/static/root/assets/models-hub-panel-DkCTjUj_.js +2 -0
  57. package/dist/gateway/static/root/assets/{notes-page-Digm3EgB.js → notes-page-B72S7M1Z.js} +1 -1
  58. package/dist/gateway/static/root/assets/notes-workbench-CfWQczho.js +4 -0
  59. package/dist/gateway/static/root/assets/{page-tabs-CGVMJEW0.js → page-tabs-LjSEtOvG.js} +1 -1
  60. package/dist/gateway/static/root/assets/{preview-open-alternatives-BBAkU4xW.js → preview-open-alternatives-Cn8Jp9jw.js} +1 -1
  61. package/dist/gateway/static/root/assets/project-detail-page-BWOTQX4M.js +1 -0
  62. package/dist/gateway/static/root/assets/projects-page-C81dHQ5i.js +1 -0
  63. package/dist/gateway/static/root/assets/remote-access-hub-U1FQUBtJ.js +1 -0
  64. package/dist/gateway/static/root/assets/{save-bar-controls-D4B469dh.js → save-bar-controls-BDUPII5R.js} +1 -1
  65. package/dist/gateway/static/root/assets/{schedule-field-Vy4OjH0i.js → schedule-field-B1NY9MNs.js} +1 -1
  66. package/dist/gateway/static/root/assets/{schema-form-CPYzgmby.js → schema-form-CnsFMun1.js} +1 -1
  67. package/dist/gateway/static/root/assets/sessions-page-t6DzYLpM.js +1 -0
  68. package/dist/gateway/static/root/assets/settings-advanced-gate-DggKrWED.js +1 -0
  69. package/dist/gateway/static/root/assets/{settings-collapsible-section-BB5y9vwh.js → settings-collapsible-section-D9jJ6KlR.js} +1 -1
  70. package/dist/gateway/static/root/assets/{settings-form-section-BfzJkVHd.js → settings-form-section-36IjMuUY.js} +1 -1
  71. package/dist/gateway/static/root/assets/{settings-loading-skeleton-DM8iH25s.js → settings-loading-skeleton-DyYMmawg.js} +1 -1
  72. package/dist/gateway/static/root/assets/{settings-page-layout-DjbdpK2j.js → settings-page-layout-BAP5LguT.js} +1 -1
  73. package/dist/gateway/static/root/assets/{settings-page-h5Alz_fA.js → settings-page-yv4TeHfF.js} +1 -1
  74. package/dist/gateway/static/root/assets/setup-status-panel-DncjFopP.js +1 -0
  75. package/dist/gateway/static/root/assets/{share-preview-page-DxozU_zz.js → share-preview-page-BBxZ9lX5.js} +1 -1
  76. package/dist/gateway/static/root/assets/shares-settings-Brx1LsY9.js +1 -0
  77. package/dist/gateway/static/root/assets/skill-reload-api-C_sLcSxh.js +1 -0
  78. package/dist/gateway/static/root/assets/skills-page-BPzqM78D.js +2 -0
  79. package/dist/gateway/static/root/assets/{system-settings-panel-DNi9Ofuj.js → system-settings-panel-B3ceUo4i.js} +1 -1
  80. package/dist/gateway/static/root/assets/{theme-store-C9Dxcppm.js → theme-store-_efiWyB8.js} +1 -1
  81. package/dist/gateway/static/root/assets/{typed-models-lib-B6Nw3iFM.js → typed-models-lib-Dp1PvxGZ.js} +1 -1
  82. package/dist/gateway/static/root/assets/{use-channel-catalog-DE9cpn4G.js → use-channel-catalog-XHelnCa_.js} +1 -1
  83. package/dist/gateway/static/root/assets/user-context-page-Dg_4sJJz.js +1 -0
  84. package/dist/gateway/static/root/assets/{user-profile-fields-editor-DVBShNYF.js → user-profile-fields-editor-nOOg0uBi.js} +1 -1
  85. package/dist/gateway/static/root/assets/{user-profile-settings-panel-CC0sf3vS.js → user-profile-settings-panel-9fBPCoA9.js} +1 -1
  86. package/dist/gateway/static/root/assets/{utils-DnsuE4YP.js → utils-3AORlPIm.js} +1 -1
  87. package/dist/gateway/static/root/assets/voice-api-key-field-Bc-xxEHw.js +1 -0
  88. package/dist/gateway/static/root/assets/work-discovery-page-CCMe2E98.js +1 -0
  89. package/dist/gateway/static/root/assets/work-item-detail-page-CnVze8sW.js +1 -0
  90. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-DXc_pbVG.js → workflow-run-setup-panel-DUKlCVcY.js} +2 -2
  91. package/dist/gateway/static/root/assets/workflows-page-1Hh-__Ur.js +11 -0
  92. package/dist/gateway/static/root/index.html +10 -9
  93. package/dist/package.js +1 -1
  94. package/dist/src/activity/types.d.ts +1 -1
  95. package/dist/src/agent/agent-instance-gateway.d.ts +1 -1
  96. package/dist/src/agent/agent-manager.d.ts +1 -1
  97. package/dist/src/agent/agent-manager.js +5 -4
  98. package/dist/src/agent/agent-manager.js.map +1 -1
  99. package/dist/src/agent/background-review/coordinator.js +0 -1
  100. package/dist/src/agent/background-review/coordinator.js.map +1 -1
  101. package/dist/src/agent/background-review/settings.d.ts +1 -1
  102. package/dist/src/agent/background-review/settings.js +10 -17
  103. package/dist/src/agent/background-review/settings.js.map +1 -1
  104. package/dist/src/agent/bootstrap/filter-bootstrap-files.d.ts +1 -1
  105. package/dist/src/agent/bootstrap/filter-bootstrap-files.js +1 -1
  106. package/dist/src/agent/bootstrap/filter-bootstrap-files.js.map +1 -1
  107. package/dist/src/agent/bootstrap/load-bootstrap-files.js +2 -3
  108. package/dist/src/agent/bootstrap/load-bootstrap-files.js.map +1 -1
  109. package/dist/src/agent/code-intelligence/binary.js +1 -1
  110. package/dist/src/agent/context/project-context.d.ts +14 -0
  111. package/dist/src/agent/context/project-context.js +23 -1
  112. package/dist/src/agent/context/project-context.js.map +1 -1
  113. package/dist/src/agent/context/workspace-templates/AGENTS.md +1 -1
  114. package/dist/src/agent/context/workspace.d.ts +1 -2
  115. package/dist/src/agent/context/workspace.js +2 -4
  116. package/dist/src/agent/context/workspace.js.map +1 -1
  117. package/dist/src/agent/embedded/run-for-session.js +1 -2
  118. package/dist/src/agent/embedded/run-for-session.js.map +1 -1
  119. package/dist/src/agent/embedded/run-turn.js +6 -1
  120. package/dist/src/agent/embedded/run-turn.js.map +1 -1
  121. package/dist/src/agent/embedded/types.d.ts +17 -0
  122. package/dist/src/agent/memory/builtin-memory-store.d.ts +2 -2
  123. package/dist/src/agent/memory/builtin-memory-store.js +2 -2
  124. package/dist/src/agent/memory/builtin-memory-store.js.map +1 -1
  125. package/dist/src/agent/memory/builtin-provider.d.ts +1 -3
  126. package/dist/src/agent/memory/builtin-provider.js +21 -48
  127. package/dist/src/agent/memory/builtin-provider.js.map +1 -1
  128. package/dist/src/agent/memory/context/planner.js +48 -9
  129. package/dist/src/agent/memory/context/planner.js.map +1 -1
  130. package/dist/src/agent/memory/context/types.d.ts +7 -1
  131. package/dist/src/agent/memory/context-fence.js +1 -1
  132. package/dist/src/agent/memory/context-fence.js.map +1 -1
  133. package/dist/src/agent/memory/create-memory-manager.js +2 -9
  134. package/dist/src/agent/memory/create-memory-manager.js.map +1 -1
  135. package/dist/src/agent/memory/dreaming/config.js +4 -9
  136. package/dist/src/agent/memory/dreaming/config.js.map +1 -1
  137. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js +2 -2
  138. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js.map +1 -1
  139. package/dist/src/agent/memory/dreaming/scope.d.ts +2 -3
  140. package/dist/src/agent/memory/dreaming/scope.js +8 -8
  141. package/dist/src/agent/memory/dreaming/scope.js.map +1 -1
  142. package/dist/src/agent/memory/manager.d.ts +1 -5
  143. package/dist/src/agent/memory/manager.js +2 -23
  144. package/dist/src/agent/memory/manager.js.map +1 -1
  145. package/dist/src/agent/memory/memory-config.d.ts +3 -3
  146. package/dist/src/agent/memory/memory-config.js +9 -14
  147. package/dist/src/agent/memory/memory-config.js.map +1 -1
  148. package/dist/src/agent/memory/types.d.ts +9 -5
  149. package/dist/src/agent/memory/understanding/service.js +21 -8
  150. package/dist/src/agent/memory/understanding/service.js.map +1 -1
  151. package/dist/src/agent/memory/understanding/types.d.ts +5 -0
  152. package/dist/src/agent/memory/user-context-coordinator.d.ts +1 -1
  153. package/dist/src/agent/memory/user-context-coordinator.js +6 -2
  154. package/dist/src/agent/memory/user-context-coordinator.js.map +1 -1
  155. package/dist/src/agent/orchestration/agent-orchestrator.js +2 -2
  156. package/dist/src/agent/orchestration/agent-orchestrator.js.map +1 -1
  157. package/dist/src/agent/prompt/memory/index.d.ts +1 -2
  158. package/dist/src/agent/prompt/memory/index.js +6 -7
  159. package/dist/src/agent/prompt/memory/index.js.map +1 -1
  160. package/dist/src/agent/prompt/sections/tooling.js +1 -1
  161. package/dist/src/agent/prompt/sections/tooling.js.map +1 -1
  162. package/dist/src/agent/service/direct-turn-helpers.js +13 -2
  163. package/dist/src/agent/service/direct-turn-helpers.js.map +1 -1
  164. package/dist/src/agent/tools/curated-memory-tool.js +4 -4
  165. package/dist/src/agent/tools/curated-memory-tool.js.map +1 -1
  166. package/dist/src/agent/tools/factory.d.ts +1 -1
  167. package/dist/src/agent/tools/factory.js +2 -2
  168. package/dist/src/agent/tools/factory.js.map +1 -1
  169. package/dist/src/agent/tools/memory-tool.js +1 -1
  170. package/dist/src/agent/tools/memory-tool.js.map +1 -1
  171. package/dist/src/agent/workflow/workflow-child-tools.js +2 -3
  172. package/dist/src/agent/workflow/workflow-child-tools.js.map +1 -1
  173. package/dist/src/agent/workspace-runtime/registry.d.ts +5 -5
  174. package/dist/src/agent/workspace-runtime/registry.js +6 -11
  175. package/dist/src/agent/workspace-runtime/registry.js.map +1 -1
  176. package/dist/src/agent-manifest/index.js +2 -2
  177. package/dist/src/agent-manifest/prompt.js +1 -7
  178. package/dist/src/agent-manifest/prompt.js.map +1 -1
  179. package/dist/src/agent-manifest/schema.d.ts +0 -598
  180. package/dist/src/agent-manifest/schema.js +2 -143
  181. package/dist/src/agent-manifest/schema.js.map +1 -1
  182. package/dist/src/agent-manifest/validator.js +0 -12
  183. package/dist/src/agent-manifest/validator.js.map +1 -1
  184. package/dist/src/agent-runtime/memory-runtime.d.ts +2 -2
  185. package/dist/src/agent-runtime/memory-runtime.js +8 -7
  186. package/dist/src/agent-runtime/memory-runtime.js.map +1 -1
  187. package/dist/src/agent-runtime/runtime-profile.d.ts +2 -0
  188. package/dist/src/agent-runtime/runtime-profile.js +1 -1
  189. package/dist/src/agent-runtime/runtime-profile.js.map +1 -1
  190. package/dist/src/chat-commands/agent-edit.js +1 -2
  191. package/dist/src/chat-commands/agent-edit.js.map +1 -1
  192. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  193. package/dist/src/cli/commands/init.js +0 -22
  194. package/dist/src/cli/commands/init.js.map +1 -1
  195. package/dist/src/cli/templates.d.ts +1 -1
  196. package/dist/src/cli/templates.js +1 -16
  197. package/dist/src/cli/templates.js.map +1 -1
  198. package/dist/src/commands/agents.config.js +0 -10
  199. package/dist/src/commands/agents.config.js.map +1 -1
  200. package/dist/src/config/agent-profile.js +1 -1
  201. package/dist/src/config/index.js +2 -2
  202. package/dist/src/config/paths.d.ts +0 -1
  203. package/dist/src/config/paths.js +1 -2
  204. package/dist/src/config/paths.js.map +1 -1
  205. package/dist/src/config/schema.d.ts +118 -532
  206. package/dist/src/config/schema.js +32 -26
  207. package/dist/src/config/schema.js.map +1 -1
  208. package/dist/src/extensions/loader.js +2 -1
  209. package/dist/src/extensions/loader.js.map +1 -1
  210. package/dist/src/gateway/agents-admin.d.ts +0 -2
  211. package/dist/src/gateway/agents-admin.js +1 -7
  212. package/dist/src/gateway/agents-admin.js.map +1 -1
  213. package/dist/src/gateway/capability-presets-admin.d.ts +0 -2
  214. package/dist/src/gateway/capability-presets-admin.js.map +1 -1
  215. package/dist/src/gateway/chat-stream/mapper.js +26 -0
  216. package/dist/src/gateway/chat-stream/mapper.js.map +1 -1
  217. package/dist/src/gateway/chat-stream/protocol.d.ts +16 -1
  218. package/dist/src/gateway/dreaming-automation-reconciler.d.ts +0 -1
  219. package/dist/src/gateway/dreaming-automation-reconciler.js +41 -63
  220. package/dist/src/gateway/dreaming-automation-reconciler.js.map +1 -1
  221. package/dist/src/gateway/hono/app.js +3 -1
  222. package/dist/src/gateway/hono/app.js.map +1 -1
  223. package/dist/src/gateway/hono/lib/config-payload.d.ts +0 -130
  224. package/dist/src/gateway/hono/lib/config-payload.js +0 -1
  225. package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
  226. package/dist/src/gateway/hono/routes/agents.js +6 -12
  227. package/dist/src/gateway/hono/routes/agents.js.map +1 -1
  228. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +6 -0
  229. package/dist/src/gateway/hono/routes/auth-registry-extensions.js.map +1 -1
  230. package/dist/src/gateway/hono/routes/capability-presets.js +2 -2
  231. package/dist/src/gateway/hono/routes/capability-presets.js.map +1 -1
  232. package/dist/src/gateway/hono/routes/dreaming.js +9 -20
  233. package/dist/src/gateway/hono/routes/dreaming.js.map +1 -1
  234. package/dist/src/gateway/hono/routes/index.js +4 -0
  235. package/dist/src/gateway/hono/routes/index.js.map +1 -1
  236. package/dist/src/gateway/hono/routes/local-apps.d.ts +5 -0
  237. package/dist/src/gateway/hono/routes/local-apps.js +99 -0
  238. package/dist/src/gateway/hono/routes/local-apps.js.map +1 -0
  239. package/dist/src/gateway/hono/routes/memory.js +48 -65
  240. package/dist/src/gateway/hono/routes/memory.js.map +1 -1
  241. package/dist/src/gateway/hono/routes/projects.js +2 -2
  242. package/dist/src/gateway/hono/routes/projects.js.map +1 -1
  243. package/dist/src/gateway/hono/routes/work-discovery.d.ts +3 -0
  244. package/dist/src/gateway/hono/routes/work-discovery.js +150 -0
  245. package/dist/src/gateway/hono/routes/work-discovery.js.map +1 -0
  246. package/dist/src/gateway/hono/routes/you.d.ts +3 -0
  247. package/dist/src/gateway/hono/routes/you.js +358 -91
  248. package/dist/src/gateway/hono/routes/you.js.map +1 -1
  249. package/dist/src/gateway/service.d.ts +3 -0
  250. package/dist/src/gateway/service.js +12 -0
  251. package/dist/src/gateway/service.js.map +1 -1
  252. package/dist/src/knowledge/connected-knowledge-pipeline.js +9 -5
  253. package/dist/src/knowledge/connected-knowledge-pipeline.js.map +1 -1
  254. package/dist/src/local-apps/acceptance.d.ts +30 -0
  255. package/dist/src/local-apps/acceptance.js +93 -0
  256. package/dist/src/local-apps/acceptance.js.map +1 -0
  257. package/dist/src/local-apps/index.d.ts +5 -0
  258. package/dist/src/local-apps/index.js +4 -0
  259. package/dist/src/local-apps/preview-runtime-bridge.d.ts +4 -0
  260. package/dist/src/local-apps/preview-runtime-bridge.js +171 -0
  261. package/dist/src/local-apps/preview-runtime-bridge.js.map +1 -0
  262. package/dist/src/local-apps/runtime-entry.d.ts +8 -0
  263. package/dist/src/local-apps/runtime-entry.js +25 -0
  264. package/dist/src/local-apps/runtime-entry.js.map +1 -0
  265. package/dist/src/local-apps/scaffold.d.ts +8 -0
  266. package/dist/src/local-apps/scaffold.js +122 -0
  267. package/dist/src/local-apps/scaffold.js.map +1 -0
  268. package/dist/src/local-apps/service.d.ts +37 -0
  269. package/dist/src/local-apps/service.js +553 -0
  270. package/dist/src/local-apps/service.js.map +1 -0
  271. package/dist/src/local-apps/store.d.ts +44 -0
  272. package/dist/src/local-apps/store.js +195 -0
  273. package/dist/src/local-apps/store.js.map +1 -0
  274. package/dist/src/local-apps/types.d.ts +105 -0
  275. package/dist/src/local-apps/types.js +1 -0
  276. package/dist/src/storage/sqlite/index.d.ts +3 -2
  277. package/dist/src/storage/sqlite/index.js +4 -3
  278. package/dist/src/storage/sqlite/memory-index-repository.d.ts +2 -3
  279. package/dist/src/storage/sqlite/memory-index-repository.js +16 -20
  280. package/dist/src/storage/sqlite/memory-index-repository.js.map +1 -1
  281. package/dist/src/storage/sqlite/memory-records-repository.d.ts +18 -10
  282. package/dist/src/storage/sqlite/memory-records-repository.js +79 -34
  283. package/dist/src/storage/sqlite/memory-records-repository.js.map +1 -1
  284. package/dist/src/storage/sqlite/memory-reference-consent-repository.d.ts +27 -0
  285. package/dist/src/storage/sqlite/memory-reference-consent-repository.js +109 -0
  286. package/dist/src/storage/sqlite/memory-reference-consent-repository.js.map +1 -0
  287. package/dist/src/storage/sqlite/migrations/038_user_owned_memory.sql +68 -0
  288. package/dist/src/storage/sqlite/migrations/039_memory_reference_consents.sql +19 -0
  289. package/dist/src/storage/sqlite/migrations/040_local_apps.sql +32 -0
  290. package/dist/src/storage/sqlite/migrations/041_local_app_release_lifecycle.sql +17 -0
  291. package/dist/src/storage/sqlite/migrations/042_work_discovery.sql +41 -0
  292. package/dist/src/storage/sqlite/migrations/043_local_app_acceptance_runs.sql +16 -0
  293. package/dist/src/storage/sqlite/migrations/044_repair_work_discovery_foreign_keys.sql +75 -0
  294. package/dist/src/storage/sqlite/migrations/045_extension_ui_grants.sql +13 -0
  295. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  296. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  297. package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
  298. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  299. package/dist/src/storage/sqlite/schema.js +1 -1
  300. package/dist/src/storage/sqlite/schema.sql +20 -0
  301. package/dist/src/user-context/config.d.ts +227 -0
  302. package/dist/src/user-context/config.js +158 -0
  303. package/dist/src/user-context/config.js.map +1 -0
  304. package/dist/src/user-context/import.d.ts +1 -1
  305. package/dist/src/user-context/import.js +6 -1
  306. package/dist/src/user-context/import.js.map +1 -1
  307. package/dist/src/user-context/owner.d.ts +5 -0
  308. package/dist/src/user-context/owner.js +9 -0
  309. package/dist/src/user-context/owner.js.map +1 -0
  310. package/dist/src/user-context/projection.d.ts +11 -9
  311. package/dist/src/user-context/projection.js +74 -47
  312. package/dist/src/user-context/projection.js.map +1 -1
  313. package/dist/src/user-context/runtime.d.ts +13 -0
  314. package/dist/src/user-context/runtime.js +36 -0
  315. package/dist/src/user-context/runtime.js.map +1 -0
  316. package/dist/src/work-discovery/analyzer.d.ts +11 -0
  317. package/dist/src/work-discovery/analyzer.js +171 -0
  318. package/dist/src/work-discovery/analyzer.js.map +1 -0
  319. package/dist/src/work-discovery/index.d.ts +5 -0
  320. package/dist/src/work-discovery/index.js +5 -0
  321. package/dist/src/work-discovery/probe.d.ts +12 -0
  322. package/dist/src/work-discovery/probe.js +335 -0
  323. package/dist/src/work-discovery/probe.js.map +1 -0
  324. package/dist/src/work-discovery/repository.d.ts +11 -0
  325. package/dist/src/work-discovery/repository.js +100 -0
  326. package/dist/src/work-discovery/repository.js.map +1 -0
  327. package/dist/src/work-discovery/service.d.ts +30 -0
  328. package/dist/src/work-discovery/service.js +387 -0
  329. package/dist/src/work-discovery/service.js.map +1 -0
  330. package/dist/src/work-discovery/types.d.ts +114 -0
  331. package/dist/src/work-discovery/types.js +1 -0
  332. package/dist/src/workflows/service/workflow-session-bridge.js +1 -1
  333. package/dist/src/workflows/service/workflow-session-bridge.js.map +1 -1
  334. package/package.json +4 -3
  335. package/skills/engineering/build-xopc-local-app/SKILL.md +45 -0
  336. package/skills/engineering/build-xopc-local-app/references/app-contract.md +33 -0
  337. package/skills/engineering/build-xopc-local-app/scripts/validate-local-app.mjs +72 -0
  338. package/dist/gateway/static/root/assets/Combination-DolwnuKi.js +0 -41
  339. package/dist/gateway/static/root/assets/activity-center-store-3l9ahUqb.js +0 -1
  340. package/dist/gateway/static/root/assets/agents-BLp5ItD3.js +0 -2
  341. package/dist/gateway/static/root/assets/apps-page-CgOy905b.js +0 -1
  342. package/dist/gateway/static/root/assets/automations-page-Bdj0A_IC.js +0 -6
  343. package/dist/gateway/static/root/assets/browser-settings-page-D73ClpC2.js +0 -8
  344. package/dist/gateway/static/root/assets/capability-presets-api-DZwIrY_P.js +0 -1
  345. package/dist/gateway/static/root/assets/capability-presets-settings-panel-Dw2uinRX.js +0 -2
  346. package/dist/gateway/static/root/assets/channels-settings-g9TZdnQh.js +0 -1
  347. package/dist/gateway/static/root/assets/channels-status-swr-CJauF1CW.js +0 -1
  348. package/dist/gateway/static/root/assets/connectors-page-CJLsXBB0.js +0 -2
  349. package/dist/gateway/static/root/assets/dist-C99RGfAH.js +0 -1
  350. package/dist/gateway/static/root/assets/dreaming-settings-B_LcHWcv.js +0 -3
  351. package/dist/gateway/static/root/assets/extension-debug-page-BqguEetG.js +0 -1
  352. package/dist/gateway/static/root/assets/goal-detail-page-BnUrr9_O.js +0 -4
  353. package/dist/gateway/static/root/assets/goals-page-BgDCoiG0.js +0 -2
  354. package/dist/gateway/static/root/assets/index-BJGusbyV.js +0 -259
  355. package/dist/gateway/static/root/assets/index-CSLF84-Q.css +0 -1
  356. package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-D1rVyDdf.js +0 -1
  357. package/dist/gateway/static/root/assets/logs-page-C35Xa_mx.js +0 -7
  358. package/dist/gateway/static/root/assets/messages-Cb1VMeqP.js +0 -5
  359. package/dist/gateway/static/root/assets/models-hub-panel-CqehWxbT.js +0 -2
  360. package/dist/gateway/static/root/assets/notes-workbench-CCuL7qlg.js +0 -4
  361. package/dist/gateway/static/root/assets/project-detail-page-DTWPEtSE.js +0 -1
  362. package/dist/gateway/static/root/assets/projects-page-NnJpsIAD.js +0 -1
  363. package/dist/gateway/static/root/assets/remote-access-hub-wbk1GCvg.js +0 -1
  364. package/dist/gateway/static/root/assets/sessions-page-Do0ZNuqM.js +0 -1
  365. package/dist/gateway/static/root/assets/settings-advanced-gate-HeYP_JCr.js +0 -1
  366. package/dist/gateway/static/root/assets/setup-status-panel-bjbH7U6x.js +0 -1
  367. package/dist/gateway/static/root/assets/shares-settings-Cl_bE9gQ.js +0 -1
  368. package/dist/gateway/static/root/assets/skill-reload-api-DcqbKYgB.js +0 -1
  369. package/dist/gateway/static/root/assets/skills-page-D_Xkjxtr.js +0 -2
  370. package/dist/gateway/static/root/assets/user-context-page-BtU2sQoK.js +0 -1
  371. package/dist/gateway/static/root/assets/voice-api-key-field-BIcSMf0O.js +0 -1
  372. package/dist/gateway/static/root/assets/work-item-detail-page-ChCKymS7.js +0 -1
  373. package/dist/gateway/static/root/assets/workflows-page-CheHRVox.js +0 -11
  374. package/dist/src/agent/context/workspace-templates/MEMORY.md +0 -33
  375. package/dist/src/agent/memory/access-policy.d.ts +0 -12
  376. package/dist/src/agent/memory/access-policy.js +0 -44
  377. package/dist/src/agent/memory/access-policy.js.map +0 -1
package/README.md CHANGED
@@ -64,7 +64,7 @@ Start with a local assistant using your own model keys. When the work becomes du
64
64
  | Layer | What xopc provides | What it solves |
65
65
  | --- | --- | --- |
66
66
  | **Runtime & ownership** | Self-hosted gateway, local state, BYOK, cloud and local models | You control data, cost, deployment, and availability |
67
- | **Durable state** | Persistent sessions, projects, goals, notes, workspaces, and agent memory policy | Resume work without reconstructing it every time |
67
+ | **Durable state** | Persistent sessions, projects, goals, notes, workspaces, and shared user memory | Resume work without reconstructing it every time |
68
68
  | **Execution & initiative** | Tools, skills, subagents, observable workflows, and scheduled/manual/webhook automations | Move from advice to execution, review, and follow-up |
69
69
  | **Access everywhere** | CLI, TUI, web, desktop, iOS/Android, Telegram, WeChat, Feishu/Lark, and HTTP/SSE APIs | Use one system wherever the work happens |
70
70
 
@@ -157,7 +157,7 @@ Windows git install: `& ([scriptblock]::Create((irm https://xopc.ai/install.ps1)
157
157
  - ⚙️ **Executes and triggers work** — Tools and workflows perform tasks; scheduled, manual, and webhook automations run agents or workflows later.
158
158
  - 🧭 **Graph-backed code intelligence** — The `coder` agent gets managed, local repository indexing for symbol search, source grounding, call tracing, change impact, and architecture mapping, with direct-source fallback when graph coverage is incomplete.
159
159
  - 📡 **One runtime, many surfaces** — Desktop, terminal, web, mobile, and messengers share agents, sessions, and project state.
160
- - 🧩 **Explicit capability boundaries** — Each agent can have its own identity, model roles, workspace, tool policy, skills, memory, and boundaries, then grow through extensions.
160
+ - 🧩 **Explicit capability boundaries** — Each agent can have its own identity, model roles, workspace, tool policy, skills, and boundaries, while every agent shares one user understanding and memory context.
161
161
 
162
162
  ## How xopc compares
163
163
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": 3,
3
3
  "name": "xopc Browser Bridge",
4
- "version": "0.0.146",
4
+ "version": "0.0.148",
5
5
  "description": "Browser automation bridge for xopc — executes commands in Chrome via the local xopc daemon.",
6
6
  "permissions": [
7
7
  "debugger",
@@ -40,17 +40,18 @@ var DemoMemoryProvider = class {
40
40
  };
41
41
  records = /* @__PURE__ */ new Map();
42
42
  sequence = 0;
43
- scope = { agentId: "main" };
43
+ scope = { userId: "local-owner" };
44
+ sourceAgentId = "main";
44
45
  isAvailable() {
45
46
  return isAvailable();
46
47
  }
47
48
  initialize(_sessionId, options) {
48
- const agentId = typeof options?.config?.agentId === "string" ? options.config.agentId : "main";
49
+ this.sourceAgentId = typeof options?.config?.agentId === "string" ? options.config.agentId : "main";
49
50
  const workspaceId = typeof options?.workspace === "string" ? options.workspace : void 0;
50
51
  this.scope = workspaceId ? {
51
- agentId,
52
+ userId: "local-owner",
52
53
  workspaceId
53
- } : { agentId };
54
+ } : { userId: "local-owner" };
54
55
  }
55
56
  async write(request) {
56
57
  const record = this.createRecord(request);
@@ -109,6 +110,7 @@ var DemoMemoryProvider = class {
109
110
  ...this.scope,
110
111
  ...request.scope
111
112
  },
113
+ provenance: { sourceAgentId: this.sourceAgentId },
112
114
  content: request.content,
113
115
  source: request.source ?? { provider: this.id },
114
116
  explicitness: request.explicitness ?? "inferred",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../extensions/demo-memory/src/index.ts"],"sourcesContent":["import type { MemoryProvider, MemoryProviderInitOptions } from '../../../src/agent/memory/provider.js';\nimport type {\n MemoryCapabilities,\n MemoryListRequest,\n MemoryProviderManifest,\n MemoryReadRequest,\n MemoryReadResult,\n MemoryRecord,\n MemoryScope,\n MemorySearchRequest,\n MemorySearchResult,\n MemorySyncEvent,\n MemoryWriteRequest,\n MemoryWriteResult,\n} from '../../../src/agent/memory/types.js';\n\nexport const manifest: MemoryProviderManifest = {\n type: 'memory-provider',\n id: 'demo-memory',\n displayName: 'Demo Memory Provider',\n entry: './src/index.js',\n capabilities: {\n search: true,\n read: true,\n write: true,\n update: false,\n delete: false,\n keywordSearch: true,\n citations: true,\n sync: true,\n },\n};\n\nexport const description = 'In-memory provider used to verify extension-backed memory providers.';\n\nexport function isAvailable(): boolean {\n return process.env.XOPC_DEMO_MEMORY_DISABLED !== '1';\n}\n\nexport function createMemoryProvider(): MemoryProvider {\n return new DemoMemoryProvider();\n}\n\nclass DemoMemoryProvider implements MemoryProvider {\n readonly id = manifest.id;\n readonly displayName = manifest.displayName;\n readonly manifest = manifest;\n readonly capabilities: MemoryCapabilities = {\n search: true,\n read: true,\n write: true,\n update: false,\n delete: false,\n keywordSearch: true,\n semanticSearch: false,\n hybridSearch: false,\n citations: true,\n sync: true,\n };\n\n private records = new Map<string, MemoryRecord>();\n private sequence = 0;\n private scope: MemoryScope = { agentId: 'main' };\n\n isAvailable(): boolean {\n return isAvailable();\n }\n\n initialize(_sessionId: string, options?: MemoryProviderInitOptions): void {\n const agentId = typeof options?.config?.agentId === 'string' ? options.config.agentId : 'main';\n const workspaceId = typeof options?.workspace === 'string' ? options.workspace : undefined;\n this.scope = workspaceId ? { agentId, workspaceId } : { agentId };\n }\n\n async write(request: MemoryWriteRequest): Promise<MemoryWriteResult> {\n const record = this.createRecord(request);\n return { success: true, record, message: `Demo memory stored ${record.id}` };\n }\n\n async search(request: MemorySearchRequest): Promise<MemorySearchResult[]> {\n const query = request.query.trim().toLocaleLowerCase();\n const kinds = request.kinds ? new Set(request.kinds) : null;\n const maxResults = request.maxResults ?? 5;\n return [...this.records.values()]\n .filter((record) => !kinds || kinds.has(record.kind))\n .filter((record) => !query || record.content.toLocaleLowerCase().includes(query))\n .map((record) => ({\n record,\n score: scoreRecord(record, query),\n snippet: record.content,\n citation: {\n providerId: this.id,\n recordId: record.id,\n title: this.displayName,\n createdAt: record.createdAt,\n },\n }))\n .sort((a, b) => b.score - a.score)\n .slice(0, maxResults);\n }\n\n async read(request: MemoryReadRequest): Promise<MemoryReadResult | null> {\n if (!request.id) return null;\n const record = this.records.get(request.id);\n return record ? { record } : null;\n }\n\n async get(id: string): Promise<MemoryRecord | null> {\n return this.records.get(id) ?? null;\n }\n\n async list(request: MemoryListRequest): Promise<MemoryRecord[]> {\n return [...this.records.values()].filter((record) => !request.kind || record.kind === request.kind);\n }\n\n sync(event: MemorySyncEvent): void {\n if (event.type !== 'signal' || !event.signal.content) return;\n this.createRecord({\n kind: 'derived_insight',\n content: event.signal.content,\n source: { provider: event.signal.source },\n tags: ['signal', event.signal.source],\n });\n }\n\n shutdown(): void {\n this.records.clear();\n }\n\n private createRecord(request: MemoryWriteRequest): MemoryRecord {\n const now = new Date().toISOString();\n const id = `demo-memory-${++this.sequence}`;\n const record: MemoryRecord = {\n id,\n kind: request.kind,\n scope: { ...this.scope, ...request.scope },\n content: request.content,\n source: request.source ?? { provider: this.id },\n explicitness: request.explicitness ?? 'inferred',\n durability: request.durability ?? 'durable',\n importance: request.importance ?? 0.5,\n disclosurePolicy: request.disclosurePolicy ?? 'referenceable',\n createdAt: now,\n updatedAt: now,\n ...(request.tags ? { tags: request.tags } : {}),\n };\n this.records.set(id, record);\n return record;\n }\n}\n\nfunction scoreRecord(record: MemoryRecord, query: string): number {\n if (!query) return 0.5;\n const text = record.content.toLocaleLowerCase();\n if (text === query) return 1;\n if (text.includes(query)) return 0.8;\n return 0.1;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../extensions/demo-memory/src/index.ts"],"sourcesContent":["import type { MemoryProvider, MemoryProviderInitOptions } from '../../../src/agent/memory/provider.js';\nimport type {\n MemoryCapabilities,\n MemoryListRequest,\n MemoryProviderManifest,\n MemoryReadRequest,\n MemoryReadResult,\n MemoryRecord,\n MemoryScope,\n MemorySearchRequest,\n MemorySearchResult,\n MemorySyncEvent,\n MemoryWriteRequest,\n MemoryWriteResult,\n} from '../../../src/agent/memory/types.js';\n\nexport const manifest: MemoryProviderManifest = {\n type: 'memory-provider',\n id: 'demo-memory',\n displayName: 'Demo Memory Provider',\n entry: './src/index.js',\n capabilities: {\n search: true,\n read: true,\n write: true,\n update: false,\n delete: false,\n keywordSearch: true,\n citations: true,\n sync: true,\n },\n};\n\nexport const description = 'In-memory provider used to verify extension-backed memory providers.';\n\nexport function isAvailable(): boolean {\n return process.env.XOPC_DEMO_MEMORY_DISABLED !== '1';\n}\n\nexport function createMemoryProvider(): MemoryProvider {\n return new DemoMemoryProvider();\n}\n\nclass DemoMemoryProvider implements MemoryProvider {\n readonly id = manifest.id;\n readonly displayName = manifest.displayName;\n readonly manifest = manifest;\n readonly capabilities: MemoryCapabilities = {\n search: true,\n read: true,\n write: true,\n update: false,\n delete: false,\n keywordSearch: true,\n semanticSearch: false,\n hybridSearch: false,\n citations: true,\n sync: true,\n };\n\n private records = new Map<string, MemoryRecord>();\n private sequence = 0;\n private scope: MemoryScope = { userId: 'local-owner' };\n private sourceAgentId = 'main';\n\n isAvailable(): boolean {\n return isAvailable();\n }\n\n initialize(_sessionId: string, options?: MemoryProviderInitOptions): void {\n this.sourceAgentId = typeof options?.config?.agentId === 'string' ? options.config.agentId : 'main';\n const workspaceId = typeof options?.workspace === 'string' ? options.workspace : undefined;\n this.scope = workspaceId ? { userId: 'local-owner', workspaceId } : { userId: 'local-owner' };\n }\n\n async write(request: MemoryWriteRequest): Promise<MemoryWriteResult> {\n const record = this.createRecord(request);\n return { success: true, record, message: `Demo memory stored ${record.id}` };\n }\n\n async search(request: MemorySearchRequest): Promise<MemorySearchResult[]> {\n const query = request.query.trim().toLocaleLowerCase();\n const kinds = request.kinds ? new Set(request.kinds) : null;\n const maxResults = request.maxResults ?? 5;\n return [...this.records.values()]\n .filter((record) => !kinds || kinds.has(record.kind))\n .filter((record) => !query || record.content.toLocaleLowerCase().includes(query))\n .map((record) => ({\n record,\n score: scoreRecord(record, query),\n snippet: record.content,\n citation: {\n providerId: this.id,\n recordId: record.id,\n title: this.displayName,\n createdAt: record.createdAt,\n },\n }))\n .sort((a, b) => b.score - a.score)\n .slice(0, maxResults);\n }\n\n async read(request: MemoryReadRequest): Promise<MemoryReadResult | null> {\n if (!request.id) return null;\n const record = this.records.get(request.id);\n return record ? { record } : null;\n }\n\n async get(id: string): Promise<MemoryRecord | null> {\n return this.records.get(id) ?? null;\n }\n\n async list(request: MemoryListRequest): Promise<MemoryRecord[]> {\n return [...this.records.values()].filter((record) => !request.kind || record.kind === request.kind);\n }\n\n sync(event: MemorySyncEvent): void {\n if (event.type !== 'signal' || !event.signal.content) return;\n this.createRecord({\n kind: 'derived_insight',\n content: event.signal.content,\n source: { provider: event.signal.source },\n tags: ['signal', event.signal.source],\n });\n }\n\n shutdown(): void {\n this.records.clear();\n }\n\n private createRecord(request: MemoryWriteRequest): MemoryRecord {\n const now = new Date().toISOString();\n const id = `demo-memory-${++this.sequence}`;\n const record: MemoryRecord = {\n id,\n kind: request.kind,\n scope: { ...this.scope, ...request.scope },\n provenance: { sourceAgentId: this.sourceAgentId },\n content: request.content,\n source: request.source ?? { provider: this.id },\n explicitness: request.explicitness ?? 'inferred',\n durability: request.durability ?? 'durable',\n importance: request.importance ?? 0.5,\n disclosurePolicy: request.disclosurePolicy ?? 'referenceable',\n createdAt: now,\n updatedAt: now,\n ...(request.tags ? { tags: request.tags } : {}),\n };\n this.records.set(id, record);\n return record;\n }\n}\n\nfunction scoreRecord(record: MemoryRecord, query: string): number {\n if (!query) return 0.5;\n const text = record.content.toLocaleLowerCase();\n if (text === query) return 1;\n if (text.includes(query)) return 0.8;\n return 0.1;\n}\n"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  "id": "telegram",
3
3
  "name": "Telegram Channel",
4
4
  "description": "Bundled Telegram Bot channel (private workspace sources; ships inside @xopcai/xopc dist/)",
5
- "version": "0.0.146",
5
+ "version": "0.0.148",
6
6
  "kind": "channel",
7
7
  "main": "src/index.js",
8
8
  "channels": [
@@ -0,0 +1,41 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,i as n,t as r}from"./vendor-react-BOUWij0V.js";import{i,n as a}from"./dist-CxGUk8J-.js";var o=e(t(),1),s=r();typeof window<`u`&&window.document&&window.document.createElement;function c(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)}}function l(e,t=[]){let n=[];function r(t,r){let i=o.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let c=t=>{let{scope:n,children:r,...c}=t,l=n?.[e]?.[a]||i,u=o.useMemo(()=>c,Object.values(c));return(0,s.jsx)(l.Provider,{value:u,children:r})};c.displayName=t+`Provider`;function l(n,s,c={}){let{optional:l=!1}=c,u=s?.[e]?.[a]||i,d=o.useContext(u);if(d)return d;if(r!==void 0)return r;if(!l)throw Error(`\`${n}\` must be used within \`${t}\``)}return[c,l]}let i=()=>{let t=n.map(e=>o.createContext(e));return function(n){let r=n?.[e]||t;return o.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,u(i,...t)]}function u(...e){let t=e[0];if(e.length===1)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return o.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}var d=e(n(),1),f=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=a(`Primitive.${t}`),r=o.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,s.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function p(e,t){e&&d.flushSync(()=>e.dispatchEvent(t))}function m(e){let t=o.useRef(e);return o.useEffect(()=>{t.current=e}),o.useMemo(()=>((...e)=>t.current?.(...e)),[])}var h=`DismissableLayer`,g=`dismissableLayer.update`,_=`dismissableLayer.pointerDownOutside`,v=`dismissableLayer.focusOutside`,y,b=o.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),x=o.forwardRef((e,t)=>{let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:u,onInteractOutside:d,onDismiss:p,...h}=e,_=o.useContext(b),[v,x]=o.useState(null),S=v?.ownerDocument??globalThis?.document,[,C]=o.useState({}),w=i(t,x),T=Array.from(_.layers),[E]=[..._.layersWithOutsidePointerEventsDisabled].slice(-1),D=E?T.indexOf(E):-1,O=v?T.indexOf(v):-1,re=_.layersWithOutsidePointerEventsDisabled.size>0,k=O>=D,A=o.useRef(!1),j=ee(e=>{l?.(e),d?.(e),e.defaultPrevented||p?.()},{ownerDocument:S,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:A,dismissableSurfaces:_.dismissableSurfaces,shouldHandlePointerDownOutside:o.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[..._.branches].some(t=>t.contains(e));return k&&!t},[_.branches,k])}),M=te(e=>{if(r&&A.current)return;let t=e.target;[..._.branches].some(e=>e.contains(t))||(u?.(e),d?.(e),e.defaultPrevented||p?.())},S),N=v?O===T.length-1:!1,P=m(e=>{e.key===`Escape`&&(a?.(e),!e.defaultPrevented&&p&&(e.preventDefault(),p()))});return o.useEffect(()=>{if(N)return S.addEventListener(`keydown`,P,{capture:!0}),()=>S.removeEventListener(`keydown`,P,{capture:!0})},[S,N,P]),o.useEffect(()=>{if(v)return n&&(_.layersWithOutsidePointerEventsDisabled.size===0&&(y=S.body.style.pointerEvents,S.body.style.pointerEvents=`none`),_.layersWithOutsidePointerEventsDisabled.add(v)),_.layers.add(v),ne(),()=>{n&&(_.layersWithOutsidePointerEventsDisabled.delete(v),_.layersWithOutsidePointerEventsDisabled.size===0&&(S.body.style.pointerEvents=y))}},[v,S,n,_]),o.useEffect(()=>()=>{v&&(_.layers.delete(v),_.layersWithOutsidePointerEventsDisabled.delete(v),ne())},[v,_]),o.useEffect(()=>{let e=()=>C({});return document.addEventListener(g,e),()=>document.removeEventListener(g,e)},[]),(0,s.jsx)(f.div,{...h,ref:w,style:{pointerEvents:re?k?`auto`:`none`:void 0,...e.style},onFocusCapture:c(e.onFocusCapture,M.onFocusCapture),onBlurCapture:c(e.onBlurCapture,M.onBlurCapture),onPointerDownCapture:c(e.onPointerDownCapture,j.onPointerDownCapture)})});x.displayName=h;var S=`DismissableLayerBranch`,C=o.forwardRef((e,t)=>{let n=o.useContext(b),r=o.useRef(null),a=i(t,r);return o.useEffect(()=>{let e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),(0,s.jsx)(f.div,{...e,ref:a})});C.displayName=S;function w(){let e=o.useContext(b),[t,n]=o.useState(null);return o.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}var T=()=>!0;function ee(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:s=T}=t,c=m(e),l=o.useRef(!1),u=o.useRef(!1),d=o.useRef(new Map),f=o.useRef(()=>{});return o.useEffect(()=>{function e(){u.current=!1,i.current=!1,d.current.clear()}function t(){return Array.from(d.current.values()).some(Boolean)}function o(e){if(!u.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||d.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{u.current&&f.current()},0)}function p(e){u.current&&d.current.set(e.type,!1)}let m=a=>{if(a.target&&!l.current){let o=function(){n.removeEventListener(`click`,f.current);let r=t();e(),r||E(_,c,p,{discrete:!0})};if(!s(a.target)){n.removeEventListener(`click`,f.current),e(),l.current=!1;return}let p={originalEvent:a};u.current=!0,i.current=r&&a.button===0,d.current.clear(),!r||a.button!==0?o():(n.removeEventListener(`click`,f.current),f.current=o,n.addEventListener(`click`,f.current,{once:!0}))}else n.removeEventListener(`click`,f.current),e();l.current=!1},h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,o,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,f.current);for(let e of h)n.removeEventListener(e,o,!0),n.removeEventListener(e,p)}},[n,c,r,i,a,s]),{onPointerDownCapture:()=>l.current=!0}}function te(e,t=globalThis?.document){let n=m(e),r=o.useRef(!1);return o.useEffect(()=>{let e=e=>{e.target&&!r.current&&E(v,n,{originalEvent:e},{discrete:!1})};return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function ne(){let e=new CustomEvent(g);document.dispatchEvent(e)}function E(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?p(i,a):i.dispatchEvent(a)}var D=0,O=null;function re(){o.useEffect(()=>{O||={start:k(),end:k()};let{start:e,end:t}=O;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),D++,()=>{D===1&&(O?.start.remove(),O?.end.remove(),O=null),D=Math.max(0,D-1)}},[])}function k(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}var A=`focusScope.autoFocusOnMount`,j=`focusScope.autoFocusOnUnmount`,M={bubbles:!1,cancelable:!0},N=`FocusScope`,P=o.forwardRef((e,t)=>{let{loop:n=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:c,...l}=e,[u,d]=o.useState(null),p=m(a),h=m(c),g=o.useRef(null),_=i(t,d),v=o.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;o.useEffect(()=>{if(r){let e=function(e){if(v.paused||!u)return;let t=e.target;u.contains(t)?g.current=t:F(g.current,{select:!0})},t=function(e){if(v.paused||!u)return;let t=e.relatedTarget;t!==null&&(u.contains(t)||F(g.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&F(u)};document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return u&&r.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,u,v.paused]),o.useEffect(()=>{if(u){ue.add(v);let e=document.activeElement;if(!u.contains(e)){let t=new CustomEvent(A,M);u.addEventListener(A,p),u.dispatchEvent(t),t.defaultPrevented||(ie(pe(oe(u)),{select:!0}),document.activeElement===e&&F(u))}return()=>{u.removeEventListener(A,p),setTimeout(()=>{let t=new CustomEvent(j,M);u.addEventListener(j,h),u.dispatchEvent(t),t.defaultPrevented||F(e??document.body,{select:!0}),u.removeEventListener(j,h),ue.remove(v)},0)}}},[u,p,h,v]);let y=o.useCallback(e=>{if(!n&&!r||v.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=ae(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&F(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&F(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,v.paused]);return(0,s.jsx)(f.div,{tabIndex:-1,...l,ref:_,onKeyDown:y})});P.displayName=N;function ie(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(F(r,{select:t}),document.activeElement!==n)return}function ae(e){let t=oe(e);return[se(t,e),se(t.reverse(),e)]}function oe(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function se(e,t){let n=typeof t.checkVisibility==`function`&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):ce(r,{upTo:t})))return r}function ce(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function le(e){return e instanceof HTMLInputElement&&`select`in e}function F(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&le(e)&&t&&e.select()}}var ue=de();function de(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=fe(e,t),e.unshift(t)},remove(t){e=fe(e,t),e[0]?.resume()}}}function fe(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function pe(e){return e.filter(e=>e.tagName!==`A`)}var I=globalThis?.document?o.useLayoutEffect:()=>{},me=o.useId||(()=>void 0),he=0;function ge(e){let[t,n]=o.useState(me());return I(()=>{e||n(e=>e??String(he++))},[e]),e||(t?`radix-${t}`:``)}var _e=`Portal`,ve=o.forwardRef((e,t)=>{let{container:n,...r}=e,[i,a]=o.useState(!1);I(()=>a(!0),[]);let c=n||i&&globalThis?.document?.body;return c?d.createPortal((0,s.jsx)(f.div,{...r,ref:t}),c):null});ve.displayName=_e;function ye(e,t){return o.useReducer((e,n)=>t[e][n]??e,e)}var be=e=>{let{present:t,children:n}=e,r=xe(t),i=typeof n==`function`?n({present:r.isPresent}):o.Children.only(n),a=Ce(r.ref,we(i));return typeof n==`function`||r.isPresent?o.cloneElement(i,{ref:a}):null};be.displayName=`Presence`;function xe(e){let[t,n]=o.useState(),r=o.useRef(null),i=o.useRef(e),a=o.useRef(`none`),s=o.useRef(void 0),[c,l]=ye(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return o.useEffect(()=>{c===`mounted`?(a.current=s.current??L(r.current),s.current=void 0):a.current=`none`},[c]),I(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,o=L(t);e?(s.current=o,l(`MOUNT`)):o===`none`||t?.display===`none`?l(`UNMOUNT`):l(n&&r!==o?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,l]),I(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=a=>{let o=L(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(l(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},s=e=>{e.target===t&&(a.current=L(r.current))};return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}else l(`ANIMATION_END`)},[t,l]),{isPresent:[`mounted`,`unmountSuspended`].includes(c),ref:o.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,s.current=L(t)}else r.current=null;n(e)},[])}}function Se(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function Ce(...e){let t=o.useRef(e);return t.current=e,o.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=Se(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;e<i.length;e++){let t=i[e];typeof t==`function`?t():Se(n[e],null)}}},[])}function L(e){return e?.animationName||`none`}function we(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Te=o.useInsertionEffect||I;function Ee({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[i,a,s]=De({defaultProp:t,onChange:n}),c=e!==void 0,l=c?e:i;{let t=o.useRef(e!==void 0);o.useEffect(()=>{let e=t.current;e!==c&&console.warn(`${r} is changing from ${e?`controlled`:`uncontrolled`} to ${c?`controlled`:`uncontrolled`}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),t.current=c},[c,r])}return[l,o.useCallback(t=>{if(c){let n=Oe(t)?t(e):t;n!==e&&s.current?.(n)}else a(t)},[c,e,a,s])]}function De({defaultProp:e,onChange:t}){let[n,r]=o.useState(e),i=o.useRef(n),a=o.useRef(t);return Te(()=>{a.current=t},[t]),o.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}function Oe(e){return typeof e==`function`}var ke=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},R=new WeakMap,z=new WeakMap,B={},V=0,Ae=function(e){return e&&(e.host||Ae(e.parentNode))},je=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=Ae(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},Me=function(e,t,n,r){var i=je(t,Array.isArray(e)?e:[e]);B[n]||(B[n]=new WeakMap);var a=B[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(R.get(e)||0)+1,l=(a.get(e)||0)+1;R.set(e,c),a.set(e,l),o.push(e),c===1&&i&&z.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),V++,function(){o.forEach(function(e){var t=R.get(e)-1,i=a.get(e)-1;R.set(e,t),a.set(e,i),t||(z.has(e)||e.removeAttribute(r),z.delete(e)),i||e.removeAttribute(n)}),V--,V||(R=new WeakMap,R=new WeakMap,z=new WeakMap,B={})}},Ne=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||ke(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),Me(r,i,n,`aria-hidden`)):function(){return null}},H=function(){return H=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},H.apply(this,arguments)};function Pe(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function Fe(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var U=`right-scroll-bar-position`,W=`width-before-scroll-bar`,Ie=`with-scroll-bars-hidden`,Le=`--removed-body-scroll-bar-size`;function G(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function Re(e,t){var n=(0,o.useState)(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var ze=typeof window<`u`?o.useLayoutEffect:o.useEffect,Be=new WeakMap;function Ve(e,t){var n=Re(t||null,function(t){return e.forEach(function(e){return G(e,t)})});return ze(function(){var t=Be.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||G(e,null)}),i.forEach(function(e){r.has(e)||G(e,a)})}Be.set(n,e)},[e]),n}function He(e){return e}function Ue(e,t){t===void 0&&(t=He);var n=[],r=!1;return{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function We(e){e===void 0&&(e={});var t=Ue(null);return t.options=H({async:!0,ssr:!1},e),t}var Ge=function(e){var t=e.sideCar,n=Pe(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return o.createElement(r,H({},n))};Ge.isSideCarExport=!0;function Ke(e,t){return e.useMedium(t),Ge}var qe=We(),K=function(){},q=o.forwardRef(function(e,t){var n=o.useRef(null),r=o.useState({onScrollCapture:K,onWheelCapture:K,onTouchMoveCapture:K}),i=r[0],a=r[1],s=e.forwardProps,c=e.children,l=e.className,u=e.removeScrollBar,d=e.enabled,f=e.shards,p=e.sideCar,m=e.noRelative,h=e.noIsolation,g=e.inert,_=e.allowPinchZoom,v=e.as,y=v===void 0?`div`:v,b=e.gapMode,x=Pe(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),S=p,C=Ve([n,t]),w=H(H({},x),i);return o.createElement(o.Fragment,null,d&&o.createElement(S,{sideCar:qe,removeScrollBar:u,shards:f,noRelative:m,noIsolation:h,inert:g,setCallbacks:a,allowPinchZoom:!!_,lockRef:n,gapMode:b}),s?o.cloneElement(o.Children.only(c),H(H({},w),{ref:C})):o.createElement(y,H({},w,{className:l,ref:C}),c))});q.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},q.classNames={fullWidth:W,zeroRight:U};var Je,Ye=function(){if(Je)return Je;if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function Xe(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=Ye();return t&&e.setAttribute(`nonce`,t),e}function Ze(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function Qe(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var $e=function(){var e=0,t=null;return{add:function(n){e==0&&(t=Xe())&&(Ze(t,n),Qe(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},et=function(){var e=$e();return function(t,n){o.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},tt=function(){var e=et();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},nt={left:0,top:0,right:0,gap:0},J=function(e){return parseInt(e||``,10)||0},rt=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[J(n),J(r),J(i)]},it=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return nt;var t=rt(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},at=tt(),Y=`data-scroll-locked`,ot=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),`
2
+ .${Ie} {
3
+ overflow: hidden ${r};
4
+ padding-right: ${s}px ${r};
5
+ }
6
+ body[${Y}] {
7
+ overflow: hidden ${r};
8
+ overscroll-behavior: contain;
9
+ ${[t&&`position: relative ${r};`,n===`margin`&&`
10
+ padding-left: ${i}px;
11
+ padding-top: ${a}px;
12
+ padding-right: ${o}px;
13
+ margin-left:0;
14
+ margin-top:0;
15
+ margin-right: ${s}px ${r};
16
+ `,n===`padding`&&`padding-right: ${s}px ${r};`].filter(Boolean).join(``)}
17
+ }
18
+
19
+ .${U} {
20
+ right: ${s}px ${r};
21
+ }
22
+
23
+ .${W} {
24
+ margin-right: ${s}px ${r};
25
+ }
26
+
27
+ .${U} .${U} {
28
+ right: 0 ${r};
29
+ }
30
+
31
+ .${W} .${W} {
32
+ margin-right: 0 ${r};
33
+ }
34
+
35
+ body[${Y}] {
36
+ ${Le}: ${s}px;
37
+ }
38
+ `},st=function(){var e=parseInt(document.body.getAttribute(`data-scroll-locked`)||`0`,10);return isFinite(e)?e:0},ct=function(){o.useEffect(function(){return document.body.setAttribute(Y,(st()+1).toString()),function(){var e=st()-1;e<=0?document.body.removeAttribute(Y):document.body.setAttribute(Y,e.toString())}},[])},lt=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?`margin`:r;ct();var a=o.useMemo(function(){return it(i)},[i]);return o.createElement(at,{styles:ot(a,!t,i,n?``:`!important`)})},ut=!1;if(typeof window<`u`)try{var X=Object.defineProperty({},"passive",{get:function(){return ut=!0,!0}});window.addEventListener(`test`,X,X),window.removeEventListener(`test`,X,X)}catch{ut=!1}var Z=ut?{passive:!1}:!1,dt=function(e){return e.tagName===`TEXTAREA`},ft=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!==`hidden`&&!(n.overflowY===n.overflowX&&!dt(e)&&n[t]===`visible`)},pt=function(e){return ft(e,`overflowY`)},mt=function(e){return ft(e,`overflowX`)},ht=function(e,t){var n=t.ownerDocument,r=t;do{if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&(r=r.host),vt(e,r)){var i=yt(e,r);if(i[1]>i[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},gt=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},_t=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},vt=function(e,t){return e===`v`?pt(t):mt(t)},yt=function(e,t){return e===`v`?gt(t):_t(t)},bt=function(e,t){return e===`h`&&t===`rtl`?-1:1},xt=function(e,t,n,r,i){var a=bt(e,window.getComputedStyle(t).direction),o=a*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{if(!s)break;var p=yt(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&vt(e,s)&&(d+=h,f+=m);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(i&&Math.abs(d)<1||!i&&o>d)||!u&&(i&&Math.abs(f)<1||!i&&-o>f))&&(l=!0),l},Q=function(e){return`changedTouches`in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},St=function(e){return[e.deltaX,e.deltaY]},Ct=function(e){return e&&`current`in e?e.current:e},wt=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Tt=function(e){return`
39
+ .block-interactivity-${e} {pointer-events: none;}
40
+ .allow-interactivity-${e} {pointer-events: all;}
41
+ `},Et=0,$=[];function Dt(e){var t=o.useRef([]),n=o.useRef([0,0]),r=o.useRef(),i=o.useState(Et++)[0],a=o.useState(tt)[0],s=o.useRef(e);o.useEffect(function(){s.current=e},[e]),o.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=Fe([e.lockRef.current],(e.shards||[]).map(Ct),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var c=o.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!s.current.allowPinchZoom;var i=Q(e),a=n.current,o=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(o)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=ht(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=ht(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(o||c)&&(r.current=l),!l)return!0;var h=r.current||l;return xt(h,t,e,h===`h`?o:c,!0)},[]),l=o.useCallback(function(e){var n=e;if(!(!$.length||$[$.length-1]!==a)){var r=`deltaY`in n?St(n):Q(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&wt(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}if(!i){var o=(s.current.shards||[]).map(Ct).filter(Boolean).filter(function(e){return e.contains(n.target)});(o.length>0?c(n,o[0]):!s.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),u=o.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:Ot(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),d=o.useCallback(function(e){n.current=Q(e),r.current=void 0},[]),f=o.useCallback(function(t){u(t.type,St(t),t.target,c(t,e.lockRef.current))},[]),p=o.useCallback(function(t){u(t.type,Q(t),t.target,c(t,e.lockRef.current))},[]);o.useEffect(function(){return $.push(a),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener(`wheel`,l,Z),document.addEventListener(`touchmove`,l,Z),document.addEventListener(`touchstart`,d,Z),function(){$=$.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,l,Z),document.removeEventListener(`touchmove`,l,Z),document.removeEventListener(`touchstart`,d,Z)}},[]);var m=e.removeScrollBar,h=e.inert;return o.createElement(o.Fragment,null,h?o.createElement(a,{styles:Tt(i)}):null,m?o.createElement(lt,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Ot(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var kt=Ke(qe,Dt),At=o.forwardRef(function(e,t){return o.createElement(q,H({},e,{ref:t,sideCar:kt}))});At.classNames=q.classNames;export{ve as a,P as c,w as d,m as f,c as g,l as h,be as i,re as l,p as m,Ne as n,ge as o,f as p,Ee as r,I as s,At as t,x as u};
@@ -0,0 +1 @@
1
+ import{u as e}from"./locale-store-BP67jtYG.js";var t=`xopc.activity-center.v1`,n=80;function r(e){return e===`error`?`failed`:e===`warning`?`attention`:`done`}function i(){if(!(typeof window>`u`))return window.location.hash.replace(/^#/,``)||`${window.location.pathname}${window.location.search}`||void 0}function a(){try{let e=globalThis.localStorage?.getItem(t);if(!e)return[];let r=JSON.parse(e);return Array.isArray(r.items)?r.items.filter(e=>e&&typeof e.id==`string`&&typeof e.title==`string`).slice(0,n):[]}catch{return[]}}function o(e){try{globalThis.localStorage?.setItem(t,JSON.stringify({items:e}))}catch{}}function s(e){return`${e.toString(36)}-${Math.random().toString(36).slice(2,8)}`}var c=e(e=>({items:a(),add:t=>e(e=>{let a=t.title.trim();if(!a)return e;let c=Date.now(),l=t.tone??`info`,u=t.dedupeKey?e.items.findIndex(e=>e.dedupeKey===t.dedupeKey):-1,d=[{id:u>=0?e.items[u].id:s(c),tone:l,status:t.status??r(l),title:a,message:t.message?.trim()||void 0,source:t.source?.trim()||void 0,href:t.href??i(),dedupeKey:t.dedupeKey,createdAt:u>=0?e.items[u].createdAt:c,updatedAt:c,read:t.read??!1,occurrences:u>=0?e.items[u].occurrences+1:1},...u>=0?e.items.filter((e,t)=>t!==u):e.items].slice(0,n);return o(d),{items:d}}),markAllRead:()=>e(e=>{let t=e.items.map(e=>({...e,read:!0}));return o(t),{items:t}}),remove:t=>e(e=>{let n=e.items.filter(e=>e.id!==t);return o(n),{items:n}}),clearFinished:()=>e(e=>{let t=e.items.filter(e=>e.status!==`done`);return o(t),{items:t}}),clear:()=>{o([]),e({items:[]})}}));function l(e){c.getState().add(e)}export{c as n,l as t};