@sapienx/agentos 0.5.6 → 0.5.8

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 (277) hide show
  1. package/bin/agentos.js +113 -2
  2. package/bin/terminal-boot.js +380 -76
  3. package/bundle/.next/BUILD_ID +1 -1
  4. package/bundle/.next/app-path-routes-manifest.json +16 -9
  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 +44 -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 +4 -4
  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 +2 -2
  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/openclaw/compatibility-smoke/route.js +1 -0
  58. package/bundle/.next/server/app/api/openclaw/compatibility-smoke/route.js.nft.json +1 -0
  59. package/bundle/.next/server/app/api/openclaw/compatibility-smoke/route_client-reference-manifest.js +1 -0
  60. package/bundle/.next/server/app/api/planner/[planId]/deploy/route.js +2 -2
  61. package/bundle/.next/server/app/api/planner/[planId]/deploy/route.js.nft.json +1 -1
  62. package/bundle/.next/server/app/api/planner/[planId]/document-rewrite/route.js +1 -1
  63. package/bundle/.next/server/app/api/planner/[planId]/document-rewrite/route.js.nft.json +1 -1
  64. package/bundle/.next/server/app/api/planner/[planId]/route.js +1 -1
  65. package/bundle/.next/server/app/api/planner/[planId]/route.js.nft.json +1 -1
  66. package/bundle/.next/server/app/api/planner/[planId]/simulate/route.js +1 -1
  67. package/bundle/.next/server/app/api/planner/[planId]/simulate/route.js.nft.json +1 -1
  68. package/bundle/.next/server/app/api/planner/[planId]/turn/route.js +1 -1
  69. package/bundle/.next/server/app/api/planner/[planId]/turn/route.js.nft.json +1 -1
  70. package/bundle/.next/server/app/api/planner/route.js +1 -1
  71. package/bundle/.next/server/app/api/planner/route.js.nft.json +1 -1
  72. package/bundle/.next/server/app/api/reset/route.js +2 -2
  73. package/bundle/.next/server/app/api/reset/route.js.nft.json +1 -1
  74. package/bundle/.next/server/app/api/runtimes/[runtimeId]/route.js +1 -1
  75. package/bundle/.next/server/app/api/runtimes/[runtimeId]/route.js.nft.json +1 -1
  76. package/bundle/.next/server/app/api/settings/gateway/route.js +1 -1
  77. package/bundle/.next/server/app/api/settings/gateway/route.js.nft.json +1 -1
  78. package/bundle/.next/server/app/api/settings/openclaw-binary/route.js +1 -1
  79. package/bundle/.next/server/app/api/settings/openclaw-binary/route.js.nft.json +1 -1
  80. package/bundle/.next/server/app/api/settings/workspace-root/route.js +1 -1
  81. package/bundle/.next/server/app/api/settings/workspace-root/route.js.nft.json +1 -1
  82. package/bundle/.next/server/app/api/snapshot/route.js +1 -1
  83. package/bundle/.next/server/app/api/snapshot/route.js.nft.json +1 -1
  84. package/bundle/.next/server/app/api/stream/route.js +2 -2
  85. package/bundle/.next/server/app/api/stream/route.js.nft.json +1 -1
  86. package/bundle/.next/server/app/api/system/open-terminal/route.js +1 -1
  87. package/bundle/.next/server/app/api/tasks/[taskId]/abort/route.js +1 -1
  88. package/bundle/.next/server/app/api/tasks/[taskId]/abort/route.js.nft.json +1 -1
  89. package/bundle/.next/server/app/api/tasks/[taskId]/control/route.js +1 -1
  90. package/bundle/.next/server/app/api/tasks/[taskId]/control/route.js.nft.json +1 -1
  91. package/bundle/.next/server/app/api/tasks/[taskId]/stream/route.js +2 -2
  92. package/bundle/.next/server/app/api/tasks/[taskId]/stream/route.js.nft.json +1 -1
  93. package/bundle/.next/server/app/api/update/route.js +2 -2
  94. package/bundle/.next/server/app/api/update/route.js.nft.json +1 -1
  95. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/discovered-groups/route.js +1 -1
  96. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/discovered-groups/route.js.nft.json +1 -1
  97. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/route.js +1 -1
  98. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/route.js.nft.json +1 -1
  99. package/bundle/.next/server/app/api/workspaces/[workspaceId]/edit-draft/route.js +1 -1
  100. package/bundle/.next/server/app/api/workspaces/[workspaceId]/edit-draft/route.js.nft.json +1 -1
  101. package/bundle/.next/server/app/api/workspaces/[workspaceId]/files/route.js +1 -1
  102. package/bundle/.next/server/app/api/workspaces/[workspaceId]/files/route.js.nft.json +1 -1
  103. package/bundle/.next/server/app/api/workspaces/[workspaceId]/surfaces/discovery/route.js +1 -1
  104. package/bundle/.next/server/app/api/workspaces/[workspaceId]/surfaces/discovery/route.js.nft.json +1 -1
  105. package/bundle/.next/server/app/api/workspaces/route.js +2 -2
  106. package/bundle/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  107. package/bundle/.next/server/app/files/page.js +2 -0
  108. package/bundle/.next/server/app/files/page.js.nft.json +1 -0
  109. package/bundle/.next/server/app/files/page_client-reference-manifest.js +1 -0
  110. package/bundle/.next/server/app/integrations/page.js +2 -0
  111. package/bundle/.next/server/app/integrations/page.js.nft.json +1 -0
  112. package/bundle/.next/server/app/integrations/page_client-reference-manifest.js +1 -0
  113. package/bundle/.next/server/app/models/page.js +2 -0
  114. package/bundle/.next/server/app/models/page.js.nft.json +1 -0
  115. package/bundle/.next/server/app/models/page_client-reference-manifest.js +1 -0
  116. package/bundle/.next/server/app/page.js +2 -2
  117. package/bundle/.next/server/app/page.js.nft.json +1 -1
  118. package/bundle/.next/server/app/page_client-reference-manifest.js +1 -1
  119. package/bundle/.next/server/app/settings/page.js +2 -2
  120. package/bundle/.next/server/app/settings/page.js.nft.json +1 -1
  121. package/bundle/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  122. package/bundle/.next/server/app/tasks/page.js +2 -0
  123. package/bundle/.next/server/app/tasks/page.js.nft.json +1 -0
  124. package/bundle/.next/server/app/tasks/page_client-reference-manifest.js +1 -0
  125. package/bundle/.next/server/app-paths-manifest.json +16 -9
  126. package/bundle/.next/server/chunks/1718.js +4 -0
  127. package/bundle/.next/server/chunks/4391.js +198 -0
  128. package/bundle/.next/server/chunks/4466.js +9 -0
  129. package/bundle/.next/server/chunks/4767.js +1 -4
  130. package/bundle/.next/server/chunks/4983.js +1 -0
  131. package/bundle/.next/server/chunks/5151.js +15 -5
  132. package/bundle/.next/server/chunks/6476.js +13 -0
  133. package/bundle/.next/server/chunks/7396.js +7 -0
  134. package/bundle/.next/server/chunks/8621.js +1 -0
  135. package/bundle/.next/server/chunks/8849.js +1 -0
  136. package/bundle/.next/server/functions-config-manifest.json +2 -0
  137. package/bundle/.next/server/middleware-build-manifest.js +1 -1
  138. package/bundle/.next/server/middleware-react-loadable-manifest.js +1 -1
  139. package/bundle/.next/server/pages/404.html +1 -1
  140. package/bundle/.next/server/pages/500.html +1 -1
  141. package/bundle/.next/server/server-reference-manifest.json +1 -1
  142. package/bundle/.next/static/JwIu-FqrfB4Nerk5vBqR2/_buildManifest.js +1 -0
  143. package/bundle/.next/static/chunks/1994.2c1ce6369c0b31aa.js +1 -0
  144. package/bundle/.next/static/chunks/2083-7a341dd360f54c8b.js +1 -0
  145. package/bundle/.next/static/chunks/2396-395f5ed99e66819d.js +1 -0
  146. package/bundle/.next/static/chunks/2842.b8d0551fd4d397d4.js +1 -0
  147. package/bundle/.next/static/chunks/331-518938b9d1e94c9c.js +1 -0
  148. package/bundle/.next/static/chunks/3315-597211dffe007157.js +7 -0
  149. package/bundle/.next/static/chunks/4424-805347abcfa4dab9.js +32 -0
  150. package/bundle/.next/static/chunks/4a846800.ef93163f41628d6f.js +1 -0
  151. package/bundle/.next/static/chunks/6276-fdd5e81abda749e8.js +9 -0
  152. package/bundle/.next/static/chunks/7442-5ed5b8f501838da4.js +198 -0
  153. package/bundle/.next/static/chunks/8583-7994af81ac8b7330.js +1 -0
  154. package/bundle/.next/static/chunks/app/_global-error/page-8443c62570b9a078.js +1 -0
  155. package/bundle/.next/static/chunks/app/_not-found/page-8443c62570b9a078.js +1 -0
  156. package/bundle/.next/static/chunks/app/agents/page-a48b3909fe8cc49b.js +1 -0
  157. package/bundle/.next/static/chunks/app/api/agents/[agentId]/chat/route-8443c62570b9a078.js +1 -0
  158. package/bundle/.next/static/chunks/app/api/agents/route-8443c62570b9a078.js +1 -0
  159. package/bundle/.next/static/chunks/app/api/diagnostics/route-8443c62570b9a078.js +1 -0
  160. package/bundle/.next/static/chunks/app/api/files/reveal/route-8443c62570b9a078.js +1 -0
  161. package/bundle/.next/static/chunks/app/api/gateway/control/route-8443c62570b9a078.js +1 -0
  162. package/bundle/.next/static/chunks/app/api/integrations/[integrationId]/status/route-8443c62570b9a078.js +1 -0
  163. package/bundle/.next/static/chunks/app/api/mission/route-8443c62570b9a078.js +1 -0
  164. package/bundle/.next/static/chunks/app/api/models/catalog/route-8443c62570b9a078.js +1 -0
  165. package/bundle/.next/static/chunks/app/api/models/providers/route-8443c62570b9a078.js +1 -0
  166. package/bundle/.next/static/chunks/app/api/onboarding/models/route-8443c62570b9a078.js +1 -0
  167. package/bundle/.next/static/chunks/app/api/onboarding/route-8443c62570b9a078.js +1 -0
  168. package/bundle/.next/static/chunks/app/api/openclaw/capabilities/route-8443c62570b9a078.js +1 -0
  169. package/bundle/.next/static/chunks/app/api/openclaw/compatibility-smoke/route-8443c62570b9a078.js +1 -0
  170. package/bundle/.next/static/chunks/app/api/planner/[planId]/deploy/route-8443c62570b9a078.js +1 -0
  171. package/bundle/.next/static/chunks/app/api/planner/[planId]/document-rewrite/route-8443c62570b9a078.js +1 -0
  172. package/bundle/.next/static/chunks/app/api/planner/[planId]/route-8443c62570b9a078.js +1 -0
  173. package/bundle/.next/static/chunks/app/api/planner/[planId]/simulate/route-8443c62570b9a078.js +1 -0
  174. package/bundle/.next/static/chunks/app/api/planner/[planId]/turn/route-8443c62570b9a078.js +1 -0
  175. package/bundle/.next/static/chunks/app/api/planner/route-8443c62570b9a078.js +1 -0
  176. package/bundle/.next/static/chunks/app/api/reset/route-8443c62570b9a078.js +1 -0
  177. package/bundle/.next/static/chunks/app/api/runtimes/[runtimeId]/route-8443c62570b9a078.js +1 -0
  178. package/bundle/.next/static/chunks/app/api/settings/gateway/route-8443c62570b9a078.js +1 -0
  179. package/bundle/.next/static/chunks/app/api/settings/openclaw-binary/route-8443c62570b9a078.js +1 -0
  180. package/bundle/.next/static/chunks/app/api/settings/workspace-root/route-8443c62570b9a078.js +1 -0
  181. package/bundle/.next/static/chunks/app/api/snapshot/route-8443c62570b9a078.js +1 -0
  182. package/bundle/.next/static/chunks/app/api/stream/route-8443c62570b9a078.js +1 -0
  183. package/bundle/.next/static/chunks/app/api/system/open-terminal/route-8443c62570b9a078.js +1 -0
  184. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/abort/route-8443c62570b9a078.js +1 -0
  185. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/control/route-8443c62570b9a078.js +1 -0
  186. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/stream/route-8443c62570b9a078.js +1 -0
  187. package/bundle/.next/static/chunks/app/api/update/route-8443c62570b9a078.js +1 -0
  188. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/discovered-groups/route-8443c62570b9a078.js +1 -0
  189. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/route-8443c62570b9a078.js +1 -0
  190. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/edit-draft/route-8443c62570b9a078.js +1 -0
  191. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/files/route-8443c62570b9a078.js +1 -0
  192. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/surfaces/discovery/route-8443c62570b9a078.js +1 -0
  193. package/bundle/.next/static/chunks/app/api/workspaces/route-8443c62570b9a078.js +1 -0
  194. package/bundle/.next/static/chunks/app/files/page-a0e2fdb9c72008d3.js +1 -0
  195. package/bundle/.next/static/chunks/app/integrations/page-fbeb03fb416b56e4.js +1 -0
  196. package/bundle/.next/static/chunks/app/layout-a58705d0aa0318d2.js +1 -0
  197. package/bundle/.next/static/chunks/app/models/page-a22fedc08112e7a0.js +1 -0
  198. package/bundle/.next/static/chunks/app/not-found-8443c62570b9a078.js +1 -0
  199. package/bundle/.next/static/chunks/app/page-4f990fddc5f18dcf.js +1 -0
  200. package/bundle/.next/static/chunks/app/settings/page-28f1484e79b1be1f.js +1 -0
  201. package/bundle/.next/static/chunks/app/tasks/page-89536b0bec007ced.js +1 -0
  202. package/bundle/.next/static/chunks/d08e407b-86b21ef93cdf4fa3.js +1 -0
  203. package/bundle/.next/static/chunks/f6503f1c-1272160a304f8b44.js +1 -0
  204. package/bundle/.next/static/chunks/framework-840804a6e17cee72.js +1 -0
  205. package/bundle/.next/static/chunks/main-529ff68c072bfd3e.js +5 -0
  206. package/bundle/.next/static/chunks/main-app-70892a7dc1723083.js +1 -0
  207. package/bundle/.next/static/chunks/next/dist/client/components/builtin/app-error-8443c62570b9a078.js +1 -0
  208. package/bundle/.next/static/chunks/next/dist/client/components/builtin/forbidden-8443c62570b9a078.js +1 -0
  209. package/bundle/.next/static/chunks/next/dist/client/components/builtin/global-error-307c6fd9c934218d.js +1 -0
  210. package/bundle/.next/static/chunks/next/dist/client/components/builtin/unauthorized-8443c62570b9a078.js +1 -0
  211. package/bundle/.next/static/chunks/{webpack-49728cc9bb386219.js → webpack-1e021d6850c9ac01.js} +1 -1
  212. package/bundle/.next/static/css/288b13e5308447b9.css +3 -0
  213. package/bundle/server.js +1 -1
  214. package/package.json +1 -1
  215. package/bundle/.next/server/chunks/6639.js +0 -13
  216. package/bundle/.next/server/chunks/7125.js +0 -188
  217. package/bundle/.next/server/chunks/8155.js +0 -15
  218. package/bundle/.next/static/chunks/1994.af8e615920391b12.js +0 -1
  219. package/bundle/.next/static/chunks/2798.05bb8e435bca457c.js +0 -1
  220. package/bundle/.next/static/chunks/3254-31132332d1368b3c.js +0 -15
  221. package/bundle/.next/static/chunks/4424-08671f25c8f9ae84.js +0 -32
  222. package/bundle/.next/static/chunks/4a846800.17bbc9efb621dbb7.js +0 -1
  223. package/bundle/.next/static/chunks/7442-e148a49efcfa2d32.js +0 -188
  224. package/bundle/.next/static/chunks/8583-0efb0aa0937b762c.js +0 -1
  225. package/bundle/.next/static/chunks/app/_global-error/page-a39fe5a18111b91d.js +0 -1
  226. package/bundle/.next/static/chunks/app/_not-found/page-a39fe5a18111b91d.js +0 -1
  227. package/bundle/.next/static/chunks/app/api/agents/[agentId]/chat/route-a39fe5a18111b91d.js +0 -1
  228. package/bundle/.next/static/chunks/app/api/agents/route-a39fe5a18111b91d.js +0 -1
  229. package/bundle/.next/static/chunks/app/api/diagnostics/route-a39fe5a18111b91d.js +0 -1
  230. package/bundle/.next/static/chunks/app/api/files/reveal/route-a39fe5a18111b91d.js +0 -1
  231. package/bundle/.next/static/chunks/app/api/gateway/control/route-a39fe5a18111b91d.js +0 -1
  232. package/bundle/.next/static/chunks/app/api/mission/route-a39fe5a18111b91d.js +0 -1
  233. package/bundle/.next/static/chunks/app/api/models/catalog/route-a39fe5a18111b91d.js +0 -1
  234. package/bundle/.next/static/chunks/app/api/models/providers/route-a39fe5a18111b91d.js +0 -1
  235. package/bundle/.next/static/chunks/app/api/onboarding/models/route-a39fe5a18111b91d.js +0 -1
  236. package/bundle/.next/static/chunks/app/api/onboarding/route-a39fe5a18111b91d.js +0 -1
  237. package/bundle/.next/static/chunks/app/api/openclaw/capabilities/route-a39fe5a18111b91d.js +0 -1
  238. package/bundle/.next/static/chunks/app/api/planner/[planId]/deploy/route-a39fe5a18111b91d.js +0 -1
  239. package/bundle/.next/static/chunks/app/api/planner/[planId]/document-rewrite/route-a39fe5a18111b91d.js +0 -1
  240. package/bundle/.next/static/chunks/app/api/planner/[planId]/route-a39fe5a18111b91d.js +0 -1
  241. package/bundle/.next/static/chunks/app/api/planner/[planId]/simulate/route-a39fe5a18111b91d.js +0 -1
  242. package/bundle/.next/static/chunks/app/api/planner/[planId]/turn/route-a39fe5a18111b91d.js +0 -1
  243. package/bundle/.next/static/chunks/app/api/planner/route-a39fe5a18111b91d.js +0 -1
  244. package/bundle/.next/static/chunks/app/api/reset/route-a39fe5a18111b91d.js +0 -1
  245. package/bundle/.next/static/chunks/app/api/runtimes/[runtimeId]/route-a39fe5a18111b91d.js +0 -1
  246. package/bundle/.next/static/chunks/app/api/settings/gateway/route-a39fe5a18111b91d.js +0 -1
  247. package/bundle/.next/static/chunks/app/api/settings/openclaw-binary/route-a39fe5a18111b91d.js +0 -1
  248. package/bundle/.next/static/chunks/app/api/settings/workspace-root/route-a39fe5a18111b91d.js +0 -1
  249. package/bundle/.next/static/chunks/app/api/snapshot/route-a39fe5a18111b91d.js +0 -1
  250. package/bundle/.next/static/chunks/app/api/stream/route-a39fe5a18111b91d.js +0 -1
  251. package/bundle/.next/static/chunks/app/api/system/open-terminal/route-a39fe5a18111b91d.js +0 -1
  252. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/abort/route-a39fe5a18111b91d.js +0 -1
  253. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/control/route-a39fe5a18111b91d.js +0 -1
  254. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/stream/route-a39fe5a18111b91d.js +0 -1
  255. package/bundle/.next/static/chunks/app/api/update/route-a39fe5a18111b91d.js +0 -1
  256. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/discovered-groups/route-a39fe5a18111b91d.js +0 -1
  257. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/route-a39fe5a18111b91d.js +0 -1
  258. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/edit-draft/route-a39fe5a18111b91d.js +0 -1
  259. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/files/route-a39fe5a18111b91d.js +0 -1
  260. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/surfaces/discovery/route-a39fe5a18111b91d.js +0 -1
  261. package/bundle/.next/static/chunks/app/api/workspaces/route-a39fe5a18111b91d.js +0 -1
  262. package/bundle/.next/static/chunks/app/layout-7c2d7e515f68248b.js +0 -1
  263. package/bundle/.next/static/chunks/app/not-found-a39fe5a18111b91d.js +0 -1
  264. package/bundle/.next/static/chunks/app/page-9bd535a80e3968e2.js +0 -1
  265. package/bundle/.next/static/chunks/app/settings/page-3794e22c77091d4b.js +0 -1
  266. package/bundle/.next/static/chunks/d08e407b-a7a2691dd8d9de6b.js +0 -1
  267. package/bundle/.next/static/chunks/f6503f1c-7df4e7c4564148dc.js +0 -1
  268. package/bundle/.next/static/chunks/framework-c8a5f18418cd0e86.js +0 -1
  269. package/bundle/.next/static/chunks/main-2c126219b824eed3.js +0 -5
  270. package/bundle/.next/static/chunks/main-app-9a4481b0ab7b57f6.js +0 -1
  271. package/bundle/.next/static/chunks/next/dist/client/components/builtin/app-error-a39fe5a18111b91d.js +0 -1
  272. package/bundle/.next/static/chunks/next/dist/client/components/builtin/forbidden-a39fe5a18111b91d.js +0 -1
  273. package/bundle/.next/static/chunks/next/dist/client/components/builtin/global-error-38aa72b47d0b8f99.js +0 -1
  274. package/bundle/.next/static/chunks/next/dist/client/components/builtin/unauthorized-a39fe5a18111b91d.js +0 -1
  275. package/bundle/.next/static/css/7b10ac9fa66d7c17.css +0 -3
  276. package/bundle/.next/static/ujFbMZ9arxb7I3_g4GzfY/_buildManifest.js +0 -1
  277. /package/bundle/.next/static/{ujFbMZ9arxb7I3_g4GzfY → JwIu-FqrfB4Nerk5vBqR2}/_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:()=>a0,b7:()=>a_,GM:()=>a2,ZZ:()=>a1});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.getUpdateStatus({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.getGatewayStatus({timeoutMs:a});return{status:"fulfilled",value:c}}catch(a){return{status:"rejected",reason:a}}}async function k(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 l{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 m=c(83761),n=c(75402),o=c(88978);class p{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=q(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=q(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 q(a,b){return[...new Set(a.filter(Boolean))].sort().map(a=>`${a}:${b[a]??""}`).join("\0")}class r{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 s(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(()=>{})),s(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 s(b,a.includeHidden)}finally{this.promise=null}}if(this.promise)return s(await this.promise,a.includeHidden);this.promise=this.loadForCurrentGeneration("interactive"),this.promise.catch(()=>{});try{let b=await this.promise;return s(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 s(a,b){return b?a.full:a.visible}class t{constructor(a){this.controller=new r(a)}getGeneration(){return this.controller.getGeneration()}clear(a={}){this.controller.clear(a)}getSnapshot(a={}){return this.controller.get(a)}}var u=c(25303),v=c(72761),w=c(56763),x=c(11782);function y(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 z(a,b=[]){let c=B(b.find(a=>a.isDefault))||B(b.find(a=>!!B(a)))||a.find(a=>a.default)?.model||a.find(a=>!!a.model)?.model||null;if(c)return{defaultModel:c,resolvedDefault:c}}function A(a){return"string"==typeof a&&a.trim()?a.trim():null}function B(a){return A(a?.modelId)??A(a?.model)}var C=c(76760),D=c.n(C),E=c(21916);function F(a,b){let c=new Set,d=new Map;for(let b of a){let a=function(a){var b;let c=I(a.workspace),d=(b=a.identityName||a.name||a.id,(0,E.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(H);if(0!==d.length)for(let e of a)!d.includes(e)&&function(a,b){let c=I(a.agentDir),d=I(D().join(b,"agents"));return!!(c&&d&&c.startsWith(`${d}${D().sep}`))}(e,b)&&c.add(G(e))}return a.filter(a=>!c.has(G(a)))}function G(a){return`${a.id}\0${I(a.agentDir)}`}function H(a){let b=I(a.workspace),c=I(a.agentDir);return!!b&&!!c&&c.startsWith(`${D().join(b,".openclaw","agents")}${D().sep}`)}function I(a){let b=(0,E.Nk)(a);return b?D().normalize(b):""}let J="Deferred to background refresh.";class K{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 L(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 L(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 M(){return{status:"rejected",reason:Error(J)}}function N(a){return"rejected"===a.status&&a.reason instanceof Error&&a.reason.message===J}var O=c(28182),P=c(35456),Q=c(51455),R=c(58889);async function S(a){try{let b=await (0,Q.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,R.kf)(a)).filter(a=>!!a):[];return{status:"fulfilled",value:(0,R._E)({version:1,channels:e})}}catch(a){return{status:"rejected",reason:a}}}var T=c(99254);async function U(a){let b=await S(n.q6),c="fulfilled"===b.status?b.value:(0,R._E)({version:1,channels:[]}),d="interactive"===a?[]:await (0,T.QT)(),e=(0,T.fy)((0,T.D4)([...d,...(0,T.G7)(c)]),c);return{channelRegistry:c,channelAccounts:e}}var V=c(65493),W=c(38610);function X(a,b){for(let c of a)for(let a of b){let b=(0,E.Nk)("string"==typeof c[a]?c[a]:void 0);if(b)return b}}function Y(a){return Z(a)?a:void 0}function Z(a){return!!(a&&"object"==typeof a&&!Array.isArray(a))}function $(a){if(!a)return null;try{return new URL(a).hostname}catch{return null}}function _(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 aa(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 ab=c(15292),ac=c(38798),ad=c(7565),ae=c(48161),af=c.n(ae);let ag=["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 ah(a){return{visible:a,full:a}}function ai(a){return a||D().join(af().homedir(),"Documents","Shared","projects")}async function aj(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 aa(await c.read(d,e),(0,P.fj)(b))}async function ak(a){var b,c,d,f,g,h;let i,j,k,l,m,n,o,p,q,r,s,t,v,w,x,y=(0,E.QL)(a.models,a.modelStatus),z=(b=a.status,b?.securityAudit?.findings?.filter(a=>"warn"===a.severity).map(a=>a.title||a.detail||"Security warning")??[]),A=(m=function(a){let b=[];function c(a){!Z(a)||b.includes(a)||b.push(a)}return c(a),c(a?.result),c(a?.data),c(a?.update),c(a?.availability),c(Y(a?.update)?.registry),c(a?.registry),c(a?.stats),c(a?.sentinel),c(Y(a?.sentinel)?.stats),c(Y(a?.result)?.update),c(Y(Y(a?.result)?.update)?.registry),c(Y(a?.result)?.registry),c(Y(a?.result)?.stats),b}((c={status:a.status,updateStatus:a.updateStatus,updateStatusError:function(a){if(!("rejected"!==a.status||N(a)))return a.reason instanceof Error?a.reason.message:String(a.reason)}(a.payloadResults.updateStatus),fallbackVersion:await (0,e.YP)()??void 0}).updateStatus),n=(0,E.Nk)(c.status?.runtimeVersion||c.status?.overview?.version||c.status?.version)??X(m,["runningVersion","currentVersion","runtimeVersion","version","afterVersion"])??c.fallbackVersion??void 0,o=(0,E.Nk)(c.status?.update?.registry?.latestVersion??void 0)??X(m,["latestVersion","targetVersion","availableVersion","recommendedVersion"]),p=(0,E.nn)(c.status?.update?.registry?.error??void 0)??function(a){let b=X(a,["error","errorMessage"]);if(b)return(0,E.nn)(b);for(let b of a)if(!1===b.ok){let a=X([b],["message","reason","status"]);if(a)return(0,E.nn)(a)}}(m)??(0,E.nn)(c.updateStatusError),q=n&&o?(0,E.QK)(o,n)>0:function(a,b){for(let c of a)for(let a of b)if("boolean"==typeof c[a])return c[a]}(m,["updateAvailable","available","hasRegistryUpdate"]),r=(0,E.mB)({currentVersion:n,latestVersion:o,updateError:p,legacyInfo:c.status?.overview?.update??X(m,["updateInfo","summary","detail"])}),{currentVersion:n,latestVersion:o,updateAvailable:q,updateError:p,updateInfo:r}),B=(0,ab.Df)(await (0,ab.bq)(),(0,e.T5)()),C="interactive"===a.profile?(0,u.Bc)()??void 0:await (0,u.N3)().catch(()=>void 0);"interactive"!==a.profile||C||(0,u.Cs)();let D=(0,ad.Xz)().getDiagnostics?.(),F=(0,W.wi)((0,ac.Lo)(),D).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:ai(a.configuredWorkspaceRoot),configuredGatewayUrl:a.configuredGatewayUrl,hasOpenClawSignal:a.hasOpenClawSignal,securityWarnings:z,runtimeDiagnostics:a.runtimeDiagnostics,openClawBinarySelection:B,modelReadiness:y,capabilityMatrix:C,compatibilitySmokeTest:(0,P.ul)(a.settings),commandHistory:(0,e.ik)(),transport:D,versionDiagnostics:A,issues:(d={payloadResults:a.payloadResults,gatewayStatusRejectedWithCachedValue:a.gatewayStatusRejectedWithCachedValue,payloadReuse:a.payloadReuse,runtimeIssues:[...a.runtimeDiagnostics.issues,...F]},[...(0,E.Lp)(Object.fromEntries(Object.entries(d.payloadResults).filter(([,a])=>!N(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])},s=(f.transport?.recentFallbackDiagnostics??[]).map(a=>({...a,operationLabel:(0,V.Hi)(a.operation)})),t=(0,W.wi)(s,f.transport),v=[...f.securityWarnings,...(g=f.gatewayStatus,h=f.configuredGatewayUrl,i=[],j=$(g?.gateway?.probeUrl),k=$(h??void 0),l=(0,E.Nk)(g?.gateway?.bindMode??void 0)?.toLowerCase(),j&&!_(j)&&i.push("OpenClaw Gateway is reachable on a non-loopback host. AgentOS mutation APIs stay restricted to same-origin localhost requests."),k&&!_(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)))],x=(w=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))?[w,...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,E.YO)({rpcOk:f.gatewayStatus?.rpc?.ok,warningCount:v.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,E.Nk)(f.status?.update?.root??void 0),updateInstallKind:(0,E.Nk)(f.status?.update?.installKind??void 0),updatePackageManager:(0,E.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,compatibilitySmokeTest:f.compatibilitySmokeTest??null,gatewayFallbackDiagnostics:s,gatewayFallbackReasons:t.map(a=>`${a.operationLabel} (${a.operation}): ${a.kind}: ${a.issue} Recovery: ${a.recovery}`),runtime:f.runtimeDiagnostics,commandHistory:f.commandHistory,transport:f.transport,securityWarnings:v,issues:x}}function al(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,x.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 am(a,b){try{var c,d,e;let f=(c=a,d=b,e=[...c.flatMap(a=>{let b=[],c=ar(a.workspace);return c&&b.push(D().join(c,".openclaw","agents")),b}),D().join(d,"agents")],Array.from(new Set(e.filter(Boolean)))),g=await an(f);return{status:"fulfilled",value:{sessions:g}}}catch(a){return{status:"rejected",reason:a}}}async function an(a){let b=new Map;for(let c of a){let a;try{a=await (0,Q.readdir)(c,{withFileTypes:!0})}catch{continue}for(let d of a){let a,e;if(!d.isDirectory())continue;let f=D().join(c,d.name,"sessions","sessions.json");try{a=await (0,Q.readFile)(f,"utf8")}catch{continue}try{e=JSON.parse(a)}catch{continue}if(Array.isArray(e)){for(let a of e){if(!aq(a))continue;let c=ao(a,d.name);b.has(c.key)||b.set(c.key,c)}continue}if(aq(e))for(let[a,c]of Object.entries(e)){if(!aq(c))continue;let e=ao(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 ao(a,b,c){var d;let e=ar("string"==typeof a.sessionId?a.sessionId:void 0),f=ap(a,"updatedAt"),g=ap(a,"inputTokens"),h=ap(a,"outputTokens"),i=ap(a,"totalTokens"),j=ap(a,"cacheRead"),k=ap(a,"ageMs")??("number"==typeof(d=f)?Math.max(Date.now()-d,0):void 0),l=ar("string"==typeof a.model?a.model:void 0),m=ar("string"==typeof a.modelProvider?a.modelProvider:void 0),n=ar("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=ar("string"==typeof a.kind?a.kind:"string"==typeof a.chatType?a.chatType:void 0);if(c)return c;let d=aq(a.deliveryContext)?a.deliveryContext:null,e=aq(a.origin)?a.origin:null;if("heartbeat"===ar("string"==typeof d?.to?d.to:void 0)||"heartbeat"===ar("string"==typeof e?.provider?e.provider:void 0))return"direct";let f=ar(b);return f&&/:(direct|dm|private):/i.test(f)?"direct":f&&/:(group|channel|thread):/i.test(f)?"group":"task"}(a,n)}}function ap(a,b){let c=a[b];return"number"==typeof c&&Number.isFinite(c)?c:void 0}function aq(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function ar(a){if("string"!=typeof a)return null;let b=a.trim();return b.length>0?b:null}async function as(){try{let a=await (0,Q.readFile)(D().join(n.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 at(a){try{var b;let c,d=await (0,g.rw)().listAgents({timeoutMs:15e3});return{status:"fulfilled",value:(b=n.wh,c=new Map(a.map(a=>[a.id,a])),F(d.agents.map(a=>{let e=c.get(a.id),f=a.identity??e?.identity,g=(0,E.Nk)(a.workspace)??(0,E.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||D().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 au(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 am(a,n.wh)}}var av=c(20078),aw=c(37110),ax=c(80410);function ay(a,b){return(b.updatedAt??0)-(a.updatedAt??0)}var az=c(70016),aA=c(25793);async function aB(){return(0,aw.Ff)()}async function aC(a,b){let c=await (0,av.cf)();return(0,ax.kw)((0,av.ZO)(a,c),b)}async function aD(a){var b;let c,d=(await Promise.all(a.sessions.map(b=>(0,aA.V9)(b,a.agentConfig,a.agentsList,(b,c,d)=>(0,az.$Z)(b,c,d,{resolveWorkspaceId:a.resolveWorkspaceId}))))).flat(),e=(0,w.Em)(a.runtimeSnapshot,{agentConfig:a.agentConfig,agentsList:a.agentsList,resolveWorkspaceId:a.resolveWorkspaceId}),f=[...a.systemProfile?[]:await (0,v.Qc)(),...e,...d],g=(0,ax.CD)(f,a.dispatchRecords),h=await (0,ax.Ip)(g,a.dispatchRecords,{buildObservedRuntime:aw.DO,persistObservation:aw.vH,reconcileRuntimeState:aw.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(ay),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(ay)})}(Array.from(d.values())),g=new Map(f.filter(a=>!c.excludeFromCache?.(a)).map(a=>[a.id,a]));return{runtimes:f.sort(ay),cache:g}}([...g,...h],(b=a.historyStore).cache,{excludeFromCache:ax.U8}),b.cache=c.cache,c.runtimes}var aE=c(93628),aF=c(71065),aG=c(57419),aH=c(9443),aI=c(54252),aJ=c(96109),aK=c(15612);async function aL(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,R.QO)(b,e);await (0,aI.u)(b),c.set(b,f),d.set(b,await (0,aH.xL)(b,f.template,f.rules??aK.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,R.OL)(b.workspace);c.set(b.workspace,y);let z=y.agents.find(a=>a.id===b.id)??null,A=await (0,aG.L)(b.workspace,{agentId:b.id,agentName:v?.name||b.name||v?.identity?.name||b.identityName||b.id,configuredSkills:(0,aF.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??aK.eY,workspaceBootstrapProfile:d.get(b.workspace)??await (0,aH.xL)(b.workspace,y.template,y.rules??aK.eY)}),B=a.runtimes.filter(a=>a.agentId===b.id).sort(ay),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,aF.AB)(e.configured?.skills??[]),j=(0,E.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,aE.g0)((0,aE.qF)({skills:f,id:e.rawAgent.id,name:j}),{fileAccess:e.configured?.tools?.fs?.workspaceOnly?"workspace-only":"extended"}),l=(0,E.Am)([...e.manifestAgent?.toolIds??[],..."workspace-only"===k.fileAccess?["fs.workspaceOnly"]:[]]),m=e.rawAgent.model||e.configured?.model||"unassigned",n=e.agentRuntimes.sort(ay),o=(0,E.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,E.yv)({rpcOk:e.gatewayRpcOk,activeRuntime:q,heartbeatEnabled:!!e.heartbeat?.enabled,lastActiveAt:r}),t={id:e.rawAgent.id,name:j,identityName:(0,E.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,E.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,E.Nk)(e.identityOverrides?.emoji)||e.configured?.identity?.emoji||e.rawAgent.identityEmoji,theme:(0,E.Nk)(e.identityOverrides?.theme)||e.configured?.identity?.theme,avatar:(0,E.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,(D().basename(d)||d).split(/[-_]/g).filter(Boolean).map(a=>a[0].toUpperCase()+a.slice(1)).join(" ")),slug:D().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,aH.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,E.Am)(b.workspace.modelIds),activeRuntimeIds:(0,E.Am)(b.workspace.activeRuntimeIds),health:(0,E.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 aM({generation:a,settings:b,localGatewayStatus:c,openclawInstalled:f,configuredWorkspaceRoot:g,gatewayStatusCache:h}){let i=await j(3e3),k=h.resolve(i).value??c,l=await (0,m.k)(n.wh),p="fulfilled"===l.status?l.value:[],q=aa(await (0,o.t)(n.wh,p.map(a=>a.id).filter(Boolean),{agentDirs:Object.fromEntries(p.filter(a=>a.id).map(a=>[a.id,a.agentDir]))}),(0,P.fj)(b)),r=z(p),s=y(p,r),t=(0,E.QL)(s.models,r),v=!!k?.rpc?.ok,w=!!(k?.service?.loaded||v),x=f&&v&&q.stateWritable&&q.sessionStoreWritable,A=(0,ad.Xz)().getDiagnostics?.(),B=(A?.recentFallbackDiagnostics??[]).map(a=>({...a,operationLabel:(0,V.Hi)(a.operation)})),C=(0,W.wi)(B,A),D=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,...D].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:x?"healthy":f?"degraded":"offline",workspaceRoot:ai(g),configuredWorkspaceRoot:g,gatewayUrl:k?.gateway?.probeUrl??G.diagnostics.gatewayUrl,bindMode:k?.gateway?.bindMode,port:k?.gateway?.port,serviceLabel:k?.service?.label,openClawBinarySelection:(0,ab.Df)(await (0,ab.bq)(),(0,e.T5)()),modelReadiness:t,capabilityMatrix:(0,u.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:ag}}let aN=null,aO=null,aP=null,aQ=null,aR=null,aS=null,aT=null,aU={cache:new Map},aV=new K,aW=new K,aX=new l(6e4),aY=new t({ttlMs:3e4,load:(a,b)=>a3({profile:a,generation:b})}),aZ=new p({ttlMs:3e5,getGeneration:()=>aY.getGeneration(),loadState:(a,b)=>(0,o.t)(n.wh,a,{agentDirs:b})});function a$(){aU.cache=new Map}function a_(){a$()}function a0(){aY.clear({incrementGeneration:!0}),aZ.clear(),aX.clear(),aV.clear(),aW.clear(),aN=null,aO=null,aP=null,aQ=null,aR=null,aS=null,aT=null,a$()}function a1(){aY.clear()}async function a2(a={}){return aY.getSnapshot(a)}async function a3({profile:a="interactive",generation:b=aY.getGeneration()}={}){let c=await (0,f.i)(),g=await (0,e.Vg)()||!!c?.rpc?.ok;if(!g)return ah((0,d.jJ)("OpenClaw CLI is not installed on this machine.",{installed:!1,loaded:!!c?.service?.loaded,rpcOk:!1}));try{var l,o,p,q,r;let d,e,s,t,x,B,C,G,H,I,J,K,Q,R,S="system"===a,T=await (0,P.tl)();S||(0,v.hC)();let V=(0,P.qB)(T.workspaceRoot)??null;if(S)return ah(await aM({generation:b,settings:T,localGatewayStatus:c,openclawInstalled:g,configuredWorkspaceRoot:V,gatewayStatusCache:aX}));let W=S?M():await as(),X=M(),Y=aV.shouldRefresh(),Z=aX.shouldRefresh(),$=!aQ||Date.now()-aQ.capturedAt>3e5;if("interactive"===a||S){let a=!c&&Y,b=!S&&$,f=Z?j(15e3):Promise.resolve(M()),g=a?h(15e3):Promise.resolve(M()),i=(0,m.k)(n.wh),l=b?k(15e3):Promise.resolve(M());[d,e,t,B]=await Promise.all([f,g,i,l]),s=M(),x=M(),C=M(),Y&&!a&&aV.scheduleRefresh(()=>h(15e3))}else[e,d,t,B]=await Promise.all([h(45e3),j(45e3),(0,m.k)(n.wh),k(45e3)]),s=M(),x=M(),C=M();let _=aX.resolve(d);if(!_.value&&c&&(_={value:c,reusedCachedValue:!1}),!_.value){let a=await (0,f.i)(aX.getCachedPort());a&&(aX.write(a),_={value:a,reusedCachedValue:!1})}let aa=_.value,ab="fulfilled"===W.status?(l=W.value,"string"==typeof l?(0,E.Nk)(l):l&&"object"==typeof l&&"value"in l&&"string"==typeof l.value?(0,E.Nk)(l.value):void 0):void 0,ac=aV.resolve(e),ad=L(t,aO,a=>{aO=a}),ae=ad.value??[];N(s)&&!S&&(s=await at(ae));let af=S?M():await au(ae),ai=(0,u.Bc)()?.operations?.runtimeSnapshot?.mode,am=!S&&"degraded"!==ai&&"disabled"!==ai&&"cli-fallback"!==ai,an=S?M():am?await (0,w.Jb)("interactive"===a?8e3:15e3):M(),ao=L(s,aN,a=>{aN=a}),ap=L(x,aP,a=>{aP=a}),aq=L(B,aQ,a=>{aQ=a}),ar=L(af,aR,a=>{aR=a}),av=L(an,aS,a=>{aS=a}),aw=L(C,aT,a=>{aT=a}),ax=ac.value,ay=(r=ax,!!(r?.update?.registry?.latestVersion||r?.update?.registry?.error));S||ay||"refresh"!==a?!S&&!ay&&aW.shouldRefresh()&&aW.scheduleRefresh(()=>i(15e3)):X=await i(2e4);let az=ay?{value:void 0,reusedCachedValue:!1,failed:!1}:aW.resolve(X),aA=ao.value??(o=n.wh,F(ae.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,E.Nk)(a.workspace)??"",agentDir:a.agentDir||D().join(o,"agents",a.id,"agent"),model:a.model,isDefault:!!a.default})),o)),aE=function(a,b,c=[]){let d=z(b,c);if(!a)return d;let e=A(a.defaultModel)??A(d?.defaultModel)??null,f=A(a.resolvedDefault)??A(d?.resolvedDefault)??e;return{...a,defaultModel:e,resolvedDefault:f}}(aq.value,ae,aA),aF=(p={agentConfig:ae,modelStatus:aE},y(p.agentConfig,p.modelStatus)),aG=ap.value?.models??aF.models,aH=aw.value??[],aI="fulfilled"===d.status||"fulfilled"===e.status||"fulfilled"===s.status||"fulfilled"===t.status||"fulfilled"===x.status||"fulfilled"===B.status||"fulfilled"===af.status||"fulfilled"===an.status||"fulfilled"===X.status||"fulfilled"===C.status,aK=aj(aA.map(a=>({id:a.id,agentDir:a.agentDir})),T,aZ);aK.catch(()=>{});let aY=await aB(),a$=await aC(ar.value?.sessions??[],aY),{channelRegistry:a_,channelAccounts:a0}=await U(a),a1=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,aJ.Fm)(c)}}(aA),a2=await aD({sessions:a$,agentConfig:ae,agentsList:aA,runtimeSnapshot:av.value,systemProfile:S,dispatchRecords:aY,resolveWorkspaceId:a1.resolveWorkspaceId,historyStore:aU}),{workspaces:a3,agents:a4,relationships:a5,manifestByWorkspace:a6}=await aL({bindings:a1,agentConfig:ae,sessions:a$,status:ax,gatewayStatus:aa,hasOpenClawSignal:aI,runtimes:a2}),{visibleWorkspaces:a7,visibleAgents:a8,visibleRuntimes:a9,visibleRelationships:ba}=(q={workspaces:a3,agents:a4,runtimes:a2,relationships:a5,isWorkspaceHidden:a=>!!a6.get(a.path)?.hidden},G=new Set(q.workspaces.filter(a=>q.isWorkspaceHidden(a)).map(a=>a.id)),H=q.agents.filter(a=>!G.has(a.workspaceId)),I=new Set(q.agents.filter(a=>G.has(a.workspaceId)).map(a=>a.id)),J=q.runtimes.filter(a=>!(a.agentId&&I.has(a.agentId))&&!(a.workspaceId&&G.has(a.workspaceId))),K=new Set(q.runtimes.filter(a=>a.agentId&&I.has(a.agentId)||a.workspaceId&&G.has(a.workspaceId)).map(a=>a.id)),Q=new Set([...G,...I,...K]),R=q.relationships.filter(a=>!Q.has(a.sourceId)&&!Q.has(a.targetId)),{visibleWorkspaces:q.workspaces.filter(a=>!G.has(a.id)),visibleAgents:H,visibleRuntimes:J,visibleRelationships:R}),bb=await aK,bc=await ak({profile:a,settings:T,configuredWorkspaceRoot:V??null,configuredGatewayUrl:ab,gatewayStatus:aa,status:ax,updateStatus:az.value,hasOpenClawSignal:aI,runtimeDiagnostics:bb,models:aG,agents:a4,modelStatus:aE,payloadResults:{gatewayStatus:d,status:e,updateStatus:X,agents:s,agentConfig:t,models:x,modelStatus:B,sessions:af,presence:C},gatewayStatusRejectedWithCachedValue:"rejected"===d.status&&_.reusedCachedValue,payloadReuse:{status:ac,updateStatus:az,agents:ao,agentConfig:ad,models:ap,modelStatus:aq,sessions:ar,presence:aw}}),bd=(0,O.IJ)(a2,a4),be=(0,O.IJ)(a9,a8),bf={generatedAt:new Date().toISOString(),revision:b,mode:"live",diagnostics:bc,channelAccounts:a0,channelRegistry:a_,presence:aH.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:ag};return{full:{...bf,workspaces:a3,agents:a4,models:al({models:aG,agents:a4,modelStatus:aE}),runtimes:a2,tasks:bd,relationships:a5},visible:{...bf,workspaces:a7,agents:a8,models:al({models:aG,agents:a8,modelStatus:aE}),runtimes:a9,tasks:be,relationships:ba}}}catch(a){return ah((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","USER.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","USER.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:"user",label:"USER.md",relativePath:"USER.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","USER.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:"user",label:"USER.md",relativePath:"USER.md",kind:"file",headings:["Operator Profile","Preferences"]},{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.
@@ -22,7 +22,17 @@ ${e}
22
22
  This workspace hosts a ${f[b].toLowerCase()} team coordinated through OpenClaw.
23
23
 
24
24
  **Vibe:** pragmatic, concise, quality-minded, workspace-grounded
25
- `}},{path:"TOOLS.md",title:"TOOLS.md",description:"Repository commands and workflow notes.",category:"core",render:({template:a,toolExamples:b})=>{var c,d;return c=a,d=b??g,`# TOOLS
25
+ `}},{path:"USER.md",title:"USER.md",description:"Operator profile and durable user preferences.",category:"core",render:()=>`# USER
26
+
27
+ ## Operator Profile
28
+ - Name:
29
+ - What to call them:
30
+ - Timezone:
31
+
32
+ ## Preferences
33
+ - Capture stable user preferences, review style, delivery expectations, and project-specific working agreements here.
34
+ - Keep sensitive personal details out unless the operator explicitly asks to remember them.
35
+ `},{path:"TOOLS.md",title:"TOOLS.md",description:"Repository commands and workflow notes.",category:"core",render:({template:a,toolExamples:b})=>{var c,d;return c=a,d=b??g,`# TOOLS
26
36
 
27
37
  Repository commands and workflow notes for this ${f[c].toLowerCase()} workspace.
28
38
 
@@ -122,8 +132,8 @@ ${c.map(e).join("\n")}`),d.length>0&&f.push(`## Assumptions
122
132
  ${d.map(e).join("\n")}`),f.length>0?`
123
133
  ${f.join("\n\n")}
124
134
  `:""}},15612:(a,b,c)=>{c.d(b,{GH:()=>l,P0:()=>j,eY:()=>f,hh:()=>i,sg:()=>k});var d=c(93628),e=c(14853);let f={workspaceOnly:!0,generateStarterDocs:!0,generateMemory:!0,kickoffMission:!0},g={software:{label:"Software project",description:"Default project template for engineering delivery.",icon:"\uD83D\uDEE0"},frontend:{label:"Frontend app",description:"UI and experience work with browser-aware support.",icon:"\uD83C\uDFA8"},backend:{label:"Backend/API",description:"Services, infrastructure, and backend-oriented workflows.",icon:"⚙️"},research:{label:"Research",description:"Investigation-heavy workspace with synthesis and memory capture.",icon:"\uD83E\uDDE0"},content:{label:"Content/Growth",description:"Messaging, content production, campaign review, and analysis.",icon:"\uD83D\uDCE3"}},h={software:[{id:"builder",role:"Builder",name:"Builder",emoji:"\uD83D\uDEE0️",theme:"amber",skillId:"project-builder",isPrimary:!0,description:"Implements requested changes and drives delivery forward."},{id:"reviewer",role:"Reviewer",name:"Reviewer",emoji:"\uD83D\uDD0D",theme:"rose",skillId:"project-reviewer",description:"Reviews work for correctness, regressions, and product risk."},{id:"tester",role:"Tester",name:"Tester",emoji:"\uD83E\uDDEA",theme:"emerald",skillId:"project-tester",description:"Validates behavior, tests, and environment assumptions."},{id:"learner",role:"Learner",name:"Learner",emoji:"\uD83E\uDDE0",theme:"cyan",skillId:"project-learner",description:"Consolidates durable project knowledge and memory."}],frontend:[{id:"builder",role:"Builder",name:"Builder",emoji:"\uD83D\uDEE0️",theme:"amber",skillId:"project-builder",isPrimary:!0,description:"Implements UI and frontend product work."},{id:"reviewer",role:"Reviewer",name:"Reviewer",emoji:"\uD83D\uDD0D",theme:"rose",skillId:"project-reviewer",description:"Reviews interaction, correctness, and regression risk."},{id:"tester",role:"Tester",name:"Tester",emoji:"\uD83E\uDDEA",theme:"emerald",skillId:"project-tester",description:"Checks behavior, responsive states, and verification gaps."},{id:"learner",role:"Learner",name:"Learner",emoji:"\uD83E\uDDE0",theme:"cyan",skillId:"project-learner",description:"Maintains stable product and implementation knowledge."},{id:"browser",role:"Browser Agent",name:"Browser Agent",emoji:"\uD83C\uDF10",theme:"blue",skillId:"project-browser",description:"Exercises browser flows, captures UI evidence, and validates user paths."}],backend:[{id:"builder",role:"Builder",name:"Builder",emoji:"\uD83D\uDEE0️",theme:"amber",skillId:"project-builder",isPrimary:!0,description:"Implements service, API, and infrastructure changes."},{id:"reviewer",role:"Reviewer",name:"Reviewer",emoji:"\uD83D\uDD0D",theme:"rose",skillId:"project-reviewer",description:"Catches correctness, data handling, and operational risks."},{id:"tester",role:"Tester",name:"Tester",emoji:"\uD83E\uDDEA",theme:"emerald",skillId:"project-tester",description:"Validates APIs, background jobs, migrations, and failure paths."},{id:"learner",role:"Learner",name:"Learner",emoji:"\uD83E\uDDE0",theme:"cyan",skillId:"project-learner",description:"Maintains architecture notes and durable operational memory."}],research:[{id:"researcher",role:"Research Lead",name:"Research Lead",emoji:"\uD83D\uDD2C",theme:"violet",skillId:"project-researcher",isPrimary:!0,description:"Runs investigations, frames questions, and synthesizes findings."},{id:"reviewer",role:"Reviewer",name:"Reviewer",emoji:"\uD83D\uDD0D",theme:"rose",skillId:"project-reviewer",description:"Pressure-tests claims, assumptions, and interpretation quality."},{id:"learner",role:"Archivist",name:"Archivist",emoji:"\uD83E\uDDE0",theme:"cyan",skillId:"project-learner",description:"Distills durable research notes, memory, and takeaways."}],content:[{id:"strategist",role:"Strategist",name:"Strategist",emoji:"\uD83D\uDCE3",theme:"orange",skillId:"project-strategist",isPrimary:!0,description:"Frames audience, goals, positioning, and campaign direction."},{id:"writer",role:"Writer",name:"Writer",emoji:"✍️",theme:"sky",skillId:"project-writer",description:"Drafts content, messaging, and campaign assets."},{id:"reviewer",role:"Reviewer",name:"Reviewer",emoji:"\uD83D\uDD0D",theme:"rose",skillId:"project-reviewer",description:"Edits for clarity, quality, and consistency."},{id:"analyst",role:"Analyst",name:"Analyst",emoji:"\uD83D\uDCC8",theme:"emerald",skillId:"project-analyst",description:"Tracks results, experiments, and performance insights."}]};function i(a){return g[a]}function j(a,b,c){let e=h[a];if("solo"===b){let a=e.find(a=>a.isPrimary)??e[0];return[{...a,name:k(c,a.role,"Builder"===a.role?"Default Agent":a.name),policy:(0,d.g0)("browser"===a.id?"browser":"worker"),enabled:!0}]}return e.map(a=>({id:a.id,role:a.role,name:a.isPrimary?k(c,a.role,a.name):a.name,emoji:a.emoji,theme:a.theme,skillId:a.skillId,modelId:a.modelId,isPrimary:!!a.isPrimary,policy:(0,d.g0)("browser"===a.id?"browser":"worker"),enabled:!0}))}function k(a,b,c){let d=function(a){let b=a?.trim();if(!b)return"";let c=(!/\s/.test(b)&&b.includes(".")?b.split(".")[0]:b).replace(/[^A-Za-z0-9\u00C0-\u024F]+/g," ").trim();return c?c.split(/\s+/).filter(Boolean).map(a=>a[0].toUpperCase()+a.slice(1)).join(" "):""}(a);if(!d)return c;let e=b.trim();return e?`${d} ${e}`:d}function l(a,b){return(0,e.nt)(a,b)}},16588:(a,b,c)=>{c.d(b,{Rp:()=>k,Z3:()=>p,cD:()=>l,co:()=>j,nU:()=>q,wZ:()=>m});var d=c(51455),e=c(76760),f=c.n(e),g=c(71065);function h(a){return"string"==typeof a&&a.trim().length>0?a.trim():null}async function i(a,b){try{let c=await (0,d.stat)(a);return"directory"===b?c.isDirectory():c.isFile()}catch{return!1}}function j(a){return{id:a.workspaceId,name:a.name,slug:f().basename(a.workspacePath),path:a.workspacePath,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:[]}}function k(a,b){return a.workspaceOnly===b.workspaceOnly&&a.generateStarterDocs===b.generateStarterDocs&&a.generateMemory===b.generateMemory&&a.kickoffMission===b.kickoffMission}function l(a,b){if(a.length!==b.length)return!1;let c=a=>({id:a.id.trim(),role:a.role.trim(),name:a.name.trim(),enabled:a.enabled,emoji:h(a.emoji)??null,theme:h(a.theme)??null,skillId:h(a.skillId)??null,modelId:h(a.modelId)??null,isPrimary:!!a.isPrimary,policy:a.policy?{preset:a.policy.preset,missingToolBehavior:a.policy.missingToolBehavior,installScope:a.policy.installScope,fileAccess:a.policy.fileAccess,networkAccess:a.policy.networkAccess}:null,heartbeat:a.heartbeat?{enabled:a.heartbeat.enabled,every:h(a.heartbeat.every)??null}:null,channelIds:Array.from(new Set((a.channelIds??[]).filter(Boolean))).sort((a,b)=>a.localeCompare(b))}),d=(a,b)=>a.id.localeCompare(b.id),e=[...a].sort(d).map(c),f=[...b].sort(d).map(c);return JSON.stringify(e)===JSON.stringify(f)}async function m(a){let b=new Set;for(let c of(await (0,d.readdir)(a,{withFileTypes:!0})))c.isFile()&&o(c.name)&&b.add(c.name);for(let c of["docs","memory"]){let d=f().join(a,c);if(await i(d,"directory"))for(let a of(await n(d,c)))b.add(a)}let c=f().join(a,"deliverables","README.md");return await i(c,"file")&&b.add("deliverables/README.md"),Array.from(b).sort((a,b)=>a.localeCompare(b))}async function n(a,b){let c=[];for(let e of(await (0,d.readdir)(a,{withFileTypes:!0}))){if(e.name.startsWith("."))continue;let d=f().join(b,e.name),g=f().join(a,e.name);if(e.isDirectory()){c.push(...await n(g,d));continue}e.isFile()&&o(e.name)&&c.push(d)}return c}function o(a){return a.toLowerCase().endsWith(".md")}async function p(a,b){return Promise.all(b.map(async b=>({id:b.id,label:b.label,present:await i(f().join(a,b.relativePath),b.kind)})))}async function q(a){let b=f().join(a,"skills");try{let a=await (0,d.readdir)(b,{withFileTypes:!0});return(await Promise.all(a.filter(a=>a.isDirectory()).map(async a=>{let c=f().join(b,a.name,"SKILL.md");return await i(c,"file")?a.name:null}))).filter(a=>"string"==typeof a&&!(0,g.If)(a)).sort((a,b)=>a.localeCompare(b))}catch{return[]}}},20078:(a,b,c)=>{c.d(b,{ZO:()=>k,cf:()=>j,fx:()=>i});var d=c(51455),e=c(76760),f=c.n(e);let g=f().join(process.cwd(),".mission-control"),h=f().join(g,"agent-chat-sessions.json");async function i(a){let b=a.agentId.trim(),c=a.sessionId.trim();if(!b||!c)return;let e=new Date().toISOString(),f=await l(),i=n([{agentId:b,sessionId:c,workspacePath:a.workspacePath,createdAt:f.sessions.find(a=>a.agentId===b&&a.sessionId===c)?.createdAt??e,updatedAt:e,origin:"agent-chat"},...f.sessions.filter(a=>a.agentId!==b||a.sessionId!==c)]);await (0,d.mkdir)(g,{recursive:!0}),await (0,d.writeFile)(h,`${JSON.stringify({version:1,sessions:i},null,2)}
125
- `,"utf8")}async function j(){return new Map((await l()).sessions.map(a=>[o(a.agentId,a.sessionId),a]))}function k(a,b){return 0===a.length||0===b.size?a:a.map(a=>{let c=a.agentId&&a.sessionId?b.get(o(a.agentId,a.sessionId)):null;return c?{...a,kind:"direct",origin:c.origin}:a})}async function l(){try{let a=await (0,d.readFile)(h,"utf8"),b=JSON.parse(a),c=Array.isArray(b?.sessions)?b.sessions:[],e=c.length>0?c.map(m).filter(a=>!!a):[];return{version:1,sessions:n(e)}}catch{return{version:1,sessions:[]}}}function m(a){if(!a||"object"!=typeof a)return null;let b="string"==typeof a.agentId?a.agentId.trim():"",c="string"==typeof a.sessionId?a.sessionId.trim():"",d="string"==typeof a.createdAt?a.createdAt:"",e="string"==typeof a.updatedAt?a.updatedAt:d;return!b||!c||Number.isNaN(Date.parse(d))?null:{agentId:b,sessionId:c,workspacePath:"string"==typeof a.workspacePath?a.workspacePath:void 0,createdAt:d,updatedAt:Number.isNaN(Date.parse(e))?d:e,origin:"agent-chat"}}function n(a){let b=Date.now()-12096e5,c=new Set,d=[];for(let e of[...a].sort((a,b)=>Date.parse(b.updatedAt)-Date.parse(a.updatedAt))){let a=Date.parse(e.updatedAt),f=o(e.agentId,e.sessionId);Number.isNaN(a)||a<b||c.has(f)||(c.add(f),d.push(e))}return d.slice(0,200)}function o(a,b){return`${a}:${b}`}},25303:(a,b,c)=>{c.d(b,{Bc:()=>i,Cs:()=>j,N3:()=>h});var d=c(39503),e=c(38798),f=c(65493);let g=null;async function h(a={}){if(!a.force&&g&&Date.now()-g.capturedAt<6e4)return g.value;let b=await k();return g={capturedAt:Date.now(),value:b},b}function i(){return g&&Date.now()-g.capturedAt<6e4?g.value:null}function j(){h().catch(()=>{})}async function k(){var a,b;let c=[],g=await (0,d.rw)().getStatus({timeoutMs:5e3}).catch(a=>(c.push(`status: ${v(a)}`),null)),h=t(g?.runtimeVersion)??t(g?.overview?.version)??t(g?.version),i=null,j=null,k=null,s=[],u=[],w=[],x="unavailable";if((0,e.JG)())x="disabled",c.push("Native Gateway WS is disabled by environment configuration.");else if(1)try{let a=await new e.gH({timeoutMs:2500}).probeNativeHandshake({timeoutMs:2500});x="gateway-handshake",i=o(a),j=p(a),k=q(a),s=r(a),u=m(a),w=n(a)}catch(a){c.push(`handshake: ${v(a)}`)}else{let a=await l(null,["rpc.discover","rpc.methods","system.capabilities","capabilities"],c),b=a?.payload??null;x=a?.method??"unavailable",i=o(b),j=p(b),k=q(b),s=r(b),u=m(b),w=n(b)}let y=new Set(u),z=new Set(w),A=(...a)=>0===y.size?"unknown":a.some(a=>y.has(a))?"supported":"unsupported",B=y.size>0?f.$o.filter(a=>!y.has(a)):[],C=Object.fromEntries(f.zS.map(a=>[a.id,((a,b,c=[],d=!0)=>{if((0,e.JG)())return{label:a,mode:"cli-fallback",methods:b,events:c,fallbackAllowed:d,reason:"Native Gateway WS is disabled by environment configuration.",preferredMethod:b[0]??null,supportedMethod:null,aliasMethods:b.slice(1),compatibility:"missing"};if(0===y.size&&0===z.size)return{label:a,mode:"unknown",methods:b,events:c,fallbackAllowed:d,reason:"Gateway did not advertise feature metadata; AgentOS will attempt Gateway first and fall back when needed.",preferredMethod:b[0]??null,supportedMethod:null,aliasMethods:b.slice(1),compatibility:"unknown"};let f=b.find(a=>y.has(a))??null,g=c.some(a=>z.has(a));return f||g?{label:a,mode:"gateway-native",methods:b,events:c,fallbackAllowed:d,reason:f&&f!==b[0]?`OpenClaw Gateway advertises compatibility alias ${f}.`:"OpenClaw Gateway advertises native support.",preferredMethod:b[0]??null,supportedMethod:f,aliasMethods:b.slice(1),compatibility:f&&f!==b[0]?"alias":"preferred"}:{label:a,mode:d?"degraded":"disabled",methods:b,events:c,fallbackAllowed:d,reason:d?"OpenClaw Gateway does not advertise native support; AgentOS will use compatibility fallback.":"OpenClaw Gateway does not advertise native support and no safe fallback is available.",preferredMethod:b[0]??null,supportedMethod:null,aliasMethods:b.slice(1),compatibility:"missing"}})(a.label,a.methods,a.events??[],a.fallbackAllowed??!0)])),D=(0,e.Lo)().map(a=>({...a,operationLabel:(0,f.Hi)(a.operation)})),E=D.map(a=>`${a.operationLabel} (${a.operation}): ${a.kind}: ${a.issue} Recovery: ${a.recovery}`),F=Object.entries(C).filter(([,a])=>"degraded"===a.mode||"cli-fallback"===a.mode).map(([a,b])=>`${a}: ${b.reason}`),G=Object.entries(C).filter(([,a])=>"alias"===a.compatibility&&a.supportedMethod).map(([a,b])=>`${a}: ${b.supportedMethod}`),H=function(a){if(!a)return"unknown";let b=Number(a);return Number.isFinite(b)?b>=e.aj.min&&b<=e.aj.max?"compatible":"unsupported":"unknown"}(i),I=new Date().toISOString(),J=function(a){if("disabled"===a.source)return{status:"unknown",checkedAt:a.checkedAt,source:a.source,refreshIntervalMs:6e4,expectedMethodCount:f.$o.length,advertisedMethodCount:0,missingMethodCount:0,missingMethods:[],missingOperations:[],reason:"Native Gateway WS is disabled by environment configuration, so AgentOS cannot compare advertised Gateway methods."};if(0===a.methodSet.size)return{status:"unknown",checkedAt:a.checkedAt,source:a.source,refreshIntervalMs:6e4,expectedMethodCount:f.$o.length,advertisedMethodCount:0,missingMethodCount:0,missingMethods:[],missingOperations:[],reason:"OpenClaw Gateway did not advertise method metadata; AgentOS will retry on the next capability refresh."};let b=Object.entries(a.operations).filter(([,a])=>"missing"===a.compatibility).map(([a])=>a),c=a.unsupportedGatewayMethods.length>0?"drift":"advertised";return{status:c,checkedAt:a.checkedAt,source:a.source,refreshIntervalMs:6e4,expectedMethodCount:f.$o.length,advertisedMethodCount:a.methodSet.size,missingMethodCount:a.unsupportedGatewayMethods.length,missingMethods:a.unsupportedGatewayMethods,missingOperations:b,reason:"advertised"===c?"OpenClaw Gateway advertised every AgentOS Gateway-first method candidate; payload contracts still depend on live RPC behavior.":"OpenClaw Gateway advertised method metadata, but one or more AgentOS Gateway-first candidates are missing."}}({checkedAt:I,source:x,methodSet:y,operations:C,unsupportedGatewayMethods:B});return{detectedAt:I,openClawVersion:h??null,gatewayProtocolVersion:i,requestedProtocolRange:e.aj,authMode:j,authRole:k,authScopes:s,supportedMethods:u,supportedEvents:w,configSchema:A("config.schema"),configSchemaLookup:A(...(0,f.P5)("configSchemaLookup")),configPatch:A(...(0,f.P5)("configPatch")),chatEvents:"supported"===A(...(0,f.P5)("missionDispatch"),"chat.history")||((0,f.jW)("missionStream").events??[]).some(a=>z.has(a))?"supported":0===y.size?"unknown":"unsupported",logsTail:A(...(0,f.P5)("logsTail")),cronRead:A(...(0,f.P5)("cronRead")),channels:A(...(0,f.P5)("channels")),skills:A(...(0,f.P5)("skills")),approvals:A(...(0,f.P5)("execApprovals"),"plugin.approval.list","plugin.approval.resolve"),updates:A(...(0,f.P5)("updates")),nativeMissionDispatch:A(...(0,f.P5)("missionDispatch")),nativeAgentLifecycle:A(...(0,f.P5)("agentCreate"),...(0,f.P5)("agentUpdate"),...(0,f.P5)("agentDelete")),eventBridge:"supported"===A(...(0,f.P5)("missionStream"),...(0,f.P5)("taskEvents"))||["chat","agent","session.message","session.tool","task","task.updated","task.completed","artifact","artifact.updated","exec.approval.requested","plugin.approval.requested"].some(a=>z.has(a))?"supported":0===y.size?"unknown":"unsupported",operations:C,compatibility:{protocol:{status:H,version:i,reason:(a=i,"compatible"===(b=H)?`Gateway protocol ${a} is within AgentOS' supported range ${e.aj.min}-${e.aj.max}.`:"unsupported"===b?`Gateway protocol ${a} is outside AgentOS' supported range ${e.aj.min}-${e.aj.max}.`:"Gateway protocol version was not advertised.")},methodContract:J,nativeOperationCount:Object.values(C).filter(a=>"gateway-native"===a.mode).length,degradedOperationCount:Object.values(C).filter(a=>"degraded"===a.mode||"cli-fallback"===a.mode).length,unknownOperationCount:Object.values(C).filter(a=>"unknown"===a.mode).length,aliasOperations:G,degradedOperations:Object.entries(C).filter(([,a])=>"degraded"===a.mode||"cli-fallback"===a.mode).map(([a])=>a)},degradedFeatures:F,fallbackDiagnostics:D,fallbackReasons:E,unsupportedGatewayMethods:B,diagnostics:c}}async function l(a,b,c){for(let d of b)try{return{method:d,payload:await a(d)}}catch(a){c.push(`${d}: ${v(a)}`)}return null}function m(a){var b;return Array.from(new Set([...u(s(a,"methods")),...u(s(s(a,"rpc"),"methods")),...u(s(s(a,"features"),"methods")),...u(s(a,"supportedMethods")),...Array.isArray(b=s(a,"methods"))?b.map(a=>t(s(a,"name"))??t(s(a,"method"))).filter(a=>!!a):[]])).sort()}function n(a){return Array.from(new Set([...u(s(a,"events")),...u(s(s(a,"features"),"events"))])).sort()}function o(a){let b=s(a,"protocolVersion")??s(a,"protocol")??s(s(a,"gateway"),"protocolVersion");return"number"==typeof b&&Number.isFinite(b)?String(b):t(b)}function p(a){return t(s(a,"authMode"))??t(s(s(a,"auth"),"mode"))??t(s(s(a,"security"),"authMode"))??t(s(s(a,"snapshot"),"authMode"))}function q(a){return t(s(a,"role"))??t(s(s(a,"auth"),"role"))??t(s(s(a,"security"),"role"))}function r(a){return Array.from(new Set([...u(s(a,"scopes")),...u(s(s(a,"auth"),"scopes")),...u(s(s(a,"security"),"scopes"))])).sort()}function s(a,b){return a&&"object"==typeof a?a[b]:void 0}function t(a){return"string"==typeof a&&a.trim()?a.trim():null}function u(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a&&a.trim().length>0).map(a=>a.trim()):[]}function v(a){return a instanceof Error?a.kind?`${a.kind}: ${a.message}`:a.message:String(a||"OpenClaw Gateway request failed.")}},25793:(a,b,c)=>{c.d(b,{Jw:()=>s,SI:()=>o,V9:()=>l,WU:()=>n,pY:()=>m,qv:()=>p,xZ:()=>q});var d=c(51455),e=c(48161),f=c.n(e),g=c(76760),h=c.n(g),i=c(27091),j=c(14414),k=c(96972);async function l(a,b,c,e){let f=e(a,b,c);if(!a.key?.endsWith(":main")||!a.agentId||!a.sessionId)return[f];let g=c.find(b=>b.id===a.agentId),h=b.find(b=>b.id===a.agentId),j=await n(a.agentId,a.sessionId,g?.workspace||h?.workspace);if(!j)return[f];try{let a=await (0,d.readFile)(j,"utf8"),b=o(a,f,g?.workspace||h?.workspace).filter(a=>!a.prompt.toLowerCase().startsWith("read heartbeat.md if it exists")),c=q(b);if(0===b.length)return[f];return b.slice(-6).reverse().map(a=>(function(a,b,c=b.toolNames){var d,e;let f,g=Date.parse(b.updatedAt),h=(d=b.prompt,e=a.agentId,(f=d.trim())&&(0,i.$m)(f,38)||`${B(e)} run`),j=b.warningSummary?z(`Completed with fallback: ${b.warningSummary}`,90):b.finalText?z(b.finalText,90):"stalled"===b.status?"Waiting for output":"Main session run";return{id:`runtime:${a.sessionId}:${b.id}`,source:"turn",key:`${a.key}:turn:${b.id}`,title:h,subtitle:j,status:b.status,updatedAt:Number.isNaN(g)?a.updatedAt:g,ageMs:Number.isNaN(g)?a.ageMs:Math.max(Date.now()-g,0),agentId:a.agentId,workspaceId:a.workspaceId,modelId:a.modelId,sessionId:a.sessionId,taskId:a.taskId,runId:b.runId||b.id,toolNames:c,tokenUsage:b.tokenUsage,metadata:{...a.metadata,turnId:b.id,turnPrompt:b.prompt,stage:"main.turn",historical:"running"!==b.status,createdFiles:b.createdFiles,warnings:b.warnings,warningSummary:b.warningSummary}}})(f,a,c))}catch{return[f]}}async function m(a,b){if("fallback"===b.mode){var c;let b;return c=a,b=new Date().toISOString(),{runtimeId:c.id,sessionId:c.sessionId,taskId:c.taskId,status:"available",finalText:"Fallback mode is active. Connect a real OpenClaw gateway to inspect live runtime output.",finalTimestamp:b,stopReason:"fallback",errorMessage:null,items:[{id:`${c.id}:fallback`,role:"assistant",timestamp:b,text:"Fallback mode is active. Connect a real OpenClaw gateway to inspect live runtime output.",stopReason:"fallback",isError:!1}],createdFiles:[],warnings:[],warningSummary:null}}if(!a.sessionId||!a.agentId)return r(a,t(a,"This runtime does not expose a session transcript yet."));let e=b.agents.find(b=>b.id===a.agentId),f=await n(a.agentId,a.sessionId,e?.workspacePath);if(!f)return r(a,t(a,"No transcript file was found for this runtime session."));try{let b=await (0,d.readFile)(f,"utf8");return s(a,b,e?.workspacePath)}catch(b){return{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:"error",finalText:null,finalTimestamp:null,stopReason:null,errorMessage:b instanceof Error?b.message:"Unable to read runtime transcript.",items:[],createdFiles:[],warnings:[],warningSummary:null}}}async function n(a,b,c){for(let e of[h().join(f().homedir(),".openclaw","agents",a,"sessions",`${b}.jsonl`),c?h().join(c,".openclaw","agents",a,"sessions",`${b}.jsonl`):null].filter(Boolean))try{return await (0,d.access)(e),e}catch{continue}let e=await x(a,b,c);return e||null}function o(a,b,c){let d=a.split(/\r?\n/).filter(Boolean),e=[],f=c,g=null;for(let a of d)try{var h,i,j;let c=JSON.parse(a);if("session"===c.type&&"string"==typeof c.cwd&&c.cwd.trim()){f=c.cwd.trim();continue}if("custom"===c.type&&"openclaw:prompt-error"===c.customType&&g){g.runId||=c.data?.runId,g.updatedAt=c.timestamp||g.updatedAt,g.errorMessage||=c.data?.error||null;continue}if("message"!==c.type||!c.message?.role)continue;let d=c.message.role;if("assistant"!==d&&"toolResult"!==d&&"user"!==d)continue;let k=function(a=[]){return"string"==typeof a?a.trim():Array.isArray(a)?a.flatMap(a=>{if(("text"===a.type||"output_text"===a.type)&&a.text)return[a.text];if("toolResult"===a.type){var b;let c=(b=a.content,("string"==typeof b?b.trim()||null:Array.isArray(b)&&b.flatMap(a=>"string"==typeof a?[a]:a&&"object"==typeof a?"text"in a&&"string"==typeof a.text?[a.text]:"content"in a&&"string"==typeof a.content?[a.content]:[]:[]).join("\n\n").trim()||null)||a.text);return c?[c]:[]}return[]}).join("\n\n").trim():""}(c.message.content),l=c.message.errorMessage??null,m=function(a,b,c,d){if("toolResult"!==a||!0===b.isError||d)return null;let e=b.details?.exitCode;if("number"!=typeof e||0===e)return null;let f=(b.details?.aggregated||c).split(/\r?\n/).map(a=>a.trim()).filter(Boolean).filter(a=>!/^\(Command exited with code \d+\)$/i.test(a));return z((f.find(a=>!a.startsWith("[WARNING]"))||f.find(a=>a.startsWith("[WARNING]"))||`${b.toolName||"tool"} exited with code ${e}`).replace(/^\[WARNING\]\s*/i,"").trim()||`${b.toolName||"tool"} exited with code ${e}`,160)}(d,c.message,k,l),n="assistant"===d?function(a){if(!Array.isArray(a))return null;let b=a.find(a=>"toolCall"===a.type&&"string"==typeof a.name);return b&&"string"==typeof b.name&&b.name.trim()?{id:"string"==typeof b.id?b.id:null,name:b.name.trim(),arguments:b.arguments}:null}(c.message.content):null,o="assistant"===d&&n&&!k?"toolCall":d,p=k||l||(n?`Called ${n.name}`:"");if(!p&&!("assistant"===d&&(h=c.message.content,Array.isArray(h)&&h.some(a=>"toolCall"===a.type))||"toolResult"===d&&"string"==typeof c.message.toolName&&c.message.toolName.trim()))continue;let q={id:c.id||`${d}-${Date.now()}`,role:o,timestamp:function(a){let b=a.message?.timestamp;if("number"==typeof b&&Number.isFinite(b))return new Date(b).toISOString();if("string"==typeof b&&b.trim()){let a=Date.parse(b);if(!Number.isNaN(a))return new Date(a).toISOString()}return a.timestamp||null}(c)||new Date().toISOString(),text:p,toolName:"toolCall"===o?n?.name:"toolResult"===d?c.message.toolName?.trim()||A(k):void 0,stopReason:"assistant"===d?c.message.stopReason??null:null,errorMessage:l,isWarning:!!m,isError:!!l||!0===c.message.isError||"error"===c.message.stopReason||"aborted"===c.message.stopReason};if("user"===d){g&&e.push(v(g)),g={id:c.id||`turn-${e.length}`,prompt:q.text.replace(/^Sender \(untrusted metadata\):[\s\S]*?```[\s\S]*?```\s*/i,"").replace(/^\[[^\]]+\]\s*/i,"").replace(/\s+/g," ").trim(),sessionId:b.sessionId,runId:void 0,timestamp:q.timestamp,updatedAt:q.timestamp,items:[q],tokenUsage:void 0,errorMessage:null,createdFiles:[],warnings:[],toolNames:[],pendingCreatedFiles:new Map,pendingToolNames:new Set};continue}if(!g)continue;if("assistant"===d&&Array.isArray(c.message.content)){for(let a of c.message.content)if("toolCall"===a.type)for(let b of("string"==typeof a.name&&a.name.trim()&&g.pendingToolNames.add(a.name.trim()),function(a,b){if("write"===a.type||"write"===a.name){let c="string"==typeof a.arguments?.path?a.arguments.path.trim():"",d=c?w(c,b):null;return d?[d]:[]}return"apply_patch"===a.name&&Array.isArray(a.arguments?.changes)?a.arguments.changes.flatMap(a=>{if(!a||"object"!=typeof a)return[];let c="path"in a&&"string"==typeof a.path?a.path.trim():"",d=c?w(c,b):null;return d?[d]:[]}):[]}(a,f)))g.pendingCreatedFiles.set(a.id||`${c.id||"toolCall"}:${b.path}`,b)}if(g.items.push(q),g.updatedAt=q.timestamp,g.errorMessage||=l,m&&!g.warnings.includes(m)&&g.warnings.push(m),"toolResult"===d&&!0!==c.message.isError&&("write"===c.message.toolName||"apply_patch"===c.message.toolName)&&"string"==typeof c.message.toolCallId){let a=g.pendingCreatedFiles.get(c.message.toolCallId);a&&(g.createdFiles.push(a),g.pendingCreatedFiles.delete(c.message.toolCallId))}if("toolResult"===d){let a=c.message.toolName?.trim()||A(q.text)?.trim()||null;a&&g.pendingToolNames.add(a)}if("assistant"===d&&c.message.usage){let a=c.message.usage;g.tokenUsage=(i=g.tokenUsage,j={input:a.input??a.prompt_tokens??0,output:a.output??a.completion_tokens??0,total:a.totalTokens??a.total_tokens??(a.input??a.prompt_tokens??0)+(a.output??a.completion_tokens??0),cacheRead:a.cacheRead??0},i?j.total>i.total?j:i:j)}}catch{continue}return g&&e.push(v(g)),e}function p(a,b){let c="string"==typeof a.metadata.dispatchSubmittedAt?Date.parse(a.metadata.dispatchSubmittedAt):NaN;return Number.isNaN(c)?b:b.filter(a=>{let b=Date.parse(a.updatedAt||a.timestamp);return!Number.isNaN(b)&&b>=c-1500})}function q(a){return y(a.flatMap(a=>a.toolNames))}function r(a,b){return{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:"missing",finalText:null,finalTimestamp:null,stopReason:null,errorMessage:b,items:[],createdFiles:[],warnings:[],warningSummary:null}}function s(a,b,c){let d=p(a,o(b,a,c));if("turn"===a.source){let b="string"==typeof a.metadata.turnId?a.metadata.turnId:null,c=b?d.find(a=>a.id===b):function(a,b){let c="string"==typeof a.metadata.mission?a.metadata.mission:null;if(!c)return null;let d=b.filter(a=>(0,j.Dm)(a.prompt,c));if(0===d.length)return null;let e=a.updatedAt??0;return d.sort((a,b)=>{let c=Date.parse(a.updatedAt),d=Date.parse(b.updatedAt);return Math.abs((Number.isNaN(c)?0:c)-e)-Math.abs((Number.isNaN(d)?0:d)-e)})[0]}(a,d);if(c)return u(a,c)}let e=d.at(-1);return e?u(a,e):{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:"missing",finalText:null,finalTimestamp:null,stopReason:null,errorMessage:t(a,"No transcript entries were found for this runtime."),items:[],createdFiles:[],warnings:[],warningSummary:null}}function t(a,b){let c="string"==typeof a.metadata.dispatchStatus?a.metadata.dispatchStatus:null,d="string"==typeof a.metadata.dispatchId?a.metadata.dispatchId:null,e="string"==typeof a.metadata.error&&a.metadata.error.trim()?(0,k.bS)(a.metadata.error.trim()):null;return e||(c||d?"stalled"===c||"stalled"===a.status?"Mission dispatch stalled before AgentOS captured transcript output. Check Gateway diagnostics, model readiness, and the dispatch runner details.":"completed"===c||"completed"===a.status?"Mission completed, but AgentOS did not recover a transcript or final output yet. Refresh the snapshot and inspect the OpenClaw session diagnostics if this remains empty.":"Mission dispatch is active, but no transcript output has been captured yet. Wait for the first OpenClaw session update or inspect Gateway diagnostics if it stays empty.":b)}function u(a,b){return{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:b.items.length>0?"available":"missing",finalText:b.finalText,finalTimestamp:b.finalTimestamp,stopReason:b.stopReason,errorMessage:b.errorMessage,items:b.items.slice(-12),createdFiles:b.createdFiles,warnings:b.warnings,warningSummary:b.warningSummary,tokenUsage:b.tokenUsage}}function v(a){let{pendingCreatedFiles:b,pendingToolNames:c,...d}=a,e=[...a.items].reverse().find(a=>"assistant"===a.role&&(a.text.trim().length>0||a.errorMessage)),f=a.items.at(-1),g=e?.stopReason??null,h=!!a.errorMessage||e?.isError===!0||"error"===g||"aborted"===g,i=y(a.warnings),j=h?"stalled":f?.role==="assistant"&&f.stopReason&&"toolUse"!==f.stopReason?"completed":"running";return{...d,status:j,finalText:e?.text??null,finalTimestamp:e?.timestamp??null,stopReason:g,errorMessage:a.errorMessage||e?.errorMessage||null,createdFiles: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}(a.createdFiles),warnings:i,warningSummary:i[0]??null,toolNames:y([...a.pendingToolNames])}}function w(a,b){let c=a.trim();if(!c)return null;let d=h().isAbsolute(c)?h().normalize(c):b?h().resolve(b,c):null;if(!d)return null;let e=b&&d.startsWith(`${h().resolve(b)}${h().sep}`)?h().relative(h().resolve(b),d)||h().basename(d):d;return{path:d,displayPath:e}}async function x(a,b,c){let e=`agent:${a}:explicit:${b}`;for(let g of[h().join(f().homedir(),".openclaw","agents",a,"sessions","sessions.json"),c?h().join(c,".openclaw","agents",a,"sessions","sessions.json"):null].filter(Boolean))try{let a=await (0,d.readFile)(g,"utf8"),c=JSON.parse(a);for(let[a,f]of Object.entries(c))if(f&&(f.sessionId===b||a===e)&&"string"==typeof f.sessionFile)return await (0,d.access)(f.sessionFile),f.sessionFile}catch{continue}return null}function y(a){return Array.from(new Set(a))}function z(a,b){let c=a.replace(/\s+/g," ").trim();return c.length<=b?c:`${c.slice(0,Math.max(b-1,1)).trimEnd()}…`}function A(a){let b=a.match(/"tool(Name)?":\s*"([^"]+)"/i);return b?.[2]}function B(a){return a?a.split(/[-_]/g).filter(Boolean).map(a=>a[0].toUpperCase()+a.slice(1)).join(" "):"OpenClaw"}},27091:(a,b,c)=>{function d(a){return a.name?.trim()||a.identityName?.trim()||"OpenClaw"}c.d(b,{$m:()=>g,CK:()=>d,ho:()=>f});let e=[/^Task output routing:/i,/^Agent operating policy:/i];function f(a){let b=a.replace(/\r\n/g,"\n").trim();if(!b)return"";let c=[];for(let a of b.split("\n")){let b=a.trim();if(e.some(a=>a.test(b)))break;c.push(a)}return c.join(" ").replace(/\s+/g," ").trim()}function g(a,b=64){if(!a)return"";let c=f(a);return c?c.length<=b?c:`${c.slice(0,Math.max(b-1,1)).trimEnd()}…`:""}},28182:(a,b,c)=>{c.d(b,{IJ:()=>f,T$:()=>o,Y8:()=>l,bE:()=>g,qA:()=>m,vC:()=>n});var d=c(77598),e=c(27091);function f(a,b){let c=a.filter(a=>!function(a){var b,c;let d="string"==typeof a.metadata.origin?a.metadata.origin:null;if("mission-dispatch"===d)return!1;if("agent-chat"===d)return!0;if("string"==typeof a.metadata.dispatchId&&a.metadata.dispatchId.trim())return!1;let f=h(a)||("string"==typeof a.metadata.turnPrompt?a.metadata.turnPrompt:null);return!!("string"==typeof f&&(b=f,/You are chatting (?:directly )?with the operator inside AgentOS/i.test(b)||/Do not create tasks or mention task cards/i.test(b)||/Messages stay in this drawer and are stored locally in your browser/i.test(b)))||(c=a,!(c.taskId?.trim()||c.runId?.trim()||function(a){if("string"!=typeof a.metadata.mission)return null;let b=(0,e.ho)(a.metadata.mission);return b.length>0?b:null}(c)||"string"==typeof c.metadata.taskId&&c.metadata.taskId.trim()||"string"==typeof c.metadata.runId&&c.metadata.runId.trim()||"string"==typeof c.metadata.bootstrapStage&&c.metadata.bootstrapStage.trim()||"string"==typeof c.metadata.dispatchStatus&&c.metadata.dispatchStatus.trim())&&!!("string"==typeof a.metadata.chatType&&"direct"===a.metadata.chatType||"string"==typeof a.metadata.kind&&"direct"===a.metadata.kind||function(a){if("session"!==a.source)return!1;let b=a.key.trim(),c=a.title.trim().toLowerCase(),d=a.subtitle.trim().toLowerCase();return/:main$/.test(b)||/:explicit:[^:]+$/.test(b)||"agent session"===c||"main session"===d||"direct session"===d}(a)))}(a)),d=new Map,f=new Map(b.map(a=>{var b;return[a.id,(b=a).name.trim()||b.id]})),i=function(a){let b=new Map;for(let c of a){let a=c.sessionId?.trim(),d="string"==typeof c.metadata.dispatchId?c.metadata.dispatchId.trim():"",e="string"==typeof c.metadata.dispatchSubmittedAt?Date.parse(c.metadata.dispatchSubmittedAt):NaN;if(!a||!d)continue;let f=`${c.agentId??"unknown"}:${a}`,g=b.get(f)??[];g.some(a=>a.dispatchId===d)||(g.push({dispatchId:d,submittedAt:Number.isNaN(e)?null:e}),g.sort((a,b)=>(a.submittedAt??-1/0)-(b.submittedAt??-1/0)),b.set(f,g))}return b}(c);for(let a of c){let b=function(a,b){let c=a.taskId?.trim(),d="string"==typeof a.metadata.dispatchId?a.metadata.dispatchId.trim():"",e=h(a),f=a.sessionId?.trim(),g=f?b.get(`${a.agentId??"unknown"}:${f}`)??[]:[],i=a.updatedAt??0,j=g.filter(a=>null===a.submittedAt||i>=a.submittedAt-1500).sort((a,b)=>(b.submittedAt??-1/0)-(a.submittedAt??-1/0))[0]?.dispatchId??"";return d?`dispatch:${d}`:j?`dispatch:${j}`:c?`task:${c}`:e?`mission:${a.agentId??"unknown"}:${n(e)}`:f?`session:${f}`:`runtime:${a.id}`}(a,i),c=d.get(b)??[];c.push(a),d.set(b,c)}return Array.from(d.entries()).map(([a,b])=>g(a,b,f)).sort((a,b)=>(b.updatedAt??0)-(a.updatedAt??0))}function g(a,b,c){var d,f,g;let r,s=[...b].sort(q),t=function(a){let b=a.filter(a=>"turn"===a.source||"string"==typeof a.metadata.turnId);if(b.length>0)return b;let c=a.filter(a=>"string"==typeof a.metadata.dispatchId||"string"==typeof a.metadata.bootstrapStage);return c.length>0?c:a}(s),u=[...t].sort((a,b)=>i(b)-i(a))[0]??t[0]??s[0],v=h(u)||s.map(a=>h(a)).find(Boolean)||null,w=function(a){for(let b of a){let a="string"==typeof b.metadata.routedMission?b.metadata.routedMission.trim():"";if(a)return a}return null}(s),x=function(a){let b=[...a.filter(a=>{var b;return(!!("string"==typeof(b=a).metadata.dispatchId&&b.metadata.dispatchId.trim())||!!h(b))&&!k(a)&&("completed"===a.status||"stalled"===a.status||"cancelled"===a.status)}),...a.filter(a=>"string"==typeof a.metadata.turnId),...a.filter(a=>!0===a.metadata.recoveredFromObservation),...a.filter(a=>!k(a)&&("completed"===a.status||"stalled"===a.status||"cancelled"===a.status)),...a.filter(a=>!k(a))],c=new Set;for(let a of b){if(c.has(a.id))continue;c.add(a.id);let b=a.subtitle?.trim();if(b&&function(a){let b=a.replace(/\s+/g," ").trim().toLowerCase();return!!b&&"sessions.changed"!==b&&"session.message"!==b}(b))return b}return null}(s),y=x||t.map(a=>a.subtitle?.trim()).find(a=>!!a)||s.map(a=>a.subtitle?.trim()).find(a=>!!a)||"Awaiting OpenClaw updates.",z=o(s.flatMap(a=>l(a)).concat(s.flatMap(a=>(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("/"))&&(b.split("/").pop()||"").includes(".")}(b)&&c.push({path:b,displayPath:b})}return o(c)})(a.subtitle)))),A=p(s.flatMap(a=>m(a))),B=function(a){let b=(function(a){let b=new Set,c=[];for(let d of a){if(!d.tokenUsage)continue;let a=function(a){let b="string"==typeof a.metadata.dispatchId?a.metadata.dispatchId.trim():"",c=a.tokenUsage??{input:0,output:0,total:0,cacheRead:0};return[b||a.runId||a.sessionId||a.id,b?"":a.sessionId??"",c.input,c.output,c.total,c.cacheRead??0].join(":")}(d);b.has(a)||(b.add(a),c.push(d))}return c})(a).filter(a=>a.tokenUsage);if(0!==b.length)return b.reduce((a,b)=>({input:a.input+(b.tokenUsage?.input??0),output:a.output+(b.tokenUsage?.output??0),total:a.total+(b.tokenUsage?.total??0),cacheRead:(a.cacheRead??0)+(b.tokenUsage?.cacheRead??0)}),{input:0,output:0,total:0,cacheRead:0})}(s),C=p(s.flatMap(a=>a.agentId?[a.agentId]:[])),D=p(s.flatMap(a=>a.sessionId?[a.sessionId]:[])),E=p(s.flatMap(a=>a.runId?[a.runId]:[])),F=s.filter(a=>"string"==typeof a.metadata.turnId||!0===a.metadata.recoveredFromObservation).length,G=(r=s.map(a=>"string"==typeof a.metadata.dispatchStatus?a.metadata.dispatchStatus.trim():"").filter(Boolean)).includes("cancelled")?"cancelled":r.includes("stalled")?"stalled":r.includes("completed")?"completed":r.includes("running")?"running":r.includes("queued")?"queued":null,H=u?.agentId||C[0],I=H?c.get(H)??null:null,J=s[0]??null;return{id:(d=a,`task:${n(d)}`),key:a,title:(0,e.$m)(v||u?.title||"Untitled task",52)||"Untitled task",mission:v,subtitle:y,status:function(a,b=null){return b&&j(b)?b:a.some(a=>"running"===a.status)?"running":a.some(a=>"cancelled"===a.status)?"cancelled":a.some(a=>"queued"===a.status)?"queued":a.some(a=>"stalled"===a.status)?"stalled":a.some(a=>"idle"===a.status)?"idle":a[0]?.status??"completed"}(s,G),updatedAt:J?.updatedAt??null,ageMs:J?.ageMs??null,workspaceId:u?.workspaceId,primaryAgentId:H,primaryAgentName:I,primaryRuntimeId:u?.id,dispatchId:function(a){for(let b of a)if("string"==typeof b.metadata.dispatchId&&b.metadata.dispatchId.trim())return b.metadata.dispatchId.trim()}(s),runtimeIds:s.map(a=>a.id),agentIds:C,sessionIds:D,runIds:E,runtimeCount:s.length,updateCount:t.filter(a=>"turn"===a.source).length,liveRunCount:(f=s,(g=G)&&j(g)?0:f.filter(a=>"running"===a.status||"queued"===a.status).length),artifactCount:z.length,warningCount:A.length,tokenUsage:B,metadata:{mission:v,routedMission:w,resultPreview:x,turnCount:F,sessionCount:D.length,primaryRuntimeSource:u?.source??null,bootstrapStage:"string"==typeof u?.metadata.bootstrapStage?u.metadata.bootstrapStage:null,dispatchStatus:G??("string"==typeof u?.metadata.dispatchStatus?u.metadata.dispatchStatus:null),dispatchSubmittedAt:"string"==typeof u?.metadata.dispatchSubmittedAt?u.metadata.dispatchSubmittedAt:null,dispatchRunnerStartedAt:"string"==typeof u?.metadata.dispatchRunnerStartedAt?u.metadata.dispatchRunnerStartedAt:null,dispatchHeartbeatAt:"string"==typeof u?.metadata.dispatchHeartbeatAt?u.metadata.dispatchHeartbeatAt:null,dispatchObservedAt:"string"==typeof u?.metadata.dispatchObservedAt?u.metadata.dispatchObservedAt:null,outputDir:"string"==typeof u?.metadata.outputDir?u.metadata.outputDir:null,outputDirRelative:"string"==typeof u?.metadata.outputDirRelative?u.metadata.outputDirRelative:null}}}function h(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,e.ho)(b);return c.length>0?c:null}function i(a){return 8*!!h(a)+6*("string"==typeof a.metadata.dispatchId)+("turn"===a.source?6:"session"===a.source?4:2)+("running"===a.status?3:"queued"===a.status?2:"cancelled"===a.status||"stalled"===a.status?3:"idle"===a.status?2:1)}function j(a){return"completed"===a||"stalled"===a||"cancelled"===a}function k(a){let b="string"==typeof a.metadata.bootstrapStage?a.metadata.bootstrapStage:null;return"accepted"===b||"waiting-for-heartbeat"===b||"waiting-for-runtime"===b||"runtime-observed"===b}function l(a){let b=a.metadata.createdFiles;return Array.isArray(b)?b.flatMap(a=>{if(!a||"object"!=typeof a)return[];let b="path"in a&&"string"==typeof a.path?a.path:null,c="displayPath"in a&&"string"==typeof a.displayPath?a.displayPath:b;return b&&c?[{path:b,displayPath:c}]:[]}):[]}function m(a){let b=a.metadata.warnings;return Array.isArray(b)?b.filter(a=>"string"==typeof a&&a.trim().length>0):[]}function n(a){return(0,d.createHash)("sha1").update(a).digest("hex").slice(0,12)}function o(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}function p(a){return Array.from(new Set(a.map(a=>(function(a){if("string"!=typeof a)return null;let b=a.trim();return b.length>0?b:null})(a)).filter(a=>!!a)))}function q(a,b){return(b.updatedAt??0)-(a.updatedAt??0)}},35456:(a,b,c)=>{c.d(b,{Az:()=>s,FU:()=>m,In:()=>x,SK:()=>u,Yt:()=>r,Zm:()=>l,bC:()=>w,fj:()=>t,go:()=>v,qB:()=>n,tl:()=>p,wL:()=>o,wi:()=>q});var d=c(51455),e=c(48161),f=c.n(e),g=c(76760),h=c.n(g),i=c(49922);let j=h().join(process.cwd(),".mission-control"),k=h().join(j,"settings.json");function l(a){let b,c=a?.trim();if(!c)return null;let d=/^[a-z][a-z0-9+.-]*:\/\//i.test(c)?c:`ws://${c}`;try{b=new URL(d)}catch{throw Error("Gateway address must be a valid WebSocket URL.")}if("ws:"!==b.protocol&&"wss:"!==b.protocol)throw Error("Gateway address must start with ws:// or wss://.");if(!b.hostname)throw Error("Gateway address must include a hostname.");return b.toString().replace(/\/$/,"")}function m(a){let b=a?.trim();if(!b)return null;if("~"!==b&&!b.startsWith("~/")&&!h().isAbsolute(b))throw Error("Workspace root must be an absolute path or start with ~/.");return n(b)}function n(a){var b;let c=a?.trim();if(!c)return;let d="~"===(b=c)?f().homedir():b.startsWith("~/")?h().join(f().homedir(),b.slice(2)):b,e=h().normalize(d);return e.length>1?e.replace(/[\\/]+$/,""):e}async function o(){return n((await p()).workspaceRoot)??null}async function p(){let a;try{a=await (0,d.readFile)(k,"utf8")}catch(a){if("ENOENT"===("object"==typeof a&&a&&"code"in a?a.code:void 0))return{};throw a}try{let b=JSON.parse(a),c="string"==typeof b.workspaceRoot?n(b.workspaceRoot):void 0,d=function(a){if(!a||"object"!=typeof a)return;let b=Object.entries("smokeTests"in a&&a.smokeTests&&"object"==typeof a.smokeTests?a.smokeTests:{}).reduce((a,[b,c])=>{if(!c||"object"!=typeof c)return a;let d="string"==typeof c.checkedAt?c.checkedAt:null,e="passed"===c.status||"failed"===c.status?c.status:null;return d&&e&&(a[b]={status:e,checkedAt:d,..."string"==typeof c.runId?{runId:c.runId}:{},..."string"==typeof c.summary?{summary:c.summary}:{},..."string"==typeof c.error?{error:z(c.error)??c.error}:{}}),a},{});return Object.keys(b).length>0?{smokeTests:b}:void 0}("object"==typeof b.runtimePreflight&&b.runtimePreflight?b.runtimePreflight:void 0);return{...c?{workspaceRoot:c}:{},...d?{runtimePreflight:d}:{}}}catch{return{}}}async function q(a){await (0,d.mkdir)(j,{recursive:!0}),await (0,d.writeFile)(k,`${JSON.stringify(a,null,2)}
126
- `,"utf8")}function r(a,b){return a.runtimePreflight?.smokeTests?.[b]??null}function s(a,b){return!b||!a||A(b)?{status:"not-run",checkedAt:null,agentId:null,runId:null,summary:null,error:null}:{status:b.status,checkedAt:b.checkedAt,agentId:a,runId:b.runId??null,summary:b.summary??null,error:z(b.error??null)}}function t(a){let b=y(a)[0];return s(b?.[0]??null,b?.[1]??null)}function u(a){if(!a||"passed"!==a.status)return!1;let b=Date.parse(a.checkedAt);return Number.isFinite(b)&&Date.now()-b<=432e5}async function v(a){let b=await p(),c={...b.runtimePreflight?.smokeTests??{}};a.agentId&&"not-run"!==a.status&&a.checkedAt&&(c[a.agentId]={status:a.status,checkedAt:a.checkedAt,...a.runId?{runId:a.runId}:{},...a.summary?{summary:a.summary}:{},...a.error?{error:a.error}:{}},await q({...b.workspaceRoot?{workspaceRoot:b.workspaceRoot}:{},runtimePreflight:{smokeTests:c}}))}async function w(){let a=await p(),b=a.runtimePreflight?.smokeTests??{},c=Object.fromEntries(Object.entries(b).filter(([,a])=>!("failed"===a.status&&(0,i.YG)(a.error??""))));return Object.keys(c).length!==Object.keys(b).length&&(await q({...a.workspaceRoot?{workspaceRoot:a.workspaceRoot}:{},...Object.keys(c).length>0?{runtimePreflight:{smokeTests:c}}:{}}),!0)}function x(a){let b=y(a).find(([,a])=>"failed"===a.status&&(0,i.YG)(a.error??"")&&!A(a));return b?.[1]??null}function y(a){return Object.entries(a.runtimePreflight?.smokeTests??{}).sort((a,b)=>{let c=Date.parse(a[1].checkedAt);return Date.parse(b[1].checkedAt)-c})}function z(a){return a?(0,i.YG)(a)?(0,i.ox)((0,i.MF)("openclaw")):a:null}function A(a){if("failed"!==a.status||!(0,i.YG)(a.error??""))return!1;let b=Date.parse(a.checkedAt);return Number.isFinite(b)&&Date.now()-b>3e5}},37110:(a,b,c)=>{c.d(b,{DO:()=>K,Ff:()=>L,GG:()=>P,O1:()=>M,VW:()=>O,Yp:()=>z,_z:()=>t,e4:()=>x,gb:()=>v,ji:()=>w,lm:()=>u,vH:()=>y});var d=c(31421),e=c(73024),f=c(51455),g=c(76760),h=c.n(g),i=c(57975),j=c(77598),k=c(88366),l=c(14414),m=c(80410),n=c(69699),o=c(25793);let p=h().join(process.cwd(),".mission-control"),q=h().join(p,"dispatches"),r=h().join(process.cwd(),"scripts","openclaw-mission-dispatch-runner.mjs"),s=(0,i.promisify)(d.execFile);function t(a){let b=new Date().toISOString(),c=`dispatch-${(0,j.randomUUID)()}`;return{id:c,status:"queued",agentId:a.agentId,sessionId:(0,j.randomUUID)(),mission:a.mission,routedMission:a.routedMission,thinking:a.thinking,workspaceId:a.workspaceId,workspacePath:a.workspacePath,submittedAt:b,updatedAt:b,outputDir:a.outputDir,outputDirRelative:a.outputDirRelative,notesDirRelative:a.notesDirRelative,runner:{pid:null,childPid:null,startedAt:null,finishedAt:null,lastHeartbeatAt:null,logPath:R(c)},observation:{runtimeId:null,observedAt:null},result:null,error:null}}async function u(a){let b=Q(a.id),c=`${b}.${process.pid}.tmp`;await (0,f.mkdir)(h().dirname(b),{recursive:!0}),await (0,f.writeFile)(c,`${JSON.stringify(a,null,2)}
135
+ `,"utf8")}async function j(){return new Map((await l()).sessions.map(a=>[o(a.agentId,a.sessionId),a]))}function k(a,b){return 0===a.length||0===b.size?a:a.map(a=>{let c=a.agentId&&a.sessionId?b.get(o(a.agentId,a.sessionId)):null;return c?{...a,kind:"direct",origin:c.origin}:a})}async function l(){try{let a=await (0,d.readFile)(h,"utf8"),b=JSON.parse(a),c=Array.isArray(b?.sessions)?b.sessions:[],e=c.length>0?c.map(m).filter(a=>!!a):[];return{version:1,sessions:n(e)}}catch{return{version:1,sessions:[]}}}function m(a){if(!a||"object"!=typeof a)return null;let b="string"==typeof a.agentId?a.agentId.trim():"",c="string"==typeof a.sessionId?a.sessionId.trim():"",d="string"==typeof a.createdAt?a.createdAt:"",e="string"==typeof a.updatedAt?a.updatedAt:d;return!b||!c||Number.isNaN(Date.parse(d))?null:{agentId:b,sessionId:c,workspacePath:"string"==typeof a.workspacePath?a.workspacePath:void 0,createdAt:d,updatedAt:Number.isNaN(Date.parse(e))?d:e,origin:"agent-chat"}}function n(a){let b=Date.now()-12096e5,c=new Set,d=[];for(let e of[...a].sort((a,b)=>Date.parse(b.updatedAt)-Date.parse(a.updatedAt))){let a=Date.parse(e.updatedAt),f=o(e.agentId,e.sessionId);Number.isNaN(a)||a<b||c.has(f)||(c.add(f),d.push(e))}return d.slice(0,200)}function o(a,b){return`${a}:${b}`}},25303:(a,b,c)=>{c.d(b,{Bc:()=>i,Cs:()=>j,N3:()=>h});var d=c(39503),e=c(38798),f=c(65493);let g=null;async function h(a={}){if(!a.force&&g&&Date.now()-g.capturedAt<6e4)return g.value;let b=await k();return g={capturedAt:Date.now(),value:b},b}function i(){return g&&Date.now()-g.capturedAt<6e4?g.value:null}function j(){h().catch(()=>{})}async function k(){var a,b;let c=[],g=await (0,d.rw)().getStatus({timeoutMs:5e3}).catch(a=>(c.push(`status: ${v(a)}`),null)),h=t(g?.runtimeVersion)??t(g?.overview?.version)??t(g?.version),i=null,j=null,k=null,s=[],u=[],w=[],x="unavailable";if((0,e.JG)())x="disabled",c.push("Native Gateway WS is disabled by environment configuration.");else if(1)try{let a=await new e.gH({timeoutMs:2500}).probeNativeHandshake({timeoutMs:2500});x="gateway-handshake",i=o(a),j=p(a),k=q(a),s=r(a),u=m(a),w=n(a)}catch(a){c.push(`handshake: ${v(a)}`)}else{let a=await l(null,["rpc.discover","rpc.methods","system.capabilities","capabilities"],c),b=a?.payload??null;x=a?.method??"unavailable",i=o(b),j=p(b),k=q(b),s=r(b),u=m(b),w=n(b)}let y=new Set(u),z=new Set(w),A=(...a)=>0===y.size?"unknown":a.some(a=>y.has(a))?"supported":"unsupported",B=y.size>0?f.$o.filter(a=>!y.has(a)):[],C=Object.fromEntries(f.zS.map(a=>[a.id,((a,b,c=[],d=!0)=>{if((0,e.JG)())return{label:a,mode:"cli-fallback",methods:b,events:c,fallbackAllowed:d,reason:"Native Gateway WS is disabled by environment configuration.",preferredMethod:b[0]??null,supportedMethod:null,aliasMethods:b.slice(1),compatibility:"missing"};if(0===y.size&&0===z.size)return{label:a,mode:"unknown",methods:b,events:c,fallbackAllowed:d,reason:"Gateway did not advertise feature metadata; AgentOS will attempt Gateway first and fall back when needed.",preferredMethod:b[0]??null,supportedMethod:null,aliasMethods:b.slice(1),compatibility:"unknown"};let f=b.find(a=>y.has(a))??null,g=c.some(a=>z.has(a));return f||g?{label:a,mode:"gateway-native",methods:b,events:c,fallbackAllowed:d,reason:f&&f!==b[0]?`OpenClaw Gateway advertises compatibility alias ${f}.`:"OpenClaw Gateway advertises native support.",preferredMethod:b[0]??null,supportedMethod:f,aliasMethods:b.slice(1),compatibility:f&&f!==b[0]?"alias":"preferred"}:{label:a,mode:d?"degraded":"disabled",methods:b,events:c,fallbackAllowed:d,reason:d?"OpenClaw Gateway does not advertise native support; AgentOS will use compatibility fallback.":"OpenClaw Gateway does not advertise native support and no safe fallback is available.",preferredMethod:b[0]??null,supportedMethod:null,aliasMethods:b.slice(1),compatibility:"missing"}})(a.label,a.methods,a.events??[],a.fallbackAllowed??!0)])),D=(0,e.Lo)().map(a=>({...a,operationLabel:(0,f.Hi)(a.operation)})),E=D.map(a=>`${a.operationLabel} (${a.operation}): ${a.kind}: ${a.issue} Recovery: ${a.recovery}`),F=Object.entries(C).filter(([,a])=>"degraded"===a.mode||"cli-fallback"===a.mode).map(([a,b])=>`${a}: ${b.reason}`),G=Object.entries(C).filter(([,a])=>"alias"===a.compatibility&&a.supportedMethod).map(([a,b])=>`${a}: ${b.supportedMethod}`),H=function(a){if(!a)return"unknown";let b=Number(a);return Number.isFinite(b)?b>=e.aj.min&&b<=e.aj.max?"compatible":"unsupported":"unknown"}(i),I=new Date().toISOString(),J=function(a){if("disabled"===a.source)return{status:"unknown",checkedAt:a.checkedAt,source:a.source,refreshIntervalMs:6e4,expectedMethodCount:f.$o.length,advertisedMethodCount:0,missingMethodCount:0,missingMethods:[],missingOperations:[],reason:"Native Gateway WS is disabled by environment configuration, so AgentOS cannot compare advertised Gateway methods."};if(0===a.methodSet.size)return{status:"unknown",checkedAt:a.checkedAt,source:a.source,refreshIntervalMs:6e4,expectedMethodCount:f.$o.length,advertisedMethodCount:0,missingMethodCount:0,missingMethods:[],missingOperations:[],reason:"OpenClaw Gateway did not advertise method metadata; AgentOS will retry on the next capability refresh."};let b=Object.entries(a.operations).filter(([,a])=>"missing"===a.compatibility).map(([a])=>a),c=a.unsupportedGatewayMethods.length>0?"drift":"advertised";return{status:c,checkedAt:a.checkedAt,source:a.source,refreshIntervalMs:6e4,expectedMethodCount:f.$o.length,advertisedMethodCount:a.methodSet.size,missingMethodCount:a.unsupportedGatewayMethods.length,missingMethods:a.unsupportedGatewayMethods,missingOperations:b,reason:"advertised"===c?"OpenClaw Gateway advertised every AgentOS Gateway-first method candidate; payload contracts still depend on live RPC behavior.":"OpenClaw Gateway advertised method metadata, but one or more AgentOS Gateway-first candidates are missing."}}({checkedAt:I,source:x,methodSet:y,operations:C,unsupportedGatewayMethods:B});return{detectedAt:I,openClawVersion:h??null,gatewayProtocolVersion:i,requestedProtocolRange:e.aj,authMode:j,authRole:k,authScopes:s,supportedMethods:u,supportedEvents:w,configSchema:A("config.schema"),configSchemaLookup:A(...(0,f.P5)("configSchemaLookup")),configPatch:A(...(0,f.P5)("configPatch")),chatEvents:"supported"===A(...(0,f.P5)("missionDispatch"),"chat.history")||((0,f.jW)("missionStream").events??[]).some(a=>z.has(a))?"supported":0===y.size?"unknown":"unsupported",logsTail:A(...(0,f.P5)("logsTail")),cronRead:A(...(0,f.P5)("cronRead")),channels:A(...(0,f.P5)("channels")),skills:A(...(0,f.P5)("skills")),approvals:A(...(0,f.P5)("execApprovals"),"plugin.approval.list","plugin.approval.resolve"),updates:A(...(0,f.P5)("updates")),nativeMissionDispatch:A(...(0,f.P5)("missionDispatch")),nativeAgentLifecycle:A(...(0,f.P5)("agentCreate"),...(0,f.P5)("agentUpdate"),...(0,f.P5)("agentDelete")),eventBridge:"supported"===A(...(0,f.P5)("missionStream"),...(0,f.P5)("taskEvents"))||["chat","agent","session.message","session.tool","task","task.updated","task.completed","artifact","artifact.updated","exec.approval.requested","plugin.approval.requested"].some(a=>z.has(a))?"supported":0===y.size?"unknown":"unsupported",operations:C,compatibility:{protocol:{status:H,version:i,reason:(a=i,"compatible"===(b=H)?`Gateway protocol ${a} is within AgentOS' supported range ${e.aj.min}-${e.aj.max}.`:"unsupported"===b?`Gateway protocol ${a} is outside AgentOS' supported range ${e.aj.min}-${e.aj.max}.`:"Gateway protocol version was not advertised.")},methodContract:J,nativeOperationCount:Object.values(C).filter(a=>"gateway-native"===a.mode).length,degradedOperationCount:Object.values(C).filter(a=>"degraded"===a.mode||"cli-fallback"===a.mode).length,unknownOperationCount:Object.values(C).filter(a=>"unknown"===a.mode).length,aliasOperations:G,degradedOperations:Object.entries(C).filter(([,a])=>"degraded"===a.mode||"cli-fallback"===a.mode).map(([a])=>a)},degradedFeatures:F,fallbackDiagnostics:D,fallbackReasons:E,unsupportedGatewayMethods:B,diagnostics:c}}async function l(a,b,c){for(let d of b)try{return{method:d,payload:await a(d)}}catch(a){c.push(`${d}: ${v(a)}`)}return null}function m(a){var b;return Array.from(new Set([...u(s(a,"methods")),...u(s(s(a,"rpc"),"methods")),...u(s(s(a,"features"),"methods")),...u(s(a,"supportedMethods")),...Array.isArray(b=s(a,"methods"))?b.map(a=>t(s(a,"name"))??t(s(a,"method"))).filter(a=>!!a):[]])).sort()}function n(a){return Array.from(new Set([...u(s(a,"events")),...u(s(s(a,"features"),"events"))])).sort()}function o(a){let b=s(a,"protocolVersion")??s(a,"protocol")??s(s(a,"gateway"),"protocolVersion");return"number"==typeof b&&Number.isFinite(b)?String(b):t(b)}function p(a){return t(s(a,"authMode"))??t(s(s(a,"auth"),"mode"))??t(s(s(a,"security"),"authMode"))??t(s(s(a,"snapshot"),"authMode"))}function q(a){return t(s(a,"role"))??t(s(s(a,"auth"),"role"))??t(s(s(a,"security"),"role"))}function r(a){return Array.from(new Set([...u(s(a,"scopes")),...u(s(s(a,"auth"),"scopes")),...u(s(s(a,"security"),"scopes"))])).sort()}function s(a,b){return a&&"object"==typeof a?a[b]:void 0}function t(a){return"string"==typeof a&&a.trim()?a.trim():null}function u(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a&&a.trim().length>0).map(a=>a.trim()):[]}function v(a){return a instanceof Error?a.kind?`${a.kind}: ${a.message}`:a.message:String(a||"OpenClaw Gateway request failed.")}},25793:(a,b,c)=>{c.d(b,{Jw:()=>s,SI:()=>o,V9:()=>l,WU:()=>n,pY:()=>m,qv:()=>p,xZ:()=>q});var d=c(51455),e=c(48161),f=c.n(e),g=c(76760),h=c.n(g),i=c(27091),j=c(14414),k=c(96972);async function l(a,b,c,e){let f=e(a,b,c);if(!a.key?.endsWith(":main")||!a.agentId||!a.sessionId)return[f];let g=c.find(b=>b.id===a.agentId),h=b.find(b=>b.id===a.agentId),j=await n(a.agentId,a.sessionId,g?.workspace||h?.workspace);if(!j)return[f];try{let a=await (0,d.readFile)(j,"utf8"),b=o(a,f,g?.workspace||h?.workspace).filter(a=>!a.prompt.toLowerCase().startsWith("read heartbeat.md if it exists")),c=q(b);if(0===b.length)return[f];return b.slice(-6).reverse().map(a=>(function(a,b,c=b.toolNames){var d,e;let f,g=Date.parse(b.updatedAt),h=(d=b.prompt,e=a.agentId,(f=d.trim())&&(0,i.$m)(f,38)||`${B(e)} run`),j=b.warningSummary?z(`Completed with fallback: ${b.warningSummary}`,90):b.finalText?z(b.finalText,90):"stalled"===b.status?"Waiting for output":"Main session run";return{id:`runtime:${a.sessionId}:${b.id}`,source:"turn",key:`${a.key}:turn:${b.id}`,title:h,subtitle:j,status:b.status,updatedAt:Number.isNaN(g)?a.updatedAt:g,ageMs:Number.isNaN(g)?a.ageMs:Math.max(Date.now()-g,0),agentId:a.agentId,workspaceId:a.workspaceId,modelId:a.modelId,sessionId:a.sessionId,taskId:a.taskId,runId:b.runId||b.id,toolNames:c,tokenUsage:b.tokenUsage,metadata:{...a.metadata,turnId:b.id,turnPrompt:b.prompt,stage:"main.turn",historical:"running"!==b.status,createdFiles:b.createdFiles,warnings:b.warnings,warningSummary:b.warningSummary}}})(f,a,c))}catch{return[f]}}async function m(a,b){if("fallback"===b.mode){var c;let b;return c=a,b=new Date().toISOString(),{runtimeId:c.id,sessionId:c.sessionId,taskId:c.taskId,status:"available",finalText:"Fallback mode is active. Connect a real OpenClaw gateway to inspect live runtime output.",finalTimestamp:b,stopReason:"fallback",errorMessage:null,items:[{id:`${c.id}:fallback`,role:"assistant",timestamp:b,text:"Fallback mode is active. Connect a real OpenClaw gateway to inspect live runtime output.",stopReason:"fallback",isError:!1}],createdFiles:[],warnings:[],warningSummary:null}}if(!a.sessionId||!a.agentId)return r(a,t(a,"This runtime does not expose a session transcript yet."));let e=b.agents.find(b=>b.id===a.agentId),f=await n(a.agentId,a.sessionId,e?.workspacePath);if(!f)return r(a,t(a,"No transcript file was found for this runtime session."));try{let b=await (0,d.readFile)(f,"utf8");return s(a,b,e?.workspacePath)}catch(b){return{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:"error",finalText:null,finalTimestamp:null,stopReason:null,errorMessage:b instanceof Error?b.message:"Unable to read runtime transcript.",items:[],createdFiles:[],warnings:[],warningSummary:null}}}async function n(a,b,c){for(let e of[h().join(f().homedir(),".openclaw","agents",a,"sessions",`${b}.jsonl`),c?h().join(c,".openclaw","agents",a,"sessions",`${b}.jsonl`):null].filter(Boolean))try{return await (0,d.access)(e),e}catch{continue}let e=await x(a,b,c);return e||null}function o(a,b,c){let d=a.split(/\r?\n/).filter(Boolean),e=[],f=c,g=null;for(let a of d)try{var h,i,j;let c=JSON.parse(a);if("session"===c.type&&"string"==typeof c.cwd&&c.cwd.trim()){f=c.cwd.trim();continue}if("custom"===c.type&&"openclaw:prompt-error"===c.customType&&g){g.runId||=c.data?.runId,g.updatedAt=c.timestamp||g.updatedAt,g.errorMessage||=c.data?.error||null;continue}if("message"!==c.type||!c.message?.role)continue;let d=c.message.role;if("assistant"!==d&&"toolResult"!==d&&"user"!==d)continue;let k=function(a=[]){return"string"==typeof a?a.trim():Array.isArray(a)?a.flatMap(a=>{if(("text"===a.type||"output_text"===a.type)&&a.text)return[a.text];if("toolResult"===a.type){var b;let c=(b=a.content,("string"==typeof b?b.trim()||null:Array.isArray(b)&&b.flatMap(a=>"string"==typeof a?[a]:a&&"object"==typeof a?"text"in a&&"string"==typeof a.text?[a.text]:"content"in a&&"string"==typeof a.content?[a.content]:[]:[]).join("\n\n").trim()||null)||a.text);return c?[c]:[]}return[]}).join("\n\n").trim():""}(c.message.content),l=c.message.errorMessage??null,m=function(a,b,c,d){if("toolResult"!==a||!0===b.isError||d)return null;let e=b.details?.exitCode;if("number"!=typeof e||0===e)return null;let f=(b.details?.aggregated||c).split(/\r?\n/).map(a=>a.trim()).filter(Boolean).filter(a=>!/^\(Command exited with code \d+\)$/i.test(a));return z((f.find(a=>!a.startsWith("[WARNING]"))||f.find(a=>a.startsWith("[WARNING]"))||`${b.toolName||"tool"} exited with code ${e}`).replace(/^\[WARNING\]\s*/i,"").trim()||`${b.toolName||"tool"} exited with code ${e}`,160)}(d,c.message,k,l),n="assistant"===d?function(a){if(!Array.isArray(a))return null;let b=a.find(a=>"toolCall"===a.type&&"string"==typeof a.name);return b&&"string"==typeof b.name&&b.name.trim()?{id:"string"==typeof b.id?b.id:null,name:b.name.trim(),arguments:b.arguments}:null}(c.message.content):null,o="assistant"===d&&n&&!k?"toolCall":d,p=k||l||(n?`Called ${n.name}`:"");if(!p&&!("assistant"===d&&(h=c.message.content,Array.isArray(h)&&h.some(a=>"toolCall"===a.type))||"toolResult"===d&&"string"==typeof c.message.toolName&&c.message.toolName.trim()))continue;let q={id:c.id||`${d}-${Date.now()}`,role:o,timestamp:function(a){let b=a.message?.timestamp;if("number"==typeof b&&Number.isFinite(b))return new Date(b).toISOString();if("string"==typeof b&&b.trim()){let a=Date.parse(b);if(!Number.isNaN(a))return new Date(a).toISOString()}return a.timestamp||null}(c)||new Date().toISOString(),text:p,toolName:"toolCall"===o?n?.name:"toolResult"===d?c.message.toolName?.trim()||A(k):void 0,stopReason:"assistant"===d?c.message.stopReason??null:null,errorMessage:l,isWarning:!!m,isError:!!l||!0===c.message.isError||"error"===c.message.stopReason||"aborted"===c.message.stopReason};if("user"===d){g&&e.push(v(g)),g={id:c.id||`turn-${e.length}`,prompt:q.text.replace(/^Sender \(untrusted metadata\):[\s\S]*?```[\s\S]*?```\s*/i,"").replace(/^\[[^\]]+\]\s*/i,"").replace(/\s+/g," ").trim(),sessionId:b.sessionId,runId:void 0,timestamp:q.timestamp,updatedAt:q.timestamp,items:[q],tokenUsage:void 0,errorMessage:null,createdFiles:[],warnings:[],toolNames:[],pendingCreatedFiles:new Map,pendingToolNames:new Set};continue}if(!g)continue;if("assistant"===d&&Array.isArray(c.message.content)){for(let a of c.message.content)if("toolCall"===a.type)for(let b of("string"==typeof a.name&&a.name.trim()&&g.pendingToolNames.add(a.name.trim()),function(a,b){if("write"===a.type||"write"===a.name){let c="string"==typeof a.arguments?.path?a.arguments.path.trim():"",d=c?w(c,b):null;return d?[d]:[]}return"apply_patch"===a.name&&Array.isArray(a.arguments?.changes)?a.arguments.changes.flatMap(a=>{if(!a||"object"!=typeof a)return[];let c="path"in a&&"string"==typeof a.path?a.path.trim():"",d=c?w(c,b):null;return d?[d]:[]}):[]}(a,f)))g.pendingCreatedFiles.set(a.id||`${c.id||"toolCall"}:${b.path}`,b)}if(g.items.push(q),g.updatedAt=q.timestamp,g.errorMessage||=l,m&&!g.warnings.includes(m)&&g.warnings.push(m),"toolResult"===d&&!0!==c.message.isError&&("write"===c.message.toolName||"apply_patch"===c.message.toolName)&&"string"==typeof c.message.toolCallId){let a=g.pendingCreatedFiles.get(c.message.toolCallId);a&&(g.createdFiles.push(a),g.pendingCreatedFiles.delete(c.message.toolCallId))}if("toolResult"===d){let a=c.message.toolName?.trim()||A(q.text)?.trim()||null;a&&g.pendingToolNames.add(a)}if("assistant"===d&&c.message.usage){let a=c.message.usage;g.tokenUsage=(i=g.tokenUsage,j={input:a.input??a.prompt_tokens??0,output:a.output??a.completion_tokens??0,total:a.totalTokens??a.total_tokens??(a.input??a.prompt_tokens??0)+(a.output??a.completion_tokens??0),cacheRead:a.cacheRead??0},i?j.total>i.total?j:i:j)}}catch{continue}return g&&e.push(v(g)),e}function p(a,b){let c="string"==typeof a.metadata.dispatchSubmittedAt?Date.parse(a.metadata.dispatchSubmittedAt):NaN;return Number.isNaN(c)?b:b.filter(a=>{let b=Date.parse(a.updatedAt||a.timestamp);return!Number.isNaN(b)&&b>=c-1500})}function q(a){return y(a.flatMap(a=>a.toolNames))}function r(a,b){return{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:"missing",finalText:null,finalTimestamp:null,stopReason:null,errorMessage:b,items:[],createdFiles:[],warnings:[],warningSummary:null}}function s(a,b,c){let d=p(a,o(b,a,c));if("turn"===a.source){let b="string"==typeof a.metadata.turnId?a.metadata.turnId:null,c=b?d.find(a=>a.id===b):function(a,b){let c="string"==typeof a.metadata.mission?a.metadata.mission:null;if(!c)return null;let d=b.filter(a=>(0,j.Dm)(a.prompt,c));if(0===d.length)return null;let e=a.updatedAt??0;return d.sort((a,b)=>{let c=Date.parse(a.updatedAt),d=Date.parse(b.updatedAt);return Math.abs((Number.isNaN(c)?0:c)-e)-Math.abs((Number.isNaN(d)?0:d)-e)})[0]}(a,d);if(c)return u(a,c)}let e=d.at(-1);return e?u(a,e):{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:"missing",finalText:null,finalTimestamp:null,stopReason:null,errorMessage:t(a,"No transcript entries were found for this runtime."),items:[],createdFiles:[],warnings:[],warningSummary:null}}function t(a,b){let c="string"==typeof a.metadata.dispatchStatus?a.metadata.dispatchStatus:null,d="string"==typeof a.metadata.dispatchId?a.metadata.dispatchId:null,e="string"==typeof a.metadata.error&&a.metadata.error.trim()?(0,k.bS)(a.metadata.error.trim()):null;return e||(c||d?"stalled"===c||"stalled"===a.status?"Mission dispatch stalled before AgentOS captured transcript output. Check Gateway diagnostics, model readiness, and the dispatch runner details.":"completed"===c||"completed"===a.status?"Mission completed, but AgentOS did not recover a transcript or final output yet. Refresh the snapshot and inspect the OpenClaw session diagnostics if this remains empty.":"Mission dispatch is active, but no transcript output has been captured yet. Wait for the first OpenClaw session update or inspect Gateway diagnostics if it stays empty.":b)}function u(a,b){return{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:b.items.length>0?"available":"missing",finalText:b.finalText,finalTimestamp:b.finalTimestamp,stopReason:b.stopReason,errorMessage:b.errorMessage,items:b.items.slice(-12),createdFiles:b.createdFiles,warnings:b.warnings,warningSummary:b.warningSummary,tokenUsage:b.tokenUsage}}function v(a){let{pendingCreatedFiles:b,pendingToolNames:c,...d}=a,e=[...a.items].reverse().find(a=>"assistant"===a.role&&(a.text.trim().length>0||a.errorMessage)),f=a.items.at(-1),g=e?.stopReason??null,h=!!a.errorMessage||e?.isError===!0||"error"===g||"aborted"===g,i=y(a.warnings),j=h?"stalled":f?.role==="assistant"&&f.stopReason&&"toolUse"!==f.stopReason?"completed":"running";return{...d,status:j,finalText:e?.text??null,finalTimestamp:e?.timestamp??null,stopReason:g,errorMessage:a.errorMessage||e?.errorMessage||null,createdFiles: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}(a.createdFiles),warnings:i,warningSummary:i[0]??null,toolNames:y([...a.pendingToolNames])}}function w(a,b){let c=a.trim();if(!c)return null;let d=h().isAbsolute(c)?h().normalize(c):b?h().resolve(b,c):null;if(!d)return null;let e=b&&d.startsWith(`${h().resolve(b)}${h().sep}`)?h().relative(h().resolve(b),d)||h().basename(d):d;return{path:d,displayPath:e}}async function x(a,b,c){let e=`agent:${a}:explicit:${b}`;for(let g of[h().join(f().homedir(),".openclaw","agents",a,"sessions","sessions.json"),c?h().join(c,".openclaw","agents",a,"sessions","sessions.json"):null].filter(Boolean))try{let a=await (0,d.readFile)(g,"utf8"),c=JSON.parse(a);for(let[a,f]of Object.entries(c))if(f&&(f.sessionId===b||a===e)&&"string"==typeof f.sessionFile)return await (0,d.access)(f.sessionFile),f.sessionFile}catch{continue}return null}function y(a){return Array.from(new Set(a))}function z(a,b){let c=a.replace(/\s+/g," ").trim();return c.length<=b?c:`${c.slice(0,Math.max(b-1,1)).trimEnd()}…`}function A(a){let b=a.match(/"tool(Name)?":\s*"([^"]+)"/i);return b?.[2]}function B(a){return a?a.split(/[-_]/g).filter(Boolean).map(a=>a[0].toUpperCase()+a.slice(1)).join(" "):"OpenClaw"}},27091:(a,b,c)=>{function d(a){return a.name?.trim()||a.identityName?.trim()||"OpenClaw"}c.d(b,{$m:()=>g,CK:()=>d,ho:()=>f});let e=[/^Task output routing:/i,/^Agent operating policy:/i];function f(a){let b=a.replace(/\r\n/g,"\n").trim();if(!b)return"";let c=[];for(let a of b.split("\n")){let b=a.trim();if(e.some(a=>a.test(b)))break;c.push(a)}return c.join(" ").replace(/\s+/g," ").trim()}function g(a,b=64){if(!a)return"";let c=f(a);return c?c.length<=b?c:`${c.slice(0,Math.max(b-1,1)).trimEnd()}…`:""}},28182:(a,b,c)=>{c.d(b,{IJ:()=>f,T$:()=>o,Y8:()=>l,bE:()=>g,qA:()=>m,vC:()=>n});var d=c(77598),e=c(27091);function f(a,b){let c=a.filter(a=>!function(a){var b,c;let d="string"==typeof a.metadata.origin?a.metadata.origin:null;if("mission-dispatch"===d)return!1;if("agent-chat"===d)return!0;if("string"==typeof a.metadata.dispatchId&&a.metadata.dispatchId.trim())return!1;let f=h(a)||("string"==typeof a.metadata.turnPrompt?a.metadata.turnPrompt:null);return!!("string"==typeof f&&(b=f,/You are chatting (?:directly )?with the operator inside AgentOS/i.test(b)||/Do not create tasks or mention task cards/i.test(b)||/Messages stay in this drawer and are stored locally in your browser/i.test(b)))||(c=a,!(c.taskId?.trim()||c.runId?.trim()||function(a){if("string"!=typeof a.metadata.mission)return null;let b=(0,e.ho)(a.metadata.mission);return b.length>0?b:null}(c)||"string"==typeof c.metadata.taskId&&c.metadata.taskId.trim()||"string"==typeof c.metadata.runId&&c.metadata.runId.trim()||"string"==typeof c.metadata.bootstrapStage&&c.metadata.bootstrapStage.trim()||"string"==typeof c.metadata.dispatchStatus&&c.metadata.dispatchStatus.trim())&&!!("string"==typeof a.metadata.chatType&&"direct"===a.metadata.chatType||"string"==typeof a.metadata.kind&&"direct"===a.metadata.kind||function(a){if("session"!==a.source)return!1;let b=a.key.trim(),c=a.title.trim().toLowerCase(),d=a.subtitle.trim().toLowerCase();return/:main$/.test(b)||/:explicit:[^:]+$/.test(b)||"agent session"===c||"main session"===d||"direct session"===d}(a)))}(a)),d=new Map,f=new Map(b.map(a=>{var b;return[a.id,(b=a).name.trim()||b.id]})),i=function(a){let b=new Map;for(let c of a){let a=c.sessionId?.trim(),d="string"==typeof c.metadata.dispatchId?c.metadata.dispatchId.trim():"",e="string"==typeof c.metadata.dispatchSubmittedAt?Date.parse(c.metadata.dispatchSubmittedAt):NaN;if(!a||!d)continue;let f=`${c.agentId??"unknown"}:${a}`,g=b.get(f)??[];g.some(a=>a.dispatchId===d)||(g.push({dispatchId:d,submittedAt:Number.isNaN(e)?null:e}),g.sort((a,b)=>(a.submittedAt??-1/0)-(b.submittedAt??-1/0)),b.set(f,g))}return b}(c);for(let a of c){let b=function(a,b){let c=a.taskId?.trim(),d="string"==typeof a.metadata.dispatchId?a.metadata.dispatchId.trim():"",e=h(a),f=a.sessionId?.trim(),g=f?b.get(`${a.agentId??"unknown"}:${f}`)??[]:[],i=a.updatedAt??0,j=g.filter(a=>null===a.submittedAt||i>=a.submittedAt-1500).sort((a,b)=>(b.submittedAt??-1/0)-(a.submittedAt??-1/0))[0]?.dispatchId??"";return d?`dispatch:${d}`:j?`dispatch:${j}`:c?`task:${c}`:e?`mission:${a.agentId??"unknown"}:${n(e)}`:f?`session:${f}`:`runtime:${a.id}`}(a,i),c=d.get(b)??[];c.push(a),d.set(b,c)}return Array.from(d.entries()).map(([a,b])=>g(a,b,f)).sort((a,b)=>(b.updatedAt??0)-(a.updatedAt??0))}function g(a,b,c){var d,f,g;let r,s=[...b].sort(q),t=function(a){let b=a.filter(a=>"turn"===a.source||"string"==typeof a.metadata.turnId);if(b.length>0)return b;let c=a.filter(a=>"string"==typeof a.metadata.dispatchId||"string"==typeof a.metadata.bootstrapStage);return c.length>0?c:a}(s),u=[...t].sort((a,b)=>i(b)-i(a))[0]??t[0]??s[0],v=h(u)||s.map(a=>h(a)).find(Boolean)||null,w=function(a){for(let b of a){let a="string"==typeof b.metadata.routedMission?b.metadata.routedMission.trim():"";if(a)return a}return null}(s),x=function(a){let b=[...a.filter(a=>{var b;return(!!("string"==typeof(b=a).metadata.dispatchId&&b.metadata.dispatchId.trim())||!!h(b))&&!k(a)&&("completed"===a.status||"stalled"===a.status||"cancelled"===a.status)}),...a.filter(a=>"string"==typeof a.metadata.turnId),...a.filter(a=>!0===a.metadata.recoveredFromObservation),...a.filter(a=>!k(a)&&("completed"===a.status||"stalled"===a.status||"cancelled"===a.status)),...a.filter(a=>!k(a))],c=new Set;for(let a of b){if(c.has(a.id))continue;c.add(a.id);let b=a.subtitle?.trim();if(b&&function(a){let b=a.replace(/\s+/g," ").trim().toLowerCase();return!!b&&"sessions.changed"!==b&&"session.message"!==b}(b))return b}return null}(s),y=x||t.map(a=>a.subtitle?.trim()).find(a=>!!a)||s.map(a=>a.subtitle?.trim()).find(a=>!!a)||"Awaiting OpenClaw updates.",z=o(s.flatMap(a=>l(a)).concat(s.flatMap(a=>(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("/"))&&(b.split("/").pop()||"").includes(".")}(b)&&c.push({path:b,displayPath:b})}return o(c)})(a.subtitle)))),A=p(s.flatMap(a=>m(a))),B=function(a){let b=(function(a){let b=new Set,c=[];for(let d of a){if(!d.tokenUsage)continue;let a=function(a){let b="string"==typeof a.metadata.dispatchId?a.metadata.dispatchId.trim():"",c=a.tokenUsage??{input:0,output:0,total:0,cacheRead:0};return[b||a.runId||a.sessionId||a.id,b?"":a.sessionId??"",c.input,c.output,c.total,c.cacheRead??0].join(":")}(d);b.has(a)||(b.add(a),c.push(d))}return c})(a).filter(a=>a.tokenUsage);if(0!==b.length)return b.reduce((a,b)=>({input:a.input+(b.tokenUsage?.input??0),output:a.output+(b.tokenUsage?.output??0),total:a.total+(b.tokenUsage?.total??0),cacheRead:(a.cacheRead??0)+(b.tokenUsage?.cacheRead??0)}),{input:0,output:0,total:0,cacheRead:0})}(s),C=p(s.flatMap(a=>a.agentId?[a.agentId]:[])),D=p(s.flatMap(a=>a.sessionId?[a.sessionId]:[])),E=p(s.flatMap(a=>a.runId?[a.runId]:[])),F=s.filter(a=>"string"==typeof a.metadata.turnId||!0===a.metadata.recoveredFromObservation).length,G=(r=s.map(a=>"string"==typeof a.metadata.dispatchStatus?a.metadata.dispatchStatus.trim():"").filter(Boolean)).includes("cancelled")?"cancelled":r.includes("stalled")?"stalled":r.includes("completed")?"completed":r.includes("running")?"running":r.includes("queued")?"queued":null,H=u?.agentId||C[0],I=H?c.get(H)??null:null,J=s[0]??null;return{id:(d=a,`task:${n(d)}`),key:a,title:(0,e.$m)(v||u?.title||"Untitled task",52)||"Untitled task",mission:v,subtitle:y,status:function(a,b=null){return b&&j(b)?b:a.some(a=>"running"===a.status)?"running":a.some(a=>"cancelled"===a.status)?"cancelled":a.some(a=>"queued"===a.status)?"queued":a.some(a=>"stalled"===a.status)?"stalled":a.some(a=>"idle"===a.status)?"idle":a[0]?.status??"completed"}(s,G),updatedAt:J?.updatedAt??null,ageMs:J?.ageMs??null,workspaceId:u?.workspaceId,primaryAgentId:H,primaryAgentName:I,primaryRuntimeId:u?.id,dispatchId:function(a){for(let b of a)if("string"==typeof b.metadata.dispatchId&&b.metadata.dispatchId.trim())return b.metadata.dispatchId.trim()}(s),runtimeIds:s.map(a=>a.id),agentIds:C,sessionIds:D,runIds:E,runtimeCount:s.length,updateCount:t.filter(a=>"turn"===a.source).length,liveRunCount:(f=s,(g=G)&&j(g)?0:f.filter(a=>"running"===a.status||"queued"===a.status).length),artifactCount:z.length,warningCount:A.length,tokenUsage:B,metadata:{mission:v,routedMission:w,resultPreview:x,turnCount:F,sessionCount:D.length,primaryRuntimeSource:u?.source??null,bootstrapStage:"string"==typeof u?.metadata.bootstrapStage?u.metadata.bootstrapStage:null,dispatchStatus:G??("string"==typeof u?.metadata.dispatchStatus?u.metadata.dispatchStatus:null),dispatchSubmittedAt:"string"==typeof u?.metadata.dispatchSubmittedAt?u.metadata.dispatchSubmittedAt:null,dispatchRunnerStartedAt:"string"==typeof u?.metadata.dispatchRunnerStartedAt?u.metadata.dispatchRunnerStartedAt:null,dispatchHeartbeatAt:"string"==typeof u?.metadata.dispatchHeartbeatAt?u.metadata.dispatchHeartbeatAt:null,dispatchObservedAt:"string"==typeof u?.metadata.dispatchObservedAt?u.metadata.dispatchObservedAt:null,outputDir:"string"==typeof u?.metadata.outputDir?u.metadata.outputDir:null,outputDirRelative:"string"==typeof u?.metadata.outputDirRelative?u.metadata.outputDirRelative:null}}}function h(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,e.ho)(b);return c.length>0?c:null}function i(a){return 8*!!h(a)+6*("string"==typeof a.metadata.dispatchId)+("turn"===a.source?6:"session"===a.source?4:2)+("running"===a.status?3:"queued"===a.status?2:"cancelled"===a.status||"stalled"===a.status?3:"idle"===a.status?2:1)}function j(a){return"completed"===a||"stalled"===a||"cancelled"===a}function k(a){let b="string"==typeof a.metadata.bootstrapStage?a.metadata.bootstrapStage:null;return"accepted"===b||"waiting-for-heartbeat"===b||"waiting-for-runtime"===b||"runtime-observed"===b}function l(a){let b=a.metadata.createdFiles;return Array.isArray(b)?b.flatMap(a=>{if(!a||"object"!=typeof a)return[];let b="path"in a&&"string"==typeof a.path?a.path:null,c="displayPath"in a&&"string"==typeof a.displayPath?a.displayPath:b;return b&&c?[{path:b,displayPath:c}]:[]}):[]}function m(a){let b=a.metadata.warnings;return Array.isArray(b)?b.filter(a=>"string"==typeof a&&a.trim().length>0):[]}function n(a){return(0,d.createHash)("sha1").update(a).digest("hex").slice(0,12)}function o(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}function p(a){return Array.from(new Set(a.map(a=>(function(a){if("string"!=typeof a)return null;let b=a.trim();return b.length>0?b:null})(a)).filter(a=>!!a)))}function q(a,b){return(b.updatedAt??0)-(a.updatedAt??0)}},35456:(a,b,c)=>{c.d(b,{Az:()=>s,FU:()=>m,In:()=>z,SK:()=>v,Yt:()=>r,Zm:()=>l,bC:()=>y,fj:()=>t,go:()=>w,lY:()=>x,qB:()=>n,tl:()=>p,ul:()=>u,wL:()=>o,wi:()=>q});var d=c(51455),e=c(48161),f=c.n(e),g=c(76760),h=c.n(g),i=c(49922);let j=h().join(process.cwd(),".mission-control"),k=h().join(j,"settings.json");function l(a){let b,c=a?.trim();if(!c)return null;let d=/^[a-z][a-z0-9+.-]*:\/\//i.test(c)?c:`ws://${c}`;try{b=new URL(d)}catch{throw Error("Gateway address must be a valid WebSocket URL.")}if("ws:"!==b.protocol&&"wss:"!==b.protocol)throw Error("Gateway address must start with ws:// or wss://.");if(!b.hostname)throw Error("Gateway address must include a hostname.");return b.toString().replace(/\/$/,"")}function m(a){let b=a?.trim();if(!b)return null;if("~"!==b&&!b.startsWith("~/")&&!h().isAbsolute(b))throw Error("Workspace root must be an absolute path or start with ~/.");return n(b)}function n(a){var b;let c=a?.trim();if(!c)return;let d="~"===(b=c)?f().homedir():b.startsWith("~/")?h().join(f().homedir(),b.slice(2)):b,e=h().normalize(d);return e.length>1?e.replace(/[\\/]+$/,""):e}async function o(){return n((await p()).workspaceRoot)??null}async function p(){let a;try{a=await (0,d.readFile)(k,"utf8")}catch(a){if("ENOENT"===("object"==typeof a&&a&&"code"in a?a.code:void 0))return{};throw a}try{let b=JSON.parse(a),c="string"==typeof b.workspaceRoot?n(b.workspaceRoot):void 0,d=function(a){if(!a||"object"!=typeof a)return;let b=Object.entries("smokeTests"in a&&a.smokeTests&&"object"==typeof a.smokeTests?a.smokeTests:{}).reduce((a,[b,c])=>{if(!c||"object"!=typeof c)return a;let d="string"==typeof c.checkedAt?c.checkedAt:null,e="passed"===c.status||"failed"===c.status?c.status:null;return d&&e&&(a[b]={status:e,checkedAt:d,..."string"==typeof c.runId?{runId:c.runId}:{},..."string"==typeof c.summary?{summary:c.summary}:{},..."string"==typeof c.error?{error:E(c.error)??c.error}:{}}),a},{});return Object.keys(b).length>0?{smokeTests:b}:void 0}("object"==typeof b.runtimePreflight&&b.runtimePreflight?b.runtimePreflight:void 0),e=B(b.compatibilitySmokeTest);return{...c?{workspaceRoot:c}:{},...d?{runtimePreflight:d}:{},...e?{compatibilitySmokeTest:e}:{}}}catch{return{}}}async function q(a){await (0,d.mkdir)(j,{recursive:!0}),await (0,d.writeFile)(k,`${JSON.stringify(a,null,2)}
136
+ `,"utf8")}function r(a,b){return a.runtimePreflight?.smokeTests?.[b]??null}function s(a,b){return!b||!a||F(b)?{status:"not-run",checkedAt:null,agentId:null,runId:null,summary:null,error:null}:{status:b.status,checkedAt:b.checkedAt,agentId:a,runId:b.runId??null,summary:b.summary??null,error:E(b.error??null)}}function t(a){let b=A(a)[0];return s(b?.[0]??null,b?.[1]??null)}function u(a){return a.compatibilitySmokeTest??null}function v(a){if(!a||"passed"!==a.status)return!1;let b=Date.parse(a.checkedAt);return Number.isFinite(b)&&Date.now()-b<=432e5}async function w(a){let b=await p(),c={...b.runtimePreflight?.smokeTests??{}};a.agentId&&"not-run"!==a.status&&a.checkedAt&&(c[a.agentId]={status:a.status,checkedAt:a.checkedAt,...a.runId?{runId:a.runId}:{},...a.summary?{summary:a.summary}:{},...a.error?{error:a.error}:{}},await q({...b,runtimePreflight:{smokeTests:c}}))}async function x(a){let b=await p();await q({...b,compatibilitySmokeTest:B(a)??a})}async function y(){let a=await p(),b=a.runtimePreflight?.smokeTests??{},c=Object.fromEntries(Object.entries(b).filter(([,a])=>!("failed"===a.status&&(0,i.YG)(a.error??""))));if(Object.keys(c).length===Object.keys(b).length)return!1;let d={...a};return Object.keys(c).length>0?d.runtimePreflight={smokeTests:c}:delete d.runtimePreflight,await q(d),!0}function z(a){let b=A(a).find(([,a])=>"failed"===a.status&&(0,i.YG)(a.error??"")&&!F(a));return b?.[1]??null}function A(a){return Object.entries(a.runtimePreflight?.smokeTests??{}).sort((a,b)=>{let c=Date.parse(a[1].checkedAt);return Date.parse(b[1].checkedAt)-c})}function B(a){var b;if(!a||"object"!=typeof a)return;let c="compatible"===(b=a.status)||"degraded"===b||"incompatible"===b||"unknown"===b?b:null,d="string"==typeof a.checkedAt&&a.checkedAt.trim()?a.checkedAt:null,e=function(a){if(!a||"object"!=typeof a)return null;let b=a.agentOsSupportedProtocolRange&&"object"==typeof a.agentOsSupportedProtocolRange?a.agentOsSupportedProtocolRange:null,c="number"==typeof b?.min&&Number.isFinite(b.min)?b.min:null,d="number"==typeof b?.max&&Number.isFinite(b.max)?b.max:null;return null===c||null===d?null:{installedVersion:D(a.installedVersion),requiredOpenClawVersion:D(a.requiredOpenClawVersion),recommendedOpenClawVersion:D(a.recommendedOpenClawVersion),gatewayProtocolVersion:D(a.gatewayProtocolVersion),requiredGatewayProtocolVersion:D(a.requiredGatewayProtocolVersion)??"4",agentOsSupportedProtocolRange:{min:c,max:d},nodeVersion:D(a.nodeVersion),nodeRequiredVersion:D(a.nodeRequiredVersion)??"22.19.0",nodeRecommendedVersion:D(a.nodeRecommendedVersion)??"24.x",nodeStatus:"supported"===a.nodeStatus||"unsupported"===a.nodeStatus||"unknown"===a.nodeStatus?a.nodeStatus:"unknown",gatewayAuthStatus:D(a.gatewayAuthStatus)??"Unknown",nativeGatewayStatus:D(a.nativeGatewayStatus)??"Unknown",cliFallbackUsageCount:"number"==typeof a.cliFallbackUsageCount&&Number.isFinite(a.cliFallbackUsageCount)?Math.max(0,a.cliFallbackUsageCount):0,lastNativeError:D(a.lastNativeError),lastFallbackReason:D(a.lastFallbackReason),modelReady:"boolean"==typeof a.modelReady?a.modelReady:null}}(a.compatibility);if(!c||!d||!e)return;let f="number"==typeof a.durationMs&&Number.isFinite(a.durationMs)?Math.max(0,a.durationMs):0,g=!0===a.safeToDispatchMissions;return{status:c,checkedAt:d,durationMs:f,safeToDispatchMissions:g,recovery:"string"==typeof a.recovery&&a.recovery.trim()?a.recovery.trim():"Review OpenClaw compatibility diagnostics, then rerun the smoke test.",checks:Array.isArray(a.checks)?a.checks.map(C).filter(a=>!!a):[],compatibility:e}}function C(a){var b;if(!a||"object"!=typeof a)return null;let c="pass"===(b=a.status)||"warning"===b||"fail"===b?b:null,d="string"==typeof a.id&&a.id.trim()?a.id.trim():null,e="string"==typeof a.label&&a.label.trim()?a.label.trim():null,f="string"==typeof a.summary&&a.summary.trim()?a.summary.trim():null;return d&&e&&c&&f?{id:d,label:e,status:c,required:!0===a.required,summary:f,recovery:"string"==typeof a.recovery&&a.recovery.trim()?a.recovery.trim():null,durationMs:"number"==typeof a.durationMs&&Number.isFinite(a.durationMs)?Math.max(0,a.durationMs):0,...void 0!==a.rawDetails?{rawDetails:a.rawDetails}:{}}:null}function D(a){return"string"==typeof a&&a.trim()?a.trim():null}function E(a){return a?(0,i.YG)(a)?(0,i.ox)((0,i.MF)("openclaw")):a:null}function F(a){if("failed"!==a.status||!(0,i.YG)(a.error??""))return!1;let b=Date.parse(a.checkedAt);return Number.isFinite(b)&&Date.now()-b>3e5}},37110:(a,b,c)=>{c.d(b,{DO:()=>K,Ff:()=>L,GG:()=>P,O1:()=>M,VW:()=>O,Yp:()=>z,_z:()=>t,e4:()=>x,gb:()=>v,ji:()=>w,lm:()=>u,vH:()=>y});var d=c(31421),e=c(73024),f=c(51455),g=c(76760),h=c.n(g),i=c(57975),j=c(77598),k=c(88366),l=c(14414),m=c(80410),n=c(69699),o=c(25793);let p=h().join(process.cwd(),".mission-control"),q=h().join(p,"dispatches"),r=h().join(process.cwd(),"scripts","openclaw-mission-dispatch-runner.mjs"),s=(0,i.promisify)(d.execFile);function t(a){let b=new Date().toISOString(),c=`dispatch-${(0,j.randomUUID)()}`;return{id:c,status:"queued",agentId:a.agentId,sessionId:(0,j.randomUUID)(),mission:a.mission,routedMission:a.routedMission,thinking:a.thinking,workspaceId:a.workspaceId,workspacePath:a.workspacePath,submittedAt:b,updatedAt:b,outputDir:a.outputDir,outputDirRelative:a.outputDirRelative,notesDirRelative:a.notesDirRelative,runner:{pid:null,childPid:null,startedAt:null,finishedAt:null,lastHeartbeatAt:null,logPath:R(c)},observation:{runtimeId:null,observedAt:null},result:null,error:null}}async function u(a){let b=Q(a.id),c=`${b}.${process.pid}.tmp`;await (0,f.mkdir)(h().dirname(b),{recursive:!0}),await (0,f.writeFile)(c,`${JSON.stringify(a,null,2)}
127
137
  `,"utf8"),await (0,f.rename)(c,b)}async function v(a){await (0,f.access)(r,e.constants.R_OK);let b=await (0,k.XP)(),c=(0,d.spawn)(process.execPath,[r,Q(a.id)],{cwd:process.cwd(),detached:!0,stdio:"ignore",env:{...process.env,OPENCLAW_BIN:b,OPENCLAW_AGENT_TIMEOUT_SECONDS:String(45)}});return c.unref(),{...a,runner:{...a.runner,pid:c.pid??a.runner.pid}}}async function w(a){if(a.dispatchId){let b=await M(a.dispatchId);if(b)return b}let b=await L(),c=new Set(a.runtimeIds),d=new Set(a.sessionIds);for(let e of b){if(e.agentId!==a.primaryAgentId&&!a.agentIds.includes(e.agentId))continue;if(a.mission&&e.mission&&(0,l.Dm)(e.mission,a.mission)||e.observation.runtimeId&&c.has(e.observation.runtimeId))return e;let b=(0,n.Xy)(e);if(b&&d.has(b))return e}return null}async function x(a){let b=new Set;if("number"==typeof a.runner.childPid&&Number.isFinite(a.runner.childPid)&&b.add(a.runner.childPid),0===b.size&&"number"==typeof a.runner.pid&&Number.isFinite(a.runner.pid))try{let{stdout:c}=await s("pgrep",["-P",String(a.runner.pid)]);for(let a of c.split(/\r?\n/)){let c=Number.parseInt(a.trim(),10);Number.isFinite(c)&&c>0&&b.add(c)}}catch{}for(let a of b)try{process.kill(a,"SIGTERM")}catch{}return b.values().next().value??null}async function y(a,b){let c=T(b.updatedAt);if(a.observation.runtimeId===b.id&&a.observation.observedAt===c)return;let d=await M(a.id)??a;(d.observation.runtimeId!==b.id||d.observation.observedAt!==c)&&await u({...d,updatedAt:S(d.updatedAt,c),observation:{runtimeId:b.id,observedAt:c}})}async function z(a,b){var c,d,e,f,g;let h,i;if(O(a.status))return B(a,b);if(("completed"===(c=b.status)||"stalled"===c||"cancelled"===c)&&(d=a,h="string"==typeof(e=b).metadata.dispatchId?e.metadata.dispatchId.trim():"",i="string"==typeof e.runId?e.runId.trim():"",h===d.id||i===d.id)){let c=await M(a.id)??a;if(O(c.status))return;let d=T(b.updatedAt),e="completed"===(f=b.status)||"cancelled"===f?f:"stalled",h={...c,status:e,updatedAt:S(c.updatedAt,d),runner:{...c.runner,finishedAt:d,lastHeartbeatAt:d},observation:{runtimeId:b.id,observedAt:d},result:"completed"===e?c.result??{runId:(g=b).runId||`runtime:${g.id}`,status:"completed",summary:g.subtitle||"completed",meta:{agentId:g.agentId,sessionId:g.sessionId,model:g.modelId,usage:g.tokenUsage}}:c.result,error:"stalled"===e?c.error||b.subtitle||"OpenClaw runtime ended before the dispatch runner finalized.":null};return await u(h),h}if(!b.agentId||!b.sessionId)return;let j=await C(a,b);if(!j)return;let k=!!(j.finalTimestamp&&j.stopReason&&"toolUse"!==j.stopReason),l=!!j.errorMessage||"error"===j.stopReason||"aborted"===j.stopReason;if(!k&&!l)return;let m=await M(a.id)??a;if(O(m.status))return;let o=j.finalTimestamp??T(b.updatedAt),p=l?"stalled":"completed",q={...m,status:p,updatedAt:S(m.updatedAt,o),runner:{...m.runner,finishedAt:o,lastHeartbeatAt:o},result:"completed"===p?m.result??(0,n.pV)(b,j):m.result,error:"stalled"===p?j.errorMessage||m.error||"OpenClaw runtime ended before the dispatch runner finalized.":null};return await u(q),q}async function A(a,b){var c,d,e;let f;if("completed"!==a.status)return null;let g=await C(a,b);if(!g)return null;let h=(0,n.pV)(b,g);if(!h||!g.finalText?.trim()&&!g.tokenUsage)return null;let i=await M(a.id)??a;if("completed"!==i.status||(0,n.v0)(i)&&(c=i,(f=(0,n.gQ)(c))&&f.total>0))return null;let j=g.finalTimestamp??T(b.updatedAt)??i.updatedAt,k=i.result&&(0,n.v0)(i)?(d=i.result,e=h,{...d,meta:{...d.meta??{},...e.meta??{}},result:d.result?{...d.result,meta:{...d.result.meta??{},...e.result?.meta??{},...e.meta??{}}}:e.result}):h,l={...i,updatedAt:S(i.updatedAt,j),runner:{...i.runner,finishedAt:i.runner.finishedAt??j,lastHeartbeatAt:S(i.runner.lastHeartbeatAt,j)},result:k};return await u(l),l}async function B(a,b){var c;let d;if("completed"===a.status)return A(a,b);if("stalled"!==a.status)return null;let e=await C(a,b);if(!e||(c=e,d=c.stopReason?.trim(),!("available"===c.status&&c.finalText?.trim())||c.errorMessage||!d||"toolUse"===d||"error"===d||"aborted"===d))return null;let f=(0,n.pV)(b,e);if(!f)return null;let g=await M(a.id)??a;if("completed"===g.status)return A(g,b);if("stalled"!==g.status)return null;let h=e.finalTimestamp??T(b.updatedAt)??g.updatedAt,i={...g,status:"completed",updatedAt:S(g.updatedAt,h),runner:{...g.runner,finishedAt:h,lastHeartbeatAt:S(g.runner.lastHeartbeatAt,h)},observation:{runtimeId:b.id,observedAt:h},result:f,error:null};return await u(i),i}async function C(a,b){let c=b.sessionId??(0,n.Xy)(a);if(!b.agentId||!c)return null;let d=await (0,o.WU)(b.agentId,c,a.workspacePath??void 0);if(!d)return null;try{let e=await (0,f.readFile)(d,"utf8"),g={...b,sessionId:c,metadata:{...b.metadata,mission:"string"==typeof b.metadata.mission?b.metadata.mission:a.mission,dispatchSubmittedAt:"string"==typeof b.metadata.dispatchSubmittedAt?b.metadata.dispatchSubmittedAt:a.submittedAt}},h=(0,o.Jw)(g,e,a.workspacePath??void 0);if(F(h.tokenUsage))return h;let i=await D(a,e);return i?{...h,tokenUsage:i}:h}catch{return null}}async function D(a,b){let c=function(a,b){for(let d of a.split(/\r?\n/))if(d.trim())try{var c;let a=JSON.parse(d);if(!I(a)||"message"!==a.type||!I(a.message)||"user"!==a.message.role)continue;let e=(c=a.message.content,"string"==typeof c?c.trim():Array.isArray(c)?c.flatMap(a=>I(a)&&("text"===a.type||"output_text"===a.type)&&"string"==typeof a.text?[a.text]:[]).join("\n\n").trim():"");if(b.trim()&&e&&!(0,l.Dm)(e,b)&&!e.includes(b.trim()))continue;let f=function(a){let b=I(a.__openclaw)?a.__openclaw:null,c=G(b?.mirrorIdentity);return c?.split(":")[0]?.trim()||null}(a.message);if(f)return f}catch{continue}return null}(b,a.mission);if(!c||!a.workspacePath||!a.agentId)return null;for(let b of function(a){if(!a.workspacePath||!a.agentId)return[];let b=h().join(a.workspacePath,".openclaw","agents",a.agentId,"agent","codex-home","sessions"),c=[a.submittedAt,a.runner.startedAt,a.runner.finishedAt,a.updatedAt,a.observation.observedAt],d=new Set;for(let a of c){let c="string"==typeof a?Date.parse(a):NaN;if(!Number.isNaN(c))for(let a of[-864e5,0,864e5]){let e=new Date(c+a);d.add(h().join(b,...E(e,!1))),d.add(h().join(b,...E(e,!0)))}}return Array.from(d)}(a))for(let a of(await (0,f.readdir)(b,{withFileTypes:!0}).catch(()=>[])).filter(a=>a.isFile()&&a.name.startsWith("rollout-")&&a.name.endsWith(".jsonl")).map(a=>h().join(b,a.name))){let b=await (0,f.readFile)(a,"utf8").catch(()=>null);if(!b||!b.includes(c))continue;let d=function(a,b){let c=b.trim();if(!c)return null;let d=!1,e=null;for(let b of a.split(/\r?\n/))if(b.trim())try{let a=JSON.parse(b);if(!I(a)||"event_msg"!==a.type||!I(a.payload))continue;let f="string"==typeof a.payload.type?a.payload.type:"";if("task_started"===f&&G(a.payload.turn_id)===c){d=!0,e=null;continue}if(!d)continue;if("token_count"===f){let b=function(a){if(!I(a))return null;let b=I(a.total_token_usage)?a.total_token_usage:I(a.last_token_usage)?a.last_token_usage:null;if(!b)return null;let c=H(b.total_tokens);return null===c?null:{input:H(b.input_tokens)??0,output:H(b.output_tokens)??0,total:c,cacheRead:H(b.cached_input_tokens)??0}}(a.payload.info);F(b)&&(e=b);continue}if("task_complete"===f&&G(a.payload.turn_id)===c)break}catch{continue}return e}(b,c);if(F(d))return d}return null}function E(a,b){let c=b?a.getUTCFullYear():a.getFullYear(),d=b?a.getUTCMonth()+1:a.getMonth()+1,e=b?a.getUTCDate():a.getDate();return[String(c),J(d),J(e)]}function F(a){return!!(a&&a.total>0)}function G(a){return"string"==typeof a&&a.trim()?a.trim():null}function H(a){return"number"==typeof a&&Number.isFinite(a)?a:null}function I(a){return!!(a&&"object"==typeof a&&!Array.isArray(a))}function J(a){return String(a).padStart(2,"0")}async function K(a){let b=(0,n.Xy)(a);if(!a.agentId||!b)return null;let c=await (0,o.WU)(a.agentId,b,a.workspacePath??void 0);if(!c)return null;try{let d=await (0,f.readFile)(c,"utf8"),e=(0,m.ho)(a,b),g=(0,o.qv)(e,(0,o.SI)(d,e,a.workspacePath??void 0));if(0===g.length||a.mission&&!g.some(b=>(0,l.Dm)(b.prompt,a.mission)))return null;return e}catch{return null}}async function L(){try{let a=await (0,f.readdir)(q,{withFileTypes:!0}),b=Date.now();return(await Promise.all(a.filter(a=>a.isFile()&&a.name.endsWith(".json")).map(async a=>{var c,d;let e,g=h().join(q,a.name),i=await N(g);return i?(c=i,d=b,e=Date.parse(c.updatedAt),!Number.isNaN(e)&&d-e>2592e5)?(await (0,f.rm)(g,{force:!0}),i.runner.logPath&&await (0,f.rm)(i.runner.logPath,{force:!0}),null):i:null}))).filter(a=>!!a).sort((a,b)=>Date.parse(b.updatedAt)-Date.parse(a.updatedAt))}catch{return[]}}async function M(a){return N(Q(a))}async function N(a){try{let b=await (0,f.readFile)(a,"utf8"),c=JSON.parse(b);if(!c||"object"!=typeof c||"string"!=typeof c.id||"string"!=typeof c.agentId||"string"!=typeof c.mission||"string"!=typeof c.routedMission||"string"!=typeof c.submittedAt||"string"!=typeof c.updatedAt)return null;let d=(0,n.cS)(c.status);return{id:c.id,status:d,agentId:c.agentId,sessionId:"string"==typeof c.sessionId?c.sessionId:null,mission:c.mission,routedMission:c.routedMission,thinking:(0,n.YY)(c.thinking),workspaceId:"string"==typeof c.workspaceId?c.workspaceId:null,workspacePath:"string"==typeof c.workspacePath?c.workspacePath:null,submittedAt:c.submittedAt,updatedAt:c.updatedAt,outputDir:"string"==typeof c.outputDir?c.outputDir:null,outputDirRelative:"string"==typeof c.outputDirRelative?c.outputDirRelative:null,notesDirRelative:"string"==typeof c.notesDirRelative?c.notesDirRelative:null,runner:{pid:"number"==typeof c.runner?.pid?c.runner.pid:null,childPid:"number"==typeof c.runner?.childPid?c.runner.childPid:null,startedAt:"string"==typeof c.runner?.startedAt?c.runner.startedAt:null,finishedAt:"string"==typeof c.runner?.finishedAt?c.runner.finishedAt:null,lastHeartbeatAt:"string"==typeof c.runner?.lastHeartbeatAt?c.runner.lastHeartbeatAt:null,logPath:"string"==typeof c.runner?.logPath?c.runner.logPath:R(c.id)},observation:{runtimeId:"string"==typeof c.observation?.runtimeId?c.observation.runtimeId:null,observedAt:"string"==typeof c.observation?.observedAt?c.observation.observedAt:null},result:(0,n.Ok)(c.result)?c.result:null,error:"string"==typeof c.error?c.error:null}}catch{return null}}function O(a){return"completed"===a||"stalled"===a||"cancelled"===a}function P(a){let b="string"==typeof a?a.trim():"";return b.length>0?b:"Mission aborted by operator."}function Q(a){return h().join(q,`${a}.json`)}function R(a){return h().join(q,`${a}.log.jsonl`)}function S(a,b){let c=a?Date.parse(a):NaN,d=b?Date.parse(b):NaN;return Number.isNaN(c)?b??new Date().toISOString():Number.isNaN(d)||c>=d?a??new Date().toISOString():b}function T(a){return"number"==typeof a&&Number.isFinite(a)?new Date(a).toISOString():null}},38610:(a,b,c)=>{function d(a){return!a||"native-ws"!==a.gatewayMode||"connected"!==a.connectionState||(!!a.lastNativeError||!!a.recovery)&&!!a.lastNativeFailureAt&&!!a.lastConnectedAt&&f(a.lastNativeFailureAt,a.lastConnectedAt)}function e(a,b){return a.filter(a=>!b||"native-ws"!==b.gatewayMode||"connected"!==b.connectionState||f(a.at,b.lastConnectedAt))}function f(a,b){if(!b)return!0;if(!a)return!1;let c=Date.parse(a),d=Date.parse(b);return!(Number.isFinite(c)&&Number.isFinite(d))||c>=d}c.d(b,{aH:()=>d,wi:()=>e})},38798:(a,b,c)=>{c.d(b,{JG:()=>d.JG,Lo:()=>d.Lo,aj:()=>d.aj,gH:()=>d.gH}),c(38699);var d=c(26516)},39802:(a,b,c)=>{function d(a){return"string"==typeof a&&a.trim().length>0?a.trim():null}function e(a){let[b,c,e,f]=a.trim().split(":");return("channel"===b||"thread"===b||"role"===b)&&d(e)?{kind:b,guildId:c&&"_"!==c?d(c):null,targetId:d(e),parentId:"thread"===b?d(f):null}:null}c.d(b,{S:()=>e})},49922:(a,b,c)=>{function d(a){let b=a.trim();return/OAuth token refresh failed for openai-codex/i.test(b)||/OpenAI Codex token refresh failed\s*\(401\)/i.test(b)||/refresh token has already been used to generate a new access token/i.test(b)}function e(a){let b;return d(a)||(b=a.trim(),/Your ChatGPT\/Codex session has expired/i.test(b)&&/models auth login --provider openai-codex/i.test(b))}function f(a){return/OpenClaw command timed out after \d+ seconds|Command exceeded \d+ seconds/i.test(a)}function g(a){return`Your ChatGPT/Codex session has expired. Reconnect ChatGPT, then retry model discovery or runtime verification. Run: ${a}`}function h(a){var b;return`${b=a,/^[a-zA-Z0-9_./:@%+=,-]+$/.test(b)?b:`'${b.replaceAll("'","'\\''")}'`} models auth login --provider openai-codex --set-default`}c.d(b,{Bd:()=>d,Lw:()=>f,MF:()=>h,YG:()=>e,ox:()=>g})},54252:(a,b,c)=>{c.d(b,{u:()=>j});var d=c(51455),e=c(76760),f=c.n(e),g=c(66058),h=c(58889),i=c(15612);async function j(a){let b=await (0,h.OL)(a),c=b.name??f().basename(a),e=b.template?(0,i.hh)(b.template).label:"Workspace",j=b.sourceMode??"empty",k=b.rules??{workspaceOnly:!0},l=(0,g.EB)(b.agents),m=f().join(a,"AGENTS.md"),n="";try{n=await (0,d.readFile)(m,"utf8")}catch{n=(0,g.jR)({name:c,templateLabel:e,sourceMode:j,workspaceOnly:!!k.workspaceOnly,agents:b.agents})}let o=(0,g.LP)(n,"Team",l,"Workspace"),p=(0,g.Jy)(o,b.agents),q=(0,g.LP)(o,"Agent Roles",p,"Team"),r=(0,g.Be)(q);r!==n&&(await (0,d.mkdir)(f().dirname(m),{recursive:!0}),await (0,d.writeFile)(m,r,"utf8"))}},56763:(a,b,c)=>{c.d(b,{Em:()=>h,Jb:()=>g,wz:()=>i});var d=c(77598),e=c(39503),f=c(70016);async function g(a=1e4){try{let b=await (0,e.rw)().getRuntimeSnapshot({includeSessions:!0,includeTasks:!0,includeArtifacts:!0,limit:500},{timeoutMs:a});return{status:"fulfilled",value:b}}catch(a){return{status:"rejected",reason:a}}}function h(a,b){return v(a)?[...p(a.runtimes).flatMap(a=>(function(a,b){var c;let d=r(a.id)??r(a.runtimeId),e=r(a.key)??r(a.sessionKey)??r(a.taskId)??d,f=r(a.title),g=r(a.subtitle)??r(a.summary)??r(a.message);if(!d||!e||!f||!g)return[];let h=u(a.updatedAt??a.timestamp??a.ts),i=r(a.agentId)??w(e),m=r(a.workspaceId)??n(i,b);return[{id:d,source:"session"===(c=r(a.source))||"cron"===c||"turn"===c?c:"turn",key:e,title:f,subtitle:g,status:j(r(a.status)??""),updatedAt:h,ageMs:t(a.ageMs)??(h?Math.max(0,Date.now()-h):null),agentId:i??void 0,workspaceId:m??void 0,modelId:r(a.modelId)??r(a.model)??void 0,sessionId:r(a.sessionId)??void 0,taskId:r(a.taskId)??void 0,runId:r(a.runId)??void 0,toolNames:k(a),tokenUsage:l(a),metadata:{...v(a.metadata)?a.metadata:{},origin:"openclaw-runtime-snapshot",gatewayObjectKind:"runtime"}}]})(a,b)),...p(a.sessions).flatMap(a=>(function(a,b){let c=r(a.agentId)??w(r(a.key)??r(a.sessionKey)),d=r(a.key)??r(a.sessionKey)??(c?`agent:${c}:main`:r(a.sessionId));if(!d&&!c)return[];let e={agentId:c??void 0,key:d??void 0,sessionId:r(a.sessionId)??r(a.id)??void 0,updatedAt:u(a.updatedAt??a.timestamp??a.ts),ageMs:t(a.ageMs)??void 0,inputTokens:t(a.inputTokens),outputTokens:t(a.outputTokens),cacheRead:t(a.cacheRead),totalTokens:t(a.totalTokens),model:r(a.model)??r(a.modelId)??void 0,kind:r(a.kind)??"runtime",origin:"openclaw-runtime-snapshot",mission:r(a.mission)??r(a.prompt)??void 0,dispatchId:r(a.dispatchId)??void 0},g=(0,f.$Z)(e,b.agentConfig,b.agentsList,{resolveWorkspaceId:b.resolveWorkspaceId});return[{...g,id:r(a.runtimeId)??(0,f.kO)(e),title:r(a.title)??g.title,subtitle:r(a.summary)??r(a.message)??g.subtitle,status:j(r(a.status)??g.status),toolNames:k(a)??g.toolNames,metadata:{...g.metadata,origin:"openclaw-runtime-snapshot",gatewayObjectKind:"session",event:r(a.event)??null}}]})(a,b)),...p(a.tasks).flatMap(a=>(function(a,b){let c=r(a.taskId)??r(a.id),d=r(a.agentId)??r(a.assigneeAgentId);if(!c&&!d)return[];let e=u(a.updatedAt??a.timestamp??a.ts??a.createdAt),f=r(a.workspaceId)??o(r(a.workspace),b)??n(d,b),g=r(a.mission)??r(a.prompt)??r(a.title),h=m(p(a.artifacts));return[{id:r(a.runtimeId)??`runtime:gateway-task:${x(c,d)}`,source:"turn",key:c??`agent:${d}:task`,title:r(a.title)??"Gateway task",subtitle:r(a.summary)??r(a.message)??r(a.status)??"OpenClaw task update",status:j(r(a.status)??""),updatedAt:e,ageMs:t(a.ageMs)??(e?Math.max(0,Date.now()-e):null),agentId:d??void 0,workspaceId:f??void 0,modelId:r(a.model)??r(a.modelId)??void 0,sessionId:r(a.sessionId)??void 0,taskId:c??void 0,runId:r(a.runId)??void 0,toolNames:k(a),tokenUsage:l(a),metadata:{origin:"openclaw-runtime-snapshot",gatewayObjectKind:"task",taskId:c??null,mission:g,dispatchId:r(a.dispatchId)??null,createdFiles:h}}]})(a,b)),...p(a.artifacts).flatMap(a=>(function(a,b){let c=r(a.artifactId)??r(a.id),d=r(a.taskId),e=r(a.sessionId),f=r(a.agentId);if(!c&&!d&&!e)return[];let g=u(a.updatedAt??a.timestamp??a.ts??a.createdAt),h=m([a]),i=r(a.path)??r(a.name)??c??"artifact";return[{id:r(a.runtimeId)??`runtime:gateway-artifact:${x(c,d,e)}`,source:"turn",key:d??e??c??i,title:"Gateway artifact",subtitle:i,status:j(r(a.status)??"completed"),updatedAt:g,ageMs:t(a.ageMs)??(g?Math.max(0,Date.now()-g):null),agentId:f??void 0,workspaceId:r(a.workspaceId)??o(r(a.workspace),b)??n(f,b)??void 0,sessionId:e??void 0,taskId:d??void 0,runId:r(a.runId)??void 0,metadata:{origin:"openclaw-runtime-snapshot",gatewayObjectKind:"artifact",artifactId:c??null,createdFiles:h}}]})(a,b))]:[]}function i(a){let b=v(a.payload)?a.payload:{},c=r(a.event)??r(b.type)??"event",d=r(b.sessionKey)??r(b.key),e=r(b.agentId)??r(b.agent)??w(d),f=r(b.sessionId)??r(b.session)??d,g=r(b.runId)??r(b.run)??r(b.clientRunId),h=r(b.taskId)??r(q(b,"task")?.id),i=r(b.artifactId)??r(q(b,"artifact")?.id),l=u(b.timestamp??b.ts??b.updatedAt),n=j(r(b.status)??c),o=r(b.text)??r(b.message)??r(b.summary)??r(b.detail)??c,p=r(b.runtimeId)??`runtime:gateway:${x(e,f,g,h,i,c)}`;if(!e&&!f&&!g&&!h&&!i)return null;let s=m([b,q(b,"artifact")]);return{id:p,source:"turn",key:g||f||h||i||p,title:r(b.title)??(h?"Gateway task event":"Gateway runtime event"),subtitle:o,status:n,updatedAt:l,ageMs:l?Math.max(0,Date.now()-l):null,agentId:e??void 0,workspaceId:r(b.workspaceId)??void 0,sessionId:f??void 0,taskId:h??void 0,runId:g??void 0,modelId:r(b.model)??r(b.modelId)??void 0,toolNames:k(b),metadata:{origin:"openclaw-gateway-event",event:c,channel:r(b.channel)??null,approvalId:r(b.approvalId)??null,artifactId:i??null,mission:r(b.mission)??r(b.prompt)??null,createdFiles:s}}}function j(a){return/complete|done|success|succeeded/i.test(a)?"completed":/cancel|abort/i.test(a)?"cancelled":/error|fail|stall/i.test(a)?"stalled":/queue|pending/i.test(a)?"queued":/idle/i.test(a)?"idle":"running"}function k(a){let b=[r(a.toolName),r(a.tool),...s(a.tools),...s(a.toolNames)].filter(a=>!!a);return b.length>0?Array.from(new Set(b)):void 0}function l(a){let b=v(a.tokenUsage)?a.tokenUsage:a,c=t(b.inputTokens)??t(b.input),d=t(b.outputTokens)??t(b.output),e=t(b.totalTokens)??t(b.total);if(void 0!==c||void 0!==d||void 0!==e)return{input:c??0,output:d??0,total:e??(c??0)+(d??0),cacheRead:t(b.cacheRead)??0}}function m(a){let b=[];for(let c of a){if(!c)continue;let a=r(c.path)??r(c.filePath)??r(c.uri),d=r(c.displayPath)??r(c.name)??a;a&&d&&b.push({path:a,displayPath:d})}var c=b;let d=new Set,e=[];for(let a of c)d.has(a.path)||(d.add(a.path),e.push(a));return e}function n(a,b){if(!a)return null;let c=b.agentsList.find(b=>b.id===a),d=b.agentConfig.find(b=>b.id===a);return o(c?.workspace||d?.workspace,b)}function o(a,b){return a?b.resolveWorkspaceId?.(a):null}function p(a){return Array.isArray(a)?a.filter(a=>v(a)):[]}function q(a,b){let c=a[b];return v(c)?c:null}function r(a){return"string"==typeof a&&a.trim()?a.trim():null}function s(a){return Array.isArray(a)?a.map(r).filter(a=>!!a):[]}function t(a){return"number"==typeof a&&Number.isFinite(a)?a:void 0}function u(a){if("number"==typeof a&&Number.isFinite(a))return a<1e10?1e3*a:a;if("string"==typeof a){let b=Date.parse(a);return Number.isNaN(b)?Date.now():b}return Date.now()}function v(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function w(a){if(!a?.startsWith("agent:"))return null;let[,b]=a.split(":");return b||null}function x(...a){let b=a.filter(Boolean).join(":")||String(Date.now());return(0,d.createHash)("sha1").update(b).digest("hex").slice(0,12)}},57419:(a,b,c)=>{c.d(b,{L:()=>e});var d=c(9443);async function e(a,b){var c,e,j;let m,n=b.workspaceBootstrapProfile??await (0,d.xL)(a,b.template,b.rules),o=n.contextManifest,p=new Map(n.workspaceSections),q=[...n.workspaceSources],r=function(a,b){if(!a)return[];let c=b.trim().toLowerCase(),d=a.findIndex(a=>!!/^###\s+/.test(a)&&a.toLowerCase().includes(`\`${c}\``));if(-1===d)return[];let e=[];for(let b=d+1;b<a.length;b+=1){let c=a[b];if(/^###\s+/.test(c))break;e.push(c)}return e}(p.get("AGENTS.md"),b.agentId),s=i(r,"Role")??((m=g((c=p).get("docs/brief.md"),"Objective")??g(c.get("memory/blueprint.md"),"Outcome")??g(c.get("MEMORY.md"),"Current brief")??g(c.get("SOUL.md"),"My Purpose")??g(c.get("IDENTITY.md"),"Role")??g(c.get("AGENTS.md"),"Customize"))||null)??function({agentId:a,agentName:b,skills:c}){return c.length>0?`${b} specializes in ${c.join(", ")} workflows inside the attached workspace.`:/dev|build|coder|engineer/i.test(a)?`${b} is configured as a development-focused OpenClaw operator for this workspace.`:/review/i.test(a)?`${b} is configured to review work and surface quality risks for this workspace.`:/test/i.test(a)?`${b} is configured to validate behavior, testing, and runtime quality for this workspace.`:`${b} is a general-purpose OpenClaw operator attached to this workspace.`}({agentId:b.agentId,agentName:b.agentName,skills:b.configuredSkills}),t=(e=p,l([{file:"AGENTS.md",heading:"Safety defaults"},{file:"AGENTS.md",heading:"Daily memory"},{file:"AGENTS.md",heading:"Output"},{file:"SOUL.md",heading:"How I Operate"},{file:"TOOLS.md",heading:"Examples"},{file:"MEMORY.md",heading:"Stable facts"},{file:"memory/blueprint.md",heading:"Constraints"},{file:"memory/blueprint.md",heading:"Unknowns"},{file:"docs/brief.md",heading:"Success signals"},{file:"docs/brief.md",heading:"Open questions"},{file:"docs/architecture.md",heading:"Dependencies"},{file:"docs/architecture.md",heading:"Risks"},{file:"deliverables/README.md",heading:"Deliverables"},...o.resources.filter(a=>a.relativePath.startsWith("docs/")&&"docs/brief.md"!==a.relativePath&&"docs/architecture.md"!==a.relativePath).flatMap(a=>a.headings.map(b=>({file:a.relativePath,heading:b})))].flatMap(a=>h(e.get(a.file),a.heading)))).slice(0,8),u=l([...function(a,b){if(!a)return[];let c=a.find(a=>a.toLowerCase().includes(`**${b.toLowerCase()}:**`));if(!c)return[];let[,d=""]=c.split(":");return d.split(",").map(a=>k(a)).filter(Boolean)}(p.get("IDENTITY.md"),"Vibe"),...[i(j=r,"Role"),i(j,"Preset"),i(j,"File access")].filter(a=>!!a),...h(p.get("SOUL.md"),"My Quirks"),...h(p.get("SOUL.md"),"How I Operate")]).slice(0,6)||[],v=f(p.get("AGENTS.md"))??f(p.get("deliverables/README.md"))??(b.configuredTools.includes("fs.workspaceOnly")?"Prefer workspace-grounded output tied to real project files and artifacts.":null);return{purpose:s,operatingInstructions:t.length>0?t:b.configuredTools.includes("fs.workspaceOnly")?["Operate within the attached workspace and avoid spilling changes outside it."]:["No explicit operating instructions were found in workspace bootstrap files."],responseStyle:u,outputPreference:v,sourceFiles:q}}function f(a){if(!a)return null;let b=a.find(a=>/be concise in chat|write longer output to files|output/i.test(a));return b?k(b):null}function g(a,b){if(!a)return null;let c=a.findIndex(a=>j(a)===j(b));if(-1===c)return null;let d=[];for(let b=c+1;b<a.length;b+=1){let c=a[b].trim();if(!c){if(d.length>0)break;continue}if(/^#+\s+/.test(c)||/^[-*]\s+/.test(c)||(d.push(k(c)),d.length>=2))break}return d.length>0?d.join(" "):null}function h(a,b){if(!a)return[];let c=a.findIndex(a=>j(a)===j(b));if(-1===c)return[];let d=[];for(let b=c+1;b<a.length;b+=1){let c=a[b].trim();if(!c&&d.length>0||/^#+\s+/.test(c))break;if(/^[-*]\s+/.test(c)){d.push(k(c.replace(/^[-*]\s+/,"")));continue}if(d.length>0)break}return d}function i(a,b){if(!a)return null;let c=`- ${b}:`,d=a.find(a=>a.trim().toLowerCase().startsWith(c.toLowerCase()));return d?k(d.slice(c.length)):null}function j(a){return a.replace(/^#+\s+/,"").trim().toLowerCase()}function k(a){return a.replace(/[`*_>#-]/g,"").replace(/\s+/g," ").trim()}function l(a){return Array.from(new Set(a.filter(Boolean)))}},58889:(a,b,c)=>{c.d(b,{OL:()=>m,QO:()=>n,_E:()=>q,aW:()=>o,kf:()=>p,qc:()=>r});var d=c(51455),e=c(76760),f=c.n(e),g=c(93628),h=c(15612);function i(a){return"string"==typeof a&&a.trim().length>0?a.trim():null}function j(a){return Array.from(new Set(a.filter(Boolean)))}function k(a){return a.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,64)}function l(a){return"object"==typeof a&&null!==a}async function m(a){let b=f().join(a,".openclaw","project.json");try{var c,e,g,j,m;let a=await (0,d.readFile)(b,"utf8"),f=JSON.parse(a),n=l(f)?f:{},q=Array.isArray(n.agents)?n.agents.map(a=>o(a)).filter(a=>!!a):[],r=Array.isArray(n.channels)?n.channels.map(a=>{var b;return b=a,p(b)}).filter(a=>!!a):[],t=function(a){if(!l(a))return null;let b="boolean"==typeof a.workspaceOnly?a.workspaceOnly:null,c="boolean"==typeof a.generateStarterDocs?a.generateStarterDocs:null,d="boolean"==typeof a.generateMemory?a.generateMemory:null,e="boolean"==typeof a.kickoffMission?a.kickoffMission:null;return null===b&&null===c&&null===d&&null===e?null:{workspaceOnly:b??!0,generateStarterDocs:c??h.eY.generateStarterDocs,generateMemory:d??h.eY.generateMemory,kickoffMission:e??h.eY.kickoffMission}}(n.rules);return{name:"string"==typeof n.name?n.name:null,directory:"string"==typeof n.directory?n.directory:null,template:(c=n.template,"software"===c||"frontend"===c||"backend"===c||"research"===c||"content"===c)?n.template:null,sourceMode:(e=n.sourceMode,"empty"===e||"clone"===e||"existing"===e)?n.sourceMode:null,agentTemplate:"string"==typeof n.agentTemplate?n.agentTemplate:null,teamPreset:(g=n.teamPreset,"solo"===g||"core"===g||"custom"===g)?n.teamPreset:null,modelProfile:(j=n.modelProfile,"balanced"===j||"fast"===j||"quality"===j)?n.modelProfile:null,rules:t,hidden:!0===n.hidden,systemTag:"string"==typeof n.systemTag?n.systemTag:null,contextSources:(m=n.contextSources,Array.isArray(m)?m.flatMap(a=>{if(!l(a))return[];let b=s(a.kind)?a.kind:"prompt",c="string"==typeof a.label&&a.label.trim()?a.label.trim():b,d="string"==typeof a.summary&&a.summary.trim()?a.summary.trim():c;return[{id:"string"==typeof a.id&&a.id.trim()?a.id.trim():`${b}-${k(c)||"context"}`,kind:b,label:c,summary:d,details:Array.isArray(a.details)?a.details.filter(a=>"string"==typeof a):[],status:"error"===a.status?"error":"ready",createdAt:"string"==typeof a.createdAt?a.createdAt:new Date().toISOString(),confidence:"number"==typeof a.confidence?a.confidence:void 0,url:"string"==typeof a.url?a.url:void 0,error:"string"==typeof a.error?a.error:void 0}].flatMap(a=>{if(!a||"object"!=typeof a)return[];let b=s(a.kind)?a.kind:"prompt",c=i(a.label)??b,d=i(a.summary)??c,e="error"===a.status?"error":"ready",f=i(a.createdAt)??new Date().toISOString(),g=i(a.error),h=i(a.url);return c&&d?[{id:i(a.id)??`${b}-${k(c)||"context"}`,kind:b,label:c,summary:d,details:Array.isArray(a.details)?a.details.map(a=>i(a)??"").filter(a=>!!a):[],status:e,createdAt:f,..."number"==typeof a.confidence?{confidence:a.confidence}:{},...g?{error:g}:{},...h?{url:h}:{}}]:[]})}):[]),agents:q,channels:r}}catch{return{name:null,directory:null,template:null,sourceMode:null,agentTemplate:null,teamPreset:null,modelProfile:null,rules:null,hidden:!1,systemTag:null,contextSources:[],agents:[],channels:[]}}}async function n(a,b){let c=f().join(a,".openclaw","project.json"),e=new Set(Array.from(b).map(a=>i(a)).filter(a=>!!a));if(0===e.size)return m(a);try{let b=await (0,d.readFile)(c,"utf8"),g=JSON.parse(b),h=l(g)?g:{};if(!Array.isArray(h.agents))return m(a);let i=h.agents.map(a=>o(a)).filter(a=>!!a),j=i.filter(a=>e.has(a.id)),n=i.filter(a=>!e.has(a.id)).map(a=>a.id);if(j.length===i.length)return m(a);j.length>0&&!j.some(a=>a.isPrimary)&&(j[0]={...j[0],isPrimary:!0}),h.updatedAt=new Date().toISOString(),h.agents=j,await (0,d.writeFile)(c,`${JSON.stringify(h,null,2)}
128
138
  `,"utf8"),await Promise.all(n.map(b=>{var c;return(0,d.rm)(f().join(a,"skills",(c=b,`agent-policy-${k(c)||"agent"}`)),{recursive:!0,force:!0}).catch(()=>void 0)}))}catch{}return m(a)}function o(a){var b;if(!l(a)||"string"!=typeof a.id)return null;let c=j([...Array.isArray(a.skillIds)?a.skillIds.filter(a=>"string"==typeof a).map(a=>a.trim()):[],"string"==typeof a.skillId?a.skillId.trim():""]);return{id:a.id,name:"string"==typeof a.name?a.name:null,role:"string"==typeof a.role?a.role:null,isPrimary:!!a.isPrimary,enabled:!1!==a.enabled,skillId:c[0]??null,skillIds:c,toolIds:Array.isArray(a.toolIds)?j(a.toolIds.filter(a=>"string"==typeof a).map(a=>a.trim()).filter(a=>!!a&&"fs.workspaceOnly"!==a)):[],modelId:"string"==typeof a.modelId?a.modelId:null,emoji:"string"==typeof a.emoji?a.emoji:null,theme:"string"==typeof a.theme?a.theme:null,policy:l(b=a.policy)&&(0,g.Pj)(b.preset)&&(0,g.Ew)(b.missingToolBehavior)&&(0,g.hR)(b.installScope)&&(0,g.c_)(b.fileAccess)&&(0,g.go)(b.networkAccess)?{preset:b.preset,missingToolBehavior:b.missingToolBehavior,installScope:b.installScope,fileAccess:b.fileAccess,networkAccess:b.networkAccess}:null,channelIds:Array.isArray(a.channelIds)?a.channelIds.filter(a=>"string"==typeof a&&!!a.trim()):[]}}function p(a){return l(a)&&"string"==typeof a.id?{id:a.id,type:t(a.type)?a.type:"internal",name:"string"==typeof a.name?a.name:a.id,primaryAgentId:"string"==typeof a.primaryAgentId?a.primaryAgentId:null,workspaces:Array.isArray(a.workspaces)?a.workspaces.map(a=>{var b;return l(b=a)&&"string"==typeof b.workspaceId&&"string"==typeof b.workspacePath?{workspaceId:b.workspaceId,workspacePath:b.workspacePath,agentIds:Array.isArray(b.agentIds)?b.agentIds.filter(a=>"string"==typeof a&&!!a.trim()):[],groupAssignments:Array.isArray(b.groupAssignments)?b.groupAssignments.map(a=>{var b;return l(b=a)&&"string"==typeof b.chatId?{chatId:b.chatId,agentId:"string"==typeof b.agentId?b.agentId:null,title:"string"==typeof b.title?b.title:null,enabled:!1!==b.enabled}:null}).filter(a=>!!a):[]}:null}).filter(a=>!!a):[]}:null}function q(a){let b=a.channels.map(a=>({id:a.id.trim(),type:t(a.type)?a.type:"internal",name:a.name.trim()||a.id.trim(),primaryAgentId:i(a.primaryAgentId)??null,workspaces:a.workspaces.map(a=>({workspaceId:a.workspaceId.trim(),workspacePath:a.workspacePath.trim(),agentIds:j(a.agentIds.map(a=>a.trim()).filter(Boolean)),groupAssignments:a.groupAssignments.map(a=>({chatId:a.chatId.trim(),agentId:i(a.agentId)??null,title:i(a.title)??null,enabled:!1!==a.enabled})).filter(a=>!!a.chatId)})).filter(a=>!!a.workspaceId&&!!a.workspacePath)})).filter(a=>!!a.id),c=new Map;for(let a of b){let b=c.get(a.id);if(!b){c.set(a.id,{...a,workspaces:a.workspaces});continue}let d=new Map;for(let a of b.workspaces)d.set(a.workspaceId,a);for(let b of a.workspaces){let a=d.get(b.workspaceId);if(!a){d.set(b.workspaceId,b);continue}d.set(b.workspaceId,{...a,agentIds:j([...a.agentIds,...b.agentIds]),groupAssignments:r([...a.groupAssignments,...b.groupAssignments])})}c.set(a.id,{...b,name:b.name||a.name,primaryAgentId:b.primaryAgentId||a.primaryAgentId,workspaces:Array.from(d.values())})}return{version:1,channels:Array.from(c.values())}}function r(a){let b=new Map;for(let c of a)c.chatId&&b.set(c.chatId,c);return Array.from(b.values())}function s(a){return"prompt"===a||"website"===a||"repo"===a||"folder"===a}function t(a){return"string"==typeof a&&a.trim().length>0}},65395:(a,b,c)=>{c.d(b,{W2:()=>e,a3:()=>f});let d=[{id:"openai-codex",label:"ChatGPT",shortLabel:"ChatGPT",description:"Connect your ChatGPT account and pull in Codex-ready models.",category:"primary",connectKind:"oauth",accent:"from-[#d8f5eb] via-[#ebfbf5] to-white",helperText:"Account-based login with the OpenClaw provider flow."},{id:"openrouter",label:"OpenRouter",shortLabel:"OpenRouter",description:"Add an API key, discover the full catalog, and curate the models you want.",category:"primary",connectKind:"apiKey",accent:"from-[#fff2d7] via-[#fff7ea] to-white",helperText:"Best for broad model access and curated remote routes.",searchPlaceholder:"Search OpenRouter models"},{id:"ollama",label:"Ollama Local",shortLabel:"Ollama",description:"Discover models already available on this machine and add them instantly.",category:"primary",connectKind:"local",accent:"from-[#deefff] via-[#f2f8ff] to-white",helperText:"Local-first discovery with helpful pull commands when empty."},{id:"anthropic",label:"Anthropic",shortLabel:"Anthropic",description:"Paste an API key and add Claude models through the same flow.",category:"other",connectKind:"apiKey",accent:"from-[#efe9ff] via-[#f7f3ff] to-white",helperText:"Simple API key connection."},{id:"openai",label:"OpenAI API",shortLabel:"OpenAI",description:"Connect a standard OpenAI API key for direct GPT model access.",category:"other",connectKind:"apiKey",accent:"from-[#e8f8e8] via-[#f4fbf4] to-white",helperText:"Use this for API-key-based OpenAI routing."},{id:"google",label:"Gemini",shortLabel:"Gemini",description:"Add a Gemini API key, discover Google models, and pick the routes you want.",category:"other",connectKind:"apiKey",accent:"from-[#e6f7ff] via-[#f4fbff] to-white",helperText:"Simple API key connection.",searchPlaceholder:"Search Gemini models"},{id:"deepseek",label:"DeepSeek",shortLabel:"DeepSeek",description:"Add a DeepSeek API key, discover the catalog, and add the models you need.",category:"other",connectKind:"apiKey",accent:"from-[#e7eeff] via-[#f4f7ff] to-white",helperText:"Simple API key connection.",searchPlaceholder:"Search DeepSeek models"},{id:"mistral",label:"Mistral",shortLabel:"Mistral",description:"Add a Mistral API key, discover Mistral and Codestral models, and curate your routes.",category:"other",connectKind:"apiKey",accent:"from-[#f2e8ff] via-[#fbf7ff] to-white",helperText:"Simple API key connection.",searchPlaceholder:"Search Mistral models"},{id:"xai",label:"xAI",shortLabel:"xAI",description:"Use an xAI API key to bring Grok models into AgentOS.",category:"other",connectKind:"apiKey",accent:"from-[#ffe6ea] via-[#fff3f5] to-white",helperText:"Simple API key connection."}];function e(a){let b=d.find(b=>b.id===a);if(!b)throw Error(`Unknown model provider: ${a}`);return b}function f(a){return"string"==typeof a&&d.some(b=>b.id===a)}d.filter(a=>"primary"===a.category),d.filter(a=>"other"===a.category)},66058:(a,b,c)=>{c.d(b,{Be:()=>x,EB:()=>f,Jy:()=>h,LP:()=>s,Qe:()=>j,jR:()=>e,t5:()=>k});var d=c(93628);function e(a){return`# ${a.name}
129
139
 
@@ -170,4 +180,4 @@ Each agent should use only the subsection matching its current OpenClaw agent id
170
180
 
171
181
  ${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
182
  `}},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}}};
183
+ `,"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}}};