@sapienx/agentos 0.4.5 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/bundle/.next/BUILD_ID +1 -1
  2. package/bundle/.next/app-path-routes-manifest.json +15 -11
  3. package/bundle/.next/build-manifest.json +3 -3
  4. package/bundle/.next/prerender-manifest.json +3 -3
  5. package/bundle/.next/react-loadable-manifest.json +3 -3
  6. package/bundle/.next/routes-manifest.json +28 -0
  7. package/bundle/.next/server/app/_global-error/page.js +3 -3
  8. package/bundle/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/bundle/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/bundle/.next/server/app/_global-error.html +1 -1
  11. package/bundle/.next/server/app/_global-error.rsc +1 -1
  12. package/bundle/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  13. package/bundle/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  14. package/bundle/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  15. package/bundle/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  16. package/bundle/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  17. package/bundle/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/bundle/.next/server/app/_not-found/page.js +2 -2
  19. package/bundle/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/bundle/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/bundle/.next/server/app/_not-found.html +1 -1
  22. package/bundle/.next/server/app/_not-found.rsc +2 -2
  23. package/bundle/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  24. package/bundle/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  25. package/bundle/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  26. package/bundle/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  27. package/bundle/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  28. package/bundle/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  29. package/bundle/.next/server/app/api/agents/[agentId]/chat/route.js +5 -5
  30. package/bundle/.next/server/app/api/agents/[agentId]/chat/route.js.nft.json +1 -1
  31. package/bundle/.next/server/app/api/agents/route.js +1 -1
  32. package/bundle/.next/server/app/api/agents/route.js.nft.json +1 -1
  33. package/bundle/.next/server/app/api/diagnostics/route.js +1 -1
  34. package/bundle/.next/server/app/api/diagnostics/route.js.nft.json +1 -1
  35. package/bundle/.next/server/app/api/files/reveal/route.js +1 -1
  36. package/bundle/.next/server/app/api/files/reveal/route.js.nft.json +1 -1
  37. package/bundle/.next/server/app/api/gateway/control/route.js +1 -1
  38. package/bundle/.next/server/app/api/gateway/control/route.js.nft.json +1 -1
  39. package/bundle/.next/server/app/api/mission/route.js +1 -1
  40. package/bundle/.next/server/app/api/mission/route.js.nft.json +1 -1
  41. package/bundle/.next/server/app/api/models/catalog/route.js +2 -1
  42. package/bundle/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
  43. package/bundle/.next/server/app/api/models/providers/route.js +2 -2
  44. package/bundle/.next/server/app/api/models/providers/route.js.nft.json +1 -1
  45. package/bundle/.next/server/app/api/onboarding/models/route.js +10 -7
  46. package/bundle/.next/server/app/api/onboarding/models/route.js.nft.json +1 -1
  47. package/bundle/.next/server/app/api/onboarding/route.js +8 -8
  48. package/bundle/.next/server/app/api/onboarding/route.js.nft.json +1 -1
  49. package/bundle/.next/server/app/api/openclaw/capabilities/route.js +1 -3
  50. package/bundle/.next/server/app/api/openclaw/capabilities/route.js.nft.json +1 -1
  51. package/bundle/.next/server/app/api/planner/[planId]/deploy/route.js +2 -2
  52. package/bundle/.next/server/app/api/planner/[planId]/deploy/route.js.nft.json +1 -1
  53. package/bundle/.next/server/app/api/planner/[planId]/document-rewrite/route.js +1 -1
  54. package/bundle/.next/server/app/api/planner/[planId]/document-rewrite/route.js.nft.json +1 -1
  55. package/bundle/.next/server/app/api/planner/[planId]/route.js +1 -1
  56. package/bundle/.next/server/app/api/planner/[planId]/route.js.nft.json +1 -1
  57. package/bundle/.next/server/app/api/planner/[planId]/simulate/route.js +1 -1
  58. package/bundle/.next/server/app/api/planner/[planId]/simulate/route.js.nft.json +1 -1
  59. package/bundle/.next/server/app/api/planner/[planId]/turn/route.js +1 -1
  60. package/bundle/.next/server/app/api/planner/[planId]/turn/route.js.nft.json +1 -1
  61. package/bundle/.next/server/app/api/planner/route.js +1 -1
  62. package/bundle/.next/server/app/api/planner/route.js.nft.json +1 -1
  63. package/bundle/.next/server/app/api/reset/route.js +3 -3
  64. package/bundle/.next/server/app/api/reset/route.js.nft.json +1 -1
  65. package/bundle/.next/server/app/api/runtimes/[runtimeId]/route.js +1 -1
  66. package/bundle/.next/server/app/api/runtimes/[runtimeId]/route.js.nft.json +1 -1
  67. package/bundle/.next/server/app/api/settings/gateway/route.js +1 -1
  68. package/bundle/.next/server/app/api/settings/gateway/route.js.nft.json +1 -1
  69. package/bundle/.next/server/app/api/settings/openclaw-binary/route.js +1 -0
  70. package/bundle/.next/server/app/api/settings/openclaw-binary/route.js.nft.json +1 -0
  71. package/bundle/.next/server/app/api/settings/openclaw-binary/route_client-reference-manifest.js +1 -0
  72. package/bundle/.next/server/app/api/settings/workspace-root/route.js +1 -1
  73. package/bundle/.next/server/app/api/settings/workspace-root/route.js.nft.json +1 -1
  74. package/bundle/.next/server/app/api/snapshot/route.js +1 -1
  75. package/bundle/.next/server/app/api/snapshot/route.js.nft.json +1 -1
  76. package/bundle/.next/server/app/api/stream/route.js +3 -3
  77. package/bundle/.next/server/app/api/stream/route.js.nft.json +1 -1
  78. package/bundle/.next/server/app/api/system/open-terminal/route.js +1 -1
  79. package/bundle/.next/server/app/api/system/open-terminal/route.js.nft.json +1 -1
  80. package/bundle/.next/server/app/api/tasks/[taskId]/abort/route.js +1 -1
  81. package/bundle/.next/server/app/api/tasks/[taskId]/abort/route.js.nft.json +1 -1
  82. package/bundle/.next/server/app/api/tasks/[taskId]/control/route.js +1 -0
  83. package/bundle/.next/server/app/api/tasks/[taskId]/control/route.js.nft.json +1 -0
  84. package/bundle/.next/server/app/api/tasks/[taskId]/control/route_client-reference-manifest.js +1 -0
  85. package/bundle/.next/server/app/api/tasks/[taskId]/stream/route.js +3 -3
  86. package/bundle/.next/server/app/api/tasks/[taskId]/stream/route.js.nft.json +1 -1
  87. package/bundle/.next/server/app/api/update/route.js +7 -4
  88. package/bundle/.next/server/app/api/update/route.js.nft.json +1 -1
  89. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/discovered-groups/route.js +1 -1
  90. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/discovered-groups/route.js.nft.json +1 -1
  91. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/route.js +1 -1
  92. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/route.js.nft.json +1 -1
  93. package/bundle/.next/server/app/api/workspaces/[workspaceId]/edit-draft/route.js +1 -1
  94. package/bundle/.next/server/app/api/workspaces/[workspaceId]/edit-draft/route.js.nft.json +1 -1
  95. package/bundle/.next/server/app/api/workspaces/[workspaceId]/files/route.js +1 -0
  96. package/bundle/.next/server/app/api/workspaces/[workspaceId]/files/route.js.nft.json +1 -0
  97. package/bundle/.next/server/app/api/workspaces/[workspaceId]/files/route_client-reference-manifest.js +1 -0
  98. package/bundle/.next/server/app/api/workspaces/[workspaceId]/surfaces/discovery/route.js +1 -1
  99. package/bundle/.next/server/app/api/workspaces/[workspaceId]/surfaces/discovery/route.js.nft.json +1 -1
  100. package/bundle/.next/server/app/api/workspaces/route.js +2 -2
  101. package/bundle/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  102. package/bundle/.next/server/app/page.js +2 -194
  103. package/bundle/.next/server/app/page.js.nft.json +1 -1
  104. package/bundle/.next/server/app/page_client-reference-manifest.js +1 -1
  105. package/bundle/.next/server/app/settings/page.js +2 -0
  106. package/bundle/.next/server/app/settings/page.js.nft.json +1 -0
  107. package/bundle/.next/server/app/settings/page_client-reference-manifest.js +1 -0
  108. package/bundle/.next/server/app-paths-manifest.json +15 -11
  109. package/bundle/.next/server/chunks/3816.js +280 -0
  110. package/bundle/.next/server/chunks/408.js +10 -10
  111. package/bundle/.next/server/chunks/5151.js +173 -0
  112. package/bundle/.next/server/chunks/5678.js +1 -0
  113. package/bundle/.next/server/chunks/6035.js +45 -0
  114. package/bundle/.next/server/chunks/6639.js +11 -0
  115. package/bundle/.next/server/chunks/7125.js +188 -0
  116. package/bundle/.next/server/chunks/7639.js +98 -0
  117. package/bundle/.next/server/chunks/7661.js +1 -0
  118. package/bundle/.next/server/chunks/7825.js +1 -0
  119. package/bundle/.next/server/chunks/8155.js +15 -0
  120. package/bundle/.next/server/chunks/9663.js +2 -0
  121. package/bundle/.next/server/functions-config-manifest.json +12 -0
  122. package/bundle/.next/server/middleware-build-manifest.js +1 -1
  123. package/bundle/.next/server/middleware-react-loadable-manifest.js +1 -1
  124. package/bundle/.next/server/middleware.js +18 -0
  125. package/bundle/.next/server/pages/404.html +1 -1
  126. package/bundle/.next/server/pages/500.html +1 -1
  127. package/bundle/.next/server/server-reference-manifest.json +1 -1
  128. package/bundle/.next/server/webpack-runtime.js +1 -1
  129. package/bundle/.next/static/chunks/1994.af8e615920391b12.js +1 -0
  130. package/bundle/.next/static/chunks/2798.05bb8e435bca457c.js +1 -0
  131. package/bundle/.next/static/chunks/3254-31132332d1368b3c.js +15 -0
  132. package/bundle/.next/static/chunks/7442-edd29c3664c12f82.js +188 -0
  133. package/bundle/.next/static/chunks/app/_global-error/page-a39fe5a18111b91d.js +1 -0
  134. package/bundle/.next/static/chunks/app/_not-found/page-a39fe5a18111b91d.js +1 -0
  135. package/bundle/.next/static/chunks/app/api/agents/[agentId]/chat/route-a39fe5a18111b91d.js +1 -0
  136. package/bundle/.next/static/chunks/app/api/agents/route-a39fe5a18111b91d.js +1 -0
  137. package/bundle/.next/static/chunks/app/api/diagnostics/route-a39fe5a18111b91d.js +1 -0
  138. package/bundle/.next/static/chunks/app/api/files/reveal/route-a39fe5a18111b91d.js +1 -0
  139. package/bundle/.next/static/chunks/app/api/gateway/control/route-a39fe5a18111b91d.js +1 -0
  140. package/bundle/.next/static/chunks/app/api/mission/route-a39fe5a18111b91d.js +1 -0
  141. package/bundle/.next/static/chunks/app/api/models/catalog/route-a39fe5a18111b91d.js +1 -0
  142. package/bundle/.next/static/chunks/app/api/models/providers/route-a39fe5a18111b91d.js +1 -0
  143. package/bundle/.next/static/chunks/app/api/onboarding/models/route-a39fe5a18111b91d.js +1 -0
  144. package/bundle/.next/static/chunks/app/api/onboarding/route-a39fe5a18111b91d.js +1 -0
  145. package/bundle/.next/static/chunks/app/api/openclaw/capabilities/route-a39fe5a18111b91d.js +1 -0
  146. package/bundle/.next/static/chunks/app/api/planner/[planId]/deploy/route-a39fe5a18111b91d.js +1 -0
  147. package/bundle/.next/static/chunks/app/api/planner/[planId]/document-rewrite/route-a39fe5a18111b91d.js +1 -0
  148. package/bundle/.next/static/chunks/app/api/planner/[planId]/route-a39fe5a18111b91d.js +1 -0
  149. package/bundle/.next/static/chunks/app/api/planner/[planId]/simulate/route-a39fe5a18111b91d.js +1 -0
  150. package/bundle/.next/static/chunks/app/api/planner/[planId]/turn/route-a39fe5a18111b91d.js +1 -0
  151. package/bundle/.next/static/chunks/app/api/planner/route-a39fe5a18111b91d.js +1 -0
  152. package/bundle/.next/static/chunks/app/api/reset/route-a39fe5a18111b91d.js +1 -0
  153. package/bundle/.next/static/chunks/app/api/runtimes/[runtimeId]/route-a39fe5a18111b91d.js +1 -0
  154. package/bundle/.next/static/chunks/app/api/settings/gateway/route-a39fe5a18111b91d.js +1 -0
  155. package/bundle/.next/static/chunks/app/api/settings/openclaw-binary/route-a39fe5a18111b91d.js +1 -0
  156. package/bundle/.next/static/chunks/app/api/settings/workspace-root/route-a39fe5a18111b91d.js +1 -0
  157. package/bundle/.next/static/chunks/app/api/snapshot/route-a39fe5a18111b91d.js +1 -0
  158. package/bundle/.next/static/chunks/app/api/stream/route-a39fe5a18111b91d.js +1 -0
  159. package/bundle/.next/static/chunks/app/api/system/open-terminal/route-a39fe5a18111b91d.js +1 -0
  160. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/abort/route-a39fe5a18111b91d.js +1 -0
  161. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/control/route-a39fe5a18111b91d.js +1 -0
  162. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/stream/route-a39fe5a18111b91d.js +1 -0
  163. package/bundle/.next/static/chunks/app/api/update/route-a39fe5a18111b91d.js +1 -0
  164. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/discovered-groups/route-a39fe5a18111b91d.js +1 -0
  165. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/route-a39fe5a18111b91d.js +1 -0
  166. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/edit-draft/route-a39fe5a18111b91d.js +1 -0
  167. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/files/route-a39fe5a18111b91d.js +1 -0
  168. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/surfaces/discovery/route-a39fe5a18111b91d.js +1 -0
  169. package/bundle/.next/static/chunks/app/api/workspaces/route-a39fe5a18111b91d.js +1 -0
  170. package/bundle/.next/static/chunks/app/not-found-a39fe5a18111b91d.js +1 -0
  171. package/bundle/.next/static/chunks/app/page-9bd535a80e3968e2.js +1 -0
  172. package/bundle/.next/static/chunks/app/settings/page-3794e22c77091d4b.js +1 -0
  173. package/bundle/.next/static/chunks/{main-eb49e7f5b314b5dc.js → main-2c126219b824eed3.js} +1 -1
  174. package/bundle/.next/static/chunks/next/dist/client/components/builtin/app-error-a39fe5a18111b91d.js +1 -0
  175. package/bundle/.next/static/chunks/next/dist/client/components/builtin/forbidden-a39fe5a18111b91d.js +1 -0
  176. package/bundle/.next/static/chunks/next/dist/client/components/builtin/unauthorized-a39fe5a18111b91d.js +1 -0
  177. package/bundle/.next/static/chunks/{webpack-be44493d75a62d03.js → webpack-49728cc9bb386219.js} +1 -1
  178. package/bundle/.next/static/css/91a0269a0b865189.css +3 -0
  179. package/bundle/.next/static/iPRBqdKl76C39456l6e-i/_buildManifest.js +1 -0
  180. package/bundle/package.json +7 -3
  181. package/bundle/scripts/openclaw-mission-dispatch-runner.mjs +103 -2
  182. package/package.json +4 -2
  183. package/bundle/.next/server/chunks/199.js +0 -412
  184. package/bundle/.next/server/chunks/35.js +0 -45
  185. package/bundle/.next/server/chunks/639.js +0 -98
  186. package/bundle/.next/server/chunks/661.js +0 -1
  187. package/bundle/.next/server/chunks/678.js +0 -1
  188. package/bundle/.next/server/chunks/825.js +0 -1
  189. package/bundle/.next/static/-Hi163pOppz8WaePTrAsR/_buildManifest.js +0 -1
  190. package/bundle/.next/static/chunks/2999.fef298fbe30cd4bd.js +0 -1
  191. package/bundle/.next/static/chunks/5261.80260874ddbc586a.js +0 -1
  192. package/bundle/.next/static/chunks/7963-6bd42810c5733ae8.js +0 -15
  193. package/bundle/.next/static/chunks/app/_global-error/page-cde9c645dcfceb9f.js +0 -1
  194. package/bundle/.next/static/chunks/app/_not-found/page-cde9c645dcfceb9f.js +0 -1
  195. package/bundle/.next/static/chunks/app/api/agents/[agentId]/chat/route-cde9c645dcfceb9f.js +0 -1
  196. package/bundle/.next/static/chunks/app/api/agents/route-cde9c645dcfceb9f.js +0 -1
  197. package/bundle/.next/static/chunks/app/api/diagnostics/route-cde9c645dcfceb9f.js +0 -1
  198. package/bundle/.next/static/chunks/app/api/files/reveal/route-cde9c645dcfceb9f.js +0 -1
  199. package/bundle/.next/static/chunks/app/api/gateway/control/route-cde9c645dcfceb9f.js +0 -1
  200. package/bundle/.next/static/chunks/app/api/mission/route-cde9c645dcfceb9f.js +0 -1
  201. package/bundle/.next/static/chunks/app/api/models/catalog/route-cde9c645dcfceb9f.js +0 -1
  202. package/bundle/.next/static/chunks/app/api/models/providers/route-cde9c645dcfceb9f.js +0 -1
  203. package/bundle/.next/static/chunks/app/api/onboarding/models/route-cde9c645dcfceb9f.js +0 -1
  204. package/bundle/.next/static/chunks/app/api/onboarding/route-cde9c645dcfceb9f.js +0 -1
  205. package/bundle/.next/static/chunks/app/api/openclaw/capabilities/route-cde9c645dcfceb9f.js +0 -1
  206. package/bundle/.next/static/chunks/app/api/planner/[planId]/deploy/route-cde9c645dcfceb9f.js +0 -1
  207. package/bundle/.next/static/chunks/app/api/planner/[planId]/document-rewrite/route-cde9c645dcfceb9f.js +0 -1
  208. package/bundle/.next/static/chunks/app/api/planner/[planId]/route-cde9c645dcfceb9f.js +0 -1
  209. package/bundle/.next/static/chunks/app/api/planner/[planId]/simulate/route-cde9c645dcfceb9f.js +0 -1
  210. package/bundle/.next/static/chunks/app/api/planner/[planId]/turn/route-cde9c645dcfceb9f.js +0 -1
  211. package/bundle/.next/static/chunks/app/api/planner/route-cde9c645dcfceb9f.js +0 -1
  212. package/bundle/.next/static/chunks/app/api/reset/route-cde9c645dcfceb9f.js +0 -1
  213. package/bundle/.next/static/chunks/app/api/runtimes/[runtimeId]/route-cde9c645dcfceb9f.js +0 -1
  214. package/bundle/.next/static/chunks/app/api/settings/gateway/route-cde9c645dcfceb9f.js +0 -1
  215. package/bundle/.next/static/chunks/app/api/settings/workspace-root/route-cde9c645dcfceb9f.js +0 -1
  216. package/bundle/.next/static/chunks/app/api/snapshot/route-cde9c645dcfceb9f.js +0 -1
  217. package/bundle/.next/static/chunks/app/api/stream/route-cde9c645dcfceb9f.js +0 -1
  218. package/bundle/.next/static/chunks/app/api/system/open-terminal/route-cde9c645dcfceb9f.js +0 -1
  219. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/abort/route-cde9c645dcfceb9f.js +0 -1
  220. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/stream/route-cde9c645dcfceb9f.js +0 -1
  221. package/bundle/.next/static/chunks/app/api/update/route-cde9c645dcfceb9f.js +0 -1
  222. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/discovered-groups/route-cde9c645dcfceb9f.js +0 -1
  223. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/route-cde9c645dcfceb9f.js +0 -1
  224. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/edit-draft/route-cde9c645dcfceb9f.js +0 -1
  225. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/surfaces/discovery/route-cde9c645dcfceb9f.js +0 -1
  226. package/bundle/.next/static/chunks/app/api/workspaces/route-cde9c645dcfceb9f.js +0 -1
  227. package/bundle/.next/static/chunks/app/not-found-cde9c645dcfceb9f.js +0 -1
  228. package/bundle/.next/static/chunks/app/page-5de22cbc4ffb588d.js +0 -179
  229. package/bundle/.next/static/chunks/next/dist/client/components/builtin/app-error-cde9c645dcfceb9f.js +0 -1
  230. package/bundle/.next/static/chunks/next/dist/client/components/builtin/forbidden-cde9c645dcfceb9f.js +0 -1
  231. package/bundle/.next/static/chunks/next/dist/client/components/builtin/unauthorized-cde9c645dcfceb9f.js +0 -1
  232. package/bundle/.next/static/css/0633750bbe1c3acc.css +0 -3
  233. /package/bundle/.next/static/{-Hi163pOppz8WaePTrAsR → iPRBqdKl76C39456l6e-i}/_ssgManifest.js +0 -0
