@sapienx/agentos 0.5.7 → 0.5.9

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 (229) hide show
  1. package/bin/agentos.js +113 -2
  2. package/bin/terminal-boot.js +383 -76
  3. package/bundle/.next/BUILD_ID +1 -1
  4. package/bundle/.next/app-path-routes-manifest.json +9 -8
  5. package/bundle/.next/build-manifest.json +3 -3
  6. package/bundle/.next/prerender-manifest.json +3 -3
  7. package/bundle/.next/react-loadable-manifest.json +2 -2
  8. package/bundle/.next/required-server-files.json +1 -1
  9. package/bundle/.next/routes-manifest.json +6 -0
  10. package/bundle/.next/server/app/_global-error/page.js +2 -2
  11. package/bundle/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/bundle/.next/server/app/_global-error.html +1 -1
  13. package/bundle/.next/server/app/_global-error.rsc +1 -1
  14. package/bundle/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/bundle/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  16. package/bundle/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  17. package/bundle/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  18. package/bundle/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  19. package/bundle/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/bundle/.next/server/app/_not-found/page.js +2 -2
  21. package/bundle/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  22. package/bundle/.next/server/app/_not-found.html +1 -1
  23. package/bundle/.next/server/app/_not-found.rsc +2 -2
  24. package/bundle/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  25. package/bundle/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  26. package/bundle/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  27. package/bundle/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  28. package/bundle/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  29. package/bundle/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  30. package/bundle/.next/server/app/agents/page.js +2 -2
  31. package/bundle/.next/server/app/agents/page.js.nft.json +1 -1
  32. package/bundle/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  33. package/bundle/.next/server/app/api/agents/[agentId]/chat/route.js +4 -4
  34. package/bundle/.next/server/app/api/agents/[agentId]/chat/route.js.nft.json +1 -1
  35. package/bundle/.next/server/app/api/agents/route.js +1 -1
  36. package/bundle/.next/server/app/api/agents/route.js.nft.json +1 -1
  37. package/bundle/.next/server/app/api/diagnostics/route.js +1 -1
  38. package/bundle/.next/server/app/api/diagnostics/route.js.nft.json +1 -1
  39. package/bundle/.next/server/app/api/files/reveal/route.js +1 -1
  40. package/bundle/.next/server/app/api/gateway/control/route.js +1 -1
  41. package/bundle/.next/server/app/api/gateway/control/route.js.nft.json +1 -1
  42. package/bundle/.next/server/app/api/integrations/[integrationId]/status/route.js +1 -1
  43. package/bundle/.next/server/app/api/mission/route.js +1 -1
  44. package/bundle/.next/server/app/api/mission/route.js.nft.json +1 -1
  45. package/bundle/.next/server/app/api/models/catalog/route.js +2 -2
  46. package/bundle/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
  47. package/bundle/.next/server/app/api/models/providers/route.js +2 -2
  48. package/bundle/.next/server/app/api/models/providers/route.js.nft.json +1 -1
  49. package/bundle/.next/server/app/api/onboarding/models/route.js +3 -3
  50. package/bundle/.next/server/app/api/onboarding/models/route.js.nft.json +1 -1
  51. package/bundle/.next/server/app/api/onboarding/route.js +2 -2
  52. package/bundle/.next/server/app/api/onboarding/route.js.nft.json +1 -1
  53. package/bundle/.next/server/app/api/openclaw/capabilities/route.js +1 -1
  54. package/bundle/.next/server/app/api/openclaw/compatibility-smoke/route.js +1 -0
  55. package/bundle/.next/server/app/api/openclaw/compatibility-smoke/route.js.nft.json +1 -0
  56. package/bundle/.next/server/app/api/openclaw/compatibility-smoke/route_client-reference-manifest.js +1 -0
  57. package/bundle/.next/server/app/api/planner/[planId]/deploy/route.js +2 -2
  58. package/bundle/.next/server/app/api/planner/[planId]/deploy/route.js.nft.json +1 -1
  59. package/bundle/.next/server/app/api/planner/[planId]/document-rewrite/route.js +1 -1
  60. package/bundle/.next/server/app/api/planner/[planId]/document-rewrite/route.js.nft.json +1 -1
  61. package/bundle/.next/server/app/api/planner/[planId]/route.js +1 -1
  62. package/bundle/.next/server/app/api/planner/[planId]/route.js.nft.json +1 -1
  63. package/bundle/.next/server/app/api/planner/[planId]/simulate/route.js +1 -1
  64. package/bundle/.next/server/app/api/planner/[planId]/simulate/route.js.nft.json +1 -1
  65. package/bundle/.next/server/app/api/planner/[planId]/turn/route.js +1 -1
  66. package/bundle/.next/server/app/api/planner/[planId]/turn/route.js.nft.json +1 -1
  67. package/bundle/.next/server/app/api/planner/route.js +1 -1
  68. package/bundle/.next/server/app/api/planner/route.js.nft.json +1 -1
  69. package/bundle/.next/server/app/api/reset/route.js +2 -2
  70. package/bundle/.next/server/app/api/reset/route.js.nft.json +1 -1
  71. package/bundle/.next/server/app/api/runtimes/[runtimeId]/route.js +1 -1
  72. package/bundle/.next/server/app/api/runtimes/[runtimeId]/route.js.nft.json +1 -1
  73. package/bundle/.next/server/app/api/settings/gateway/route.js +1 -1
  74. package/bundle/.next/server/app/api/settings/gateway/route.js.nft.json +1 -1
  75. package/bundle/.next/server/app/api/settings/openclaw-binary/route.js +1 -1
  76. package/bundle/.next/server/app/api/settings/openclaw-binary/route.js.nft.json +1 -1
  77. package/bundle/.next/server/app/api/settings/workspace-root/route.js +1 -1
  78. package/bundle/.next/server/app/api/settings/workspace-root/route.js.nft.json +1 -1
  79. package/bundle/.next/server/app/api/snapshot/route.js +1 -1
  80. package/bundle/.next/server/app/api/snapshot/route.js.nft.json +1 -1
  81. package/bundle/.next/server/app/api/stream/route.js +2 -2
  82. package/bundle/.next/server/app/api/stream/route.js.nft.json +1 -1
  83. package/bundle/.next/server/app/api/system/open-terminal/route.js +1 -1
  84. package/bundle/.next/server/app/api/tasks/[taskId]/abort/route.js +1 -1
  85. package/bundle/.next/server/app/api/tasks/[taskId]/abort/route.js.nft.json +1 -1
  86. package/bundle/.next/server/app/api/tasks/[taskId]/control/route.js +1 -1
  87. package/bundle/.next/server/app/api/tasks/[taskId]/control/route.js.nft.json +1 -1
  88. package/bundle/.next/server/app/api/tasks/[taskId]/stream/route.js +2 -2
  89. package/bundle/.next/server/app/api/tasks/[taskId]/stream/route.js.nft.json +1 -1
  90. package/bundle/.next/server/app/api/update/route.js +2 -2
  91. package/bundle/.next/server/app/api/update/route.js.nft.json +1 -1
  92. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/discovered-groups/route.js +1 -1
  93. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/discovered-groups/route.js.nft.json +1 -1
  94. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/route.js +1 -1
  95. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/route.js.nft.json +1 -1
  96. package/bundle/.next/server/app/api/workspaces/[workspaceId]/edit-draft/route.js +1 -1
  97. package/bundle/.next/server/app/api/workspaces/[workspaceId]/edit-draft/route.js.nft.json +1 -1
  98. package/bundle/.next/server/app/api/workspaces/[workspaceId]/files/route.js +1 -1
  99. package/bundle/.next/server/app/api/workspaces/[workspaceId]/files/route.js.nft.json +1 -1
  100. package/bundle/.next/server/app/api/workspaces/[workspaceId]/surfaces/discovery/route.js +1 -1
  101. package/bundle/.next/server/app/api/workspaces/[workspaceId]/surfaces/discovery/route.js.nft.json +1 -1
  102. package/bundle/.next/server/app/api/workspaces/route.js +2 -2
  103. package/bundle/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  104. package/bundle/.next/server/app/files/page.js +2 -2
  105. package/bundle/.next/server/app/files/page.js.nft.json +1 -1
  106. package/bundle/.next/server/app/files/page_client-reference-manifest.js +1 -1
  107. package/bundle/.next/server/app/integrations/page.js +2 -2
  108. package/bundle/.next/server/app/integrations/page.js.nft.json +1 -1
  109. package/bundle/.next/server/app/integrations/page_client-reference-manifest.js +1 -1
  110. package/bundle/.next/server/app/models/page.js +2 -2
  111. package/bundle/.next/server/app/models/page.js.nft.json +1 -1
  112. package/bundle/.next/server/app/models/page_client-reference-manifest.js +1 -1
  113. package/bundle/.next/server/app/page.js +2 -2
  114. package/bundle/.next/server/app/page.js.nft.json +1 -1
  115. package/bundle/.next/server/app/page_client-reference-manifest.js +1 -1
  116. package/bundle/.next/server/app/settings/page.js +2 -2
  117. package/bundle/.next/server/app/settings/page.js.nft.json +1 -1
  118. package/bundle/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  119. package/bundle/.next/server/app/tasks/page.js +2 -2
  120. package/bundle/.next/server/app/tasks/page.js.nft.json +1 -1
  121. package/bundle/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  122. package/bundle/.next/server/app-paths-manifest.json +9 -8
  123. package/bundle/.next/server/chunks/1718.js +4 -0
  124. package/bundle/.next/server/chunks/4391.js +45 -35
  125. package/bundle/.next/server/chunks/4767.js +1 -4
  126. package/bundle/.next/server/chunks/5151.js +14 -4
  127. package/bundle/.next/server/chunks/6476.js +2 -2
  128. package/bundle/.next/server/chunks/8849.js +1 -1
  129. package/bundle/.next/server/functions-config-manifest.json +1 -0
  130. package/bundle/.next/server/middleware-build-manifest.js +1 -1
  131. package/bundle/.next/server/middleware-react-loadable-manifest.js +1 -1
  132. package/bundle/.next/server/pages/404.html +1 -1
  133. package/bundle/.next/server/pages/500.html +1 -1
  134. package/bundle/.next/server/server-reference-manifest.json +1 -1
  135. package/bundle/.next/static/C5KQaZvAavAtZzYvH3CPw/_buildManifest.js +1 -0
  136. package/bundle/.next/static/chunks/2396-395f5ed99e66819d.js +1 -0
  137. package/bundle/.next/static/chunks/7197.2385ee563e32813a.js +1 -0
  138. package/bundle/.next/static/chunks/7442-b2286cbca8c413fd.js +198 -0
  139. package/bundle/.next/static/chunks/app/_global-error/{page-73422dc4075cbfe0.js → page-8443c62570b9a078.js} +1 -1
  140. package/bundle/.next/static/chunks/app/_not-found/{page-73422dc4075cbfe0.js → page-8443c62570b9a078.js} +1 -1
  141. package/bundle/.next/static/chunks/app/api/agents/[agentId]/chat/{route-73422dc4075cbfe0.js → route-8443c62570b9a078.js} +1 -1
  142. package/bundle/.next/static/chunks/app/api/agents/{route-73422dc4075cbfe0.js → route-8443c62570b9a078.js} +1 -1
  143. package/bundle/.next/static/chunks/app/api/diagnostics/route-8443c62570b9a078.js +1 -0
  144. package/bundle/.next/static/chunks/app/api/files/reveal/route-8443c62570b9a078.js +1 -0
  145. package/bundle/.next/static/chunks/app/api/gateway/control/route-8443c62570b9a078.js +1 -0
  146. package/bundle/.next/static/chunks/app/api/integrations/[integrationId]/status/route-8443c62570b9a078.js +1 -0
  147. package/bundle/.next/static/chunks/app/api/mission/route-8443c62570b9a078.js +1 -0
  148. package/bundle/.next/static/chunks/app/api/models/catalog/route-8443c62570b9a078.js +1 -0
  149. package/bundle/.next/static/chunks/app/api/models/providers/route-8443c62570b9a078.js +1 -0
  150. package/bundle/.next/static/chunks/app/api/onboarding/models/route-8443c62570b9a078.js +1 -0
  151. package/bundle/.next/static/chunks/app/api/onboarding/route-8443c62570b9a078.js +1 -0
  152. package/bundle/.next/static/chunks/app/api/openclaw/capabilities/route-8443c62570b9a078.js +1 -0
  153. package/bundle/.next/static/chunks/app/api/openclaw/compatibility-smoke/route-8443c62570b9a078.js +1 -0
  154. package/bundle/.next/static/chunks/app/api/planner/[planId]/deploy/route-8443c62570b9a078.js +1 -0
  155. package/bundle/.next/static/chunks/app/api/planner/[planId]/document-rewrite/route-8443c62570b9a078.js +1 -0
  156. package/bundle/.next/static/chunks/app/api/planner/[planId]/route-8443c62570b9a078.js +1 -0
  157. package/bundle/.next/static/chunks/app/api/planner/[planId]/simulate/route-8443c62570b9a078.js +1 -0
  158. package/bundle/.next/static/chunks/app/api/planner/[planId]/turn/route-8443c62570b9a078.js +1 -0
  159. package/bundle/.next/static/chunks/app/api/planner/route-8443c62570b9a078.js +1 -0
  160. package/bundle/.next/static/chunks/app/api/reset/route-8443c62570b9a078.js +1 -0
  161. package/bundle/.next/static/chunks/app/api/runtimes/[runtimeId]/route-8443c62570b9a078.js +1 -0
  162. package/bundle/.next/static/chunks/app/api/settings/gateway/route-8443c62570b9a078.js +1 -0
  163. package/bundle/.next/static/chunks/app/api/settings/openclaw-binary/route-8443c62570b9a078.js +1 -0
  164. package/bundle/.next/static/chunks/app/api/settings/workspace-root/route-8443c62570b9a078.js +1 -0
  165. package/bundle/.next/static/chunks/app/api/snapshot/route-8443c62570b9a078.js +1 -0
  166. package/bundle/.next/static/chunks/app/api/stream/route-8443c62570b9a078.js +1 -0
  167. package/bundle/.next/static/chunks/app/api/system/open-terminal/route-8443c62570b9a078.js +1 -0
  168. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/abort/route-8443c62570b9a078.js +1 -0
  169. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/control/route-8443c62570b9a078.js +1 -0
  170. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/stream/route-8443c62570b9a078.js +1 -0
  171. package/bundle/.next/static/chunks/app/api/update/route-8443c62570b9a078.js +1 -0
  172. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/discovered-groups/route-8443c62570b9a078.js +1 -0
  173. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/route-8443c62570b9a078.js +1 -0
  174. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/edit-draft/route-8443c62570b9a078.js +1 -0
  175. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/files/route-8443c62570b9a078.js +1 -0
  176. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/surfaces/discovery/route-8443c62570b9a078.js +1 -0
  177. package/bundle/.next/static/chunks/app/api/workspaces/route-8443c62570b9a078.js +1 -0
  178. package/bundle/.next/static/chunks/app/not-found-8443c62570b9a078.js +1 -0
  179. package/bundle/.next/static/chunks/next/dist/client/components/builtin/app-error-8443c62570b9a078.js +1 -0
  180. package/bundle/.next/static/chunks/next/dist/client/components/builtin/forbidden-8443c62570b9a078.js +1 -0
  181. package/bundle/.next/static/chunks/next/dist/client/components/builtin/unauthorized-8443c62570b9a078.js +1 -0
  182. package/bundle/.next/static/chunks/{webpack-1e021d6850c9ac01.js → webpack-13c3a46c1cdfa6e4.js} +1 -1
  183. package/bundle/.next/static/css/288b13e5308447b9.css +3 -0
  184. package/bundle/server.js +1 -1
  185. package/package.json +1 -1
  186. package/bundle/.next/static/JJw_UWORQdbCo0tnqFq68/_buildManifest.js +0 -1
  187. package/bundle/.next/static/chunks/1994.2c1ce6369c0b31aa.js +0 -1
  188. package/bundle/.next/static/chunks/2396-3a9544c281c618dd.js +0 -1
  189. package/bundle/.next/static/chunks/7442-0da619eb6902ba5b.js +0 -188
  190. package/bundle/.next/static/chunks/app/api/diagnostics/route-73422dc4075cbfe0.js +0 -1
  191. package/bundle/.next/static/chunks/app/api/files/reveal/route-73422dc4075cbfe0.js +0 -1
  192. package/bundle/.next/static/chunks/app/api/gateway/control/route-73422dc4075cbfe0.js +0 -1
  193. package/bundle/.next/static/chunks/app/api/integrations/[integrationId]/status/route-73422dc4075cbfe0.js +0 -1
  194. package/bundle/.next/static/chunks/app/api/mission/route-73422dc4075cbfe0.js +0 -1
  195. package/bundle/.next/static/chunks/app/api/models/catalog/route-73422dc4075cbfe0.js +0 -1
  196. package/bundle/.next/static/chunks/app/api/models/providers/route-73422dc4075cbfe0.js +0 -1
  197. package/bundle/.next/static/chunks/app/api/onboarding/models/route-73422dc4075cbfe0.js +0 -1
  198. package/bundle/.next/static/chunks/app/api/onboarding/route-73422dc4075cbfe0.js +0 -1
  199. package/bundle/.next/static/chunks/app/api/openclaw/capabilities/route-73422dc4075cbfe0.js +0 -1
  200. package/bundle/.next/static/chunks/app/api/planner/[planId]/deploy/route-73422dc4075cbfe0.js +0 -1
  201. package/bundle/.next/static/chunks/app/api/planner/[planId]/document-rewrite/route-73422dc4075cbfe0.js +0 -1
  202. package/bundle/.next/static/chunks/app/api/planner/[planId]/route-73422dc4075cbfe0.js +0 -1
  203. package/bundle/.next/static/chunks/app/api/planner/[planId]/simulate/route-73422dc4075cbfe0.js +0 -1
  204. package/bundle/.next/static/chunks/app/api/planner/[planId]/turn/route-73422dc4075cbfe0.js +0 -1
  205. package/bundle/.next/static/chunks/app/api/planner/route-73422dc4075cbfe0.js +0 -1
  206. package/bundle/.next/static/chunks/app/api/reset/route-73422dc4075cbfe0.js +0 -1
  207. package/bundle/.next/static/chunks/app/api/runtimes/[runtimeId]/route-73422dc4075cbfe0.js +0 -1
  208. package/bundle/.next/static/chunks/app/api/settings/gateway/route-73422dc4075cbfe0.js +0 -1
  209. package/bundle/.next/static/chunks/app/api/settings/openclaw-binary/route-73422dc4075cbfe0.js +0 -1
  210. package/bundle/.next/static/chunks/app/api/settings/workspace-root/route-73422dc4075cbfe0.js +0 -1
  211. package/bundle/.next/static/chunks/app/api/snapshot/route-73422dc4075cbfe0.js +0 -1
  212. package/bundle/.next/static/chunks/app/api/stream/route-73422dc4075cbfe0.js +0 -1
  213. package/bundle/.next/static/chunks/app/api/system/open-terminal/route-73422dc4075cbfe0.js +0 -1
  214. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/abort/route-73422dc4075cbfe0.js +0 -1
  215. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/control/route-73422dc4075cbfe0.js +0 -1
  216. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/stream/route-73422dc4075cbfe0.js +0 -1
  217. package/bundle/.next/static/chunks/app/api/update/route-73422dc4075cbfe0.js +0 -1
  218. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/discovered-groups/route-73422dc4075cbfe0.js +0 -1
  219. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/route-73422dc4075cbfe0.js +0 -1
  220. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/edit-draft/route-73422dc4075cbfe0.js +0 -1
  221. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/files/route-73422dc4075cbfe0.js +0 -1
  222. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/surfaces/discovery/route-73422dc4075cbfe0.js +0 -1
  223. package/bundle/.next/static/chunks/app/api/workspaces/route-73422dc4075cbfe0.js +0 -1
  224. package/bundle/.next/static/chunks/app/not-found-73422dc4075cbfe0.js +0 -1
  225. package/bundle/.next/static/chunks/next/dist/client/components/builtin/app-error-73422dc4075cbfe0.js +0 -1
  226. package/bundle/.next/static/chunks/next/dist/client/components/builtin/forbidden-73422dc4075cbfe0.js +0 -1
  227. package/bundle/.next/static/chunks/next/dist/client/components/builtin/unauthorized-73422dc4075cbfe0.js +0 -1
  228. package/bundle/.next/static/css/6de56db1be7d3d06.css +0 -3
  229. /package/bundle/.next/static/{JJw_UWORQdbCo0tnqFq68 → C5KQaZvAavAtZzYvH3CPw}/_ssgManifest.js +0 -0
