@sapienx/agentos 0.5.5 → 0.5.7

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 (270) hide show
  1. package/bin/agentos.js +105 -2
  2. package/bin/terminal-boot.js +2 -0
  3. package/bundle/.next/BUILD_ID +1 -1
  4. package/bundle/.next/app-path-routes-manifest.json +16 -10
  5. package/bundle/.next/build-manifest.json +6 -6
  6. package/bundle/.next/prerender-manifest.json +3 -3
  7. package/bundle/.next/react-loadable-manifest.json +4 -4
  8. package/bundle/.next/required-server-files.json +1 -1
  9. package/bundle/.next/routes-manifest.json +38 -0
  10. package/bundle/.next/server/app/_global-error/page.js +2 -2
  11. package/bundle/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/bundle/.next/server/app/_global-error.html +1 -1
  13. package/bundle/.next/server/app/_global-error.rsc +4 -4
  14. package/bundle/.next/server/app/_global-error.segments/_full.segment.rsc +4 -4
  15. package/bundle/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  16. package/bundle/.next/server/app/_global-error.segments/_global-error.segment.rsc +3 -3
  17. package/bundle/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  18. package/bundle/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  19. package/bundle/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/bundle/.next/server/app/_not-found/page.js +2 -2
  21. package/bundle/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  22. package/bundle/.next/server/app/_not-found.html +1 -1
  23. package/bundle/.next/server/app/_not-found.rsc +7 -7
  24. package/bundle/.next/server/app/_not-found.segments/_full.segment.rsc +7 -7
  25. package/bundle/.next/server/app/_not-found.segments/_head.segment.rsc +2 -2
  26. package/bundle/.next/server/app/_not-found.segments/_index.segment.rsc +5 -5
  27. package/bundle/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  28. package/bundle/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  29. package/bundle/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  30. package/bundle/.next/server/app/agents/page.js +2 -0
  31. package/bundle/.next/server/app/agents/page.js.nft.json +1 -0
  32. package/bundle/.next/server/app/agents/page_client-reference-manifest.js +1 -0
  33. package/bundle/.next/server/app/api/agents/[agentId]/chat/route.js +2 -2
  34. package/bundle/.next/server/app/api/agents/[agentId]/chat/route.js.nft.json +1 -1
  35. package/bundle/.next/server/app/api/agents/route.js +1 -1
  36. package/bundle/.next/server/app/api/agents/route.js.nft.json +1 -1
  37. package/bundle/.next/server/app/api/diagnostics/route.js +1 -1
  38. package/bundle/.next/server/app/api/diagnostics/route.js.nft.json +1 -1
  39. package/bundle/.next/server/app/api/files/reveal/route.js +1 -1
  40. package/bundle/.next/server/app/api/gateway/control/route.js +1 -1
  41. package/bundle/.next/server/app/api/gateway/control/route.js.nft.json +1 -1
  42. package/bundle/.next/server/app/api/integrations/[integrationId]/status/route.js +1 -0
  43. package/bundle/.next/server/app/api/integrations/[integrationId]/status/route.js.nft.json +1 -0
  44. package/bundle/.next/server/app/api/integrations/[integrationId]/status/route_client-reference-manifest.js +1 -0
  45. package/bundle/.next/server/app/api/mission/route.js +1 -1
  46. package/bundle/.next/server/app/api/mission/route.js.nft.json +1 -1
  47. package/bundle/.next/server/app/api/models/catalog/route.js +2 -2
  48. package/bundle/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
  49. package/bundle/.next/server/app/api/models/providers/route.js +2 -2
  50. package/bundle/.next/server/app/api/models/providers/route.js.nft.json +1 -1
  51. package/bundle/.next/server/app/api/onboarding/models/route.js +3 -3
  52. package/bundle/.next/server/app/api/onboarding/models/route.js.nft.json +1 -1
  53. package/bundle/.next/server/app/api/onboarding/route.js +9 -3
  54. package/bundle/.next/server/app/api/onboarding/route.js.nft.json +1 -1
  55. package/bundle/.next/server/app/api/openclaw/capabilities/route.js +1 -1
  56. package/bundle/.next/server/app/api/openclaw/capabilities/route.js.nft.json +1 -1
  57. package/bundle/.next/server/app/api/planner/[planId]/deploy/route.js +2 -2
  58. package/bundle/.next/server/app/api/planner/[planId]/deploy/route.js.nft.json +1 -1
  59. package/bundle/.next/server/app/api/planner/[planId]/document-rewrite/route.js +1 -1
  60. package/bundle/.next/server/app/api/planner/[planId]/document-rewrite/route.js.nft.json +1 -1
  61. package/bundle/.next/server/app/api/planner/[planId]/route.js +1 -1
  62. package/bundle/.next/server/app/api/planner/[planId]/route.js.nft.json +1 -1
  63. package/bundle/.next/server/app/api/planner/[planId]/simulate/route.js +1 -1
  64. package/bundle/.next/server/app/api/planner/[planId]/simulate/route.js.nft.json +1 -1
  65. package/bundle/.next/server/app/api/planner/[planId]/turn/route.js +1 -1
  66. package/bundle/.next/server/app/api/planner/[planId]/turn/route.js.nft.json +1 -1
  67. package/bundle/.next/server/app/api/planner/route.js +1 -1
  68. package/bundle/.next/server/app/api/planner/route.js.nft.json +1 -1
  69. package/bundle/.next/server/app/api/reset/route.js +2 -2
  70. package/bundle/.next/server/app/api/reset/route.js.nft.json +1 -1
  71. package/bundle/.next/server/app/api/runtimes/[runtimeId]/route.js +1 -1
  72. package/bundle/.next/server/app/api/runtimes/[runtimeId]/route.js.nft.json +1 -1
  73. package/bundle/.next/server/app/api/settings/gateway/route.js +1 -1
  74. package/bundle/.next/server/app/api/settings/gateway/route.js.nft.json +1 -1
  75. package/bundle/.next/server/app/api/settings/openclaw-binary/route.js +1 -1
  76. package/bundle/.next/server/app/api/settings/openclaw-binary/route.js.nft.json +1 -1
  77. package/bundle/.next/server/app/api/settings/workspace-root/route.js +1 -1
  78. package/bundle/.next/server/app/api/settings/workspace-root/route.js.nft.json +1 -1
  79. package/bundle/.next/server/app/api/snapshot/route.js +1 -1
  80. package/bundle/.next/server/app/api/snapshot/route.js.nft.json +1 -1
  81. package/bundle/.next/server/app/api/stream/route.js +2 -2
  82. package/bundle/.next/server/app/api/stream/route.js.nft.json +1 -1
  83. package/bundle/.next/server/app/api/system/open-terminal/route.js +1 -1
  84. package/bundle/.next/server/app/api/tasks/[taskId]/abort/route.js +1 -1
  85. package/bundle/.next/server/app/api/tasks/[taskId]/abort/route.js.nft.json +1 -1
  86. package/bundle/.next/server/app/api/tasks/[taskId]/control/route.js +1 -1
  87. package/bundle/.next/server/app/api/tasks/[taskId]/control/route.js.nft.json +1 -1
  88. package/bundle/.next/server/app/api/tasks/[taskId]/stream/route.js +2 -2
  89. package/bundle/.next/server/app/api/tasks/[taskId]/stream/route.js.nft.json +1 -1
  90. package/bundle/.next/server/app/api/update/route.js +2 -2
  91. package/bundle/.next/server/app/api/update/route.js.nft.json +1 -1
  92. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/discovered-groups/route.js +1 -1
  93. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/discovered-groups/route.js.nft.json +1 -1
  94. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/route.js +1 -1
  95. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/route.js.nft.json +1 -1
  96. package/bundle/.next/server/app/api/workspaces/[workspaceId]/edit-draft/route.js +1 -1
  97. package/bundle/.next/server/app/api/workspaces/[workspaceId]/edit-draft/route.js.nft.json +1 -1
  98. package/bundle/.next/server/app/api/workspaces/[workspaceId]/files/route.js +1 -1
  99. package/bundle/.next/server/app/api/workspaces/[workspaceId]/files/route.js.nft.json +1 -1
  100. package/bundle/.next/server/app/api/workspaces/[workspaceId]/surfaces/discovery/route.js +1 -1
  101. package/bundle/.next/server/app/api/workspaces/[workspaceId]/surfaces/discovery/route.js.nft.json +1 -1
  102. package/bundle/.next/server/app/api/workspaces/route.js +2 -2
  103. package/bundle/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  104. package/bundle/.next/server/app/files/page.js +2 -0
  105. package/bundle/.next/server/app/files/page.js.nft.json +1 -0
  106. package/bundle/.next/server/app/files/page_client-reference-manifest.js +1 -0
  107. package/bundle/.next/server/app/integrations/page.js +2 -0
  108. package/bundle/.next/server/app/integrations/page.js.nft.json +1 -0
  109. package/bundle/.next/server/app/integrations/page_client-reference-manifest.js +1 -0
  110. package/bundle/.next/server/app/models/page.js +2 -0
  111. package/bundle/.next/server/app/models/page.js.nft.json +1 -0
  112. package/bundle/.next/server/app/models/page_client-reference-manifest.js +1 -0
  113. package/bundle/.next/server/app/page.js +2 -2
  114. package/bundle/.next/server/app/page.js.nft.json +1 -1
  115. package/bundle/.next/server/app/page_client-reference-manifest.js +1 -1
  116. package/bundle/.next/server/app/settings/page.js +2 -2
  117. package/bundle/.next/server/app/settings/page.js.nft.json +1 -1
  118. package/bundle/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  119. package/bundle/.next/server/app/tasks/page.js +2 -0
  120. package/bundle/.next/server/app/tasks/page.js.nft.json +1 -0
  121. package/bundle/.next/server/app/tasks/page_client-reference-manifest.js +1 -0
  122. package/bundle/.next/server/app-paths-manifest.json +16 -10
  123. package/bundle/.next/server/chunks/4391.js +188 -0
  124. package/bundle/.next/server/chunks/4466.js +9 -0
  125. package/bundle/.next/server/chunks/4983.js +1 -0
  126. package/bundle/.next/server/chunks/5151.js +2 -2
  127. package/bundle/.next/server/chunks/{6639.js → 6476.js} +3 -2
  128. package/bundle/.next/server/chunks/7396.js +7 -0
  129. package/bundle/.next/server/chunks/8621.js +1 -0
  130. package/bundle/.next/server/chunks/8849.js +1 -0
  131. package/bundle/.next/server/functions-config-manifest.json +1 -0
  132. package/bundle/.next/server/middleware-build-manifest.js +1 -1
  133. package/bundle/.next/server/middleware-react-loadable-manifest.js +1 -1
  134. package/bundle/.next/server/pages/404.html +1 -1
  135. package/bundle/.next/server/pages/500.html +1 -1
  136. package/bundle/.next/server/server-reference-manifest.json +1 -1
  137. package/bundle/.next/static/JJw_UWORQdbCo0tnqFq68/_buildManifest.js +1 -0
  138. package/bundle/.next/static/chunks/1994.2c1ce6369c0b31aa.js +1 -0
  139. package/bundle/.next/static/chunks/2083-7a341dd360f54c8b.js +1 -0
  140. package/bundle/.next/static/chunks/2396-3a9544c281c618dd.js +1 -0
  141. package/bundle/.next/static/chunks/2842.b8d0551fd4d397d4.js +1 -0
  142. package/bundle/.next/static/chunks/331-518938b9d1e94c9c.js +1 -0
  143. package/bundle/.next/static/chunks/3315-597211dffe007157.js +7 -0
  144. package/bundle/.next/static/chunks/4424-805347abcfa4dab9.js +32 -0
  145. package/bundle/.next/static/chunks/4a846800.ef93163f41628d6f.js +1 -0
  146. package/bundle/.next/static/chunks/6276-fdd5e81abda749e8.js +9 -0
  147. package/bundle/.next/static/chunks/7442-0da619eb6902ba5b.js +188 -0
  148. package/bundle/.next/static/chunks/8583-7994af81ac8b7330.js +1 -0
  149. package/bundle/.next/static/chunks/app/_global-error/page-73422dc4075cbfe0.js +1 -0
  150. package/bundle/.next/static/chunks/app/_not-found/page-73422dc4075cbfe0.js +1 -0
  151. package/bundle/.next/static/chunks/app/agents/page-a48b3909fe8cc49b.js +1 -0
  152. package/bundle/.next/static/chunks/app/api/agents/[agentId]/chat/route-73422dc4075cbfe0.js +1 -0
  153. package/bundle/.next/static/chunks/app/api/agents/route-73422dc4075cbfe0.js +1 -0
  154. package/bundle/.next/static/chunks/app/api/diagnostics/route-73422dc4075cbfe0.js +1 -0
  155. package/bundle/.next/static/chunks/app/api/files/reveal/route-73422dc4075cbfe0.js +1 -0
  156. package/bundle/.next/static/chunks/app/api/gateway/control/route-73422dc4075cbfe0.js +1 -0
  157. package/bundle/.next/static/chunks/app/api/integrations/[integrationId]/status/route-73422dc4075cbfe0.js +1 -0
  158. package/bundle/.next/static/chunks/app/api/mission/route-73422dc4075cbfe0.js +1 -0
  159. package/bundle/.next/static/chunks/app/api/models/catalog/route-73422dc4075cbfe0.js +1 -0
  160. package/bundle/.next/static/chunks/app/api/models/providers/route-73422dc4075cbfe0.js +1 -0
  161. package/bundle/.next/static/chunks/app/api/onboarding/models/route-73422dc4075cbfe0.js +1 -0
  162. package/bundle/.next/static/chunks/app/api/onboarding/route-73422dc4075cbfe0.js +1 -0
  163. package/bundle/.next/static/chunks/app/api/openclaw/capabilities/route-73422dc4075cbfe0.js +1 -0
  164. package/bundle/.next/static/chunks/app/api/planner/[planId]/deploy/route-73422dc4075cbfe0.js +1 -0
  165. package/bundle/.next/static/chunks/app/api/planner/[planId]/document-rewrite/route-73422dc4075cbfe0.js +1 -0
  166. package/bundle/.next/static/chunks/app/api/planner/[planId]/route-73422dc4075cbfe0.js +1 -0
  167. package/bundle/.next/static/chunks/app/api/planner/[planId]/simulate/route-73422dc4075cbfe0.js +1 -0
  168. package/bundle/.next/static/chunks/app/api/planner/[planId]/turn/route-73422dc4075cbfe0.js +1 -0
  169. package/bundle/.next/static/chunks/app/api/planner/route-73422dc4075cbfe0.js +1 -0
  170. package/bundle/.next/static/chunks/app/api/reset/route-73422dc4075cbfe0.js +1 -0
  171. package/bundle/.next/static/chunks/app/api/runtimes/[runtimeId]/route-73422dc4075cbfe0.js +1 -0
  172. package/bundle/.next/static/chunks/app/api/settings/gateway/route-73422dc4075cbfe0.js +1 -0
  173. package/bundle/.next/static/chunks/app/api/settings/openclaw-binary/route-73422dc4075cbfe0.js +1 -0
  174. package/bundle/.next/static/chunks/app/api/settings/workspace-root/route-73422dc4075cbfe0.js +1 -0
  175. package/bundle/.next/static/chunks/app/api/snapshot/route-73422dc4075cbfe0.js +1 -0
  176. package/bundle/.next/static/chunks/app/api/stream/route-73422dc4075cbfe0.js +1 -0
  177. package/bundle/.next/static/chunks/app/api/system/open-terminal/route-73422dc4075cbfe0.js +1 -0
  178. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/abort/route-73422dc4075cbfe0.js +1 -0
  179. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/control/route-73422dc4075cbfe0.js +1 -0
  180. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/stream/route-73422dc4075cbfe0.js +1 -0
  181. package/bundle/.next/static/chunks/app/api/update/route-73422dc4075cbfe0.js +1 -0
  182. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/discovered-groups/route-73422dc4075cbfe0.js +1 -0
  183. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/route-73422dc4075cbfe0.js +1 -0
  184. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/edit-draft/route-73422dc4075cbfe0.js +1 -0
  185. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/files/route-73422dc4075cbfe0.js +1 -0
  186. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/surfaces/discovery/route-73422dc4075cbfe0.js +1 -0
  187. package/bundle/.next/static/chunks/app/api/workspaces/route-73422dc4075cbfe0.js +1 -0
  188. package/bundle/.next/static/chunks/app/files/page-a0e2fdb9c72008d3.js +1 -0
  189. package/bundle/.next/static/chunks/app/integrations/page-fbeb03fb416b56e4.js +1 -0
  190. package/bundle/.next/static/chunks/app/layout-a58705d0aa0318d2.js +1 -0
  191. package/bundle/.next/static/chunks/app/models/page-a22fedc08112e7a0.js +1 -0
  192. package/bundle/.next/static/chunks/app/not-found-73422dc4075cbfe0.js +1 -0
  193. package/bundle/.next/static/chunks/app/page-4f990fddc5f18dcf.js +1 -0
  194. package/bundle/.next/static/chunks/app/settings/page-28f1484e79b1be1f.js +1 -0
  195. package/bundle/.next/static/chunks/app/tasks/page-89536b0bec007ced.js +1 -0
  196. package/bundle/.next/static/chunks/d08e407b-86b21ef93cdf4fa3.js +1 -0
  197. package/bundle/.next/static/chunks/f6503f1c-1272160a304f8b44.js +1 -0
  198. package/bundle/.next/static/chunks/framework-840804a6e17cee72.js +1 -0
  199. package/bundle/.next/static/chunks/main-529ff68c072bfd3e.js +5 -0
  200. package/bundle/.next/static/chunks/main-app-70892a7dc1723083.js +1 -0
  201. package/bundle/.next/static/chunks/next/dist/client/components/builtin/app-error-73422dc4075cbfe0.js +1 -0
  202. package/bundle/.next/static/chunks/next/dist/client/components/builtin/forbidden-73422dc4075cbfe0.js +1 -0
  203. package/bundle/.next/static/chunks/next/dist/client/components/builtin/global-error-307c6fd9c934218d.js +1 -0
  204. package/bundle/.next/static/chunks/next/dist/client/components/builtin/unauthorized-73422dc4075cbfe0.js +1 -0
  205. package/bundle/.next/static/chunks/{webpack-49728cc9bb386219.js → webpack-1e021d6850c9ac01.js} +1 -1
  206. package/bundle/.next/static/css/6de56db1be7d3d06.css +3 -0
  207. package/bundle/server.js +1 -1
  208. package/package.json +1 -1
  209. package/bundle/.next/server/chunks/7125.js +0 -188
  210. package/bundle/.next/server/chunks/8155.js +0 -15
  211. package/bundle/.next/static/chunks/1994.af8e615920391b12.js +0 -1
  212. package/bundle/.next/static/chunks/2798.05bb8e435bca457c.js +0 -1
  213. package/bundle/.next/static/chunks/3254-31132332d1368b3c.js +0 -15
  214. package/bundle/.next/static/chunks/4424-08671f25c8f9ae84.js +0 -32
  215. package/bundle/.next/static/chunks/4a846800.17bbc9efb621dbb7.js +0 -1
  216. package/bundle/.next/static/chunks/7442-e148a49efcfa2d32.js +0 -188
  217. package/bundle/.next/static/chunks/8583-0efb0aa0937b762c.js +0 -1
  218. package/bundle/.next/static/chunks/app/_global-error/page-a39fe5a18111b91d.js +0 -1
  219. package/bundle/.next/static/chunks/app/_not-found/page-a39fe5a18111b91d.js +0 -1
  220. package/bundle/.next/static/chunks/app/api/agents/[agentId]/chat/route-a39fe5a18111b91d.js +0 -1
  221. package/bundle/.next/static/chunks/app/api/agents/route-a39fe5a18111b91d.js +0 -1
  222. package/bundle/.next/static/chunks/app/api/diagnostics/route-a39fe5a18111b91d.js +0 -1
  223. package/bundle/.next/static/chunks/app/api/files/reveal/route-a39fe5a18111b91d.js +0 -1
  224. package/bundle/.next/static/chunks/app/api/gateway/control/route-a39fe5a18111b91d.js +0 -1
  225. package/bundle/.next/static/chunks/app/api/mission/route-a39fe5a18111b91d.js +0 -1
  226. package/bundle/.next/static/chunks/app/api/models/catalog/route-a39fe5a18111b91d.js +0 -1
  227. package/bundle/.next/static/chunks/app/api/models/providers/route-a39fe5a18111b91d.js +0 -1
  228. package/bundle/.next/static/chunks/app/api/onboarding/models/route-a39fe5a18111b91d.js +0 -1
  229. package/bundle/.next/static/chunks/app/api/onboarding/route-a39fe5a18111b91d.js +0 -1
  230. package/bundle/.next/static/chunks/app/api/openclaw/capabilities/route-a39fe5a18111b91d.js +0 -1
  231. package/bundle/.next/static/chunks/app/api/planner/[planId]/deploy/route-a39fe5a18111b91d.js +0 -1
  232. package/bundle/.next/static/chunks/app/api/planner/[planId]/document-rewrite/route-a39fe5a18111b91d.js +0 -1
  233. package/bundle/.next/static/chunks/app/api/planner/[planId]/route-a39fe5a18111b91d.js +0 -1
  234. package/bundle/.next/static/chunks/app/api/planner/[planId]/simulate/route-a39fe5a18111b91d.js +0 -1
  235. package/bundle/.next/static/chunks/app/api/planner/[planId]/turn/route-a39fe5a18111b91d.js +0 -1
  236. package/bundle/.next/static/chunks/app/api/planner/route-a39fe5a18111b91d.js +0 -1
  237. package/bundle/.next/static/chunks/app/api/reset/route-a39fe5a18111b91d.js +0 -1
  238. package/bundle/.next/static/chunks/app/api/runtimes/[runtimeId]/route-a39fe5a18111b91d.js +0 -1
  239. package/bundle/.next/static/chunks/app/api/settings/gateway/route-a39fe5a18111b91d.js +0 -1
  240. package/bundle/.next/static/chunks/app/api/settings/openclaw-binary/route-a39fe5a18111b91d.js +0 -1
  241. package/bundle/.next/static/chunks/app/api/settings/workspace-root/route-a39fe5a18111b91d.js +0 -1
  242. package/bundle/.next/static/chunks/app/api/snapshot/route-a39fe5a18111b91d.js +0 -1
  243. package/bundle/.next/static/chunks/app/api/stream/route-a39fe5a18111b91d.js +0 -1
  244. package/bundle/.next/static/chunks/app/api/system/open-terminal/route-a39fe5a18111b91d.js +0 -1
  245. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/abort/route-a39fe5a18111b91d.js +0 -1
  246. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/control/route-a39fe5a18111b91d.js +0 -1
  247. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/stream/route-a39fe5a18111b91d.js +0 -1
  248. package/bundle/.next/static/chunks/app/api/update/route-a39fe5a18111b91d.js +0 -1
  249. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/discovered-groups/route-a39fe5a18111b91d.js +0 -1
  250. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/route-a39fe5a18111b91d.js +0 -1
  251. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/edit-draft/route-a39fe5a18111b91d.js +0 -1
  252. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/files/route-a39fe5a18111b91d.js +0 -1
  253. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/surfaces/discovery/route-a39fe5a18111b91d.js +0 -1
  254. package/bundle/.next/static/chunks/app/api/workspaces/route-a39fe5a18111b91d.js +0 -1
  255. package/bundle/.next/static/chunks/app/layout-7c2d7e515f68248b.js +0 -1
  256. package/bundle/.next/static/chunks/app/not-found-a39fe5a18111b91d.js +0 -1
  257. package/bundle/.next/static/chunks/app/page-9bd535a80e3968e2.js +0 -1
  258. package/bundle/.next/static/chunks/app/settings/page-3794e22c77091d4b.js +0 -1
  259. package/bundle/.next/static/chunks/d08e407b-a7a2691dd8d9de6b.js +0 -1
  260. package/bundle/.next/static/chunks/f6503f1c-7df4e7c4564148dc.js +0 -1
  261. package/bundle/.next/static/chunks/framework-c8a5f18418cd0e86.js +0 -1
  262. package/bundle/.next/static/chunks/main-2c126219b824eed3.js +0 -5
  263. package/bundle/.next/static/chunks/main-app-9a4481b0ab7b57f6.js +0 -1
  264. package/bundle/.next/static/chunks/next/dist/client/components/builtin/app-error-a39fe5a18111b91d.js +0 -1
  265. package/bundle/.next/static/chunks/next/dist/client/components/builtin/forbidden-a39fe5a18111b91d.js +0 -1
  266. package/bundle/.next/static/chunks/next/dist/client/components/builtin/global-error-38aa72b47d0b8f99.js +0 -1
  267. package/bundle/.next/static/chunks/next/dist/client/components/builtin/unauthorized-a39fe5a18111b91d.js +0 -1
  268. package/bundle/.next/static/css/7b10ac9fa66d7c17.css +0 -3
  269. package/bundle/.next/static/tsDQB0DKe1D5mWm-AHkYf/_buildManifest.js +0 -1
  270. /package/bundle/.next/static/{tsDQB0DKe1D5mWm-AHkYf → JJw_UWORQdbCo0tnqFq68}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=5151,exports.ids=[5151],exports.modules={5151:(a,b,c)=>{c.d(b,{er:()=>aX,b7:()=>aW,GM:()=>aZ,ZZ:()=>aY});var d=c(96876),e=c(88366),f=c(92273),g=c(39503);async function h(a=2e4,b=(0,g.rw)()){try{let c=await b.getStatus({timeoutMs:a});return{status:"fulfilled",value:c}}catch(a){return{status:"rejected",reason:a}}}async function i(a=2e4,b=(0,g.rw)()){try{let c=await b.getGatewayStatus({timeoutMs:a});return{status:"fulfilled",value:c}}catch(a){return{status:"rejected",reason:a}}}async function j(a=2e4,b=(0,g.rw)()){try{let c=await b.getModelStatus({timeoutMs:a});return{status:"fulfilled",value:c}}catch(a){return{status:"rejected",reason:a}}}class k{constructor(a){this.staleGraceMs=a,this.cache=null}clear(){this.cache=null}shouldRefresh(){return!this.cache||Date.now()-this.cache.capturedAt>this.staleGraceMs}getCachedPort(a=18789){return this.cache?.value.gateway?.port??a}write(a){this.cache={value:a,capturedAt:Date.now()}}resolve(a){return"fulfilled"===a.status?(this.write(a.value),{value:a.value,reusedCachedValue:!1}):this.cache&&Date.now()-this.cache.capturedAt<=this.staleGraceMs?{value:this.cache.value,reusedCachedValue:!0}:{value:void 0,reusedCachedValue:!1}}}var l=c(83761),m=c(75402),n=c(88978);class o{constructor(a){this.options=a,this.cache=null,this.promise=null}clear(){this.cache=null,this.promise=null}read(a,b={},c=!1){let d=p(a,b),e=this.cache,f=!!(e&&e.agentIdsKey===d),g=!!(f&&e&&e.expiresAt>Date.now());return!c&&g&&e?e.value:!c&&f&&e?(this.promise||(this.promise=this.loadForCurrentGeneration(a,b),this.promise.catch(()=>{}),this.promise.finally(()=>{this.promise=null}).catch(()=>{})),e.value):!c&&this.promise&&f&&e?e.value:this.promise&&!c||c&&this.promise?this.promise:(this.promise=this.loadForCurrentGeneration(a,b),this.promise.catch(()=>{}),this.promise.finally(()=>{this.promise=null}).catch(()=>{}),c?this.promise.then(a=>a):this.promise)}loadForCurrentGeneration(a,b){let c=this.options.getGeneration(),d=p(a,b);return this.options.loadState(a,b).then(a=>(c===this.options.getGeneration()&&(this.cache={agentIdsKey:d,value:a,expiresAt:Date.now()+this.options.ttlMs}),a))}}function p(a,b){return[...new Set(a.filter(Boolean))].sort().map(a=>`${a}:${b[a]??""}`).join("\0")}class q{constructor(a){this.options=a,this.cache=null,this.promise=null,this.generation=0}getGeneration(){return this.generation}clear(a={}){a.incrementGeneration&&(this.generation+=1),this.cache=null}async get(a={}){let b=this.cache,c=!!(b&&b.expiresAt>Date.now());if(!a.force&&c&&b)return r(b,a.includeHidden);if(!a.force&&b)return this.promise||(this.promise=this.loadForCurrentGeneration("interactive"),this.promise.catch(()=>{}),this.promise.finally(()=>{this.promise=null}).catch(()=>{})),r(b,a.includeHidden);if(a.force){this.generation+=1,this.cache=null,this.promise=this.loadForCurrentGeneration(a.loadProfile??"refresh"),this.promise.catch(()=>{});try{let b=await this.promise;return r(b,a.includeHidden)}finally{this.promise=null}}if(this.promise)return r(await this.promise,a.includeHidden);this.promise=this.loadForCurrentGeneration("interactive"),this.promise.catch(()=>{});try{let b=await this.promise;return r(b,a.includeHidden)}finally{this.promise=null}}loadForCurrentGeneration(a){let b=this.generation;return this.options.load(a,b).then(a=>(b===this.generation&&(this.cache={...a,expiresAt:Date.now()+this.options.ttlMs}),a))}}function r(a,b){return b?a.full:a.visible}class s{constructor(a){this.controller=new q(a)}getGeneration(){return this.controller.getGeneration()}clear(a={}){this.controller.clear(a)}getSnapshot(a={}){return this.controller.get(a)}}var t=c(25303),u=c(72761),v=c(56763),w=c(11782);function x(a,b){return{models:Array.from(new Set([...a.map(a=>a.model??"").filter(Boolean),...(b?.allowed??[]).filter(Boolean),b?.resolvedDefault??"",b?.defaultModel??""].filter(Boolean))).map(a=>{var b;let c,d,e,f=(d=(c=a.trim().toLowerCase()).split("/",1)[0]||"",e=c.includes("/")?c.slice(d.length+1):c,"ollama"===d?{contextWindow:(b=e).includes("qwen3.5")?262144:(b.includes("qwen")||b.includes("llama3.2")||b.includes("llama3.3")||b.includes("deepseek-r1"),131072),local:!0}:"openai"===d||"openai-codex"===d?{contextWindow:e.startsWith("gpt-5")?272e3:null,local:!1}:"anthropic"===d?{contextWindow:2e5,local:!1}:"google"===d||"gemini"===d?{contextWindow:1e6,local:!1}:"deepseek"===d?{contextWindow:64e3,local:!1}:"mistral"===d?{contextWindow:128e3,local:!1}:"openrouter"===d||"xai"===d?{contextWindow:null,local:!1}:{contextWindow:null,local:null});return{key:a,name:a,input:"text",contextWindow:f.contextWindow,local:f.local,available:!0,tags:[],missing:!1}})}}function y(a,b=[]){let c=A(b.find(a=>a.isDefault))||A(b.find(a=>!!A(a)))||a.find(a=>a.default)?.model||a.find(a=>!!a.model)?.model||null;if(c)return{defaultModel:c,resolvedDefault:c}}function z(a){return"string"==typeof a&&a.trim()?a.trim():null}function A(a){return z(a?.modelId)??z(a?.model)}var B=c(76760),C=c.n(B),D=c(21916);function E(a,b){let c=new Set,d=new Map;for(let b of a){let a=function(a){var b;let c=H(a.workspace),d=(b=a.identityName||a.name||a.id,(0,D.Nk)(b)?.toLocaleLowerCase("en-US")??"");return c&&d?`${c}\0${d}`:null}(b);if(!a)continue;let c=d.get(a)??[];c.push(b),d.set(a,c)}for(let a of d.values()){if(a.length<2)continue;let d=a.filter(G);if(0!==d.length)for(let e of a)!d.includes(e)&&function(a,b){let c=H(a.agentDir),d=H(C().join(b,"agents"));return!!(c&&d&&c.startsWith(`${d}${C().sep}`))}(e,b)&&c.add(F(e))}return a.filter(a=>!c.has(F(a)))}function F(a){return`${a.id}\0${H(a.agentDir)}`}function G(a){let b=H(a.workspace),c=H(a.agentDir);return!!b&&!!c&&c.startsWith(`${C().join(b,".openclaw","agents")}${C().sep}`)}function H(a){let b=(0,D.Nk)(a);return b?C().normalize(b):""}let I="Deferred to background refresh.";class J{constructor(a=3e5){this.ttlMs=a,this.cache=null,this.refreshPromise=null}clear(){this.cache=null,this.refreshPromise=null}shouldRefresh(){return!this.cache||Date.now()-this.cache.capturedAt>this.ttlMs}resolve(a){return K(a,this.cache,a=>{this.cache=a},this.ttlMs)}scheduleRefresh(a){!this.refreshPromise&&this.shouldRefresh()&&(this.refreshPromise=(async()=>{try{let b=await a();"fulfilled"===b.status&&(this.cache={value:b.value,capturedAt:Date.now()})}catch{}finally{this.refreshPromise=null}})(),this.refreshPromise.catch(()=>{}))}}function K(a,b,c,d=3e5){return"fulfilled"===a.status?(c({value:a.value,capturedAt:Date.now()}),{value:a.value,reusedCachedValue:!1,failed:!1}):b&&Date.now()-b.capturedAt<=d?{value:b.value,reusedCachedValue:!0,failed:!0}:{value:void 0,reusedCachedValue:!1,failed:!0}}function L(){return{status:"rejected",reason:Error(I)}}function M(a){return"rejected"===a.status&&a.reason instanceof Error&&a.reason.message===I}var N=c(28182),O=c(35456),P=c(51455),Q=c(58889);async function R(a){try{let b=await (0,P.readFile)(a,"utf8"),c=JSON.parse(b),d=c&&"object"==typeof c&&!Array.isArray(c)?c:{version:1,channels:[]},e=Array.isArray(d.channels)?d.channels.map(a=>(0,Q.kf)(a)).filter(a=>!!a):[];return{status:"fulfilled",value:(0,Q._E)({version:1,channels:e})}}catch(a){return{status:"rejected",reason:a}}}var S=c(99254);async function T(a){let b=await R(m.q6),c="fulfilled"===b.status?b.value:(0,Q._E)({version:1,channels:[]}),d="interactive"===a?[]:await (0,S.QT)(),e=(0,S.fy)((0,S.D4)([...d,...(0,S.G7)(c)]),c);return{channelRegistry:c,channelAccounts:e}}var U=c(65493),V=c(38610);function W(a){if(!a)return null;try{return new URL(a).hostname}catch{return null}}function X(a){let b=a.trim().toLowerCase().replace(/^\[|\]$/g,"");return"localhost"===b||"::1"===b||"0:0:0:0:0:0:0:1"===b||/^127\.(?:\d{1,3}\.){2}\d{1,3}$/.test(b)}function Y(a,b){let c=[...a.issues,..."failed"===b.status&&b.error?[`Latest runtime smoke test failed for ${b.agentId??"unknown agent"}. ${b.error}`]:[]];return{...a,smokeTest:b,issues:c}}var Z=c(15292),$=c(38798),_=c(7565),aa=c(48161),ab=c.n(aa);let ac=["Audit the selected workspace and generate a concrete first task batch.","Plan a multi-agent delivery mission for the current product goal.","Review active runtimes, identify blockers, and propose the next handoff."];function ad(a){return{visible:a,full:a}}function ae(a){return a||C().join(ab().homedir(),"Documents","Shared","projects")}async function af(a,b,c){let d=a.map(a=>a.id).filter(Boolean),e=Object.fromEntries(a.filter(a=>a.id).map(a=>[a.id,a.agentDir]));return Y(await c.read(d,e),(0,O.fj)(b))}async function ag(a){var b,c,d,f,g,h;let i,j,k,l,m,n,o,p,q,r,s,u,v,w,x=(0,D.QL)(a.models,a.modelStatus),y=(b=a.status,b?.securityAudit?.findings?.filter(a=>"warn"===a.severity).map(a=>a.title||a.detail||"Security warning")??[]),z=(c={status:a.status,fallbackVersion:await (0,e.YP)()??void 0},m=(0,D.Nk)(c.status?.runtimeVersion||c.status?.overview?.version||c.status?.version)??c.fallbackVersion??void 0,n=(0,D.Nk)(c.status?.update?.registry?.latestVersion??void 0),o=(0,D.nn)(c.status?.update?.registry?.error??void 0),p=m&&n?(0,D.QK)(n,m)>0:void 0,q=(0,D.mB)({currentVersion:m,latestVersion:n,updateError:o,legacyInfo:c.status?.overview?.update}),{currentVersion:m,latestVersion:n,updateAvailable:p,updateError:o,updateInfo:q}),A=(0,Z.Df)(await (0,Z.bq)(),(0,e.T5)()),B="interactive"===a.profile?(0,t.Bc)()??void 0:await (0,t.N3)().catch(()=>void 0);"interactive"!==a.profile||B||(0,t.Cs)();let C=(0,_.Xz)().getDiagnostics?.(),E=(0,V.wi)((0,$.Lo)(),C).map(a=>`gateway.${a.operation}: Gateway-first request fell back to CLI (${a.kind}): ${a.issue} Recovery: ${a.recovery}`);return f={gatewayStatus:a.gatewayStatus,status:a.status,configuredWorkspaceRoot:a.configuredWorkspaceRoot,workspaceRoot:ae(a.configuredWorkspaceRoot),configuredGatewayUrl:a.configuredGatewayUrl,hasOpenClawSignal:a.hasOpenClawSignal,securityWarnings:y,runtimeDiagnostics:a.runtimeDiagnostics,openClawBinarySelection:A,modelReadiness:x,capabilityMatrix:B,commandHistory:(0,e.ik)(),transport:C,versionDiagnostics:z,issues:(d={payloadResults:a.payloadResults,gatewayStatusRejectedWithCachedValue:a.gatewayStatusRejectedWithCachedValue,payloadReuse:a.payloadReuse,runtimeIssues:[...a.runtimeDiagnostics.issues,...E]},[...(0,D.Lp)(Object.fromEntries(Object.entries(d.payloadResults).filter(([,a])=>!M(a)))),...d.gatewayStatusRejectedWithCachedValue?["gatewayStatus: Reusing the last successful gateway status after a transient OpenClaw check failure."]:[],...Object.entries(d.payloadReuse).map(([a,b])=>{var c;return c=a,b.reusedCachedValue?`${c}: Reusing the last successful payload while a slow OpenClaw command refreshes in the background.`:null}).filter(a=>!!a),...d.runtimeIssues])},r=(f.transport?.recentFallbackDiagnostics??[]).map(a=>({...a,operationLabel:(0,U.Hi)(a.operation)})),s=(0,V.wi)(r,f.transport),u=[...f.securityWarnings,...(g=f.gatewayStatus,h=f.configuredGatewayUrl,i=[],j=W(g?.gateway?.probeUrl),k=W(h??void 0),l=(0,D.Nk)(g?.gateway?.bindMode??void 0)?.toLowerCase(),j&&!X(j)&&i.push("OpenClaw Gateway is reachable on a non-loopback host. AgentOS mutation APIs stay restricted to same-origin localhost requests."),k&&!X(k)&&i.push("AgentOS is configured to use a non-loopback Gateway URL. Keep AgentOS itself bound to localhost unless an explicit operator tunnel is in place."),l&&!/(local|loopback|localhost)/i.test(l)&&i.push("OpenClaw Gateway bind mode is not local-only. Review Gateway exposure before using operator write actions."),Array.from(new Set(i)))],w=(v=function(a){var b;let c,d=[a?.rpc?.error,a?.rpc?.capability,a?.rpc?.auth?.capability].filter(a=>"string"==typeof a&&!!a.trim()).join("\n");if(!/scope upgrade pending approval|pairing_pending|device token scope mismatch|connected_no_operator_scope|missing operator/i.test(d))return null;let e=(b=d,c=/\brequestId:\s*([a-f0-9-]{12,})\b/i.exec(b),c?.[1]??null);return e?`OpenClaw Gateway device access is waiting for operator-scope approval (${e}). Run Repair access in Gateway settings or approve that request with OpenClaw devices, then retry.`:"OpenClaw Gateway device access is waiting for operator-scope approval. Run Repair access in Gateway settings or approve the pending OpenClaw device request, then retry."}(f.gatewayStatus))?[v,...f.issues.filter(a=>{var b;return b=a,!/Timed out waiting for OpenClaw Gateway method|Gateway-native operation failed; CLI fallback disabled|Native Gateway: Unreachable/i.test(b)})]:f.issues,{installed:!0,loaded:!!f.gatewayStatus?.service?.loaded,rpcOk:!!f.gatewayStatus?.rpc?.ok,health:(0,D.YO)({rpcOk:f.gatewayStatus?.rpc?.ok,warningCount:u.length,runtimeIssueCount:f.runtimeDiagnostics.issues.length,hasOpenClawSignal:f.hasOpenClawSignal}),version:f.versionDiagnostics.currentVersion,latestVersion:f.versionDiagnostics.latestVersion,updateAvailable:f.versionDiagnostics.updateAvailable,updateError:f.versionDiagnostics.updateError,updateRoot:(0,D.Nk)(f.status?.update?.root??void 0),updateInstallKind:(0,D.Nk)(f.status?.update?.installKind??void 0),updatePackageManager:(0,D.Nk)(f.status?.update?.packageManager??void 0),workspaceRoot:f.workspaceRoot,configuredWorkspaceRoot:f.configuredWorkspaceRoot,dashboardUrl:`http://127.0.0.1:${f.gatewayStatus?.gateway?.port??18789}/`,gatewayUrl:f.gatewayStatus?.gateway?.probeUrl||"ws://127.0.0.1:18789",configuredGatewayUrl:f.configuredGatewayUrl??null,bindMode:f.gatewayStatus?.gateway?.bindMode,port:f.gatewayStatus?.gateway?.port,updateChannel:f.status?.updateChannel||"stable",updateInfo:f.versionDiagnostics.updateInfo,serviceLabel:f.gatewayStatus?.service?.label,openClawBinarySelection:f.openClawBinarySelection,modelReadiness:f.modelReadiness,capabilityMatrix:f.capabilityMatrix,gatewayFallbackDiagnostics:r,gatewayFallbackReasons:s.map(a=>`${a.operationLabel} (${a.operation}): ${a.kind}: ${a.issue} Recovery: ${a.recovery}`),runtime:f.runtimeDiagnostics,commandHistory:f.commandHistory,transport:f.transport,securityWarnings:u,issues:w}}function ah(a){return function(a,b,c){let d=new Map;for(let a of b)d.set(a.modelId,(d.get(a.modelId)??0)+1);return a.map(a=>({id:a.key,name:a.name,provider:(0,w.AV)(a.key,c),input:a.input,contextWindow:a.contextWindow,local:a.local,available:a.available,missing:a.missing,tags:a.tags,usageCount:d.get(a.key)??0}))}(a.models,a.agents,a.modelStatus)}async function ai(a,b){try{var c,d,e;let f=(c=a,d=b,e=[...c.flatMap(a=>{let b=[],c=an(a.workspace);return c&&b.push(C().join(c,".openclaw","agents")),b}),C().join(d,"agents")],Array.from(new Set(e.filter(Boolean)))),g=await aj(f);return{status:"fulfilled",value:{sessions:g}}}catch(a){return{status:"rejected",reason:a}}}async function aj(a){let b=new Map;for(let c of a){let a;try{a=await (0,P.readdir)(c,{withFileTypes:!0})}catch{continue}for(let d of a){let a,e;if(!d.isDirectory())continue;let f=C().join(c,d.name,"sessions","sessions.json");try{a=await (0,P.readFile)(f,"utf8")}catch{continue}try{e=JSON.parse(a)}catch{continue}if(Array.isArray(e)){for(let a of e){if(!am(a))continue;let c=ak(a,d.name);b.has(c.key)||b.set(c.key,c)}continue}if(am(e))for(let[a,c]of Object.entries(e)){if(!am(c))continue;let e=ak(c,d.name,a);b.has(e.key)||b.set(e.key,e)}}}return Array.from(b.values()).sort((a,b)=>(b.updatedAt??0)-(a.updatedAt??0))}function ak(a,b,c){var d;let e=an("string"==typeof a.sessionId?a.sessionId:void 0),f=al(a,"updatedAt"),g=al(a,"inputTokens"),h=al(a,"outputTokens"),i=al(a,"totalTokens"),j=al(a,"cacheRead"),k=al(a,"ageMs")??("number"==typeof(d=f)?Math.max(Date.now()-d,0):void 0),l=an("string"==typeof a.model?a.model:void 0),m=an("string"==typeof a.modelProvider?a.modelProvider:void 0),n=an("string"==typeof a.key?a.key:c)??e??`${b}:${f??"session"}`;return{agentId:b,key:n,sessionId:e||void 0,updatedAt:f,ageMs:k,inputTokens:g,outputTokens:h,totalTokens:i??("number"==typeof g||"number"==typeof h?(g??0)+(h??0):void 0),model:l||void 0,modelProvider:m||void 0,cacheRead:j,kind:function(a,b){let c=an("string"==typeof a.kind?a.kind:"string"==typeof a.chatType?a.chatType:void 0);if(c)return c;let d=am(a.deliveryContext)?a.deliveryContext:null,e=am(a.origin)?a.origin:null;if("heartbeat"===an("string"==typeof d?.to?d.to:void 0)||"heartbeat"===an("string"==typeof e?.provider?e.provider:void 0))return"direct";let f=an(b);return f&&/:(direct|dm|private):/i.test(f)?"direct":f&&/:(group|channel|thread):/i.test(f)?"group":"task"}(a,n)}}function al(a,b){let c=a[b];return"number"==typeof c&&Number.isFinite(c)?c:void 0}function am(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function an(a){if("string"!=typeof a)return null;let b=a.trim();return b.length>0?b:null}async function ao(){try{let a=await (0,P.readFile)(C().join(m.wh,"openclaw.json"),"utf8"),b=JSON.parse(a);return{status:"fulfilled",value:function(a,b){let c=a;for(let a of b.split(".")){var d;if(!((d=c)&&"object"==typeof d&&!Array.isArray(d))||!Object.hasOwn(c,a))return;c=c[a]}return c}(b,"gateway.remote.url")??void 0}}catch(a){if("ENOENT"===("object"==typeof a&&a&&"code"in a?a.code:void 0))return{status:"fulfilled",value:void 0};return{status:"rejected",reason:a}}}async function ap(a){try{var b;let c,d=await (0,g.rw)().listAgents({timeoutMs:15e3});return{status:"fulfilled",value:(b=m.wh,c=new Map(a.map(a=>[a.id,a])),E(d.agents.map(a=>{let e=c.get(a.id),f=a.identity??e?.identity,g=(0,D.Nk)(a.workspace)??(0,D.Nk)(e?.workspace)??"",h=a.model?.primary??e?.model;return{id:a.id,name:a.name||f?.name||e?.name||a.id,identityName:f?.name,identityEmoji:f?.emoji,identitySource:a.identity?"gateway":e?.identity?"config":void 0,workspace:g,agentDir:e?.agentDir||C().join(b,"agents",a.id,"agent"),model:h,isDefault:a.id===d.defaultId||!!e?.default}}),b))}}catch(a){return{status:"rejected",reason:a}}}async function aq(a){try{let a=await (0,g.rw)().listSessions({limit:500,includeGlobal:!1,includeUnknown:!1},{timeoutMs:15e3});if(!a||!Array.isArray(a.sessions))throw Error("OpenClaw Gateway sessions.list returned an invalid payload.");return{status:"fulfilled",value:{sessions:a.sessions}}}catch{return ai(a,m.wh)}}var ar=c(20078),as=c(37110),at=c(80410);function au(a,b){return(b.updatedAt??0)-(a.updatedAt??0)}var av=c(70016),aw=c(25793);async function ax(){return(0,as.Ff)()}async function ay(a,b){let c=await (0,ar.cf)();return(0,at.kw)((0,ar.ZO)(a,c),b)}async function az(a){var b;let c,d=(await Promise.all(a.sessions.map(b=>(0,aw.V9)(b,a.agentConfig,a.agentsList,(b,c,d)=>(0,av.$Z)(b,c,d,{resolveWorkspaceId:a.resolveWorkspaceId}))))).flat(),e=(0,v.Em)(a.runtimeSnapshot,{agentConfig:a.agentConfig,agentsList:a.agentsList,resolveWorkspaceId:a.resolveWorkspaceId}),f=[...a.systemProfile?[]:await (0,u.Qc)(),...e,...d],g=(0,at.CD)(f,a.dispatchRecords),h=await (0,at.Ip)(g,a.dispatchRecords,{buildObservedRuntime:as.DO,persistObservation:as.vH,reconcileRuntimeState:as.Yp});return c=function(a,b,c={}){let d=new Map,e=new Set(a.map(a=>a.id));for(let b of a)d.set(b.id,b);for(let[a,c]of b.entries()){if(e.has(a))continue;let b={...c,status:"stalled"===c.status?"stalled":"cancelled"===c.status?"cancelled":"completed",metadata:{...c.metadata,historical:!0}};d.set(a,b)}let f=function(a){let b=new Map;for(let c of a){let a=c.agentId||c.workspaceId||"global",d=b.get(a)??[];d.push(c),b.set(a,d)}return Array.from(b.values()).flatMap(a=>{let b=a.sort(au),c=new Map(b.slice(0,8).map(a=>[a.id,a]));for(let a of b){var d;"string"==typeof(d=a).metadata.dispatchId&&d.metadata.dispatchId.trim().length>0&&!0!==d.metadata.historical&&c.set(a.id,a)}return Array.from(c.values()).sort(au)})}(Array.from(d.values())),g=new Map(f.filter(a=>!c.excludeFromCache?.(a)).map(a=>[a.id,a]));return{runtimes:f.sort(au),cache:g}}([...g,...h],(b=a.historyStore).cache,{excludeFromCache:at.U8}),b.cache=c.cache,c.runtimes}var aA=c(93628),aB=c(71065),aC=c(57419),aD=c(9443),aE=c(54252),aF=c(96109),aG=c(15612);async function aH(a){let b=new Map,c=new Map,d=new Map,e=[],f=[],g=new Map((a.status?.heartbeat?.agents??[]).map(a=>[a.agentId,a])),h=new Map(a.agentConfig.map(a=>[a.id,a])),i=new Map;for(let b of a.sessions){if(!b.agentId)continue;let a=i.get(b.agentId)??[];a.push(b),i.set(b.agentId,a)}for(let j of(await Promise.all(a.bindings.workspacePaths.map(async b=>{let e=a.bindings.activeAgentIdsByWorkspacePath.get(b)??[],f=await (0,Q.QO)(b,e);await (0,aE.u)(b),c.set(b,f),d.set(b,await (0,aD.xL)(b,f.template,f.rules??aG.eY))})),await Promise.all(a.bindings.workspaceBoundAgents.map(async b=>{var e;let f,j,k,l,m,n,o,p,q,r,s,t,u,v=h.get(b.id),w=a.bindings.resolveWorkspaceId(b.workspace),x=i.get(b.id)??[],y=c.get(b.workspace)??await (0,Q.OL)(b.workspace);c.set(b.workspace,y);let z=y.agents.find(a=>a.id===b.id)??null,A=await (0,aC.L)(b.workspace,{agentId:b.id,agentName:v?.name||b.name||v?.identity?.name||b.identityName||b.id,configuredSkills:(0,aB.AB)(v?.skills??[]),configuredTools:Array.from(new Set([...z?.toolIds??[],...v?.tools?.fs?.workspaceOnly||z?.policy?.fileAccess==="workspace-only"?["fs.workspaceOnly"]:[]].filter(Boolean))),template:y.template,rules:y.rules??aG.eY,workspaceBootstrapProfile:d.get(b.workspace)??await (0,aD.xL)(b.workspace,y.template,y.rules??aG.eY)}),B=a.runtimes.filter(a=>a.agentId===b.id).sort(au),C=g.get(b.id);return e={rawAgent:b,configured:v,identityOverrides:null,workspaceId:w,sessionList:x,manifestAgent:z,agentRuntimes:B,gatewayRpcOk:!!(a.gatewayStatus?.rpc?.ok||a.hasOpenClawSignal),heartbeat:C,profile:A},f=(0,aB.AB)(e.configured?.skills??[]),j=(0,D.Nk)(e.identityOverrides?.name)||e.configured?.name||e.rawAgent.name||e.configured?.identity?.name||e.rawAgent.identityName||e.rawAgent.id,k=e.manifestAgent?.policy??(0,aA.g0)((0,aA.qF)({skills:f,id:e.rawAgent.id,name:j}),{fileAccess:e.configured?.tools?.fs?.workspaceOnly?"workspace-only":"extended"}),l=(0,D.Am)([...e.manifestAgent?.toolIds??[],..."workspace-only"===k.fileAccess?["fs.workspaceOnly"]:[]]),m=e.rawAgent.model||e.configured?.model||"unassigned",n=e.agentRuntimes.sort(au),o=(0,D.Am)(n.flatMap(a=>a.toolNames??[])),p=n.map(a=>a.id),q=n[0],r=e.sessionList.map(a=>a.updatedAt??0).sort((a,b)=>b-a).at(0)||null,s=(0,D.yv)({rpcOk:e.gatewayRpcOk,activeRuntime:q,heartbeatEnabled:!!e.heartbeat?.enabled,lastActiveAt:r}),t={id:e.rawAgent.id,name:j,identityName:(0,D.Nk)(e.identityOverrides?.name)||e.configured?.identity?.name||e.rawAgent.identityName||void 0,workspaceId:e.workspaceId,workspacePath:e.rawAgent.workspace,agentDir:e.rawAgent.agentDir,modelId:m,isDefault:!!(e.rawAgent.isDefault||e.configured?.default),status:s,sessionCount:e.sessionList.length,lastActiveAt:r,currentAction:(0,D.iP)({runtime:q,heartbeatEvery:e.heartbeat?.every??null,status:s}),activeRuntimeIds:p,heartbeat:{enabled:!!e.heartbeat?.enabled,every:e.heartbeat?.every??null,everyMs:e.heartbeat?.everyMs??null},identity:{emoji:(0,D.Nk)(e.identityOverrides?.emoji)||e.configured?.identity?.emoji||e.rawAgent.identityEmoji,theme:(0,D.Nk)(e.identityOverrides?.theme)||e.configured?.identity?.theme,avatar:(0,D.Nk)(e.identityOverrides?.avatar)||e.configured?.identity?.avatar,source:e.rawAgent.identitySource},profile:e.profile,skills:f,tools:l,observedTools:o,policy:k},u=[{id:`edge:${e.workspaceId}:${t.id}:contains`,sourceId:e.workspaceId,targetId:t.id,kind:"contains",label:"workspace member"},{id:`edge:${t.id}:${m}:model`,sourceId:t.id,targetId:m,kind:"uses-model",label:"model assignment"},...p.map(a=>({id:`edge:${t.id}:${a}:run`,sourceId:t.id,targetId:a,kind:"active-run",label:"runtime"}))],{agent:t,workspacePath:e.rawAgent.workspace,workspaceId:e.workspaceId,primaryModel:m,sessionCount:e.sessionList.length,activeRuntimeIds:p,relationships:u}})))){let c=function(a,b,c){var d;let e=c(b),f=a.get(e);if(f)return f;let g={id:c(b),name:(d=b,(C().basename(d)||d).split(/[-_]/g).filter(Boolean).map(a=>a[0].toUpperCase()+a.slice(1)).join(" ")),slug:C().basename(b).toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),path:b,kind:"workspace",agentIds:[],modelIds:[],activeRuntimeIds:[],totalSessions:0,health:"standby",bootstrap:{template:null,sourceMode:null,agentTemplate:null,coreFiles:[],optionalFiles:[],folders:[],projectShell:[],localSkillIds:[]},capabilities:{skills:[],tools:[],workspaceOnlyAgentCount:0},channels:[]};return a.set(e,g),g}(b,j.workspacePath,a.bindings.resolveWorkspaceId);c.agentIds.push(j.agent.id),c.modelIds.push(j.primaryModel),c.activeRuntimeIds.push(...j.activeRuntimeIds),c.totalSessions+=j.sessionCount,e.push(j.agent),f.push(...j.relationships)}let j=new Map;for(let a of e){let b=j.get(a.workspaceId)??[];b.push(a),j.set(a.workspaceId,b)}return{workspaces:await Promise.all(Array.from(b.values()).map(async a=>{var b;let d=j.get(a.id)??[],f=c.get(a.path)??null,g=await (0,aD.aL)(a.path,d,f??void 0);return{...(b={workspace:a,manifest:f,metadata:g,allAgents:e}).workspace,name:b.manifest?.name??b.workspace.name,modelIds:(0,D.Am)(b.workspace.modelIds),activeRuntimeIds:(0,D.Am)(b.workspace.activeRuntimeIds),health:(0,D.OZ)(b.workspace.agentIds,b.allAgents),bootstrap:b.metadata.bootstrap,capabilities:b.metadata.capabilities,channels:b.workspace.channels??[],agentIds:b.workspace.agentIds,totalSessions:b.workspace.totalSessions}})),agents:e,relationships:f,manifestByWorkspace:c}}async function aI({generation:a,settings:b,localGatewayStatus:c,openclawInstalled:f,configuredWorkspaceRoot:g,gatewayStatusCache:h}){let j=await i(3e3),k=h.resolve(j).value??c,o=await (0,l.k)(m.wh),p="fulfilled"===o.status?o.value:[],q=Y(await (0,n.t)(m.wh,p.map(a=>a.id).filter(Boolean),{agentDirs:Object.fromEntries(p.filter(a=>a.id).map(a=>[a.id,a.agentDir]))}),(0,O.fj)(b)),r=y(p),s=x(p,r),u=(0,D.QL)(s.models,r),v=!!k?.rpc?.ok,w=!!(k?.service?.loaded||v),z=f&&v&&q.stateWritable&&q.sessionStoreWritable,A=(0,_.Xz)().getDiagnostics?.(),B=(A?.recentFallbackDiagnostics??[]).map(a=>({...a,operationLabel:(0,U.Hi)(a.operation)})),C=(0,V.wi)(B,A),E=C.map(a=>`gateway.${a.operation}: Gateway-first request fell back to CLI (${a.kind}): ${a.issue} Recovery: ${a.recovery}`),F=[v?null:"OpenClaw Gateway RPC is not ready.",...q.issues,...E].filter(a=>!!a),G=(0,d.jJ)(F[0]??"OpenClaw system readiness snapshot.",{installed:f,loaded:w,rpcOk:v});return{...G,generatedAt:new Date().toISOString(),revision:a,mode:"live",diagnostics:{...G.diagnostics,installed:f,loaded:w,rpcOk:v,health:z?"healthy":f?"degraded":"offline",workspaceRoot:ae(g),configuredWorkspaceRoot:g,gatewayUrl:k?.gateway?.probeUrl??G.diagnostics.gatewayUrl,bindMode:k?.gateway?.bindMode,port:k?.gateway?.port,serviceLabel:k?.service?.label,openClawBinarySelection:(0,Z.Df)(await (0,Z.bq)(),(0,e.T5)()),modelReadiness:u,capabilityMatrix:(0,t.Bc)()??void 0,gatewayFallbackDiagnostics:B,gatewayFallbackReasons:C.map(a=>`${a.operationLabel} (${a.operation}): ${a.kind}: ${a.issue} Recovery: ${a.recovery}`),runtime:q,commandHistory:(0,e.ik)(),transport:A,issues:F},missionPresets:ac}}let aJ=null,aK=null,aL=null,aM=null,aN=null,aO=null,aP=null,aQ={cache:new Map},aR=new J,aS=new k(6e4),aT=new s({ttlMs:3e4,load:(a,b)=>a$({profile:a,generation:b})}),aU=new o({ttlMs:3e5,getGeneration:()=>aT.getGeneration(),loadState:(a,b)=>(0,n.t)(m.wh,a,{agentDirs:b})});function aV(){aQ.cache=new Map}function aW(){aV()}function aX(){aT.clear({incrementGeneration:!0}),aU.clear(),aS.clear(),aR.clear(),aJ=null,aK=null,aL=null,aM=null,aN=null,aO=null,aP=null,aV()}function aY(){aT.clear()}async function aZ(a={}){return aT.getSnapshot(a)}async function a$({profile:a="interactive",generation:b=aT.getGeneration()}={}){let c=await (0,f.i)(),g=await (0,e.Vg)()||!!c?.rpc?.ok;if(!g)return ad((0,d.jJ)("OpenClaw CLI is not installed on this machine.",{installed:!1,loaded:!!c?.service?.loaded,rpcOk:!1}));try{var k,n,o,p;let d,e,q,r,s,w,A,B,F,G,H,I,J,P,Q="system"===a,R=await (0,O.tl)();Q||(0,u.hC)();let S=(0,O.qB)(R.workspaceRoot)??null;if(Q)return ad(await aI({generation:b,settings:R,localGatewayStatus:c,openclawInstalled:g,configuredWorkspaceRoot:S,gatewayStatusCache:aS}));let U=Q?L():await ao(),V=aR.shouldRefresh(),W=aS.shouldRefresh(),X=!aM||Date.now()-aM.capturedAt>3e5;if("interactive"===a||Q){let a=!c&&V,b=!Q&&X,f=W?i(15e3):Promise.resolve(L()),g=a?h(15e3):Promise.resolve(L()),k=(0,l.k)(m.wh),n=b?j(15e3):Promise.resolve(L());[d,e,r,w]=await Promise.all([f,g,k,n]),q=L(),s=L(),A=L(),V&&!a&&aR.scheduleRefresh(()=>h(15e3))}else[e,d,r,w]=await Promise.all([h(45e3),i(45e3),(0,l.k)(m.wh),j(45e3)]),q=L(),s=L(),A=L();let Y=aS.resolve(d);if(!Y.value&&c&&(Y={value:c,reusedCachedValue:!1}),!Y.value){let a=await (0,f.i)(aS.getCachedPort());a&&(aS.write(a),Y={value:a,reusedCachedValue:!1})}let Z=Y.value,$="fulfilled"===U.status?(k=U.value,"string"==typeof k?(0,D.Nk)(k):k&&"object"==typeof k&&"value"in k&&"string"==typeof k.value?(0,D.Nk)(k.value):void 0):void 0,_=aR.resolve(e),aa=K(r,aK,a=>{aK=a}),ab=aa.value??[];M(q)&&!Q&&(q=await ap(ab));let ae=Q?L():await aq(ab),ai=(0,t.Bc)()?.operations?.runtimeSnapshot?.mode,aj=!Q&&"degraded"!==ai&&"disabled"!==ai&&"cli-fallback"!==ai,ak=Q?L():aj?await (0,v.Jb)("interactive"===a?8e3:15e3):L(),al=K(q,aJ,a=>{aJ=a}),am=K(s,aL,a=>{aL=a}),an=K(w,aM,a=>{aM=a}),ar=K(ae,aN,a=>{aN=a}),as=K(ak,aO,a=>{aO=a}),at=K(A,aP,a=>{aP=a}),au=_.value,av=al.value??(n=m.wh,E(ab.map(a=>({id:a.id,name:a.name||a.identity?.name||a.id,identityName:a.identity?.name,identityEmoji:a.identity?.emoji,identitySource:a.identity?"config":void 0,workspace:(0,D.Nk)(a.workspace)??"",agentDir:a.agentDir||C().join(n,"agents",a.id,"agent"),model:a.model,isDefault:!!a.default})),n)),aw=function(a,b,c=[]){let d=y(b,c);if(!a)return d;let e=z(a.defaultModel)??z(d?.defaultModel)??null,f=z(a.resolvedDefault)??z(d?.resolvedDefault)??e;return{...a,defaultModel:e,resolvedDefault:f}}(an.value,ab,av),aA=(o={agentConfig:ab,modelStatus:aw},x(o.agentConfig,o.modelStatus)),aB=am.value?.models??aA.models,aC=at.value??[],aD="fulfilled"===d.status||"fulfilled"===e.status||"fulfilled"===q.status||"fulfilled"===r.status||"fulfilled"===s.status||"fulfilled"===w.status||"fulfilled"===ae.status||"fulfilled"===ak.status||"fulfilled"===A.status,aE=af(av.map(a=>({id:a.id,agentDir:a.agentDir})),R,aU);aE.catch(()=>{});let aG=await ax(),aT=await ay(ar.value?.sessions??[],aG),{channelRegistry:aV,channelAccounts:aW}=await T(a),aX=function(a){let b=a.filter(a=>!!a.workspace),c=Array.from(new Set(b.map(a=>a.workspace))),d=new Map;for(let a of b){let b=d.get(a.workspace)??[];b.push(a.id),d.set(a.workspace,b)}return{workspaceBoundAgents:b,workspacePaths:c,activeAgentIdsByWorkspacePath:d,resolveWorkspaceId:(0,aF.Fm)(c)}}(av),aY=await az({sessions:aT,agentConfig:ab,agentsList:av,runtimeSnapshot:as.value,systemProfile:Q,dispatchRecords:aG,resolveWorkspaceId:aX.resolveWorkspaceId,historyStore:aQ}),{workspaces:aZ,agents:a$,relationships:a_,manifestByWorkspace:a0}=await aH({bindings:aX,agentConfig:ab,sessions:aT,status:au,gatewayStatus:Z,hasOpenClawSignal:aD,runtimes:aY}),{visibleWorkspaces:a1,visibleAgents:a2,visibleRuntimes:a3,visibleRelationships:a4}=(p={workspaces:aZ,agents:a$,runtimes:aY,relationships:a_,isWorkspaceHidden:a=>!!a0.get(a.path)?.hidden},B=new Set(p.workspaces.filter(a=>p.isWorkspaceHidden(a)).map(a=>a.id)),F=p.agents.filter(a=>!B.has(a.workspaceId)),G=new Set(p.agents.filter(a=>B.has(a.workspaceId)).map(a=>a.id)),H=p.runtimes.filter(a=>!(a.agentId&&G.has(a.agentId))&&!(a.workspaceId&&B.has(a.workspaceId))),I=new Set(p.runtimes.filter(a=>a.agentId&&G.has(a.agentId)||a.workspaceId&&B.has(a.workspaceId)).map(a=>a.id)),J=new Set([...B,...G,...I]),P=p.relationships.filter(a=>!J.has(a.sourceId)&&!J.has(a.targetId)),{visibleWorkspaces:p.workspaces.filter(a=>!B.has(a.id)),visibleAgents:F,visibleRuntimes:H,visibleRelationships:P}),a5=await aE,a6=await ag({profile:a,configuredWorkspaceRoot:S??null,configuredGatewayUrl:$,gatewayStatus:Z,status:au,hasOpenClawSignal:aD,runtimeDiagnostics:a5,models:aB,agents:a$,modelStatus:aw,payloadResults:{gatewayStatus:d,status:e,agents:q,agentConfig:r,models:s,modelStatus:w,sessions:ae,presence:A},gatewayStatusRejectedWithCachedValue:"rejected"===d.status&&Y.reusedCachedValue,payloadReuse:{status:_,agents:al,agentConfig:aa,models:am,modelStatus:an,sessions:ar,presence:at}}),a7=(0,N.IJ)(aY,a$),a8=(0,N.IJ)(a3,a2),a9={generatedAt:new Date().toISOString(),revision:b,mode:"live",diagnostics:a6,channelAccounts:aW,channelRegistry:aV,presence:aC.map(a=>({host:a.host,ip:a.ip,version:a.version,platform:a.platform,deviceFamily:a.deviceFamily,mode:a.mode,reason:a.reason,text:a.text,ts:a.ts})),missionPresets:ac};return{full:{...a9,workspaces:aZ,agents:a$,models:ah({models:aB,agents:a$,modelStatus:aw}),runtimes:aY,tasks:a7,relationships:a_},visible:{...a9,workspaces:a1,agents:a2,models:ah({models:aB,agents:a2,modelStatus:aw}),runtimes:a3,tasks:a8,relationships:a4}}}catch(a){return ad((0,d.jJ)(a instanceof Error?a.message:"Unknown OpenClaw error.",{installed:g,loaded:!!c?.service?.loaded,rpcOk:!!c?.rpc?.ok}))}}},9443:(a,b,c)=>{c.d(b,{aL:()=>l,xL:()=>k});var d=c(51455),e=c(76760),f=c.n(e),g=c(15612),h=c(14853),i=c(16588),j=c(58889);async function k(a,b,c){let d=(0,h.Q4)(b,c??g.eY),e=[...new Set(["AGENTS.md","SOUL.md","IDENTITY.md","TOOLS.md","HEARTBEAT.md",...d.resources.map(a=>a.relativePath)])],f=await Promise.all(e.map(b=>m(a,a,b))),i=new Map,j=[];for(let a of f)a&&(i.set(a.fileName,a.lines),j.push(a.source));return{profileFiles:e,contextManifest:d,workspaceSections:i,workspaceSources:j}}async function l(a,b,c){let d=c??await (0,j.OL)(a),e=(0,h.Q4)(d.template??null,d.rules??g.eY),f=new Set(["AGENTS.md","SOUL.md","IDENTITY.md","TOOLS.md","HEARTBEAT.md","MEMORY.md"]),[k,l,m,o,p,q]=await Promise.all([(0,i.Z3)(a,[{id:"agents",label:"AGENTS.md",relativePath:"AGENTS.md",kind:"file"},{id:"soul",label:"SOUL.md",relativePath:"SOUL.md",kind:"file"},{id:"identity",label:"IDENTITY.md",relativePath:"IDENTITY.md",kind:"file"},{id:"tools",label:"TOOLS.md",relativePath:"TOOLS.md",kind:"file"},{id:"heartbeat",label:"HEARTBEAT.md",relativePath:"HEARTBEAT.md",kind:"file"}]),(0,i.Z3)(a,[{id:"memory-md",label:"MEMORY.md",relativePath:"MEMORY.md",kind:"file"}]),(0,i.Z3)(a,e.resources.filter(a=>!f.has(a.relativePath))),(0,i.Z3)(a,[{id:"docs",label:"docs/",relativePath:"docs",kind:"directory"},{id:"memory",label:"memory/",relativePath:"memory",kind:"directory"},{id:"deliverables",label:"deliverables/",relativePath:"deliverables",kind:"directory"},{id:"skills",label:"skills/",relativePath:"skills",kind:"directory"},{id:"openclaw",label:".openclaw/",relativePath:".openclaw",kind:"directory"}]),(0,i.Z3)(a,[{id:"project-json",label:".openclaw/project.json",relativePath:".openclaw/project.json",kind:"file"},{id:"events",label:".openclaw/project-shell/events.jsonl",relativePath:".openclaw/project-shell/events.jsonl",kind:"file"},{id:"runs",label:".openclaw/project-shell/runs",relativePath:".openclaw/project-shell/runs",kind:"directory"},{id:"tasks",label:".openclaw/project-shell/tasks",relativePath:".openclaw/project-shell/tasks",kind:"directory"}]),(0,i.nU)(a)]),r=n(b.flatMap(a=>a.tools)),s=n([...q,...b.flatMap(a=>a.skills)]),t=b.filter(a=>a.tools.includes("fs.workspaceOnly")).length;return{bootstrap:{template:d.template,sourceMode:d.sourceMode,agentTemplate:d.agentTemplate,coreFiles:k,optionalFiles:l,contextFiles:m,folders:o,projectShell:p,localSkillIds:q},capabilities:{skills:s,tools:r,workspaceOnlyAgentCount:t}}}async function m(a,b,c){let e=f().join(a,c);try{var g,h;let a,i;await (0,d.access)(e);let j=(await (0,d.readFile)(e,"utf8")).trim();if(!j)return null;return{fileName:c,lines:j.split(/\r?\n/),source:(g=b,h=e,a=f().resolve(g),(i=f().resolve(h)).startsWith(`${a}${f().sep}`)?f().relative(a,i)||f().basename(i):i)}}catch{return null}}function n(a){return[...new Set(a.filter(a=>a.trim().length>0))].sort()}},11782:(a,b,c)=>{c.d(b,{AV:()=>g,JC:()=>h,Kg:()=>e});var d=c(65395);function e(a,b,c){var e;if(!b)return null;let g=(0,d.W2)(a),h=Math.max(Array.from(c).filter(b=>f(a,b)).length,(b.allowed??[]).filter(b=>f(a,b)).length),i=j(b.auth?.providers,a),m=j(b.auth?.oauth?.providers,a),n=l(m)?m:null,o=Array.isArray(n?.profiles)?n.profiles:null,p=o?o.filter(a=>{if(!l(a))return!1;let b=k(a.status)?.toLowerCase();return!b||!["expired","missing","invalid","error","disabled","revoked"].includes(b)}).length:0,q=k(m?.status)?.toLowerCase(),r=("number"==typeof(e=i?.profiles?.count)&&Number.isFinite(e)?e:null)??0,s=k(i?.effective?.kind)?.toLowerCase(),t="ollama"===a?h>0:o?p>0||"ok"===q:"ok"===q||r>0||!!(s&&["ok","profiles","token","apikey","api-key","oauth"].includes(s));return{provider:a,connected:t,canConnect:!0,needsTerminal:"oauth"===g.connectKind,detail:function({provider:a,descriptor:b,connected:c,visibleCount:d,profileCount:e,usableOauthProfileCount:f,oauthStatus:g}){return"ollama"===a?d>0?`${d} local model${1===d?"":"s"} detected.`:"Install or pull a local model to unlock this route.":c?f>0||"ok"===g?"OAuth connected":e>0?`${e} auth profile${1===e?"":"s"}`:d>0?`${d} configured model${1===d?"":"s"} in AgentOS.`:`${b.shortLabel} is connected.`:d>0?`${d} configured model${1===d?"":"s"} are already saved in AgentOS. Connect ${b.shortLabel} to use them.`:b.helperText}({provider:a,descriptor:g,connected:t,visibleCount:h,profileCount:r,usableOauthProfileCount:p,oauthStatus:q})}}function f(a,b){let c=b.split("/",1)[0]||"";return"openai-codex"===a?"openai"===c||"openai-codex"===c:c===a}function g(a,b){let c=a.split("/",1)[0]||"unknown";return"openai"===c&&i(a,b)?"openai-codex":c}function h(a,b){let c=a.split("/",1)[0]||"";return"openai-codex"===c||"openai"===c&&(/^openai\/gpt-/i.test(a)||i(a,b))}function i(a,b){if(/^openai\/.*codex/i.test(a))return!0;if(!b)return!1;let c=e("openai-codex",b,[]),d=e("openai",b,[]);return!!(c?.connected&&!d?.connected)}function j(a,b){return a?.find(a=>k(a.provider)===b)}function k(a){return"string"==typeof a&&a.trim()?a.trim():null}function l(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}},14414:(a,b,c)=>{c.d(b,{Dm:()=>g,gP:()=>h});var d=c(27091);let e=/^\[Retry after[^\]]+\]\s*/i;function f(a){return(0,d.ho)(a).replace(e,"").replace(/\s+/g," ").trim().toLowerCase()}function g(a,b){let c=f(b),d=f(a);return!!c&&!!d&&(d===c||d.startsWith(`${c} `)||d.includes(`original mission: ${c}`)||d.includes(`original mission ${c}`))}function h(a,b,c={}){if(c.agentId&&a.agentId!==c.agentId||"number"==typeof c.submittedAt&&(a.updatedAt??0)<c.submittedAt-1500)return!1;let d=function(a){let b="string"==typeof a.metadata.mission?a.metadata.mission:"string"==typeof a.metadata.turnPrompt?a.metadata.turnPrompt:null;if(!b)return null;let c=f(b);return c.length>0?c:null}(a);return!!d&&g(d,b)}},14853:(a,b,c)=>{c.d(b,{Iy:()=>l,Q4:()=>i,Q5:()=>j,nt:()=>h,uZ:()=>k});var d=c(66058);let e=["AGENTS.md","SOUL.md","IDENTITY.md","TOOLS.md","HEARTBEAT.md"],f={software:"Software project",frontend:"Frontend app",backend:"Backend/API",research:"Research",content:"Content/Growth"},g=["Use repository-local scripts or documented commands for repeatable workflows.","Update this file when the project exposes a cleaner build, test, or release path."];function h(a,b){return m(a,b).map(a=>a.path)}function i(a,b){var c;let d,f=new Map((d=[{id:"agents",label:"AGENTS.md",relativePath:"AGENTS.md",kind:"file",headings:["Workspace","Team","Customize","Safety defaults","Daily memory","Output"]},{id:"soul",label:"SOUL.md",relativePath:"SOUL.md",kind:"file",headings:["My Purpose","How I Operate","My Quirks","Active Focus"]},{id:"identity",label:"IDENTITY.md",relativePath:"IDENTITY.md",kind:"file",headings:["Role"]},{id:"tools",label:"TOOLS.md",relativePath:"TOOLS.md",kind:"file",headings:["Examples","Notes"]},{id:"heartbeat",label:"HEARTBEAT.md",relativePath:"HEARTBEAT.md",kind:"file",headings:[]},{id:"memory-md",label:"MEMORY.md",relativePath:"MEMORY.md",kind:"file",headings:["Current brief","Stable facts"]},{id:"memory-blueprint",label:"memory/blueprint.md",relativePath:"memory/blueprint.md",kind:"file",headings:["Outcome","Constraints","Unknowns"]},{id:"memory-decisions",label:"memory/decisions.md",relativePath:"memory/decisions.md",kind:"file",headings:["Template"]},{id:"docs-brief",label:"docs/brief.md",relativePath:"docs/brief.md",kind:"file",headings:["Objective","Success signals","Open questions"]},{id:"docs-architecture",label:"docs/architecture.md",relativePath:"docs/architecture.md",kind:"file",headings:["Current shape","Dependencies","Risks"]},{id:"deliverables-readme",label:"deliverables/README.md",relativePath:"deliverables/README.md",kind:"file",headings:["Deliverables"]}],"frontend"===(c=a??null)&&d.push({id:"docs-ux-notes",label:"docs/ux-notes.md",relativePath:"docs/ux-notes.md",kind:"file",headings:["UX Notes"]}),"backend"===c&&d.push({id:"docs-service-map",label:"docs/service-map.md",relativePath:"docs/service-map.md",kind:"file",headings:["Service Map"]}),"research"===c&&d.push({id:"docs-research-plan",label:"docs/research-plan.md",relativePath:"docs/research-plan.md",kind:"file",headings:["Research Plan"]}),"content"===c&&d.push({id:"docs-content-brief",label:"docs/content-brief.md",relativePath:"docs/content-brief.md",kind:"file",headings:["Content Brief"]}),d).map(a=>[a.relativePath,a])),g=a=>a.map(a=>f.get(a)).filter(Boolean),h=[{id:"core",title:"Core bootstrap",description:"Required for every workspace and shared by all agents.",enabled:!0,resources:g(e)},{id:"memory",title:"Memory",description:"Durable notes and decisions that survive across sessions.",enabled:b.generateMemory,resources:b.generateMemory?g(["MEMORY.md","memory/blueprint.md","memory/decisions.md"]):[]},{id:"starter",title:"Starter docs",description:"Planning, architecture, and handoff docs used for the first pass.",enabled:b.generateStarterDocs,resources:b.generateStarterDocs?g(["docs/brief.md","docs/architecture.md","deliverables/README.md",..."frontend"===a?["docs/ux-notes.md"]:"backend"===a?["docs/service-map.md"]:"research"===a?["docs/research-plan.md"]:"content"===a?["docs/content-brief.md"]:[]]):[]}];return{template:a??null,rules:b,sections:h,resources:h.flatMap(a=>a.resources)}}function j(a){let b=m(a.template,a.rules),c=new Map(l(a.docOverrides).map(a=>[a.path,a.content]));return b.map(b=>{let d=b.render(a),e=c.has(b.path);return{path:b.path,title:b.title,description:b.description,category:b.category,baseContent:d,content:e?c.get(b.path)??"":d,overridden:e}})}function k(a){let b=j(a).map(a=>({...a,generated:!0})),c=new Set(b.map(a=>a.path));return[...b,...l(a.docOverrides).filter(a=>!c.has(a.path)).map(a=>{var b;return{path:a.path,title:a.path,description:"Existing workspace file.",category:(b=a.path).startsWith("memory/")?"memory":b.startsWith("docs/")?"docs":b.startsWith("deliverables/")?"deliverables":"core",baseContent:a.content,content:a.content,overridden:!1,generated:!1}})]}function l(a){let b=new Map;for(let c of a??[]){let a=c.path.trim();a&&b.set(a,c.content)}return Array.from(b.entries()).map(([a,b])=>({path:a,content:b}))}function m(a,b){let c=[{path:"AGENTS.md",title:"AGENTS.md",description:"Shared operating instructions for all agents.",category:"core",render:n},{path:"SOUL.md",title:"SOUL.md",description:"Purpose, operating style, and active focus.",category:"core",render:({template:a,brief:b,contextSources:c})=>{var d,e,g;return d=a,e=b,g=c,`# SOUL
1
+ "use strict";exports.id=5151,exports.ids=[5151],exports.modules={1118:(a,b,c)=>{c.d(b,{T:()=>e,j:()=>d});let d=[{name:"exec",description:"Run shell commands and manage background processes.",source:"OpenClaw built-in",category:"builtin"},{name:"process",description:"Run shell commands and manage background processes.",source:"OpenClaw built-in",category:"builtin"},{name:"bash",description:"Run shell commands and manage background processes.",source:"OpenClaw built-in",category:"builtin"},{name:"code_execution",description:"Run sandboxed remote Python analysis.",source:"OpenClaw built-in",category:"builtin"},{name:"browser",description:"Control a Chromium browser (navigate, click, screenshot).",source:"OpenClaw built-in",category:"builtin"},{name:"web_search",description:"Search the web and fetch search results.",source:"OpenClaw built-in",category:"builtin"},{name:"x_search",description:"Search X posts.",source:"OpenClaw built-in",category:"builtin"},{name:"web_fetch",description:"Fetch page content.",source:"OpenClaw built-in",category:"builtin"},{name:"read",description:"Read files in the workspace.",source:"OpenClaw built-in",category:"builtin"},{name:"write",description:"Write files in the workspace.",source:"OpenClaw built-in",category:"builtin"},{name:"edit",description:"Edit files in the workspace.",source:"OpenClaw built-in",category:"builtin"},{name:"apply_patch",description:"Apply structured multi-hunk patches.",source:"OpenClaw built-in",category:"builtin"},{name:"message",description:"Send messages across channels.",source:"OpenClaw built-in",category:"builtin"},{name:"canvas",description:"Drive node canvas workflows.",source:"OpenClaw built-in",category:"builtin"},{name:"nodes",description:"Discover and target paired devices.",source:"OpenClaw built-in",category:"builtin"},{name:"cron",description:"Manage scheduled jobs.",source:"OpenClaw built-in",category:"builtin"},{name:"gateway",description:"Inspect and restart gateway services.",source:"OpenClaw built-in",category:"builtin"},{name:"image",description:"Analyze images.",source:"OpenClaw built-in",category:"builtin"},{name:"image_generate",description:"Generate or edit images.",source:"OpenClaw built-in",category:"builtin"},{name:"sessions_list",description:"Session management and sub-agent discovery.",source:"OpenClaw built-in",category:"builtin"},{name:"sessions_history",description:"Session management and sub-agent discovery.",source:"OpenClaw built-in",category:"builtin"},{name:"sessions_send",description:"Session management and sub-agent discovery.",source:"OpenClaw built-in",category:"builtin"},{name:"sessions_spawn",description:"Session management and sub-agent discovery.",source:"OpenClaw built-in",category:"builtin"},{name:"sessions_yield",description:"Session management and sub-agent discovery.",source:"OpenClaw built-in",category:"builtin"},{name:"subagents",description:"Session management and sub-agent discovery.",source:"OpenClaw built-in",category:"builtin"},{name:"session_status",description:"Session management and sub-agent discovery.",source:"OpenClaw built-in",category:"builtin"},{name:"agents_list",description:"Session management and sub-agent discovery.",source:"OpenClaw built-in",category:"builtin"}],e=[{name:"group:runtime",description:"exec, bash, process, code_execution",source:"OpenClaw docs",category:"group"},{name:"group:fs",description:"read, write, edit, apply_patch",source:"OpenClaw docs",category:"group"},{name:"group:sessions",description:"sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status",source:"OpenClaw docs",category:"group"},{name:"group:memory",description:"memory_search, memory_get",source:"OpenClaw docs",category:"group"},{name:"group:web",description:"web_search, x_search, web_fetch",source:"OpenClaw docs",category:"group"},{name:"group:ui",description:"browser, canvas",source:"OpenClaw docs",category:"group"},{name:"group:automation",description:"cron, gateway",source:"OpenClaw docs",category:"group"},{name:"group:messaging",description:"message",source:"OpenClaw docs",category:"group"},{name:"group:nodes",description:"nodes",source:"OpenClaw docs",category:"group"},{name:"group:openclaw",description:"All built-in OpenClaw tools (excludes plugin tools).",source:"OpenClaw docs",category:"group"}]},5151:(a,b,c)=>{c.d(b,{er:()=>aX,b7:()=>aW,GM:()=>aZ,ZZ:()=>aY});var d=c(96876),e=c(88366),f=c(92273),g=c(39503);async function h(a=2e4,b=(0,g.rw)()){try{let c=await b.getStatus({timeoutMs:a});return{status:"fulfilled",value:c}}catch(a){return{status:"rejected",reason:a}}}async function i(a=2e4,b=(0,g.rw)()){try{let c=await b.getGatewayStatus({timeoutMs:a});return{status:"fulfilled",value:c}}catch(a){return{status:"rejected",reason:a}}}async function j(a=2e4,b=(0,g.rw)()){try{let c=await b.getModelStatus({timeoutMs:a});return{status:"fulfilled",value:c}}catch(a){return{status:"rejected",reason:a}}}class k{constructor(a){this.staleGraceMs=a,this.cache=null}clear(){this.cache=null}shouldRefresh(){return!this.cache||Date.now()-this.cache.capturedAt>this.staleGraceMs}getCachedPort(a=18789){return this.cache?.value.gateway?.port??a}write(a){this.cache={value:a,capturedAt:Date.now()}}resolve(a){return"fulfilled"===a.status?(this.write(a.value),{value:a.value,reusedCachedValue:!1}):this.cache&&Date.now()-this.cache.capturedAt<=this.staleGraceMs?{value:this.cache.value,reusedCachedValue:!0}:{value:void 0,reusedCachedValue:!1}}}var l=c(83761),m=c(75402),n=c(88978);class o{constructor(a){this.options=a,this.cache=null,this.promise=null}clear(){this.cache=null,this.promise=null}read(a,b={},c=!1){let d=p(a,b),e=this.cache,f=!!(e&&e.agentIdsKey===d),g=!!(f&&e&&e.expiresAt>Date.now());return!c&&g&&e?e.value:!c&&f&&e?(this.promise||(this.promise=this.loadForCurrentGeneration(a,b),this.promise.catch(()=>{}),this.promise.finally(()=>{this.promise=null}).catch(()=>{})),e.value):!c&&this.promise&&f&&e?e.value:this.promise&&!c||c&&this.promise?this.promise:(this.promise=this.loadForCurrentGeneration(a,b),this.promise.catch(()=>{}),this.promise.finally(()=>{this.promise=null}).catch(()=>{}),c?this.promise.then(a=>a):this.promise)}loadForCurrentGeneration(a,b){let c=this.options.getGeneration(),d=p(a,b);return this.options.loadState(a,b).then(a=>(c===this.options.getGeneration()&&(this.cache={agentIdsKey:d,value:a,expiresAt:Date.now()+this.options.ttlMs}),a))}}function p(a,b){return[...new Set(a.filter(Boolean))].sort().map(a=>`${a}:${b[a]??""}`).join("\0")}class q{constructor(a){this.options=a,this.cache=null,this.promise=null,this.generation=0}getGeneration(){return this.generation}clear(a={}){a.incrementGeneration&&(this.generation+=1),this.cache=null}async get(a={}){let b=this.cache,c=!!(b&&b.expiresAt>Date.now());if(!a.force&&c&&b)return r(b,a.includeHidden);if(!a.force&&b)return this.promise||(this.promise=this.loadForCurrentGeneration("interactive"),this.promise.catch(()=>{}),this.promise.finally(()=>{this.promise=null}).catch(()=>{})),r(b,a.includeHidden);if(a.force){this.generation+=1,this.cache=null,this.promise=this.loadForCurrentGeneration(a.loadProfile??"refresh"),this.promise.catch(()=>{});try{let b=await this.promise;return r(b,a.includeHidden)}finally{this.promise=null}}if(this.promise)return r(await this.promise,a.includeHidden);this.promise=this.loadForCurrentGeneration("interactive"),this.promise.catch(()=>{});try{let b=await this.promise;return r(b,a.includeHidden)}finally{this.promise=null}}loadForCurrentGeneration(a){let b=this.generation;return this.options.load(a,b).then(a=>(b===this.generation&&(this.cache={...a,expiresAt:Date.now()+this.options.ttlMs}),a))}}function r(a,b){return b?a.full:a.visible}class s{constructor(a){this.controller=new q(a)}getGeneration(){return this.controller.getGeneration()}clear(a={}){this.controller.clear(a)}getSnapshot(a={}){return this.controller.get(a)}}var t=c(25303),u=c(72761),v=c(56763),w=c(11782);function x(a,b){return{models:Array.from(new Set([...a.map(a=>a.model??"").filter(Boolean),...(b?.allowed??[]).filter(Boolean),b?.resolvedDefault??"",b?.defaultModel??""].filter(Boolean))).map(a=>{var b;let c,d,e,f=(d=(c=a.trim().toLowerCase()).split("/",1)[0]||"",e=c.includes("/")?c.slice(d.length+1):c,"ollama"===d?{contextWindow:(b=e).includes("qwen3.5")?262144:(b.includes("qwen")||b.includes("llama3.2")||b.includes("llama3.3")||b.includes("deepseek-r1"),131072),local:!0}:"openai"===d||"openai-codex"===d?{contextWindow:e.startsWith("gpt-5")?272e3:null,local:!1}:"anthropic"===d?{contextWindow:2e5,local:!1}:"google"===d||"gemini"===d?{contextWindow:1e6,local:!1}:"deepseek"===d?{contextWindow:64e3,local:!1}:"mistral"===d?{contextWindow:128e3,local:!1}:"openrouter"===d||"xai"===d?{contextWindow:null,local:!1}:{contextWindow:null,local:null});return{key:a,name:a,input:"text",contextWindow:f.contextWindow,local:f.local,available:!0,tags:[],missing:!1}})}}function y(a,b=[]){let c=A(b.find(a=>a.isDefault))||A(b.find(a=>!!A(a)))||a.find(a=>a.default)?.model||a.find(a=>!!a.model)?.model||null;if(c)return{defaultModel:c,resolvedDefault:c}}function z(a){return"string"==typeof a&&a.trim()?a.trim():null}function A(a){return z(a?.modelId)??z(a?.model)}var B=c(76760),C=c.n(B),D=c(21916);function E(a,b){let c=new Set,d=new Map;for(let b of a){let a=function(a){var b;let c=H(a.workspace),d=(b=a.identityName||a.name||a.id,(0,D.Nk)(b)?.toLocaleLowerCase("en-US")??"");return c&&d?`${c}\0${d}`:null}(b);if(!a)continue;let c=d.get(a)??[];c.push(b),d.set(a,c)}for(let a of d.values()){if(a.length<2)continue;let d=a.filter(G);if(0!==d.length)for(let e of a)!d.includes(e)&&function(a,b){let c=H(a.agentDir),d=H(C().join(b,"agents"));return!!(c&&d&&c.startsWith(`${d}${C().sep}`))}(e,b)&&c.add(F(e))}return a.filter(a=>!c.has(F(a)))}function F(a){return`${a.id}\0${H(a.agentDir)}`}function G(a){let b=H(a.workspace),c=H(a.agentDir);return!!b&&!!c&&c.startsWith(`${C().join(b,".openclaw","agents")}${C().sep}`)}function H(a){let b=(0,D.Nk)(a);return b?C().normalize(b):""}let I="Deferred to background refresh.";class J{constructor(a=3e5){this.ttlMs=a,this.cache=null,this.refreshPromise=null}clear(){this.cache=null,this.refreshPromise=null}shouldRefresh(){return!this.cache||Date.now()-this.cache.capturedAt>this.ttlMs}resolve(a){return K(a,this.cache,a=>{this.cache=a},this.ttlMs)}scheduleRefresh(a){!this.refreshPromise&&this.shouldRefresh()&&(this.refreshPromise=(async()=>{try{let b=await a();"fulfilled"===b.status&&(this.cache={value:b.value,capturedAt:Date.now()})}catch{}finally{this.refreshPromise=null}})(),this.refreshPromise.catch(()=>{}))}}function K(a,b,c,d=3e5){return"fulfilled"===a.status?(c({value:a.value,capturedAt:Date.now()}),{value:a.value,reusedCachedValue:!1,failed:!1}):b&&Date.now()-b.capturedAt<=d?{value:b.value,reusedCachedValue:!0,failed:!0}:{value:void 0,reusedCachedValue:!1,failed:!0}}function L(){return{status:"rejected",reason:Error(I)}}function M(a){return"rejected"===a.status&&a.reason instanceof Error&&a.reason.message===I}var N=c(28182),O=c(35456),P=c(51455),Q=c(58889);async function R(a){try{let b=await (0,P.readFile)(a,"utf8"),c=JSON.parse(b),d=c&&"object"==typeof c&&!Array.isArray(c)?c:{version:1,channels:[]},e=Array.isArray(d.channels)?d.channels.map(a=>(0,Q.kf)(a)).filter(a=>!!a):[];return{status:"fulfilled",value:(0,Q._E)({version:1,channels:e})}}catch(a){return{status:"rejected",reason:a}}}var S=c(99254);async function T(a){let b=await R(m.q6),c="fulfilled"===b.status?b.value:(0,Q._E)({version:1,channels:[]}),d="interactive"===a?[]:await (0,S.QT)(),e=(0,S.fy)((0,S.D4)([...d,...(0,S.G7)(c)]),c);return{channelRegistry:c,channelAccounts:e}}var U=c(65493),V=c(38610);function W(a){if(!a)return null;try{return new URL(a).hostname}catch{return null}}function X(a){let b=a.trim().toLowerCase().replace(/^\[|\]$/g,"");return"localhost"===b||"::1"===b||"0:0:0:0:0:0:0:1"===b||/^127\.(?:\d{1,3}\.){2}\d{1,3}$/.test(b)}function Y(a,b){let c=[...a.issues,..."failed"===b.status&&b.error?[`Latest runtime smoke test failed for ${b.agentId??"unknown agent"}. ${b.error}`]:[]];return{...a,smokeTest:b,issues:c}}var Z=c(15292),$=c(38798),_=c(7565),aa=c(48161),ab=c.n(aa);let ac=["Audit the selected workspace and generate a concrete first task batch.","Plan a multi-agent delivery mission for the current product goal.","Review active runtimes, identify blockers, and propose the next handoff."];function ad(a){return{visible:a,full:a}}function ae(a){return a||C().join(ab().homedir(),"Documents","Shared","projects")}async function af(a,b,c){let d=a.map(a=>a.id).filter(Boolean),e=Object.fromEntries(a.filter(a=>a.id).map(a=>[a.id,a.agentDir]));return Y(await c.read(d,e),(0,O.fj)(b))}async function ag(a){var b,c,d,f,g,h;let i,j,k,l,m,n,o,p,q,r,s,u,v,w,x=(0,D.QL)(a.models,a.modelStatus),y=(b=a.status,b?.securityAudit?.findings?.filter(a=>"warn"===a.severity).map(a=>a.title||a.detail||"Security warning")??[]),z=(c={status:a.status,fallbackVersion:await (0,e.YP)()??void 0},m=(0,D.Nk)(c.status?.runtimeVersion||c.status?.overview?.version||c.status?.version)??c.fallbackVersion??void 0,n=(0,D.Nk)(c.status?.update?.registry?.latestVersion??void 0),o=(0,D.nn)(c.status?.update?.registry?.error??void 0),p=m&&n?(0,D.QK)(n,m)>0:void 0,q=(0,D.mB)({currentVersion:m,latestVersion:n,updateError:o,legacyInfo:c.status?.overview?.update}),{currentVersion:m,latestVersion:n,updateAvailable:p,updateError:o,updateInfo:q}),A=(0,Z.Df)(await (0,Z.bq)(),(0,e.T5)()),B="interactive"===a.profile?(0,t.Bc)()??void 0:await (0,t.N3)().catch(()=>void 0);"interactive"!==a.profile||B||(0,t.Cs)();let C=(0,_.Xz)().getDiagnostics?.(),E=(0,V.wi)((0,$.Lo)(),C).map(a=>`gateway.${a.operation}: Gateway-first request fell back to CLI (${a.kind}): ${a.issue} Recovery: ${a.recovery}`);return f={gatewayStatus:a.gatewayStatus,status:a.status,configuredWorkspaceRoot:a.configuredWorkspaceRoot,workspaceRoot:ae(a.configuredWorkspaceRoot),configuredGatewayUrl:a.configuredGatewayUrl,hasOpenClawSignal:a.hasOpenClawSignal,securityWarnings:y,runtimeDiagnostics:a.runtimeDiagnostics,openClawBinarySelection:A,modelReadiness:x,capabilityMatrix:B,commandHistory:(0,e.ik)(),transport:C,versionDiagnostics:z,issues:(d={payloadResults:a.payloadResults,gatewayStatusRejectedWithCachedValue:a.gatewayStatusRejectedWithCachedValue,payloadReuse:a.payloadReuse,runtimeIssues:[...a.runtimeDiagnostics.issues,...E]},[...(0,D.Lp)(Object.fromEntries(Object.entries(d.payloadResults).filter(([,a])=>!M(a)))),...d.gatewayStatusRejectedWithCachedValue?["gatewayStatus: Reusing the last successful gateway status after a transient OpenClaw check failure."]:[],...Object.entries(d.payloadReuse).map(([a,b])=>{var c;return c=a,b.reusedCachedValue?`${c}: Reusing the last successful payload while a slow OpenClaw command refreshes in the background.`:null}).filter(a=>!!a),...d.runtimeIssues])},r=(f.transport?.recentFallbackDiagnostics??[]).map(a=>({...a,operationLabel:(0,U.Hi)(a.operation)})),s=(0,V.wi)(r,f.transport),u=[...f.securityWarnings,...(g=f.gatewayStatus,h=f.configuredGatewayUrl,i=[],j=W(g?.gateway?.probeUrl),k=W(h??void 0),l=(0,D.Nk)(g?.gateway?.bindMode??void 0)?.toLowerCase(),j&&!X(j)&&i.push("OpenClaw Gateway is reachable on a non-loopback host. AgentOS mutation APIs stay restricted to same-origin localhost requests."),k&&!X(k)&&i.push("AgentOS is configured to use a non-loopback Gateway URL. Keep AgentOS itself bound to localhost unless an explicit operator tunnel is in place."),l&&!/(local|loopback|localhost)/i.test(l)&&i.push("OpenClaw Gateway bind mode is not local-only. Review Gateway exposure before using operator write actions."),Array.from(new Set(i)))],w=(v=function(a){var b;let c,d=[a?.rpc?.error,a?.rpc?.capability,a?.rpc?.auth?.capability].filter(a=>"string"==typeof a&&!!a.trim()).join("\n");if(!/scope upgrade pending approval|pairing_pending|device token scope mismatch|connected_no_operator_scope|missing operator/i.test(d))return null;let e=(b=d,c=/\brequestId:\s*([a-f0-9-]{12,})\b/i.exec(b),c?.[1]??null);return e?`OpenClaw Gateway device access is waiting for operator-scope approval (${e}). Run Repair access in Gateway settings or approve that request with OpenClaw devices, then retry.`:"OpenClaw Gateway device access is waiting for operator-scope approval. Run Repair access in Gateway settings or approve the pending OpenClaw device request, then retry."}(f.gatewayStatus))?[v,...f.issues.filter(a=>{var b;return b=a,!/Timed out waiting for OpenClaw Gateway method|Gateway-native operation failed; CLI fallback disabled|Native Gateway: Unreachable/i.test(b)})]:f.issues,{installed:!0,loaded:!!f.gatewayStatus?.service?.loaded,rpcOk:!!f.gatewayStatus?.rpc?.ok,health:(0,D.YO)({rpcOk:f.gatewayStatus?.rpc?.ok,warningCount:u.length,runtimeIssueCount:f.runtimeDiagnostics.issues.length,hasOpenClawSignal:f.hasOpenClawSignal}),version:f.versionDiagnostics.currentVersion,latestVersion:f.versionDiagnostics.latestVersion,updateAvailable:f.versionDiagnostics.updateAvailable,updateError:f.versionDiagnostics.updateError,updateRoot:(0,D.Nk)(f.status?.update?.root??void 0),updateInstallKind:(0,D.Nk)(f.status?.update?.installKind??void 0),updatePackageManager:(0,D.Nk)(f.status?.update?.packageManager??void 0),workspaceRoot:f.workspaceRoot,configuredWorkspaceRoot:f.configuredWorkspaceRoot,dashboardUrl:`http://127.0.0.1:${f.gatewayStatus?.gateway?.port??18789}/`,gatewayUrl:f.gatewayStatus?.gateway?.probeUrl||"ws://127.0.0.1:18789",configuredGatewayUrl:f.configuredGatewayUrl??null,bindMode:f.gatewayStatus?.gateway?.bindMode,port:f.gatewayStatus?.gateway?.port,updateChannel:f.status?.updateChannel||"stable",updateInfo:f.versionDiagnostics.updateInfo,serviceLabel:f.gatewayStatus?.service?.label,openClawBinarySelection:f.openClawBinarySelection,modelReadiness:f.modelReadiness,capabilityMatrix:f.capabilityMatrix,gatewayFallbackDiagnostics:r,gatewayFallbackReasons:s.map(a=>`${a.operationLabel} (${a.operation}): ${a.kind}: ${a.issue} Recovery: ${a.recovery}`),runtime:f.runtimeDiagnostics,commandHistory:f.commandHistory,transport:f.transport,securityWarnings:u,issues:w}}function ah(a){return function(a,b,c){let d=new Map;for(let a of b)d.set(a.modelId,(d.get(a.modelId)??0)+1);return a.map(a=>({id:a.key,name:a.name,provider:(0,w.AV)(a.key,c),input:a.input,contextWindow:a.contextWindow,local:a.local,available:a.available,missing:a.missing,tags:a.tags,usageCount:d.get(a.key)??0}))}(a.models,a.agents,a.modelStatus)}async function ai(a,b){try{var c,d,e;let f=(c=a,d=b,e=[...c.flatMap(a=>{let b=[],c=an(a.workspace);return c&&b.push(C().join(c,".openclaw","agents")),b}),C().join(d,"agents")],Array.from(new Set(e.filter(Boolean)))),g=await aj(f);return{status:"fulfilled",value:{sessions:g}}}catch(a){return{status:"rejected",reason:a}}}async function aj(a){let b=new Map;for(let c of a){let a;try{a=await (0,P.readdir)(c,{withFileTypes:!0})}catch{continue}for(let d of a){let a,e;if(!d.isDirectory())continue;let f=C().join(c,d.name,"sessions","sessions.json");try{a=await (0,P.readFile)(f,"utf8")}catch{continue}try{e=JSON.parse(a)}catch{continue}if(Array.isArray(e)){for(let a of e){if(!am(a))continue;let c=ak(a,d.name);b.has(c.key)||b.set(c.key,c)}continue}if(am(e))for(let[a,c]of Object.entries(e)){if(!am(c))continue;let e=ak(c,d.name,a);b.has(e.key)||b.set(e.key,e)}}}return Array.from(b.values()).sort((a,b)=>(b.updatedAt??0)-(a.updatedAt??0))}function ak(a,b,c){var d;let e=an("string"==typeof a.sessionId?a.sessionId:void 0),f=al(a,"updatedAt"),g=al(a,"inputTokens"),h=al(a,"outputTokens"),i=al(a,"totalTokens"),j=al(a,"cacheRead"),k=al(a,"ageMs")??("number"==typeof(d=f)?Math.max(Date.now()-d,0):void 0),l=an("string"==typeof a.model?a.model:void 0),m=an("string"==typeof a.modelProvider?a.modelProvider:void 0),n=an("string"==typeof a.key?a.key:c)??e??`${b}:${f??"session"}`;return{agentId:b,key:n,sessionId:e||void 0,updatedAt:f,ageMs:k,inputTokens:g,outputTokens:h,totalTokens:i??("number"==typeof g||"number"==typeof h?(g??0)+(h??0):void 0),model:l||void 0,modelProvider:m||void 0,cacheRead:j,kind:function(a,b){let c=an("string"==typeof a.kind?a.kind:"string"==typeof a.chatType?a.chatType:void 0);if(c)return c;let d=am(a.deliveryContext)?a.deliveryContext:null,e=am(a.origin)?a.origin:null;if("heartbeat"===an("string"==typeof d?.to?d.to:void 0)||"heartbeat"===an("string"==typeof e?.provider?e.provider:void 0))return"direct";let f=an(b);return f&&/:(direct|dm|private):/i.test(f)?"direct":f&&/:(group|channel|thread):/i.test(f)?"group":"task"}(a,n)}}function al(a,b){let c=a[b];return"number"==typeof c&&Number.isFinite(c)?c:void 0}function am(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function an(a){if("string"!=typeof a)return null;let b=a.trim();return b.length>0?b:null}async function ao(){try{let a=await (0,P.readFile)(C().join(m.wh,"openclaw.json"),"utf8"),b=JSON.parse(a);return{status:"fulfilled",value:function(a,b){let c=a;for(let a of b.split(".")){var d;if(!((d=c)&&"object"==typeof d&&!Array.isArray(d))||!Object.hasOwn(c,a))return;c=c[a]}return c}(b,"gateway.remote.url")??void 0}}catch(a){if("ENOENT"===("object"==typeof a&&a&&"code"in a?a.code:void 0))return{status:"fulfilled",value:void 0};return{status:"rejected",reason:a}}}async function ap(a){try{var b;let c,d=await (0,g.rw)().listAgents({timeoutMs:15e3});return{status:"fulfilled",value:(b=m.wh,c=new Map(a.map(a=>[a.id,a])),E(d.agents.map(a=>{let e=c.get(a.id),f=a.identity??e?.identity,g=(0,D.Nk)(a.workspace)??(0,D.Nk)(e?.workspace)??"",h=a.model?.primary??e?.model;return{id:a.id,name:a.name||f?.name||e?.name||a.id,identityName:f?.name,identityEmoji:f?.emoji,identitySource:a.identity?"gateway":e?.identity?"config":void 0,workspace:g,agentDir:e?.agentDir||C().join(b,"agents",a.id,"agent"),model:h,isDefault:a.id===d.defaultId||!!e?.default}}),b))}}catch(a){return{status:"rejected",reason:a}}}async function aq(a){try{let a=await (0,g.rw)().listSessions({limit:500,includeGlobal:!1,includeUnknown:!1},{timeoutMs:15e3});if(!a||!Array.isArray(a.sessions))throw Error("OpenClaw Gateway sessions.list returned an invalid payload.");return{status:"fulfilled",value:{sessions:a.sessions}}}catch{return ai(a,m.wh)}}var ar=c(20078),as=c(37110),at=c(80410);function au(a,b){return(b.updatedAt??0)-(a.updatedAt??0)}var av=c(70016),aw=c(25793);async function ax(){return(0,as.Ff)()}async function ay(a,b){let c=await (0,ar.cf)();return(0,at.kw)((0,ar.ZO)(a,c),b)}async function az(a){var b;let c,d=(await Promise.all(a.sessions.map(b=>(0,aw.V9)(b,a.agentConfig,a.agentsList,(b,c,d)=>(0,av.$Z)(b,c,d,{resolveWorkspaceId:a.resolveWorkspaceId}))))).flat(),e=(0,v.Em)(a.runtimeSnapshot,{agentConfig:a.agentConfig,agentsList:a.agentsList,resolveWorkspaceId:a.resolveWorkspaceId}),f=[...a.systemProfile?[]:await (0,u.Qc)(),...e,...d],g=(0,at.CD)(f,a.dispatchRecords),h=await (0,at.Ip)(g,a.dispatchRecords,{buildObservedRuntime:as.DO,persistObservation:as.vH,reconcileRuntimeState:as.Yp});return c=function(a,b,c={}){let d=new Map,e=new Set(a.map(a=>a.id));for(let b of a)d.set(b.id,b);for(let[a,c]of b.entries()){if(e.has(a))continue;let b={...c,status:"stalled"===c.status?"stalled":"cancelled"===c.status?"cancelled":"completed",metadata:{...c.metadata,historical:!0}};d.set(a,b)}let f=function(a){let b=new Map;for(let c of a){let a=c.agentId||c.workspaceId||"global",d=b.get(a)??[];d.push(c),b.set(a,d)}return Array.from(b.values()).flatMap(a=>{let b=a.sort(au),c=new Map(b.slice(0,8).map(a=>[a.id,a]));for(let a of b){var d;"string"==typeof(d=a).metadata.dispatchId&&d.metadata.dispatchId.trim().length>0&&!0!==d.metadata.historical&&c.set(a.id,a)}return Array.from(c.values()).sort(au)})}(Array.from(d.values())),g=new Map(f.filter(a=>!c.excludeFromCache?.(a)).map(a=>[a.id,a]));return{runtimes:f.sort(au),cache:g}}([...g,...h],(b=a.historyStore).cache,{excludeFromCache:at.U8}),b.cache=c.cache,c.runtimes}var aA=c(93628),aB=c(71065),aC=c(57419),aD=c(9443),aE=c(54252),aF=c(96109),aG=c(15612);async function aH(a){let b=new Map,c=new Map,d=new Map,e=[],f=[],g=new Map((a.status?.heartbeat?.agents??[]).map(a=>[a.agentId,a])),h=new Map(a.agentConfig.map(a=>[a.id,a])),i=new Map;for(let b of a.sessions){if(!b.agentId)continue;let a=i.get(b.agentId)??[];a.push(b),i.set(b.agentId,a)}for(let j of(await Promise.all(a.bindings.workspacePaths.map(async b=>{let e=a.bindings.activeAgentIdsByWorkspacePath.get(b)??[],f=await (0,Q.QO)(b,e);await (0,aE.u)(b),c.set(b,f),d.set(b,await (0,aD.xL)(b,f.template,f.rules??aG.eY))})),await Promise.all(a.bindings.workspaceBoundAgents.map(async b=>{var e;let f,j,k,l,m,n,o,p,q,r,s,t,u,v=h.get(b.id),w=a.bindings.resolveWorkspaceId(b.workspace),x=i.get(b.id)??[],y=c.get(b.workspace)??await (0,Q.OL)(b.workspace);c.set(b.workspace,y);let z=y.agents.find(a=>a.id===b.id)??null,A=await (0,aC.L)(b.workspace,{agentId:b.id,agentName:v?.name||b.name||v?.identity?.name||b.identityName||b.id,configuredSkills:(0,aB.AB)(v?.skills??[]),configuredTools:Array.from(new Set([...z?.toolIds??[],...v?.tools?.fs?.workspaceOnly||z?.policy?.fileAccess==="workspace-only"?["fs.workspaceOnly"]:[]].filter(Boolean))),template:y.template,rules:y.rules??aG.eY,workspaceBootstrapProfile:d.get(b.workspace)??await (0,aD.xL)(b.workspace,y.template,y.rules??aG.eY)}),B=a.runtimes.filter(a=>a.agentId===b.id).sort(au),C=g.get(b.id);return e={rawAgent:b,configured:v,identityOverrides:null,workspaceId:w,sessionList:x,manifestAgent:z,agentRuntimes:B,gatewayRpcOk:!!(a.gatewayStatus?.rpc?.ok||a.hasOpenClawSignal),heartbeat:C,profile:A},f=(0,aB.AB)(e.configured?.skills??[]),j=(0,D.Nk)(e.identityOverrides?.name)||e.configured?.name||e.rawAgent.name||e.configured?.identity?.name||e.rawAgent.identityName||e.rawAgent.id,k=e.manifestAgent?.policy??(0,aA.g0)((0,aA.qF)({skills:f,id:e.rawAgent.id,name:j}),{fileAccess:e.configured?.tools?.fs?.workspaceOnly?"workspace-only":"extended"}),l=(0,D.Am)([...e.manifestAgent?.toolIds??[],..."workspace-only"===k.fileAccess?["fs.workspaceOnly"]:[]]),m=e.rawAgent.model||e.configured?.model||"unassigned",n=e.agentRuntimes.sort(au),o=(0,D.Am)(n.flatMap(a=>a.toolNames??[])),p=n.map(a=>a.id),q=n[0],r=e.sessionList.map(a=>a.updatedAt??0).sort((a,b)=>b-a).at(0)||null,s=(0,D.yv)({rpcOk:e.gatewayRpcOk,activeRuntime:q,heartbeatEnabled:!!e.heartbeat?.enabled,lastActiveAt:r}),t={id:e.rawAgent.id,name:j,identityName:(0,D.Nk)(e.identityOverrides?.name)||e.configured?.identity?.name||e.rawAgent.identityName||void 0,workspaceId:e.workspaceId,workspacePath:e.rawAgent.workspace,agentDir:e.rawAgent.agentDir,modelId:m,isDefault:!!(e.rawAgent.isDefault||e.configured?.default),status:s,sessionCount:e.sessionList.length,lastActiveAt:r,currentAction:(0,D.iP)({runtime:q,heartbeatEvery:e.heartbeat?.every??null,status:s}),activeRuntimeIds:p,heartbeat:{enabled:!!e.heartbeat?.enabled,every:e.heartbeat?.every??null,everyMs:e.heartbeat?.everyMs??null},identity:{emoji:(0,D.Nk)(e.identityOverrides?.emoji)||e.configured?.identity?.emoji||e.rawAgent.identityEmoji,theme:(0,D.Nk)(e.identityOverrides?.theme)||e.configured?.identity?.theme,avatar:(0,D.Nk)(e.identityOverrides?.avatar)||e.configured?.identity?.avatar,source:e.rawAgent.identitySource},profile:e.profile,skills:f,tools:l,observedTools:o,policy:k},u=[{id:`edge:${e.workspaceId}:${t.id}:contains`,sourceId:e.workspaceId,targetId:t.id,kind:"contains",label:"workspace member"},{id:`edge:${t.id}:${m}:model`,sourceId:t.id,targetId:m,kind:"uses-model",label:"model assignment"},...p.map(a=>({id:`edge:${t.id}:${a}:run`,sourceId:t.id,targetId:a,kind:"active-run",label:"runtime"}))],{agent:t,workspacePath:e.rawAgent.workspace,workspaceId:e.workspaceId,primaryModel:m,sessionCount:e.sessionList.length,activeRuntimeIds:p,relationships:u}})))){let c=function(a,b,c){var d;let e=c(b),f=a.get(e);if(f)return f;let g={id:c(b),name:(d=b,(C().basename(d)||d).split(/[-_]/g).filter(Boolean).map(a=>a[0].toUpperCase()+a.slice(1)).join(" ")),slug:C().basename(b).toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),path:b,kind:"workspace",agentIds:[],modelIds:[],activeRuntimeIds:[],totalSessions:0,health:"standby",bootstrap:{template:null,sourceMode:null,agentTemplate:null,coreFiles:[],optionalFiles:[],folders:[],projectShell:[],localSkillIds:[]},capabilities:{skills:[],tools:[],workspaceOnlyAgentCount:0},channels:[]};return a.set(e,g),g}(b,j.workspacePath,a.bindings.resolveWorkspaceId);c.agentIds.push(j.agent.id),c.modelIds.push(j.primaryModel),c.activeRuntimeIds.push(...j.activeRuntimeIds),c.totalSessions+=j.sessionCount,e.push(j.agent),f.push(...j.relationships)}let j=new Map;for(let a of e){let b=j.get(a.workspaceId)??[];b.push(a),j.set(a.workspaceId,b)}return{workspaces:await Promise.all(Array.from(b.values()).map(async a=>{var b;let d=j.get(a.id)??[],f=c.get(a.path)??null,g=await (0,aD.aL)(a.path,d,f??void 0);return{...(b={workspace:a,manifest:f,metadata:g,allAgents:e}).workspace,name:b.manifest?.name??b.workspace.name,modelIds:(0,D.Am)(b.workspace.modelIds),activeRuntimeIds:(0,D.Am)(b.workspace.activeRuntimeIds),health:(0,D.OZ)(b.workspace.agentIds,b.allAgents),bootstrap:b.metadata.bootstrap,capabilities:b.metadata.capabilities,channels:b.workspace.channels??[],agentIds:b.workspace.agentIds,totalSessions:b.workspace.totalSessions}})),agents:e,relationships:f,manifestByWorkspace:c}}async function aI({generation:a,settings:b,localGatewayStatus:c,openclawInstalled:f,configuredWorkspaceRoot:g,gatewayStatusCache:h}){let j=await i(3e3),k=h.resolve(j).value??c,o=await (0,l.k)(m.wh),p="fulfilled"===o.status?o.value:[],q=Y(await (0,n.t)(m.wh,p.map(a=>a.id).filter(Boolean),{agentDirs:Object.fromEntries(p.filter(a=>a.id).map(a=>[a.id,a.agentDir]))}),(0,O.fj)(b)),r=y(p),s=x(p,r),u=(0,D.QL)(s.models,r),v=!!k?.rpc?.ok,w=!!(k?.service?.loaded||v),z=f&&v&&q.stateWritable&&q.sessionStoreWritable,A=(0,_.Xz)().getDiagnostics?.(),B=(A?.recentFallbackDiagnostics??[]).map(a=>({...a,operationLabel:(0,U.Hi)(a.operation)})),C=(0,V.wi)(B,A),E=C.map(a=>`gateway.${a.operation}: Gateway-first request fell back to CLI (${a.kind}): ${a.issue} Recovery: ${a.recovery}`),F=[v?null:"OpenClaw Gateway RPC is not ready.",...q.issues,...E].filter(a=>!!a),G=(0,d.jJ)(F[0]??"OpenClaw system readiness snapshot.",{installed:f,loaded:w,rpcOk:v});return{...G,generatedAt:new Date().toISOString(),revision:a,mode:"live",diagnostics:{...G.diagnostics,installed:f,loaded:w,rpcOk:v,health:z?"healthy":f?"degraded":"offline",workspaceRoot:ae(g),configuredWorkspaceRoot:g,gatewayUrl:k?.gateway?.probeUrl??G.diagnostics.gatewayUrl,bindMode:k?.gateway?.bindMode,port:k?.gateway?.port,serviceLabel:k?.service?.label,openClawBinarySelection:(0,Z.Df)(await (0,Z.bq)(),(0,e.T5)()),modelReadiness:u,capabilityMatrix:(0,t.Bc)()??void 0,gatewayFallbackDiagnostics:B,gatewayFallbackReasons:C.map(a=>`${a.operationLabel} (${a.operation}): ${a.kind}: ${a.issue} Recovery: ${a.recovery}`),runtime:q,commandHistory:(0,e.ik)(),transport:A,issues:F},missionPresets:ac}}let aJ=null,aK=null,aL=null,aM=null,aN=null,aO=null,aP=null,aQ={cache:new Map},aR=new J,aS=new k(6e4),aT=new s({ttlMs:3e4,load:(a,b)=>a$({profile:a,generation:b})}),aU=new o({ttlMs:3e5,getGeneration:()=>aT.getGeneration(),loadState:(a,b)=>(0,n.t)(m.wh,a,{agentDirs:b})});function aV(){aQ.cache=new Map}function aW(){aV()}function aX(){aT.clear({incrementGeneration:!0}),aU.clear(),aS.clear(),aR.clear(),aJ=null,aK=null,aL=null,aM=null,aN=null,aO=null,aP=null,aV()}function aY(){aT.clear()}async function aZ(a={}){return aT.getSnapshot(a)}async function a$({profile:a="interactive",generation:b=aT.getGeneration()}={}){let c=await (0,f.i)(),g=await (0,e.Vg)()||!!c?.rpc?.ok;if(!g)return ad((0,d.jJ)("OpenClaw CLI is not installed on this machine.",{installed:!1,loaded:!!c?.service?.loaded,rpcOk:!1}));try{var k,n,o,p;let d,e,q,r,s,w,A,B,F,G,H,I,J,P,Q="system"===a,R=await (0,O.tl)();Q||(0,u.hC)();let S=(0,O.qB)(R.workspaceRoot)??null;if(Q)return ad(await aI({generation:b,settings:R,localGatewayStatus:c,openclawInstalled:g,configuredWorkspaceRoot:S,gatewayStatusCache:aS}));let U=Q?L():await ao(),V=aR.shouldRefresh(),W=aS.shouldRefresh(),X=!aM||Date.now()-aM.capturedAt>3e5;if("interactive"===a||Q){let a=!c&&V,b=!Q&&X,f=W?i(15e3):Promise.resolve(L()),g=a?h(15e3):Promise.resolve(L()),k=(0,l.k)(m.wh),n=b?j(15e3):Promise.resolve(L());[d,e,r,w]=await Promise.all([f,g,k,n]),q=L(),s=L(),A=L(),V&&!a&&aR.scheduleRefresh(()=>h(15e3))}else[e,d,r,w]=await Promise.all([h(45e3),i(45e3),(0,l.k)(m.wh),j(45e3)]),q=L(),s=L(),A=L();let Y=aS.resolve(d);if(!Y.value&&c&&(Y={value:c,reusedCachedValue:!1}),!Y.value){let a=await (0,f.i)(aS.getCachedPort());a&&(aS.write(a),Y={value:a,reusedCachedValue:!1})}let Z=Y.value,$="fulfilled"===U.status?(k=U.value,"string"==typeof k?(0,D.Nk)(k):k&&"object"==typeof k&&"value"in k&&"string"==typeof k.value?(0,D.Nk)(k.value):void 0):void 0,_=aR.resolve(e),aa=K(r,aK,a=>{aK=a}),ab=aa.value??[];M(q)&&!Q&&(q=await ap(ab));let ae=Q?L():await aq(ab),ai=(0,t.Bc)()?.operations?.runtimeSnapshot?.mode,aj=!Q&&"degraded"!==ai&&"disabled"!==ai&&"cli-fallback"!==ai,ak=Q?L():aj?await (0,v.Jb)("interactive"===a?8e3:15e3):L(),al=K(q,aJ,a=>{aJ=a}),am=K(s,aL,a=>{aL=a}),an=K(w,aM,a=>{aM=a}),ar=K(ae,aN,a=>{aN=a}),as=K(ak,aO,a=>{aO=a}),at=K(A,aP,a=>{aP=a}),au=_.value,av=al.value??(n=m.wh,E(ab.map(a=>({id:a.id,name:a.name||a.identity?.name||a.id,identityName:a.identity?.name,identityEmoji:a.identity?.emoji,identitySource:a.identity?"config":void 0,workspace:(0,D.Nk)(a.workspace)??"",agentDir:a.agentDir||C().join(n,"agents",a.id,"agent"),model:a.model,isDefault:!!a.default})),n)),aw=function(a,b,c=[]){let d=y(b,c);if(!a)return d;let e=z(a.defaultModel)??z(d?.defaultModel)??null,f=z(a.resolvedDefault)??z(d?.resolvedDefault)??e;return{...a,defaultModel:e,resolvedDefault:f}}(an.value,ab,av),aA=(o={agentConfig:ab,modelStatus:aw},x(o.agentConfig,o.modelStatus)),aB=am.value?.models??aA.models,aC=at.value??[],aD="fulfilled"===d.status||"fulfilled"===e.status||"fulfilled"===q.status||"fulfilled"===r.status||"fulfilled"===s.status||"fulfilled"===w.status||"fulfilled"===ae.status||"fulfilled"===ak.status||"fulfilled"===A.status,aE=af(av.map(a=>({id:a.id,agentDir:a.agentDir})),R,aU);aE.catch(()=>{});let aG=await ax(),aT=await ay(ar.value?.sessions??[],aG),{channelRegistry:aV,channelAccounts:aW}=await T(a),aX=function(a){let b=a.filter(a=>!!a.workspace),c=Array.from(new Set(b.map(a=>a.workspace))),d=new Map;for(let a of b){let b=d.get(a.workspace)??[];b.push(a.id),d.set(a.workspace,b)}return{workspaceBoundAgents:b,workspacePaths:c,activeAgentIdsByWorkspacePath:d,resolveWorkspaceId:(0,aF.Fm)(c)}}(av),aY=await az({sessions:aT,agentConfig:ab,agentsList:av,runtimeSnapshot:as.value,systemProfile:Q,dispatchRecords:aG,resolveWorkspaceId:aX.resolveWorkspaceId,historyStore:aQ}),{workspaces:aZ,agents:a$,relationships:a_,manifestByWorkspace:a0}=await aH({bindings:aX,agentConfig:ab,sessions:aT,status:au,gatewayStatus:Z,hasOpenClawSignal:aD,runtimes:aY}),{visibleWorkspaces:a1,visibleAgents:a2,visibleRuntimes:a3,visibleRelationships:a4}=(p={workspaces:aZ,agents:a$,runtimes:aY,relationships:a_,isWorkspaceHidden:a=>!!a0.get(a.path)?.hidden},B=new Set(p.workspaces.filter(a=>p.isWorkspaceHidden(a)).map(a=>a.id)),F=p.agents.filter(a=>!B.has(a.workspaceId)),G=new Set(p.agents.filter(a=>B.has(a.workspaceId)).map(a=>a.id)),H=p.runtimes.filter(a=>!(a.agentId&&G.has(a.agentId))&&!(a.workspaceId&&B.has(a.workspaceId))),I=new Set(p.runtimes.filter(a=>a.agentId&&G.has(a.agentId)||a.workspaceId&&B.has(a.workspaceId)).map(a=>a.id)),J=new Set([...B,...G,...I]),P=p.relationships.filter(a=>!J.has(a.sourceId)&&!J.has(a.targetId)),{visibleWorkspaces:p.workspaces.filter(a=>!B.has(a.id)),visibleAgents:F,visibleRuntimes:H,visibleRelationships:P}),a5=await aE,a6=await ag({profile:a,configuredWorkspaceRoot:S??null,configuredGatewayUrl:$,gatewayStatus:Z,status:au,hasOpenClawSignal:aD,runtimeDiagnostics:a5,models:aB,agents:a$,modelStatus:aw,payloadResults:{gatewayStatus:d,status:e,agents:q,agentConfig:r,models:s,modelStatus:w,sessions:ae,presence:A},gatewayStatusRejectedWithCachedValue:"rejected"===d.status&&Y.reusedCachedValue,payloadReuse:{status:_,agents:al,agentConfig:aa,models:am,modelStatus:an,sessions:ar,presence:at}}),a7=(0,N.IJ)(aY,a$),a8=(0,N.IJ)(a3,a2),a9={generatedAt:new Date().toISOString(),revision:b,mode:"live",diagnostics:a6,channelAccounts:aW,channelRegistry:aV,presence:aC.map(a=>({host:a.host,ip:a.ip,version:a.version,platform:a.platform,deviceFamily:a.deviceFamily,mode:a.mode,reason:a.reason,text:a.text,ts:a.ts})),missionPresets:ac};return{full:{...a9,workspaces:aZ,agents:a$,models:ah({models:aB,agents:a$,modelStatus:aw}),runtimes:aY,tasks:a7,relationships:a_},visible:{...a9,workspaces:a1,agents:a2,models:ah({models:aB,agents:a2,modelStatus:aw}),runtimes:a3,tasks:a8,relationships:a4}}}catch(a){return ad((0,d.jJ)(a instanceof Error?a.message:"Unknown OpenClaw error.",{installed:g,loaded:!!c?.service?.loaded,rpcOk:!!c?.rpc?.ok}))}}},9443:(a,b,c)=>{c.d(b,{aL:()=>l,xL:()=>k});var d=c(51455),e=c(76760),f=c.n(e),g=c(15612),h=c(14853),i=c(16588),j=c(58889);async function k(a,b,c){let d=(0,h.Q4)(b,c??g.eY),e=[...new Set(["AGENTS.md","SOUL.md","IDENTITY.md","TOOLS.md","HEARTBEAT.md",...d.resources.map(a=>a.relativePath)])],f=await Promise.all(e.map(b=>m(a,a,b))),i=new Map,j=[];for(let a of f)a&&(i.set(a.fileName,a.lines),j.push(a.source));return{profileFiles:e,contextManifest:d,workspaceSections:i,workspaceSources:j}}async function l(a,b,c){let d=c??await (0,j.OL)(a),e=(0,h.Q4)(d.template??null,d.rules??g.eY),f=new Set(["AGENTS.md","SOUL.md","IDENTITY.md","TOOLS.md","HEARTBEAT.md","MEMORY.md"]),[k,l,m,o,p,q]=await Promise.all([(0,i.Z3)(a,[{id:"agents",label:"AGENTS.md",relativePath:"AGENTS.md",kind:"file"},{id:"soul",label:"SOUL.md",relativePath:"SOUL.md",kind:"file"},{id:"identity",label:"IDENTITY.md",relativePath:"IDENTITY.md",kind:"file"},{id:"tools",label:"TOOLS.md",relativePath:"TOOLS.md",kind:"file"},{id:"heartbeat",label:"HEARTBEAT.md",relativePath:"HEARTBEAT.md",kind:"file"}]),(0,i.Z3)(a,[{id:"memory-md",label:"MEMORY.md",relativePath:"MEMORY.md",kind:"file"}]),(0,i.Z3)(a,e.resources.filter(a=>!f.has(a.relativePath))),(0,i.Z3)(a,[{id:"docs",label:"docs/",relativePath:"docs",kind:"directory"},{id:"memory",label:"memory/",relativePath:"memory",kind:"directory"},{id:"deliverables",label:"deliverables/",relativePath:"deliverables",kind:"directory"},{id:"skills",label:"skills/",relativePath:"skills",kind:"directory"},{id:"openclaw",label:".openclaw/",relativePath:".openclaw",kind:"directory"}]),(0,i.Z3)(a,[{id:"project-json",label:".openclaw/project.json",relativePath:".openclaw/project.json",kind:"file"},{id:"events",label:".openclaw/project-shell/events.jsonl",relativePath:".openclaw/project-shell/events.jsonl",kind:"file"},{id:"runs",label:".openclaw/project-shell/runs",relativePath:".openclaw/project-shell/runs",kind:"directory"},{id:"tasks",label:".openclaw/project-shell/tasks",relativePath:".openclaw/project-shell/tasks",kind:"directory"}]),(0,i.nU)(a)]),r=n(b.flatMap(a=>a.tools)),s=n([...q,...b.flatMap(a=>a.skills)]),t=b.filter(a=>a.tools.includes("fs.workspaceOnly")).length;return{bootstrap:{template:d.template,sourceMode:d.sourceMode,agentTemplate:d.agentTemplate,coreFiles:k,optionalFiles:l,contextFiles:m,folders:o,projectShell:p,localSkillIds:q},capabilities:{skills:s,tools:r,workspaceOnlyAgentCount:t}}}async function m(a,b,c){let e=f().join(a,c);try{var g,h;let a,i;await (0,d.access)(e);let j=(await (0,d.readFile)(e,"utf8")).trim();if(!j)return null;return{fileName:c,lines:j.split(/\r?\n/),source:(g=b,h=e,a=f().resolve(g),(i=f().resolve(h)).startsWith(`${a}${f().sep}`)?f().relative(a,i)||f().basename(i):i)}}catch{return null}}function n(a){return[...new Set(a.filter(a=>a.trim().length>0))].sort()}},11782:(a,b,c)=>{c.d(b,{AV:()=>g,JC:()=>h,Kg:()=>e});var d=c(65395);function e(a,b,c){var e;if(!b)return null;let g=(0,d.W2)(a),h=Math.max(Array.from(c).filter(b=>f(a,b)).length,(b.allowed??[]).filter(b=>f(a,b)).length),i=j(b.auth?.providers,a),m=j(b.auth?.oauth?.providers,a),n=l(m)?m:null,o=Array.isArray(n?.profiles)?n.profiles:null,p=o?o.filter(a=>{if(!l(a))return!1;let b=k(a.status)?.toLowerCase();return!b||!["expired","missing","invalid","error","disabled","revoked"].includes(b)}).length:0,q=k(m?.status)?.toLowerCase(),r=("number"==typeof(e=i?.profiles?.count)&&Number.isFinite(e)?e:null)??0,s=k(i?.effective?.kind)?.toLowerCase(),t="ollama"===a?h>0:o?p>0||"ok"===q:"ok"===q||r>0||!!(s&&["ok","profiles","token","apikey","api-key","oauth"].includes(s));return{provider:a,connected:t,canConnect:!0,needsTerminal:"oauth"===g.connectKind,detail:function({provider:a,descriptor:b,connected:c,visibleCount:d,profileCount:e,usableOauthProfileCount:f,oauthStatus:g}){return"ollama"===a?d>0?`${d} local model${1===d?"":"s"} detected.`:"Install or pull a local model to unlock this route.":c?f>0||"ok"===g?"OAuth connected":e>0?`${e} auth profile${1===e?"":"s"}`:d>0?`${d} configured model${1===d?"":"s"} in AgentOS.`:`${b.shortLabel} is connected.`:d>0?`${d} configured model${1===d?"":"s"} are already saved in AgentOS. Connect ${b.shortLabel} to use them.`:b.helperText}({provider:a,descriptor:g,connected:t,visibleCount:h,profileCount:r,usableOauthProfileCount:p,oauthStatus:q})}}function f(a,b){let c=b.split("/",1)[0]||"";return"openai-codex"===a?"openai"===c||"openai-codex"===c:c===a}function g(a,b){let c=a.split("/",1)[0]||"unknown";return"openai"===c&&i(a,b)?"openai-codex":c}function h(a,b){let c=a.split("/",1)[0]||"";return"openai-codex"===c||"openai"===c&&(/^openai\/gpt-/i.test(a)||i(a,b))}function i(a,b){if(/^openai\/.*codex/i.test(a))return!0;if(!b)return!1;let c=e("openai-codex",b,[]),d=e("openai",b,[]);return!!(c?.connected&&!d?.connected)}function j(a,b){return a?.find(a=>k(a.provider)===b)}function k(a){return"string"==typeof a&&a.trim()?a.trim():null}function l(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}},14414:(a,b,c)=>{c.d(b,{Dm:()=>g,gP:()=>h});var d=c(27091);let e=/^\[Retry after[^\]]+\]\s*/i;function f(a){return(0,d.ho)(a).replace(e,"").replace(/\s+/g," ").trim().toLowerCase()}function g(a,b){let c=f(b),d=f(a);return!!c&&!!d&&(d===c||d.startsWith(`${c} `)||d.includes(`original mission: ${c}`)||d.includes(`original mission ${c}`))}function h(a,b,c={}){if(c.agentId&&a.agentId!==c.agentId||"number"==typeof c.submittedAt&&(a.updatedAt??0)<c.submittedAt-1500)return!1;let d=function(a){let b="string"==typeof a.metadata.mission?a.metadata.mission:"string"==typeof a.metadata.turnPrompt?a.metadata.turnPrompt:null;if(!b)return null;let c=f(b);return c.length>0?c:null}(a);return!!d&&g(d,b)}},14853:(a,b,c)=>{c.d(b,{Iy:()=>l,Q4:()=>i,Q5:()=>j,nt:()=>h,uZ:()=>k});var d=c(66058);let e=["AGENTS.md","SOUL.md","IDENTITY.md","TOOLS.md","HEARTBEAT.md"],f={software:"Software project",frontend:"Frontend app",backend:"Backend/API",research:"Research",content:"Content/Growth"},g=["Use repository-local scripts or documented commands for repeatable workflows.","Update this file when the project exposes a cleaner build, test, or release path."];function h(a,b){return m(a,b).map(a=>a.path)}function i(a,b){var c;let d,f=new Map((d=[{id:"agents",label:"AGENTS.md",relativePath:"AGENTS.md",kind:"file",headings:["Workspace","Team","Customize","Safety defaults","Daily memory","Output"]},{id:"soul",label:"SOUL.md",relativePath:"SOUL.md",kind:"file",headings:["My Purpose","How I Operate","My Quirks","Active Focus"]},{id:"identity",label:"IDENTITY.md",relativePath:"IDENTITY.md",kind:"file",headings:["Role"]},{id:"tools",label:"TOOLS.md",relativePath:"TOOLS.md",kind:"file",headings:["Examples","Notes"]},{id:"heartbeat",label:"HEARTBEAT.md",relativePath:"HEARTBEAT.md",kind:"file",headings:[]},{id:"memory-md",label:"MEMORY.md",relativePath:"MEMORY.md",kind:"file",headings:["Current brief","Stable facts"]},{id:"memory-blueprint",label:"memory/blueprint.md",relativePath:"memory/blueprint.md",kind:"file",headings:["Outcome","Constraints","Unknowns"]},{id:"memory-decisions",label:"memory/decisions.md",relativePath:"memory/decisions.md",kind:"file",headings:["Template"]},{id:"docs-brief",label:"docs/brief.md",relativePath:"docs/brief.md",kind:"file",headings:["Objective","Success signals","Open questions"]},{id:"docs-architecture",label:"docs/architecture.md",relativePath:"docs/architecture.md",kind:"file",headings:["Current shape","Dependencies","Risks"]},{id:"deliverables-readme",label:"deliverables/README.md",relativePath:"deliverables/README.md",kind:"file",headings:["Deliverables"]}],"frontend"===(c=a??null)&&d.push({id:"docs-ux-notes",label:"docs/ux-notes.md",relativePath:"docs/ux-notes.md",kind:"file",headings:["UX Notes"]}),"backend"===c&&d.push({id:"docs-service-map",label:"docs/service-map.md",relativePath:"docs/service-map.md",kind:"file",headings:["Service Map"]}),"research"===c&&d.push({id:"docs-research-plan",label:"docs/research-plan.md",relativePath:"docs/research-plan.md",kind:"file",headings:["Research Plan"]}),"content"===c&&d.push({id:"docs-content-brief",label:"docs/content-brief.md",relativePath:"docs/content-brief.md",kind:"file",headings:["Content Brief"]}),d).map(a=>[a.relativePath,a])),g=a=>a.map(a=>f.get(a)).filter(Boolean),h=[{id:"core",title:"Core bootstrap",description:"Required for every workspace and shared by all agents.",enabled:!0,resources:g(e)},{id:"memory",title:"Memory",description:"Durable notes and decisions that survive across sessions.",enabled:b.generateMemory,resources:b.generateMemory?g(["MEMORY.md","memory/blueprint.md","memory/decisions.md"]):[]},{id:"starter",title:"Starter docs",description:"Planning, architecture, and handoff docs used for the first pass.",enabled:b.generateStarterDocs,resources:b.generateStarterDocs?g(["docs/brief.md","docs/architecture.md","deliverables/README.md",..."frontend"===a?["docs/ux-notes.md"]:"backend"===a?["docs/service-map.md"]:"research"===a?["docs/research-plan.md"]:"content"===a?["docs/content-brief.md"]:[]]):[]}];return{template:a??null,rules:b,sections:h,resources:h.flatMap(a=>a.resources)}}function j(a){let b=m(a.template,a.rules),c=new Map(l(a.docOverrides).map(a=>[a.path,a.content]));return b.map(b=>{let d=b.render(a),e=c.has(b.path);return{path:b.path,title:b.title,description:b.description,category:b.category,baseContent:d,content:e?c.get(b.path)??"":d,overridden:e}})}function k(a){let b=j(a).map(a=>({...a,generated:!0})),c=new Set(b.map(a=>a.path));return[...b,...l(a.docOverrides).filter(a=>!c.has(a.path)).map(a=>{var b;return{path:a.path,title:a.path,description:"Existing workspace file.",category:(b=a.path).startsWith("memory/")?"memory":b.startsWith("docs/")?"docs":b.startsWith("deliverables/")?"deliverables":"core",baseContent:a.content,content:a.content,overridden:!1,generated:!1}})]}function l(a){let b=new Map;for(let c of a??[]){let a=c.path.trim();a&&b.set(a,c.content)}return Array.from(b.entries()).map(([a,b])=>({path:a,content:b}))}function m(a,b){let c=[{path:"AGENTS.md",title:"AGENTS.md",description:"Shared operating instructions for all agents.",category:"core",render:n},{path:"SOUL.md",title:"SOUL.md",description:"Purpose, operating style, and active focus.",category:"core",render:({template:a,brief:b,contextSources:c})=>{var d,e,g;return d=a,e=b,g=c,`# SOUL
2
2
 
3
3
  ## My Purpose
4
4
  Help this ${f[d].toLowerCase()} workspace turn intent into real outcomes with pragmatic execution, verification, and durable memory.
@@ -170,4 +170,4 @@ Each agent should use only the subsection matching its current OpenClaw agent id
170
170
 
171
171
  ${a.length>0?a.join("\n\n"):"- No active agent role sections are configured yet."}`}function m(a){let b=a.policy,c=a.skillIds,e=v([...a.toolIds??[],...b?.fileAccess==="workspace-only"?["fs.workspaceOnly"]:[]]),f=v(a.channelIds??[]);return[`### ${a.name} (\`${a.id}\`)`,`- Agent id: \`${a.id}\``,`- Runtime rule: when the current OpenClaw agent id is \`${a.id}\`, use this section as the agent-specific role and persona.`,`- Role: ${a.role||"Agent"}`,`- Primary: ${a.isPrimary?"yes":"no"}`,...b?[`- Preset: ${(0,d._P)(b.preset)}`]:[],...a.modelId?[`- Model: \`${a.modelId}\``]:[],...c.length>0?[`- Skills: ${c.map(a=>`\`${a}\``).join(", ")}`]:[],...e.length>0?[`- Tools: ${e.map(a=>`\`${a}\``).join(", ")}`]:[],...b?[`- File access: ${b.fileAccess}`,`- Network access: ${b.networkAccess}`,`- Install scope: ${b.installScope}`,`- Missing tools: ${b.missingToolBehavior}`]:[],...f.length>0?[`- Channels: ${f.map(a=>`\`${a}\``).join(", ")}`]:[]].join("\n")}function n(a,b){let c=t(a,"Agent Roles");if(!c)return null;let d=a.slice(c.start,c.end),e=Array.from(d.matchAll(/^###\s+.+$/gm));for(let[a,f]of e.entries()){if(void 0===f.index)continue;let g=f.index,h=e[a+1]?.index??d.length,i=d.slice(g,h).trim();if(o(i)===b)return{start:c.start+g,end:c.start+h,content:i}}return null}function o(a){return/^###\s+.*?\(`([^`]+)`\)/m.exec(a)?.[1]??/^-\s+Agent id:\s+`([^`]+)`/m.exec(a)?.[1]??null}function p(a){return/^-\s+(Agent id|Runtime rule|Role|Primary|Preset|Model|Skills|Tools|File access|Network access|Install scope|Missing tools|Channels):/.test(a.trim())}function q(a){let b=0,c=a.length;for(;b<c&&a[b]?.trim()==="";)b+=1;for(;c>b&&a[c-1]?.trim()==="";)c-=1;return a.slice(b,c)}function r(a,b){return[...a].map((a,c)=>{let d=u(a.id)??w(u(a.name)??`agent-${c+1}`),e=b&&!d.startsWith(`${b}-`)?`${b}-${w(d)||"agent"}`:d,f=u(a.role),g=v([...a.skillIds??[],u(a.skillId)??""]);return{id:e,name:u(a.name)??f??e,role:f,enabled:!1!==a.enabled,isPrimary:!!a.isPrimary,skillId:g[0]??null,skillIds:g,toolIds:v(a.toolIds??[]),modelId:u(a.modelId),policy:a.policy??null,channelIds:v(a.channelIds??[])}}).sort((a,b)=>a.isPrimary!==b.isPrimary?a.isPrimary?-1:1:a.name.localeCompare(b.name))}function s(a,b,c,d){let e=c.trim(),f=t(a,b);if(f)return[a.slice(0,f.start).trimEnd(),e,a.slice(f.end).trimStart()].filter(Boolean).join("\n\n");if(d){let b=t(a,d);if(b)return[a.slice(0,b.end).trimEnd(),e,a.slice(b.end).trimStart()].filter(Boolean).join("\n\n")}return[a.trimEnd(),e].filter(Boolean).join("\n\n")}function t(a,b){let c=RegExp(`^##\\s+${b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*$`,"m").exec(a);if(!c||void 0===c.index)return null;let d=c.index,e=d+c[0].length,f=/^##\s+/m.exec(a.slice(e));return{start:d,end:f?.index===void 0?a.length:e+f.index}}function u(a){return"string"==typeof a&&a.trim().length>0?a.trim():null}function v(a){return Array.from(new Set(a.map(a=>a.trim()).filter(Boolean)))}function w(a){return a.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,64)}function x(a){return a.endsWith("\n")?a:`${a}
172
172
  `}},69699:(a,b,c)=>{c.d(b,{Bx:()=>i,Ck:()=>p,E_:()=>q,Ok:()=>u,V6:()=>m,Xy:()=>f,YY:()=>t,Ym:()=>v,cS:()=>s,gQ:()=>h,gv:()=>k,hi:()=>n,kc:()=>l,mp:()=>g,pV:()=>r,v0:()=>j,vp:()=>o});var d=c(76760),e=c.n(d);function f(a){return(a.sessionId?.trim()||null)??y(x(a),"sessionId")??function(a){let b=a?.trim();if(!b?.startsWith("runtime:"))return null;let c=b.split(":")[1];return c&&"dispatch"!==c?c:null}(a.observation.runtimeId)}function g(a){return y(x(a),"model")}function h(a){let b=x(a),c=b?.usage;if(!c||"object"!=typeof c)return;let d=z(c,"total")??z(c,"totalTokens")??z(c,"total_tokens");if(null!==d)return{input:z(c,"input")??z(c,"prompt_tokens")??0,output:z(c,"output")??z(c,"completion_tokens")??0,total:d,cacheRead:z(c,"cacheRead")??0}}function i(a){let b=a.result?.summary?.trim();if(!b)return null;let c=b.toLowerCase();return"completed"===c||"ok"===c||"success"===c||A(b)?null:b}function j(a){let b=v(a.result).find(a=>a.text.trim().length>0)?.text.trim()??null;return A(b)?null:b}function k(a){let b=j(a);return"completed"!==a.status||!function(a){if("string"!=typeof a)return!1;let b=a.replace(/\s+/g," ").trim().toLowerCase();return!!b&&("ready"===b||"[[reply_to_current]] ready"===b||"mission accepted"===b||"mission queued"===b)}(b)?null:a.observation.observedAt?"Dispatch finished, but the saved reply still looks like a placeholder READY response.":"Dispatch finished, but the only saved result was READY and no mission transcript was linked."}function l(a){let b=k(a);if(b)return b;if("cancelled"===a.status)return C(a.error||"Mission aborted by operator.",90);let c=i(a)||j(a);return c||(a.outputDirRelative?`Dispatch runner finished \xb7 ${a.outputDirRelative}`:a.observation.observedAt?"Dispatch runner finished. Waiting for the final runtime transcript to sync.":"Dispatch runner finished.")}function m(a,b){if("completed"===a.status)return"completed";if("cancelled"===a.status)return"cancelled";if("stalled"===a.status)return"stalled";if("running"===a.status){let c=Date.parse(a.runner.lastHeartbeatAt||a.updatedAt);return!Number.isNaN(c)&&b-c>3e5?"stalled":"running"}let c=Date.parse(a.submittedAt);return!Number.isNaN(c)&&b-c>12e4?"stalled":"queued"}function n(a,b){return"completed"===b?"completed":"cancelled"===b?"cancelled":"stalled"===b?"stalled":a.observation.runtimeId||a.observation.observedAt?"runtime-observed":a.runner.lastHeartbeatAt?"waiting-for-runtime":a.runner.startedAt||a.runner.pid?"waiting-for-heartbeat":"accepted"}function o(a,b){if("completed"===b||"cancelled"===b)return C(l(a),90);if("stalled"===b)return a.error?C(a.error,90):a.runner.lastHeartbeatAt?"Working silently while AgentOS waits for the first OpenClaw runtime.":"Needs attention before the first runner heartbeat.";let c=n(a,b);return"runtime-observed"===c?"First runtime observed. Promoting the task to live updates.":"waiting-for-runtime"===c?"Heartbeat received. Waiting for the first OpenClaw runtime.":"waiting-for-heartbeat"===c?"Dispatch runner started. Waiting for the first heartbeat.":"Mission accepted. Starting the OpenClaw dispatch runner."}function p(a,b){let c=m(b,Date.now()),d=n(b,c),e=Date.parse(b.updatedAt),f="completed"===c||"cancelled"===c?C(l(b),90):o(b,c);return{...a,dispatchId:b.id,status:c,subtitle:f,updatedAt:Number.isNaN(e)?a.updatedAt:e,ageMs:Number.isNaN(e)?a.ageMs:Math.max(Date.now()-e,0),liveRunCount:"running"===c||"queued"===c?Math.max(a.liveRunCount,1):0,warningCount:"stalled"===c||"cancelled"===c?Math.max(a.warningCount,1):a.warningCount,metadata:{...a.metadata,bootstrapStage:d,dispatchStatus:b.status,dispatchSubmittedAt:b.submittedAt,dispatchRunnerStartedAt:b.runner.startedAt,dispatchHeartbeatAt:b.runner.lastHeartbeatAt,dispatchObservedAt:b.observation.observedAt,outputDir:b.outputDir,outputDirRelative:b.outputDirRelative}}}function q(a){let b=B(a.outputDir),c=B(a.outputDirRelative);for(let d of[i(a),j(a)].filter(a=>"string"==typeof a&&a.trim().length>0))for(let a of function(a){if("string"!=typeof a||0===a.trim().length)return[];let b=[...a.matchAll(/(?:^|[\s:])((?:\/[^\s`),;]+)+\.[A-Za-z0-9][A-Za-z0-9._-]*)/g),...a.matchAll(/(?:^|[\s(])((?:\.{1,2}\/)?deliverables\/[^\s`),;]+)/g),...a.matchAll(/\]\(((?:\/|\.{1,2}\/|deliverables\/)[^)]+)\)/g),...a.matchAll(/`((?:\/|\.{1,2}\/|deliverables\/)[^`\n]+)`/g)],c=[];for(let a of b){let b=(a[1]||"").trim();b&&function(a){let b=a.trim().replace(/[`'")\],;]+$/g,"");return!(!b||b.endsWith("/"))&&e().posix.basename(b).includes(".")}(b)&&c.push({path:b,displayPath:b})}return function(a){let b=new Set,c=[];for(let d of a)!d.path||b.has(d.path)||(b.add(d.path),c.push(d));return c}(c)}(d)){let d=function(a,b,c){let d=B(a),f=B(b),g=B(c);if(!d)return null;if(e().isAbsolute(d)||!f||!g)return d;let h=g.replace(/\/+$/,""),i=d.replace(/\/+$/,"");if(i===h)return f;let j=`${h}/`;return i.startsWith(j)?e().join(f,i.slice(j.length)):d}(a.path,b,c);if(d)return{path:d,displayPath:a.displayPath}}return null}function r(a,b){var c,d;if(!b.finalText&&!a.runId)return null;let e=(c=a.tokenUsage,d=b.tokenUsage,c?d&&d.total>c.total?d:c:d),f=!!(a.agentId||a.sessionId||a.modelId||e);return{runId:a.runId||`runtime:${a.id}`,status:b.errorMessage?"error":"ok",summary:b.errorMessage||"completed",...f?{meta:{agentMeta:{agentId:a.agentId,sessionId:a.sessionId,model:a.modelId,usage:e}}}:{},...b.finalText?{result:{payloads:[{text:b.finalText,mediaUrl:null}]}}:{}}}function s(a){return"running"===a||"completed"===a||"stalled"===a||"cancelled"===a?a:"queued"}function t(a){return"off"===a||"minimal"===a||"low"===a||"high"===a?a:"medium"}function u(a){let b=v(a),c=w(a);return"object"==typeof a&&null!==a&&("string"==typeof a.runId||"string"==typeof a.status||"string"==typeof a.summary||b.length>0||!!c)}function v(a){return a&&"object"==typeof a?(Array.isArray(a.result?.payloads)?a.result?.payloads:Array.isArray(a.payloads)?a.payloads:[]).filter(a=>!!a&&"string"==typeof a.text):[]}function w(a){if(!a||"object"!=typeof a)return null;let b=a.result?.meta??a.meta;return b&&"object"==typeof b?b:null}function x(a){let b=w(a.result);if(!b||"object"!=typeof b)return null;let c=b.agentMeta;return c&&"object"==typeof c?c:null}function y(a,b){let c=a?.[b];return"string"==typeof c&&c.trim().length>0?c:null}function z(a,b){let c=a?.[b];return"number"==typeof c&&Number.isFinite(c)?c:null}function A(a){if(!a)return!1;let b=a.trim().toLowerCase();return"ready"===b||"completed"===b||"complete"===b||"ok"===b||"success"===b}function B(a){return a?.trim()||void 0}function C(a,b){let c=a.replace(/\s+/g," ").trim();return c.length<=b?c:`${c.slice(0,Math.max(b-1,1)).trimEnd()}…`}},70016:(a,b,c)=>{c.d(b,{$Z:()=>g,kO:()=>h});var d=c(77598),e=c(21916),f=c(96109);function g(a,b,c,d={}){let l=a.agentId??j(a.key),m=c.find(a=>a.id===l),n=b.find(a=>a.id===l),o=m?.workspace||n?.workspace,p=o?(d.resolveWorkspaceId??f.S_)(o):void 0,q=i(a.key,"task"),r=i(a.key,"stage"),s=a.model&&a.model.includes("/")?a.model:n?.model||m?.model||"unassigned",t=(0,e.xH)(r,a.key,a.ageMs),u=h(a),v=q?q.slice(0,8):null,w="agent-chat"===a.origin;return{id:u,source:"session",key:a.key||"unknown-session",title:w?"Agent chat session":v?`${k(l)} \xb7 ${v}`:`${k(l)} session`,subtitle:w?"direct chat":v?`task ${v} \xb7 ${r||"running"}`:"main session",status:t,updatedAt:a.updatedAt??null,ageMs:a.ageMs??null,agentId:l,workspaceId:p,modelId:s,sessionId:a.sessionId,taskId:q,tokenUsage:"number"==typeof a.totalTokens||"number"==typeof a.inputTokens?{input:a.inputTokens??0,output:a.outputTokens??0,total:a.totalTokens??(a.inputTokens??0)+(a.outputTokens??0),cacheRead:a.cacheRead??0}:void 0,metadata:{kind:a.kind??"direct",chatType:a.kind??"direct",origin:a.origin??null,dispatchId:a.dispatchId??null,mission:a.mission??null,routedMission:a.routedMission??null,dispatchSubmittedAt:a.dispatchSubmittedAt??null,stage:r??null,historical:!1}}}function h(a){let b=i(a.key,"task")||a.key||a.sessionId||String(Math.random()),c=a.sessionId||l(a.agentId||j(a.key)||"sessionless");return`runtime:${c}:${l(b)}`}function i(a,b){if(!a)return;let c=`:${b}:`,d=a.indexOf(c);if(-1!==d)return a.slice(d+c.length).split(":")[0]}function j(a){if(!a)return;let b=/^agent:([^:]+)/.exec(a);return b?.[1]}function k(a){return a?a.split(/[-_]/g).filter(Boolean).map(a=>a[0].toUpperCase()+a.slice(1)).join(" "):"OpenClaw"}function l(a){return(0,d.createHash)("sha1").update(a).digest("hex").slice(0,10)}},71065:(a,b,c)=>{c.d(b,{Uo:()=>n,N2:()=>l,AB:()=>p,If:()=>o,D9:()=>m,H5:()=>q,at:()=>r,CI:()=>s,rH:()=>v,jq:()=>u,ZF:()=>t});var d=c(51455),e=c(76760),f=c.n(e),g=c(39503);c(93628);var h=c(27091),i=c(98752);function j(a){return"string"==typeof a&&a.trim().length>0?a.trim():null}function k(a){return Array.from(new Set(a.filter(Boolean)))}function l(a,b){return f().join(a,".openclaw","agents",b,"agent")}function m(a){return{enabled:a.enabled,every:a.every??void 0}}function n(a){return`agent-policy-${a.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,64)||"agent"}`}function o(a){return!!(a&&/^agent-policy-/.test(a))}function p(a){return a.filter(a=>!o(a))}function q(a){return k(p(a).filter(a=>"string"==typeof a).map(a=>a.trim()).filter(Boolean))}function r(a){return k(a.filter(a=>"string"==typeof a).map(a=>a.trim()).filter(a=>!!a&&"fs.workspaceOnly"!==a))}async function s(a){try{let b=await (0,g.rw)().getConfig("agents.list");if(Array.isArray(b))return b;return null==b&&a?w(a):[]}catch(c){let b;if(b=function(a){if(!a)return"";if(a instanceof Error){let b=[a.message];return"stderr"in a&&"string"==typeof a.stderr&&b.push(a.stderr),"stdout"in a&&"string"==typeof a.stdout&&b.push(a.stdout),b.filter(Boolean).join("\n")}return"string"==typeof a?a:""}(c),/Config path not found:\s*agents\.list|Config path not found:\s*agents\.list/i.test(b))return a?w(a):[];throw c}}async function t(a){await (0,g.rw)().setConfig("agents.list",a,{strictJson:!0})}async function u(a,b,c,d,e){let f=await (0,i.rh)(e,"agent-config.read",()=>s(d)),g=f.findIndex(b=>b.id===a),h=g>=0?{...f[g]}:{id:a,workspace:b};if(h.workspace=b,void 0!==c.agentDir){let a=j(c.agentDir);a?h.agentDir=a:delete h.agentDir}if(void 0!==c.name){let a=j(c.name);a?h.name=a:delete h.name}if(void 0!==c.model){let a=j(c.model);a?h.model=a:delete h.model}if(c.heartbeat?.every?h.heartbeat={every:c.heartbeat.every}:null===c.heartbeat&&delete h.heartbeat,Array.isArray(c.skills)&&c.skills.length>0?h.skills=k(c.skills):Array.isArray(c.skills)&&delete h.skills,c.tools?h.tools=c.tools:null===c.tools&&delete h.tools,void 0!==c.identity)if(null===c.identity)delete h.identity;else{var l;let a,b,d,e,f=(a=j((l=c.identity).name),b=j(l.emoji),d=j(l.theme),e=j(l.avatar),{...a?{name:a}:{},...b?{emoji:b}:{},...d?{theme:d}:{},...e?{avatar:e}:{}});Object.keys(f).length>0?h.identity=f:delete h.identity}return g>=0?f[g]=h:f.push(h),await (0,i.rh)(e,"agent-config.write",()=>t(f)),h}async function v(a,b,c){let e=j(c)??l(b,a);await Promise.all(["IDENTITY.md","SOUL.md","TOOLS.md","HEARTBEAT.md"].map(a=>(0,d.rm)(f().join(e,a),{force:!0}).catch(()=>void 0)))}function w(a){return a.agents.map(a=>{let b=(0,h.CK)(a),c={name:b,...a.identity.emoji?{emoji:a.identity.emoji}:{},...a.identity.theme?{theme:a.identity.theme}:{},...a.identity.avatar?{avatar:a.identity.avatar}:{}},d={id:a.id,workspace:a.workspacePath,agentDir:a.agentDir,name:b};return a.modelId&&"unassigned"!==a.modelId&&(d.model=a.modelId),a.heartbeat.enabled&&a.heartbeat.every&&(d.heartbeat={every:a.heartbeat.every}),a.skills.length>0&&(d.skills=k(a.skills)),a.tools.includes("fs.workspaceOnly")&&(d.tools={fs:{workspaceOnly:!0}}),Object.keys(c).length>0&&(d.identity=c),a.isDefault&&(d.default=!0),d})}},72761:(a,b,c)=>{c.d(b,{Qc:()=>s,hC:()=>q,ot:()=>r});var d=c(51455),e=c(76760),f=c.n(e),g=c(39503),h=c(25303),i=c(56763);let j=f().join(process.cwd(),".mission-control","gateway-events"),k=null,l=null,m=null,n=0,o=!1,p=new Set;function q(){k||l||(l=t().finally(()=>{l=null}))}function r(a){return p.add(a),q(),()=>{p.delete(a)}}async function s(){try{let a=await (0,d.readdir)(j,{withFileTypes:!0});return(await Promise.all(a.filter(a=>a.isFile()&&a.name.endsWith(".json")).map(a=>w(f().join(j,a.name))))).filter(a=>!!a).sort((a,b)=>(b.updatedAt??0)-(a.updatedAt??0)).slice(0,500)}catch{return[]}}async function t(){let a=await (0,h.N3)().catch(()=>null);if(a?.eventBridge!=="unsupported")try{k=await (0,g.rw)().subscribeRuntimeEvents({includeSessions:!0,includeTasks:!0,includeArtifacts:!0,includeApprovals:!0},{onEvent:a=>{(function(a){for(let b of[...p])try{b(a)}catch(a){a instanceof Error?a.message:String(a)}})(a),v(a).catch(a=>{a instanceof Error?a.message:String(a)})},onError:a=>{a instanceof Error?a.message:String(a)},onClose:()=>{k=null,u()}},{timeoutMs:5e3}),n=0}catch(a){k=null,a instanceof Error?a.message:String(a),u()}}function u(){if(o){o=!1;return}k||l||m||(n+=1,m=setTimeout(()=>{m=null,q()},Math.min(3e4,1e3*2**Math.max(0,n-1))))}async function v(a){let b=(0,i.wz)(a);if(!b)return;new Date(b.updatedAt??Date.now()).toISOString(),await (0,d.mkdir)(j,{recursive:!0});let c=f().join(j,`${b.id.replace(/[^a-zA-Z0-9._-]+/g,"-")}.json`),e=`${c}.${process.pid}.tmp`;await (0,d.writeFile)(e,`${JSON.stringify(b,null,2)}
173
- `,"utf8"),await (0,d.rename)(e,c)}async function w(a){try{var b;let c=JSON.parse(await (0,d.readFile)(a,"utf8"));if(!c||"string"!=typeof c.id||"string"!=typeof c.key)return null;return{id:c.id,source:"session"===c.source||"cron"===c.source?c.source:"turn",key:c.key,title:"string"==typeof c.title?c.title:"Gateway runtime event",subtitle:"string"==typeof c.subtitle?c.subtitle:"OpenClaw Gateway event",status:c.status??"running",updatedAt:"number"==typeof c.updatedAt?c.updatedAt:null,ageMs:"number"==typeof c.updatedAt?Math.max(0,Date.now()-c.updatedAt):null,agentId:"string"==typeof c.agentId?c.agentId:void 0,workspaceId:"string"==typeof c.workspaceId?c.workspaceId:void 0,modelId:"string"==typeof c.modelId?c.modelId:void 0,sessionId:"string"==typeof c.sessionId?c.sessionId:void 0,taskId:"string"==typeof c.taskId?c.taskId:void 0,runId:"string"==typeof c.runId?c.runId:void 0,toolNames:Array.isArray(c.toolNames)?c.toolNames.filter(a=>"string"==typeof a):void 0,tokenUsage:c.tokenUsage,metadata:(b=c.metadata)&&"object"==typeof b&&!Array.isArray(b)?c.metadata:{}}}catch{return null}}},74497:(a,b,c)=>{c.d(b,{MY:()=>e,Yx:()=>f});let d=new Map([{provider:"telegram",label:"Telegram",kind:"chat",description:"Bot accounts, public groups, and delegated community routing.",iconKey:"siTelegram",accentColor:"#26A5E4",supportsProvisioning:!0,provisionFields:[{key:"token",label:"Bot token",placeholder:"123456:ABC...",inputType:"password",secret:!0,required:!0,section:"basic"}],supportsRouteDiscovery:!0,providerManagedByOpenClaw:!0},{provider:"discord",label:"Discord",kind:"chat",description:"Servers, channels, DMs, and thread-aware team routing.",iconKey:"siDiscord",accentColor:"#5865F2",supportsProvisioning:!0,provisionFields:[{key:"token",label:"Bot token",placeholder:"Discord bot token",inputType:"password",secret:!0,required:!0,section:"basic"}],supportsRouteDiscovery:!0,providerManagedByOpenClaw:!0},{provider:"slack",label:"Slack",kind:"chat",description:"Workspace apps, channels, and internal team handoffs.",iconKey:"siSlack",accentColor:"#4A154B",supportsProvisioning:!0,provisionFields:[{key:"botToken",label:"Bot token",placeholder:"xoxb-...",inputType:"password",secret:!0,required:!0,section:"basic"}],supportsRouteDiscovery:!1,providerManagedByOpenClaw:!0},{provider:"googlechat",label:"Google Chat",kind:"chat",description:"Spaces and enterprise chat surfaces backed by OpenClaw.",iconKey:"siGooglechat",accentColor:"#34A853",supportsProvisioning:!0,provisionFields:[{key:"webhookUrl",label:"Webhook URL",placeholder:"https://chat.googleapis.com/...",inputType:"url",secret:!0,required:!0,section:"basic"}],supportsRouteDiscovery:!1,providerManagedByOpenClaw:!0},{provider:"gmail",label:"Gmail",kind:"inbox",description:"Inbox ownership, draft/send workflows, and Gmail-triggered automations.",iconKey:"siGmail",accentColor:"#EA4335",supportsProvisioning:!0,provisionFields:[{key:"account",label:"Account email",placeholder:"agent@example.com",inputType:"text",required:!0,section:"basic"},{key:"project",label:"Project ID",placeholder:"openclaw-project",section:"basic"},{key:"label",label:"Label",placeholder:"inbox",section:"basic"},{key:"hookToken",label:"Hook token",placeholder:"shared-secret",inputType:"password",secret:!0,section:"basic"},{key:"hookUrl",label:"Hook URL",placeholder:"https://your-host.example/gmail-pubsub",inputType:"url",section:"advanced"},{key:"topic",label:"Topic",placeholder:"gmail-topic",section:"advanced"},{key:"subscription",label:"Subscription",placeholder:"gmail-subscription",section:"advanced"},{key:"pushToken",label:"Push token",placeholder:"push-secret",inputType:"password",secret:!0,section:"advanced"},{label:"Serve port",placeholder:"8788",key:"serve.port",inputType:"number",section:"advanced"},{key:"serve.bind",label:"Serve bind",placeholder:"127.0.0.1",section:"advanced"},{key:"serve.path",label:"Serve path",placeholder:"/",section:"advanced"},{key:"includeBody",label:"Include body",inputType:"checkbox",defaultValue:!0,section:"advanced"},{key:"maxBytes",label:"Max bytes",placeholder:"20000",inputType:"number",section:"advanced"},{key:"renewEveryMinutes",label:"Renew interval (minutes)",placeholder:"720",inputType:"number",section:"advanced"},{key:"tailscale.mode",label:"Tailscale mode",placeholder:"funnel",defaultValue:"funnel",inputType:"select",options:[{label:"Off",value:"off"},{label:"Serve",value:"serve"},{label:"Funnel",value:"funnel"}],helpText:"One of funnel, serve, or off.",section:"advanced"},{key:"tailscale.path",label:"Tailscale path",placeholder:"/gmail-pubsub",section:"advanced"},{key:"tailscale.target",label:"Tailscale target",placeholder:"http://127.0.0.1:8788/gmail-pubsub",inputType:"url",section:"advanced"},{key:"pushEndpoint",label:"Push endpoint",placeholder:"https://public.example/gmail-push",inputType:"url",section:"advanced"},{key:"model",label:"Model",placeholder:"openrouter/meta-llama/llama-3.3-70b-instruct:free",section:"advanced"},{key:"thinking",label:"Thinking",placeholder:"off",section:"advanced"}],supportsRouteDiscovery:!1,providerManagedByOpenClaw:!0},{provider:"email",label:"Email",kind:"inbox",description:"Generic email inboxes and send/read workflows exposed through OpenClaw.",iconKey:"siMaildotru",accentColor:"#0F172A",supportsProvisioning:!0,provisionFields:[{key:"address",label:"Address",placeholder:"inbox@example.com",inputType:"text",required:!0,section:"basic"},{key:"oauth",label:"OAuth config",placeholder:'{"clientId":"...","clientSecret":"..."}',inputType:"textarea",helpText:"Paste JSON or a provider-specific OAuth configuration blob.",section:"basic"},{key:"watch",label:"Watch",inputType:"checkbox",defaultValue:!0,section:"basic"},{key:"pubsub",label:"Pub/Sub",placeholder:"projects/project-id/topics/email-events",section:"basic"},{key:"imap.host",label:"IMAP host",placeholder:"imap.example.com",inputType:"text",section:"advanced"},{key:"imap.port",label:"IMAP port",placeholder:"993",inputType:"number",section:"advanced"},{key:"smtp.host",label:"SMTP host",placeholder:"smtp.example.com",inputType:"text",section:"advanced"},{key:"smtp.port",label:"SMTP port",placeholder:"587",inputType:"number",section:"advanced"},{key:"username",label:"Username",placeholder:"mailbox-user",inputType:"text",section:"advanced"},{key:"password",label:"Password",placeholder:"app password",inputType:"password",secret:!0,section:"advanced"}],supportsRouteDiscovery:!1,providerManagedByOpenClaw:!0},{provider:"webhook",label:"Webhook",kind:"trigger",description:"External event triggers delivered into OpenClaw automations.",iconKey:"siWebhook",accentColor:"#0EA5E9",supportsProvisioning:!0,provisionFields:[{key:"token",label:"Hook token",placeholder:"shared-secret",inputType:"password",secret:!0,required:!0,section:"basic"},{key:"path",label:"Path",placeholder:"/hooks",section:"basic"}],supportsRouteDiscovery:!1,providerManagedByOpenClaw:!0},{provider:"cron",label:"Cron",kind:"trigger",description:"Scheduled tasks and recurring automation entry points.",iconKey:"siClockify",accentColor:"#F59E0B",supportsProvisioning:!0,provisionFields:[{key:"webhookToken",label:"Webhook token",placeholder:"replace-with-dedicated-webhook-token",inputType:"password",secret:!0,required:!0,section:"basic"},{key:"sessionRetention",label:"Session retention",placeholder:"24h",section:"basic"},{key:"maxConcurrentRuns",label:"Max concurrent runs",placeholder:"1",inputType:"number",section:"basic"},{key:"store",label:"Store path",placeholder:"~/.openclaw/cron/jobs.json",section:"advanced"},{key:"runLog.maxBytes",label:"Run log max bytes",placeholder:"2mb",section:"advanced"},{key:"runLog.keepLines",label:"Run log keep lines",placeholder:"2000",inputType:"number",section:"advanced"}],supportsRouteDiscovery:!1,providerManagedByOpenClaw:!0}].map(a=>[a.provider,a]));function e(a){let b=d.get(a);return b?b.label:a.split(/[-_]/).filter(Boolean).map(a=>a.slice(0,1).toUpperCase()+a.slice(1)).join(" ")}function f(a){return(d.get(a)??{provider:a,label:e(a),kind:"chat",description:"OpenClaw-managed integration surface.",supportsProvisioning:!1,provisionFields:[],supportsRouteDiscovery:!1,providerManagedByOpenClaw:!0}).kind}},75402:(a,b,c)=>{c.d(b,{q6:()=>i,wh:()=>j});var d=c(48161),e=c.n(d),f=c(76760),g=c.n(f);let h=g().join(process.cwd(),".mission-control"),i=g().join(h,"channel-registry.json"),j=g().join(e().homedir(),".openclaw")},80410:(a,b,c)=>{c.d(b,{Bi:()=>o,CD:()=>i,Ip:()=>j,U8:()=>l,ho:()=>n,kw:()=>h});var d=c(77598),e=c(14414),f=c(27091),g=c(69699);function h(a,b){if(0===a.length||0===b.length)return a;let c=new Map;for(let a of b){var d,e;let b=(0,g.Xy)(a);a.agentId&&b&&c.set((d=a.agentId,e=b,`${d}:${e}`),a)}return 0===c.size?a:a.map(a=>{var b,d;let e=a.agentId&&a.sessionId?c.get((b=a.agentId,d=a.sessionId,`${b}:${d}`)):null;return e?{...a,kind:"task",origin:"mission-dispatch",dispatchId:e.id,mission:e.mission,routedMission:e.routedMission,dispatchSubmittedAt:e.submittedAt}:a})}function i(a,b){if(0===a.length||0===b.length)return a;let c=[...a],d=new Map(c.map((a,b)=>[a.id,b]));for(let a of b){let b=a.observation.runtimeId?.trim(),e=(b&&d.has(b)?c[d.get(b)]:null)??k(a,c),f=function(a,b,c){let d=new Map;c&&d.set(c.id,c);let e=(0,g.Xy)(a);if(!e)return Array.from(d.values());let f=Date.parse(a.submittedAt),h=Number.isNaN(f)?0:f-1500;for(let c of b){if(l(c)||c.agentId!==a.agentId||(c.updatedAt??0)<h)continue;let b="string"==typeof c.metadata.dispatchId?c.metadata.dispatchId.trim():"",f="string"==typeof c.runId?c.runId.trim():"";(b===a.id||f===a.id||c.sessionId===e)&&d.set(c.id,c)}return Array.from(d.values())}(a,c,e);if(0!==f.length)for(let b of f){let e=d.get(b.id);"number"==typeof e&&(c[e]=m(c[e],a))}}return c}async function j(a,b,c){let d=[],e=Date.now();for(let f of b){let b=k(f,a);if(b){let e=function(a,b){if(a.tokenUsage&&a.modelId)return a;let c=a.sessionId?.trim();if(!a.agentId||!c)return a;let d=b.filter(b=>b.id!==a.id&&b.agentId===a.agentId&&b.sessionId===c&&!!(b.tokenUsage||b.modelId)).sort(q)[0];return d?{...a,modelId:a.modelId??d.modelId,tokenUsage:a.tokenUsage??d.tokenUsage,metadata:{...a.metadata,...d.tokenUsage?{usageSessionRuntimeId:d.id}:{}}}:a}(b,a);await c.persistObservation(f,e);let g=await c.reconcileRuntimeState(f,e)??f;d.push(m(e,g));continue}let h=await c.buildObservedRuntime(f);if(h){let a=await c.reconcileRuntimeState(f,h)??f;d.push(n(a,h.sessionId??(0,g.Xy)(a)??void 0));continue}d.push(o(f,e))}return d.sort(q)}function k(a,b){var c,d;let f=Date.parse(a.submittedAt),h=Date.now(),i=(0,g.V6)(a,h),j=(0,g.Xy)(a),k=a.observation.runtimeId?.trim()||null;return(c=k,d=b,p(a.status)&&c&&!d.some(a=>a.id===c))?null:b.map(b=>({runtime:b,score:function(a,b,c){if(l(a)||a.agentId!==b.agentId)return null;let d="string"==typeof a.metadata.dispatchId?a.metadata.dispatchId.trim():"",f="string"==typeof a.runId?a.runId.trim():"";if(d&&d!==b.id||(a.updatedAt??0)<(Number.isNaN(c.submittedAt)?0:c.submittedAt-1500))return null;if(f===b.id){var g,h,i;let c=120*(g=a.sessionId,h=b.agentId,!!("string"==typeof g&&g.startsWith(`agent:${h}:`)));return("completed"===(i=a.status)||"stalled"===i||"cancelled"===i?11e3:9e3)-c}if(c.observedRuntimeId&&a.id===c.observedRuntimeId)return 1e4;let j=!!(c.sessionId&&a.sessionId===c.sessionId);if("completed"===c.effectiveStatus||"stalled"===c.effectiveStatus||"cancelled"===c.effectiveStatus)return d===b.id?500:j?420:null;if(c.sessionId&&!j)return null;let k=(0,e.gP)(a,b.mission,{agentId:b.agentId,submittedAt:c.submittedAt});return"turn"!==a.source||k||j?0+("turn"===a.source?400:"session"===a.source?40:20)+240*!!k+120*!!j+80*(d===b.id):null}(b,a,{submittedAt:f,sessionId:j,observedRuntimeId:k,effectiveStatus:i})})).filter(a=>"number"==typeof a.score).sort((a,b)=>b.score-a.score||q(a.runtime,b.runtime))[0]?.runtime}function l(a){return a.id.startsWith("runtime:dispatch:")}function m(a,b){var c,d;let e,h="string"==typeof a.metadata.dispatchId?a.metadata.dispatchId.trim():"",i=function(a){let b="string"==typeof a.metadata.mission?a.metadata.mission:"string"==typeof a.metadata.turnPrompt?a.metadata.turnPrompt:null;if(!b)return null;let c=(0,f.ho)(b);return c.length>0?c:null}(a),j=b.workspaceId??a.workspaceId,k=(0,g.E_)(b),l=a.tokenUsage??(0,g.gQ)(b),m=a.modelId??(0,g.mp)(b)??void 0,n=p(b.status)?b.status:a.status;return h===b.id&&i&&"string"==typeof a.metadata.dispatchStatus&&a.metadata.dispatchStatus===b.status&&a.workspaceId===j&&a.metadata.outputDir===b.outputDir&&a.metadata.outputDirRelative===b.outputDirRelative&&(!k||(c=a,d=k.path,Array.isArray(e=c.metadata.createdFiles)&&e.some(a=>"object"==typeof a&&null!==a&&"path"in a&&"string"==typeof a.path&&a.path===d)))&&a.tokenUsage===l&&a.modelId===m&&a.status===n?a:{...a,subtitle:p(b.status)?r((0,g.kc)(b),90):a.subtitle,status:n,workspaceId:j??void 0,modelId:m,tokenUsage:l,metadata:{...a.metadata,dispatchId:b.id,dispatchStatus:b.status,dispatchSubmittedAt:b.submittedAt,dispatchRunnerStartedAt:b.runner.startedAt,dispatchHeartbeatAt:b.runner.lastHeartbeatAt,dispatchObservedAt:b.observation.observedAt,mission:b.mission,routedMission:b.routedMission,outputDir:b.outputDir,outputDirRelative:b.outputDirRelative,notesDirRelative:b.notesDirRelative,...k?{createdFiles:[k]}:{}}}}function n(a,b){let c=Date.parse(a.observation.observedAt??a.updatedAt??a.submittedAt),d=Date.now(),e=(0,g.V6)(a,d),h=b??(0,g.Xy)(a)??s(a.id),i=(0,g.gv)(a);return{id:a.observation.runtimeId||`runtime:${h}:${s(a.id)}`,source:"turn",key:`dispatch:${a.id}`,title:(0,f.$m)(a.mission,38)||"Recovered mission runtime",subtitle:i?r(i,90):"completed"===a.status||"cancelled"===a.status?r((0,g.kc)(a),90):"stalled"===a.status?"Recovered the stalled runtime from the saved transcript.":"Recovering runtime state from the saved transcript.",status:e,updatedAt:Number.isNaN(c)?null:c,ageMs:Number.isNaN(c)?null:Math.max(d-c,0),agentId:a.agentId,workspaceId:a.workspaceId??void 0,modelId:(0,g.mp)(a)??void 0,sessionId:h,tokenUsage:(0,g.gQ)(a),metadata:{mission:a.mission,dispatchId:a.id,routedMission:a.routedMission,outputDir:a.outputDir,outputDirRelative:a.outputDirRelative,notesDirRelative:a.notesDirRelative,error:a.error,sessionId:h,pendingCreation:"queued"===e||"running"===e,bootstrapStage:(0,g.hi)(a,e),dispatchStatus:a.status,dispatchSubmittedAt:a.submittedAt,dispatchRunnerStartedAt:a.runner.startedAt,dispatchHeartbeatAt:a.runner.lastHeartbeatAt,dispatchObservedAt:a.observation.observedAt,recoveredFromObservation:!0,...i?{warnings:[i],warningSummary:i}:{}}}}function o(a,b){let c=Date.parse(a.updatedAt),d=(0,g.V6)(a,b),e=(0,g.hi)(a,d),h=(0,g.vp)(a,d),i=(0,g.Xy)(a),j=(0,g.mp)(a),k=(0,g.gQ)(a),l=(0,g.gv)(a);return{id:`runtime:dispatch:${a.id}`,source:"turn",key:`dispatch:${a.id}`,title:(0,f.$m)(a.mission,38)||"Queued mission",subtitle:l?r(l,90):h,status:d,updatedAt:Number.isNaN(c)?Date.parse(a.submittedAt)||null:c,ageMs:Number.isNaN(c)?null:Math.max(b-c,0),agentId:a.agentId,workspaceId:a.workspaceId??void 0,modelId:j??void 0,sessionId:i??void 0,runId:a.result?.runId,tokenUsage:k,metadata:{dispatchId:a.id,mission:a.mission,routedMission:a.routedMission,outputDir:a.outputDir,outputDirRelative:a.outputDirRelative,notesDirRelative:a.notesDirRelative,error:a.error,sessionId:i,pendingCreation:"queued"===d||"running"===d,bootstrapStage:e,dispatchStatus:a.status,dispatchSubmittedAt:a.submittedAt,dispatchRunnerStartedAt:a.runner.startedAt,dispatchHeartbeatAt:a.runner.lastHeartbeatAt,dispatchObservedAt:a.observation.observedAt,...l?{warnings:[l],warningSummary:l}:{}}}}function p(a){return"completed"===a||"stalled"===a||"cancelled"===a}function q(a,b){return(b.updatedAt??0)-(a.updatedAt??0)}function r(a,b){let c=a.replace(/\s+/g," ").trim();return c.length<=b?c:`${c.slice(0,Math.max(b-1,1)).trimEnd()}…`}function s(a){return(0,d.createHash)("sha1").update(a).digest("hex").slice(0,12)}},83761:(a,b,c)=>{c.d(b,{k:()=>g});var d=c(76760),e=c.n(d),f=c(51455);async function g(a){try{let b=await (0,f.readFile)(e().join(a,"openclaw.json"),"utf8"),c=JSON.parse(b),d=c.agents?.list;return{status:"fulfilled",value:Array.isArray(d)?d:[]}}catch(a){return{status:"rejected",reason:a}}}},88978:(a,b,c)=>{c.d(b,{t:()=>i});var d=c(73024),e=c(51455),f=c(76760),g=c.n(f);async function h(a,b={}){try{if(!1!==b.createIfMissing&&await (0,e.mkdir)(a,{recursive:!0}),await (0,e.access)(a,d.constants.R_OK|d.constants.W_OK),b.touch){let b=g().join(a,`.agentos-write-check-${process.pid}-${Date.now()}-${Math.random().toString(16).slice(2)}`);await (0,e.writeFile)(b,"","utf8"),await (0,e.rm)(b,{force:!0})}return{writable:!0,issue:null}}catch(b){return{writable:!1,issue:function(a,b){if(!b||"object"!=typeof b)return`${a}: unknown filesystem error`;let c="code"in b&&"string"==typeof b.code?b.code:"unknown",d="message"in b&&"string"==typeof b.message?b.message:"unknown filesystem error";return`${a}: ${c} ${d}`}(a,b)}}}async function i(a,b,c={}){let d=[...new Set(b.filter(Boolean))],e=await h(a,{createIfMissing:!0,touch:c.touch}),f=await Promise.all(d.map(async b=>{let d=function(a,b,c){let d="string"==typeof c&&c.trim()?g().resolve(c.trim()):null;if(d){let a="agent"===g().basename(d)?g().dirname(d):d;return g().join(a,"sessions")}return g().join(a,"agents",b,"sessions")}(a,b,c.agentDirs?.[b]),e=await h(d,{createIfMissing:!0,touch:c.touch});return{id:b,path:d,writable:e.writable,issue:e.issue}})),j=f.every(a=>a.writable),k=[e.writable?null:`OpenClaw state root is not writable. ${e.issue??a}`,...f.filter(a=>!a.writable).map(a=>`OpenClaw session store for ${a.id} is not writable. ${a.issue??a.path}`)].filter(a=>!!a);return{stateRoot:a,stateWritable:e.writable,sessionStoreWritable:e.writable&&j,sessionStores:f,issues:k}}},92273:(a,b,c)=>{c.d(b,{i:()=>f});var d=c(77030),e=c.n(d);async function f(a=18789){return await g("127.0.0.1",a,750)?{service:{label:"Local port probe",loaded:!0},gateway:{bindMode:"loopback",port:a,probeUrl:`ws://127.0.0.1:${a}`}}:null}async function g(a,b,c){return await new Promise(d=>{let f=e().createConnection({host:a,port:b}),g=!1,h=a=>{g||(g=!0,f.removeAllListeners(),f.destroy(),d(a))};f.setTimeout(c),f.once("connect",()=>h(!0)),f.once("error",()=>h(!1)),f.once("timeout",()=>h(!1))})}},93628:(a,b,c)=>{c.d(b,{Cf:()=>j,Ew:()=>p,Pj:()=>o,X0:()=>l,_P:()=>t,_Y:()=>k,aB:()=>u,c_:()=>r,g0:()=>m,go:()=>s,hR:()=>q,iN:()=>e,qF:()=>n});var d=c(1118);let e="worker",f=new Set(["project-builder","project-reviewer","project-tester","project-learner","project-browser","project-researcher","project-strategist","project-writer","project-analyst"]),g=new Set(d.j.map(a=>a.name)),h={worker:{label:"Worker",description:"Default execution agent for code changes, docs, research, and review work. Best when the task stays inside the workspace and does not need system-level changes.",defaultName:"Worker",defaultEmoji:"\uD83D\uDEE0️",defaultTheme:"slate",badgeVariant:"default",tools:["exec","read","write","edit","apply_patch"],skillIds:["project-builder","project-reviewer","project-tester"]},setup:{label:"Setup / Operator",description:"Bootstraps environments, handles installs, and unblocks the workspace so other agents can move faster.",defaultName:"Setup Operator",defaultEmoji:"\uD83E\uDDF0",defaultTheme:"amber",badgeVariant:"warning",tools:["exec","process","gateway","read","write"],skillIds:["project-builder","project-analyst","project-learner"]},browser:{label:"Browser",description:"Captures browser evidence, screenshots, and user-path validation for UI-heavy work.",defaultName:"Browser Agent",defaultEmoji:"\uD83C\uDF10",defaultTheme:"blue",badgeVariant:"success",tools:["browser","web_search","web_fetch","image"],skillIds:["project-browser","project-tester","project-researcher"]},monitoring:{label:"Monitoring",description:"Runs on a watch cycle, checks health and drift, and leaves concise triage handoffs.",defaultName:"Monitoring Agent",defaultEmoji:"\uD83D\uDEF0️",defaultTheme:"teal",badgeVariant:"warning",tools:["cron","gateway","sessions_list","message","web_fetch"],skillIds:["project-analyst","project-reviewer","project-learner"]},custom:{label:"Custom",description:"Starts from the safe baseline and lets you fine-tune identity, policy, and operating style by hand.",defaultName:"Custom Agent",defaultEmoji:"\uD83E\uDDE9",defaultTheme:"violet",badgeVariant:"muted",tools:["exec","read","edit","message"],skillIds:[]}},i={worker:{missingToolBehavior:"fallback",installScope:"none",fileAccess:"workspace-only",networkAccess:"enabled"},setup:{missingToolBehavior:"allow-install",installScope:"workspace",fileAccess:"workspace-only",networkAccess:"enabled"},browser:{missingToolBehavior:"ask-setup",installScope:"none",fileAccess:"workspace-only",networkAccess:"enabled"},monitoring:{missingToolBehavior:"fallback",installScope:"none",fileAccess:"workspace-only",networkAccess:"enabled"},custom:{missingToolBehavior:"fallback",installScope:"none",fileAccess:"workspace-only",networkAccess:"enabled"}};function j(a){return h[a]}function k(a){return v(a.filter(a=>f.has(a)))}function l(a){return v(a.filter(a=>g.has(a)))}function m(a=e,b){return{...i[a],...b??{},preset:a}}function n(a){let b=[...a.skills??[],a.id??"",a.name??""].join(" ").toLowerCase();return/browser|playwright|screenshot|web/.test(b)?"browser":/monitor|heartbeat|watch|triage|observer/.test(b)?"monitoring":/setup|operator|ops|install|environment/.test(b)?"setup":/custom/.test(b)?"custom":e}function o(a){return"worker"===a||"setup"===a||"browser"===a||"monitoring"===a||"custom"===a}function p(a){return"fallback"===a||"ask-setup"===a||"route-setup"===a||"allow-install"===a}function q(a){return"none"===a||"workspace"===a||"system"===a}function r(a){return"workspace-only"===a||"extended"===a}function s(a){return"restricted"===a||"enabled"===a}function t(a){return h[a].label}function u(a){return"fs.workspaceOnly"===a?"Workspace only":a.replace(/^agent-policy-/,"").replace(/^project-/,"").replace(/[._-]+/g," ").trim().replace(/\b\w/g,a=>a.toUpperCase())}function v(a){return Array.from(new Set(a.filter(Boolean)))}Object.entries(h).map(([a,b])=>({value:a,label:b.label,description:b.description}))},96109:(a,b,c)=>{c.d(b,{Fm:()=>h,S_:()=>g,hv:()=>i,xV:()=>k});var d=c(77598),e=c(76760),f=c.n(e);function g(a){return(f().basename(a)||a).toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||function(a){let b=0;for(let c=0;c<a.length;c+=1)b=(b<<5)-b+a.charCodeAt(c)|0;return`workspace-${Math.abs(b)}`}(a)}function h(a){let b=new Map;for(let c of a)b.set(l(c),c);let c=new Map;for(let a of b.values()){let b=g(a);c.set(b,[...c.get(b)??[],a])}let d=new Map;for(let[a,b]of c)b.forEach((b,c)=>{d.set(l(b),0===c?a:j(b))});return a=>d.get(l(a))??g(a)}function i(a,b){return h(b)(a)}function j(a){var b;return`${g(a)}-${b=a,(0,d.createHash)("sha1").update(f().resolve(b)).digest("hex").slice(0,8)}`}function k(a,b){let c;return g(a)===b||j(a)===b||(c=(0,d.createHash)("sha1").update(a).digest("hex").slice(0,8),`workspace:${c}`===b)}function l(a){return f().resolve(a)}},96876:(a,b,c)=>{c.d(b,{Fb:()=>j,jJ:()=>k});var d=c(48161),e=c.n(d),f=c(76760),g=c.n(f);c(93628);var h=c(15292);function i(a,b){let c=Date.now(),d=g().join(e().homedir(),"Documents","Shared","projects"),f=g().join(e().homedir(),".openclaw");return{generatedAt:new Date(c).toISOString(),revision:0,mode:"fallback",diagnostics:{installed:b.installed,loaded:b.loaded,rpcOk:b.rpcOk,health:b.health,workspaceRoot:d,configuredWorkspaceRoot:null,dashboardUrl:"http://127.0.0.1:18789/",gatewayUrl:"ws://127.0.0.1:18789",configuredGatewayUrl:null,openClawBinarySelection:(0,h.ml)(),modelReadiness:{ready:!1,defaultModel:null,resolvedDefaultModel:null,defaultModelReady:!1,recommendedModelId:null,preferredLoginProvider:null,totalModelCount:0,availableModelCount:0,localModelCount:0,remoteModelCount:0,missingModelCount:0,authProviders:[],issues:[a]},runtime:{stateRoot:f,stateWritable:!1,sessionStoreWritable:!1,sessionStores:[],smokeTest:{status:"not-run",checkedAt:null,agentId:null,runId:null,summary:null,error:null},issues:[a]},securityWarnings:[],issues:[a]},presence:[],channelAccounts:[],workspaces:[],agents:[],models:[],runtimes:[],tasks:[],relationships:[],missionPresets:[],channelRegistry:{version:1,channels:[]}}}function j(a){return i(a,{installed:!0,loaded:!0,rpcOk:!1,health:"degraded"})}function k(a,b){return i(a,{installed:b.installed,loaded:b.loaded,rpcOk:b.rpcOk,health:b.rpcOk?"healthy":b.installed?"degraded":"offline"})}c(14853)},98752:(a,b,c)=>{function d(){return globalThis.performance?.now?.()??Date.now()}function e(a){let b=d(),c=[];return{async measure(a,b){let e=d();try{return await b()}finally{c.push({label:a,durationMs:Math.round(d()-e)})}},summary:()=>({scope:a,totalMs:Math.round(d()-b),steps:[...c]})}}async function f(a,b,c){return a?a.measure(b,c):await c()}function g(a){let b=[`[openclaw timing] ${a.scope} total=${a.totalMs}ms`];for(let c of a.steps)b.push(`[openclaw timing] ${c.label}: ${c.durationMs}ms`);return b.join("\n")}c.d(b,{KV:()=>e,ct:()=>g,rh:()=>f})},99254:(a,b,c)=>{c.d(b,{fy:()=>F,G7:()=>G,$T:()=>O,H6:()=>I,lC:()=>J,VW:()=>C,D4:()=>H,S4:()=>h.S,QT:()=>E,vg:()=>D});var d=c(51455),e=c(76760),f=c.n(e),g=c(39503),h=c(39802),i=c(74497);let j=new Set(["telegram","discord","slack","googlechat"]),k={cron:"cron-default",email:"email-default",gmail:"gmail-default",webhook:"webhook-default"};async function l(){var a;let[b,c,d,e,f,g,h,i]=await Promise.all([m("channels"),m("hooks"),m("hooks.gmail"),m("hooks.webhook"),m("cron"),n(),m("gmail"),m("email")]);return function(a){let b=new Map;for(let c of a){let a=`${c.type}:${c.id}`,d=b.get(a);if(!d){b.set(a,c);continue}b.set(a,{...d,name:d.name||c.name,enabled:d.enabled||c.enabled,capabilities:Array.from(new Set([...d.capabilities??[],...c.capabilities??[]])),metadata:{...c.metadata??{},...d.metadata??{}}})}return Array.from(b.values())}([...function(a){if(!v(a))return[];let b=[];for(let[e,f]of Object.entries(a)){var c,d;if(c=e,!j.has(c)||!v(f))continue;let a=v(f.accounts)?f.accounts:{};for(let[c,d]of Object.entries(a))b.push(p(e,c,d,{fallbackName:t(e,c),source:"config.channels.accounts"}));let g=u(f.defaultAccount)??(!0===(d=f).enabled||r(d,["account","token","botToken","appToken","webhookUrl","webhook","clientId"])?"default":null);!g||g in a||b.push(p(e,g,f,{fallbackName:t(e,g),source:"config.channels.default"}))}return b}(b),...o("gmail",h,"config.gmail"),...o("gmail",d,"config.hooks.gmail"),...o("email",i,"config.email"),...function(a){if(!v(a))return[];let b=[];q(a)&&b.push(p("webhook",k.webhook,a,{fallbackName:"Webhook ingress",source:"config.hooks"}));let c=v(a.gmail)?a.gmail:null;return c&&b.push(...o("gmail",c,"config.hooks.gmail")),b}(c),...v(a=e)&&q(a)?[p("webhook",s(a,k.webhook),a,{fallbackName:"Webhook ingress",source:"config.hooks.webhook"})]:[],...function(a,b){var c,d;let e=Array.isArray(c=b)?c:v(c)?Array.isArray(c.jobs)?c.jobs:Array.isArray(c.items)?c.items:[]:[];if(!v(a)&&0===e.length)return[];let f=v(a)?a:{};if(!(!0===(d=f).enabled||r(d,["jobs","schedules","failureDestination","webhook","webhookToken","store","maxConcurrentRuns","sessionRetention","runLog"]))&&0===e.length)return[];let g=s(f,k.cron),h={...v(f.metadata)?f.metadata:{},jobCount:e.length};return[p("cron",g,{...f,metadata:h},{fallbackName:e.length>0?`Cron scheduler (${e.length} job${1===e.length?"":"s"})`:"Cron scheduler",source:"config.cron"})]}(f,g)])}async function m(a){try{return await (0,g.rw)().getConfig(a)}catch{return null}}async function n(){try{return await (0,g.rw)().listCronJobs()}catch{return null}}function o(a,b,c){var d;if(!v(b))return[];let e=[],f=v(b.accounts)?b.accounts:{};for(let[b,d]of Object.entries(f))e.push(p(a,b,d,{fallbackName:t(a,b),source:`${c}.accounts`}));if(f.default||!(!0===(d=b).enabled||r(d,["account","email","address","username","imap","smtp","oauth","watch","pubsub"])))return e;let g=s(b,k[a]);return e.push(p(a,g,b,{fallbackName:t(a,g),source:c})),e}function p(a,b,c,d){var e,f,g;let h,j,k,l=v(c)?c:{},m=u(l.name)??u(l.label)??u(l.accountName)??u(l.account)??u(l.email)??u(l.address)??d.fallbackName,n=v(l.metadata)?{...l.metadata}:{},o="telegram"===a?(h=u((e=l).botToken)??u(e.token),(j=h?.split(":",1)[0]?.trim())&&/^\d+$/.test(j)?j:null):null;return{id:b,type:a,name:m,enabled:!1!==l.enabled,kind:(0,i.Yx)(a),capabilities:(f=a,g=l,k=new Set,("telegram"===f||"discord"===f||"slack"===f||"googlechat"===f)&&k.add("chat"),("gmail"===f||"email"===f)&&(k.add("inbox"),r(g,["smtp","send","outbound","drafts"])&&k.add("send")),("webhook"===f||"cron"===f)&&k.add("trigger"),"gmail"===f&&r(g,["watch","pubsub","topic","subscription"])&&k.add("trigger"),Array.from(k)),metadata:{...n,source:d.source,...o?{botId:o}:{}}}}function q(a){return!0===a.enabled||r(a,["token","secret","path","baseUrl","mappings","webhook"])}function r(a,b){return b.some(b=>{var c;return"boolean"==typeof(c=a[b])?c:"string"==typeof c?c.trim().length>0:"number"==typeof c?Number.isFinite(c):Array.isArray(c)?c.length>0:v(c)})}function s(a,b){return u(a.accountId)??u(a.account)??u(a.id)??u(a.email)??u(a.address)??b}function t(a,b){let c=(0,i.MY)(a);return"default"===b||b===k[a]?`${c} default`:`${c} ${b}`}function u(a){return"string"==typeof a&&a.trim().length>0?a.trim():null}function v(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}var w=c(98752),x=c(58889);let y=f().join(process.cwd(),".mission-control"),z=f().join(y,"channel-registry.json");function A(a){return"string"==typeof a&&a.trim().length>0?a.trim():null}function B(a){return"object"==typeof a&&null!==a}async function C(){return D()}async function D(){try{let a=await (0,d.readFile)(z,"utf8"),b=JSON.parse(a),c=B(b)?b:{},e=Array.isArray(c.channels)?c.channels.map(a=>(0,x.kf)(a)).filter(a=>!!a):[],f=(0,x._E)({version:1,channels:e});return await Q(f)}catch{return(0,x._E)({version:1,channels:[]})}}async function E(){try{var a=await l();let b=new Map,c=[];for(let d of a){if("telegram"!==d.type){c.push(d);continue}let a="string"==typeof d.metadata?.botId&&d.metadata.botId.trim().length>0?d.metadata.botId.trim():null;if(!a){b.has(d.id)||b.set(d.id,d);continue}let e=b.get(a);if(!e){b.set(a,d);continue}P(d.id)>P(e.id)&&b.set(a,d)}return[...c,...Array.from(b.values())]}catch{return[]}}function F(a,b){let c=new Map(b.channels.filter(a=>!!a.id).map(a=>[a.id,a.name.trim()||a.id]));return a.map(a=>({...a,name:c.get(a.id)??a.name}))}function G(a){return a.channels.filter(a=>"internal"!==a.type&&a.workspaces.length>0).map(a=>({id:a.id,type:a.type,name:a.name.trim()||a.id,enabled:!0,kind:(0,i.Yx)(a.type),capabilities:[(0,i.Yx)(a.type)],metadata:{source:"channel-registry",legacy:!0}}))}function H(a){let b=new Map;for(let c of a){let a=`${c.type}:${c.id}`,d=b.get(a);if(!d){b.set(a,c);continue}b.set(a,{...d,name:d.name||c.name,enabled:!1!==d.enabled,kind:d.kind??c.kind,capabilities:Array.from(new Set([...d.capabilities??[],...c.capabilities??[]].filter(Boolean))),metadata:{...c.metadata??{},...d.metadata??{}}})}return Array.from(b.values())}async function I(a,b){switch(a.provider){case"telegram":return J(b);case"discord":return K(a.accountId,b);default:return[]}}async function J(a){let b=await (0,w.rh)(a,"telegram-discovery.read-channel-logs",()=>N("telegram",200));if(!b?.lines?.length)return await L(a);let c=new Map,d=a=>{let b=c.get(a.routeId);b?c.set(a.routeId,{routeId:a.routeId,provider:"telegram",kind:"group",title:a.title??b.title,lastSeen:Z(b.lastSeen,a.lastSeen)}):c.set(a.routeId,a)};for(let a of b.lines){let b="string"==typeof a?.time?a.time:null;for(let c of R(a,b))d(c);if("string"==typeof a?.raw)try{let c=JSON.parse(a.raw);for(let a of R(c,b))d(a)}catch{for(let c of S(a.raw,b))d(c)}if("string"==typeof a?.message)for(let c of S(a.message,b))d(c)}for(let b of(await L(a)))c.has(b.routeId)||c.set(b.routeId,b);return Array.from(c.values()).sort((a,b)=>{let c=a.title??a.routeId,d=b.title??b.routeId;return c.localeCompare(d)})}async function K(a,b){let c=await (0,w.rh)(b,"discord-discovery.read-channel-logs",()=>N("discord",300)),d=new Map,e=a=>{let b=d.get(a.routeId);b?d.set(a.routeId,{...b,title:a.title??b.title,subtitle:a.subtitle??b.subtitle,lastSeen:Z(b.lastSeen,a.lastSeen),guildId:a.guildId??b.guildId,parentId:a.parentId??b.parentId}):d.set(a.routeId,a)};for(let a of(await M(b)))e(a);for(let b of c?.lines??[]){let c="string"==typeof b?.time?b.time:null;for(let d of T(b,c,a))e(d);if("string"==typeof b?.raw)try{let d=JSON.parse(b.raw);for(let b of T(d,c,a))e(b)}catch{for(let d of U(b.raw,c,a))e(d)}if("string"==typeof b?.message)for(let d of U(b.message,c,a))e(d)}return Array.from(d.values()).sort((a,b)=>{let c=a.title??a.routeId,d=b.title??b.routeId;return c.localeCompare(d)})}async function L(a){try{let b=await (0,w.rh)(a,"telegram-discovery.read-allowlist-config",()=>(0,g.rw)().getConfig("channels.telegram.groups"));return Object.keys(b??{}).map(a=>({routeId:a,provider:"telegram",kind:"group",title:null,lastSeen:null})).sort((a,b)=>a.routeId.localeCompare(b.routeId))}catch{return[]}}async function M(a){try{let b=await (0,w.rh)(a,"discord-discovery.read-config",()=>(0,g.rw)().getConfig("channels.discord.guilds")),c=[];for(let[a,d]of Object.entries(b??{})){if(!X(a)||!B(d))continue;let b=A(d.name)??a;for(let e of Array.isArray(d.roles)?d.roles.filter(a=>"string"==typeof a||"number"==typeof a).map(a=>String(a).trim()).filter(a=>!!X(a)):[])c.push({routeId:W({kind:"role",guildId:a,targetId:e}),provider:"discord",kind:"role",title:`@${e}`,subtitle:b,lastSeen:null,guildId:a});let e=B(d.channels)?d.channels:{};for(let[d,f]of Object.entries(e)){let e=B(f)?f:{},g=X(d)??X(e.id);if(!g)continue;let h=A(e.name)??A(e.label)??`#${g}`;c.push({routeId:W({kind:"channel",guildId:a,targetId:g}),provider:"discord",kind:"channel",title:h,subtitle:b,lastSeen:null,guildId:a})}}return c}catch{return[]}}async function N(a,b){try{return await (0,g.rw)().getChannelLogs({channel:a,lines:b})}catch{return null}}function O(a,b){let c=(0,h.S)(b.chatId);return c&&b.agentId?"role"===c.kind?c.guildId?{agentId:b.agentId,match:{channel:"discord",accountId:a,guildId:c.guildId,roles:[c.targetId]}}:null:{agentId:b.agentId,match:{channel:"discord",accountId:a,...c.guildId?{guildId:c.guildId}:{},peer:{kind:c.kind,id:c.targetId}}}:null}function P(a){return"default"!==a?2:1}async function Q(a){let b=(await E()).filter(a=>"telegram"===a.type);if(0===b.length)return a;let c=new Set(b.map(a=>a.id)),d=new Map;for(let a of b){let b=a.name.trim().toLowerCase();if(!b)continue;let c=d.get(b)??[];c.push(a),d.set(b,c)}let e=!1,f=a.channels.map(a=>{if("telegram"!==a.type||c.has(a.id))return a;let b=d.get(a.name.trim().toLowerCase())??[];return 1!==b.length?a:(e=!0,{...a,id:b[0].id,name:b[0].name})});return e?(0,x._E)({version:1,channels:f}):a}function R(a,b){let c=new Map,d=[{value:a,depth:0}],e=new Set;for(;d.length>0;){let a=d.shift();if(!a||a.depth>6)continue;let f=a.value;if(null==f||"object"!=typeof f||e.has(f))continue;if(e.add(f),Array.isArray(f)){for(let b of f)d.push({value:b,depth:a.depth+1});continue}if(!B(f))continue;let g=Y(f.chatId);if(g){let a=A(f.title)??A(f.chatTitle)??null;c.set(g,{routeId:g,provider:"telegram",kind:"group",title:a,lastSeen:b})}for(let b of Object.values(f))d.push({value:b,depth:a.depth+1})}return Array.from(c.values())}function S(a,b){let c=new Map;for(let d of a.matchAll(/\{[^{}]*"chatId"\s*:\s*-?\d+[^{}]*\}/g)){let a=d[0];try{let d=JSON.parse(a);for(let a of R(d,b))c.set(a.routeId,a);continue}catch{}let e=a.match(/"chatId"\s*:\s*(-?\d+)/),f=Y(e?.[1]??null);if(!f)continue;let g=a.match(/"title"\s*:\s*"([^"]+)"/);c.set(f,{routeId:f,provider:"telegram",kind:"group",title:g?.[1]??null,lastSeen:b})}return Array.from(c.values())}function T(a,b,c){let d=new Map,e=[{value:a,depth:0,context:{accountId:null,guildId:null,guildName:null,channelId:null,channelName:null,threadId:null,threadName:null}}],f=new Set;for(;e.length>0;){var g,h,i,j;let a=e.shift();if(!a||a.depth>7)continue;let k=a.value;if(null==k||"object"!=typeof k||f.has(k))continue;if(f.add(k),Array.isArray(k)){for(let b of k)e.push({value:b,depth:a.depth+1,context:a.context});continue}if(!B(k))continue;let l=function(a,b){let c=B(b.guild)?b.guild:null,d=B(b.channel)?b.channel:null,e=B(b.thread)?b.thread:null,f=B(b.peer)?b.peer:null,g=A(b.kind),h=A(b.type),i=X(b.id),j=X(b.channelId)??X(b.channel_id)??X(d?.id)??(f?.kind==="channel"?X(f.id):null)??(("channel"===g||"channel"===h)&&i?i:null)??a.channelId,k=X(b.threadId)??X(b.thread_id)??X(e?.id)??(f?.kind==="thread"?X(f.id):null)??(("thread"===g||"thread"===h)&&i?i:null)??a.threadId;return{accountId:A(b.accountId)??A(b.channelAccountId)??A(b.account)??a.accountId,guildId:X(b.guildId)??X(b.guild_id)??X(c?.id)??a.guildId,guildName:A(b.guildName)??A(c?.name)??a.guildName,channelId:j,channelName:A(b.channelName)??A(d?.name)??("channel"===g||"channel"===h?A(b.name):null)??a.channelName,threadId:k,threadName:A(b.threadName)??A(e?.name)??("thread"===g||"thread"===h?A(b.name):null)??a.threadName}}(a.context,k);if(c&&l.accountId&&l.accountId!==c)continue;let m=(g=l,h=b,g.channelId?V({kind:"channel",guildId:g.guildId,targetId:g.channelId,title:g.channelName?`#${g.channelName}`:`#${g.channelId}`,subtitle:g.guildName??g.guildId,lastSeen:h}):null);m&&d.set(m.routeId,m);let n=(i=l,j=b,i.threadId?V({kind:"thread",guildId:i.guildId,targetId:i.threadId,parentId:i.channelId,title:i.threadName??`Thread ${i.threadId}`,subtitle:i.channelName&&i.guildName?`#${i.channelName} \xb7 ${i.guildName}`:i.channelName?`#${i.channelName}`:i.guildName??i.guildId,lastSeen:j}):null);for(let a of(n&&d.set(n.routeId,n),function(a,b,c){if(!b.guildId)return[];let d=new Map;for(let e of[a.roleIds,a.memberRoleIds,a.roles,B(a.member)?a.member.roles:null])if(Array.isArray(e))for(let a of e){let e=X(a)??(B(a)?X(a.id):null);if(!e)continue;let f=B(a)?A(a.name):null,g=V({kind:"role",guildId:b.guildId,targetId:e,title:f?`@${f}`:`@${e}`,subtitle:b.guildName??b.guildId,lastSeen:c});d.set(g.routeId,g)}return Array.from(d.values())}(k,l,b)))d.set(a.routeId,a);for(let b of Object.values(k))e.push({value:b,depth:a.depth+1,context:l})}return Array.from(d.values())}function U(a,b,c){let d=new Map,e=a.match(/accountId["=:\s]+([A-Za-z0-9._-]+)/i)?.[1]??null;if(c&&e&&e!==c)return[];for(let e of a.matchAll(/\{[^{}]*(guildId|channelId|threadId|roleIds|roles)[^{}]*\}/g))try{let a=JSON.parse(e[0]);for(let e of T(a,b,c))d.set(e.routeId,e)}catch{}let f=X(a.match(/guild(?:Id)?["=:\s]+(\d{5,})/i)?.[1]??null),g=X(a.match(/channel(?:Id)?["=:\s]+(\d{5,})/i)?.[1]??null),h=X(a.match(/thread(?:Id)?["=:\s]+(\d{5,})/i)?.[1]??null);if(g){let a=V({kind:"channel",guildId:f,targetId:g,title:`#${g}`,subtitle:f?`Guild ${f}`:null,lastSeen:b});d.set(a.routeId,a)}if(h){let a=V({kind:"thread",guildId:f,targetId:h,parentId:g,title:`Thread ${h}`,subtitle:g?`Channel ${g}`:f?`Guild ${f}`:null,lastSeen:b});d.set(a.routeId,a)}if(f)for(let c of(a.match(/roles?["=:\s]+\[([^\]]+)\]/i)?.[1]??"").matchAll(/\b(\d{5,})\b/g)){let a=X(c[1]);if(!a)continue;let e=V({kind:"role",guildId:f,targetId:a,title:`@${a}`,subtitle:`Guild ${f}`,lastSeen:b});d.set(e.routeId,e)}return Array.from(d.values())}function V(a){return{routeId:W({kind:a.kind,guildId:a.guildId,targetId:a.targetId,parentId:a.parentId}),provider:"discord",kind:a.kind,title:a.title,subtitle:a.subtitle,lastSeen:a.lastSeen,guildId:a.guildId,parentId:a.parentId??null}}function W(a){let b=a.guildId??"_";return"thread"===a.kind?`thread:${b}:${a.targetId}:${a.parentId??"_"}`:`${a.kind}:${b}:${a.targetId}`}function X(a){if("number"==typeof a&&Number.isFinite(a))return String(a);if("string"!=typeof a)return null;let b=a.trim();return/^\d{5,}$/.test(b)?b:null}function Y(a){if("number"==typeof a&&Number.isFinite(a)&&a<0)return String(a);if("string"!=typeof a)return null;let b=a.trim();return/^-\d+$/.test(b)?b:null}function Z(a,b){if(!b)return a;if(!a)return b;let c=Date.parse(a),d=Date.parse(b);return Number.isNaN(d)?a:Number.isNaN(c)||d>c?b:a}}};
173
+ `,"utf8"),await (0,d.rename)(e,c)}async function w(a){try{var b;let c=JSON.parse(await (0,d.readFile)(a,"utf8"));if(!c||"string"!=typeof c.id||"string"!=typeof c.key)return null;return{id:c.id,source:"session"===c.source||"cron"===c.source?c.source:"turn",key:c.key,title:"string"==typeof c.title?c.title:"Gateway runtime event",subtitle:"string"==typeof c.subtitle?c.subtitle:"OpenClaw Gateway event",status:c.status??"running",updatedAt:"number"==typeof c.updatedAt?c.updatedAt:null,ageMs:"number"==typeof c.updatedAt?Math.max(0,Date.now()-c.updatedAt):null,agentId:"string"==typeof c.agentId?c.agentId:void 0,workspaceId:"string"==typeof c.workspaceId?c.workspaceId:void 0,modelId:"string"==typeof c.modelId?c.modelId:void 0,sessionId:"string"==typeof c.sessionId?c.sessionId:void 0,taskId:"string"==typeof c.taskId?c.taskId:void 0,runId:"string"==typeof c.runId?c.runId:void 0,toolNames:Array.isArray(c.toolNames)?c.toolNames.filter(a=>"string"==typeof a):void 0,tokenUsage:c.tokenUsage,metadata:(b=c.metadata)&&"object"==typeof b&&!Array.isArray(b)?c.metadata:{}}}catch{return null}}},74497:(a,b,c)=>{c.d(b,{MY:()=>f,Yx:()=>g,rY:()=>e});let d=new Map([{provider:"telegram",label:"Telegram",kind:"chat",description:"Bot accounts, public groups, and delegated community routing.",iconKey:"siTelegram",accentColor:"#26A5E4",supportsProvisioning:!0,provisionFields:[{key:"token",label:"Bot token",placeholder:"123456:ABC...",inputType:"password",secret:!0,required:!0,section:"basic"}],supportsRouteDiscovery:!0,providerManagedByOpenClaw:!0},{provider:"discord",label:"Discord",kind:"chat",description:"Servers, channels, DMs, and thread-aware team routing.",iconKey:"siDiscord",accentColor:"#5865F2",supportsProvisioning:!0,provisionFields:[{key:"token",label:"Bot token",placeholder:"Discord bot token",inputType:"password",secret:!0,required:!0,section:"basic"}],supportsRouteDiscovery:!0,providerManagedByOpenClaw:!0},{provider:"slack",label:"Slack",kind:"chat",description:"Workspace apps, channels, and internal team handoffs.",iconKey:"siSlack",accentColor:"#4A154B",supportsProvisioning:!0,provisionFields:[{key:"botToken",label:"Bot token",placeholder:"xoxb-...",inputType:"password",secret:!0,required:!0,section:"basic"}],supportsRouteDiscovery:!1,providerManagedByOpenClaw:!0},{provider:"googlechat",label:"Google Chat",kind:"chat",description:"Spaces and enterprise chat surfaces backed by OpenClaw.",iconKey:"siGooglechat",accentColor:"#34A853",supportsProvisioning:!0,provisionFields:[{key:"webhookUrl",label:"Webhook URL",placeholder:"https://chat.googleapis.com/...",inputType:"url",secret:!0,required:!0,section:"basic"}],supportsRouteDiscovery:!1,providerManagedByOpenClaw:!0},{provider:"gmail",label:"Gmail",kind:"inbox",description:"Inbox ownership, draft/send workflows, and Gmail-triggered automations.",iconKey:"siGmail",accentColor:"#EA4335",supportsProvisioning:!0,provisionFields:[{key:"account",label:"Account email",placeholder:"agent@example.com",inputType:"text",required:!0,section:"basic"},{key:"project",label:"Project ID",placeholder:"openclaw-project",section:"basic"},{key:"label",label:"Label",placeholder:"inbox",section:"basic"},{key:"hookToken",label:"Hook token",placeholder:"shared-secret",inputType:"password",secret:!0,section:"basic"},{key:"hookUrl",label:"Hook URL",placeholder:"https://your-host.example/gmail-pubsub",inputType:"url",section:"advanced"},{key:"topic",label:"Topic",placeholder:"gmail-topic",section:"advanced"},{key:"subscription",label:"Subscription",placeholder:"gmail-subscription",section:"advanced"},{key:"pushToken",label:"Push token",placeholder:"push-secret",inputType:"password",secret:!0,section:"advanced"},{label:"Serve port",placeholder:"8788",key:"serve.port",inputType:"number",section:"advanced"},{key:"serve.bind",label:"Serve bind",placeholder:"127.0.0.1",section:"advanced"},{key:"serve.path",label:"Serve path",placeholder:"/",section:"advanced"},{key:"includeBody",label:"Include body",inputType:"checkbox",defaultValue:!0,section:"advanced"},{key:"maxBytes",label:"Max bytes",placeholder:"20000",inputType:"number",section:"advanced"},{key:"renewEveryMinutes",label:"Renew interval (minutes)",placeholder:"720",inputType:"number",section:"advanced"},{key:"tailscale.mode",label:"Tailscale mode",placeholder:"funnel",defaultValue:"funnel",inputType:"select",options:[{label:"Off",value:"off"},{label:"Serve",value:"serve"},{label:"Funnel",value:"funnel"}],helpText:"One of funnel, serve, or off.",section:"advanced"},{key:"tailscale.path",label:"Tailscale path",placeholder:"/gmail-pubsub",section:"advanced"},{key:"tailscale.target",label:"Tailscale target",placeholder:"http://127.0.0.1:8788/gmail-pubsub",inputType:"url",section:"advanced"},{key:"pushEndpoint",label:"Push endpoint",placeholder:"https://public.example/gmail-push",inputType:"url",section:"advanced"},{key:"model",label:"Model",placeholder:"openrouter/meta-llama/llama-3.3-70b-instruct:free",section:"advanced"},{key:"thinking",label:"Thinking",placeholder:"off",section:"advanced"}],supportsRouteDiscovery:!1,providerManagedByOpenClaw:!0},{provider:"email",label:"Email",kind:"inbox",description:"Generic email inboxes and send/read workflows exposed through OpenClaw.",iconKey:"siMaildotru",accentColor:"#0F172A",supportsProvisioning:!0,provisionFields:[{key:"address",label:"Address",placeholder:"inbox@example.com",inputType:"text",required:!0,section:"basic"},{key:"oauth",label:"OAuth config",placeholder:'{"clientId":"...","clientSecret":"..."}',inputType:"textarea",helpText:"Paste JSON or a provider-specific OAuth configuration blob.",section:"basic"},{key:"watch",label:"Watch",inputType:"checkbox",defaultValue:!0,section:"basic"},{key:"pubsub",label:"Pub/Sub",placeholder:"projects/project-id/topics/email-events",section:"basic"},{key:"imap.host",label:"IMAP host",placeholder:"imap.example.com",inputType:"text",section:"advanced"},{key:"imap.port",label:"IMAP port",placeholder:"993",inputType:"number",section:"advanced"},{key:"smtp.host",label:"SMTP host",placeholder:"smtp.example.com",inputType:"text",section:"advanced"},{key:"smtp.port",label:"SMTP port",placeholder:"587",inputType:"number",section:"advanced"},{key:"username",label:"Username",placeholder:"mailbox-user",inputType:"text",section:"advanced"},{key:"password",label:"Password",placeholder:"app password",inputType:"password",secret:!0,section:"advanced"}],supportsRouteDiscovery:!1,providerManagedByOpenClaw:!0},{provider:"webhook",label:"Webhook",kind:"trigger",description:"External event triggers delivered into OpenClaw automations.",iconKey:"siWebhook",accentColor:"#0EA5E9",supportsProvisioning:!0,provisionFields:[{key:"token",label:"Hook token",placeholder:"shared-secret",inputType:"password",secret:!0,required:!0,section:"basic"},{key:"path",label:"Path",placeholder:"/hooks",section:"basic"}],supportsRouteDiscovery:!1,providerManagedByOpenClaw:!0},{provider:"cron",label:"Cron",kind:"trigger",description:"Scheduled tasks and recurring automation entry points.",iconKey:"siClockify",accentColor:"#F59E0B",supportsProvisioning:!0,provisionFields:[{key:"webhookToken",label:"Webhook token",placeholder:"replace-with-dedicated-webhook-token",inputType:"password",secret:!0,required:!0,section:"basic"},{key:"sessionRetention",label:"Session retention",placeholder:"24h",section:"basic"},{key:"maxConcurrentRuns",label:"Max concurrent runs",placeholder:"1",inputType:"number",section:"basic"},{key:"store",label:"Store path",placeholder:"~/.openclaw/cron/jobs.json",section:"advanced"},{key:"runLog.maxBytes",label:"Run log max bytes",placeholder:"2mb",section:"advanced"},{key:"runLog.keepLines",label:"Run log keep lines",placeholder:"2000",inputType:"number",section:"advanced"}],supportsRouteDiscovery:!1,providerManagedByOpenClaw:!0}].map(a=>[a.provider,a]));function e(a){return d.get(a)??{provider:a,label:f(a),kind:"chat",description:"OpenClaw-managed integration surface.",supportsProvisioning:!1,provisionFields:[],supportsRouteDiscovery:!1,providerManagedByOpenClaw:!0}}function f(a){let b=d.get(a);return b?b.label:a.split(/[-_]/).filter(Boolean).map(a=>a.slice(0,1).toUpperCase()+a.slice(1)).join(" ")}function g(a){return e(a).kind}},75402:(a,b,c)=>{c.d(b,{q6:()=>i,wh:()=>j});var d=c(48161),e=c.n(d),f=c(76760),g=c.n(f);let h=g().join(process.cwd(),".mission-control"),i=g().join(h,"channel-registry.json"),j=g().join(e().homedir(),".openclaw")},80410:(a,b,c)=>{c.d(b,{Bi:()=>o,CD:()=>i,Ip:()=>j,U8:()=>l,ho:()=>n,kw:()=>h});var d=c(77598),e=c(14414),f=c(27091),g=c(69699);function h(a,b){if(0===a.length||0===b.length)return a;let c=new Map;for(let a of b){var d,e;let b=(0,g.Xy)(a);a.agentId&&b&&c.set((d=a.agentId,e=b,`${d}:${e}`),a)}return 0===c.size?a:a.map(a=>{var b,d;let e=a.agentId&&a.sessionId?c.get((b=a.agentId,d=a.sessionId,`${b}:${d}`)):null;return e?{...a,kind:"task",origin:"mission-dispatch",dispatchId:e.id,mission:e.mission,routedMission:e.routedMission,dispatchSubmittedAt:e.submittedAt}:a})}function i(a,b){if(0===a.length||0===b.length)return a;let c=[...a],d=new Map(c.map((a,b)=>[a.id,b]));for(let a of b){let b=a.observation.runtimeId?.trim(),e=(b&&d.has(b)?c[d.get(b)]:null)??k(a,c),f=function(a,b,c){let d=new Map;c&&d.set(c.id,c);let e=(0,g.Xy)(a);if(!e)return Array.from(d.values());let f=Date.parse(a.submittedAt),h=Number.isNaN(f)?0:f-1500;for(let c of b){if(l(c)||c.agentId!==a.agentId||(c.updatedAt??0)<h)continue;let b="string"==typeof c.metadata.dispatchId?c.metadata.dispatchId.trim():"",f="string"==typeof c.runId?c.runId.trim():"";(b===a.id||f===a.id||c.sessionId===e)&&d.set(c.id,c)}return Array.from(d.values())}(a,c,e);if(0!==f.length)for(let b of f){let e=d.get(b.id);"number"==typeof e&&(c[e]=m(c[e],a))}}return c}async function j(a,b,c){let d=[],e=Date.now();for(let f of b){let b=k(f,a);if(b){let e=function(a,b){if(a.tokenUsage&&a.modelId)return a;let c=a.sessionId?.trim();if(!a.agentId||!c)return a;let d=b.filter(b=>b.id!==a.id&&b.agentId===a.agentId&&b.sessionId===c&&!!(b.tokenUsage||b.modelId)).sort(q)[0];return d?{...a,modelId:a.modelId??d.modelId,tokenUsage:a.tokenUsage??d.tokenUsage,metadata:{...a.metadata,...d.tokenUsage?{usageSessionRuntimeId:d.id}:{}}}:a}(b,a);await c.persistObservation(f,e);let g=await c.reconcileRuntimeState(f,e)??f;d.push(m(e,g));continue}let h=await c.buildObservedRuntime(f);if(h){let a=await c.reconcileRuntimeState(f,h)??f;d.push(n(a,h.sessionId??(0,g.Xy)(a)??void 0));continue}d.push(o(f,e))}return d.sort(q)}function k(a,b){var c,d;let f=Date.parse(a.submittedAt),h=Date.now(),i=(0,g.V6)(a,h),j=(0,g.Xy)(a),k=a.observation.runtimeId?.trim()||null;return(c=k,d=b,p(a.status)&&c&&!d.some(a=>a.id===c))?null:b.map(b=>({runtime:b,score:function(a,b,c){if(l(a)||a.agentId!==b.agentId)return null;let d="string"==typeof a.metadata.dispatchId?a.metadata.dispatchId.trim():"",f="string"==typeof a.runId?a.runId.trim():"";if(d&&d!==b.id||(a.updatedAt??0)<(Number.isNaN(c.submittedAt)?0:c.submittedAt-1500))return null;if(f===b.id){var g,h,i;let c=120*(g=a.sessionId,h=b.agentId,!!("string"==typeof g&&g.startsWith(`agent:${h}:`)));return("completed"===(i=a.status)||"stalled"===i||"cancelled"===i?11e3:9e3)-c}if(c.observedRuntimeId&&a.id===c.observedRuntimeId)return 1e4;let j=!!(c.sessionId&&a.sessionId===c.sessionId);if("completed"===c.effectiveStatus||"stalled"===c.effectiveStatus||"cancelled"===c.effectiveStatus)return d===b.id?500:j?420:null;if(c.sessionId&&!j)return null;let k=(0,e.gP)(a,b.mission,{agentId:b.agentId,submittedAt:c.submittedAt});return"turn"!==a.source||k||j?0+("turn"===a.source?400:"session"===a.source?40:20)+240*!!k+120*!!j+80*(d===b.id):null}(b,a,{submittedAt:f,sessionId:j,observedRuntimeId:k,effectiveStatus:i})})).filter(a=>"number"==typeof a.score).sort((a,b)=>b.score-a.score||q(a.runtime,b.runtime))[0]?.runtime}function l(a){return a.id.startsWith("runtime:dispatch:")}function m(a,b){var c,d;let e,h="string"==typeof a.metadata.dispatchId?a.metadata.dispatchId.trim():"",i=function(a){let b="string"==typeof a.metadata.mission?a.metadata.mission:"string"==typeof a.metadata.turnPrompt?a.metadata.turnPrompt:null;if(!b)return null;let c=(0,f.ho)(b);return c.length>0?c:null}(a),j=b.workspaceId??a.workspaceId,k=(0,g.E_)(b),l=a.tokenUsage??(0,g.gQ)(b),m=a.modelId??(0,g.mp)(b)??void 0,n=p(b.status)?b.status:a.status;return h===b.id&&i&&"string"==typeof a.metadata.dispatchStatus&&a.metadata.dispatchStatus===b.status&&a.workspaceId===j&&a.metadata.outputDir===b.outputDir&&a.metadata.outputDirRelative===b.outputDirRelative&&(!k||(c=a,d=k.path,Array.isArray(e=c.metadata.createdFiles)&&e.some(a=>"object"==typeof a&&null!==a&&"path"in a&&"string"==typeof a.path&&a.path===d)))&&a.tokenUsage===l&&a.modelId===m&&a.status===n?a:{...a,subtitle:p(b.status)?r((0,g.kc)(b),90):a.subtitle,status:n,workspaceId:j??void 0,modelId:m,tokenUsage:l,metadata:{...a.metadata,dispatchId:b.id,dispatchStatus:b.status,dispatchSubmittedAt:b.submittedAt,dispatchRunnerStartedAt:b.runner.startedAt,dispatchHeartbeatAt:b.runner.lastHeartbeatAt,dispatchObservedAt:b.observation.observedAt,mission:b.mission,routedMission:b.routedMission,outputDir:b.outputDir,outputDirRelative:b.outputDirRelative,notesDirRelative:b.notesDirRelative,...k?{createdFiles:[k]}:{}}}}function n(a,b){let c=Date.parse(a.observation.observedAt??a.updatedAt??a.submittedAt),d=Date.now(),e=(0,g.V6)(a,d),h=b??(0,g.Xy)(a)??s(a.id),i=(0,g.gv)(a);return{id:a.observation.runtimeId||`runtime:${h}:${s(a.id)}`,source:"turn",key:`dispatch:${a.id}`,title:(0,f.$m)(a.mission,38)||"Recovered mission runtime",subtitle:i?r(i,90):"completed"===a.status||"cancelled"===a.status?r((0,g.kc)(a),90):"stalled"===a.status?"Recovered the stalled runtime from the saved transcript.":"Recovering runtime state from the saved transcript.",status:e,updatedAt:Number.isNaN(c)?null:c,ageMs:Number.isNaN(c)?null:Math.max(d-c,0),agentId:a.agentId,workspaceId:a.workspaceId??void 0,modelId:(0,g.mp)(a)??void 0,sessionId:h,tokenUsage:(0,g.gQ)(a),metadata:{mission:a.mission,dispatchId:a.id,routedMission:a.routedMission,outputDir:a.outputDir,outputDirRelative:a.outputDirRelative,notesDirRelative:a.notesDirRelative,error:a.error,sessionId:h,pendingCreation:"queued"===e||"running"===e,bootstrapStage:(0,g.hi)(a,e),dispatchStatus:a.status,dispatchSubmittedAt:a.submittedAt,dispatchRunnerStartedAt:a.runner.startedAt,dispatchHeartbeatAt:a.runner.lastHeartbeatAt,dispatchObservedAt:a.observation.observedAt,recoveredFromObservation:!0,...i?{warnings:[i],warningSummary:i}:{}}}}function o(a,b){let c=Date.parse(a.updatedAt),d=(0,g.V6)(a,b),e=(0,g.hi)(a,d),h=(0,g.vp)(a,d),i=(0,g.Xy)(a),j=(0,g.mp)(a),k=(0,g.gQ)(a),l=(0,g.gv)(a);return{id:`runtime:dispatch:${a.id}`,source:"turn",key:`dispatch:${a.id}`,title:(0,f.$m)(a.mission,38)||"Queued mission",subtitle:l?r(l,90):h,status:d,updatedAt:Number.isNaN(c)?Date.parse(a.submittedAt)||null:c,ageMs:Number.isNaN(c)?null:Math.max(b-c,0),agentId:a.agentId,workspaceId:a.workspaceId??void 0,modelId:j??void 0,sessionId:i??void 0,runId:a.result?.runId,tokenUsage:k,metadata:{dispatchId:a.id,mission:a.mission,routedMission:a.routedMission,outputDir:a.outputDir,outputDirRelative:a.outputDirRelative,notesDirRelative:a.notesDirRelative,error:a.error,sessionId:i,pendingCreation:"queued"===d||"running"===d,bootstrapStage:e,dispatchStatus:a.status,dispatchSubmittedAt:a.submittedAt,dispatchRunnerStartedAt:a.runner.startedAt,dispatchHeartbeatAt:a.runner.lastHeartbeatAt,dispatchObservedAt:a.observation.observedAt,...l?{warnings:[l],warningSummary:l}:{}}}}function p(a){return"completed"===a||"stalled"===a||"cancelled"===a}function q(a,b){return(b.updatedAt??0)-(a.updatedAt??0)}function r(a,b){let c=a.replace(/\s+/g," ").trim();return c.length<=b?c:`${c.slice(0,Math.max(b-1,1)).trimEnd()}…`}function s(a){return(0,d.createHash)("sha1").update(a).digest("hex").slice(0,12)}},83761:(a,b,c)=>{c.d(b,{k:()=>g});var d=c(76760),e=c.n(d),f=c(51455);async function g(a){try{let b=await (0,f.readFile)(e().join(a,"openclaw.json"),"utf8"),c=JSON.parse(b),d=c.agents?.list;return{status:"fulfilled",value:Array.isArray(d)?d:[]}}catch(a){return{status:"rejected",reason:a}}}},88978:(a,b,c)=>{c.d(b,{t:()=>i});var d=c(73024),e=c(51455),f=c(76760),g=c.n(f);async function h(a,b={}){try{if(!1!==b.createIfMissing&&await (0,e.mkdir)(a,{recursive:!0}),await (0,e.access)(a,d.constants.R_OK|d.constants.W_OK),b.touch){let b=g().join(a,`.agentos-write-check-${process.pid}-${Date.now()}-${Math.random().toString(16).slice(2)}`);await (0,e.writeFile)(b,"","utf8"),await (0,e.rm)(b,{force:!0})}return{writable:!0,issue:null}}catch(b){return{writable:!1,issue:function(a,b){if(!b||"object"!=typeof b)return`${a}: unknown filesystem error`;let c="code"in b&&"string"==typeof b.code?b.code:"unknown",d="message"in b&&"string"==typeof b.message?b.message:"unknown filesystem error";return`${a}: ${c} ${d}`}(a,b)}}}async function i(a,b,c={}){let d=[...new Set(b.filter(Boolean))],e=await h(a,{createIfMissing:!0,touch:c.touch}),f=await Promise.all(d.map(async b=>{let d=function(a,b,c){let d="string"==typeof c&&c.trim()?g().resolve(c.trim()):null;if(d){let a="agent"===g().basename(d)?g().dirname(d):d;return g().join(a,"sessions")}return g().join(a,"agents",b,"sessions")}(a,b,c.agentDirs?.[b]),e=await h(d,{createIfMissing:!0,touch:c.touch});return{id:b,path:d,writable:e.writable,issue:e.issue}})),j=f.every(a=>a.writable),k=[e.writable?null:`OpenClaw state root is not writable. ${e.issue??a}`,...f.filter(a=>!a.writable).map(a=>`OpenClaw session store for ${a.id} is not writable. ${a.issue??a.path}`)].filter(a=>!!a);return{stateRoot:a,stateWritable:e.writable,sessionStoreWritable:e.writable&&j,sessionStores:f,issues:k}}},92273:(a,b,c)=>{c.d(b,{i:()=>f});var d=c(77030),e=c.n(d);async function f(a=18789){return await g("127.0.0.1",a,750)?{service:{label:"Local port probe",loaded:!0},gateway:{bindMode:"loopback",port:a,probeUrl:`ws://127.0.0.1:${a}`}}:null}async function g(a,b,c){return await new Promise(d=>{let f=e().createConnection({host:a,port:b}),g=!1,h=a=>{g||(g=!0,f.removeAllListeners(),f.destroy(),d(a))};f.setTimeout(c),f.once("connect",()=>h(!0)),f.once("error",()=>h(!1)),f.once("timeout",()=>h(!1))})}},93628:(a,b,c)=>{c.d(b,{Cf:()=>j,Ew:()=>p,Pj:()=>o,X0:()=>l,_P:()=>t,_Y:()=>k,aB:()=>u,c_:()=>r,g0:()=>m,go:()=>s,hR:()=>q,iN:()=>e,qF:()=>n});var d=c(1118);let e="worker",f=new Set(["project-builder","project-reviewer","project-tester","project-learner","project-browser","project-researcher","project-strategist","project-writer","project-analyst"]),g=new Set(d.j.map(a=>a.name)),h={worker:{label:"Worker",description:"Default execution agent for code changes, docs, research, and review work. Best when the task stays inside the workspace and does not need system-level changes.",defaultName:"Worker",defaultEmoji:"\uD83D\uDEE0️",defaultTheme:"slate",badgeVariant:"default",tools:["exec","read","write","edit","apply_patch"],skillIds:["project-builder","project-reviewer","project-tester"]},setup:{label:"Setup / Operator",description:"Bootstraps environments, handles installs, and unblocks the workspace so other agents can move faster.",defaultName:"Setup Operator",defaultEmoji:"\uD83E\uDDF0",defaultTheme:"amber",badgeVariant:"warning",tools:["exec","process","gateway","read","write"],skillIds:["project-builder","project-analyst","project-learner"]},browser:{label:"Browser",description:"Captures browser evidence, screenshots, and user-path validation for UI-heavy work.",defaultName:"Browser Agent",defaultEmoji:"\uD83C\uDF10",defaultTheme:"blue",badgeVariant:"success",tools:["browser","web_search","web_fetch","image"],skillIds:["project-browser","project-tester","project-researcher"]},monitoring:{label:"Monitoring",description:"Runs on a watch cycle, checks health and drift, and leaves concise triage handoffs.",defaultName:"Monitoring Agent",defaultEmoji:"\uD83D\uDEF0️",defaultTheme:"teal",badgeVariant:"warning",tools:["cron","gateway","sessions_list","message","web_fetch"],skillIds:["project-analyst","project-reviewer","project-learner"]},custom:{label:"Custom",description:"Starts from the safe baseline and lets you fine-tune identity, policy, and operating style by hand.",defaultName:"Custom Agent",defaultEmoji:"\uD83E\uDDE9",defaultTheme:"violet",badgeVariant:"muted",tools:["exec","read","edit","message"],skillIds:[]}},i={worker:{missingToolBehavior:"fallback",installScope:"none",fileAccess:"workspace-only",networkAccess:"enabled"},setup:{missingToolBehavior:"allow-install",installScope:"workspace",fileAccess:"workspace-only",networkAccess:"enabled"},browser:{missingToolBehavior:"ask-setup",installScope:"none",fileAccess:"workspace-only",networkAccess:"enabled"},monitoring:{missingToolBehavior:"fallback",installScope:"none",fileAccess:"workspace-only",networkAccess:"enabled"},custom:{missingToolBehavior:"fallback",installScope:"none",fileAccess:"workspace-only",networkAccess:"enabled"}};function j(a){return h[a]}function k(a){return v(a.filter(a=>f.has(a)))}function l(a){return v(a.filter(a=>g.has(a)))}function m(a=e,b){return{...i[a],...b??{},preset:a}}function n(a){let b=[...a.skills??[],a.id??"",a.name??""].join(" ").toLowerCase();return/browser|playwright|screenshot|web/.test(b)?"browser":/monitor|heartbeat|watch|triage|observer/.test(b)?"monitoring":/setup|operator|ops|install|environment/.test(b)?"setup":/custom/.test(b)?"custom":e}function o(a){return"worker"===a||"setup"===a||"browser"===a||"monitoring"===a||"custom"===a}function p(a){return"fallback"===a||"ask-setup"===a||"route-setup"===a||"allow-install"===a}function q(a){return"none"===a||"workspace"===a||"system"===a}function r(a){return"workspace-only"===a||"extended"===a}function s(a){return"restricted"===a||"enabled"===a}function t(a){return h[a].label}function u(a){return"fs.workspaceOnly"===a?"Workspace only":a.replace(/^agent-policy-/,"").replace(/^project-/,"").replace(/[._-]+/g," ").trim().replace(/\b\w/g,a=>a.toUpperCase())}function v(a){return Array.from(new Set(a.filter(Boolean)))}Object.entries(h).map(([a,b])=>({value:a,label:b.label,description:b.description}))},96109:(a,b,c)=>{c.d(b,{Fm:()=>h,S_:()=>g,hv:()=>i,xV:()=>k});var d=c(77598),e=c(76760),f=c.n(e);function g(a){return(f().basename(a)||a).toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||function(a){let b=0;for(let c=0;c<a.length;c+=1)b=(b<<5)-b+a.charCodeAt(c)|0;return`workspace-${Math.abs(b)}`}(a)}function h(a){let b=new Map;for(let c of a)b.set(l(c),c);let c=new Map;for(let a of b.values()){let b=g(a);c.set(b,[...c.get(b)??[],a])}let d=new Map;for(let[a,b]of c)b.forEach((b,c)=>{d.set(l(b),0===c?a:j(b))});return a=>d.get(l(a))??g(a)}function i(a,b){return h(b)(a)}function j(a){var b;return`${g(a)}-${b=a,(0,d.createHash)("sha1").update(f().resolve(b)).digest("hex").slice(0,8)}`}function k(a,b){let c;return g(a)===b||j(a)===b||(c=(0,d.createHash)("sha1").update(a).digest("hex").slice(0,8),`workspace:${c}`===b)}function l(a){return f().resolve(a)}},96876:(a,b,c)=>{c.d(b,{Fb:()=>j,jJ:()=>k});var d=c(48161),e=c.n(d),f=c(76760),g=c.n(f);c(93628);var h=c(15292);function i(a,b){let c=Date.now(),d=g().join(e().homedir(),"Documents","Shared","projects"),f=g().join(e().homedir(),".openclaw");return{generatedAt:new Date(c).toISOString(),revision:0,mode:"fallback",diagnostics:{installed:b.installed,loaded:b.loaded,rpcOk:b.rpcOk,health:b.health,workspaceRoot:d,configuredWorkspaceRoot:null,dashboardUrl:"http://127.0.0.1:18789/",gatewayUrl:"ws://127.0.0.1:18789",configuredGatewayUrl:null,openClawBinarySelection:(0,h.ml)(),modelReadiness:{ready:!1,defaultModel:null,resolvedDefaultModel:null,defaultModelReady:!1,recommendedModelId:null,preferredLoginProvider:null,totalModelCount:0,availableModelCount:0,localModelCount:0,remoteModelCount:0,missingModelCount:0,authProviders:[],issues:[a]},runtime:{stateRoot:f,stateWritable:!1,sessionStoreWritable:!1,sessionStores:[],smokeTest:{status:"not-run",checkedAt:null,agentId:null,runId:null,summary:null,error:null},issues:[a]},securityWarnings:[],issues:[a]},presence:[],channelAccounts:[],workspaces:[],agents:[],models:[],runtimes:[],tasks:[],relationships:[],missionPresets:[],channelRegistry:{version:1,channels:[]}}}function j(a){return i(a,{installed:!0,loaded:!0,rpcOk:!1,health:"degraded"})}function k(a,b){return i(a,{installed:b.installed,loaded:b.loaded,rpcOk:b.rpcOk,health:b.rpcOk?"healthy":b.installed?"degraded":"offline"})}c(14853)},98752:(a,b,c)=>{function d(){return globalThis.performance?.now?.()??Date.now()}function e(a){let b=d(),c=[];return{async measure(a,b){let e=d();try{return await b()}finally{c.push({label:a,durationMs:Math.round(d()-e)})}},summary:()=>({scope:a,totalMs:Math.round(d()-b),steps:[...c]})}}async function f(a,b,c){return a?a.measure(b,c):await c()}function g(a){let b=[`[openclaw timing] ${a.scope} total=${a.totalMs}ms`];for(let c of a.steps)b.push(`[openclaw timing] ${c.label}: ${c.durationMs}ms`);return b.join("\n")}c.d(b,{KV:()=>e,ct:()=>g,rh:()=>f})},99254:(a,b,c)=>{c.d(b,{fy:()=>F,G7:()=>G,$T:()=>O,H6:()=>I,lC:()=>J,VW:()=>C,D4:()=>H,S4:()=>h.S,QT:()=>E,vg:()=>D});var d=c(51455),e=c(76760),f=c.n(e),g=c(39503),h=c(39802),i=c(74497);let j=new Set(["telegram","discord","slack","googlechat"]),k={cron:"cron-default",email:"email-default",gmail:"gmail-default",webhook:"webhook-default"};async function l(){var a;let[b,c,d,e,f,g,h,i]=await Promise.all([m("channels"),m("hooks"),m("hooks.gmail"),m("hooks.webhook"),m("cron"),n(),m("gmail"),m("email")]);return function(a){let b=new Map;for(let c of a){let a=`${c.type}:${c.id}`,d=b.get(a);if(!d){b.set(a,c);continue}b.set(a,{...d,name:d.name||c.name,enabled:d.enabled||c.enabled,capabilities:Array.from(new Set([...d.capabilities??[],...c.capabilities??[]])),metadata:{...c.metadata??{},...d.metadata??{}}})}return Array.from(b.values())}([...function(a){if(!v(a))return[];let b=[];for(let[e,f]of Object.entries(a)){var c,d;if(c=e,!j.has(c)||!v(f))continue;let a=v(f.accounts)?f.accounts:{};for(let[c,d]of Object.entries(a))b.push(p(e,c,d,{fallbackName:t(e,c),source:"config.channels.accounts"}));let g=u(f.defaultAccount)??(!0===(d=f).enabled||r(d,["account","token","botToken","appToken","webhookUrl","webhook","clientId"])?"default":null);!g||g in a||b.push(p(e,g,f,{fallbackName:t(e,g),source:"config.channels.default"}))}return b}(b),...o("gmail",h,"config.gmail"),...o("gmail",d,"config.hooks.gmail"),...o("email",i,"config.email"),...function(a){if(!v(a))return[];let b=[];q(a)&&b.push(p("webhook",k.webhook,a,{fallbackName:"Webhook ingress",source:"config.hooks"}));let c=v(a.gmail)?a.gmail:null;return c&&b.push(...o("gmail",c,"config.hooks.gmail")),b}(c),...v(a=e)&&q(a)?[p("webhook",s(a,k.webhook),a,{fallbackName:"Webhook ingress",source:"config.hooks.webhook"})]:[],...function(a,b){var c,d;let e=Array.isArray(c=b)?c:v(c)?Array.isArray(c.jobs)?c.jobs:Array.isArray(c.items)?c.items:[]:[];if(!v(a)&&0===e.length)return[];let f=v(a)?a:{};if(!(!0===(d=f).enabled||r(d,["jobs","schedules","failureDestination","webhook","webhookToken","store","maxConcurrentRuns","sessionRetention","runLog"]))&&0===e.length)return[];let g=s(f,k.cron),h={...v(f.metadata)?f.metadata:{},jobCount:e.length};return[p("cron",g,{...f,metadata:h},{fallbackName:e.length>0?`Cron scheduler (${e.length} job${1===e.length?"":"s"})`:"Cron scheduler",source:"config.cron"})]}(f,g)])}async function m(a){try{return await (0,g.rw)().getConfig(a)}catch{return null}}async function n(){try{return await (0,g.rw)().listCronJobs()}catch{return null}}function o(a,b,c){var d;if(!v(b))return[];let e=[],f=v(b.accounts)?b.accounts:{};for(let[b,d]of Object.entries(f))e.push(p(a,b,d,{fallbackName:t(a,b),source:`${c}.accounts`}));if(f.default||!(!0===(d=b).enabled||r(d,["account","email","address","username","imap","smtp","oauth","watch","pubsub"])))return e;let g=s(b,k[a]);return e.push(p(a,g,b,{fallbackName:t(a,g),source:c})),e}function p(a,b,c,d){var e,f,g;let h,j,k,l=v(c)?c:{},m=u(l.name)??u(l.label)??u(l.accountName)??u(l.account)??u(l.email)??u(l.address)??d.fallbackName,n=v(l.metadata)?{...l.metadata}:{},o="telegram"===a?(h=u((e=l).botToken)??u(e.token),(j=h?.split(":",1)[0]?.trim())&&/^\d+$/.test(j)?j:null):null;return{id:b,type:a,name:m,enabled:!1!==l.enabled,kind:(0,i.Yx)(a),capabilities:(f=a,g=l,k=new Set,("telegram"===f||"discord"===f||"slack"===f||"googlechat"===f)&&k.add("chat"),("gmail"===f||"email"===f)&&(k.add("inbox"),r(g,["smtp","send","outbound","drafts"])&&k.add("send")),("webhook"===f||"cron"===f)&&k.add("trigger"),"gmail"===f&&r(g,["watch","pubsub","topic","subscription"])&&k.add("trigger"),Array.from(k)),metadata:{...n,source:d.source,...o?{botId:o}:{}}}}function q(a){return!0===a.enabled||r(a,["token","secret","path","baseUrl","mappings","webhook"])}function r(a,b){return b.some(b=>{var c;return"boolean"==typeof(c=a[b])?c:"string"==typeof c?c.trim().length>0:"number"==typeof c?Number.isFinite(c):Array.isArray(c)?c.length>0:v(c)})}function s(a,b){return u(a.accountId)??u(a.account)??u(a.id)??u(a.email)??u(a.address)??b}function t(a,b){let c=(0,i.MY)(a);return"default"===b||b===k[a]?`${c} default`:`${c} ${b}`}function u(a){return"string"==typeof a&&a.trim().length>0?a.trim():null}function v(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}var w=c(98752),x=c(58889);let y=f().join(process.cwd(),".mission-control"),z=f().join(y,"channel-registry.json");function A(a){return"string"==typeof a&&a.trim().length>0?a.trim():null}function B(a){return"object"==typeof a&&null!==a}async function C(){return D()}async function D(){try{let a=await (0,d.readFile)(z,"utf8"),b=JSON.parse(a),c=B(b)?b:{},e=Array.isArray(c.channels)?c.channels.map(a=>(0,x.kf)(a)).filter(a=>!!a):[],f=(0,x._E)({version:1,channels:e});return await Q(f)}catch{return(0,x._E)({version:1,channels:[]})}}async function E(){try{var a=await l();let b=new Map,c=[];for(let d of a){if("telegram"!==d.type){c.push(d);continue}let a="string"==typeof d.metadata?.botId&&d.metadata.botId.trim().length>0?d.metadata.botId.trim():null;if(!a){b.has(d.id)||b.set(d.id,d);continue}let e=b.get(a);if(!e){b.set(a,d);continue}P(d.id)>P(e.id)&&b.set(a,d)}return[...c,...Array.from(b.values())]}catch{return[]}}function F(a,b){let c=new Map(b.channels.filter(a=>!!a.id).map(a=>[a.id,a.name.trim()||a.id]));return a.map(a=>({...a,name:c.get(a.id)??a.name}))}function G(a){return a.channels.filter(a=>"internal"!==a.type&&a.workspaces.length>0).map(a=>({id:a.id,type:a.type,name:a.name.trim()||a.id,enabled:!0,kind:(0,i.Yx)(a.type),capabilities:[(0,i.Yx)(a.type)],metadata:{source:"channel-registry",legacy:!0}}))}function H(a){let b=new Map;for(let c of a){let a=`${c.type}:${c.id}`,d=b.get(a);if(!d){b.set(a,c);continue}b.set(a,{...d,name:d.name||c.name,enabled:!1!==d.enabled,kind:d.kind??c.kind,capabilities:Array.from(new Set([...d.capabilities??[],...c.capabilities??[]].filter(Boolean))),metadata:{...c.metadata??{},...d.metadata??{}}})}return Array.from(b.values())}async function I(a,b){switch(a.provider){case"telegram":return J(b);case"discord":return K(a.accountId,b);default:return[]}}async function J(a){let b=await (0,w.rh)(a,"telegram-discovery.read-channel-logs",()=>N("telegram",200));if(!b?.lines?.length)return await L(a);let c=new Map,d=a=>{let b=c.get(a.routeId);b?c.set(a.routeId,{routeId:a.routeId,provider:"telegram",kind:"group",title:a.title??b.title,lastSeen:Z(b.lastSeen,a.lastSeen)}):c.set(a.routeId,a)};for(let a of b.lines){let b="string"==typeof a?.time?a.time:null;for(let c of R(a,b))d(c);if("string"==typeof a?.raw)try{let c=JSON.parse(a.raw);for(let a of R(c,b))d(a)}catch{for(let c of S(a.raw,b))d(c)}if("string"==typeof a?.message)for(let c of S(a.message,b))d(c)}for(let b of(await L(a)))c.has(b.routeId)||c.set(b.routeId,b);return Array.from(c.values()).sort((a,b)=>{let c=a.title??a.routeId,d=b.title??b.routeId;return c.localeCompare(d)})}async function K(a,b){let c=await (0,w.rh)(b,"discord-discovery.read-channel-logs",()=>N("discord",300)),d=new Map,e=a=>{let b=d.get(a.routeId);b?d.set(a.routeId,{...b,title:a.title??b.title,subtitle:a.subtitle??b.subtitle,lastSeen:Z(b.lastSeen,a.lastSeen),guildId:a.guildId??b.guildId,parentId:a.parentId??b.parentId}):d.set(a.routeId,a)};for(let a of(await M(b)))e(a);for(let b of c?.lines??[]){let c="string"==typeof b?.time?b.time:null;for(let d of T(b,c,a))e(d);if("string"==typeof b?.raw)try{let d=JSON.parse(b.raw);for(let b of T(d,c,a))e(b)}catch{for(let d of U(b.raw,c,a))e(d)}if("string"==typeof b?.message)for(let d of U(b.message,c,a))e(d)}return Array.from(d.values()).sort((a,b)=>{let c=a.title??a.routeId,d=b.title??b.routeId;return c.localeCompare(d)})}async function L(a){try{let b=await (0,w.rh)(a,"telegram-discovery.read-allowlist-config",()=>(0,g.rw)().getConfig("channels.telegram.groups"));return Object.keys(b??{}).map(a=>({routeId:a,provider:"telegram",kind:"group",title:null,lastSeen:null})).sort((a,b)=>a.routeId.localeCompare(b.routeId))}catch{return[]}}async function M(a){try{let b=await (0,w.rh)(a,"discord-discovery.read-config",()=>(0,g.rw)().getConfig("channels.discord.guilds")),c=[];for(let[a,d]of Object.entries(b??{})){if(!X(a)||!B(d))continue;let b=A(d.name)??a;for(let e of Array.isArray(d.roles)?d.roles.filter(a=>"string"==typeof a||"number"==typeof a).map(a=>String(a).trim()).filter(a=>!!X(a)):[])c.push({routeId:W({kind:"role",guildId:a,targetId:e}),provider:"discord",kind:"role",title:`@${e}`,subtitle:b,lastSeen:null,guildId:a});let e=B(d.channels)?d.channels:{};for(let[d,f]of Object.entries(e)){let e=B(f)?f:{},g=X(d)??X(e.id);if(!g)continue;let h=A(e.name)??A(e.label)??`#${g}`;c.push({routeId:W({kind:"channel",guildId:a,targetId:g}),provider:"discord",kind:"channel",title:h,subtitle:b,lastSeen:null,guildId:a})}}return c}catch{return[]}}async function N(a,b){try{return await (0,g.rw)().getChannelLogs({channel:a,lines:b})}catch{return null}}function O(a,b){let c=(0,h.S)(b.chatId);return c&&b.agentId?"role"===c.kind?c.guildId?{agentId:b.agentId,match:{channel:"discord",accountId:a,guildId:c.guildId,roles:[c.targetId]}}:null:{agentId:b.agentId,match:{channel:"discord",accountId:a,...c.guildId?{guildId:c.guildId}:{},peer:{kind:c.kind,id:c.targetId}}}:null}function P(a){return"default"!==a?2:1}async function Q(a){let b=(await E()).filter(a=>"telegram"===a.type);if(0===b.length)return a;let c=new Set(b.map(a=>a.id)),d=new Map;for(let a of b){let b=a.name.trim().toLowerCase();if(!b)continue;let c=d.get(b)??[];c.push(a),d.set(b,c)}let e=!1,f=a.channels.map(a=>{if("telegram"!==a.type||c.has(a.id))return a;let b=d.get(a.name.trim().toLowerCase())??[];return 1!==b.length?a:(e=!0,{...a,id:b[0].id,name:b[0].name})});return e?(0,x._E)({version:1,channels:f}):a}function R(a,b){let c=new Map,d=[{value:a,depth:0}],e=new Set;for(;d.length>0;){let a=d.shift();if(!a||a.depth>6)continue;let f=a.value;if(null==f||"object"!=typeof f||e.has(f))continue;if(e.add(f),Array.isArray(f)){for(let b of f)d.push({value:b,depth:a.depth+1});continue}if(!B(f))continue;let g=Y(f.chatId);if(g){let a=A(f.title)??A(f.chatTitle)??null;c.set(g,{routeId:g,provider:"telegram",kind:"group",title:a,lastSeen:b})}for(let b of Object.values(f))d.push({value:b,depth:a.depth+1})}return Array.from(c.values())}function S(a,b){let c=new Map;for(let d of a.matchAll(/\{[^{}]*"chatId"\s*:\s*-?\d+[^{}]*\}/g)){let a=d[0];try{let d=JSON.parse(a);for(let a of R(d,b))c.set(a.routeId,a);continue}catch{}let e=a.match(/"chatId"\s*:\s*(-?\d+)/),f=Y(e?.[1]??null);if(!f)continue;let g=a.match(/"title"\s*:\s*"([^"]+)"/);c.set(f,{routeId:f,provider:"telegram",kind:"group",title:g?.[1]??null,lastSeen:b})}return Array.from(c.values())}function T(a,b,c){let d=new Map,e=[{value:a,depth:0,context:{accountId:null,guildId:null,guildName:null,channelId:null,channelName:null,threadId:null,threadName:null}}],f=new Set;for(;e.length>0;){var g,h,i,j;let a=e.shift();if(!a||a.depth>7)continue;let k=a.value;if(null==k||"object"!=typeof k||f.has(k))continue;if(f.add(k),Array.isArray(k)){for(let b of k)e.push({value:b,depth:a.depth+1,context:a.context});continue}if(!B(k))continue;let l=function(a,b){let c=B(b.guild)?b.guild:null,d=B(b.channel)?b.channel:null,e=B(b.thread)?b.thread:null,f=B(b.peer)?b.peer:null,g=A(b.kind),h=A(b.type),i=X(b.id),j=X(b.channelId)??X(b.channel_id)??X(d?.id)??(f?.kind==="channel"?X(f.id):null)??(("channel"===g||"channel"===h)&&i?i:null)??a.channelId,k=X(b.threadId)??X(b.thread_id)??X(e?.id)??(f?.kind==="thread"?X(f.id):null)??(("thread"===g||"thread"===h)&&i?i:null)??a.threadId;return{accountId:A(b.accountId)??A(b.channelAccountId)??A(b.account)??a.accountId,guildId:X(b.guildId)??X(b.guild_id)??X(c?.id)??a.guildId,guildName:A(b.guildName)??A(c?.name)??a.guildName,channelId:j,channelName:A(b.channelName)??A(d?.name)??("channel"===g||"channel"===h?A(b.name):null)??a.channelName,threadId:k,threadName:A(b.threadName)??A(e?.name)??("thread"===g||"thread"===h?A(b.name):null)??a.threadName}}(a.context,k);if(c&&l.accountId&&l.accountId!==c)continue;let m=(g=l,h=b,g.channelId?V({kind:"channel",guildId:g.guildId,targetId:g.channelId,title:g.channelName?`#${g.channelName}`:`#${g.channelId}`,subtitle:g.guildName??g.guildId,lastSeen:h}):null);m&&d.set(m.routeId,m);let n=(i=l,j=b,i.threadId?V({kind:"thread",guildId:i.guildId,targetId:i.threadId,parentId:i.channelId,title:i.threadName??`Thread ${i.threadId}`,subtitle:i.channelName&&i.guildName?`#${i.channelName} \xb7 ${i.guildName}`:i.channelName?`#${i.channelName}`:i.guildName??i.guildId,lastSeen:j}):null);for(let a of(n&&d.set(n.routeId,n),function(a,b,c){if(!b.guildId)return[];let d=new Map;for(let e of[a.roleIds,a.memberRoleIds,a.roles,B(a.member)?a.member.roles:null])if(Array.isArray(e))for(let a of e){let e=X(a)??(B(a)?X(a.id):null);if(!e)continue;let f=B(a)?A(a.name):null,g=V({kind:"role",guildId:b.guildId,targetId:e,title:f?`@${f}`:`@${e}`,subtitle:b.guildName??b.guildId,lastSeen:c});d.set(g.routeId,g)}return Array.from(d.values())}(k,l,b)))d.set(a.routeId,a);for(let b of Object.values(k))e.push({value:b,depth:a.depth+1,context:l})}return Array.from(d.values())}function U(a,b,c){let d=new Map,e=a.match(/accountId["=:\s]+([A-Za-z0-9._-]+)/i)?.[1]??null;if(c&&e&&e!==c)return[];for(let e of a.matchAll(/\{[^{}]*(guildId|channelId|threadId|roleIds|roles)[^{}]*\}/g))try{let a=JSON.parse(e[0]);for(let e of T(a,b,c))d.set(e.routeId,e)}catch{}let f=X(a.match(/guild(?:Id)?["=:\s]+(\d{5,})/i)?.[1]??null),g=X(a.match(/channel(?:Id)?["=:\s]+(\d{5,})/i)?.[1]??null),h=X(a.match(/thread(?:Id)?["=:\s]+(\d{5,})/i)?.[1]??null);if(g){let a=V({kind:"channel",guildId:f,targetId:g,title:`#${g}`,subtitle:f?`Guild ${f}`:null,lastSeen:b});d.set(a.routeId,a)}if(h){let a=V({kind:"thread",guildId:f,targetId:h,parentId:g,title:`Thread ${h}`,subtitle:g?`Channel ${g}`:f?`Guild ${f}`:null,lastSeen:b});d.set(a.routeId,a)}if(f)for(let c of(a.match(/roles?["=:\s]+\[([^\]]+)\]/i)?.[1]??"").matchAll(/\b(\d{5,})\b/g)){let a=X(c[1]);if(!a)continue;let e=V({kind:"role",guildId:f,targetId:a,title:`@${a}`,subtitle:`Guild ${f}`,lastSeen:b});d.set(e.routeId,e)}return Array.from(d.values())}function V(a){return{routeId:W({kind:a.kind,guildId:a.guildId,targetId:a.targetId,parentId:a.parentId}),provider:"discord",kind:a.kind,title:a.title,subtitle:a.subtitle,lastSeen:a.lastSeen,guildId:a.guildId,parentId:a.parentId??null}}function W(a){let b=a.guildId??"_";return"thread"===a.kind?`thread:${b}:${a.targetId}:${a.parentId??"_"}`:`${a.kind}:${b}:${a.targetId}`}function X(a){if("number"==typeof a&&Number.isFinite(a))return String(a);if("string"!=typeof a)return null;let b=a.trim();return/^\d{5,}$/.test(b)?b:null}function Y(a){if("number"==typeof a&&Number.isFinite(a)&&a<0)return String(a);if("string"!=typeof a)return null;let b=a.trim();return/^-\d+$/.test(b)?b:null}function Z(a,b){if(!b)return a;if(!a)return b;let c=Date.parse(a),d=Date.parse(b);return Number.isNaN(d)?a:Number.isNaN(c)||d>c?b:a}}};