@@ -0,0 +1,173 @@
1
+ "use strict";exports.id=5151,exports.ids=[5151],exports.modules={5151:(a,b,c)=>{c.d(b,{er:()=>aV,b7:()=>aU,GM:()=>aX,ZZ:()=>aW});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){let b=a.find(a=>a.default)?.model||a.find(a=>!!a.model)?.model||null;if(b)return{defaultModel:b,resolvedDefault:b}}function z(a){return"string"==typeof a&&a.trim()?a.trim():null}var A=c(76760),B=c.n(A),C=c(21916);function D(a,b){let c=new Set,d=new Map;for(let b of a){let a=function(a){var b;let c=G(a.workspace),d=(b=a.identityName||a.name||a.id,(0,C.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(F);if(0!==d.length)for(let e of a)!d.includes(e)&&function(a,b){let c=G(a.agentDir),d=G(B().join(b,"agents"));return!!(c&&d&&c.startsWith(`${d}${B().sep}`))}(e,b)&&c.add(E(e))}return a.filter(a=>!c.has(E(a)))}function E(a){return`${a.id}\0${G(a.agentDir)}`}function F(a){let b=G(a.workspace),c=G(a.agentDir);return!!b&&!!c&&c.startsWith(`${B().join(b,".openclaw","agents")}${B().sep}`)}function G(a){let b=(0,C.Nk)(a);return b?B().normalize(b):""}let H="Deferred to background refresh.";class I{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 J(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 J(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 K(){return{status:"rejected",reason:Error(H)}}function L(a){return"rejected"===a.status&&a.reason instanceof Error&&a.reason.message===H}var M=c(28182),N=c(35456),O=c(51455),P=c(58889);async function Q(a){try{let b=await (0,O.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,P.kf)(a)).filter(a=>!!a):[];return{status:"fulfilled",value:(0,P._E)({version:1,channels:e})}}catch(a){return{status:"rejected",reason:a}}}var R=c(99254);async function S(a){let b=await Q(m.q6),c="fulfilled"===b.status?b.value:(0,P._E)({version:1,channels:[]}),d="interactive"===a?[]:await (0,R.QT)(),e=(0,R.fy)((0,R.D4)([...d,...(0,R.G7)(c)]),c);return{channelRegistry:c,channelAccounts:e}}var T=c(65493);function U(a){if(!a)return null;try{return new URL(a).hostname}catch{return null}}function V(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 W(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 X=c(15292),Y=c(38798),Z=c(7565),$=c(48161),_=c.n($);let aa=["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 ab(a){return{visible:a,full:a}}function ac(a){return a||B().join(_().homedir(),"Documents","Shared","projects")}async function ad(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 W(await c.read(d,e),(0,N.fj)(b))}async function ae(a){var b,c,d,f,g,h;let i,j,k,l,m,n,o,p,q,r,s,u=(0,C.QL)(a.models,a.modelStatus),v=(b=a.status,b?.securityAudit?.findings?.filter(a=>"warn"===a.severity).map(a=>a.title||a.detail||"Security warning")??[]),w=(c={status:a.status,fallbackVersion:await (0,e.YP)()??void 0},m=(0,C.Nk)(c.status?.runtimeVersion||c.status?.overview?.version||c.status?.version)??c.fallbackVersion??void 0,n=(0,C.Nk)(c.status?.update?.registry?.latestVersion??void 0),o=(0,C.nn)(c.status?.update?.registry?.error??void 0),p=m&&n?(0,C.QK)(n,m)>0:void 0,q=(0,C.mB)({currentVersion:m,latestVersion:n,updateError:o,legacyInfo:c.status?.overview?.update}),{currentVersion:m,latestVersion:n,updateAvailable:p,updateError:o,updateInfo:q}),x=(0,X.Df)(await (0,X.bq)(),(0,e.T5)()),y="interactive"===a.profile?(0,t.Bc)()??void 0:await (0,t.N3)().catch(()=>void 0);"interactive"!==a.profile||y||(0,t.Cs)();let z=(0,Y.Lo)().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:ac(a.configuredWorkspaceRoot),configuredGatewayUrl:a.configuredGatewayUrl,hasOpenClawSignal:a.hasOpenClawSignal,securityWarnings:v,runtimeDiagnostics:a.runtimeDiagnostics,openClawBinarySelection:x,modelReadiness:u,capabilityMatrix:y,commandHistory:(0,e.ik)(),transport:(0,Z.Xz)().getDiagnostics?.(),versionDiagnostics:w,issues:(d={payloadResults:a.payloadResults,gatewayStatusRejectedWithCachedValue:a.gatewayStatusRejectedWithCachedValue,payloadReuse:a.payloadReuse,runtimeIssues:[...a.runtimeDiagnostics.issues,...z]},[...(0,C.Lp)(Object.fromEntries(Object.entries(d.payloadResults).filter(([,a])=>!L(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,T.Hi)(a.operation)})),s=[...f.securityWarnings,...(g=f.gatewayStatus,h=f.configuredGatewayUrl,i=[],j=U(g?.gateway?.probeUrl),k=U(h??void 0),l=(0,C.Nk)(g?.gateway?.bindMode??void 0)?.toLowerCase(),j&&!V(j)&&i.push("OpenClaw Gateway is reachable on a non-loopback host. AgentOS mutation APIs stay restricted to same-origin localhost requests."),k&&!V(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)))],{installed:!0,loaded:!!f.gatewayStatus?.service?.loaded,rpcOk:!!f.gatewayStatus?.rpc?.ok,health:(0,C.YO)({rpcOk:f.gatewayStatus?.rpc?.ok,warningCount:s.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,C.Nk)(f.status?.update?.root??void 0),updateInstallKind:(0,C.Nk)(f.status?.update?.installKind??void 0),updatePackageManager:(0,C.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:r.map(a=>`${a.operationLabel} (${a.operation}): ${a.kind}: ${a.issue} Recovery: ${a.recovery}`),runtime:f.runtimeDiagnostics,commandHistory:f.commandHistory,transport:f.transport,securityWarnings:s,issues:f.issues}}function af(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 ag(a,b){try{var c,d,e;let f=(c=a,d=b,e=[...c.flatMap(a=>{let b=[],c=al(a.workspace);return c&&b.push(B().join(c,".openclaw","agents")),b}),B().join(d,"agents")],Array.from(new Set(e.filter(Boolean)))),g=await ah(f);return{status:"fulfilled",value:{sessions:g}}}catch(a){return{status:"rejected",reason:a}}}async function ah(a){let b=new Map;for(let c of a){let a;try{a=await (0,O.readdir)(c,{withFileTypes:!0})}catch{continue}for(let d of a){let a,e;if(!d.isDirectory())continue;let f=B().join(c,d.name,"sessions","sessions.json");try{a=await (0,O.readFile)(f,"utf8")}catch{continue}try{e=JSON.parse(a)}catch{continue}if(Array.isArray(e)){for(let a of e){if(!ak(a))continue;let c=ai(a,d.name);b.has(c.key)||b.set(c.key,c)}continue}if(ak(e))for(let[a,c]of Object.entries(e)){if(!ak(c))continue;let e=ai(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 ai(a,b,c){var d;let e=al("string"==typeof a.sessionId?a.sessionId:void 0),f=aj(a,"updatedAt"),g=aj(a,"inputTokens"),h=aj(a,"outputTokens"),i=aj(a,"totalTokens"),j=aj(a,"cacheRead"),k=aj(a,"ageMs")??("number"==typeof(d=f)?Math.max(Date.now()-d,0):void 0),l=al("string"==typeof a.model?a.model:void 0),m=al("string"==typeof a.modelProvider?a.modelProvider:void 0),n=al("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=al("string"==typeof a.kind?a.kind:"string"==typeof a.chatType?a.chatType:void 0);if(c)return c;let d=ak(a.deliveryContext)?a.deliveryContext:null,e=ak(a.origin)?a.origin:null;if("heartbeat"===al("string"==typeof d?.to?d.to:void 0)||"heartbeat"===al("string"==typeof e?.provider?e.provider:void 0))return"direct";let f=al(b);return f&&/:(direct|dm|private):/i.test(f)?"direct":f&&/:(group|channel|thread):/i.test(f)?"group":"task"}(a,n)}}function aj(a,b){let c=a[b];return"number"==typeof c&&Number.isFinite(c)?c:void 0}function ak(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function al(a){if("string"!=typeof a)return null;let b=a.trim();return b.length>0?b:null}async function am(){try{let a=await (0,O.readFile)(B().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 an(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])),D(d.agents.map(a=>{let e=c.get(a.id),f=a.identity??e?.identity,g=(0,C.Nk)(a.workspace)??(0,C.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||B().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 ao(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 ag(a,m.wh)}}var ap=c(20078),aq=c(37110),ar=c(80410);function as(a,b){return(b.updatedAt??0)-(a.updatedAt??0)}var at=c(70016),au=c(25793);async function av(){return(0,aq.Ff)()}async function aw(a,b){let c=await (0,ap.cf)();return(0,ar.kw)((0,ap.ZO)(a,c),b)}async function ax(a){var b;let c,d=(await Promise.all(a.sessions.map(b=>(0,au.V9)(b,a.agentConfig,a.agentsList,(b,c,d)=>(0,at.$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,ar.CD)(f,a.dispatchRecords),h=await (0,ar.Ip)(g,a.dispatchRecords,{buildObservedRuntime:aq.DO,persistObservation:aq.vH,reconcileRuntimeState:aq.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(as),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(as)})}(Array.from(d.values())),g=new Map(f.filter(a=>!c.excludeFromCache?.(a)).map(a=>[a.id,a]));return{runtimes:f.sort(as),cache:g}}([...g,...h],(b=a.historyStore).cache,{excludeFromCache:ar.U8}),b.cache=c.cache,c.runtimes}var ay=c(93628),az=c(71065),aA=c(57419),aB=c(9443),aC=c(54252),aD=c(96109),aE=c(15612);async function aF(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,P.QO)(b,e);await (0,aC.u)(b),c.set(b,f),d.set(b,await (0,aB.xL)(b,f.template,f.rules??aE.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,P.OL)(b.workspace);c.set(b.workspace,y);let z=y.agents.find(a=>a.id===b.id)??null,A=await (0,aA.L)(b.workspace,{agentId:b.id,agentName:v?.name||b.name||v?.identity?.name||b.identityName||b.id,configuredSkills:(0,az.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??aE.eY,workspaceBootstrapProfile:d.get(b.workspace)??await (0,aB.xL)(b.workspace,y.template,y.rules??aE.eY)}),B=a.runtimes.filter(a=>a.agentId===b.id).sort(as),D=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:D,profile:A},f=(0,az.AB)(e.configured?.skills??[]),j=(0,C.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,ay.g0)((0,ay.qF)({skills:f,id:e.rawAgent.id,name:j}),{fileAccess:e.configured?.tools?.fs?.workspaceOnly?"workspace-only":"extended"}),l=(0,C.Am)([...e.manifestAgent?.toolIds??[],..."workspace-only"===k.fileAccess?["fs.workspaceOnly"]:[]]),m=e.rawAgent.model||e.configured?.model||"unassigned",n=e.agentRuntimes.sort(as),o=(0,C.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,C.yv)({rpcOk:e.gatewayRpcOk,activeRuntime:q,heartbeatEnabled:!!e.heartbeat?.enabled,lastActiveAt:r}),t={id:e.rawAgent.id,name:j,identityName:(0,C.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,C.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,C.Nk)(e.identityOverrides?.emoji)||e.configured?.identity?.emoji||e.rawAgent.identityEmoji,theme:(0,C.Nk)(e.identityOverrides?.theme)||e.configured?.identity?.theme,avatar:(0,C.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,(B().basename(d)||d).split(/[-_]/g).filter(Boolean).map(a=>a[0].toUpperCase()+a.slice(1)).join(" ")),slug:B().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,aB.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,C.Am)(b.workspace.modelIds),activeRuntimeIds:(0,C.Am)(b.workspace.activeRuntimeIds),health:(0,C.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 aG({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=W(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,N.fj)(b)),r=y(p),s=x(p,r),u=(0,C.QL)(s.models,r),v=!!k?.rpc?.ok,w=!!(k?.service?.loaded||v),z=f&&v&&q.stateWritable&&q.sessionStoreWritable,A=(0,Z.Xz)().getDiagnostics?.(),B=(A?.recentFallbackDiagnostics??[]).map(a=>({...a,operationLabel:(0,T.Hi)(a.operation)})),D=B.map(a=>`gateway.${a.operation}: Gateway-first request fell back to CLI (${a.kind}): ${a.issue} Recovery: ${a.recovery}`),E=[v?null:"OpenClaw Gateway RPC is not ready.",...q.issues,...D].filter(a=>!!a),F=(0,d.jJ)(E[0]??"OpenClaw system readiness snapshot.",{installed:f,loaded:w,rpcOk:v});return{...F,generatedAt:new Date().toISOString(),revision:a,mode:"live",diagnostics:{...F.diagnostics,installed:f,loaded:w,rpcOk:v,health:z?"healthy":f?"degraded":"offline",workspaceRoot:ac(g),configuredWorkspaceRoot:g,gatewayUrl:k?.gateway?.probeUrl??F.diagnostics.gatewayUrl,bindMode:k?.gateway?.bindMode,port:k?.gateway?.port,serviceLabel:k?.service?.label,openClawBinarySelection:(0,X.Df)(await (0,X.bq)(),(0,e.T5)()),modelReadiness:u,capabilityMatrix:(0,t.Bc)()??void 0,gatewayFallbackDiagnostics:B,gatewayFallbackReasons:B.map(a=>`${a.operationLabel} (${a.operation}): ${a.kind}: ${a.issue} Recovery: ${a.recovery}`),runtime:q,commandHistory:(0,e.ik)(),transport:A,issues:E},missionPresets:aa}}let aH=null,aI=null,aJ=null,aK=null,aL=null,aM=null,aN=null,aO={cache:new Map},aP=new I,aQ=new k(6e4),aR=new s({ttlMs:3e4,load:(a,b)=>aY({profile:a,generation:b})}),aS=new o({ttlMs:3e5,getGeneration:()=>aR.getGeneration(),loadState:(a,b)=>(0,n.t)(m.wh,a,{agentDirs:b})});function aT(){aO.cache=new Map}function aU(){aT()}function aV(){aR.clear({incrementGeneration:!0}),aS.clear(),aQ.clear(),aP.clear(),aH=null,aI=null,aJ=null,aK=null,aL=null,aM=null,aN=null,aT()}function aW(){aR.clear()}async function aX(a={}){return aR.getSnapshot(a)}async function aY({profile:a="interactive",generation:b=aR.getGeneration()}={}){let c=await (0,f.i)(),g=!!c||await (0,e.Vg)();if(!g)return ab((0,d.jJ)("OpenClaw CLI is not installed on this machine.",{installed:!1,loaded:!1,rpcOk:!1}));try{var k,n,o,p;let d,e,q,r,s,w,A,E,F,G,H,I,O,P,Q="system"===a,R=await (0,N.tl)();Q||(0,u.hC)();let T=(0,N.qB)(R.workspaceRoot)??null;if(Q)return ab(await aG({generation:b,settings:R,localGatewayStatus:c,openclawInstalled:g,configuredWorkspaceRoot:T,gatewayStatusCache:aQ}));let U=Q?K():await am(),V=aP.shouldRefresh(),W=aQ.shouldRefresh(),X=!aK||Date.now()-aK.capturedAt>3e5;if("interactive"===a||Q){let a=!c&&V,b=!Q&&X,f=W?i(15e3):Promise.resolve(K()),g=a?h(15e3):Promise.resolve(K()),k=(0,l.k)(m.wh),n=b?j(15e3):Promise.resolve(K());[d,e,r,w]=await Promise.all([f,g,k,n]),q=K(),s=K(),A=K(),V&&!a&&aP.scheduleRefresh(()=>h(15e3))}else[e,d,r,w]=await Promise.all([h(45e3),i(45e3),(0,l.k)(m.wh),j(45e3)]),q=K(),s=K(),A=K();let Y=aQ.resolve(d);if(!Y.value&&c&&(Y={value:c,reusedCachedValue:!1}),!Y.value){let a=await (0,f.i)(aQ.getCachedPort());a&&(aQ.write(a),Y={value:a,reusedCachedValue:!1})}let Z=Y.value,$="fulfilled"===U.status?(k=U.value,"string"==typeof k?(0,C.Nk)(k):k&&"object"==typeof k&&"value"in k&&"string"==typeof k.value?(0,C.Nk)(k.value):void 0):void 0,_=aP.resolve(e),ac=J(r,aI,a=>{aI=a}),ag=ac.value??[];L(q)&&!Q&&(q=await an(ag));let ah=Q?K():await ao(ag),ai=(0,t.Bc)()?.operations?.runtimeSnapshot?.mode,aj=!Q&&"degraded"!==ai&&"disabled"!==ai&&"cli-fallback"!==ai,ak=Q?K():aj?await (0,v.Jb)("interactive"===a?8e3:15e3):K(),al=J(q,aH,a=>{aH=a}),ap=J(s,aJ,a=>{aJ=a}),aq=J(w,aK,a=>{aK=a}),ar=J(ah,aL,a=>{aL=a}),as=J(ak,aM,a=>{aM=a}),at=J(A,aN,a=>{aN=a}),au=_.value,ay=al.value??(n=m.wh,D(ag.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,C.Nk)(a.workspace)??"",agentDir:a.agentDir||B().join(n,"agents",a.id,"agent"),model:a.model,isDefault:!!a.default})),n)),az=function(a,b){let c=y(b);if(!a)return c;let d=z(a.defaultModel)??z(c?.defaultModel)??null,e=z(a.resolvedDefault)??z(c?.resolvedDefault)??d;return{...a,defaultModel:d,resolvedDefault:e}}(aq.value,ag),aA=(o={agentConfig:ag,modelStatus:az},x(o.agentConfig,o.modelStatus)),aB=ap.value?.models??aA.models,aC=at.value??[],aE="fulfilled"===d.status||"fulfilled"===e.status||"fulfilled"===q.status||"fulfilled"===r.status||"fulfilled"===s.status||"fulfilled"===w.status||"fulfilled"===ah.status||"fulfilled"===ak.status||"fulfilled"===A.status,aR=ad(ay.map(a=>({id:a.id,agentDir:a.agentDir})),R,aS);aR.catch(()=>{});let aT=await av(),aU=await aw(ar.value?.sessions??[],aT),{channelRegistry:aV,channelAccounts:aW}=await S(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,aD.Fm)(c)}}(ay),aY=await ax({sessions:aU,agentConfig:ag,agentsList:ay,runtimeSnapshot:as.value,systemProfile:Q,dispatchRecords:aT,resolveWorkspaceId:aX.resolveWorkspaceId,historyStore:aO}),{workspaces:aZ,agents:a$,relationships:a_,manifestByWorkspace:a0}=await aF({bindings:aX,agentConfig:ag,sessions:aU,status:au,gatewayStatus:Z,hasOpenClawSignal:aE,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},E=new Set(p.workspaces.filter(a=>p.isWorkspaceHidden(a)).map(a=>a.id)),F=p.agents.filter(a=>!E.has(a.workspaceId)),G=new Set(p.agents.filter(a=>E.has(a.workspaceId)).map(a=>a.id)),H=p.runtimes.filter(a=>!(a.agentId&&G.has(a.agentId))&&!(a.workspaceId&&E.has(a.workspaceId))),I=new Set(p.runtimes.filter(a=>a.agentId&&G.has(a.agentId)||a.workspaceId&&E.has(a.workspaceId)).map(a=>a.id)),O=new Set([...E,...G,...I]),P=p.relationships.filter(a=>!O.has(a.sourceId)&&!O.has(a.targetId)),{visibleWorkspaces:p.workspaces.filter(a=>!E.has(a.id)),visibleAgents:F,visibleRuntimes:H,visibleRelationships:P}),a5=await aR,a6=await ae({profile:a,configuredWorkspaceRoot:T??null,configuredGatewayUrl:$,gatewayStatus:Z,status:au,hasOpenClawSignal:aE,runtimeDiagnostics:a5,models:aB,agents:a$,modelStatus:az,payloadResults:{gatewayStatus:d,status:e,agents:q,agentConfig:r,models:s,modelStatus:w,sessions:ah,presence:A},gatewayStatusRejectedWithCachedValue:"rejected"===d.status&&Y.reusedCachedValue,payloadReuse:{status:_,agents:al,agentConfig:ac,models:ap,modelStatus:aq,sessions:ar,presence:at}}),a7=(0,M.IJ)(aY,a$),a8=(0,M.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:aa};return{full:{...a9,workspaces:aZ,agents:a$,models:af({models:aB,agents:a$,modelStatus:az}),runtimes:aY,tasks:a7,relationships:a_},visible:{...a9,workspaces:a1,agents:a2,models:af({models:aB,agents:a2,modelStatus:az}),runtimes:a3,tasks:a8,relationships:a4}}}catch(a){return ab((0,d.jJ)(a instanceof Error?a.message:"Unknown OpenClaw error.",{installed:g,loaded:!!c?.service?.loaded,rpcOk:!!c?.rpc?.ok}))}}},9443:(a,b,c)=>{c.d(b,{aL:()=>l,xL:()=>k});var d=c(51455),e=c(76760),f=c.n(e),g=c(15612),h=c(14853),i=c(16588),j=c(58889);async function k(a,b,c){let d=(0,h.Q4)(b,c??g.eY),e=[...new Set(["AGENTS.md","SOUL.md","IDENTITY.md","TOOLS.md","HEARTBEAT.md",...d.resources.map(a=>a.relativePath)])],f=await Promise.all(e.map(b=>m(a,a,b))),i=new Map,j=[];for(let a of f)a&&(i.set(a.fileName,a.lines),j.push(a.source));return{profileFiles:e,contextManifest:d,workspaceSections:i,workspaceSources:j}}async function l(a,b,c){let d=c??await (0,j.OL)(a),e=(0,h.Q4)(d.template??null,d.rules??g.eY),f=new Set(["AGENTS.md","SOUL.md","IDENTITY.md","TOOLS.md","HEARTBEAT.md","MEMORY.md"]),[k,l,m,o,p,q]=await Promise.all([(0,i.Z3)(a,[{id:"agents",label:"AGENTS.md",relativePath:"AGENTS.md",kind:"file"},{id:"soul",label:"SOUL.md",relativePath:"SOUL.md",kind:"file"},{id:"identity",label:"IDENTITY.md",relativePath:"IDENTITY.md",kind:"file"},{id:"tools",label:"TOOLS.md",relativePath:"TOOLS.md",kind:"file"},{id:"heartbeat",label:"HEARTBEAT.md",relativePath:"HEARTBEAT.md",kind:"file"}]),(0,i.Z3)(a,[{id:"memory-md",label:"MEMORY.md",relativePath:"MEMORY.md",kind:"file"}]),(0,i.Z3)(a,e.resources.filter(a=>!f.has(a.relativePath))),(0,i.Z3)(a,[{id:"docs",label:"docs/",relativePath:"docs",kind:"directory"},{id:"memory",label:"memory/",relativePath:"memory",kind:"directory"},{id:"deliverables",label:"deliverables/",relativePath:"deliverables",kind:"directory"},{id:"skills",label:"skills/",relativePath:"skills",kind:"directory"},{id:"openclaw",label:".openclaw/",relativePath:".openclaw",kind:"directory"}]),(0,i.Z3)(a,[{id:"project-json",label:".openclaw/project.json",relativePath:".openclaw/project.json",kind:"file"},{id:"events",label:".openclaw/project-shell/events.jsonl",relativePath:".openclaw/project-shell/events.jsonl",kind:"file"},{id:"runs",label:".openclaw/project-shell/runs",relativePath:".openclaw/project-shell/runs",kind:"directory"},{id:"tasks",label:".openclaw/project-shell/tasks",relativePath:".openclaw/project-shell/tasks",kind:"directory"}]),(0,i.nU)(a)]),r=n(b.flatMap(a=>a.tools)),s=n([...q,...b.flatMap(a=>a.skills)]),t=b.filter(a=>a.tools.includes("fs.workspaceOnly")).length;return{bootstrap:{template:d.template,sourceMode:d.sourceMode,agentTemplate:d.agentTemplate,coreFiles:k,optionalFiles:l,contextFiles:m,folders:o,projectShell:p,localSkillIds:q},capabilities:{skills:s,tools:r,workspaceOnlyAgentCount:t}}}async function m(a,b,c){let e=f().join(a,c);try{var g,h;let a,i;await (0,d.access)(e);let j=(await (0,d.readFile)(e,"utf8")).trim();if(!j)return null;return{fileName:c,lines:j.split(/\r?\n/),source:(g=b,h=e,a=f().resolve(g),(i=f().resolve(h)).startsWith(`${a}${f().sep}`)?f().relative(a,i)||f().basename(i):i)}}catch{return null}}function n(a){return[...new Set(a.filter(a=>a.trim().length>0))].sort()}},11782:(a,b,c)=>{c.d(b,{AV:()=>g,JC:()=>h,Kg:()=>e});var d=c(65395);function e(a,b,c){var e;if(!b)return null;let g=(0,d.W2)(a),h=Math.max(Array.from(c).filter(b=>f(a,b)).length,(b.allowed??[]).filter(b=>f(a,b)).length),i=j(b.auth?.providers,a),m=j(b.auth?.oauth?.providers,a),n=l(m)?m:null,o=Array.isArray(n?.profiles)?n.profiles:null,p=o?o.filter(a=>{if(!l(a))return!1;let b=k(a.status)?.toLowerCase();return!b||!["expired","missing","invalid","error","disabled","revoked"].includes(b)}).length:0,q=k(m?.status)?.toLowerCase(),r=("number"==typeof(e=i?.profiles?.count)&&Number.isFinite(e)?e:null)??0,s=k(i?.effective?.kind)?.toLowerCase(),t="ollama"===a?h>0:o?p>0||"ok"===q:"ok"===q||r>0||!!(s&&["ok","profiles","token","apikey","api-key","oauth"].includes(s));return{provider:a,connected:t,canConnect:!0,needsTerminal:"oauth"===g.connectKind,detail:function({provider:a,descriptor:b,connected:c,visibleCount:d,profileCount:e,usableOauthProfileCount:f,oauthStatus:g}){return"ollama"===a?d>0?`${d} local model${1===d?"":"s"} detected.`:"Install or pull a local model to unlock this route.":c?f>0||"ok"===g?"OAuth connected":e>0?`${e} auth profile${1===e?"":"s"}`:d>0?`${d} configured model${1===d?"":"s"} in AgentOS.`:`${b.shortLabel} is connected.`:d>0?`${d} configured model${1===d?"":"s"} are already saved in AgentOS. Connect ${b.shortLabel} to use them.`:b.helperText}({provider:a,descriptor:g,connected:t,visibleCount:h,profileCount:r,usableOauthProfileCount:p,oauthStatus:q})}}function f(a,b){let c=b.split("/",1)[0]||"";return"openai-codex"===a?"openai"===c||"openai-codex"===c:c===a}function g(a,b){let c=a.split("/",1)[0]||"unknown";return"openai"===c&&i(a,b)?"openai-codex":c}function h(a,b){let c=a.split("/",1)[0]||"";return"openai-codex"===c||"openai"===c&&(/^openai\/gpt-/i.test(a)||i(a,b))}function i(a,b){if(/^openai\/.*codex/i.test(a))return!0;if(!b)return!1;let c=e("openai-codex",b,[]),d=e("openai",b,[]);return!!(c?.connected&&!d?.connected)}function j(a,b){return a?.find(a=>k(a.provider)===b)}function k(a){return"string"==typeof a&&a.trim()?a.trim():null}function l(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}},14414:(a,b,c)=>{c.d(b,{Dm:()=>g,gP:()=>h});var d=c(27091);let e=/^\[Retry after[^\]]+\]\s*/i;function f(a){return(0,d.ho)(a).replace(e,"").replace(/\s+/g," ").trim().toLowerCase()}function g(a,b){let c=f(b),d=f(a);return!!c&&!!d&&(d===c||d.startsWith(`${c} `)||d.includes(`original mission: ${c}`)||d.includes(`original mission ${c}`))}function h(a,b,c={}){if(c.agentId&&a.agentId!==c.agentId||"number"==typeof c.submittedAt&&(a.updatedAt??0)<c.submittedAt-1500)return!1;let d=function(a){let b="string"==typeof a.metadata.mission?a.metadata.mission:"string"==typeof a.metadata.turnPrompt?a.metadata.turnPrompt:null;if(!b)return null;let c=f(b);return c.length>0?c:null}(a);return!!d&&g(d,b)}},14853:(a,b,c)=>{c.d(b,{Iy:()=>l,Q4:()=>i,Q5:()=>j,nt:()=>h,uZ:()=>k});var d=c(66058);let e=["AGENTS.md","SOUL.md","IDENTITY.md","TOOLS.md","HEARTBEAT.md"],f={software:"Software project",frontend:"Frontend app",backend:"Backend/API",research:"Research",content:"Content/Growth"},g=["Use repository-local scripts or documented commands for repeatable workflows.","Update this file when the project exposes a cleaner build, test, or release path."];function h(a,b){return m(a,b).map(a=>a.path)}function i(a,b){var c;let d,f=new Map((d=[{id:"agents",label:"AGENTS.md",relativePath:"AGENTS.md",kind:"file",headings:["Workspace","Team","Customize","Safety defaults","Daily memory","Output"]},{id:"soul",label:"SOUL.md",relativePath:"SOUL.md",kind:"file",headings:["My Purpose","How I Operate","My Quirks","Active Focus"]},{id:"identity",label:"IDENTITY.md",relativePath:"IDENTITY.md",kind:"file",headings:["Role"]},{id:"tools",label:"TOOLS.md",relativePath:"TOOLS.md",kind:"file",headings:["Examples","Notes"]},{id:"heartbeat",label:"HEARTBEAT.md",relativePath:"HEARTBEAT.md",kind:"file",headings:[]},{id:"memory-md",label:"MEMORY.md",relativePath:"MEMORY.md",kind:"file",headings:["Current brief","Stable facts"]},{id:"memory-blueprint",label:"memory/blueprint.md",relativePath:"memory/blueprint.md",kind:"file",headings:["Outcome","Constraints","Unknowns"]},{id:"memory-decisions",label:"memory/decisions.md",relativePath:"memory/decisions.md",kind:"file",headings:["Template"]},{id:"docs-brief",label:"docs/brief.md",relativePath:"docs/brief.md",kind:"file",headings:["Objective","Success signals","Open questions"]},{id:"docs-architecture",label:"docs/architecture.md",relativePath:"docs/architecture.md",kind:"file",headings:["Current shape","Dependencies","Risks"]},{id:"deliverables-readme",label:"deliverables/README.md",relativePath:"deliverables/README.md",kind:"file",headings:["Deliverables"]}],"frontend"===(c=a??null)&&d.push({id:"docs-ux-notes",label:"docs/ux-notes.md",relativePath:"docs/ux-notes.md",kind:"file",headings:["UX Notes"]}),"backend"===c&&d.push({id:"docs-service-map",label:"docs/service-map.md",relativePath:"docs/service-map.md",kind:"file",headings:["Service Map"]}),"research"===c&&d.push({id:"docs-research-plan",label:"docs/research-plan.md",relativePath:"docs/research-plan.md",kind:"file",headings:["Research Plan"]}),"content"===c&&d.push({id:"docs-content-brief",label:"docs/content-brief.md",relativePath:"docs/content-brief.md",kind:"file",headings:["Content Brief"]}),d).map(a=>[a.relativePath,a])),g=a=>a.map(a=>f.get(a)).filter(Boolean),h=[{id:"core",title:"Core bootstrap",description:"Required for every workspace and shared by all agents.",enabled:!0,resources:g(e)},{id:"memory",title:"Memory",description:"Durable notes and decisions that survive across sessions.",enabled:b.generateMemory,resources:b.generateMemory?g(["MEMORY.md","memory/blueprint.md","memory/decisions.md"]):[]},{id:"starter",title:"Starter docs",description:"Planning, architecture, and handoff docs used for the first pass.",enabled:b.generateStarterDocs,resources:b.generateStarterDocs?g(["docs/brief.md","docs/architecture.md","deliverables/README.md",..."frontend"===a?["docs/ux-notes.md"]:"backend"===a?["docs/service-map.md"]:"research"===a?["docs/research-plan.md"]:"content"===a?["docs/content-brief.md"]:[]]):[]}];return{template:a??null,rules:b,sections:h,resources:h.flatMap(a=>a.resources)}}function j(a){let b=m(a.template,a.rules),c=new Map(l(a.docOverrides).map(a=>[a.path,a.content]));return b.map(b=>{let d=b.render(a),e=c.has(b.path);return{path:b.path,title:b.title,description:b.description,category:b.category,baseContent:d,content:e?c.get(b.path)??"":d,overridden:e}})}function k(a){let b=j(a).map(a=>({...a,generated:!0})),c=new Set(b.map(a=>a.path));return[...b,...l(a.docOverrides).filter(a=>!c.has(a.path)).map(a=>{var b;return{path:a.path,title:a.path,description:"Existing workspace file.",category:(b=a.path).startsWith("memory/")?"memory":b.startsWith("docs/")?"docs":b.startsWith("deliverables/")?"deliverables":"core",baseContent:a.content,content:a.content,overridden:!1,generated:!1}})]}function l(a){let b=new Map;for(let c of a??[]){let a=c.path.trim();a&&b.set(a,c.content)}return Array.from(b.entries()).map(([a,b])=>({path:a,content:b}))}function m(a,b){let c=[{path:"AGENTS.md",title:"AGENTS.md",description:"Shared operating instructions for all agents.",category:"core",render:n},{path:"SOUL.md",title:"SOUL.md",description:"Purpose, operating style, and active focus.",category:"core",render:({template:a,brief:b,contextSources:c})=>{var d,e,g;return d=a,e=b,g=c,`# SOUL
2
+
3
+ ## My Purpose
4
+ Help this ${f[d].toLowerCase()} workspace turn intent into real outcomes with pragmatic execution, verification, and durable memory.
5
+
6
+ ## How I Operate
7
+ - Start from the current workspace reality before proposing large moves.
8
+ - Prefer concrete action, visible artifacts, and clear handoffs.
9
+ - Keep docs, memory, and deliverables aligned with the actual state of the work.
10
+
11
+ ## My Quirks
12
+ - Pragmatic
13
+ - Direct
14
+ - Product-aware
15
+ - Quality-minded
16
+
17
+ ${e?`## Active Focus
18
+ ${e}
19
+ `:""}${p(g)}`}},{path:"IDENTITY.md",title:"IDENTITY.md",description:"Workspace identity and vibe.",category:"core",render:({template:a})=>{var b;return b=a,`# IDENTITY
20
+
21
+ ## Role
22
+ This workspace hosts a ${f[b].toLowerCase()} team coordinated through OpenClaw.
23
+
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
26
+
27
+ Repository commands and workflow notes for this ${f[c].toLowerCase()} workspace.
28
+
29
+ ## Examples
30
+ ${d.map(a=>`- ${a}`).join("\n")}
31
+
32
+ ## Notes
33
+ - Replace these examples with sharper project-specific commands when the repo exposes them.
34
+ - Prefer repeatable commands that other agents can run without interpretation drift.
35
+ `}},{path:"HEARTBEAT.md",title:"HEARTBEAT.md",description:"Refresh ritual and coherence checks.",category:"core",render:({template:a})=>{var b;return b=a,`# HEARTBEAT
36
+
37
+ - Start each substantial task by refreshing the brief, docs, and current files.
38
+ - Keep the ${f[b].toLowerCase()} workspace coherent across code, docs, and memory.
39
+ - Prefer explicit handoffs between implementation, review, testing, and knowledge capture.
40
+ `}}];return b.generateMemory&&c.push({path:"MEMORY.md",title:"MEMORY.md",description:"Durable project memory.",category:"memory",render:({name:a,template:b,brief:c,contextSources:d})=>{var e,g,h,i;return e=a,g=b,h=c,i=d,`# ${e} Memory
41
+
42
+ Durable project facts for this ${f[g].toLowerCase()} workspace.
43
+
44
+ ## Current brief
45
+ ${h||"No brief captured yet. Fill this in as soon as the project goal is clarified."}
46
+
47
+ ## Stable facts
48
+ - Add durable architecture, product, or workflow facts here.
49
+ - Move longer notes into memory/*.md when they outgrow this file.
50
+
51
+ ${p(i)}`}},{path:"memory/blueprint.md",title:"memory/blueprint.md",description:"Project blueprint and current outcome.",category:"memory",render:({name:a,template:b,brief:c})=>{var d,e,g;return d=a,e=b,g=c,`# ${d} Blueprint
52
+
53
+ ## Workspace type
54
+ ${f[e]}
55
+
56
+ ## Outcome
57
+ ${g||"Define the target outcome, user impact, and quality bar for this workspace."}
58
+
59
+ ## Constraints
60
+ - Add technical, product, legal, or operational constraints here.
61
+
62
+ ## Unknowns
63
+ - Capture unresolved questions that block confident execution.
64
+ `}},{path:"memory/decisions.md",title:"memory/decisions.md",description:"Decision log.",category:"memory",render:()=>`# Decisions
65
+
66
+ Use this file for durable decisions that should survive across sessions.
67
+
68
+ ## Template
69
+ - Date:
70
+ - Decision:
71
+ - Context:
72
+ - Consequence:
73
+ `}),b.generateStarterDocs&&c.push({path:"docs/brief.md",title:"docs/brief.md",description:"Objective, source mode, and success signals.",category:"docs",render:({name:a,template:b,brief:c,sourceMode:d,contextSources:e})=>{var g,h,i,j,k;return g=a,h=b,i=c,j=d,k=e,`# ${g} Brief
74
+
75
+ ## Template
76
+ ${f[h]}
77
+
78
+ ## Source mode
79
+ ${j}
80
+
81
+ ## Objective
82
+ ${i||"Clarify the main goal, target user, and success definition for this workspace."}
83
+
84
+ ## Success signals
85
+ - Define what success looks like in observable terms.
86
+
87
+ ## Open questions
88
+ - List the unknowns worth resolving first.
89
+
90
+ ${p(k)}`}},{path:"docs/architecture.md",title:"docs/architecture.md",description:"Current system shape and dependencies.",category:"docs",render:({template:a,contextSources:b})=>{var c,d;return c=a,d=b,`# Architecture
91
+
92
+ ## Current shape
93
+ - Describe the main components, systems, or content lanes in this ${f[c].toLowerCase()} workspace.
94
+
95
+ ## Dependencies
96
+ - List critical external services, repos, data sources, or channels.
97
+
98
+ ## Risks
99
+ - Capture structural, operational, or delivery risks here.
100
+
101
+ ${p(d)}`}},{path:"deliverables/README.md",title:"deliverables/README.md",description:"Guidance for handoff artifacts.",category:"deliverables",render:()=>`# Deliverables
102
+
103
+ Use this folder for substantial output artifacts that should be easy to hand off or review.
104
+
105
+ - Create one subfolder per task or run, for example \`deliverables/2026-03-07-15-30-00-launch-brief/\`.
106
+ - Put drafts, reports, docs, and publishable assets for that task inside its run folder.
107
+ - Keep filenames descriptive and tied to the task or audience.
108
+ `}),"frontend"===a&&c.push({path:"docs/ux-notes.md",title:"docs/ux-notes.md",description:"Interaction patterns and UI risks.",category:"docs",render:()=>o("ux")}),"backend"===a&&c.push({path:"docs/service-map.md",title:"docs/service-map.md",description:"Service, queue, and dependency map.",category:"docs",render:()=>o("backend")}),"research"===a&&c.push({path:"docs/research-plan.md",title:"docs/research-plan.md",description:"Question framing and evidence plan.",category:"docs",render:()=>o("research")}),"content"===a&&c.push({path:"docs/content-brief.md",title:"docs/content-brief.md",description:"Audience, channel, and campaign brief.",category:"docs",render:()=>o("content")}),c}function n({name:a,brief:b,template:c,sourceMode:e,rules:g,agents:h=[]}){return(0,d.jR)({name:a,brief:b,templateLabel:f[c],sourceMode:e,workspaceOnly:g.workspaceOnly,workspaceSlug:a.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,64),agents:h})}function o(a){return"ux"===a?`# UX Notes
109
+
110
+ - Track interaction patterns, responsive edge cases, and visual risk areas here.
111
+ `:"backend"===a?`# Service Map
112
+
113
+ - Document services, jobs, queues, external dependencies, and critical flows here.
114
+ `:"research"===a?`# Research Plan
115
+
116
+ - State the question, method, evidence sources, and expected output before large investigation work.
117
+ `:`# Content Brief
118
+
119
+ - Capture audience, channel, tone, CTA, and distribution assumptions for this content workspace.
120
+ `}function p(a){let b=(a??[]).filter(a=>"error"!==a.status&&a.summary.trim().length>0).slice(0,4);if(0===b.length)return"";let c=b.filter(a=>(a.confidence??100)>=80),d=b.filter(a=>(a.confidence??100)<80),e=a=>{let b="website"===a.kind?"Website":"repo"===a.kind?"Repo":"folder"===a.kind?"Folder":"Prompt",c="number"==typeof a.confidence?` (${a.confidence}%)`:"";return`- ${b}: ${a.label}${c} - ${a.summary}`},f=[];return c.length>0&&f.push(`## Evidence
121
+ ${c.map(e).join("\n")}`),d.length>0&&f.push(`## Assumptions
122
+ ${d.map(e).join("\n")}`),f.length>0?`
123
+ ${f.join("\n\n")}
124
+ `:""}},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:()=>r,SI:()=>n,V9:()=>k,WU:()=>m,pY:()=>l,qv:()=>o,xZ:()=>p});var d=c(51455),e=c(48161),f=c.n(e),g=c(76760),h=c.n(g),i=c(27091),j=c(14414);async function k(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 m(a.agentId,a.sessionId,g?.workspace||h?.workspace);if(!j)return[f];try{let a=await (0,d.readFile)(j,"utf8"),b=n(a,f,g?.workspace||h?.workspace).filter(a=>!a.prompt.toLowerCase().startsWith("read heartbeat.md if it exists")),c=p(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)||`${z(e)} run`),j=b.warningSummary?x(`Completed with fallback: ${b.warningSummary}`,90):b.finalText?x(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 l(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 q(a,"This runtime does not expose a session transcript yet.");let e=b.agents.find(b=>b.id===a.agentId),f=await m(a.agentId,a.sessionId,e?.workspacePath);if(!f)return q(a,"No transcript file was found for this runtime session.");try{let b=await (0,d.readFile)(f,"utf8");return r(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 m(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 v(a,b,c);return e||null}function n(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 x((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()||y(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(t(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?u(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?u(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()||y(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(t(g)),e}function o(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 p(a){return w(a.flatMap(a=>a.toolNames))}function q(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 r(a,b,c){let d=o(a,n(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 s(a,c)}let e=d.at(-1);return e?s(a,e):{runtimeId:a.id,sessionId:a.sessionId,taskId:a.taskId,status:"missing",finalText:null,finalTimestamp:null,stopReason:null,errorMessage:"No transcript entries were found for this runtime.",items:[],createdFiles:[],warnings:[],warningSummary:null}}function s(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 t(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=w(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:w([...a.pendingToolNames])}}function u(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 v(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 w(a){return Array.from(new Set(a))}function x(a,b){let c=a.replace(/\s+/g," ").trim();return c.length<=b?c:`${c.slice(0,Math.max(b-1,1)).trimEnd()}…`}function y(a){let b=a.match(/"tool(Name)?":\s*"([^"]+)"/i);return b?.[2]}function z(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)}
127
+ `,"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}},38798:(a,b,c)=>{c.d(b,{JG:()=>d.JG,Lo:()=>d.Lo,aj:()=>d.aj,gH:()=>d.gH}),c(38699);var d=c(51312)},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
+ `,"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
+
130
+ Shared project context for all agents working in this workspace.
131
+
132
+ ## Workspace
133
+ - Template: ${a.templateLabel}
134
+ - Source mode: ${a.sourceMode}
135
+ - Workspace-only access: ${a.workspaceOnly?"enabled":"disabled"}
136
+
137
+ ${f(a.agents,a.workspaceSlug)}
138
+
139
+ ${g(a.agents,a.workspaceSlug)}
140
+
141
+ ## Customize
142
+ ${a.brief||"Clarify the project goal, definition of done, constraints, and success signals before large changes."}
143
+
144
+ ## Safety defaults
145
+ - Stay inside the attached workspace unless the task explicitly requires another location.
146
+ - Prefer direct, reviewable changes over speculative rewrites.
147
+ - Preserve user work and avoid destructive actions without clear approval.
148
+ - Update durable docs when stable architecture, workflow, or product decisions change.
149
+ - Worker and browser agents should not install tooling unless their explicit policy allows it.
150
+ - Route environment preparation to setup-oriented agents when the work depends on new tooling.
151
+
152
+ ## Daily memory
153
+ - Capture durable facts in MEMORY.md and memory/*.md.
154
+ - Record stable decisions in memory/decisions.md.
155
+ - Keep temporary chatter and scratch notes in memory/.
156
+
157
+ ## Output
158
+ - Be concise in chat and write longer output to files when the artifact matters.
159
+ - Put task-specific deliverables, drafts, reports, and docs inside per-run folders under deliverables/.
160
+ - Avoid writing final artifacts to the workspace root unless explicitly requested.
161
+ `}function f(a,b){let c=r(a,b).filter(a=>a.enabled).map(a=>{let b=[a.isPrimary?"primary":null,a.role,a.policy?(0,d._P)(a.policy.preset):null].filter(a=>!!a);return`- ${a.name} (\`${a.id}\`)${b.length>0?` \xb7 ${b.join(" \xb7 ")}`:""}`});return`## Team
162
+ ${c.length>0?c.join("\n"):"- No active agents configured yet."}`}function g(a,b){return l(r(a,b).filter(a=>a.enabled).map(m))}function h(a,b,c){let d=r(b,c).filter(a=>a.enabled),e=t(a,"Agent Roles");if(!e)return g(b,c);let f=function(a){let b=new Map,c=Array.from(a.matchAll(/^###\s+.+$/gm));for(let[d,e]of c.entries()){if(void 0===e.index)continue;let f=e.index,g=c[d+1]?.index??a.length,h=a.slice(f,g).trim(),i=o(h);i&&b.set(i,h)}return b}(a.slice(e.start,e.end));return l(d.map(a=>{var b,c;let d,e,g=m(a),h=f.get(a.id);return h?(b=g,c=h,d=b.trim().split(/\r?\n/),e=q(c.trim().split(/\r?\n/).slice(1).filter(a=>!p(a))),[d[0],...d.slice(1),...e.length>0?["",...e]:[]].join("\n")):g}))}function i(){return`#### Persona
163
+
164
+ #### Responsibilities
165
+
166
+ #### Operating Notes
167
+
168
+ #### Boundaries`}function j(a,b){let c=n(a,b)?.content;if(!c)return i();let d=q(c.trim().split(/\r?\n/).slice(1).filter(a=>!p(a)));return d.length>0?d.join("\n"):i()}function k(a,b,c){let d=n(a,b);if(!d)throw Error("Agent profile section was not found in AGENTS.md.");let e=d.content.trim().split(/\r?\n/),f=e.slice(1).filter(a=>p(a)),g=c.trim(),h=[e[0],...f,...g?["",g]:[]].join("\n");return[a.slice(0,d.start),h,a.slice(d.end)].join("")}function l(a){return`## Agent Roles
169
+ Each agent should use only the subsection matching its current OpenClaw agent id as its personal role/persona. Other subsections describe teammates in the same workspace.
170
+
171
+ ${a.length>0?a.join("\n\n"):"- No active agent role sections are configured yet."}`}function m(a){let b=a.policy,c=a.skillIds,e=v([...a.toolIds??[],...b?.fileAccess==="workspace-only"?["fs.workspaceOnly"]:[]]),f=v(a.channelIds??[]);return[`### ${a.name} (\`${a.id}\`)`,`- Agent id: \`${a.id}\``,`- Runtime rule: when the current OpenClaw agent id is \`${a.id}\`, use this section as the agent-specific role and persona.`,`- Role: ${a.role||"Agent"}`,`- Primary: ${a.isPrimary?"yes":"no"}`,...b?[`- Preset: ${(0,d._P)(b.preset)}`]:[],...a.modelId?[`- Model: \`${a.modelId}\``]:[],...c.length>0?[`- Skills: ${c.map(a=>`\`${a}\``).join(", ")}`]:[],...e.length>0?[`- Tools: ${e.map(a=>`\`${a}\``).join(", ")}`]:[],...b?[`- File access: ${b.fileAccess}`,`- Network access: ${b.networkAccess}`,`- Install scope: ${b.installScope}`,`- Missing tools: ${b.missingToolBehavior}`]:[],...f.length>0?[`- Channels: ${f.map(a=>`\`${a}\``).join(", ")}`]:[]].join("\n")}function n(a,b){let c=t(a,"Agent Roles");if(!c)return null;let d=a.slice(c.start,c.end),e=Array.from(d.matchAll(/^###\s+.+$/gm));for(let[a,f]of e.entries()){if(void 0===f.index)continue;let g=f.index,h=e[a+1]?.index??d.length,i=d.slice(g,h).trim();if(o(i)===b)return{start:c.start+g,end:c.start+h,content:i}}return null}function o(a){return/^###\s+.*?\(`([^`]+)`\)/m.exec(a)?.[1]??/^-\s+Agent id:\s+`([^`]+)`/m.exec(a)?.[1]??null}function p(a){return/^-\s+(Agent id|Runtime rule|Role|Primary|Preset|Model|Skills|Tools|File access|Network access|Install scope|Missing tools|Channels):/.test(a.trim())}function q(a){let b=0,c=a.length;for(;b<c&&a[b]?.trim()==="";)b+=1;for(;c>b&&a[c-1]?.trim()==="";)c-=1;return a.slice(b,c)}function r(a,b){return[...a].map((a,c)=>{let d=u(a.id)??w(u(a.name)??`agent-${c+1}`),e=b&&!d.startsWith(`${b}-`)?`${b}-${w(d)||"agent"}`:d,f=u(a.role),g=v([...a.skillIds??[],u(a.skillId)??""]);return{id:e,name:u(a.name)??f??e,role:f,enabled:!1!==a.enabled,isPrimary:!!a.isPrimary,skillId:g[0]??null,skillIds:g,toolIds:v(a.toolIds??[]),modelId:u(a.modelId),policy:a.policy??null,channelIds:v(a.channelIds??[])}}).sort((a,b)=>a.isPrimary!==b.isPrimary?a.isPrimary?-1:1:a.name.localeCompare(b.name))}function s(a,b,c,d){let e=c.trim(),f=t(a,b);if(f)return[a.slice(0,f.start).trimEnd(),e,a.slice(f.end).trimStart()].filter(Boolean).join("\n\n");if(d){let b=t(a,d);if(b)return[a.slice(0,b.end).trimEnd(),e,a.slice(b.end).trimStart()].filter(Boolean).join("\n\n")}return[a.trimEnd(),e].filter(Boolean).join("\n\n")}function t(a,b){let c=RegExp(`^##\\s+${b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}\\s*$`,"m").exec(a);if(!c||void 0===c.index)return null;let d=c.index,e=d+c[0].length,f=/^##\s+/m.exec(a.slice(e));return{start:d,end:f?.index===void 0?a.length:e+f.index}}function u(a){return"string"==typeof a&&a.trim().length>0?a.trim():null}function v(a){return Array.from(new Set(a.map(a=>a.trim()).filter(Boolean)))}function w(a){return a.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,64)}function x(a){return a.endsWith("\n")?a:`${a}
172
+ `}},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}}};