@@ -1,9 +1,9 @@
1
1
  exports.id=6476,exports.ids=[6476],exports.modules={3442:()=>{},6491:()=>{},7565:(a,b,c)=>{"use strict";c.d(b,{QL:()=>h,Xz:()=>g});var d=c(38699),e=c(26516);let f=null;function g(){let a;return f||(a=new d.p,f=(0,e.JG)()?a:new e.gH({fallback:a})),f}function h(a="reset"){let b=f;f=null;try{b?.close?.(a)}catch{}}},14805:(a,b,c)=>{"use strict";c.d(b,{Wy:()=>k,eG:()=>i,fh:()=>h,kz:()=>j,lk:()=>l,tj:()=>g});var d=c(51455),e=c(48161),f=c(76760);let g="AGENTOS_RUNTIME_DIR",h="openclaw-gateway-auth.json";function i(a=process.env){return"1"===a.AGENTOS_PACKAGE_RUNTIME}function j(a=process.env){return(0,f.join)(function(a=process.env){var b;let c=a[g]?.trim();return c?(b=c).startsWith("~")?(0,f.join)((0,e.homedir)(),b.slice(1)):b:(0,f.join)((0,e.homedir)(),".agentos")}(a),h)}async function k(a,b=process.env){let c=a.value.trim();if(!c)throw Error("Gateway token/password is required.");let e=j(b);return await (0,d.mkdir)((0,f.dirname)(e),{recursive:!0}),await (0,d.writeFile)(e,`${JSON.stringify({version:1,kind:a.kind,value:c,updatedAt:new Date().toISOString()},null,2)}
2
2
  `,{encoding:"utf8",mode:384}),await (0,d.chmod)(e,384),e}async function l(a=process.env){let b;try{b=JSON.parse(await (0,d.readFile)(j(a),"utf8"))}catch{return null}let c="token"===b.kind||"password"===b.kind?b.kind:null,e="string"==typeof b.value&&b.value.trim()?b.value.trim():null;return c&&e?{kind:c,value:e}:null}},15292:(a,b,c)=>{"use strict";c.d(b,{Ck:()=>p,Df:()=>t,Fs:()=>r,XV:()=>q,bq:()=>o,g:()=>s,ml:()=>n});var d=c(73024),e=c(51455),f=c(48161),g=c.n(f),h=c(76760),i=c.n(h),j=c(31421),k=c(97411);let l=i().join(g().homedir(),".openclaw"),m=i().join(l,"binary-selection.json");function n(){return{mode:"auto",path:null,resolvedPath:null,label:"Auto",detail:"Use the managed resolution order."}}async function o(){try{let c=await (0,e.readFile)(m,"utf8");var a,b=JSON.parse(c);if(!b||"object"!=typeof b)return n();let d=(a=b.mode,"auto"===a||"local-prefix"===a||"global-path"===a||"custom"===a?a:null);if(!d||"auto"===d)return n();let f="string"==typeof b.path?b.path.trim():"";return f?{mode:d,path:i().normalize(f),resolvedPath:i().normalize(f),label:"local-prefix"===d?"Local prefix":"global-path"===d?"Global PATH":"Custom path",detail:i().normalize(f)}:n()}catch(a){return"object"==typeof a&&a&&"code"in a&&a.code,n()}}async function p(a){await (0,e.mkdir)(l,{recursive:!0}),await (0,e.writeFile)(m,`${JSON.stringify(a,null,2)}
3
- `,"utf8")}async function q(a){await (0,e.access)(a,d.constants.X_OK)}async function r(){let a="win32"===process.platform?"where":"which",b="win32"===process.platform?["openclaw.exe"]:["openclaw"],c=(0,j.spawnSync)(a,b,{encoding:"utf8"});if(0!==c.status||c.error)throw Error("Could not resolve openclaw from PATH.");let d=c.stdout.split(/\r?\n/).map(a=>a.trim()).find(Boolean)||"";if(!d)throw Error("Could not resolve openclaw from PATH.");return d}function s(a){return a&&"auto"!==a.mode?"local-prefix"===a.mode?(0,k.lz)():a.path:null}function t(a,b){return a?{...a,resolvedPath:"auto"===a.mode?b:a.resolvedPath||a.path||b}:{...n(),resolvedPath:b}}},17929:(a,b,c)=>{"use strict";c.d(b,{FZ:()=>function a(b){return"string"==typeof b?o(b):Array.isArray(b)?b.some(b=>a(b)):!!h(b)&&Object.values(b).some(b=>a(b))},LK:()=>h,Pu:()=>k,WW:()=>m,e6:()=>i,g:()=>g,hz:()=>n,nf:()=>j,o0:()=>o,r0:()=>l,r_:()=>f,yK:()=>p});var d=c(24117),e=c(98717);function f(){return`agentos:${Date.now().toString(36)}:${Math.random().toString(36).slice(2)}`}function g(a){return"string"==typeof a?a.trim():""}function h(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function i(a,b){if(!b.trim())return a;let c=a;for(let a of j(b)){if(Array.isArray(c)&&"number"==typeof a){c=c[a];continue}if(!h(c)||"string"!=typeof a)return;c=c[a]}return c}function j(a){let b,c=[],d=/([^[.\]]+)|\[(\d+)\]/g;for(;b=d.exec(a);)b[1]?c.push(b[1]):b[2]&&c.push(Number(b[2]));return c}function k(a){return JSON.parse(JSON.stringify(a))}function l(a,b,c){let d=j(b);if(0===d.length)throw new e.pz("Config path is required.","unknown");let f=a;for(let a=0;a<d.length-1;a+=1){let b=d[a],c=d[a+1];if("string"!=typeof b)throw new e.pz("Array root config paths are not supported.","unknown");let g=f[b];if(h(g)||Array.isArray(g)){f=g;continue}let i="number"==typeof c?[]:{};f[b]=i,f=i}let g=d[d.length-1];if("number"==typeof g){if(!Array.isArray(f))throw new e.pz("Config path points to an array index on a non-array parent.","unknown");f[g]=c;return}f[g]=c}function m(a,b){let c=j(b);if(0===c.length)throw new e.pz("Config path is required.","unknown");let d=a;for(let a=0;a<c.length-1;a+=1){let b=c[a];if(void 0===(d=Array.isArray(d)&&"number"==typeof b||h(d)&&"string"==typeof b?d[b]:void 0))return}let f=c[c.length-1];Array.isArray(d)&&"number"==typeof f?d.splice(f,1):h(d)&&"string"==typeof f&&delete d[f]}function n(a,b){return{stdout:JSON.stringify(a??{}),stderr:"",...b?{metadata:b}:{}}}function o(a){return a===d.K$}function p(a){return"string"==typeof a&&a.trim()?a.trim():null}},21916:(a,b,c)=>{"use strict";function d(a,b,c){return"in_progress"===a||b?.endsWith(":main")&&"number"==typeof c&&c<36e5?"running":"completed"===a||"done"===a?"completed":"failed"===a||"error"===a?"stalled":"idle"}function e(a){return a.rpcOk?a.activeRuntime?.status==="running"||a.activeRuntime?.status==="queued"?"engaged":a.heartbeatEnabled?"monitoring":a.lastActiveAt?"ready":"standby":"offline"}function f(a){if(a.runtime)return a.runtime.taskId?"running"===a.runtime.status||"queued"===a.runtime.status?`Tracking task ${a.runtime.taskId.slice(0,8)}`:"completed"===a.runtime.status?`Recent task ${a.runtime.taskId.slice(0,8)} completed`:"cancelled"===a.runtime.status?`Recent task ${a.runtime.taskId.slice(0,8)} cancelled`:"stalled"===a.runtime.status?`Recent task ${a.runtime.taskId.slice(0,8)} waiting for output`:`Recent task ${a.runtime.taskId.slice(0,8)}`:"running"===a.runtime.status||"queued"===a.runtime.status?"Maintaining main session context":"Main session recently updated";return a.heartbeatEvery?`Heartbeat on ${a.heartbeatEvery}`:"standby"===a.status?"Waiting for assignment":"Ready for next turn"}function g(a,b){let c=b.filter(b=>a.includes(b.id));return c.some(a=>"engaged"===a.status)?"engaged":c.some(a=>"monitoring"===a.status)?"monitoring":c.some(a=>"ready"===a.status)?"ready":c.some(a=>"offline"===a.status)?"offline":"standby"}function h(a,b){var c,d,e,f;let g=a.filter(a=>{var b;return!1!==(b=a).available&&!b.missing}),h=t([...a.map(a=>a.key.split("/")[0]||"unknown"),...(b?.auth?.providers??[]).map(a=>a?.provider).filter(u),...(b?.auth?.oauth?.providers??[]).map(a=>a?.provider).filter(u)].filter(u)),m=new Map((b?.auth?.providers??[]).filter(a=>u(a?.provider)).map(a=>[a.provider,a])),n=new Map((b?.auth?.oauth?.providers??[]).filter(a=>u(a?.provider)).map(a=>[a.provider,a])),o=r(b?.resolvedDefault??void 0),p=r(b?.defaultModel??void 0),q=o??p,s=q?k(q):null,v=!!(q&&g.some(a=>a.key===q)&&(c=s,d=a,e=m,f=n,c&&("ollama"===c?d.some(a=>i(c,a.key)&&!0===a.local):j(c).some(a=>{var b,c,d;let g,h;return b=a,c=e,d=f,g=c.get(b),h=d.get(b),(g?.profiles?.count??0)>0||h?.status==="ok"})))),w=v?q:g[0]?.key??null,x=h.map(b=>{var c;let d,e=a.filter(a=>i(b,a.key)),f=e.some(a=>!0!==a.local),g="ollama"!==b&&f,h=m.get(b),j=n.get(b),k="ollama"===b?e.some(a=>a.local):(h?.profiles?.count??0)>0||j?.status==="ok",o=null;return j?.status==="ok"?o="OAuth connected":(h?.profiles?.count??0)>0?o=`${h?.profiles?.count} auth profile${h?.profiles?.count===1?"":"s"}`:"ollama"===b&&k?o="Local Ollama model detected.":"ollama"===b?o="Install or pull a local model to unlock this route.":f&&(o="openai-codex"===(d=(c=b).trim().toLowerCase())?"Use the ChatGPT account-based login flow in terminal to use this route.":"openrouter"===d||"openai"===d||"anthropic"===d||"xai"===d||"google"===d||"gemini"===d||"deepseek"===d||"mistral"===d?`Add your ${l(c)} API key in terminal to use this route.`:`Connect ${l(c)} auth in terminal to use this route.`),{provider:b,connected:k,canLogin:g,detail:o}}),y=(b?.auth?.missingProvidersInUse??[]).filter(u),z=new Set(y),A=b?.auth?.unusableProfiles?.length??0,B=[];0===g.length&&B.push("No available models were detected yet."),g.length>0&&!q&&B.push("Choose a default model to finish setup."),q&&!v&&(s&&z.has(s)?B.push(`Default model is set, but ${l(s)} auth is still missing.`):y.length>0?B.push(`Default model is set, but auth is still missing for: ${y.join(", ")}.`):B.push("The selected default model is not ready yet.")),y.length>0&&!q&&B.push(`Auth is still missing for: ${y.join(", ")}.`),A>0&&B.push("Some stored model auth profiles are not usable.");let C=function(a){let b=a.defaultProvider?j(a.defaultProvider):[];if(b.some(b=>a.authProviders.some(a=>a.provider===b&&a.connected)))return null;for(let c of b){let b=a.authProviders.find(a=>a.provider===c&&!a.connected&&a.canLogin);if(b)return b.provider}let c=a.missingProvidersInUse.find(b=>a.authProviders.some(a=>a.provider===b&&!a.connected&&a.canLogin));return c||(a.authProviders.find(a=>!a.connected&&a.canLogin)?.provider??(a.providerIds.includes("openai-codex")||0===a.readyModels.length?"openai-codex":null))}({defaultProvider:s,authProviders:x,missingProvidersInUse:y,providerIds:h,readyModels:g});return{ready:g.length>0&&v,defaultModel:p??null,resolvedDefaultModel:o??null,defaultModelReady:v,recommendedModelId:w??null,preferredLoginProvider:C,totalModelCount:a.length,availableModelCount:g.length,localModelCount:g.filter(a=>a.local).length,remoteModelCount:g.filter(a=>!0!==a.local).length,missingModelCount:a.filter(a=>a.missing||!1===a.available).length,authProviders:x,issues:t(B)}}function i(a,b){let c=k(b)??"unknown";return"openai-codex"===a?"openai"===c||"openai-codex"===c:c===a}function j(a){return"openai"===a?["openai","openai-codex"]:[a]}function k(a){let[b]=a.split("/",1);return b||null}function l(a){let b=a.trim().toLowerCase();return"openrouter"===b?"OpenRouter":"openai-codex"===b?"ChatGPT":"openai"===b?"OpenAI":"anthropic"===b?"Anthropic":"ollama"===b?"Ollama":"xai"===b?"xAI":"google"===b||"gemini"===b?"Gemini":"deepseek"===b?"DeepSeek":"mistral"===b?"Mistral":a.split("-").map(a=>a?a[0].toUpperCase()+a.slice(1):a).join(" ")}function m(a){return a.rpcOk||a.hasOpenClawSignal?!a.rpcOk||a.warningCount>0||a.runtimeIssueCount>0?"degraded":"healthy":"offline"}function n(a){return Object.entries(a).flatMap(([a,b])=>"rejected"!==b.status?[]:[`${a}: ${b.reason instanceof Error?b.reason.message:String(b.reason)}`])}function o(a){let b=r(a.legacyInfo);if(a.latestVersion&&a.currentVersion){let b=p(a.latestVersion,a.currentVersion);return b>0?`Update available: v${a.latestVersion} is ready. Current version: v${a.currentVersion}.`:0===b?`OpenClaw is up to date on v${a.currentVersion}.`:`Running v${a.currentVersion}. Registry currently reports v${a.latestVersion}.`}return a.latestVersion?`Latest available version: v${a.latestVersion}. Current version could not be determined.`:b||(a.updateError?`Update registry check failed: ${a.updateError}`:a.currentVersion?`Running v${a.currentVersion}. Update registry status is still loading.`:void 0)}function p(a,b){let c=q(a),d=q(b),e=Math.max(c.length,d.length);for(let a=0;a<e;a+=1){let b=c[a]??0,e=d[a]??0;if("number"==typeof b&&"number"==typeof e){if(b!==e)return b-e;continue}let f=String(b),g=String(e);if(f!==g)return f.localeCompare(g)}return 0}function q(a){return a.trim().replace(/^v/i,"").split(/[^0-9a-zA-Z]+/).filter(Boolean).map(a=>/^\d+$/.test(a)?Number(a):a.toLowerCase())}function r(a){return a?.trim()||void 0}function s(a){let b=r(a);if(b)return b.split(/\r?\n/,1)[0]?.trim()||b}function t(a){return Array.from(new Set(a))}function u(a){return!!a}c.d(b,{Am:()=>t,Lp:()=>n,Nk:()=>r,OZ:()=>g,QK:()=>p,QL:()=>h,YO:()=>m,iP:()=>f,mB:()=>o,nn:()=>s,xH:()=>d,yv:()=>e})},24117:(a,b,c)=>{"use strict";c.d(b,{$s:()=>m,Fj:()=>n,Ht:()=>p,JV:()=>h,K$:()=>r,N4:()=>d,OJ:()=>f,Rg:()=>l,Tv:()=>q,ZX:()=>j,aj:()=>k,dK:()=>e,lY:()=>i,mh:()=>g,vO:()=>o});let d="ws://127.0.0.1:18789",e=4e3,f=8e3,g=3e4,h="connect",i=3,j=4,k={min:3,max:4},l="gateway-client",m="backend",n="device-auth.json",o="device.json",p=Buffer.from("302a300506032b6570032100","hex"),q=["operator.admin","operator.read","operator.write","operator.approvals","operator.pairing","operator.talk.secrets"],r="__OPENCLAW_REDACTED__"},26516:(a,b,c)=>{"use strict";c.d(b,{gH:()=>am,aj:()=>m.aj,Lo:()=>al,JG:()=>C});var d=c(38699),e=c(65493),f=c(80500),g=c(77598),h=c(51455),i=c(48161),j=c(76760),k=c(14805),l=c(98717),m=c(24117),n=c(17929),o=c(78446);async function p(a,b,c,d){if(d.readLocalConfigFile){let a=await q(b);if(a.fromConfigFile)return a}for(let d of b){let b=null;try{b=await a.getConfig(d,c)}catch(a){if((0,o.D)(a))return{value:"",invalidConfig:!0};continue}let e=(0,n.g)(b);if((0,n.o0)(e))throw new l.pz(`${d} is configured but OpenClaw returned a redacted secret. Set AGENTOS_OPENCLAW_GATEWAY_TOKEN/PASSWORD or OPENCLAW_GATEWAY_TOKEN/PASSWORD to enable native Gateway WS; using CLI fallback.`,"auth");if(e)return{value:e,invalidConfig:!1}}return{value:"",invalidConfig:!1}}async function q(a){let b,c=await w((b=process.env.OPENCLAW_CONFIG_PATH?.trim())?v(b):(0,j.join)(u(),"openclaw.json"));if(!c)return{value:"",invalidConfig:!1,fromConfigFile:!1};for(let b of a){let a=(0,n.g)((0,n.e6)(c,b));if((0,n.o0)(a))throw new l.pz(`${b} is configured but OpenClaw returned a redacted secret. Set AGENTOS_OPENCLAW_GATEWAY_TOKEN/PASSWORD or OPENCLAW_GATEWAY_TOKEN/PASSWORD to enable native Gateway WS; using CLI fallback.`,"auth");if(a)return{value:a,invalidConfig:!1,fromConfigFile:!0}}return{value:"",invalidConfig:!1,fromConfigFile:!0}}async function r(a,b,c,d){let e=s(c)?["gateway.auth.token","gateway.remote.token"]:["gateway.remote.token","gateway.auth.token"],f=s(c)?["gateway.auth.password","gateway.remote.password"]:["gateway.remote.password","gateway.auth.password"],g=b.token?.trim()||process.env.AGENTOS_OPENCLAW_GATEWAY_TOKEN?.trim()||process.env.OPENCLAW_GATEWAY_TOKEN?.trim();if(g)return{token:g,password:""};let h=b.password?.trim()||process.env.AGENTOS_OPENCLAW_GATEWAY_PASSWORD?.trim()||process.env.OPENCLAW_GATEWAY_PASSWORD?.trim();if(h)return{token:"",password:h};let i=await p(a,e,d,{readLocalConfigFile:!b.webSocketFactory});if(i.value||i.invalidConfig)return{token:i.value,password:""};let j=s(c)?await (0,k.lk)():null;if(j?.kind==="token")return{token:j.value,password:""};let l=await p(a,f,d,{readLocalConfigFile:!b.webSocketFactory}),m=l.invalidConfig?"":l.value;return m||j?.kind!=="password"?{token:"",password:m}:{token:"",password:j.value}}function s(a){try{let{hostname:b}=new URL(a);return"localhost"===b||"127.0.0.1"===b||"::1"===b||"[::1]"===b}catch{return!1}}async function t(a,b){if(!s(a)||b.webSocketFactory)return null;let c=u(),[d,e]=await Promise.all([w((0,j.join)(c,"identity",m.vO)),w((0,j.join)(c,"identity",m.Fj))]),f=(0,n.yK)(d?.deviceId),g=(0,n.yK)(d?.publicKeyPem),h=(0,n.yK)(d?.privateKeyPem),i=(0,n.yK)(e?.tokens?.operator?.token);return f&&g&&h&&i&&e?.deviceId===f?{deviceId:f,publicKeyPem:g,privateKeyPem:h,token:i}:null}function u(){let a=process.env.OPENCLAW_STATE_DIR?.trim();return a?v(a):(0,j.join)((0,i.homedir)(),".openclaw")}function v(a){return a.startsWith("~")?(0,j.join)((0,i.homedir)(),a.slice(1)):a}async function w(a){try{return JSON.parse(await (0,h.readFile)(a,"utf8"))}catch{return null}}function x(a){return a.toString("base64").replaceAll("+","-").replaceAll("/","_").replace(/=+$/g,"")}function y(a){return"string"==typeof a?a.trim().replaceAll("|",""):""}async function z(a,b,c,d,e){var f,h,i,j;let k,l,n=await t(c,b),o=b.scopes??m.Tv,p="",q="";try{let e=await r(a,b,c,d);p=e.token,q=e.password}catch(a){if(!n?.token)throw a}let s=!n||p||q?null:n,u=s?.token??p,v=u?{token:u}:q?{password:q}:void 0,w=Date.now(),z=process.platform,A=s&&e?{id:s.deviceId,publicKey:(j=s.publicKeyPem,(k=Buffer.from((0,g.createPublicKey)(j).export({type:"spki",format:"der"}))).length===m.Ht.length+32&&k.subarray(0,m.Ht.length).equals(m.Ht)?x(k.subarray(m.Ht.length)):x(k)),signature:(h=s.privateKeyPem,i=["v3",(f={deviceId:s.deviceId,clientId:b.clientName??m.Rg,clientMode:m.$s,role:b.role??"operator",scopes:o,signedAtMs:w,token:u??null,nonce:e,platform:z,deviceFamily:null}).deviceId,f.clientId,f.clientMode,f.role,f.scopes.join(","),String(f.signedAtMs),f.token??"",f.nonce,y(f.platform),y(f.deviceFamily)].join("|"),l=(0,g.createPrivateKey)(h),x((0,g.sign)(null,Buffer.from(i,"utf8"),l))),signedAt:w,nonce:e}:void 0;return{deviceAuth:s,params:{minProtocol:m.lY,maxProtocol:m.ZX,client:{id:b.clientName??m.Rg,version:b.clientVersion??"agentos",platform:z,mode:m.$s,instanceId:b.instanceId},role:b.role??"operator",scopes:o,caps:["tool-events"],...v?{auth:v}:{},...A?{device:A}:{},userAgent:"AgentOS",locale:"en"}}}var A=c(79102);function B(a){return a?.trim().toLowerCase()}function C(){let a=B(process.env.AGENTOS_OPENCLAW_GATEWAY_CLIENT??process.env.OPENCLAW_GATEWAY_CLIENT),b=B(process.env.AGENTOS_OPENCLAW_NATIVE_WS);return"cli"===a||"0"===b||"false"===b||"off"===b}function D(a,b){if("number"==typeof a&&Number.isFinite(a)&&a>0)return a;let c=Number(process.env.AGENTOS_OPENCLAW_NATIVE_WS_TIMEOUT_MS);return Number.isFinite(c)&&c>0?c:b&&/^(chat\.send|sessions\.send|sessions\.abort|chat\.abort)$/.test(b)?m.mh:b&&/(^|\.)(list|get|status|authStatus|schema|tail)$/.test(b)?m.OJ:m.dK}function E(a,b={}){var c;let d=(c=a,/(^|\.)(add|assign|cancel|configure|create|delete|invoke|put|remove|setup|update|set|unset|patch|apply|send|abort|resolve|restart|start|stop|logout)$/i.test(c))?"mutation":"read";return{safety:d,timeoutMs:b.timeoutMs,allowCliFallback:!0,allowReadCliFallbackOnNativeFailure:!1,allowMutationFallbackOnUnsupported:"mutation"===d}}function F(a,b,c){if(!1===c.allowCliFallback)return!1;let d=(0,l.$g)(a);return"mutation"!==c.safety?"unsupported"===d.kind||!0===c.allowReadCliFallbackOnNativeFailure:!!c.allowUnsafeMutationCliFallback||(!(a instanceof l.jl)||a.method===b)&&"unsupported"===d.kind&&!1!==c.allowMutationFallbackOnUnsupported}var G=c(99663);function H(a,b,c){if(a.addEventListener&&a.removeEventListener)return a.addEventListener(b,c),()=>a.removeEventListener?.(b,c);if(a.on){let d=(...a)=>{var d;"close"===b?c({code:"number"==typeof a[0]?a[0]:void 0,reason:"string"==typeof(d=a[1])?d:Buffer.isBuffer(d)?d.toString("utf8"):ArrayBuffer.isView(d)?Buffer.from(d.buffer,d.byteOffset,d.byteLength).toString("utf8"):void 0}):c(a[0])};return a.on(b,d),()=>{a.off?a.off(b,d):a.removeListener?.(b,d)}}let d=`on${b}`,e=a[d];return a[d]=c,()=>{a[d]===c&&(a[d]=e??null)}}function I(a){if(!a||"object"!=typeof a)return null;let b="number"==typeof a.code?a.code:null,c="string"==typeof a.reason?a.reason:"";return b?`${b}${c?`: ${c}`:""}`:c||null}function J(a){if("string"!=typeof a)if(a instanceof ArrayBuffer)a=new TextDecoder().decode(a);else{if(!ArrayBuffer.isView(a))return null;a=new TextDecoder().decode(a)}try{return JSON.parse(a)}catch(a){throw new l.As("OpenClaw Gateway returned invalid JSON.",{cause:a})}}function K(a){if(a?.aborted)throw new l.As("OpenClaw Gateway request was aborted.")}async function L(a,b,c){K(c),1!==a.readyState&&await new Promise((d,e)=>{let f=!1,g=[],h=a=>{if(!f){for(let a of(f=!0,globalThis.clearTimeout(i),g))a();c?.removeEventListener("abort",j),a()}},i=globalThis.setTimeout(()=>{h(()=>e(new l.As("Timed out connecting to OpenClaw Gateway.")))},b),j=()=>{h(()=>e(new l.As("OpenClaw Gateway request was aborted.")))};g.push(H(a,"open",()=>h(d)),H(a,"error",a=>h(()=>e(new l.As("Failed to connect to OpenClaw Gateway.",{cause:a})))),H(a,"close",a=>h(()=>e(new l.As(`OpenClaw Gateway closed before the connection was ready${I(a)?` (${I(a)})`:""}.`))))),c?.addEventListener("abort",j,{once:!0})})}async function M(a,b,c){return K(c),await new Promise((d,e)=>{let f=!1,g=[],h=a=>{if(!f){for(let a of(f=!0,globalThis.clearTimeout(i),g))a();c?.removeEventListener("abort",j),a()}},i=globalThis.setTimeout(()=>{h(()=>e(new l.As("OpenClaw Gateway connect challenge timed out.")))},b),j=()=>{h(()=>e(new l.As("OpenClaw Gateway request was aborted.")))};g.push(H(a,"message",a=>{try{let b=a?.data??a,c=J(b);if(c?.type!=="event"||"connect.challenge"!==c.event)return;let f=c.payload?.nonce;if("string"!=typeof f||!f.trim())return void h(()=>e(new l.As("OpenClaw Gateway connect challenge is missing a nonce.")));h(()=>d(f.trim()))}catch(a){h(()=>e(a))}}),H(a,"close",a=>h(()=>e(new l.As(`OpenClaw Gateway closed before the connect challenge${I(a)?` (${I(a)})`:""}.`))))),c?.addEventListener("abort",j,{once:!0})})}function N(a,b,c,d,e,f){K(f);let g=(0,n.r_)();return new Promise((h,i)=>{function j(){globalThis.clearTimeout(n),f?.removeEventListener("abort",m)}function k(a){b.delete(g),j(),i(a)}function m(){k(new l.As("OpenClaw Gateway request was aborted."))}let n=globalThis.setTimeout(()=>{k(new l.jl(`Timed out waiting for OpenClaw Gateway method "${c}".`,c,!0))},e);b.set(g,{resolve:a=>{j(),h(a)},reject:k,timer:n,cleanup:j,method:c,sent:!1}),f?.addEventListener("abort",m,{once:!0});try{a.send(JSON.stringify({type:"req",id:g,method:c,params:d}));let e=b.get(g);e&&(e.sent=!0)}catch(a){k(new l.jl(`Failed to send OpenClaw Gateway method "${c}".`,c,!1,{cause:a}))}})}class O{constructor(a,b){this.fallback=a,this.options=b,this.socket=null,this.pending=new Map,this.cleanupCallbacks=[],this.eventListeners=new Set,this.closeListeners=new Set,this.connectPromise=null,this.hello=null,this.state="idle",this.lastNativeError=null,this.lastConnectedAt=null,this.lastDisconnectedAt=null}getDiagnostics(){return{connectionState:this.state,protocolVersion:"number"==typeof this.hello?.protocol?this.hello.protocol:null,lastNativeError:this.lastNativeError,lastConnectedAt:this.lastConnectedAt,lastDisconnectedAt:this.lastDisconnectedAt}}async request(a,b,c,d){let e=await this.ensureConnected(c,d);(0,A.qi)(e,a);let f=this.socket;if(!f||1!==f.readyState)throw new l.As("OpenClaw Gateway connection is not ready.");return N(f,this.pending,a,b,d,c.signal)}async probe(a,b){return this.ensureConnected(a,b)}async subscribe(a,b,c,d){let e=await this.ensureConnected(c,d),f=(0,A.sq)(a,e);if(0===f.length&&!(0,A.pP)(e,"chat")&&!(0,A.pP)(e,"agent")&&!(0,A.pP)(e,"session.message")&&!(0,A.pP)(e,"session.tool")&&!(0,A.pP)(e,"sessions.changed")&&!(0,A.pP)(e,"task")&&!(0,A.pP)(e,"task.updated")&&!(0,A.pP)(e,"task.completed")&&!(0,A.pP)(e,"artifact")&&!(0,A.pP)(e,"artifact.updated")&&!(0,A.pP)(e,"exec.approval.requested")&&!(0,A.pP)(e,"plugin.approval.requested"))throw new l.As("OpenClaw Gateway does not advertise compatible runtime event streaming.",{kind:"unsupported"});let g=a=>{try{b.onEvent(a)}catch(a){b.onError?.(a)}},h=()=>b.onClose?.();this.eventListeners.add(g),this.closeListeners.add(h);try{for(let a of f)await this.request(a.method,a.params,c,d)}catch(a){throw this.eventListeners.delete(g),this.closeListeners.delete(h),a}let i=!1;return{close:()=>{!i&&(i=!0,this.eventListeners.delete(g),this.closeListeners.delete(h),f.length>0&&this.close("event subscription closed"))}}}close(a="closed"){this.disconnect(new l.As(`OpenClaw Gateway connection closed: ${a}.`),{notify:!0,closeSocket:!0,state:"closed"})}async ensureConnected(a,b){return(K(a.signal),this.socket?.readyState===1&&this.hello)?this.hello:(this.connectPromise||(this.connectPromise=this.connect(a,b).finally(()=>{this.connectPromise=null})),this.connectPromise)}async connect(a,b){var c;this.disconnect(new l.As("Replacing stale OpenClaw Gateway connection."),{notify:!1,closeSocket:!0,state:"connecting"});let d=(c=this.options.url,c?.trim()||process.env.AGENTOS_OPENCLAW_GATEWAY_URL?.trim()||process.env.OPENCLAW_GATEWAY_URL?.trim()||m.N4),e=function(a){let b=a??("u">typeof process&&"1"===process.env.AGENTOS_PACKAGE_RUNTIME&&"function"==typeof globalThis.WebSocket?globalThis.WebSocket:"u">typeof process&&process.versions?.node?G.kb:globalThis.WebSocket);if(!b)throw new l.As("Native WebSocket is not available in this runtime.");return b}(this.options.webSocketFactory),f=await z(this.fallback,this.options,d,a),g=new e(d);this.socket=g,this.state="connecting",this.lastNativeError=null,this.cleanupCallbacks=[H(g,"message",a=>this.handleMessage(a)),H(g,"error",a=>{let b=new l.As("OpenClaw Gateway WebSocket error.",{cause:a});this.lastNativeError=b.message,this.rejectPending(b)}),H(g,"close",a=>{let b=I(a);this.disconnect(new l.As(`OpenClaw Gateway connection closed${b?` (${b})`:""}.`),{notify:!0,closeSocket:!1,state:"closed"})})];try{await L(g,b,a.signal);let c=f.deviceAuth?(await z(this.fallback,this.options,d,a,await M(g,b,a.signal))).params:f.params,e=await N(g,this.pending,m.JV,c,b,a.signal);return(0,A.MK)(e),this.hello=e,this.state="connected",this.lastConnectedAt=new Date().toISOString(),this.lastNativeError=null,e}catch(a){throw this.lastNativeError=a instanceof Error?a.message:String(a),this.disconnect(a,{notify:!0,closeSocket:!0,state:"error"}),a}}handleMessage(a){try{let b=a?.data??a,c=J(b);if(!c)return;if("event"===c.type){for(let a of[...this.eventListeners])a(c);return}if("res"!==c.type||void 0===c.id)return;let d=String(c.id),e=this.pending.get(d);if(!e)return;if(this.pending.delete(d),globalThis.clearTimeout(e.timer),!1===c.ok)return void e.reject(new l.jl(function(a){if("string"==typeof a)return a;if(a&&"object"==typeof a){let b="string"==typeof a.message?a.message:null,c="string"==typeof a.detail?a.detail:null;return["string"==typeof a.code?a.code:null,b,c].filter(Boolean).join(": ")}return""}(c.error)||c.message||c.code||"OpenClaw Gateway request failed.",e.method,e.sent,{cause:c}));e.resolve(c.payload)}catch(a){this.lastNativeError=a instanceof Error?a.message:String(a),this.rejectPending(a)}}rejectPending(a){for(let[b,c]of this.pending)globalThis.clearTimeout(c.timer),this.pending.delete(b),c.reject(a)}disconnect(a,b){let c=!!this.socket,d=this.socket;for(let a of(this.socket=null,this.hello=null,this.state=b.state,"connecting"!==b.state&&c&&(this.lastDisconnectedAt=new Date().toISOString()),this.cleanupCallbacks))a();if(this.cleanupCallbacks=[],this.rejectPending(a),b.notify)for(let a of[...this.closeListeners])a();b.closeSocket&&d&&function(a){if(3===a.readyState)return;let b=H(a,"error",()=>{}),c=globalThis.setTimeout(()=>{b?.(),b=null},5e3);"object"==typeof c&&c&&"unref"in c&&"function"==typeof c.unref&&c.unref();try{if(0===a.readyState&&"function"==typeof a.terminate)return void a.terminate();a.close()}catch{b?.(),b=null,globalThis.clearTimeout(c)}}(d)}}function P(a,b){let c=b?.trim();if(c?.startsWith("agent:"))return c;let d=a?.trim()||"main";return c?`agent:${d}:explicit:${c}`:`agent:${d}:main`}function Q(a={}){let b=a.key?.trim()||a.sessionKey?.trim();if(b)return{key:b};let c=a.sessionId?.trim(),d=a.agentId?.trim();return{agentId:d||void 0,sessionId:c||void 0,key:d||c?P(d,c):void 0}}function R(a={}){return{...Q(a),limit:a.limit,cursor:a.cursor??void 0}}function S(a,b){return"number"==typeof a.timeoutSeconds&&Number.isFinite(a.timeoutSeconds)&&a.timeoutSeconds>0?Math.floor(1e3*a.timeoutSeconds):"number"==typeof b.timeoutMs&&Number.isFinite(b.timeoutMs)&&b.timeoutMs>0?b.timeoutMs:45e3}function T(a){let b=(0,l.$g)(a).kind,c=a instanceof Error?a.message:String(a||"");return"unsupported"===b||"conflict"===b||"malformed-response"===b||/invalid .*sessions\.(create|patch) params|unexpected property/i.test(c)}var U=c(17661),V=c(21916);let W=U.Ik({runtimeVersion:U.Yj().optional(),version:U.Yj().optional(),updateChannel:U.Yj().optional()}).passthrough(),X=U.Ik({defaultId:U.Yj().optional(),mainKey:U.Yj().optional(),scope:U.Yj().optional(),agents:U.YO(U.Ik({id:U.Yj(),name:U.Yj().optional(),identity:U.Ik({name:U.Yj().optional(),theme:U.Yj().optional(),emoji:U.Yj().optional(),avatar:U.Yj().optional(),avatarUrl:U.Yj().optional()}).passthrough().optional(),workspace:U.Yj().optional(),model:U.Ik({primary:U.Yj().optional(),fallbacks:U.YO(U.Yj()).optional()}).passthrough().optional()}).passthrough())}).passthrough(),Y=U.Ik({sessions:U.YO(U.Ik({}).passthrough())}).passthrough(),Z=U.Ik({ts:U.ai(),channelOrder:U.YO(U.Yj()),channelLabels:U.g1(U.Yj(),U.Yj()),channelDetailLabels:U.g1(U.Yj(),U.Yj()).optional(),channelSystemImages:U.g1(U.Yj(),U.Yj()).optional(),channelMeta:U.YO(U.Ik({id:U.Yj(),label:U.Yj(),detailLabel:U.Yj(),systemImage:U.Yj().optional()}).passthrough()).optional(),channels:U.g1(U.Yj(),U.L5()),channelAccounts:U.g1(U.Yj(),U.YO(U.Ik({accountId:U.Yj(),name:U.Yj().optional(),enabled:U.zM().optional(),configured:U.zM().optional(),linked:U.zM().optional(),running:U.zM().optional(),connected:U.zM().optional(),lastError:U.Yj().optional(),healthState:U.Yj().optional()}).passthrough())),channelDefaultAccountId:U.g1(U.Yj(),U.Yj())}).passthrough(),$=U.Ik({models:U.YO(U.Ik({key:U.Yj().optional(),id:U.Yj().optional(),provider:U.Yj().optional(),name:U.Yj(),input:U.KC([U.Yj(),U.YO(U.Yj())]).optional().default("text"),contextWindow:U.ai().nullable().optional().default(null),local:U.zM().nullable().optional().default(null),available:U.zM().nullable().optional().default(null),tags:U.YO(U.Yj()).optional().default([]),missing:U.zM().optional().default(!1)}).passthrough())}).passthrough(),_=U.Ik({skills:U.YO(U.Ik({name:U.Yj(),description:U.Yj().optional(),emoji:U.Yj().optional(),eligible:U.zM().optional(),disabled:U.zM().optional(),blockedByAllowlist:U.zM().optional(),source:U.Yj().optional(),bundled:U.zM().optional()}).passthrough())}).passthrough(),aa=U.Ik({plugins:U.YO(U.Ik({id:U.Yj(),name:U.Yj(),status:U.Yj().optional(),toolNames:U.YO(U.Yj()).optional()}).passthrough()).optional(),descriptors:U.YO(U.Ik({}).passthrough()).optional()}).passthrough(),ab=U.Ik({exists:U.zM().optional(),valid:U.zM().optional(),hash:U.Yj().optional(),config:U.g1(U.Yj(),U.L5()).optional(),resolved:U.L5().optional()}).passthrough(),ac=U.Ik({}).passthrough();function ad(a,b,c){let d=b.safeParse(c);if(!d.success)throw new l.pz(`${a}: OpenClaw Gateway returned a malformed response.`,"malformed-response",{cause:d.error});return d.data}function ae(a,b){return ad(a,ac,b)}function af(a){(a?.latestVersion||a?.error)&&(ag={...a})}let ag=null;function ah(a){let b=ad("models.list",$,a);return{...b,models:b.models.map(a=>{let b=(0,n.yK)(a.id),c=(0,n.yK)(a.provider),d=(0,n.yK)(a.key)??(c&&b?`${c}/${b}`:b),e=Array.isArray(a.input)?a.input.filter(a=>"string"==typeof a).join(",")||"text":(0,n.yK)(a.input)??"text",f=Array.isArray(a.tags)?a.tags.filter(a=>"string"==typeof a):[];return!0!==a.default&&!0!==a.isDefault||f.includes("default")||f.push("default"),{key:d??(0,n.yK)(a.name)??"unknown",name:(0,n.yK)(a.name)??d??b??"Unknown model",input:e,contextWindow:"number"==typeof a.contextWindow?a.contextWindow:null,local:"boolean"==typeof a.local?a.local:null,available:"boolean"==typeof a.available?a.available:null,tags:f,missing:!0===a.missing}})}}function ai(a,b){var c,d;let e=(0,n.LK)(a)?a:{},f=b?ah(b).models:[],g=f.map(a=>a.key).filter(Boolean),h=(c=e,d=f,(0,n.yK)(c.defaultModel)??(0,n.yK)(c.default)??d.find(a=>a.tags.some(a=>"default"===a.toLowerCase()))?.key??null),i=(0,n.yK)(e.resolvedDefault)??(0,n.yK)(e.resolvedDefaultModel)??h,j=Array.isArray(e.providers)?e.providers.filter(a=>(0,n.LK)(a)):[];return{defaultModel:h,resolvedDefault:i,allowed:g,auth:{providers:j.map(a=>{let b=aj(a.profiles);return{provider:(0,n.yK)(a.provider)??void 0,effective:{kind:b>0?"ok":(0,n.yK)(a.status)??(0,n.yK)(a.kind)??void 0,detail:(0,n.yK)(a.detail)??void 0},profiles:{count:Array.isArray(a.profiles)?b:void 0}}}),missingProvidersInUse:Array.isArray(e.missingProvidersInUse)?e.missingProvidersInUse.filter(a=>"string"==typeof a):[],unusableProfiles:Array.isArray(e.unusableProfiles)?e.unusableProfiles:[],oauth:{providers:j.map(a=>({provider:(0,n.yK)(a.provider)??void 0,status:aj(a.profiles)>0?"ok":(0,n.yK)(a.status)??void 0,profiles:Array.isArray(a.profiles)?a.profiles:void 0,effectiveProfiles:Array.isArray(a.effectiveProfiles)?a.effectiveProfiles:void 0}))}}}}function aj(a){return Array.isArray(a)?a.filter(a=>(function(a){if(!(0,n.LK)(a))return!1;let b=(0,n.yK)(a.status)?.toLowerCase();return!b||!["expired","missing","invalid","error","disabled","revoked"].includes(b)})(a)).length:0}function ak(a){let b=ad("plugins.uiDescriptors",aa,a);return{plugins:(b.plugins??b.descriptors??[]).map(a=>({...a,id:(0,n.yK)(a.id)??(0,n.yK)(a.pluginId)??(0,n.yK)(a.name)??"unknown",name:(0,n.yK)(a.name)??(0,n.yK)(a.label)??(0,n.yK)(a.id)??"Unknown plugin",status:(0,n.yK)(a.status)??void 0,toolNames:Array.isArray(a.toolNames)?a.toolNames.filter(a=>"string"==typeof a):void 0}))}}function al(){return(0,l.Lo)()}class am{constructor(a={}){this.options=a,this.fallbackCounts={},this.lastNativeFailure=null,this.fallback=a.fallback??new d.p,this.connection=new O(this.fallback,a)}close(a="closed"){this.connection.close(a)}getDiagnostics(){var a,b,c;let d=this.connection.getDiagnostics(),e=this.options.forceCli||C(),f=Object.values(this.fallbackCounts).reduce((a,b)=>Number.isFinite(b)&&b>0?a+b:a,0),g=(0,l.Lo)(),h=(a=g,b=d.lastConnectedAt,0!==a.length&&(!b||a.some(a=>ap(a.at,b))))?f:0,i=ap(this.lastNativeFailure?.at??null,d.lastConnectedAt)?this.lastNativeFailure:null,j=this.lastNativeFailure?.issue||(0,l.mW)(d.lastNativeError),k=i?.issue||(0,l.mW)(d.lastNativeError),n=(c={forceCli:e,connectionState:d.connectionState,fallbackTotal:h,lastNativeError:k}).forceCli?"cli-forced":"error"===c.connectionState?"unreachable":c.fallbackTotal>0?"fallback-active":"closed"===c.connectionState||c.lastNativeError?"degraded":"native-ws";return{mode:e?"cli":"native-ws",gatewayMode:n,statusLabel:function(a){switch(a){case"native-ws":return"Native Gateway: OK";case"cli-forced":return"CLI fallback forced";case"fallback-active":return"CLI fallback used";case"unreachable":return"Native Gateway: Unreachable";default:return"Native Gateway: Degraded"}}(n),recovery:function(a,b){if("native-ws"===a)return null;if(b)return b;switch(a){case"cli-forced":return"Unset CLI-forced Gateway mode and restart AgentOS to use native WebSocket transport.";case"fallback-active":return"Inspect recent fallback diagnostics, update OpenClaw for protocol or method gaps, repair token/device access for auth failures, then restart the Gateway if needed.";case"unreachable":return"Start or restart the OpenClaw Gateway, verify the endpoint and token/password, then retry the native operation.";default:return"Inspect Gateway diagnostics, check token/device access, update OpenClaw for compatibility gaps, then restart the Gateway before retrying."}}(n,i?.recovery??null),connectionState:e?"cli-forced":d.connectionState,protocolVersion:d.protocolVersion,protocolRange:m.aj,fallbackCounts:{...this.fallbackCounts},fallbackTotal:f,recentFallbackDiagnostics:g,lastNativeError:j||null,lastNativeFailureAt:this.lastNativeFailure?.at??null,lastConnectedAt:d.lastConnectedAt,lastDisconnectedAt:d.lastDisconnectedAt}}recordNativeFailure(a,b){let c=(0,l.$g)(b);this.lastNativeFailure={at:new Date().toISOString(),operation:a,issue:(0,l.mW)(c.message),kind:c.kind,recovery:(0,l.fu)(c)}}clearNativeFailure(a){this.lastNativeFailure?.operation===a&&(this.lastNativeFailure=null)}recordGatewayFallback(a,b){this.recordNativeFailure(a,b),this.fallbackCounts[a]=(this.fallbackCounts[a]??0)+1,(0,l.Rd)(a,b)}cliFallbackDisabledError(a,b){this.recordNativeFailure(a,b);let c=(0,l.$g)(b);return new l.pz(`${c.message} Gateway-native operation failed; CLI fallback disabled for this operation. Recovery: ${(0,l.fu)(c)}`,c.kind,{cause:b})}getHealth(a={}){return this.gatewayFirst("health",{},a,a=>(0,n.LK)(a)?a:{},()=>this.fallback.getHealth(a))}getStatus(a={}){return this.options.forceCli||C()?this.fallback.getStatus(a):this.callNative("status",{},a).then(a=>{let b=ad("status",W,a);return((0,l.Z6)("status"),this.clearNativeFailure("status"),b.update?.registry?.latestVersion||b.update?.registry?.error)?(af(b.update?.registry),b):function(a){let b=a.update??{},c=(void 0)??{},d=function(a){var b;let c=((b=a).runtimeVersion||b.overview?.version||b.version||"").trim().replace(/^v/i,"")||null,d=ag?.latestVersion?.trim();if(ag){if(c&&d&&(0,V.QK)(c,d)>0){ag=null;return}return ag??void 0}}(a),e=b.registry??c.registry??d??void 0;if(e&&af(e),!e)return a;let f={...c,...b};return e&&(f.registry=e),{...a,update:f}}(b)}).catch(b=>{if(this.options.onNativeFailure?.(b,"status"),!F(b,"status",E("status",a)))throw this.cliFallbackDisabledError("status",b);return this.recordGatewayFallback("status",b),this.fallback.getStatus(a)})}getGatewayStatus(a={}){return this.gatewayFirst("health",{},a,a=>{let b=(0,n.LK)(a)?a:{};return{service:{label:!1===b.ok?"Runtime degraded":"Runtime ready",loaded:!1!==b.ok},rpc:{ok:!1!==b.ok}}},()=>this.fallback.getGatewayStatus(a))}async getModelStatus(a={}){if(this.options.forceCli||C())return this.fallback.getModelStatus(a);let[b,c]=await Promise.allSettled([this.callNative("models.authStatus",{},a),this.callNative("models.list",{view:"configured"},a)]);for(let d of[{method:"models.authStatus",result:b},{method:"models.list",result:c}].filter(a=>"rejected"===a.result.status))if(this.options.onNativeFailure?.(d.result.reason,d.method),!F(d.result.reason,d.method,E(d.method,a)))throw this.cliFallbackDisabledError(d.method,d.result.reason);if("rejected"===b.status&&"rejected"===c.status){let c=b.reason;return this.recordGatewayFallback("models.authStatus",c),this.fallback.getModelStatus(a)}return(0,l.Z6)("models.authStatus"),(0,l.Z6)("models.list"),this.clearNativeFailure("models.authStatus"),this.clearNativeFailure("models.list"),ai("fulfilled"===b.status?b.value:null,"fulfilled"===c.status?c.value:null)}async getAgentModelStatus(a,b={}){if(this.options.forceCli||C())return this.fallback.getAgentModelStatus(a,b);let c=a.agentId,[d,e]=await Promise.allSettled([this.callNative("models.authStatus",{agentId:c},b),this.callNative("models.list",{view:"configured"},b)]);for(let a of[{method:"models.authStatus",result:d},{method:"models.list",result:e}].filter(a=>"rejected"===a.result.status))if(this.options.onNativeFailure?.(a.result.reason,a.method),!F(a.result.reason,a.method,E(a.method,b)))throw this.cliFallbackDisabledError(a.method,a.result.reason);if("rejected"===d.status&&"rejected"===e.status){let c=d.reason;return this.recordGatewayFallback("models.authStatus",c),this.fallback.getAgentModelStatus(a,b)}(0,l.Z6)("models.authStatus"),(0,l.Z6)("models.list"),this.clearNativeFailure("models.authStatus"),this.clearNativeFailure("models.list");let f="fulfilled"===d.status?d.value:null,g=ai(f,"fulfilled"===e.status?e.value:null);return(0,n.LK)(f)&&(g.agentDir=(0,n.yK)(f.agentDir)??g.agentDir),g}setModelAuthOrder(a,b={}){return this.gatewayFirstCompatible("modelAuthOrder",{provider:a.provider,agentId:a.agentId,profileIds:a.profileIds},b,n.hz,()=>this.fallback.setModelAuthOrder(a,b))}listAgents(a={}){return this.gatewayFirst("agents.list",{},a,a=>ad("agents.list",X,a),()=>this.fallback.listAgents(a))}listSessions(a={},b={}){return this.gatewayFirst("sessions.list",{...a},b,a=>ad("sessions.list",Y,a),()=>this.fallback.listSessions(a,b))}describeSession(a={},b={}){return this.gatewayFirst("sessions.describe",{...Q(a),includeMessages:a.includeMessages,limit:a.limit},b,a=>ae("sessions.describe",a),()=>this.fallback.describeSession(a,b))}getSessionHistory(a={},b={}){return this.gatewayFirstSessionHistory(a,b)}exportSession(a={},b={}){return this.gatewayFirstSessionExport(a,b)}listTasks(a={},b={}){return this.gatewayFirst("tasks.list",{...a},b,a=>ae("tasks.list",a),()=>this.fallback.listTasks(a,b))}getTask(a,b={}){return this.gatewayFirst("tasks.get",{...a},b,a=>ae("tasks.get",a),()=>this.fallback.getTask(a,b))}assignTask(a,b={}){let c={...E("tasks.assign",b),allowCliFallback:!1,allowMutationFallbackOnUnsupported:!1};return this.gatewayFirst("tasks.assign",{...a,reason:a.reason??void 0},b,a=>ae("tasks.assign",a),()=>this.fallback.assignTask(a,b),c)}cancelTask(a,b={}){return this.gatewayFirst("tasks.cancel",{taskId:a.taskId,reason:a.reason??void 0},b,a=>ae("tasks.cancel",a),()=>this.fallback.cancelTask(a,b))}listArtifacts(a={},b={}){return this.gatewayFirst("artifacts.list",function(a={}){return{taskId:a.taskId?.trim()||void 0,runId:a.runId?.trim()||void 0,sessionKey:a.sessionKey?.trim()||a.sessionId?.trim()||void 0}}(a),b,a=>ae("artifacts.list",a),()=>this.fallback.listArtifacts(a,b))}getArtifact(a,b={}){return this.gatewayFirst("artifacts.get",{...a},b,a=>ae("artifacts.get",a),()=>this.fallback.getArtifact(a,b))}putArtifact(a,b={}){let c={...E("artifacts.put",b),allowCliFallback:!1,allowMutationFallbackOnUnsupported:!1};return this.gatewayFirst("artifacts.put",{...a},b,a=>ae("artifacts.put",a),()=>this.fallback.putArtifact(a,b),c)}deleteArtifact(a,b={}){let c={...E("artifacts.delete",b),allowCliFallback:!1,allowMutationFallbackOnUnsupported:!1};return this.gatewayFirst("artifacts.delete",{artifactId:a.artifactId,reason:a.reason??void 0},b,a=>ae("artifacts.delete",a),()=>this.fallback.deleteArtifact(a,b),c)}async getRuntimeSnapshot(a={},b={}){if(this.options.forceCli||C())return this.fallback.getRuntimeSnapshot(a,b);let c=!1!==a.includeSessions,d=!1!==a.includeTasks,e=!1!==a.includeArtifacts,f={taskId:a.taskId,runId:a.runId,sessionKey:a.sessionKey,sessionId:a.sessionId},g=e&&function(a={}){return!!(a.taskId?.trim()||a.runId?.trim()||a.sessionKey?.trim()||a.sessionId?.trim())}(f),h=await Promise.allSettled([c?this.listSessions({limit:a.limit,agentId:a.agentId},b):Promise.resolve(null),d?this.listTasks({limit:a.limit,agentId:a.agentId,workspace:a.workspace},b):Promise.resolve(null),g?this.listArtifacts(f,b):Promise.resolve(null)]),i=h.filter((a,b)=>[c,d,g][b]),j=i.filter(a=>"rejected"===a.status);if(i.length>0&&j.length===i.length)throw j[0]?.reason??Error("OpenClaw Gateway runtime snapshot failed.");let[k,l,m]=h,n={sessions:"fulfilled"===k.status?k.value?.sessions??[]:[],tasks:"fulfilled"===l.status?l.value?.tasks??[]:[],artifacts:"fulfilled"===m.status?m.value?.artifacts??[]:[]};return j.length>0&&(n.metadata={runtimeSnapshot:{partial:!0,errors:j.map(a=>{var b;return(b=a.reason)instanceof Error?b.message:String(b||"Unknown OpenClaw Gateway snapshot error.")})}}),n}getToolsCatalog(a={},b={}){return this.gatewayFirst("tools.catalog",{...a},b,a=>ae("tools.catalog",a),()=>this.fallback.getToolsCatalog(a,b))}getEffectiveTools(a={},b={}){return this.gatewayFirst("tools.effective",{...a},b,a=>ae("tools.effective",a),()=>this.fallback.getEffectiveTools(a,b))}invokeTool(a,b={}){return this.gatewayFirst("tools.invoke",{...a},b,a=>ae("tools.invoke",a),()=>this.fallback.invokeTool(a,b))}getChannelStatus(a={},b={}){return this.gatewayFirst("channels.status",{...a},b,a=>ad("channels.status",Z,a),()=>this.fallback.getChannelStatus(a,b))}getChannelLogs(a,b={}){return this.gatewayFirst("channels.logs",{channel:a.channel,lines:a.lines??void 0},b,a=>(0,n.LK)(a)?a:{},()=>this.fallback.getChannelLogs(a,b))}provisionChannelAccount(a,b={}){return this.gatewayFirstCompatible("channelProvisioning",{channel:a.channel,account:a.account?.trim()||void 0,accountId:a.account?.trim()||void 0,name:a.name?.trim()||void 0,token:a.token?.trim()||void 0,botToken:a.botToken?.trim()||void 0,webhookUrl:a.webhookUrl?.trim()||void 0},b,n.hz,()=>this.fallback.provisionChannelAccount(a,b))}removeChannelAccount(a,b={}){return this.gatewayFirstCompatible("channelRemoval",{channel:a.channel,account:a.account,accountId:a.account,delete:a.delete??void 0},b,n.hz,()=>this.fallback.removeChannelAccount(a,b))}setupGmailWebhook(a,b={}){return this.gatewayFirstCompatible("gmailProvisioning",{account:a.account,config:a.config??{}},b,n.hz,()=>this.fallback.setupGmailWebhook(a,b))}listSkills(a={}){return this.gatewayFirst("skills.status",{},a,b=>{let c=ad("skills.status",_,b);return a.eligible?{...c,skills:c.skills.filter(a=>!0===a.eligible)}:c},()=>this.fallback.listSkills(a))}listPlugins(a={}){return this.gatewayFirst("plugins.uiDescriptors",{},a,ak,()=>this.fallback.listPlugins(a))}listModels(a={},b={}){return this.gatewayFirst("models.list",{view:a.all?"all":"configured"},b,b=>{let c=ah(b);return a.provider?{...c,models:c.models.filter(b=>b.key.split("/",1)[0]===a.provider)}:c},()=>this.fallback.listModels(a,b))}scanModels(a={}){return this.fallback.scanModels(a)}probeGateway(a={}){return this.fallback.probeGateway(a)}controlGateway(a,b={}){return this.close(`gateway.${a}`),this.fallback.controlGateway(a,b).finally(()=>{this.close(`gateway.${a}.completed`)})}approveDeviceAccess(a={},b={}){return!1===a.latest||a.requestId?this.gatewayFirstCompatible("deviceApproval",{requestId:a.requestId??void 0,scopes:a.scopes},b,a=>ae("device.pair.approve",a),()=>this.fallback.approveDeviceAccess(a,b)):this.gatewayFirstCompatible("devicePairList",{},b,a=>ae("device.pair.list",a),()=>this.fallback.call("device.pair.list",{},b)).then(c=>{let d=(0,A.$k)(c);if(!d)throw new l.pz("No pending OpenClaw device access request found.","unknown");return this.approveDeviceAccess({...a,latest:!1,requestId:d},b)})}async call(a,b={},c={}){if(this.options.forceCli||C())return this.fallback.call(a,b,c);try{let d=await this.callNative(a,b,c);return(0,l.Z6)(a),this.clearNativeFailure(a),d}catch(e){this.options.onNativeFailure?.(e,a);let d=E(a,c);if(!F(e,a,d))throw this.cliFallbackDisabledError(a,e);return this.recordGatewayFallback(a,e),this.fallback.call(a,b,c)}}getConfig(a,b={}){return this.gatewayFirst("config.get",{},b,b=>{let c=ad("config.get",ab,b),d=(0,n.LK)(c.config)?c.config:{},e=(0,n.LK)(c.resolved)?c.resolved:{},f=(0,n.e6)(d,a)??(0,n.e6)(e,a);return void 0===f?null:f},()=>this.fallback.getConfig(a,b))}getConfigSchema(a={}){return this.gatewayFirst("config.schema",{},a,a=>(0,n.LK)(a)?a:null,()=>this.fallback.getConfigSchema?.(a)??Promise.resolve(null))}lookupConfigSchema(a,b={}){return this.gatewayFirst("config.schema.lookup",{path:a.path},b,a=>(0,n.LK)(a)?a:null,()=>this.fallback.lookupConfigSchema?.(a,b)??Promise.resolve(null))}async hasConfig(a,b={}){return null!=await this.getConfig(a,b)}setConfig(a,b,c={}){return this.gatewayConfigMutationFirst("config.set",a,b,c,c=>(0,n.r0)(c,a,b),()=>this.fallback.setConfig(a,b,c))}unsetConfig(a,b={}){return this.gatewayConfigMutationFirst("config.unset",a,void 0,b,b=>(0,n.WW)(b,a),()=>this.fallback.unsetConfig(a,b))}addAgent(a,b={}){if(a.agentDir?.trim())return this.fallback.addAgent(a,b);let c={name:a.name?.trim()||a.id,workspace:a.workspace};return a.model&&(c.model=a.model),a.emoji&&(c.emoji=a.emoji),a.avatar&&(c.avatar=a.avatar),this.gatewayFirst("agents.create",c,b,n.hz,()=>this.fallback.addAgent(a,b))}updateAgent(a,b={}){let c={agentId:a.id};return void 0!==a.name&&null!==a.name&&a.name.trim()&&(c.name=a.name.trim()),void 0!==a.workspace&&null!==a.workspace&&a.workspace.trim()&&(c.workspace=a.workspace.trim()),void 0!==a.model&&(c.model=a.model?.trim()||null),void 0!==a.emoji&&(c.emoji=a.emoji?.trim()||""),void 0!==a.avatar&&(c.avatar=a.avatar?.trim()||""),this.gatewayFirst("agents.update",c,b,n.hz,()=>this.fallback.updateAgent?.(a,b)??Promise.resolve({stdout:JSON.stringify({ok:!0,fallback:"application-config"}),stderr:""}))}setAgentIdentity(a,b={}){return this.gatewayFirstCompatible("agentIdentity",{agentId:a.agentId,agent:a.agentId,workspace:a.workspace,identityFile:a.identityFile,name:a.name?.trim()||void 0,emoji:a.emoji?.trim()||void 0,theme:a.theme?.trim()||void 0,avatar:a.avatar?.trim()||void 0},b,n.hz,()=>this.fallback.setAgentIdentity(a,b))}deleteAgent(a,b={}){return this.gatewayFirst("agents.delete",{agentId:a},b,n.hz,()=>this.fallback.deleteAgent(a,b))}provisionAutomation(a,b={}){return this.gatewayFirstCompatible("automationProvisioning",{name:a.name,description:a.description||a.name,agentId:a.agentId,agent:a.agentId,message:a.message,thinking:a.thinking||"medium",timeoutSeconds:a.timeoutSeconds??120,schedule:a.schedule,announce:a.announce??void 0},b,n.hz,()=>this.fallback.provisionAutomation(a,b))}async runAgentTurn(a,b={}){if(this.options.forceCli||C())return this.fallback.runAgentTurn(a,b);try{let c=await this.runAgentTurnNative(a,b);return(0,l.Z6)("chat.send"),(0,l.Z6)("sessions.send"),this.clearNativeFailure("chat.send"),this.clearNativeFailure("sessions.send"),c}catch(d){this.options.onNativeFailure?.(d,"chat.send");let c=d instanceof l.jl?d.method:"chat.send";if(!F(d,c,{safety:"mutation"}))throw this.cliFallbackDisabledError(c,d);return this.recordGatewayFallback("chat.send",d),this.fallback.runAgentTurn(a,b)}}abortAgentTurn(a,b={}){let c=a.sessionId||a.agentId?P(a.agentId,a.sessionId):void 0;return this.gatewayFirst("sessions.abort",{key:c,runId:a.runId??void 0},b,a=>a,()=>this.gatewayFirst("chat.abort",{sessionKey:c,runId:a.runId??void 0},b,a=>a,()=>this.fallback.abortAgentTurn?.(a,b)??this.fallback.call("sessions.abort",{key:c,runId:a.runId??void 0},b)))}async steerSession(a,b={}){if(this.options.forceCli||b.forceCli||C())throw new l.pz("Native OpenClaw Gateway is required for sessions.steer.","unsupported");try{let c,d,e=await this.callNative("sessions.steer",(c=a.key?.trim(),d=a.sessionId?.trim(),{key:c||void 0,sessionId:c?void 0:d||void 0,message:a.message}),b,{safety:"mutation",timeoutMs:b.timeoutMs,allowCliFallback:!1,allowMutationFallbackOnUnsupported:!1});return this.clearNativeFailure("sessions.steer"),ae("sessions.steer",e)}catch(a){throw this.options.onNativeFailure?.(a,"sessions.steer"),this.cliFallbackDisabledError("sessions.steer",a)}}async injectChat(a,b={}){if(this.options.forceCli||b.forceCli||C())throw new l.pz("Native OpenClaw Gateway is required for chat.inject.","unsupported");try{let c,d,e=await this.callNative("chat.inject",(c=a.sessionKey?.trim(),d=a.sessionId?.trim(),{sessionKey:c||void 0,sessionId:c?void 0:d||void 0,message:a.message}),b,{safety:"mutation",timeoutMs:b.timeoutMs,allowCliFallback:!1,allowMutationFallbackOnUnsupported:!1});return this.clearNativeFailure("chat.inject"),ae("chat.inject",e)}catch(a){throw this.options.onNativeFailure?.(a,"chat.inject"),this.cliFallbackDisabledError("chat.inject",a)}}async streamAgentTurn(a,b={},c={}){if(c.forceCli||this.options.forceCli||C())return this.fallback.streamAgentTurn(a,b,c);let d=P(a.agentId,a.sessionId),e=null,f=null,g="",h=()=>{},i=new Promise(a=>{h=a});try{e=await this.subscribeNativeEvents({subscribeSessions:!0,sessionKeys:[d]},{onEvent:a=>{let c=function(a,b,c){let d=(0,n.LK)(a.payload)?a.payload:{},e=(0,n.yK)(d.sessionKey)??(0,n.yK)(d.key)??(0,n.yK)(d.sessionId),f=(0,n.yK)(d.runId)??(0,n.yK)(d.run)??(0,n.yK)(d.clientRunId),g=b.includes(":explicit:")?b.split(":explicit:").at(1)??null:null;if(e&&e!==b&&e!==g||c&&f&&f!==c||!e&&!f)return null;let h=function(a){if(!(0,n.LK)(a))return null;let b=(0,n.LK)(a.author)?a.author:null;return(0,n.yK)(a.role)??(0,n.yK)(a.type)??(0,n.yK)(a.speaker)??(0,n.yK)(b?.role)??(0,n.yK)(b?.type)??(0,n.yK)(b?.name)}(d.message)??(0,n.yK)(d.role)??(0,n.yK)(d.authorRole)??(0,n.yK)(d.speaker);if(h&&/^(user|operator|system)$/i.test(h))return null;let i=(0,n.yK)(d.state)??(0,n.yK)(d.status)??(0,n.yK)(a.event),j=function a(b){return"string"==typeof b&&b.trim()?b.trim():Array.isArray(b)?b.flatMap(b=>{if(!(0,n.LK)(b))return[];if(("text"===b.type||"output_text"===b.type)&&"string"==typeof b.text&&b.text.trim())return[b.text.trim()];if("toolResult"===b.type){let c=a(b.content)??(0,n.yK)(b.text);return c?[c]:[]}return[]}).join("\n\n").trim()||null:(0,n.LK)(b)?(0,n.yK)(b.text)??(0,n.yK)(b.content)??a(b.content)??(0,n.yK)(b.summary)??(0,n.yK)(b.message):null}(d.message)??(0,n.yK)(d.text)??(0,n.yK)(d.summary)??(0,n.yK)(d.detail),k=/final|complete|completed|aborted|abort|error|failed|stalled/i.test(i??""),l=/error|failed|stalled/i.test(i??"");return!k||j||l?{text:j,done:k,payload:{runId:f??c??void 0,status:l?"stalled":k?"completed":"running",summary:j??"OpenClaw Gateway stream failed.",payloads:j?[{text:j,mediaUrl:null}]:[]}}:null}(a,d,f);c&&(c.text&&c.text!==g&&(g=c.text,b.onStdout?.(`${JSON.stringify({type:"assistant",text:c.text})}
3
+ `,"utf8")}async function q(a){await (0,e.access)(a,d.constants.X_OK)}async function r(){let a="win32"===process.platform?"where":"which",b="win32"===process.platform?["openclaw.exe"]:["openclaw"],c=(0,j.spawnSync)(a,b,{encoding:"utf8"});if(0!==c.status||c.error)throw Error("Could not resolve openclaw from PATH.");let d=c.stdout.split(/\r?\n/).map(a=>a.trim()).find(Boolean)||"";if(!d)throw Error("Could not resolve openclaw from PATH.");return d}function s(a){return a&&"auto"!==a.mode?"local-prefix"===a.mode?(0,k.lz)():a.path:null}function t(a,b){return a?{...a,resolvedPath:"auto"===a.mode?b:a.resolvedPath||a.path||b}:{...n(),resolvedPath:b}}},17929:(a,b,c)=>{"use strict";c.d(b,{FZ:()=>function a(b){return"string"==typeof b?o(b):Array.isArray(b)?b.some(b=>a(b)):!!h(b)&&Object.values(b).some(b=>a(b))},LK:()=>h,Pu:()=>k,WW:()=>m,e6:()=>i,g:()=>g,hz:()=>n,nf:()=>j,o0:()=>o,r0:()=>l,r_:()=>f,yK:()=>p});var d=c(24117),e=c(98717);function f(){return`agentos:${Date.now().toString(36)}:${Math.random().toString(36).slice(2)}`}function g(a){return"string"==typeof a?a.trim():""}function h(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function i(a,b){if(!b.trim())return a;let c=a;for(let a of j(b)){if(Array.isArray(c)&&"number"==typeof a){c=c[a];continue}if(!h(c)||"string"!=typeof a)return;c=c[a]}return c}function j(a){let b,c=[],d=/([^[.\]]+)|\[(\d+)\]/g;for(;b=d.exec(a);)b[1]?c.push(b[1]):b[2]&&c.push(Number(b[2]));return c}function k(a){return JSON.parse(JSON.stringify(a))}function l(a,b,c){let d=j(b);if(0===d.length)throw new e.pz("Config path is required.","unknown");let f=a;for(let a=0;a<d.length-1;a+=1){let b=d[a],c=d[a+1];if("string"!=typeof b)throw new e.pz("Array root config paths are not supported.","unknown");let g=f[b];if(h(g)||Array.isArray(g)){f=g;continue}let i="number"==typeof c?[]:{};f[b]=i,f=i}let g=d[d.length-1];if("number"==typeof g){if(!Array.isArray(f))throw new e.pz("Config path points to an array index on a non-array parent.","unknown");f[g]=c;return}f[g]=c}function m(a,b){let c=j(b);if(0===c.length)throw new e.pz("Config path is required.","unknown");let d=a;for(let a=0;a<c.length-1;a+=1){let b=c[a];if(void 0===(d=Array.isArray(d)&&"number"==typeof b||h(d)&&"string"==typeof b?d[b]:void 0))return}let f=c[c.length-1];Array.isArray(d)&&"number"==typeof f?d.splice(f,1):h(d)&&"string"==typeof f&&delete d[f]}function n(a,b){return{stdout:JSON.stringify(a??{}),stderr:"",...b?{metadata:b}:{}}}function o(a){return a===d.K$}function p(a){return"string"==typeof a&&a.trim()?a.trim():null}},21916:(a,b,c)=>{"use strict";function d(a,b,c){return"in_progress"===a||b?.endsWith(":main")&&"number"==typeof c&&c<36e5?"running":"completed"===a||"done"===a?"completed":"failed"===a||"error"===a?"stalled":"idle"}function e(a){return a.rpcOk?a.activeRuntime?.status==="running"||a.activeRuntime?.status==="queued"?"engaged":a.heartbeatEnabled?"monitoring":a.lastActiveAt?"ready":"standby":"offline"}function f(a){if(a.runtime)return a.runtime.taskId?"running"===a.runtime.status||"queued"===a.runtime.status?`Tracking task ${a.runtime.taskId.slice(0,8)}`:"completed"===a.runtime.status?`Recent task ${a.runtime.taskId.slice(0,8)} completed`:"cancelled"===a.runtime.status?`Recent task ${a.runtime.taskId.slice(0,8)} cancelled`:"stalled"===a.runtime.status?`Recent task ${a.runtime.taskId.slice(0,8)} waiting for output`:`Recent task ${a.runtime.taskId.slice(0,8)}`:"running"===a.runtime.status||"queued"===a.runtime.status?"Maintaining main session context":"Main session recently updated";return a.heartbeatEvery?`Heartbeat on ${a.heartbeatEvery}`:"standby"===a.status?"Waiting for assignment":"Ready for next turn"}function g(a,b){let c=b.filter(b=>a.includes(b.id));return c.some(a=>"engaged"===a.status)?"engaged":c.some(a=>"monitoring"===a.status)?"monitoring":c.some(a=>"ready"===a.status)?"ready":c.some(a=>"offline"===a.status)?"offline":"standby"}function h(a,b){var c,d,e,f;let g=a.filter(a=>{var b;return!1!==(b=a).available&&!b.missing}),h=t([...a.map(a=>a.key.split("/")[0]||"unknown"),...(b?.auth?.providers??[]).map(a=>a?.provider).filter(u),...(b?.auth?.oauth?.providers??[]).map(a=>a?.provider).filter(u)].filter(u)),m=new Map((b?.auth?.providers??[]).filter(a=>u(a?.provider)).map(a=>[a.provider,a])),n=new Map((b?.auth?.oauth?.providers??[]).filter(a=>u(a?.provider)).map(a=>[a.provider,a])),o=r(b?.resolvedDefault??void 0),p=r(b?.defaultModel??void 0),q=o??p,s=q?k(q):null,v=!!(q&&g.some(a=>a.key===q)&&(c=s,d=a,e=m,f=n,c&&("ollama"===c?d.some(a=>i(c,a.key)&&!0===a.local):j(c).some(a=>{var b,c,d;let g,h;return b=a,c=e,d=f,g=c.get(b),h=d.get(b),(g?.profiles?.count??0)>0||h?.status==="ok"})))),w=v?q:g[0]?.key??null,x=h.map(b=>{var c;let d,e=a.filter(a=>i(b,a.key)),f=e.some(a=>!0!==a.local),g="ollama"!==b&&f,h=m.get(b),j=n.get(b),k="ollama"===b?e.some(a=>a.local):(h?.profiles?.count??0)>0||j?.status==="ok",o=null;return j?.status==="ok"?o="OAuth connected":(h?.profiles?.count??0)>0?o=`${h?.profiles?.count} auth profile${h?.profiles?.count===1?"":"s"}`:"ollama"===b&&k?o="Local Ollama model detected.":"ollama"===b?o="Install or pull a local model to unlock this route.":f&&(o="openai-codex"===(d=(c=b).trim().toLowerCase())?"Use the ChatGPT account-based login flow in terminal to use this route.":"openrouter"===d||"openai"===d||"anthropic"===d||"xai"===d||"google"===d||"gemini"===d||"deepseek"===d||"mistral"===d?`Add your ${l(c)} API key in terminal to use this route.`:`Connect ${l(c)} auth in terminal to use this route.`),{provider:b,connected:k,canLogin:g,detail:o}}),y=(b?.auth?.missingProvidersInUse??[]).filter(u),z=new Set(y),A=b?.auth?.unusableProfiles?.length??0,B=[];0===g.length&&B.push("No available models were detected yet."),g.length>0&&!q&&B.push("Choose a default model to finish setup."),q&&!v&&(s&&z.has(s)?B.push(`Default model is set, but ${l(s)} auth is still missing.`):y.length>0?B.push(`Default model is set, but auth is still missing for: ${y.join(", ")}.`):B.push("The selected default model is not ready yet.")),y.length>0&&!q&&B.push(`Auth is still missing for: ${y.join(", ")}.`),A>0&&B.push("Some stored model auth profiles are not usable.");let C=function(a){let b=a.defaultProvider?j(a.defaultProvider):[];if(b.some(b=>a.authProviders.some(a=>a.provider===b&&a.connected)))return null;for(let c of b){let b=a.authProviders.find(a=>a.provider===c&&!a.connected&&a.canLogin);if(b)return b.provider}let c=a.missingProvidersInUse.find(b=>a.authProviders.some(a=>a.provider===b&&!a.connected&&a.canLogin));return c||(a.authProviders.find(a=>!a.connected&&a.canLogin)?.provider??(a.providerIds.includes("openai-codex")||0===a.readyModels.length?"openai-codex":null))}({defaultProvider:s,authProviders:x,missingProvidersInUse:y,providerIds:h,readyModels:g});return{ready:g.length>0&&v,defaultModel:p??null,resolvedDefaultModel:o??null,defaultModelReady:v,recommendedModelId:w??null,preferredLoginProvider:C,totalModelCount:a.length,availableModelCount:g.length,localModelCount:g.filter(a=>a.local).length,remoteModelCount:g.filter(a=>!0!==a.local).length,missingModelCount:a.filter(a=>a.missing||!1===a.available).length,authProviders:x,issues:t(B)}}function i(a,b){let c=k(b)??"unknown";return"openai-codex"===a?"openai"===c||"openai-codex"===c:c===a}function j(a){return"openai"===a?["openai","openai-codex"]:[a]}function k(a){let[b]=a.split("/",1);return b||null}function l(a){let b=a.trim().toLowerCase();return"openrouter"===b?"OpenRouter":"openai-codex"===b?"ChatGPT":"openai"===b?"OpenAI":"anthropic"===b?"Anthropic":"ollama"===b?"Ollama":"xai"===b?"xAI":"google"===b||"gemini"===b?"Gemini":"deepseek"===b?"DeepSeek":"mistral"===b?"Mistral":a.split("-").map(a=>a?a[0].toUpperCase()+a.slice(1):a).join(" ")}function m(a){return a.rpcOk||a.hasOpenClawSignal?!a.rpcOk||a.warningCount>0||a.runtimeIssueCount>0?"degraded":"healthy":"offline"}function n(a){return Object.entries(a).flatMap(([a,b])=>"rejected"!==b.status?[]:[`${a}: ${b.reason instanceof Error?b.reason.message:String(b.reason)}`])}function o(a){let b=r(a.legacyInfo);if(a.latestVersion&&a.currentVersion){let b=p(a.latestVersion,a.currentVersion);return b>0?`Update available: v${a.latestVersion} is ready. Current version: v${a.currentVersion}.`:0===b?`OpenClaw is up to date on v${a.currentVersion}.`:`Running v${a.currentVersion}. Registry currently reports v${a.latestVersion}.`}return a.latestVersion?`Latest available version: v${a.latestVersion}. Current version could not be determined.`:b||(a.updateError?`Update registry check failed: ${a.updateError}`:a.currentVersion?`Running v${a.currentVersion}. Update registry status is still loading.`:void 0)}function p(a,b){let c=q(a),d=q(b),e=Math.max(c.length,d.length);for(let a=0;a<e;a+=1){let b=c[a]??0,e=d[a]??0;if("number"==typeof b&&"number"==typeof e){if(b!==e)return b-e;continue}let f=String(b),g=String(e);if(f!==g)return f.localeCompare(g)}return 0}function q(a){return a.trim().replace(/^v/i,"").split(/[^0-9a-zA-Z]+/).filter(Boolean).map(a=>/^\d+$/.test(a)?Number(a):a.toLowerCase())}function r(a){return a?.trim()||void 0}function s(a){let b=r(a);if(b)return b.split(/\r?\n/,1)[0]?.trim()||b}function t(a){return Array.from(new Set(a))}function u(a){return!!a}c.d(b,{Am:()=>t,Lp:()=>n,Nk:()=>r,OZ:()=>g,QK:()=>p,QL:()=>h,YO:()=>m,iP:()=>f,mB:()=>o,nn:()=>s,xH:()=>d,yv:()=>e})},24117:(a,b,c)=>{"use strict";c.d(b,{$s:()=>m,Fj:()=>n,Ht:()=>p,JV:()=>h,K$:()=>r,N4:()=>d,OJ:()=>f,Rg:()=>l,Tv:()=>q,ZX:()=>j,aj:()=>k,dK:()=>e,lY:()=>i,mh:()=>g,vO:()=>o});let d="ws://127.0.0.1:18789",e=4e3,f=8e3,g=3e4,h="connect",i=3,j=4,k={min:3,max:4},l="gateway-client",m="backend",n="device-auth.json",o="device.json",p=Buffer.from("302a300506032b6570032100","hex"),q=["operator.admin","operator.read","operator.write","operator.approvals","operator.pairing","operator.talk.secrets"],r="__OPENCLAW_REDACTED__"},26516:(a,b,c)=>{"use strict";c.d(b,{gH:()=>al,aj:()=>m.aj,Lo:()=>ak,JG:()=>C});var d=c(38699),e=c(65493),f=c(80500),g=c(77598),h=c(51455),i=c(48161),j=c(76760),k=c(14805),l=c(98717),m=c(24117),n=c(17929),o=c(78446);async function p(a,b,c,d){if(d.readLocalConfigFile){let a=await q(b);if(a.fromConfigFile)return a}for(let d of b){let b=null;try{b=await a.getConfig(d,c)}catch(a){if((0,o.D)(a))return{value:"",invalidConfig:!0};continue}let e=(0,n.g)(b);if((0,n.o0)(e))throw new l.pz(`${d} is configured but OpenClaw returned a redacted secret. Set AGENTOS_OPENCLAW_GATEWAY_TOKEN/PASSWORD or OPENCLAW_GATEWAY_TOKEN/PASSWORD to enable native Gateway WS; using CLI fallback.`,"auth");if(e)return{value:e,invalidConfig:!1}}return{value:"",invalidConfig:!1}}async function q(a){let b,c=await w((b=process.env.OPENCLAW_CONFIG_PATH?.trim())?v(b):(0,j.join)(u(),"openclaw.json"));if(!c)return{value:"",invalidConfig:!1,fromConfigFile:!1};for(let b of a){let a=(0,n.g)((0,n.e6)(c,b));if((0,n.o0)(a))throw new l.pz(`${b} is configured but OpenClaw returned a redacted secret. Set AGENTOS_OPENCLAW_GATEWAY_TOKEN/PASSWORD or OPENCLAW_GATEWAY_TOKEN/PASSWORD to enable native Gateway WS; using CLI fallback.`,"auth");if(a)return{value:a,invalidConfig:!1,fromConfigFile:!0}}return{value:"",invalidConfig:!1,fromConfigFile:!0}}async function r(a,b,c,d){let e=s(c)?["gateway.auth.token","gateway.remote.token"]:["gateway.remote.token","gateway.auth.token"],f=s(c)?["gateway.auth.password","gateway.remote.password"]:["gateway.remote.password","gateway.auth.password"],g=b.token?.trim()||process.env.AGENTOS_OPENCLAW_GATEWAY_TOKEN?.trim()||process.env.OPENCLAW_GATEWAY_TOKEN?.trim();if(g)return{token:g,password:""};let h=b.password?.trim()||process.env.AGENTOS_OPENCLAW_GATEWAY_PASSWORD?.trim()||process.env.OPENCLAW_GATEWAY_PASSWORD?.trim();if(h)return{token:"",password:h};let i=await p(a,e,d,{readLocalConfigFile:!b.webSocketFactory});if(i.value||i.invalidConfig)return{token:i.value,password:""};let j=s(c)?await (0,k.lk)():null;if(j?.kind==="token")return{token:j.value,password:""};let l=await p(a,f,d,{readLocalConfigFile:!b.webSocketFactory}),m=l.invalidConfig?"":l.value;return m||j?.kind!=="password"?{token:"",password:m}:{token:"",password:j.value}}function s(a){try{let{hostname:b}=new URL(a);return"localhost"===b||"127.0.0.1"===b||"::1"===b||"[::1]"===b}catch{return!1}}async function t(a,b){if(!s(a)||b.webSocketFactory)return null;let c=u(),[d,e]=await Promise.all([w((0,j.join)(c,"identity",m.vO)),w((0,j.join)(c,"identity",m.Fj))]),f=(0,n.yK)(d?.deviceId),g=(0,n.yK)(d?.publicKeyPem),h=(0,n.yK)(d?.privateKeyPem),i=(0,n.yK)(e?.tokens?.operator?.token);return f&&g&&h&&i&&e?.deviceId===f?{deviceId:f,publicKeyPem:g,privateKeyPem:h,token:i}:null}function u(){let a=process.env.OPENCLAW_STATE_DIR?.trim();return a?v(a):(0,j.join)((0,i.homedir)(),".openclaw")}function v(a){return a.startsWith("~")?(0,j.join)((0,i.homedir)(),a.slice(1)):a}async function w(a){try{return JSON.parse(await (0,h.readFile)(a,"utf8"))}catch{return null}}function x(a){return a.toString("base64").replaceAll("+","-").replaceAll("/","_").replace(/=+$/g,"")}function y(a){return"string"==typeof a?a.trim().replaceAll("|",""):""}async function z(a,b,c,d,e){var f,h,i,j;let k,l,n=await t(c,b),o=b.scopes??m.Tv,p="",q="";try{let e=await r(a,b,c,d);p=e.token,q=e.password}catch(a){if(!n?.token)throw a}let s=!n||p||q?null:n,u=s?.token??p,v=u?{token:u}:q?{password:q}:void 0,w=Date.now(),z=process.platform,A=s&&e?{id:s.deviceId,publicKey:(j=s.publicKeyPem,(k=Buffer.from((0,g.createPublicKey)(j).export({type:"spki",format:"der"}))).length===m.Ht.length+32&&k.subarray(0,m.Ht.length).equals(m.Ht)?x(k.subarray(m.Ht.length)):x(k)),signature:(h=s.privateKeyPem,i=["v3",(f={deviceId:s.deviceId,clientId:b.clientName??m.Rg,clientMode:m.$s,role:b.role??"operator",scopes:o,signedAtMs:w,token:u??null,nonce:e,platform:z,deviceFamily:null}).deviceId,f.clientId,f.clientMode,f.role,f.scopes.join(","),String(f.signedAtMs),f.token??"",f.nonce,y(f.platform),y(f.deviceFamily)].join("|"),l=(0,g.createPrivateKey)(h),x((0,g.sign)(null,Buffer.from(i,"utf8"),l))),signedAt:w,nonce:e}:void 0;return{deviceAuth:s,params:{minProtocol:m.lY,maxProtocol:m.ZX,client:{id:b.clientName??m.Rg,version:b.clientVersion??"agentos",platform:z,mode:m.$s,instanceId:b.instanceId},role:b.role??"operator",scopes:o,caps:["tool-events"],...v?{auth:v}:{},...A?{device:A}:{},userAgent:"AgentOS",locale:"en"}}}var A=c(79102);function B(a){return a?.trim().toLowerCase()}function C(){let a=B(process.env.AGENTOS_OPENCLAW_GATEWAY_CLIENT??process.env.OPENCLAW_GATEWAY_CLIENT),b=B(process.env.AGENTOS_OPENCLAW_NATIVE_WS);return"cli"===a||"0"===b||"false"===b||"off"===b}function D(a,b){if("number"==typeof a&&Number.isFinite(a)&&a>0)return a;let c=Number(process.env.AGENTOS_OPENCLAW_NATIVE_WS_TIMEOUT_MS);return Number.isFinite(c)&&c>0?c:b&&/^(chat\.send|sessions\.send|sessions\.abort|chat\.abort)$/.test(b)?m.mh:b&&/(^|\.)(list|get|status|authStatus|schema|tail)$/.test(b)?m.OJ:m.dK}function E(a,b={}){var c;let d=(c=a,/(^|\.)(add|assign|cancel|configure|create|delete|invoke|put|remove|setup|update|set|unset|patch|apply|send|abort|resolve|restart|start|stop|logout)$/i.test(c))?"mutation":"read";return{safety:d,timeoutMs:b.timeoutMs,allowCliFallback:!0,allowReadCliFallbackOnNativeFailure:!1,allowMutationFallbackOnUnsupported:"mutation"===d}}function F(a,b,c){if(!1===c.allowCliFallback)return!1;let d=(0,l.$g)(a);return"mutation"!==c.safety?"unsupported"===d.kind||!0===c.allowReadCliFallbackOnNativeFailure:!!c.allowUnsafeMutationCliFallback||(!(a instanceof l.jl)||a.method===b)&&"unsupported"===d.kind&&!1!==c.allowMutationFallbackOnUnsupported}var G=c(99663);function H(a,b,c){if(a.addEventListener&&a.removeEventListener)return a.addEventListener(b,c),()=>a.removeEventListener?.(b,c);if(a.on){let d=(...a)=>{var d;"close"===b?c({code:"number"==typeof a[0]?a[0]:void 0,reason:"string"==typeof(d=a[1])?d:Buffer.isBuffer(d)?d.toString("utf8"):ArrayBuffer.isView(d)?Buffer.from(d.buffer,d.byteOffset,d.byteLength).toString("utf8"):void 0}):c(a[0])};return a.on(b,d),()=>{a.off?a.off(b,d):a.removeListener?.(b,d)}}let d=`on${b}`,e=a[d];return a[d]=c,()=>{a[d]===c&&(a[d]=e??null)}}function I(a){if(!a||"object"!=typeof a)return null;let b="number"==typeof a.code?a.code:null,c="string"==typeof a.reason?a.reason:"";return b?`${b}${c?`: ${c}`:""}`:c||null}function J(a){if("string"!=typeof a)if(a instanceof ArrayBuffer)a=new TextDecoder().decode(a);else{if(!ArrayBuffer.isView(a))return null;a=new TextDecoder().decode(a)}try{return JSON.parse(a)}catch(a){throw new l.As("OpenClaw Gateway returned invalid JSON.",{cause:a})}}function K(a){if(a?.aborted)throw new l.As("OpenClaw Gateway request was aborted.")}async function L(a,b,c){K(c),1!==a.readyState&&await new Promise((d,e)=>{let f=!1,g=[],h=a=>{if(!f){for(let a of(f=!0,globalThis.clearTimeout(i),g))a();c?.removeEventListener("abort",j),a()}},i=globalThis.setTimeout(()=>{h(()=>e(new l.As("Timed out connecting to OpenClaw Gateway.")))},b),j=()=>{h(()=>e(new l.As("OpenClaw Gateway request was aborted.")))};g.push(H(a,"open",()=>h(d)),H(a,"error",a=>h(()=>e(new l.As("Failed to connect to OpenClaw Gateway.",{cause:a})))),H(a,"close",a=>h(()=>e(new l.As(`OpenClaw Gateway closed before the connection was ready${I(a)?` (${I(a)})`:""}.`))))),c?.addEventListener("abort",j,{once:!0})})}async function M(a,b,c){return K(c),await new Promise((d,e)=>{let f=!1,g=[],h=a=>{if(!f){for(let a of(f=!0,globalThis.clearTimeout(i),g))a();c?.removeEventListener("abort",j),a()}},i=globalThis.setTimeout(()=>{h(()=>e(new l.As("OpenClaw Gateway connect challenge timed out.")))},b),j=()=>{h(()=>e(new l.As("OpenClaw Gateway request was aborted.")))};g.push(H(a,"message",a=>{try{let b=a?.data??a,c=J(b);if(c?.type!=="event"||"connect.challenge"!==c.event)return;let f=c.payload?.nonce;if("string"!=typeof f||!f.trim())return void h(()=>e(new l.As("OpenClaw Gateway connect challenge is missing a nonce.")));h(()=>d(f.trim()))}catch(a){h(()=>e(a))}}),H(a,"close",a=>h(()=>e(new l.As(`OpenClaw Gateway closed before the connect challenge${I(a)?` (${I(a)})`:""}.`))))),c?.addEventListener("abort",j,{once:!0})})}function N(a,b,c,d,e,f){K(f);let g=(0,n.r_)();return new Promise((h,i)=>{function j(){globalThis.clearTimeout(n),f?.removeEventListener("abort",m)}function k(a){b.delete(g),j(),i(a)}function m(){k(new l.As("OpenClaw Gateway request was aborted."))}let n=globalThis.setTimeout(()=>{k(new l.jl(`Timed out waiting for OpenClaw Gateway method "${c}".`,c,!0))},e);b.set(g,{resolve:a=>{j(),h(a)},reject:k,timer:n,cleanup:j,method:c,sent:!1}),f?.addEventListener("abort",m,{once:!0});try{a.send(JSON.stringify({type:"req",id:g,method:c,params:d}));let e=b.get(g);e&&(e.sent=!0)}catch(a){k(new l.jl(`Failed to send OpenClaw Gateway method "${c}".`,c,!1,{cause:a}))}})}class O{constructor(a,b){this.fallback=a,this.options=b,this.socket=null,this.pending=new Map,this.cleanupCallbacks=[],this.eventListeners=new Set,this.closeListeners=new Set,this.connectPromise=null,this.hello=null,this.state="idle",this.lastNativeError=null,this.lastConnectedAt=null,this.lastDisconnectedAt=null}getDiagnostics(){return{connectionState:this.state,protocolVersion:"number"==typeof this.hello?.protocol?this.hello.protocol:null,lastNativeError:this.lastNativeError,lastConnectedAt:this.lastConnectedAt,lastDisconnectedAt:this.lastDisconnectedAt}}async request(a,b,c,d){let e=await this.ensureConnected(c,d);(0,A.qi)(e,a);let f=this.socket;if(!f||1!==f.readyState)throw new l.As("OpenClaw Gateway connection is not ready.");return N(f,this.pending,a,b,d,c.signal)}async probe(a,b){return this.ensureConnected(a,b)}async subscribe(a,b,c,d){let e=await this.ensureConnected(c,d),f=(0,A.sq)(a,e);if(0===f.length&&!(0,A.pP)(e,"chat")&&!(0,A.pP)(e,"agent")&&!(0,A.pP)(e,"session.message")&&!(0,A.pP)(e,"session.tool")&&!(0,A.pP)(e,"sessions.changed")&&!(0,A.pP)(e,"task")&&!(0,A.pP)(e,"task.updated")&&!(0,A.pP)(e,"task.completed")&&!(0,A.pP)(e,"artifact")&&!(0,A.pP)(e,"artifact.updated")&&!(0,A.pP)(e,"exec.approval.requested")&&!(0,A.pP)(e,"plugin.approval.requested"))throw new l.As("OpenClaw Gateway does not advertise compatible runtime event streaming.",{kind:"unsupported"});let g=a=>{try{b.onEvent(a)}catch(a){b.onError?.(a)}},h=()=>b.onClose?.();this.eventListeners.add(g),this.closeListeners.add(h);try{for(let a of f)await this.request(a.method,a.params,c,d)}catch(a){throw this.eventListeners.delete(g),this.closeListeners.delete(h),a}let i=!1;return{close:()=>{!i&&(i=!0,this.eventListeners.delete(g),this.closeListeners.delete(h),f.length>0&&this.close("event subscription closed"))}}}close(a="closed"){this.disconnect(new l.As(`OpenClaw Gateway connection closed: ${a}.`),{notify:!0,closeSocket:!0,state:"closed"})}async ensureConnected(a,b){return(K(a.signal),this.socket?.readyState===1&&this.hello)?this.hello:(this.connectPromise||(this.connectPromise=this.connect(a,b).finally(()=>{this.connectPromise=null})),this.connectPromise)}async connect(a,b){var c;this.disconnect(new l.As("Replacing stale OpenClaw Gateway connection."),{notify:!1,closeSocket:!0,state:"connecting"});let d=(c=this.options.url,c?.trim()||process.env.AGENTOS_OPENCLAW_GATEWAY_URL?.trim()||process.env.OPENCLAW_GATEWAY_URL?.trim()||m.N4),e=function(a){let b=a??("u">typeof process&&"1"===process.env.AGENTOS_PACKAGE_RUNTIME&&"function"==typeof globalThis.WebSocket?globalThis.WebSocket:"u">typeof process&&process.versions?.node?G.kb:globalThis.WebSocket);if(!b)throw new l.As("Native WebSocket is not available in this runtime.");return b}(this.options.webSocketFactory),f=await z(this.fallback,this.options,d,a),g=new e(d);this.socket=g,this.state="connecting",this.lastNativeError=null,this.cleanupCallbacks=[H(g,"message",a=>this.handleMessage(a)),H(g,"error",a=>{let b=new l.As("OpenClaw Gateway WebSocket error.",{cause:a});this.lastNativeError=b.message,this.rejectPending(b)}),H(g,"close",a=>{let b=I(a);this.disconnect(new l.As(`OpenClaw Gateway connection closed${b?` (${b})`:""}.`),{notify:!0,closeSocket:!1,state:"closed"})})];try{await L(g,b,a.signal);let c=f.deviceAuth?(await z(this.fallback,this.options,d,a,await M(g,b,a.signal))).params:f.params,e=await N(g,this.pending,m.JV,c,b,a.signal);return(0,A.MK)(e),this.hello=e,this.state="connected",this.lastConnectedAt=new Date().toISOString(),this.lastNativeError=null,e}catch(a){throw this.lastNativeError=a instanceof Error?a.message:String(a),this.disconnect(a,{notify:!0,closeSocket:!0,state:"error"}),a}}handleMessage(a){try{let b=a?.data??a,c=J(b);if(!c)return;if("event"===c.type){for(let a of[...this.eventListeners])a(c);return}if("res"!==c.type||void 0===c.id)return;let d=String(c.id),e=this.pending.get(d);if(!e)return;if(this.pending.delete(d),globalThis.clearTimeout(e.timer),!1===c.ok)return void e.reject(new l.jl(function(a){if("string"==typeof a)return a;if(a&&"object"==typeof a){let b="string"==typeof a.message?a.message:null,c="string"==typeof a.detail?a.detail:null;return["string"==typeof a.code?a.code:null,b,c].filter(Boolean).join(": ")}return""}(c.error)||c.message||c.code||"OpenClaw Gateway request failed.",e.method,e.sent,{cause:c}));e.resolve(c.payload)}catch(a){this.lastNativeError=a instanceof Error?a.message:String(a),this.rejectPending(a)}}rejectPending(a){for(let[b,c]of this.pending)globalThis.clearTimeout(c.timer),this.pending.delete(b),c.reject(a)}disconnect(a,b){let c=!!this.socket,d=this.socket;for(let a of(this.socket=null,this.hello=null,this.state=b.state,"connecting"!==b.state&&c&&(this.lastDisconnectedAt=new Date().toISOString()),this.cleanupCallbacks))a();if(this.cleanupCallbacks=[],this.rejectPending(a),b.notify)for(let a of[...this.closeListeners])a();b.closeSocket&&d&&function(a){if(3===a.readyState)return;let b=H(a,"error",()=>{}),c=globalThis.setTimeout(()=>{b?.(),b=null},5e3);"object"==typeof c&&c&&"unref"in c&&"function"==typeof c.unref&&c.unref();try{if(0===a.readyState&&"function"==typeof a.terminate)return void a.terminate();a.close()}catch{b?.(),b=null,globalThis.clearTimeout(c)}}(d)}}function P(a,b){let c=b?.trim();if(c?.startsWith("agent:"))return c;let d=a?.trim()||"main";return c?`agent:${d}:explicit:${c}`:`agent:${d}:main`}function Q(a={}){let b=a.key?.trim()||a.sessionKey?.trim();if(b)return{key:b};let c=a.sessionId?.trim(),d=a.agentId?.trim();return{agentId:d||void 0,sessionId:c||void 0,key:d||c?P(d,c):void 0}}function R(a,b){return"number"==typeof a.timeoutSeconds&&Number.isFinite(a.timeoutSeconds)&&a.timeoutSeconds>0?Math.floor(1e3*a.timeoutSeconds):"number"==typeof b.timeoutMs&&Number.isFinite(b.timeoutMs)&&b.timeoutMs>0?b.timeoutMs:45e3}function S(a){let b=(0,l.$g)(a).kind,c=a instanceof Error?a.message:String(a||"");return"unsupported"===b||"conflict"===b||"malformed-response"===b||/invalid .*sessions\.(create|patch) params|unexpected property/i.test(c)}var T=c(17661),U=c(21916);let V=T.Ik({runtimeVersion:T.Yj().optional(),version:T.Yj().optional(),updateChannel:T.Yj().optional()}).passthrough(),W=T.Ik({defaultId:T.Yj().optional(),mainKey:T.Yj().optional(),scope:T.Yj().optional(),agents:T.YO(T.Ik({id:T.Yj(),name:T.Yj().optional(),identity:T.Ik({name:T.Yj().optional(),theme:T.Yj().optional(),emoji:T.Yj().optional(),avatar:T.Yj().optional(),avatarUrl:T.Yj().optional()}).passthrough().optional(),workspace:T.Yj().optional(),model:T.Ik({primary:T.Yj().optional(),fallbacks:T.YO(T.Yj()).optional()}).passthrough().optional()}).passthrough())}).passthrough(),X=T.Ik({sessions:T.YO(T.Ik({}).passthrough())}).passthrough(),Y=T.Ik({ts:T.ai(),channelOrder:T.YO(T.Yj()),channelLabels:T.g1(T.Yj(),T.Yj()),channelDetailLabels:T.g1(T.Yj(),T.Yj()).optional(),channelSystemImages:T.g1(T.Yj(),T.Yj()).optional(),channelMeta:T.YO(T.Ik({id:T.Yj(),label:T.Yj(),detailLabel:T.Yj(),systemImage:T.Yj().optional()}).passthrough()).optional(),channels:T.g1(T.Yj(),T.L5()),channelAccounts:T.g1(T.Yj(),T.YO(T.Ik({accountId:T.Yj(),name:T.Yj().optional(),enabled:T.zM().optional(),configured:T.zM().optional(),linked:T.zM().optional(),running:T.zM().optional(),connected:T.zM().optional(),lastError:T.Yj().optional(),healthState:T.Yj().optional()}).passthrough())),channelDefaultAccountId:T.g1(T.Yj(),T.Yj())}).passthrough(),Z=T.Ik({models:T.YO(T.Ik({key:T.Yj().optional(),id:T.Yj().optional(),provider:T.Yj().optional(),name:T.Yj(),input:T.KC([T.Yj(),T.YO(T.Yj())]).optional().default("text"),contextWindow:T.ai().nullable().optional().default(null),local:T.zM().nullable().optional().default(null),available:T.zM().nullable().optional().default(null),tags:T.YO(T.Yj()).optional().default([]),missing:T.zM().optional().default(!1)}).passthrough())}).passthrough(),$=T.Ik({skills:T.YO(T.Ik({name:T.Yj(),description:T.Yj().optional(),emoji:T.Yj().optional(),eligible:T.zM().optional(),disabled:T.zM().optional(),blockedByAllowlist:T.zM().optional(),source:T.Yj().optional(),bundled:T.zM().optional()}).passthrough())}).passthrough(),_=T.Ik({plugins:T.YO(T.Ik({id:T.Yj(),name:T.Yj(),status:T.Yj().optional(),toolNames:T.YO(T.Yj()).optional()}).passthrough()).optional(),descriptors:T.YO(T.Ik({}).passthrough()).optional()}).passthrough(),aa=T.Ik({exists:T.zM().optional(),valid:T.zM().optional(),hash:T.Yj().optional(),config:T.g1(T.Yj(),T.L5()).optional(),resolved:T.L5().optional()}).passthrough(),ab=T.Ik({}).passthrough();function ac(a,b,c){let d=b.safeParse(c);if(!d.success)throw new l.pz(`${a}: OpenClaw Gateway returned a malformed response.`,"malformed-response",{cause:d.error});return d.data}function ad(a,b){return ac(a,ab,b)}function ae(a){(a?.latestVersion||a?.error)&&(af={...a})}let af=null;function ag(a){let b=ac("models.list",Z,a);return{...b,models:b.models.map(a=>{let b=(0,n.yK)(a.id),c=(0,n.yK)(a.provider),d=(0,n.yK)(a.key)??(c&&b?`${c}/${b}`:b),e=Array.isArray(a.input)?a.input.filter(a=>"string"==typeof a).join(",")||"text":(0,n.yK)(a.input)??"text",f=Array.isArray(a.tags)?a.tags.filter(a=>"string"==typeof a):[];return!0!==a.default&&!0!==a.isDefault||f.includes("default")||f.push("default"),{key:d??(0,n.yK)(a.name)??"unknown",name:(0,n.yK)(a.name)??d??b??"Unknown model",input:e,contextWindow:"number"==typeof a.contextWindow?a.contextWindow:null,local:"boolean"==typeof a.local?a.local:null,available:"boolean"==typeof a.available?a.available:null,tags:f,missing:!0===a.missing}})}}function ah(a,b){var c,d;let e=(0,n.LK)(a)?a:{},f=b?ag(b).models:[],g=f.map(a=>a.key).filter(Boolean),h=(c=e,d=f,(0,n.yK)(c.defaultModel)??(0,n.yK)(c.default)??d.find(a=>a.tags.some(a=>"default"===a.toLowerCase()))?.key??null),i=(0,n.yK)(e.resolvedDefault)??(0,n.yK)(e.resolvedDefaultModel)??h,j=Array.isArray(e.providers)?e.providers.filter(a=>(0,n.LK)(a)):[];return{defaultModel:h,resolvedDefault:i,allowed:g,auth:{providers:j.map(a=>{let b=ai(a.profiles);return{provider:(0,n.yK)(a.provider)??void 0,effective:{kind:b>0?"ok":(0,n.yK)(a.status)??(0,n.yK)(a.kind)??void 0,detail:(0,n.yK)(a.detail)??void 0},profiles:{count:Array.isArray(a.profiles)?b:void 0}}}),missingProvidersInUse:Array.isArray(e.missingProvidersInUse)?e.missingProvidersInUse.filter(a=>"string"==typeof a):[],unusableProfiles:Array.isArray(e.unusableProfiles)?e.unusableProfiles:[],oauth:{providers:j.map(a=>({provider:(0,n.yK)(a.provider)??void 0,status:ai(a.profiles)>0?"ok":(0,n.yK)(a.status)??void 0,profiles:Array.isArray(a.profiles)?a.profiles:void 0,effectiveProfiles:Array.isArray(a.effectiveProfiles)?a.effectiveProfiles:void 0}))}}}}function ai(a){return Array.isArray(a)?a.filter(a=>(function(a){if(!(0,n.LK)(a))return!1;let b=(0,n.yK)(a.status)?.toLowerCase();return!b||!["expired","missing","invalid","error","disabled","revoked"].includes(b)})(a)).length:0}function aj(a){let b=ac("plugins.uiDescriptors",_,a);return{plugins:(b.plugins??b.descriptors??[]).map(a=>({...a,id:(0,n.yK)(a.id)??(0,n.yK)(a.pluginId)??(0,n.yK)(a.name)??"unknown",name:(0,n.yK)(a.name)??(0,n.yK)(a.label)??(0,n.yK)(a.id)??"Unknown plugin",status:(0,n.yK)(a.status)??void 0,toolNames:Array.isArray(a.toolNames)?a.toolNames.filter(a=>"string"==typeof a):void 0}))}}function ak(){return(0,l.Lo)()}class al{constructor(a={}){this.options=a,this.fallbackCounts={},this.lastNativeFailure=null,this.fallback=a.fallback??new d.p,this.connection=new O(this.fallback,a)}close(a="closed"){this.connection.close(a)}getDiagnostics(){var a,b,c;let d=this.connection.getDiagnostics(),e=this.options.forceCli||C(),f=Object.values(this.fallbackCounts).reduce((a,b)=>Number.isFinite(b)&&b>0?a+b:a,0),g=(0,l.Lo)(),h=(a=g,b=d.lastConnectedAt,0!==a.length&&(!b||a.some(a=>ao(a.at,b))))?f:0,i=ao(this.lastNativeFailure?.at??null,d.lastConnectedAt)?this.lastNativeFailure:null,j=this.lastNativeFailure?.issue||(0,l.mW)(d.lastNativeError),k=i?.issue||(0,l.mW)(d.lastNativeError),n=(c={forceCli:e,connectionState:d.connectionState,fallbackTotal:h,lastNativeError:k}).forceCli?"cli-forced":"error"===c.connectionState?"unreachable":c.fallbackTotal>0?"fallback-active":"closed"===c.connectionState||c.lastNativeError?"degraded":"native-ws";return{mode:e?"cli":"native-ws",gatewayMode:n,statusLabel:function(a){switch(a){case"native-ws":return"Native Gateway: OK";case"cli-forced":return"CLI fallback forced";case"fallback-active":return"CLI fallback used";case"unreachable":return"Native Gateway: Unreachable";default:return"Native Gateway: Degraded"}}(n),recovery:function(a,b){if("native-ws"===a)return null;if(b)return b;switch(a){case"cli-forced":return"Unset CLI-forced Gateway mode and restart AgentOS to use native WebSocket transport.";case"fallback-active":return"Inspect recent fallback diagnostics, update OpenClaw for protocol or method gaps, repair token/device access for auth failures, then restart the Gateway if needed.";case"unreachable":return"Start or restart the OpenClaw Gateway, verify the endpoint and token/password, then retry the native operation.";default:return"Inspect Gateway diagnostics, check token/device access, update OpenClaw for compatibility gaps, then restart the Gateway before retrying."}}(n,i?.recovery??null),connectionState:e?"cli-forced":d.connectionState,protocolVersion:d.protocolVersion,protocolRange:m.aj,fallbackCounts:{...this.fallbackCounts},fallbackTotal:f,recentFallbackDiagnostics:g,lastNativeError:j||null,lastNativeFailureAt:this.lastNativeFailure?.at??null,lastConnectedAt:d.lastConnectedAt,lastDisconnectedAt:d.lastDisconnectedAt}}recordNativeFailure(a,b){let c=(0,l.$g)(b);this.lastNativeFailure={at:new Date().toISOString(),operation:a,issue:(0,l.mW)(c.message),kind:c.kind,recovery:(0,l.fu)(c)}}clearNativeFailure(a){this.lastNativeFailure?.operation===a&&(this.lastNativeFailure=null)}recordGatewayFallback(a,b){this.recordNativeFailure(a,b),this.fallbackCounts[a]=(this.fallbackCounts[a]??0)+1,(0,l.Rd)(a,b)}cliFallbackDisabledError(a,b){this.recordNativeFailure(a,b);let c=(0,l.$g)(b);return new l.pz(`${c.message} Gateway-native operation failed; CLI fallback disabled for this operation. Recovery: ${(0,l.fu)(c)}`,c.kind,{cause:b})}getHealth(a={}){return this.gatewayFirst("health",{},a,a=>(0,n.LK)(a)?a:{},()=>this.fallback.getHealth(a))}getStatus(a={}){return this.options.forceCli||C()?this.fallback.getStatus(a):this.callNative("status",{},a).then(a=>{let b=ac("status",V,a);return((0,l.Z6)("status"),this.clearNativeFailure("status"),b.update?.registry?.latestVersion||b.update?.registry?.error)?(ae(b.update?.registry),b):function(a){let b=a.update??{},c=(void 0)??{},d=function(a){var b;let c=((b=a).runtimeVersion||b.overview?.version||b.version||"").trim().replace(/^v/i,"")||null,d=af?.latestVersion?.trim();if(af){if(c&&d&&(0,U.QK)(c,d)>0){af=null;return}return af??void 0}}(a),e=b.registry??c.registry??d??void 0;if(e&&ae(e),!e)return a;let f={...c,...b};return e&&(f.registry=e),{...a,update:f}}(b)}).catch(b=>{if(this.options.onNativeFailure?.(b,"status"),!F(b,"status",E("status",a)))throw this.cliFallbackDisabledError("status",b);return this.recordGatewayFallback("status",b),this.fallback.getStatus(a)})}getUpdateStatus(a={}){return this.options.forceCli||C()?this.fallback.getUpdateStatus(a):this.callNative("update.status",{},a).then(async b=>{var c,d;let e=ad("update.status",b);return(function(a){let b=[];function c(a){!(0,n.LK)(a)||b.includes(a)||b.push(a)}return c(a),c(a?.update),c(a?.availability),c(ap(a?.update)?.registry),c(a?.registry),c(a?.result),c(ap(a?.result)?.update),c(ap(ap(a?.result)?.update)?.registry),c(ap(a?.result)?.availability),c(a?.sentinel),c(ap(a?.sentinel)?.stats),b})(e).some(a=>"boolean"==typeof a.updateAvailable||"string"==typeof a.latestVersion||"string"==typeof a.targetVersion||"string"==typeof a.availableVersion||"string"==typeof a.recommendedVersion||"boolean"==typeof a.available||"boolean"==typeof a.hasRegistryUpdate)?((0,l.Z6)("update.status"),this.clearNativeFailure("update.status"),e):(this.recordGatewayFallback("update.status",new l.pz("OpenClaw Gateway update.status did not include update availability details.","malformed-response")),c=e,d=await this.fallback.getUpdateStatus(a),{...c,...d})}).catch(b=>{if(this.options.onNativeFailure?.(b,"update.status"),!F(b,"update.status",E("update.status",a)))throw this.cliFallbackDisabledError("update.status",b);return this.recordGatewayFallback("update.status",b),this.fallback.getUpdateStatus(a)})}getGatewayStatus(a={}){return this.gatewayFirst("health",{},a,a=>{let b=(0,n.LK)(a)?a:{};return{service:{label:!1===b.ok?"Runtime degraded":"Runtime ready",loaded:!1!==b.ok},rpc:{ok:!1!==b.ok}}},()=>this.fallback.getGatewayStatus(a))}async getModelStatus(a={}){if(this.options.forceCli||C())return this.fallback.getModelStatus(a);let[b,c]=await Promise.allSettled([this.callNative("models.authStatus",{},a),this.callNative("models.list",{view:"configured"},a)]);for(let d of[{method:"models.authStatus",result:b},{method:"models.list",result:c}].filter(a=>"rejected"===a.result.status))if(this.options.onNativeFailure?.(d.result.reason,d.method),!F(d.result.reason,d.method,E(d.method,a)))throw this.cliFallbackDisabledError(d.method,d.result.reason);if("rejected"===b.status&&"rejected"===c.status){let c=b.reason;return this.recordGatewayFallback("models.authStatus",c),this.fallback.getModelStatus(a)}return(0,l.Z6)("models.authStatus"),(0,l.Z6)("models.list"),this.clearNativeFailure("models.authStatus"),this.clearNativeFailure("models.list"),ah("fulfilled"===b.status?b.value:null,"fulfilled"===c.status?c.value:null)}async getAgentModelStatus(a,b={}){if(this.options.forceCli||C())return this.fallback.getAgentModelStatus(a,b);let c=a.agentId,[d,e]=await Promise.allSettled([this.callNative("models.authStatus",{agentId:c},b),this.callNative("models.list",{view:"configured"},b)]);for(let a of[{method:"models.authStatus",result:d},{method:"models.list",result:e}].filter(a=>"rejected"===a.result.status))if(this.options.onNativeFailure?.(a.result.reason,a.method),!F(a.result.reason,a.method,E(a.method,b)))throw this.cliFallbackDisabledError(a.method,a.result.reason);if("rejected"===d.status&&"rejected"===e.status){let c=d.reason;return this.recordGatewayFallback("models.authStatus",c),this.fallback.getAgentModelStatus(a,b)}(0,l.Z6)("models.authStatus"),(0,l.Z6)("models.list"),this.clearNativeFailure("models.authStatus"),this.clearNativeFailure("models.list");let f="fulfilled"===d.status?d.value:null,g=ah(f,"fulfilled"===e.status?e.value:null);return(0,n.LK)(f)&&(g.agentDir=(0,n.yK)(f.agentDir)??g.agentDir),g}setModelAuthOrder(a,b={}){return this.gatewayFirstCompatible("modelAuthOrder",{provider:a.provider,agentId:a.agentId,profileIds:a.profileIds},b,n.hz,()=>this.fallback.setModelAuthOrder(a,b))}listAgents(a={}){return this.gatewayFirst("agents.list",{},a,a=>ac("agents.list",W,a),()=>this.fallback.listAgents(a))}listSessions(a={},b={}){return this.gatewayFirst("sessions.list",{...a},b,a=>ac("sessions.list",X,a),()=>this.fallback.listSessions(a,b))}describeSession(a={},b={}){return this.gatewayFirst("sessions.describe",{...Q(a),includeMessages:a.includeMessages,limit:a.limit},b,a=>ad("sessions.describe",a),()=>this.fallback.describeSession(a,b))}getSessionHistory(a={},b={}){return this.gatewayFirstSessionHistory(a,b)}exportSession(a={},b={}){return this.gatewayFirstSessionExport(a,b)}listTasks(a={},b={}){return this.gatewayFirst("tasks.list",{...a},b,a=>ad("tasks.list",a),()=>this.fallback.listTasks(a,b))}getTask(a,b={}){return this.gatewayFirst("tasks.get",{...a},b,a=>ad("tasks.get",a),()=>this.fallback.getTask(a,b))}assignTask(a,b={}){let c={...E("tasks.assign",b),allowCliFallback:!1,allowMutationFallbackOnUnsupported:!1};return this.gatewayFirst("tasks.assign",{...a,reason:a.reason??void 0},b,a=>ad("tasks.assign",a),()=>this.fallback.assignTask(a,b),c)}cancelTask(a,b={}){return this.gatewayFirst("tasks.cancel",{taskId:a.taskId,reason:a.reason??void 0},b,a=>ad("tasks.cancel",a),()=>this.fallback.cancelTask(a,b))}listArtifacts(a={},b={}){return this.gatewayFirst("artifacts.list",function(a={}){return{taskId:a.taskId?.trim()||void 0,runId:a.runId?.trim()||void 0,sessionKey:a.sessionKey?.trim()||a.sessionId?.trim()||void 0}}(a),b,a=>ad("artifacts.list",a),()=>this.fallback.listArtifacts(a,b))}getArtifact(a,b={}){return this.gatewayFirst("artifacts.get",{...a},b,a=>ad("artifacts.get",a),()=>this.fallback.getArtifact(a,b))}putArtifact(a,b={}){let c={...E("artifacts.put",b),allowCliFallback:!1,allowMutationFallbackOnUnsupported:!1};return this.gatewayFirst("artifacts.put",{...a},b,a=>ad("artifacts.put",a),()=>this.fallback.putArtifact(a,b),c)}deleteArtifact(a,b={}){let c={...E("artifacts.delete",b),allowCliFallback:!1,allowMutationFallbackOnUnsupported:!1};return this.gatewayFirst("artifacts.delete",{artifactId:a.artifactId,reason:a.reason??void 0},b,a=>ad("artifacts.delete",a),()=>this.fallback.deleteArtifact(a,b),c)}async getRuntimeSnapshot(a={},b={}){if(this.options.forceCli||C())return this.fallback.getRuntimeSnapshot(a,b);let c=!1!==a.includeSessions,d=!1!==a.includeTasks,e=!1!==a.includeArtifacts,f={taskId:a.taskId,runId:a.runId,sessionKey:a.sessionKey,sessionId:a.sessionId},g=e&&function(a={}){return!!(a.taskId?.trim()||a.runId?.trim()||a.sessionKey?.trim()||a.sessionId?.trim())}(f),h=await Promise.allSettled([c?this.listSessions({limit:a.limit,agentId:a.agentId},b):Promise.resolve(null),d?this.listTasks({limit:a.limit,agentId:a.agentId,workspace:a.workspace},b):Promise.resolve(null),g?this.listArtifacts(f,b):Promise.resolve(null)]),i=h.filter((a,b)=>[c,d,g][b]),j=i.filter(a=>"rejected"===a.status);if(i.length>0&&j.length===i.length)throw j[0]?.reason??Error("OpenClaw Gateway runtime snapshot failed.");let[k,l,m]=h,n={sessions:"fulfilled"===k.status?k.value?.sessions??[]:[],tasks:"fulfilled"===l.status?l.value?.tasks??[]:[],artifacts:"fulfilled"===m.status?m.value?.artifacts??[]:[]};return j.length>0&&(n.metadata={runtimeSnapshot:{partial:!0,errors:j.map(a=>{var b;return(b=a.reason)instanceof Error?b.message:String(b||"Unknown OpenClaw Gateway snapshot error.")})}}),n}getToolsCatalog(a={},b={}){return this.gatewayFirst("tools.catalog",{...a},b,a=>ad("tools.catalog",a),()=>this.fallback.getToolsCatalog(a,b))}getEffectiveTools(a={},b={}){return this.gatewayFirst("tools.effective",{...a},b,a=>ad("tools.effective",a),()=>this.fallback.getEffectiveTools(a,b))}invokeTool(a,b={}){return this.gatewayFirst("tools.invoke",{...a},b,a=>ad("tools.invoke",a),()=>this.fallback.invokeTool(a,b))}getChannelStatus(a={},b={}){return this.gatewayFirst("channels.status",{...a},b,a=>ac("channels.status",Y,a),()=>this.fallback.getChannelStatus(a,b))}getChannelLogs(a,b={}){return this.gatewayFirst("channels.logs",{channel:a.channel,lines:a.lines??void 0},b,a=>(0,n.LK)(a)?a:{},()=>this.fallback.getChannelLogs(a,b))}provisionChannelAccount(a,b={}){return this.gatewayFirstCompatible("channelProvisioning",{channel:a.channel,account:a.account?.trim()||void 0,accountId:a.account?.trim()||void 0,name:a.name?.trim()||void 0,token:a.token?.trim()||void 0,botToken:a.botToken?.trim()||void 0,webhookUrl:a.webhookUrl?.trim()||void 0},b,n.hz,()=>this.fallback.provisionChannelAccount(a,b))}removeChannelAccount(a,b={}){return this.gatewayFirstCompatible("channelRemoval",{channel:a.channel,account:a.account,accountId:a.account,delete:a.delete??void 0},b,n.hz,()=>this.fallback.removeChannelAccount(a,b))}setupGmailWebhook(a,b={}){return this.gatewayFirstCompatible("gmailProvisioning",{account:a.account,config:a.config??{}},b,n.hz,()=>this.fallback.setupGmailWebhook(a,b))}listSkills(a={}){return this.gatewayFirst("skills.status",{},a,b=>{let c=ac("skills.status",$,b);return a.eligible?{...c,skills:c.skills.filter(a=>!0===a.eligible)}:c},()=>this.fallback.listSkills(a))}listPlugins(a={}){return this.gatewayFirst("plugins.uiDescriptors",{},a,aj,()=>this.fallback.listPlugins(a))}listModels(a={},b={}){return this.gatewayFirst("models.list",{view:a.all?"all":"configured"},b,b=>{let c=ag(b);return a.provider?{...c,models:c.models.filter(b=>b.key.split("/",1)[0]===a.provider)}:c},()=>this.fallback.listModels(a,b))}scanModels(a={}){return this.fallback.scanModels(a)}probeGateway(a={}){return this.fallback.probeGateway(a)}controlGateway(a,b={}){return this.close(`gateway.${a}`),this.fallback.controlGateway(a,b).finally(()=>{this.close(`gateway.${a}.completed`)})}approveDeviceAccess(a={},b={}){return!1===a.latest||a.requestId?this.gatewayFirstCompatible("deviceApproval",{requestId:a.requestId??void 0,scopes:a.scopes},b,a=>ad("device.pair.approve",a),()=>this.fallback.approveDeviceAccess(a,b)):this.gatewayFirstCompatible("devicePairList",{},b,a=>ad("device.pair.list",a),()=>this.fallback.call("device.pair.list",{},b)).then(c=>{let d=(0,A.$k)(c);if(!d)throw new l.pz("No pending OpenClaw device access request found.","unknown");return this.approveDeviceAccess({...a,latest:!1,requestId:d},b)})}async call(a,b={},c={}){if(this.options.forceCli||C())return this.fallback.call(a,b,c);try{let d=await this.callNative(a,b,c);return(0,l.Z6)(a),this.clearNativeFailure(a),d}catch(e){this.options.onNativeFailure?.(e,a);let d=E(a,c);if(!F(e,a,d))throw this.cliFallbackDisabledError(a,e);return this.recordGatewayFallback(a,e),this.fallback.call(a,b,c)}}getConfig(a,b={}){return this.gatewayFirst("config.get",{},b,b=>{let c=ac("config.get",aa,b),d=(0,n.LK)(c.config)?c.config:{},e=(0,n.LK)(c.resolved)?c.resolved:{},f=(0,n.e6)(d,a)??(0,n.e6)(e,a);return void 0===f?null:f},()=>this.fallback.getConfig(a,b))}getConfigSchema(a={}){return this.gatewayFirst("config.schema",{},a,a=>(0,n.LK)(a)?a:null,()=>this.fallback.getConfigSchema?.(a)??Promise.resolve(null))}lookupConfigSchema(a,b={}){return this.gatewayFirst("config.schema.lookup",{path:a.path},b,a=>(0,n.LK)(a)?a:null,()=>this.fallback.lookupConfigSchema?.(a,b)??Promise.resolve(null))}async hasConfig(a,b={}){return null!=await this.getConfig(a,b)}setConfig(a,b,c={}){return this.gatewayConfigMutationFirst("config.set",a,b,c,c=>(0,n.r0)(c,a,b),()=>this.fallback.setConfig(a,b,c))}unsetConfig(a,b={}){return this.gatewayConfigMutationFirst("config.unset",a,void 0,b,b=>(0,n.WW)(b,a),()=>this.fallback.unsetConfig(a,b))}addAgent(a,b={}){if(a.agentDir?.trim())return this.fallback.addAgent(a,b);let c={name:a.name?.trim()||a.id,workspace:a.workspace};return a.model&&(c.model=a.model),a.emoji&&(c.emoji=a.emoji),a.avatar&&(c.avatar=a.avatar),this.gatewayFirst("agents.create",c,b,n.hz,()=>this.fallback.addAgent(a,b))}updateAgent(a,b={}){let c={agentId:a.id};return void 0!==a.name&&null!==a.name&&a.name.trim()&&(c.name=a.name.trim()),void 0!==a.workspace&&null!==a.workspace&&a.workspace.trim()&&(c.workspace=a.workspace.trim()),void 0!==a.model&&(c.model=a.model?.trim()||null),void 0!==a.emoji&&(c.emoji=a.emoji?.trim()||""),void 0!==a.avatar&&(c.avatar=a.avatar?.trim()||""),this.gatewayFirst("agents.update",c,b,n.hz,()=>this.fallback.updateAgent?.(a,b)??Promise.resolve({stdout:JSON.stringify({ok:!0,fallback:"application-config"}),stderr:""}))}setAgentIdentity(a,b={}){return this.gatewayFirstCompatible("agentIdentity",{agentId:a.agentId,agent:a.agentId,workspace:a.workspace,identityFile:a.identityFile,name:a.name?.trim()||void 0,emoji:a.emoji?.trim()||void 0,theme:a.theme?.trim()||void 0,avatar:a.avatar?.trim()||void 0},b,n.hz,()=>this.fallback.setAgentIdentity(a,b))}deleteAgent(a,b={}){return this.gatewayFirst("agents.delete",{agentId:a},b,n.hz,()=>this.fallback.deleteAgent(a,b))}provisionAutomation(a,b={}){return this.gatewayFirstCompatible("automationProvisioning",{name:a.name,description:a.description||a.name,agentId:a.agentId,agent:a.agentId,message:a.message,thinking:a.thinking||"medium",timeoutSeconds:a.timeoutSeconds??120,schedule:a.schedule,announce:a.announce??void 0},b,n.hz,()=>this.fallback.provisionAutomation(a,b))}async runAgentTurn(a,b={}){if(this.options.forceCli||C())return this.fallback.runAgentTurn(a,b);try{let c=await this.runAgentTurnNative(a,b);return(0,l.Z6)("chat.send"),(0,l.Z6)("sessions.send"),this.clearNativeFailure("chat.send"),this.clearNativeFailure("sessions.send"),c}catch(d){this.options.onNativeFailure?.(d,"chat.send");let c=d instanceof l.jl?d.method:"chat.send";if(!F(d,c,{safety:"mutation"}))throw this.cliFallbackDisabledError(c,d);return this.recordGatewayFallback("chat.send",d),this.fallback.runAgentTurn(a,b)}}abortAgentTurn(a,b={}){let c=a.sessionId||a.agentId?P(a.agentId,a.sessionId):void 0;return this.gatewayFirst("sessions.abort",{key:c,runId:a.runId??void 0},b,a=>a,()=>this.gatewayFirst("chat.abort",{sessionKey:c,runId:a.runId??void 0},b,a=>a,()=>this.fallback.abortAgentTurn?.(a,b)??this.fallback.call("sessions.abort",{key:c,runId:a.runId??void 0},b)))}async steerSession(a,b={}){if(this.options.forceCli||b.forceCli||C())throw new l.pz("Native OpenClaw Gateway is required for sessions.steer.","unsupported");try{let c,d,e=await this.callNative("sessions.steer",(c=a.key?.trim(),d=a.sessionId?.trim(),{key:c||void 0,sessionId:c?void 0:d||void 0,message:a.message}),b,{safety:"mutation",timeoutMs:b.timeoutMs,allowCliFallback:!1,allowMutationFallbackOnUnsupported:!1});return this.clearNativeFailure("sessions.steer"),ad("sessions.steer",e)}catch(a){throw this.options.onNativeFailure?.(a,"sessions.steer"),this.cliFallbackDisabledError("sessions.steer",a)}}async injectChat(a,b={}){if(this.options.forceCli||b.forceCli||C())throw new l.pz("Native OpenClaw Gateway is required for chat.inject.","unsupported");try{let c,d,e=await this.callNative("chat.inject",(c=a.sessionKey?.trim(),d=a.sessionId?.trim(),{sessionKey:c||void 0,sessionId:c?void 0:d||void 0,message:a.message}),b,{safety:"mutation",timeoutMs:b.timeoutMs,allowCliFallback:!1,allowMutationFallbackOnUnsupported:!1});return this.clearNativeFailure("chat.inject"),ad("chat.inject",e)}catch(a){throw this.options.onNativeFailure?.(a,"chat.inject"),this.cliFallbackDisabledError("chat.inject",a)}}async streamAgentTurn(a,b={},c={}){if(c.forceCli||this.options.forceCli||C())return this.fallback.streamAgentTurn(a,b,c);let d=P(a.agentId,a.sessionId),e=null,f=null,g="",h=()=>{},i=new Promise(a=>{h=a});try{e=await this.subscribeNativeEvents({subscribeSessions:!0,sessionKeys:[d]},{onEvent:a=>{let c=function(a,b,c){let d=(0,n.LK)(a.payload)?a.payload:{},e=(0,n.yK)(d.sessionKey)??(0,n.yK)(d.key)??(0,n.yK)(d.sessionId),f=(0,n.yK)(d.runId)??(0,n.yK)(d.run)??(0,n.yK)(d.clientRunId),g=b.includes(":explicit:")?b.split(":explicit:").at(1)??null:null;if(e&&e!==b&&e!==g||c&&f&&f!==c||!e&&!f)return null;let h=function(a){if(!(0,n.LK)(a))return null;let b=(0,n.LK)(a.author)?a.author:null;return(0,n.yK)(a.role)??(0,n.yK)(a.type)??(0,n.yK)(a.speaker)??(0,n.yK)(b?.role)??(0,n.yK)(b?.type)??(0,n.yK)(b?.name)}(d.message)??(0,n.yK)(d.role)??(0,n.yK)(d.authorRole)??(0,n.yK)(d.speaker);if(h&&/^(user|operator|system)$/i.test(h))return null;let i=(0,n.yK)(d.state)??(0,n.yK)(d.status)??(0,n.yK)(a.event),j=function a(b){return"string"==typeof b&&b.trim()?b.trim():Array.isArray(b)?b.flatMap(b=>{if(!(0,n.LK)(b))return[];if(("text"===b.type||"output_text"===b.type)&&"string"==typeof b.text&&b.text.trim())return[b.text.trim()];if("toolResult"===b.type){let c=a(b.content)??(0,n.yK)(b.text);return c?[c]:[]}return[]}).join("\n\n").trim()||null:(0,n.LK)(b)?(0,n.yK)(b.text)??(0,n.yK)(b.content)??a(b.content)??(0,n.yK)(b.summary)??(0,n.yK)(b.message):null}(d.message)??(0,n.yK)(d.text)??(0,n.yK)(d.summary)??(0,n.yK)(d.detail),k=/final|complete|completed|aborted|abort|error|failed|stalled/i.test(i??""),l=/error|failed|stalled/i.test(i??"");return!k||j||l?{text:j,done:k,payload:{runId:f??c??void 0,status:l?"stalled":k?"completed":"running",summary:j??"OpenClaw Gateway stream failed.",payloads:j?[{text:j,mediaUrl:null}]:[]}}:null}(a,d,f);c&&(c.text&&c.text!==g&&(g=c.text,b.onStdout?.(`${JSON.stringify({type:"assistant",text:c.text})}
4
4
  `)),c.done&&h?.(c.payload))},onError:a=>{b.onStderr?.(a instanceof Error?`${a.message}
5
5
  `:`${String(a)}
6
- `)}},c);let j=await this.runAgentTurnNative(a,c);f=j.runId??null,(0,l.Z6)("streamAgentTurn"),this.clearNativeFailure("streamAgentTurn");let k=S(a,c),m=await Promise.race([i,new Promise(a=>globalThis.setTimeout(()=>a(null),k))]);if(m)return m;return await this.waitForAgentTurnNative(a,j,c)??j}catch(e){this.options.onNativeFailure?.(e,"streamAgentTurn");let d=e instanceof l.jl?e.method:"streamAgentTurn";if(!F(e,d,{safety:"mutation"}))throw this.cliFallbackDisabledError(d,e);return this.recordGatewayFallback("streamAgentTurn",e),this.fallback.streamAgentTurn(a,b,c)}finally{e?.close(),h(null)}}async runAgentTurnNative(a,b={}){let c=P(a.agentId,a.sessionId),d="number"==typeof a.timeoutSeconds&&Number.isFinite(a.timeoutSeconds)?Math.max(0,Math.floor(1e3*a.timeoutSeconds)):void 0,e=a.idempotencyKey?.trim()||a.dispatchId||(0,n.r_)();await this.prepareNativeSession(a,c,b);let f={sessionKey:c,sessionId:a.sessionId,message:a.message,thinking:a.thinking,timeoutMs:d,idempotencyKey:e};try{return await this.callNative("chat.send",f,b)}catch(d){if(!(0,A.lH)(d)){if(an(d,a.agentId)){let e=await this.checkGatewayAgentRegistry(a.agentId,b);if("present"===e)try{return await this.prepareNativeSession(a,c,b),await this.callNative("chat.send",f,b)}catch(b){if(an(b,a.agentId))throw ao(a.agentId,b);throw b}if("missing"===e)throw ao(a.agentId,d)}throw d}}return this.callNative("sessions.send",{agentId:a.agentId,key:c,message:a.message,thinking:a.thinking,timeoutMs:d,idempotencyKey:e},b)}async checkGatewayAgentRegistry(a,b){try{var c;let d,e=ad("agents.list",X,await this.callNative("agents.list",{},{...b,timeoutMs:5e3},{safety:"read",timeoutMs:5e3}));return(0,l.Z6)("agents.list"),this.clearNativeFailure("agents.list"),(c=e,(d=a.trim())&&(c.defaultId===d||c.mainKey===d||c.agents.some(a=>a.id===d)))?"present":"missing"}catch{return"unknown"}}async prepareNativeSession(a,b,c){if(a.sessionId||a.dispatchId){try{await this.callNative("sessions.create",{key:b,agentId:a.agentId},c,{safety:"mutation"}),(0,l.Z6)("sessions.create")}catch(a){if(!T(a))throw a}try{await this.callNative("sessions.patch",{key:b,metadata:{agentId:a.agentId,sessionId:a.sessionId??void 0,workspace:a.workspace??void 0,dispatchId:a.dispatchId??void 0,local:a.local??void 0,origin:a.dispatchId?"agentos-mission-dispatch":"agentos-direct-chat"}},c,{safety:"mutation"}),(0,l.Z6)("sessions.patch")}catch(a){if(!T(a))throw a}}}async waitForAgentTurnNative(a,b,c){if(!b.runId)return null;let d=S(a,c),e=P(a.agentId,a.sessionId);try{let f=await this.callNative("agent.wait",{runId:b.runId,sessionKey:e,sessionId:a.sessionId??void 0,timeoutMs:d},{...c,timeoutMs:d},{safety:"read",timeoutMs:d});return(0,l.Z6)("agent.wait"),f}catch(b){let a;if("unsupported"!==(a=(0,l.$g)(b).kind)&&"timeout"!==a&&"malformed-response"!==a)throw b;return null}}tailLogs(a={},b={}){return this.gatewayFirst("logs.tail",{...a},b,a=>(0,n.LK)(a)?a:{},()=>this.fallback.tailLogs?.(a,b)??this.fallback.call("logs.tail",{...a},b))}listExecApprovals(a={},b={}){return this.gatewayFirst("exec.approval.list",{...a},b,a=>(0,n.LK)(a)?a:{},()=>this.fallback.listExecApprovals?.(a,b)??this.fallback.call("exec.approval.list",{...a},b))}resolveExecApproval(a,b={}){return this.gatewayFirst("exec.approval.resolve",{approvalId:a.approvalId,decision:a.decision,reason:a.reason??void 0},b,a=>(0,n.LK)(a)?a:{},()=>this.fallback.resolveExecApproval?.(a,b)??this.fallback.call("exec.approval.resolve",{approvalId:a.approvalId,decision:a.decision,reason:a.reason??void 0},b))}getCronStatus(a={}){return this.gatewayFirst("cron.status",{},a,a=>(0,n.LK)(a)?a:{},()=>this.fallback.getCronStatus?.(a)??this.fallback.call("cron.status",{},a))}listCronJobs(a={},b={}){return this.gatewayFirst("cron.list",{...a},b,a=>(0,n.LK)(a)?a:{},()=>this.fallback.listCronJobs?.(a,b)??this.fallback.call("cron.list",{...a},b))}async subscribeRuntimeEvents(a,b,c={}){if(c.forceCli||this.options.forceCli||C())return this.fallback.subscribeRuntimeEvents(a,b,c);let d=[a.includeSessions,a.includeTasks,a.includeArtifacts,a.includeApprovals].some(a=>void 0!==a);try{let e=await this.subscribeNativeEvents({subscribeSessions:a.includeSessions??!d,subscribeTasks:a.includeTasks??(!!a.taskIds?.length||void 0),subscribeArtifacts:a.includeArtifacts,subscribeApprovals:a.includeApprovals,sessionKeys:a.sessionKeys,taskIds:a.taskIds,artifactIds:a.artifactIds},b,c);return(0,l.Z6)("runtime.subscribe"),this.clearNativeFailure("runtime.subscribe"),e}catch(d){if(this.options.onNativeFailure?.(d,"runtime.subscribe"),!F(d,"runtime.subscribe",{safety:"read",timeoutMs:c.timeoutMs}))throw this.cliFallbackDisabledError("runtime.subscribe",d);return this.recordGatewayFallback("runtime.subscribe",d),this.fallback.subscribeRuntimeEvents(a,b,c)}}async callNative(a,b={},c={},d=E(a,c)){let e=D(d.timeoutMs??c.timeoutMs??this.options.timeoutMs,a);return this.connection.request(a,b,c,e)}async probeNativeHandshake(a={}){let b=D(a.timeoutMs??this.options.timeoutMs,m.JV);return this.connection.probe(a,b)}async subscribeNativeEvents(a,b,c={}){let d=D(c.timeoutMs??this.options.timeoutMs,"sessions.subscribe");return this.connection.subscribe(a,b,c,d)}async gatewayFirstSessionHistory(a,b){if(this.options.forceCli||C())return this.fallback.getSessionHistory(a,b);let c=[["chat.history",R(a)],["sessions.preview",function(a={}){let b=Q(a),c=b.key;return{...b,sessionKey:c,sessionKeys:c?[c]:void 0,limit:a.limit,cursor:a.cursor??void 0}}(a)],["sessions.history",R(a)]],d=null;for(let[e,f]of c){let g=E(e,b);try{let a=ae(e,await this.callNative(e,f,b,g));for(let[a]of c)(0,l.Z6)(a),this.clearNativeFailure(a);return a}catch(c){if(this.options.onNativeFailure?.(c,e),(0,A.lH)(c)){d=c;continue}if(!F(c,e,g))throw this.cliFallbackDisabledError(e,c);return this.recordGatewayFallback(e,c),this.fallback.getSessionHistory(a,b)}}return this.recordGatewayFallback("chat.history",d??new l.As("OpenClaw Gateway does not advertise a compatible session history method.",{kind:"unsupported"})),this.fallback.getSessionHistory(a,b)}async gatewayFirstSessionExport(a,b){if(this.options.forceCli||C())return this.fallback.exportSession(a,b);let c=Q(a),d=[["sessions.get",c],["sessions.describe",c],["sessions.export",{...c,format:a.format}]],e=null;for(let[c,f]of d){let g=E(c,b);try{let e=ae(c,await this.callNative(c,f,b,g));for(let[a]of d)(0,l.Z6)(a),this.clearNativeFailure(a);return function(a,b){if("string"==typeof b.content)return{...b,format:a.format??("string"==typeof b.format?b.format:"json")};let c=a.format??"json";return{...b,format:c,session:b.session??b,content:"json"===c?JSON.stringify(b):void 0}}(a,e)}catch(d){if(this.options.onNativeFailure?.(d,c),(0,A.lH)(d)){e=d;continue}if(!F(d,c,g))throw this.cliFallbackDisabledError(c,d);return this.recordGatewayFallback(c,d),this.fallback.exportSession(a,b)}}return this.recordGatewayFallback("sessions.get",e??new l.As("OpenClaw Gateway does not advertise a compatible session export method.",{kind:"unsupported"})),this.fallback.exportSession(a,b)}async gatewayFirst(a,b,c,d,e,f=E(a,c)){if(this.options.forceCli||C())return e();try{let e=d(await this.callNative(a,b,c,f));return(0,l.Z6)(a),this.clearNativeFailure(a),e}catch(b){if(this.options.onNativeFailure?.(b,a),!F(b,a,f))throw this.cliFallbackDisabledError(a,b);return this.recordGatewayFallback(a,b),e()}}async gatewayFirstCompatible(a,b,c,d,f){if(this.options.forceCli||C())return f();let g=(0,e.P5)(a),h=null;for(let a of g){let e=E(a,c);try{let f=d(await this.callNative(a,b,c,e));for(let a of g)(0,l.Z6)(a),this.clearNativeFailure(a);return f}catch(b){if(this.options.onNativeFailure?.(b,a),(0,A.lH)(b)){h=b;continue}if(!F(b,a,e))throw this.cliFallbackDisabledError(a,b);return this.recordGatewayFallback(a,b),f()}}let i=g[0]??a;return this.recordGatewayFallback(i,h??new l.As(`OpenClaw Gateway does not advertise a compatible method for ${a}.`,{kind:"unsupported"})),f()}async gatewayConfigMutationFirst(a,b,c,d,e,g){if(this.options.forceCli||C())return g();if((0,n.FZ)(c))throw new l.pz("Refusing to write a redacted OpenClaw secret back to config.","auth");let h=(0,f.vC)(b);try{let g,h=ad("config.get",ab,await this.callNative("config.get",{},d,{safety:"read"})),i=(0,n.Pu)((0,n.LK)(h.config)?h.config:{});e(i);let j=await this.callNative("config.schema.lookup",{path:b},d,{safety:"read"}).catch(()=>this.callNative("config.schema",{},d,{safety:"read"})).catch(()=>null),k=(0,f.RE)(j),m="string"==typeof h.hash&&h.hash.trim()?h.hash:void 0,o=(0,f.LF)(b,"config.unset"===a?null:c),p={raw:JSON.stringify(o)};m&&(p.baseHash=m);let q="config.patch";try{g=await this.callNative("config.patch",p,d,{safety:"mutation"})}catch(a){if(!(0,A.lH)(a))throw a;try{let a={raw:JSON.stringify(i)};m&&(a.baseHash=m),g=await this.callNative("config.apply",a,d,{safety:"mutation"}),q="config.apply"}catch(c){if(!(0,A.lH)(c))throw c;if((0,n.FZ)(h.config))throw new l.pz("OpenClaw returned redacted secrets in the config snapshot; refusing full Gateway config overwrite.","auth",{cause:c});let b={raw:JSON.stringify(i)};m&&(b.baseHash=m);try{g=await this.callNative("config.set",b,d,{safety:"mutation"}),q="config.set"}catch(b){if(!(0,A.lH)(b))throw b;throw a}}}(0,l.Z6)(a),this.clearNativeFailure(a);let r={path:b,reloadKind:k,restartRequired:"restart"===k,hotReloaded:"hot"===k,appliedVia:q,...m?{baseHash:m}:{}};return(0,n.hz)((0,n.LK)(g)?{...g,configMutation:r}:{ok:!0,configMutation:r},{openClawConfig:r})}catch(d){this.options.onNativeFailure?.(d,a);let c=d instanceof l.jl?d.method:a;if(!(F(d,c,{safety:"mutation"})||(0,f.c0)(d,b)))throw this.cliFallbackDisabledError(c,d);return this.recordGatewayFallback(a,d),g()}finally{h&&this.close(`${a}:${b}`)}}}function an(a,b){let c=(0,l.$g)(a).message.replace(/\s+/g," ").trim();if(!c||!/\bagent\b/i.test(c)||!/\bnot found\b/i.test(c))return!1;let d=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return RegExp(`\\bagent\\s+["'\`]?${d}["'\`]?\\s+not\\s+found\\b`,"i").test(c)}function ao(a,b){return new l.pz(`OpenClaw Gateway has not loaded agent "${a}" yet. Restart the Gateway or refresh AgentOS after OpenClaw finishes loading agents, then retry chat.`,"conflict",{cause:b})}function ap(a,b){if(!a)return!1;if(!b)return!0;let c=Date.parse(a),d=Date.parse(b);return!(Number.isFinite(c)&&Number.isFinite(d))||c>=d}},38699:(a,b,c)=>{"use strict";c.d(b,{p:()=>m});var d=c(88366),e=c(78446),f=c(17929),g=c(24117);function h(a){let b=["agent","--agent",a.agentId];return a.sessionId&&b.push("--session-id",a.sessionId),a.local&&b.push("--local"),b.push("--message",a.message,"--thinking",a.thinking??"medium","--timeout",String(a.timeoutSeconds??45),"--json"),b}function i(a={}){let b,c,d=a.key?.trim()||a.sessionKey?.trim();if(d)return{key:d};let e=a.sessionId?.trim(),f=a.agentId?.trim();return{agentId:f||void 0,sessionId:e||void 0,key:f||e?(b=e?.trim(),c=f?.trim()||"main",b?`agent:${c}:explicit:${b}`:`agent:${c}:main`):void 0}}function j(a={}){return{...i(a),limit:a.limit,cursor:a.cursor??void 0}}function k(a,b,c){var d;let e="number"==typeof(d=c)&&Number.isFinite(d)?String(d):"boolean"==typeof d?d?"true":"false":"string"==typeof d&&d.trim().length>0?d.trim():null;null!==e&&a.push(b,e)}function l(a){return"object"==typeof a&&null!==a}class m{getDiagnostics(){return{mode:"cli",gatewayMode:"cli-forced",statusLabel:"CLI fallback forced",recovery:"Unset the CLI-forced Gateway mode and restart AgentOS to use the native OpenClaw Gateway.",connectionState:"cli-forced",protocolVersion:null,protocolRange:g.aj,fallbackCounts:{},fallbackTotal:0,recentFallbackDiagnostics:[],lastNativeError:null,lastNativeFailureAt:null,lastConnectedAt:null,lastDisconnectedAt:null}}getHealth(a={}){return this.call("health",{},a)}getStatus(a={}){return(0,d.VP)(["status","--json"],a)}getGatewayStatus(a={}){return(0,d.VP)(["gateway","status","--json"],a)}getModelStatus(a={}){return(0,d.VP)(["models","status","--json"],a)}getAgentModelStatus(a,b={}){return(0,d.VP)(["models","status","--agent",a.agentId,"--json"],b)}setModelAuthOrder(a,b={}){return(0,d.zB)(["models","auth","order","set","--provider",a.provider,"--agent",a.agentId,...a.profileIds],b)}async listAgents(a={}){return{agents:(await (0,d.VP)(["agents","list","--json"],a)).map(a=>({id:a.id,name:a.name,identity:{name:a.identityName,emoji:a.identityEmoji},workspace:a.workspace,model:a.model?{primary:a.model}:void 0}))}}listSessions(a={},b={}){return this.call("sessions.list",{...a},b)}describeSession(a={},b={}){return this.call("sessions.describe",{...i(a),includeMessages:a.includeMessages,limit:a.limit},b)}async getSessionHistory(a={},b={}){let c=null;for(let[d,e]of[["chat.history",j(a)],["sessions.preview",function(a={}){let b=i(a),c=b.key;return{...b,sessionKey:c,sessionKeys:c?[c]:void 0,limit:a.limit,cursor:a.cursor??void 0}}(a)],["sessions.history",j(a)]])try{return await this.call(d,e,b)}catch(a){c=a}throw c}async exportSession(a={},b={}){let c=null,d=i(a);for(let e of["sessions.get","sessions.describe","sessions.export"])try{let c=await this.call(e,"sessions.export"===e?{...d,format:a.format}:d,b);return function(a,b){if("string"==typeof b.content)return{...b,format:a.format??("string"==typeof b.format?b.format:"json")};let c=a.format??"json";return{...b,format:c,session:b.session??b,content:"json"===c?JSON.stringify(b):void 0}}(a,c)}catch(a){c=a}throw c}listTasks(a={},b={}){return this.call("tasks.list",{...a},b)}getTask(a,b={}){return this.call("tasks.get",{...a},b)}assignTask(a,b={}){return this.call("tasks.assign",{...a,reason:a.reason??void 0},b)}cancelTask(a,b={}){return this.call("tasks.cancel",{taskId:a.taskId,reason:a.reason??void 0},b)}listArtifacts(a={},b={}){return this.call("artifacts.list",function(a={}){return{taskId:a.taskId?.trim()||void 0,runId:a.runId?.trim()||void 0,sessionKey:a.sessionKey?.trim()||a.sessionId?.trim()||void 0}}(a),b)}getArtifact(a,b={}){return this.call("artifacts.get",{...a},b)}putArtifact(a,b={}){return this.call("artifacts.put",{...a},b)}deleteArtifact(a,b={}){return this.call("artifacts.delete",{artifactId:a.artifactId,reason:a.reason??void 0},b)}async getRuntimeSnapshot(a={},b={}){let c=!1!==a.includeSessions,d=!1!==a.includeTasks,e=!1!==a.includeArtifacts,f={taskId:a.taskId,runId:a.runId,sessionKey:a.sessionKey,sessionId:a.sessionId},g=e&&function(a={}){return!!(a.taskId?.trim()||a.runId?.trim()||a.sessionKey?.trim()||a.sessionId?.trim())}(f),h=await Promise.allSettled([c?this.listSessions({limit:a.limit,agentId:a.agentId},b):Promise.resolve(null),d?this.listTasks({limit:a.limit,agentId:a.agentId,workspace:a.workspace},b):Promise.resolve(null),g?this.listArtifacts(f,b):Promise.resolve(null)]),i=h.filter((a,b)=>[c,d,g][b]),j=i.filter(a=>"rejected"===a.status);if(i.length>0&&j.length===i.length)throw j[0]?.reason??Error("OpenClaw Gateway runtime snapshot failed.");let[k,l,m]=h,n={sessions:"fulfilled"===k.status?k.value?.sessions??[]:[],tasks:"fulfilled"===l.status?l.value?.tasks??[]:[],artifacts:"fulfilled"===m.status?m.value?.artifacts??[]:[]};return j.length>0&&(n.metadata={runtimeSnapshot:{partial:!0,errors:j.map(a=>{var b;return(b=a.reason)instanceof Error?b.message:String(b||"Unknown OpenClaw Gateway snapshot error.")})}}),n}getToolsCatalog(a={},b={}){return this.call("tools.catalog",{...a},b)}getEffectiveTools(a={},b={}){return this.call("tools.effective",{...a},b)}invokeTool(a,b={}){return this.call("tools.invoke",{...a},b)}async subscribeRuntimeEvents(a,b,c={}){throw Error("OpenClaw runtime event subscriptions require the native Gateway transport.")}getChannelStatus(a={},b={}){return this.call("channels.status",{...a},b)}getChannelLogs(a,b={}){let c=["channels","logs","--channel",a.channel,"--json"];return"number"==typeof a.lines&&Number.isFinite(a.lines)&&a.lines>0&&c.push("--lines",String(a.lines)),(0,d.VP)(c,b)}provisionChannelAccount(a,b={}){let c=["channels","add","--channel",a.channel];return k(c,"--account",a.account),k(c,"--token",a.token),k(c,"--bot-token",a.botToken),k(c,"--webhook-url",a.webhookUrl),k(c,"--name",a.name),(0,d.zB)(c,b)}removeChannelAccount(a,b={}){let c=["channels","remove","--channel",a.channel,"--account",a.account];return a.delete&&c.push("--delete"),(0,d.zB)(c,b)}setupGmailWebhook(a,b={}){var c,e,f;let g,h,i,j;return(0,d.zB)((g=a.config??{},h=["webhooks","gmail","setup","--account",a.account],i=l(g.serve)?g.serve:{},j=l(g.tailscale)?g.tailscale:{},k(h,"--project",g.project),k(h,"--topic",g.topic),k(h,"--subscription",g.subscription),k(h,"--label",g.label),k(h,"--hook-url",g.hookUrl),k(h,"--hook-token",g.hookToken),k(h,"--push-token",g.pushToken),k(h,"--bind",i.bind),k(h,"--port",i.port),k(h,"--path",i.path),c=h,e="--include-body",(!0===(f=g.includeBody)||"true"===f)&&c.push(e),k(h,"--max-bytes",g.maxBytes),k(h,"--renew-minutes",g.renewEveryMinutes),k(h,"--tailscale",j.mode),k(h,"--tailscale-path",j.path),k(h,"--tailscale-target",j.target),k(h,"--push-endpoint",g.pushEndpoint),h),b)}listSkills(a={}){let b=["skills","list"];return a.eligible&&b.push("--eligible"),b.push("--json"),(0,d.VP)(b,a)}listPlugins(a={}){return(0,d.VP)(["plugins","list","--json"],a)}listModels(a={},b={}){let c=["models","list"];return a.all&&c.push("--all"),c.push("--json"),a.provider&&c.push("--provider",a.provider),(0,d.VP)(c,b)}scanModels(a={}){let b=["models","scan","--json"];return a.yes&&b.push("--yes"),a.noInput&&b.push("--no-input"),a.noProbe&&b.push("--no-probe"),(0,d.VP)(b,a)}probeGateway(a={}){return(0,d.VP)(["gateway","probe","--json"],a)}controlGateway(a,b={}){let c=["gateway",a];return"restart"===a&&b.force&&c.push("--force"),c.push("--json"),(0,d.VP)(c,b)}async approveDeviceAccess(a={},b={}){if(!1!==a.latest&&!a.requestId){let c=function(a){let b=Array.isArray(a.pending)?a.pending:[],c=null;for(let a of b){if(!a||"object"!=typeof a)continue;let b="string"==typeof a.requestId&&a.requestId.trim()?a.requestId.trim():null;if(!b)continue;let d="number"==typeof a.ts&&Number.isFinite(a.ts)?a.ts:0;(!c||d>c.ts)&&(c={requestId:b,ts:d})}return c?.requestId??null}(await (0,d.VP)(["devices","list","--json"],b));if(!c)throw Error("No pending OpenClaw device access request found.");return this.approveDeviceAccess({...a,latest:!1,requestId:c},b)}let c=["devices","approve"];for(let b of(a.requestId&&c.push(a.requestId),a.scopes??[]))k(c,"--scope",b);return c.push("--json"),(0,d.VP)(c,b)}call(a,b={},c={}){return(0,d.VP)(["gateway","call",a,"--params",JSON.stringify(b),"--json"],c)}async getConfig(a,b={}){return(0,d.VP)(["config","get",a,"--json"],b).catch(()=>null)}async getConfigSchema(a={}){return this.call("config.schema",{},a).catch(()=>null)}async lookupConfigSchema(a,b={}){return this.call("config.schema.lookup",{path:a.path},b).catch(()=>null)}async hasConfig(a,b={}){try{return await (0,d.zB)(["config","get",a,"--json"],b),!0}catch(a){if((0,e.t)(a).includes("Config path not found"))return!1;throw a}}setConfig(a,b,c={}){if((0,f.FZ)(b))throw Error("Refusing to write a redacted OpenClaw secret back to config.");let e=["config","set",a,"string"==typeof b?b:JSON.stringify(b)];return c.strictJson&&e.push("--strict-json"),(0,d.zB)(e,c)}unsetConfig(a,b={}){return(0,d.zB)(["config","unset",a],b)}addAgent(a,b={}){let c=["agents","add",a.id,"--workspace",a.workspace,"--agent-dir",a.agentDir,"--non-interactive","--json"];return a.model&&c.push("--model",a.model),(0,d.zB)(c,b)}async updateAgent(a,b={}){return{stdout:JSON.stringify({ok:!0,fallback:"application-config"}),stderr:""}}setAgentIdentity(a,b={}){let c;return(0,d.zB)((k(c=["agents","set-identity","--agent",a.agentId,"--workspace",a.workspace,"--identity-file",a.identityFile,"--json"],"--name",a.name),k(c,"--emoji",a.emoji),k(c,"--theme",a.theme),k(c,"--avatar",a.avatar),c),b)}deleteAgent(a,b={}){return(0,d.zB)(["agents","delete",a,"--force","--json"],b)}provisionAutomation(a,b={}){let c;return(0,d.zB)((c=["cron","add","--name",a.name,"--description",a.description||a.name,"--agent",a.agentId,"--message",a.message,"--thinking",a.thinking||"medium","--timeout-seconds",String(a.timeoutSeconds??120),"--json"],"every"===a.schedule.kind?c.push("--every",a.schedule.value):c.push("--cron",a.schedule.value),a.announce?.channel&&(c.push("--announce","--channel",a.announce.channel),k(c,"--to",a.announce.target)),c),b)}runAgentTurn(a,b={}){return(0,d.VP)(h(a),b)}abortAgentTurn(a,b={}){return this.call("chat.abort",{runId:a.runId??void 0,sessionId:a.sessionId??void 0,agentId:a.agentId??void 0,reason:a.reason??void 0},b)}async steerSession(a,b={}){throw Error("Native OpenClaw Gateway is required for sessions.steer.")}async injectChat(a,b={}){throw Error("Native OpenClaw Gateway is required for chat.inject.")}streamAgentTurn(a,b={},c={}){return(0,d.JZ)(h(a),{...c,...b})}tailLogs(a={},b={}){return this.call("logs.tail",{...a},b)}listExecApprovals(a={},b={}){return this.call("exec.approval.list",{...a},b)}resolveExecApproval(a,b={}){return this.call("exec.approval.resolve",{approvalId:a.approvalId,decision:a.decision,reason:a.reason??void 0},b)}getCronStatus(a={}){return this.call("cron.status",{},a)}listCronJobs(a={},b={}){return this.call("cron.list",{...a},b)}}},39503:(a,b,c)=>{"use strict";c.d(b,{rw:()=>g});var d=c(7565);class e{constructor(a=d.Xz){this.getClient=a}getHealth(a={}){return this.getClient().getHealth(a)}getStatus(a={}){return this.getClient().getStatus(a)}getGatewayStatus(a={}){return this.getClient().getGatewayStatus(a)}getModelStatus(a={}){return this.getClient().getModelStatus(a)}getAgentModelStatus(a,b={}){return this.getClient().getAgentModelStatus(a,b)}setModelAuthOrder(a,b={}){return this.getClient().setModelAuthOrder(a,b)}listAgents(a={}){return this.getClient().listAgents(a)}listSessions(a={},b={}){return this.getClient().listSessions(a,b)}describeSession(a={},b={}){return this.getClient().describeSession(a,b)}getSessionHistory(a={},b={}){return this.getClient().getSessionHistory(a,b)}exportSession(a={},b={}){return this.getClient().exportSession(a,b)}listTasks(a={},b={}){return this.getClient().listTasks(a,b)}getTask(a,b={}){return this.getClient().getTask(a,b)}assignTask(a,b={}){return this.getClient().assignTask(a,b)}cancelTask(a,b={}){return this.getClient().cancelTask(a,b)}listArtifacts(a={},b={}){return this.getClient().listArtifacts(a,b)}getArtifact(a,b={}){return this.getClient().getArtifact(a,b)}putArtifact(a,b={}){return this.getClient().putArtifact(a,b)}deleteArtifact(a,b={}){return this.getClient().deleteArtifact(a,b)}getRuntimeSnapshot(a={},b={}){return this.getClient().getRuntimeSnapshot(a,b)}getToolsCatalog(a={},b={}){return this.getClient().getToolsCatalog(a,b)}getEffectiveTools(a={},b={}){return this.getClient().getEffectiveTools(a,b)}invokeTool(a,b={}){return this.getClient().invokeTool(a,b)}subscribeRuntimeEvents(a,b,c={}){return this.getClient().subscribeRuntimeEvents(a,b,c)}getChannelStatus(a={},b={}){return this.getClient().getChannelStatus(a,b)}getChannelLogs(a,b={}){return this.getClient().getChannelLogs(a,b)}provisionChannelAccount(a,b={}){return this.getClient().provisionChannelAccount(a,b)}removeChannelAccount(a,b={}){return this.getClient().removeChannelAccount(a,b)}setupGmailWebhook(a,b={}){return this.getClient().setupGmailWebhook(a,b)}listModels(a={},b={}){return this.getClient().listModels(a,b)}listSkills(a={}){return this.getClient().listSkills(a)}listPlugins(a={}){return this.getClient().listPlugins(a)}scanModels(a={}){return this.getClient().scanModels(a)}getConfig(a,b={}){return this.getClient().getConfig(a,b)}getConfigSchema(a={}){return this.getClient().getConfigSchema?.(a)??Promise.resolve(null)}lookupConfigSchema(a,b={}){return this.getClient().lookupConfigSchema?.(a,b)??Promise.resolve(null)}hasConfig(a,b={}){return this.getClient().hasConfig(a,b)}setConfig(a,b,c={}){return this.getClient().setConfig(a,b,c)}unsetConfig(a,b={}){return this.getClient().unsetConfig(a,b)}addAgent(a,b={}){return this.getClient().addAgent(a,b)}updateAgent(a,b={}){return this.getClient().updateAgent?.(a,b)??Promise.resolve({stdout:JSON.stringify({ok:!0,fallback:"application-config"}),stderr:""})}setAgentIdentity(a,b={}){return this.getClient().setAgentIdentity(a,b)}deleteAgent(a,b={}){return this.getClient().deleteAgent(a,b)}provisionAutomation(a,b={}){return this.getClient().provisionAutomation(a,b)}runAgentTurn(a,b={}){return this.getClient().runAgentTurn(a,b)}abortAgentTurn(a,b={}){let c=this.getClient();return c.abortAgentTurn?c.abortAgentTurn(a,b):c.call("chat.abort",{...a},b)}steerSession(a,b={}){let c=this.getClient();if(!c.steerSession)throw Error("Native OpenClaw Gateway is required for sessions.steer.");return c.steerSession(a,b)}injectChat(a,b={}){let c=this.getClient();if(!c.injectChat)throw Error("Native OpenClaw Gateway is required for chat.inject.");return c.injectChat(a,b)}streamAgentTurn(a,b={},c={}){return this.getClient().streamAgentTurn(a,b,c)}probeGateway(a={}){return this.getClient().probeGateway(a)}controlGateway(a,b={}){return this.getClient().controlGateway(a,b)}approveDeviceAccess(a={},b={}){return this.getClient().approveDeviceAccess(a,b)}call(a,b={},c={}){return this.getClient().call(a,b,c)}tailLogs(a={},b={}){let c=this.getClient();return c.tailLogs?.(a,b)??c.call("logs.tail",{...a},b)}listExecApprovals(a={},b={}){let c=this.getClient();return c.listExecApprovals?.(a,b)??c.call("exec.approval.list",{...a},b)}resolveExecApproval(a,b={}){let c=this.getClient();return c.resolveExecApproval?.(a,b)??c.call("exec.approval.resolve",{approvalId:a.approvalId,decision:a.decision,reason:a.reason??void 0},b)}getCronStatus(a={}){let b=this.getClient();return b.getCronStatus?.(a)??b.call("cron.status",{},a)}listCronJobs(a={},b={}){let c=this.getClient();return c.listCronJobs?.(a,b)??c.call("cron.list",{...a},b)}}let f=null;function g(){return f||(f=new e),f}},40218:()=>{},65493:(a,b,c)=>{"use strict";c.d(b,{$o:()=>e,Hi:()=>j,P5:()=>i,jW:()=>h,zS:()=>d});let d=[{id:"health",label:"Gateway health",methods:["health","status"]},{id:"modelAuthOrder",label:"Model auth order",methods:["models.authOrder.set","models.auth.order.set"]},{id:"logsTail",label:"Gateway logs",methods:["logs.tail"]},{id:"configSchemaLookup",label:"Config schema lookup",methods:["config.schema.lookup","config.schema"]},{id:"configPatch",label:"Config patch",methods:["config.patch","config.apply","config.set"]},{id:"sessionLifecycle",label:"Session lifecycle",methods:["sessions.create","sessions.patch","sessions.steer"]},{id:"agentCreate",label:"Agent creation",methods:["agents.create"]},{id:"agentUpdate",label:"Agent update",methods:["agents.update"]},{id:"agentIdentity",label:"Agent identity sync",methods:["agents.identity.set","agents.setIdentity","agents.set-identity"]},{id:"agentDelete",label:"Agent removal",methods:["agents.delete"]},{id:"missionDispatch",label:"Mission dispatch",methods:["chat.send","sessions.send"]},{id:"missionStream",label:"Mission event stream",methods:["sessions.subscribe","sessions.messages.subscribe"],events:["chat","agent","session.message","session.tool"]},{id:"chatControl",label:"Chat control",methods:["chat.abort","chat.inject"]},{id:"agentWait",label:"Agent wait",methods:["agent.wait"]},{id:"sessionHistory",label:"Session history",methods:["chat.history","sessions.preview","sessions.get","sessions.describe"]},{id:"taskEvents",label:"Task events",methods:["tasks.subscribe","tasks.get","tasks.list"],events:["task","task.updated","task.completed"]},{id:"taskCancel",label:"Task cancellation",methods:["tasks.cancel"]},{id:"artifacts",label:"Artifact sync",methods:["artifacts.list","artifacts.get","artifacts.download"],events:["artifact","artifact.updated"]},{id:"runtimeSnapshot",label:"Runtime snapshot",methods:["sessions.list","tasks.list"]},{id:"tools",label:"Tool catalog",methods:["tools.catalog","tools.effective","tools.invoke"]},{id:"execApprovals",label:"Execution approvals",methods:["exec.approval.list","exec.approval.get","exec.approval.resolve","exec.approvals.get","exec.approvals.set"]},{id:"devicePairList",label:"Device pairing list",methods:["device.pair.list","devices.list","gateway.devices.list"]},{id:"deviceApproval",label:"Device access repair",methods:["device.pair.approve","devices.approve","gateway.devices.approve"]},{id:"cronRead",label:"Automation status",methods:["cron.list","cron.status"]},{id:"channels",label:"Channel status",methods:["channels.status"]},{id:"channelLogs",label:"Channel logs",methods:["channels.logs"]},{id:"channelProvisioning",label:"Channel provisioning",methods:["channels.add","channels.create","channels.configure"]},{id:"channelRemoval",label:"Channel removal",methods:["channels.remove","channels.delete"]},{id:"gmailProvisioning",label:"Gmail webhook setup",methods:["webhooks.gmail.setup","gmail.setup"]},{id:"automationProvisioning",label:"Automation provisioning",methods:["cron.add","cron.create"]},{id:"skills",label:"Skill status",methods:["skills.status"]},{id:"updates",label:"Update status",methods:["update.status","update.run","status"]}],e=Array.from(new Set([...d.flatMap(a=>a.methods),"diagnostics.stability","models.list","models.authStatus","agents.list","agents.files.list","agents.files.get","agents.files.set","sessions.list","sessions.create","sessions.patch","sessions.steer","sessions.preview","sessions.get","sessions.resolve","sessions.abort","chat.history","chat.abort","chat.inject","agent.wait","tasks.cancel","config.get","channels.start","channels.stop","channels.logout","skills.search","skills.detail","skills.install","skills.update","plugins.uiDescriptors","exec.approval.request","exec.approval.waitDecision","plugin.approval.list","plugin.approval.resolve","environment.list","environment.get","environment.create","environment.update","environment.delete","gateway.restart.preflight","gateway.restart.request"])).sort(),f=new Map(d.map(a=>[a.id,a])),g=new Map(d.flatMap(a=>a.methods.map(b=>[b,a])));function h(a){let b=f.get(a);if(!b)throw Error(`Unknown OpenClaw Gateway compatibility operation: ${a}`);return b}function i(a){return h(a).methods}function j(a){return f.get(a)?.label??g.get(a)?.label??(a.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[._-]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,a=>a.toUpperCase())||"Gateway operation")}},78446:(a,b,c)=>{"use strict";c.d(b,{D:()=>f,t:()=>e});var d=c(96972);function e(a){if(!a||"object"!=typeof a)return"";let b="stdout"in a?g(a.stdout):"",c="stderr"in a?g(a.stderr):"",e="message"in a&&"string"==typeof a.message?a.message:"";return(0,d.bS)(`${e}
6
+ `)}},c);let j=await this.runAgentTurnNative(a,c);f=j.runId??null,(0,l.Z6)("streamAgentTurn"),this.clearNativeFailure("streamAgentTurn");let k=R(a,c),m=await Promise.race([i,new Promise(a=>globalThis.setTimeout(()=>a(null),k))]);if(m)return m;return await this.waitForAgentTurnNative(a,j,c)??j}catch(e){this.options.onNativeFailure?.(e,"streamAgentTurn");let d=e instanceof l.jl?e.method:"streamAgentTurn";if(!F(e,d,{safety:"mutation"}))throw this.cliFallbackDisabledError(d,e);return this.recordGatewayFallback("streamAgentTurn",e),this.fallback.streamAgentTurn(a,b,c)}finally{e?.close(),h(null)}}async runAgentTurnNative(a,b={}){let c=P(a.agentId,a.sessionId),d="number"==typeof a.timeoutSeconds&&Number.isFinite(a.timeoutSeconds)?Math.max(0,Math.floor(1e3*a.timeoutSeconds)):void 0,e=a.idempotencyKey?.trim()||a.dispatchId||(0,n.r_)();await this.prepareNativeSession(a,c,b);let f={sessionKey:c,sessionId:a.sessionId,message:a.message,thinking:a.thinking,timeoutMs:d,idempotencyKey:e};try{return await this.callNative("chat.send",f,b)}catch(d){if(!(0,A.lH)(d)){if(am(d,a.agentId)){let e=await this.checkGatewayAgentRegistry(a.agentId,b);if("present"===e)try{return await this.prepareNativeSession(a,c,b),await this.callNative("chat.send",f,b)}catch(b){if(am(b,a.agentId))throw an(a.agentId,b);throw b}if("missing"===e)throw an(a.agentId,d)}throw d}}return this.callNative("sessions.send",{agentId:a.agentId,key:c,message:a.message,thinking:a.thinking,timeoutMs:d,idempotencyKey:e},b)}async checkGatewayAgentRegistry(a,b){try{var c;let d,e=ac("agents.list",W,await this.callNative("agents.list",{},{...b,timeoutMs:5e3},{safety:"read",timeoutMs:5e3}));return(0,l.Z6)("agents.list"),this.clearNativeFailure("agents.list"),(c=e,(d=a.trim())&&(c.defaultId===d||c.mainKey===d||c.agents.some(a=>a.id===d)))?"present":"missing"}catch{return"unknown"}}async prepareNativeSession(a,b,c){if(a.sessionId||a.dispatchId){try{await this.callNative("sessions.create",{key:b,agentId:a.agentId},c,{safety:"mutation"}),(0,l.Z6)("sessions.create")}catch(a){if(!S(a))throw a}try{await this.callNative("sessions.patch",{key:b,metadata:{agentId:a.agentId,sessionId:a.sessionId??void 0,workspace:a.workspace??void 0,dispatchId:a.dispatchId??void 0,local:a.local??void 0,origin:a.dispatchId?"agentos-mission-dispatch":"agentos-direct-chat"}},c,{safety:"mutation"}),(0,l.Z6)("sessions.patch")}catch(a){if(!S(a))throw a}}}async waitForAgentTurnNative(a,b,c){if(!b.runId)return null;let d=R(a,c),e=P(a.agentId,a.sessionId);try{let f=await this.callNative("agent.wait",{runId:b.runId,sessionKey:e,sessionId:a.sessionId??void 0,timeoutMs:d},{...c,timeoutMs:d},{safety:"read",timeoutMs:d});return(0,l.Z6)("agent.wait"),f}catch(b){let a;if("unsupported"!==(a=(0,l.$g)(b).kind)&&"timeout"!==a&&"malformed-response"!==a)throw b;return null}}tailLogs(a={},b={}){return this.gatewayFirst("logs.tail",{...a},b,a=>(0,n.LK)(a)?a:{},()=>this.fallback.tailLogs?.(a,b)??this.fallback.call("logs.tail",{...a},b))}listExecApprovals(a={},b={}){return this.gatewayFirst("exec.approval.list",{...a},b,a=>(0,n.LK)(a)?a:{},()=>this.fallback.listExecApprovals?.(a,b)??this.fallback.call("exec.approval.list",{...a},b))}resolveExecApproval(a,b={}){return this.gatewayFirst("exec.approval.resolve",{approvalId:a.approvalId,decision:a.decision,reason:a.reason??void 0},b,a=>(0,n.LK)(a)?a:{},()=>this.fallback.resolveExecApproval?.(a,b)??this.fallback.call("exec.approval.resolve",{approvalId:a.approvalId,decision:a.decision,reason:a.reason??void 0},b))}getCronStatus(a={}){return this.gatewayFirst("cron.status",{},a,a=>(0,n.LK)(a)?a:{},()=>this.fallback.getCronStatus?.(a)??this.fallback.call("cron.status",{},a))}listCronJobs(a={},b={}){return this.gatewayFirst("cron.list",{...a},b,a=>(0,n.LK)(a)?a:{},()=>this.fallback.listCronJobs?.(a,b)??this.fallback.call("cron.list",{...a},b))}async subscribeRuntimeEvents(a,b,c={}){if(c.forceCli||this.options.forceCli||C())return this.fallback.subscribeRuntimeEvents(a,b,c);let d=[a.includeSessions,a.includeTasks,a.includeArtifacts,a.includeApprovals].some(a=>void 0!==a);try{let e=await this.subscribeNativeEvents({subscribeSessions:a.includeSessions??!d,subscribeTasks:a.includeTasks??(!!a.taskIds?.length||void 0),subscribeArtifacts:a.includeArtifacts,subscribeApprovals:a.includeApprovals,sessionKeys:a.sessionKeys,taskIds:a.taskIds,artifactIds:a.artifactIds},b,c);return(0,l.Z6)("runtime.subscribe"),this.clearNativeFailure("runtime.subscribe"),e}catch(d){if(this.options.onNativeFailure?.(d,"runtime.subscribe"),!F(d,"runtime.subscribe",{safety:"read",timeoutMs:c.timeoutMs}))throw this.cliFallbackDisabledError("runtime.subscribe",d);return this.recordGatewayFallback("runtime.subscribe",d),this.fallback.subscribeRuntimeEvents(a,b,c)}}async callNative(a,b={},c={},d=E(a,c)){let e=D(d.timeoutMs??c.timeoutMs??this.options.timeoutMs,a);return this.connection.request(a,b,c,e)}async probeNativeHandshake(a={}){let b=D(a.timeoutMs??this.options.timeoutMs,m.JV);return this.connection.probe(a,b)}async subscribeNativeEvents(a,b,c={}){let d=D(c.timeoutMs??this.options.timeoutMs,"sessions.subscribe");return this.connection.subscribe(a,b,c,d)}async gatewayFirstSessionHistory(a,b){if(this.options.forceCli||C())return this.fallback.getSessionHistory(a,b);let c=[["chat.history",function(a={}){return{sessionKey:Q(a).key,limit:a.limit,cursor:a.cursor??void 0}}(a)],["sessions.preview",function(a={}){let b=Q(a).key;return{key:b,sessionKey:b,sessionKeys:b?[b]:void 0,limit:a.limit,cursor:a.cursor??void 0}}(a)],["sessions.history",function(a={}){return{...Q(a),limit:a.limit,cursor:a.cursor??void 0}}(a)]],d=null;for(let[e,f]of c){let g=E(e,b);try{let a=ad(e,await this.callNative(e,f,b,g));for(let[a]of c)(0,l.Z6)(a),this.clearNativeFailure(a);return a}catch(c){if(this.options.onNativeFailure?.(c,e),(0,A.lH)(c)){d=c;continue}if(!F(c,e,g))throw this.cliFallbackDisabledError(e,c);return this.recordGatewayFallback(e,c),this.fallback.getSessionHistory(a,b)}}return this.recordGatewayFallback("chat.history",d??new l.As("OpenClaw Gateway does not advertise a compatible session history method.",{kind:"unsupported"})),this.fallback.getSessionHistory(a,b)}async gatewayFirstSessionExport(a,b){if(this.options.forceCli||C())return this.fallback.exportSession(a,b);let c=Q(a),d=[["sessions.get",c],["sessions.describe",c],["sessions.export",{...c,format:a.format}]],e=null;for(let[c,f]of d){let g=E(c,b);try{let e=ad(c,await this.callNative(c,f,b,g));for(let[a]of d)(0,l.Z6)(a),this.clearNativeFailure(a);return function(a,b){if("string"==typeof b.content)return{...b,format:a.format??("string"==typeof b.format?b.format:"json")};let c=a.format??"json";return{...b,format:c,session:b.session??b,content:"json"===c?JSON.stringify(b):void 0}}(a,e)}catch(d){if(this.options.onNativeFailure?.(d,c),(0,A.lH)(d)){e=d;continue}if(!F(d,c,g))throw this.cliFallbackDisabledError(c,d);return this.recordGatewayFallback(c,d),this.fallback.exportSession(a,b)}}return this.recordGatewayFallback("sessions.get",e??new l.As("OpenClaw Gateway does not advertise a compatible session export method.",{kind:"unsupported"})),this.fallback.exportSession(a,b)}async gatewayFirst(a,b,c,d,e,f=E(a,c)){if(this.options.forceCli||C())return e();try{let e=d(await this.callNative(a,b,c,f));return(0,l.Z6)(a),this.clearNativeFailure(a),e}catch(b){if(this.options.onNativeFailure?.(b,a),!F(b,a,f))throw this.cliFallbackDisabledError(a,b);return this.recordGatewayFallback(a,b),e()}}async gatewayFirstCompatible(a,b,c,d,f){if(this.options.forceCli||C())return f();let g=(0,e.P5)(a),h=null;for(let a of g){let e=E(a,c);try{let f=d(await this.callNative(a,b,c,e));for(let a of g)(0,l.Z6)(a),this.clearNativeFailure(a);return f}catch(b){if(this.options.onNativeFailure?.(b,a),(0,A.lH)(b)){h=b;continue}if(!F(b,a,e))throw this.cliFallbackDisabledError(a,b);return this.recordGatewayFallback(a,b),f()}}let i=g[0]??a;return this.recordGatewayFallback(i,h??new l.As(`OpenClaw Gateway does not advertise a compatible method for ${a}.`,{kind:"unsupported"})),f()}async gatewayConfigMutationFirst(a,b,c,d,e,g){if(this.options.forceCli||C())return g();if((0,n.FZ)(c))throw new l.pz("Refusing to write a redacted OpenClaw secret back to config.","auth");let h=(0,f.vC)(b);try{let g,h=ac("config.get",aa,await this.callNative("config.get",{},d,{safety:"read"})),i=(0,n.Pu)((0,n.LK)(h.config)?h.config:{});e(i);let j=await this.callNative("config.schema.lookup",{path:b},d,{safety:"read"}).catch(()=>this.callNative("config.schema",{},d,{safety:"read"})).catch(()=>null),k=(0,f.RE)(j),m="string"==typeof h.hash&&h.hash.trim()?h.hash:void 0,o=(0,f.LF)(b,"config.unset"===a?null:c),p={raw:JSON.stringify(o)};m&&(p.baseHash=m);let q="config.patch";try{g=await this.callNative("config.patch",p,d,{safety:"mutation"})}catch(a){if(!(0,A.lH)(a))throw a;try{let a={raw:JSON.stringify(i)};m&&(a.baseHash=m),g=await this.callNative("config.apply",a,d,{safety:"mutation"}),q="config.apply"}catch(c){if(!(0,A.lH)(c))throw c;if((0,n.FZ)(h.config))throw new l.pz("OpenClaw returned redacted secrets in the config snapshot; refusing full Gateway config overwrite.","auth",{cause:c});let b={raw:JSON.stringify(i)};m&&(b.baseHash=m);try{g=await this.callNative("config.set",b,d,{safety:"mutation"}),q="config.set"}catch(b){if(!(0,A.lH)(b))throw b;throw a}}}(0,l.Z6)(a),this.clearNativeFailure(a);let r={path:b,reloadKind:k,restartRequired:"restart"===k,hotReloaded:"hot"===k,appliedVia:q,...m?{baseHash:m}:{}};return(0,n.hz)((0,n.LK)(g)?{...g,configMutation:r}:{ok:!0,configMutation:r},{openClawConfig:r})}catch(d){this.options.onNativeFailure?.(d,a);let c=d instanceof l.jl?d.method:a;if(!(F(d,c,{safety:"mutation"})||(0,f.c0)(d,b)))throw this.cliFallbackDisabledError(c,d);return this.recordGatewayFallback(a,d),g()}finally{h&&this.close(`${a}:${b}`)}}}function am(a,b){let c=(0,l.$g)(a).message.replace(/\s+/g," ").trim();if(!c||!/\bagent\b/i.test(c)||!/\bnot found\b/i.test(c))return!1;let d=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return RegExp(`\\bagent\\s+["'\`]?${d}["'\`]?\\s+not\\s+found\\b`,"i").test(c)}function an(a,b){return new l.pz(`OpenClaw Gateway has not loaded agent "${a}" yet. Restart the Gateway or refresh AgentOS after OpenClaw finishes loading agents, then retry chat.`,"conflict",{cause:b})}function ao(a,b){if(!a)return!1;if(!b)return!0;let c=Date.parse(a),d=Date.parse(b);return!(Number.isFinite(c)&&Number.isFinite(d))||c>=d}function ap(a){return(0,n.LK)(a)?a:void 0}},38699:(a,b,c)=>{"use strict";c.d(b,{p:()=>l});var d=c(88366),e=c(78446),f=c(17929),g=c(24117);function h(a){let b=["agent","--agent",a.agentId];return a.sessionId&&b.push("--session-id",a.sessionId),a.local&&b.push("--local"),b.push("--message",a.message,"--thinking",a.thinking??"medium","--timeout",String(a.timeoutSeconds??45),"--json"),b}function i(a={}){let b,c,d=a.key?.trim()||a.sessionKey?.trim();if(d)return{key:d};let e=a.sessionId?.trim(),f=a.agentId?.trim();return{agentId:f||void 0,sessionId:e||void 0,key:f||e?(b=e?.trim(),c=f?.trim()||"main",b?`agent:${c}:explicit:${b}`:`agent:${c}:main`):void 0}}function j(a,b,c){var d;let e="number"==typeof(d=c)&&Number.isFinite(d)?String(d):"boolean"==typeof d?d?"true":"false":"string"==typeof d&&d.trim().length>0?d.trim():null;null!==e&&a.push(b,e)}function k(a){return"object"==typeof a&&null!==a}class l{getDiagnostics(){return{mode:"cli",gatewayMode:"cli-forced",statusLabel:"CLI fallback forced",recovery:"Unset the CLI-forced Gateway mode and restart AgentOS to use the native OpenClaw Gateway.",connectionState:"cli-forced",protocolVersion:null,protocolRange:g.aj,fallbackCounts:{},fallbackTotal:0,recentFallbackDiagnostics:[],lastNativeError:null,lastNativeFailureAt:null,lastConnectedAt:null,lastDisconnectedAt:null}}getHealth(a={}){return this.call("health",{},a)}getStatus(a={}){return(0,d.VP)(["status","--json"],a)}getUpdateStatus(a={}){return(0,d.VP)(["update","status","--json"],a)}getGatewayStatus(a={}){return(0,d.VP)(["gateway","status","--json"],a)}getModelStatus(a={}){return(0,d.VP)(["models","status","--json"],a)}getAgentModelStatus(a,b={}){return(0,d.VP)(["models","status","--agent",a.agentId,"--json"],b)}setModelAuthOrder(a,b={}){return(0,d.zB)(["models","auth","order","set","--provider",a.provider,"--agent",a.agentId,...a.profileIds],b)}async listAgents(a={}){return{agents:(await (0,d.VP)(["agents","list","--json"],a)).map(a=>({id:a.id,name:a.name,identity:{name:a.identityName,emoji:a.identityEmoji},workspace:a.workspace,model:a.model?{primary:a.model}:void 0}))}}listSessions(a={},b={}){return this.call("sessions.list",{...a},b)}describeSession(a={},b={}){return this.call("sessions.describe",{...i(a),includeMessages:a.includeMessages,limit:a.limit},b)}async getSessionHistory(a={},b={}){let c=null;for(let[d,e]of[["chat.history",function(a={}){return{sessionKey:i(a).key,limit:a.limit,cursor:a.cursor??void 0}}(a)],["sessions.preview",function(a={}){let b=i(a).key;return{key:b,sessionKey:b,sessionKeys:b?[b]:void 0,limit:a.limit,cursor:a.cursor??void 0}}(a)],["sessions.history",function(a={}){return{...i(a),limit:a.limit,cursor:a.cursor??void 0}}(a)]])try{return await this.call(d,e,b)}catch(a){c=a}throw c}async exportSession(a={},b={}){let c=null,d=i(a);for(let e of["sessions.get","sessions.describe","sessions.export"])try{let c=await this.call(e,"sessions.export"===e?{...d,format:a.format}:d,b);return function(a,b){if("string"==typeof b.content)return{...b,format:a.format??("string"==typeof b.format?b.format:"json")};let c=a.format??"json";return{...b,format:c,session:b.session??b,content:"json"===c?JSON.stringify(b):void 0}}(a,c)}catch(a){c=a}throw c}listTasks(a={},b={}){return this.call("tasks.list",{...a},b)}getTask(a,b={}){return this.call("tasks.get",{...a},b)}assignTask(a,b={}){return this.call("tasks.assign",{...a,reason:a.reason??void 0},b)}cancelTask(a,b={}){return this.call("tasks.cancel",{taskId:a.taskId,reason:a.reason??void 0},b)}listArtifacts(a={},b={}){return this.call("artifacts.list",function(a={}){return{taskId:a.taskId?.trim()||void 0,runId:a.runId?.trim()||void 0,sessionKey:a.sessionKey?.trim()||a.sessionId?.trim()||void 0}}(a),b)}getArtifact(a,b={}){return this.call("artifacts.get",{...a},b)}putArtifact(a,b={}){return this.call("artifacts.put",{...a},b)}deleteArtifact(a,b={}){return this.call("artifacts.delete",{artifactId:a.artifactId,reason:a.reason??void 0},b)}async getRuntimeSnapshot(a={},b={}){let c=!1!==a.includeSessions,d=!1!==a.includeTasks,e=!1!==a.includeArtifacts,f={taskId:a.taskId,runId:a.runId,sessionKey:a.sessionKey,sessionId:a.sessionId},g=e&&function(a={}){return!!(a.taskId?.trim()||a.runId?.trim()||a.sessionKey?.trim()||a.sessionId?.trim())}(f),h=await Promise.allSettled([c?this.listSessions({limit:a.limit,agentId:a.agentId},b):Promise.resolve(null),d?this.listTasks({limit:a.limit,agentId:a.agentId,workspace:a.workspace},b):Promise.resolve(null),g?this.listArtifacts(f,b):Promise.resolve(null)]),i=h.filter((a,b)=>[c,d,g][b]),j=i.filter(a=>"rejected"===a.status);if(i.length>0&&j.length===i.length)throw j[0]?.reason??Error("OpenClaw Gateway runtime snapshot failed.");let[k,l,m]=h,n={sessions:"fulfilled"===k.status?k.value?.sessions??[]:[],tasks:"fulfilled"===l.status?l.value?.tasks??[]:[],artifacts:"fulfilled"===m.status?m.value?.artifacts??[]:[]};return j.length>0&&(n.metadata={runtimeSnapshot:{partial:!0,errors:j.map(a=>{var b;return(b=a.reason)instanceof Error?b.message:String(b||"Unknown OpenClaw Gateway snapshot error.")})}}),n}getToolsCatalog(a={},b={}){return this.call("tools.catalog",{...a},b)}getEffectiveTools(a={},b={}){return this.call("tools.effective",{...a},b)}invokeTool(a,b={}){return this.call("tools.invoke",{...a},b)}async subscribeRuntimeEvents(a,b,c={}){throw Error("OpenClaw runtime event subscriptions require the native Gateway transport.")}getChannelStatus(a={},b={}){return this.call("channels.status",{...a},b)}getChannelLogs(a,b={}){let c=["channels","logs","--channel",a.channel,"--json"];return"number"==typeof a.lines&&Number.isFinite(a.lines)&&a.lines>0&&c.push("--lines",String(a.lines)),(0,d.VP)(c,b)}provisionChannelAccount(a,b={}){let c=["channels","add","--channel",a.channel];return j(c,"--account",a.account),j(c,"--token",a.token),j(c,"--bot-token",a.botToken),j(c,"--webhook-url",a.webhookUrl),j(c,"--name",a.name),(0,d.zB)(c,b)}removeChannelAccount(a,b={}){let c=["channels","remove","--channel",a.channel,"--account",a.account];return a.delete&&c.push("--delete"),(0,d.zB)(c,b)}setupGmailWebhook(a,b={}){var c,e,f;let g,h,i,l;return(0,d.zB)((g=a.config??{},h=["webhooks","gmail","setup","--account",a.account],i=k(g.serve)?g.serve:{},l=k(g.tailscale)?g.tailscale:{},j(h,"--project",g.project),j(h,"--topic",g.topic),j(h,"--subscription",g.subscription),j(h,"--label",g.label),j(h,"--hook-url",g.hookUrl),j(h,"--hook-token",g.hookToken),j(h,"--push-token",g.pushToken),j(h,"--bind",i.bind),j(h,"--port",i.port),j(h,"--path",i.path),c=h,e="--include-body",(!0===(f=g.includeBody)||"true"===f)&&c.push(e),j(h,"--max-bytes",g.maxBytes),j(h,"--renew-minutes",g.renewEveryMinutes),j(h,"--tailscale",l.mode),j(h,"--tailscale-path",l.path),j(h,"--tailscale-target",l.target),j(h,"--push-endpoint",g.pushEndpoint),h),b)}listSkills(a={}){let b=["skills","list"];return a.eligible&&b.push("--eligible"),b.push("--json"),(0,d.VP)(b,a)}listPlugins(a={}){return(0,d.VP)(["plugins","list","--json"],a)}listModels(a={},b={}){let c=["models","list"];return a.all&&c.push("--all"),c.push("--json"),a.provider&&c.push("--provider",a.provider),(0,d.VP)(c,b)}scanModels(a={}){let b=["models","scan","--json"];return a.yes&&b.push("--yes"),a.noInput&&b.push("--no-input"),a.noProbe&&b.push("--no-probe"),(0,d.VP)(b,a)}probeGateway(a={}){return(0,d.VP)(["gateway","probe","--json"],a)}controlGateway(a,b={}){let c=["gateway",a];return"restart"===a&&b.force&&c.push("--force"),c.push("--json"),(0,d.VP)(c,b)}async approveDeviceAccess(a={},b={}){if(!1!==a.latest&&!a.requestId){let c=function(a){let b=Array.isArray(a.pending)?a.pending:[],c=null;for(let a of b){if(!a||"object"!=typeof a)continue;let b="string"==typeof a.requestId&&a.requestId.trim()?a.requestId.trim():null;if(!b)continue;let d="number"==typeof a.ts&&Number.isFinite(a.ts)?a.ts:0;(!c||d>c.ts)&&(c={requestId:b,ts:d})}return c?.requestId??null}(await (0,d.VP)(["devices","list","--json"],b));if(!c)throw Error("No pending OpenClaw device access request found.");return this.approveDeviceAccess({...a,latest:!1,requestId:c},b)}let c=["devices","approve"];for(let b of(a.requestId&&c.push(a.requestId),a.scopes??[]))j(c,"--scope",b);return c.push("--json"),(0,d.VP)(c,b)}call(a,b={},c={}){return(0,d.VP)(["gateway","call",a,"--params",JSON.stringify(b),"--json"],c)}async getConfig(a,b={}){return(0,d.VP)(["config","get",a,"--json"],b).catch(()=>null)}async getConfigSchema(a={}){return this.call("config.schema",{},a).catch(()=>null)}async lookupConfigSchema(a,b={}){return this.call("config.schema.lookup",{path:a.path},b).catch(()=>null)}async hasConfig(a,b={}){try{return await (0,d.zB)(["config","get",a,"--json"],b),!0}catch(a){if((0,e.t)(a).includes("Config path not found"))return!1;throw a}}setConfig(a,b,c={}){if((0,f.FZ)(b))throw Error("Refusing to write a redacted OpenClaw secret back to config.");let e=["config","set",a,"string"==typeof b?b:JSON.stringify(b)];return c.strictJson&&e.push("--strict-json"),(0,d.zB)(e,c)}unsetConfig(a,b={}){return(0,d.zB)(["config","unset",a],b)}addAgent(a,b={}){let c=["agents","add",a.id,"--workspace",a.workspace,"--agent-dir",a.agentDir,"--non-interactive","--json"];return a.model&&c.push("--model",a.model),(0,d.zB)(c,b)}async updateAgent(a,b={}){return{stdout:JSON.stringify({ok:!0,fallback:"application-config"}),stderr:""}}setAgentIdentity(a,b={}){let c;return(0,d.zB)((j(c=["agents","set-identity","--agent",a.agentId,"--workspace",a.workspace,"--identity-file",a.identityFile,"--json"],"--name",a.name),j(c,"--emoji",a.emoji),j(c,"--theme",a.theme),j(c,"--avatar",a.avatar),c),b)}deleteAgent(a,b={}){return(0,d.zB)(["agents","delete",a,"--force","--json"],b)}provisionAutomation(a,b={}){let c;return(0,d.zB)((c=["cron","add","--name",a.name,"--description",a.description||a.name,"--agent",a.agentId,"--message",a.message,"--thinking",a.thinking||"medium","--timeout-seconds",String(a.timeoutSeconds??120),"--json"],"every"===a.schedule.kind?c.push("--every",a.schedule.value):c.push("--cron",a.schedule.value),a.announce?.channel&&(c.push("--announce","--channel",a.announce.channel),j(c,"--to",a.announce.target)),c),b)}runAgentTurn(a,b={}){return(0,d.VP)(h(a),b)}abortAgentTurn(a,b={}){return this.call("chat.abort",{runId:a.runId??void 0,sessionId:a.sessionId??void 0,agentId:a.agentId??void 0,reason:a.reason??void 0},b)}async steerSession(a,b={}){throw Error("Native OpenClaw Gateway is required for sessions.steer.")}async injectChat(a,b={}){throw Error("Native OpenClaw Gateway is required for chat.inject.")}streamAgentTurn(a,b={},c={}){return(0,d.JZ)(h(a),{...c,...b})}tailLogs(a={},b={}){return this.call("logs.tail",{...a},b)}listExecApprovals(a={},b={}){return this.call("exec.approval.list",{...a},b)}resolveExecApproval(a,b={}){return this.call("exec.approval.resolve",{approvalId:a.approvalId,decision:a.decision,reason:a.reason??void 0},b)}getCronStatus(a={}){return this.call("cron.status",{},a)}listCronJobs(a={},b={}){return this.call("cron.list",{...a},b)}}},39503:(a,b,c)=>{"use strict";c.d(b,{rw:()=>g});var d=c(7565);class e{constructor(a=d.Xz){this.getClient=a}getHealth(a={}){return this.getClient().getHealth(a)}getStatus(a={}){return this.getClient().getStatus(a)}getUpdateStatus(a={}){return this.getClient().getUpdateStatus(a)}getGatewayStatus(a={}){return this.getClient().getGatewayStatus(a)}getModelStatus(a={}){return this.getClient().getModelStatus(a)}getAgentModelStatus(a,b={}){return this.getClient().getAgentModelStatus(a,b)}setModelAuthOrder(a,b={}){return this.getClient().setModelAuthOrder(a,b)}listAgents(a={}){return this.getClient().listAgents(a)}listSessions(a={},b={}){return this.getClient().listSessions(a,b)}describeSession(a={},b={}){return this.getClient().describeSession(a,b)}getSessionHistory(a={},b={}){return this.getClient().getSessionHistory(a,b)}exportSession(a={},b={}){return this.getClient().exportSession(a,b)}listTasks(a={},b={}){return this.getClient().listTasks(a,b)}getTask(a,b={}){return this.getClient().getTask(a,b)}assignTask(a,b={}){return this.getClient().assignTask(a,b)}cancelTask(a,b={}){return this.getClient().cancelTask(a,b)}listArtifacts(a={},b={}){return this.getClient().listArtifacts(a,b)}getArtifact(a,b={}){return this.getClient().getArtifact(a,b)}putArtifact(a,b={}){return this.getClient().putArtifact(a,b)}deleteArtifact(a,b={}){return this.getClient().deleteArtifact(a,b)}getRuntimeSnapshot(a={},b={}){return this.getClient().getRuntimeSnapshot(a,b)}getToolsCatalog(a={},b={}){return this.getClient().getToolsCatalog(a,b)}getEffectiveTools(a={},b={}){return this.getClient().getEffectiveTools(a,b)}invokeTool(a,b={}){return this.getClient().invokeTool(a,b)}subscribeRuntimeEvents(a,b,c={}){return this.getClient().subscribeRuntimeEvents(a,b,c)}getChannelStatus(a={},b={}){return this.getClient().getChannelStatus(a,b)}getChannelLogs(a,b={}){return this.getClient().getChannelLogs(a,b)}provisionChannelAccount(a,b={}){return this.getClient().provisionChannelAccount(a,b)}removeChannelAccount(a,b={}){return this.getClient().removeChannelAccount(a,b)}setupGmailWebhook(a,b={}){return this.getClient().setupGmailWebhook(a,b)}listModels(a={},b={}){return this.getClient().listModels(a,b)}listSkills(a={}){return this.getClient().listSkills(a)}listPlugins(a={}){return this.getClient().listPlugins(a)}scanModels(a={}){return this.getClient().scanModels(a)}getConfig(a,b={}){return this.getClient().getConfig(a,b)}getConfigSchema(a={}){return this.getClient().getConfigSchema?.(a)??Promise.resolve(null)}lookupConfigSchema(a,b={}){return this.getClient().lookupConfigSchema?.(a,b)??Promise.resolve(null)}hasConfig(a,b={}){return this.getClient().hasConfig(a,b)}setConfig(a,b,c={}){return this.getClient().setConfig(a,b,c)}unsetConfig(a,b={}){return this.getClient().unsetConfig(a,b)}addAgent(a,b={}){return this.getClient().addAgent(a,b)}updateAgent(a,b={}){return this.getClient().updateAgent?.(a,b)??Promise.resolve({stdout:JSON.stringify({ok:!0,fallback:"application-config"}),stderr:""})}setAgentIdentity(a,b={}){return this.getClient().setAgentIdentity(a,b)}deleteAgent(a,b={}){return this.getClient().deleteAgent(a,b)}provisionAutomation(a,b={}){return this.getClient().provisionAutomation(a,b)}runAgentTurn(a,b={}){return this.getClient().runAgentTurn(a,b)}abortAgentTurn(a,b={}){let c=this.getClient();return c.abortAgentTurn?c.abortAgentTurn(a,b):c.call("chat.abort",{...a},b)}steerSession(a,b={}){let c=this.getClient();if(!c.steerSession)throw Error("Native OpenClaw Gateway is required for sessions.steer.");return c.steerSession(a,b)}injectChat(a,b={}){let c=this.getClient();if(!c.injectChat)throw Error("Native OpenClaw Gateway is required for chat.inject.");return c.injectChat(a,b)}streamAgentTurn(a,b={},c={}){return this.getClient().streamAgentTurn(a,b,c)}probeGateway(a={}){return this.getClient().probeGateway(a)}controlGateway(a,b={}){return this.getClient().controlGateway(a,b)}approveDeviceAccess(a={},b={}){return this.getClient().approveDeviceAccess(a,b)}call(a,b={},c={}){return this.getClient().call(a,b,c)}tailLogs(a={},b={}){let c=this.getClient();return c.tailLogs?.(a,b)??c.call("logs.tail",{...a},b)}listExecApprovals(a={},b={}){let c=this.getClient();return c.listExecApprovals?.(a,b)??c.call("exec.approval.list",{...a},b)}resolveExecApproval(a,b={}){let c=this.getClient();return c.resolveExecApproval?.(a,b)??c.call("exec.approval.resolve",{approvalId:a.approvalId,decision:a.decision,reason:a.reason??void 0},b)}getCronStatus(a={}){let b=this.getClient();return b.getCronStatus?.(a)??b.call("cron.status",{},a)}listCronJobs(a={},b={}){let c=this.getClient();return c.listCronJobs?.(a,b)??c.call("cron.list",{...a},b)}}let f=null;function g(){return f||(f=new e),f}},40218:()=>{},65493:(a,b,c)=>{"use strict";c.d(b,{$o:()=>e,Hi:()=>j,P5:()=>i,jW:()=>h,zS:()=>d});let d=[{id:"health",label:"Gateway health",methods:["health","status"]},{id:"modelAuthOrder",label:"Model auth order",methods:["models.authOrder.set","models.auth.order.set"]},{id:"logsTail",label:"Gateway logs",methods:["logs.tail"]},{id:"configSchemaLookup",label:"Config schema lookup",methods:["config.schema.lookup","config.schema"]},{id:"configPatch",label:"Config patch",methods:["config.patch","config.apply","config.set"]},{id:"sessionLifecycle",label:"Session lifecycle",methods:["sessions.create","sessions.patch","sessions.steer"]},{id:"agentCreate",label:"Agent creation",methods:["agents.create"]},{id:"agentUpdate",label:"Agent update",methods:["agents.update"]},{id:"agentIdentity",label:"Agent identity sync",methods:["agents.identity.set","agents.setIdentity","agents.set-identity"]},{id:"agentDelete",label:"Agent removal",methods:["agents.delete"]},{id:"missionDispatch",label:"Mission dispatch",methods:["chat.send","sessions.send"]},{id:"missionStream",label:"Mission event stream",methods:["sessions.subscribe","sessions.messages.subscribe"],events:["chat","agent","session.message","session.tool"]},{id:"chatControl",label:"Chat control",methods:["chat.abort","chat.inject"]},{id:"agentWait",label:"Agent wait",methods:["agent.wait"]},{id:"sessionHistory",label:"Session history",methods:["chat.history","sessions.preview","sessions.get","sessions.describe"]},{id:"taskEvents",label:"Task events",methods:["tasks.subscribe","tasks.get","tasks.list"],events:["task","task.updated","task.completed"]},{id:"taskCancel",label:"Task cancellation",methods:["tasks.cancel"]},{id:"artifacts",label:"Artifact sync",methods:["artifacts.list","artifacts.get","artifacts.download"],events:["artifact","artifact.updated"]},{id:"runtimeSnapshot",label:"Runtime snapshot",methods:["sessions.list","tasks.list"]},{id:"tools",label:"Tool catalog",methods:["tools.catalog","tools.effective","tools.invoke"]},{id:"execApprovals",label:"Execution approvals",methods:["exec.approval.list","exec.approval.get","exec.approval.resolve","exec.approvals.get","exec.approvals.set"]},{id:"devicePairList",label:"Device pairing list",methods:["device.pair.list","devices.list","gateway.devices.list"]},{id:"deviceApproval",label:"Device access repair",methods:["device.pair.approve","devices.approve","gateway.devices.approve"]},{id:"cronRead",label:"Automation status",methods:["cron.list","cron.status"]},{id:"channels",label:"Channel status",methods:["channels.status"]},{id:"channelLogs",label:"Channel logs",methods:["channels.logs"]},{id:"channelProvisioning",label:"Channel provisioning",methods:["channels.add","channels.create","channels.configure"]},{id:"channelRemoval",label:"Channel removal",methods:["channels.remove","channels.delete"]},{id:"gmailProvisioning",label:"Gmail webhook setup",methods:["webhooks.gmail.setup","gmail.setup"]},{id:"automationProvisioning",label:"Automation provisioning",methods:["cron.add","cron.create"]},{id:"skills",label:"Skill status",methods:["skills.status"]},{id:"updates",label:"Update status",methods:["update.status","update.run","status"]}],e=Array.from(new Set([...d.flatMap(a=>a.methods),"diagnostics.stability","models.list","models.authStatus","agents.list","agents.files.list","agents.files.get","agents.files.set","sessions.list","sessions.create","sessions.patch","sessions.steer","sessions.preview","sessions.get","sessions.resolve","sessions.abort","chat.history","chat.abort","chat.inject","agent.wait","tasks.cancel","config.get","channels.start","channels.stop","channels.logout","skills.search","skills.detail","skills.install","skills.update","plugins.uiDescriptors","exec.approval.request","exec.approval.waitDecision","plugin.approval.list","plugin.approval.resolve","environment.list","environment.get","environment.create","environment.update","environment.delete","gateway.restart.preflight","gateway.restart.request"])).sort(),f=new Map(d.map(a=>[a.id,a])),g=new Map(d.flatMap(a=>a.methods.map(b=>[b,a])));function h(a){let b=f.get(a);if(!b)throw Error(`Unknown OpenClaw Gateway compatibility operation: ${a}`);return b}function i(a){return h(a).methods}function j(a){return f.get(a)?.label??g.get(a)?.label??(a.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[._-]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,a=>a.toUpperCase())||"Gateway operation")}},78446:(a,b,c)=>{"use strict";c.d(b,{D:()=>f,t:()=>e});var d=c(96972);function e(a){if(!a||"object"!=typeof a)return"";let b="stdout"in a?g(a.stdout):"",c="stderr"in a?g(a.stderr):"",e="message"in a&&"string"==typeof a.message?a.message:"";return(0,d.bS)(`${e}
7
7
  ${b}
8
8
  ${c}`)}function f(a){let b=e(a),c=a instanceof Error?a.message:"",d=`${b}
9
9
  ${c}`;return/OpenClaw config is invalid/i.test(d)||/Invalid config at .*openclaw\.json/i.test(d)||/Status, health, logs, and doctor commands still run with invalid config/i.test(d)}function g(a){return"string"==typeof a?a:a instanceof Uint8Array?Buffer.from(a).toString():""}},79102:(a,b,c)=>{"use strict";c.d(b,{$k:()=>m,MK:()=>j,lH:()=>l,pP:()=>i,qi:()=>k,sq:()=>g});var d=c(24117),e=c(98717),f=c(17929);function g(a,b){let c=[];for(let d of(!1!==a.subscribeSessions&&h(b,"sessions.subscribe")&&c.push({method:"sessions.subscribe",params:{}}),Array.isArray(a.sessionKeys)?a.sessionKeys.filter(a=>"string"==typeof a&&a.trim().length>0):[]))h(b,"sessions.messages.subscribe")&&c.push({method:"sessions.messages.subscribe",params:{key:d.trim()}});let d=Array.isArray(a.taskIds)?a.taskIds.filter(a=>"string"==typeof a&&a.trim().length>0):[];return(!0===a.subscribeTasks||d.length>0)&&h(b,"tasks.subscribe")&&c.push({method:"tasks.subscribe",params:d.length>0?{taskIds:d.map(a=>a.trim())}:{}}),c}function h(a,b){if(b===d.JV)return!0;let c=Array.isArray(a?.features?.methods)?a.features.methods.filter(a=>"string"==typeof a&&a.trim().length>0):[];return 0===c.length||c.includes(b)}function i(a,b){let c=Array.isArray(a?.features?.events)?a.features.events.filter(a=>"string"==typeof a&&a.trim().length>0):[];return 0===c.length||c.includes(b)}function j(a){if(!a||"object"!=typeof a)throw new e.As("OpenClaw Gateway connect response was malformed.",{kind:"malformed-response"});let b=a.protocol;if("number"==typeof b&&Number.isFinite(b)&&(b<d.lY||b>d.ZX))throw new e.As(`OpenClaw Gateway protocol ${b} is outside AgentOS' supported range ${d.lY}-${d.ZX}.`,{kind:"protocol-mismatch"})}function k(a,b){if(!h(a,b))throw new e.As(`OpenClaw Gateway does not advertise method "${b}".`,{kind:"unsupported"})}function l(a){return"unsupported"===(0,e.$g)(a).kind}function m(a){let b=Array.isArray(a.pending)?a.pending:[],c=null;for(let a of b){if(!(0,f.LK)(a))continue;let b=(0,f.yK)(a.requestId);if(!b)continue;let d="number"==typeof a.ts&&Number.isFinite(a.ts)?a.ts:0;(!c||d>c.ts)&&(c={requestId:b,ts:d})}return c?.requestId??null}},80500:(a,b,c)=>{"use strict";c.d(b,{LF:()=>f,RE:()=>g,S4:()=>k,_v:()=>j,c0:()=>i,vC:()=>h});var d=c(98717),e=c(17929);function f(a,b){let c=(0,e.nf)(a);if(0===c.length)throw new d.pz("Config path is required.","unknown");if(c.some(a=>"number"==typeof a))throw new d.pz("Gateway config.patch merge updates do not support array-index paths; using CLI config fallback.","unsupported");let f={},g=f;for(let a=0;a<c.length;a+=1){let d=c[a];if(a===c.length-1){g[d]=b;break}let e={};g[d]=e,g=e}return f}function g(a){let b=new Set,c=[a];for(;c.length>0;){let a=c.shift();if(!(!a||b.has(a))){if(b.add(a),(0,e.LK)(a)){let b=function(a){if("string"!=typeof a)return"unknown";let b=a.trim().toLowerCase();return"restart"===b||"hot"===b||"none"===b?b:"unknown"}(a.reloadKind??a.reload??a.reload_kind??a.reloadPolicy??a.reloadRequirement);if("unknown"!==b)return b;c.push(a.schema,a.hint,a.node,a.config);continue}Array.isArray(a)&&c.push(...a)}}return"unknown"}function h(a){return/^(gateway\.(remote\.(url|token|password)|auth\.(mode|token|password))|gateway\.mode)$/.test(a)}function i(a,b){let c=(0,d.$g)(a).kind;return!!h(b)&&("auth"===c||"timeout"===c||"unreachable"===c)&&(!(a instanceof d.jl)||!/^config\.(patch|apply|set|unset)$/i.test(a.method))}function j(a){let b=a instanceof Error?a.message:String(a??"");return/(^|[^a-z])rate limit(?:ed)?\b|retry after|too many requests|HTTP\s*429/i.test(b)&&(!(a instanceof d.jl)||/^config\.(get|schema|patch|apply|set|unset)$/i.test(a.method))}function k(a){if(!j(a))return null;let b=(a instanceof Error?a.message:String(a??"")).match(/retry after\s+(\d+(?:\.\d+)?)\s*(ms|msec|millisecond(?:s)?|s|sec|second(?:s)?|m|min|minute(?:s)?)?/i);if(!b)return null;let c=Number(b[1]);if(!Number.isFinite(c)||c<0)return null;let d=b[2]?.toLowerCase()??"s";return"ms"===d||"msec"===d||d.startsWith("millisecond")?Math.round(c):"m"===d||"min"===d||d.startsWith("minute")?Math.round(6e4*c):Math.round(1e3*c)}},88366:(a,b,c)=>{"use strict";c.d(b,{JZ:()=>s,T5:()=>y,VP:()=>p,Vg:()=>u,XP:()=>w,YP:()=>t,gg:()=>v,ik:()=>r,o_:()=>x,zB:()=>o});var d=c(31421),e=c(97411),f=c(15292),g=c(96972);process.env.OPENCLAW_BIN;let h=process.env.OPENCLAW_BIN?.trim()||"",i="",j=null,k=null,l=/^[A-Za-z0-9_./:@=+%-]+$/,m=0,n=[];async function o(a,b={}){return q(a,b)}async function p(a,b={}){try{let c=await o(a,b);return z(c.stdout||c.stderr)}catch(b){let a=A(b);if(a)try{return z(a.stdout||a.stderr)}catch{}throw b}}async function q(a,b={}){let c=await w();return new Promise((e,f)=>{let g=Date.now(),h=new Date(g).toISOString(),i=`openclaw:${g}:${m++}`,j=(0,d.spawn)(c,a,{detached:!0,env:{...process.env}}),k="",l="",n=!1,o=!1,p=!1,q=Promise.resolve(),r=null,s=(a,b)=>{a&&b&&(q=q.then(()=>a(b)).catch(()=>{}))},t=a=>{n||(n=!0,q.finally(a))},u=a=>{if(j.pid)try{process.kill(-j.pid,a)}catch{j.kill(a)}else j.kill(a);"SIGTERM"!==a||r||(r=setTimeout(()=>{if(!n)if(j.pid)try{process.kill(-j.pid,"SIGKILL")}catch{j.kill("SIGKILL")}else j.kill("SIGKILL")},2e3))},v=setTimeout(()=>{o=!0,u("SIGTERM")},b.timeoutMs??45e3),w=()=>{p=!0,u("SIGTERM")};b.signal&&(b.signal.aborted?w():b.signal.addEventListener("abort",w));let x=()=>{clearTimeout(v),r&&(clearTimeout(r),r=null),b.signal&&b.signal.removeEventListener("abort",w)};j.stdout.on("data",a=>{let c=a.toString();k+=c,s(b.onStdout,c)}),j.stderr.on("data",a=>{let c=a.toString();l+=c,s(b.onStderr,c)}),j.on("error",b=>{x(),t(()=>{D({id:i,command:c,args:a,startedAt:h,startedAtMs:g,status:"start-error",exitCode:null,stdout:k,stderr:l?`${l}