@sapienx/agentos 0.5.6 → 0.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/bin/agentos.js +113 -2
  2. package/bin/terminal-boot.js +380 -76
  3. package/bundle/.next/BUILD_ID +1 -1
  4. package/bundle/.next/app-path-routes-manifest.json +16 -9
  5. package/bundle/.next/build-manifest.json +6 -6
  6. package/bundle/.next/prerender-manifest.json +3 -3
  7. package/bundle/.next/react-loadable-manifest.json +4 -4
  8. package/bundle/.next/required-server-files.json +1 -1
  9. package/bundle/.next/routes-manifest.json +44 -0
  10. package/bundle/.next/server/app/_global-error/page.js +2 -2
  11. package/bundle/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/bundle/.next/server/app/_global-error.html +1 -1
  13. package/bundle/.next/server/app/_global-error.rsc +4 -4
  14. package/bundle/.next/server/app/_global-error.segments/_full.segment.rsc +4 -4
  15. package/bundle/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  16. package/bundle/.next/server/app/_global-error.segments/_global-error.segment.rsc +3 -3
  17. package/bundle/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  18. package/bundle/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  19. package/bundle/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/bundle/.next/server/app/_not-found/page.js +2 -2
  21. package/bundle/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  22. package/bundle/.next/server/app/_not-found.html +1 -1
  23. package/bundle/.next/server/app/_not-found.rsc +7 -7
  24. package/bundle/.next/server/app/_not-found.segments/_full.segment.rsc +7 -7
  25. package/bundle/.next/server/app/_not-found.segments/_head.segment.rsc +2 -2
  26. package/bundle/.next/server/app/_not-found.segments/_index.segment.rsc +5 -5
  27. package/bundle/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  28. package/bundle/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  29. package/bundle/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  30. package/bundle/.next/server/app/agents/page.js +2 -0
  31. package/bundle/.next/server/app/agents/page.js.nft.json +1 -0
  32. package/bundle/.next/server/app/agents/page_client-reference-manifest.js +1 -0
  33. package/bundle/.next/server/app/api/agents/[agentId]/chat/route.js +4 -4
  34. package/bundle/.next/server/app/api/agents/[agentId]/chat/route.js.nft.json +1 -1
  35. package/bundle/.next/server/app/api/agents/route.js +1 -1
  36. package/bundle/.next/server/app/api/agents/route.js.nft.json +1 -1
  37. package/bundle/.next/server/app/api/diagnostics/route.js +1 -1
  38. package/bundle/.next/server/app/api/diagnostics/route.js.nft.json +1 -1
  39. package/bundle/.next/server/app/api/files/reveal/route.js +1 -1
  40. package/bundle/.next/server/app/api/gateway/control/route.js +1 -1
  41. package/bundle/.next/server/app/api/gateway/control/route.js.nft.json +1 -1
  42. package/bundle/.next/server/app/api/integrations/[integrationId]/status/route.js +1 -0
  43. package/bundle/.next/server/app/api/integrations/[integrationId]/status/route.js.nft.json +1 -0
  44. package/bundle/.next/server/app/api/integrations/[integrationId]/status/route_client-reference-manifest.js +1 -0
  45. package/bundle/.next/server/app/api/mission/route.js +1 -1
  46. package/bundle/.next/server/app/api/mission/route.js.nft.json +1 -1
  47. package/bundle/.next/server/app/api/models/catalog/route.js +2 -2
  48. package/bundle/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
  49. package/bundle/.next/server/app/api/models/providers/route.js +2 -2
  50. package/bundle/.next/server/app/api/models/providers/route.js.nft.json +1 -1
  51. package/bundle/.next/server/app/api/onboarding/models/route.js +3 -3
  52. package/bundle/.next/server/app/api/onboarding/models/route.js.nft.json +1 -1
  53. package/bundle/.next/server/app/api/onboarding/route.js +2 -2
  54. package/bundle/.next/server/app/api/onboarding/route.js.nft.json +1 -1
  55. package/bundle/.next/server/app/api/openclaw/capabilities/route.js +1 -1
  56. package/bundle/.next/server/app/api/openclaw/capabilities/route.js.nft.json +1 -1
  57. package/bundle/.next/server/app/api/openclaw/compatibility-smoke/route.js +1 -0
  58. package/bundle/.next/server/app/api/openclaw/compatibility-smoke/route.js.nft.json +1 -0
  59. package/bundle/.next/server/app/api/openclaw/compatibility-smoke/route_client-reference-manifest.js +1 -0
  60. package/bundle/.next/server/app/api/planner/[planId]/deploy/route.js +2 -2
  61. package/bundle/.next/server/app/api/planner/[planId]/deploy/route.js.nft.json +1 -1
  62. package/bundle/.next/server/app/api/planner/[planId]/document-rewrite/route.js +1 -1
  63. package/bundle/.next/server/app/api/planner/[planId]/document-rewrite/route.js.nft.json +1 -1
  64. package/bundle/.next/server/app/api/planner/[planId]/route.js +1 -1
  65. package/bundle/.next/server/app/api/planner/[planId]/route.js.nft.json +1 -1
  66. package/bundle/.next/server/app/api/planner/[planId]/simulate/route.js +1 -1
  67. package/bundle/.next/server/app/api/planner/[planId]/simulate/route.js.nft.json +1 -1
  68. package/bundle/.next/server/app/api/planner/[planId]/turn/route.js +1 -1
  69. package/bundle/.next/server/app/api/planner/[planId]/turn/route.js.nft.json +1 -1
  70. package/bundle/.next/server/app/api/planner/route.js +1 -1
  71. package/bundle/.next/server/app/api/planner/route.js.nft.json +1 -1
  72. package/bundle/.next/server/app/api/reset/route.js +2 -2
  73. package/bundle/.next/server/app/api/reset/route.js.nft.json +1 -1
  74. package/bundle/.next/server/app/api/runtimes/[runtimeId]/route.js +1 -1
  75. package/bundle/.next/server/app/api/runtimes/[runtimeId]/route.js.nft.json +1 -1
  76. package/bundle/.next/server/app/api/settings/gateway/route.js +1 -1
  77. package/bundle/.next/server/app/api/settings/gateway/route.js.nft.json +1 -1
  78. package/bundle/.next/server/app/api/settings/openclaw-binary/route.js +1 -1
  79. package/bundle/.next/server/app/api/settings/openclaw-binary/route.js.nft.json +1 -1
  80. package/bundle/.next/server/app/api/settings/workspace-root/route.js +1 -1
  81. package/bundle/.next/server/app/api/settings/workspace-root/route.js.nft.json +1 -1
  82. package/bundle/.next/server/app/api/snapshot/route.js +1 -1
  83. package/bundle/.next/server/app/api/snapshot/route.js.nft.json +1 -1
  84. package/bundle/.next/server/app/api/stream/route.js +2 -2
  85. package/bundle/.next/server/app/api/stream/route.js.nft.json +1 -1
  86. package/bundle/.next/server/app/api/system/open-terminal/route.js +1 -1
  87. package/bundle/.next/server/app/api/tasks/[taskId]/abort/route.js +1 -1
  88. package/bundle/.next/server/app/api/tasks/[taskId]/abort/route.js.nft.json +1 -1
  89. package/bundle/.next/server/app/api/tasks/[taskId]/control/route.js +1 -1
  90. package/bundle/.next/server/app/api/tasks/[taskId]/control/route.js.nft.json +1 -1
  91. package/bundle/.next/server/app/api/tasks/[taskId]/stream/route.js +2 -2
  92. package/bundle/.next/server/app/api/tasks/[taskId]/stream/route.js.nft.json +1 -1
  93. package/bundle/.next/server/app/api/update/route.js +2 -2
  94. package/bundle/.next/server/app/api/update/route.js.nft.json +1 -1
  95. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/discovered-groups/route.js +1 -1
  96. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/discovered-groups/route.js.nft.json +1 -1
  97. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/route.js +1 -1
  98. package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/route.js.nft.json +1 -1
  99. package/bundle/.next/server/app/api/workspaces/[workspaceId]/edit-draft/route.js +1 -1
  100. package/bundle/.next/server/app/api/workspaces/[workspaceId]/edit-draft/route.js.nft.json +1 -1
  101. package/bundle/.next/server/app/api/workspaces/[workspaceId]/files/route.js +1 -1
  102. package/bundle/.next/server/app/api/workspaces/[workspaceId]/files/route.js.nft.json +1 -1
  103. package/bundle/.next/server/app/api/workspaces/[workspaceId]/surfaces/discovery/route.js +1 -1
  104. package/bundle/.next/server/app/api/workspaces/[workspaceId]/surfaces/discovery/route.js.nft.json +1 -1
  105. package/bundle/.next/server/app/api/workspaces/route.js +2 -2
  106. package/bundle/.next/server/app/api/workspaces/route.js.nft.json +1 -1
  107. package/bundle/.next/server/app/files/page.js +2 -0
  108. package/bundle/.next/server/app/files/page.js.nft.json +1 -0
  109. package/bundle/.next/server/app/files/page_client-reference-manifest.js +1 -0
  110. package/bundle/.next/server/app/integrations/page.js +2 -0
  111. package/bundle/.next/server/app/integrations/page.js.nft.json +1 -0
  112. package/bundle/.next/server/app/integrations/page_client-reference-manifest.js +1 -0
  113. package/bundle/.next/server/app/models/page.js +2 -0
  114. package/bundle/.next/server/app/models/page.js.nft.json +1 -0
  115. package/bundle/.next/server/app/models/page_client-reference-manifest.js +1 -0
  116. package/bundle/.next/server/app/page.js +2 -2
  117. package/bundle/.next/server/app/page.js.nft.json +1 -1
  118. package/bundle/.next/server/app/page_client-reference-manifest.js +1 -1
  119. package/bundle/.next/server/app/settings/page.js +2 -2
  120. package/bundle/.next/server/app/settings/page.js.nft.json +1 -1
  121. package/bundle/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  122. package/bundle/.next/server/app/tasks/page.js +2 -0
  123. package/bundle/.next/server/app/tasks/page.js.nft.json +1 -0
  124. package/bundle/.next/server/app/tasks/page_client-reference-manifest.js +1 -0
  125. package/bundle/.next/server/app-paths-manifest.json +16 -9
  126. package/bundle/.next/server/chunks/1718.js +4 -0
  127. package/bundle/.next/server/chunks/4391.js +198 -0
  128. package/bundle/.next/server/chunks/4466.js +9 -0
  129. package/bundle/.next/server/chunks/4767.js +1 -4
  130. package/bundle/.next/server/chunks/4983.js +1 -0
  131. package/bundle/.next/server/chunks/5151.js +15 -5
  132. package/bundle/.next/server/chunks/6476.js +13 -0
  133. package/bundle/.next/server/chunks/7396.js +7 -0
  134. package/bundle/.next/server/chunks/8621.js +1 -0
  135. package/bundle/.next/server/chunks/8849.js +1 -0
  136. package/bundle/.next/server/functions-config-manifest.json +2 -0
  137. package/bundle/.next/server/middleware-build-manifest.js +1 -1
  138. package/bundle/.next/server/middleware-react-loadable-manifest.js +1 -1
  139. package/bundle/.next/server/pages/404.html +1 -1
  140. package/bundle/.next/server/pages/500.html +1 -1
  141. package/bundle/.next/server/server-reference-manifest.json +1 -1
  142. package/bundle/.next/static/JwIu-FqrfB4Nerk5vBqR2/_buildManifest.js +1 -0
  143. package/bundle/.next/static/chunks/1994.2c1ce6369c0b31aa.js +1 -0
  144. package/bundle/.next/static/chunks/2083-7a341dd360f54c8b.js +1 -0
  145. package/bundle/.next/static/chunks/2396-395f5ed99e66819d.js +1 -0
  146. package/bundle/.next/static/chunks/2842.b8d0551fd4d397d4.js +1 -0
  147. package/bundle/.next/static/chunks/331-518938b9d1e94c9c.js +1 -0
  148. package/bundle/.next/static/chunks/3315-597211dffe007157.js +7 -0
  149. package/bundle/.next/static/chunks/4424-805347abcfa4dab9.js +32 -0
  150. package/bundle/.next/static/chunks/4a846800.ef93163f41628d6f.js +1 -0
  151. package/bundle/.next/static/chunks/6276-fdd5e81abda749e8.js +9 -0
  152. package/bundle/.next/static/chunks/7442-5ed5b8f501838da4.js +198 -0
  153. package/bundle/.next/static/chunks/8583-7994af81ac8b7330.js +1 -0
  154. package/bundle/.next/static/chunks/app/_global-error/page-8443c62570b9a078.js +1 -0
  155. package/bundle/.next/static/chunks/app/_not-found/page-8443c62570b9a078.js +1 -0
  156. package/bundle/.next/static/chunks/app/agents/page-a48b3909fe8cc49b.js +1 -0
  157. package/bundle/.next/static/chunks/app/api/agents/[agentId]/chat/route-8443c62570b9a078.js +1 -0
  158. package/bundle/.next/static/chunks/app/api/agents/route-8443c62570b9a078.js +1 -0
  159. package/bundle/.next/static/chunks/app/api/diagnostics/route-8443c62570b9a078.js +1 -0
  160. package/bundle/.next/static/chunks/app/api/files/reveal/route-8443c62570b9a078.js +1 -0
  161. package/bundle/.next/static/chunks/app/api/gateway/control/route-8443c62570b9a078.js +1 -0
  162. package/bundle/.next/static/chunks/app/api/integrations/[integrationId]/status/route-8443c62570b9a078.js +1 -0
  163. package/bundle/.next/static/chunks/app/api/mission/route-8443c62570b9a078.js +1 -0
  164. package/bundle/.next/static/chunks/app/api/models/catalog/route-8443c62570b9a078.js +1 -0
  165. package/bundle/.next/static/chunks/app/api/models/providers/route-8443c62570b9a078.js +1 -0
  166. package/bundle/.next/static/chunks/app/api/onboarding/models/route-8443c62570b9a078.js +1 -0
  167. package/bundle/.next/static/chunks/app/api/onboarding/route-8443c62570b9a078.js +1 -0
  168. package/bundle/.next/static/chunks/app/api/openclaw/capabilities/route-8443c62570b9a078.js +1 -0
  169. package/bundle/.next/static/chunks/app/api/openclaw/compatibility-smoke/route-8443c62570b9a078.js +1 -0
  170. package/bundle/.next/static/chunks/app/api/planner/[planId]/deploy/route-8443c62570b9a078.js +1 -0
  171. package/bundle/.next/static/chunks/app/api/planner/[planId]/document-rewrite/route-8443c62570b9a078.js +1 -0
  172. package/bundle/.next/static/chunks/app/api/planner/[planId]/route-8443c62570b9a078.js +1 -0
  173. package/bundle/.next/static/chunks/app/api/planner/[planId]/simulate/route-8443c62570b9a078.js +1 -0
  174. package/bundle/.next/static/chunks/app/api/planner/[planId]/turn/route-8443c62570b9a078.js +1 -0
  175. package/bundle/.next/static/chunks/app/api/planner/route-8443c62570b9a078.js +1 -0
  176. package/bundle/.next/static/chunks/app/api/reset/route-8443c62570b9a078.js +1 -0
  177. package/bundle/.next/static/chunks/app/api/runtimes/[runtimeId]/route-8443c62570b9a078.js +1 -0
  178. package/bundle/.next/static/chunks/app/api/settings/gateway/route-8443c62570b9a078.js +1 -0
  179. package/bundle/.next/static/chunks/app/api/settings/openclaw-binary/route-8443c62570b9a078.js +1 -0
  180. package/bundle/.next/static/chunks/app/api/settings/workspace-root/route-8443c62570b9a078.js +1 -0
  181. package/bundle/.next/static/chunks/app/api/snapshot/route-8443c62570b9a078.js +1 -0
  182. package/bundle/.next/static/chunks/app/api/stream/route-8443c62570b9a078.js +1 -0
  183. package/bundle/.next/static/chunks/app/api/system/open-terminal/route-8443c62570b9a078.js +1 -0
  184. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/abort/route-8443c62570b9a078.js +1 -0
  185. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/control/route-8443c62570b9a078.js +1 -0
  186. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/stream/route-8443c62570b9a078.js +1 -0
  187. package/bundle/.next/static/chunks/app/api/update/route-8443c62570b9a078.js +1 -0
  188. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/discovered-groups/route-8443c62570b9a078.js +1 -0
  189. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/route-8443c62570b9a078.js +1 -0
  190. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/edit-draft/route-8443c62570b9a078.js +1 -0
  191. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/files/route-8443c62570b9a078.js +1 -0
  192. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/surfaces/discovery/route-8443c62570b9a078.js +1 -0
  193. package/bundle/.next/static/chunks/app/api/workspaces/route-8443c62570b9a078.js +1 -0
  194. package/bundle/.next/static/chunks/app/files/page-a0e2fdb9c72008d3.js +1 -0
  195. package/bundle/.next/static/chunks/app/integrations/page-fbeb03fb416b56e4.js +1 -0
  196. package/bundle/.next/static/chunks/app/layout-a58705d0aa0318d2.js +1 -0
  197. package/bundle/.next/static/chunks/app/models/page-a22fedc08112e7a0.js +1 -0
  198. package/bundle/.next/static/chunks/app/not-found-8443c62570b9a078.js +1 -0
  199. package/bundle/.next/static/chunks/app/page-4f990fddc5f18dcf.js +1 -0
  200. package/bundle/.next/static/chunks/app/settings/page-28f1484e79b1be1f.js +1 -0
  201. package/bundle/.next/static/chunks/app/tasks/page-89536b0bec007ced.js +1 -0
  202. package/bundle/.next/static/chunks/d08e407b-86b21ef93cdf4fa3.js +1 -0
  203. package/bundle/.next/static/chunks/f6503f1c-1272160a304f8b44.js +1 -0
  204. package/bundle/.next/static/chunks/framework-840804a6e17cee72.js +1 -0
  205. package/bundle/.next/static/chunks/main-529ff68c072bfd3e.js +5 -0
  206. package/bundle/.next/static/chunks/main-app-70892a7dc1723083.js +1 -0
  207. package/bundle/.next/static/chunks/next/dist/client/components/builtin/app-error-8443c62570b9a078.js +1 -0
  208. package/bundle/.next/static/chunks/next/dist/client/components/builtin/forbidden-8443c62570b9a078.js +1 -0
  209. package/bundle/.next/static/chunks/next/dist/client/components/builtin/global-error-307c6fd9c934218d.js +1 -0
  210. package/bundle/.next/static/chunks/next/dist/client/components/builtin/unauthorized-8443c62570b9a078.js +1 -0
  211. package/bundle/.next/static/chunks/{webpack-49728cc9bb386219.js → webpack-1e021d6850c9ac01.js} +1 -1
  212. package/bundle/.next/static/css/288b13e5308447b9.css +3 -0
  213. package/bundle/server.js +1 -1
  214. package/package.json +1 -1
  215. package/bundle/.next/server/chunks/6639.js +0 -13
  216. package/bundle/.next/server/chunks/7125.js +0 -188
  217. package/bundle/.next/server/chunks/8155.js +0 -15
  218. package/bundle/.next/static/chunks/1994.af8e615920391b12.js +0 -1
  219. package/bundle/.next/static/chunks/2798.05bb8e435bca457c.js +0 -1
  220. package/bundle/.next/static/chunks/3254-31132332d1368b3c.js +0 -15
  221. package/bundle/.next/static/chunks/4424-08671f25c8f9ae84.js +0 -32
  222. package/bundle/.next/static/chunks/4a846800.17bbc9efb621dbb7.js +0 -1
  223. package/bundle/.next/static/chunks/7442-e148a49efcfa2d32.js +0 -188
  224. package/bundle/.next/static/chunks/8583-0efb0aa0937b762c.js +0 -1
  225. package/bundle/.next/static/chunks/app/_global-error/page-a39fe5a18111b91d.js +0 -1
  226. package/bundle/.next/static/chunks/app/_not-found/page-a39fe5a18111b91d.js +0 -1
  227. package/bundle/.next/static/chunks/app/api/agents/[agentId]/chat/route-a39fe5a18111b91d.js +0 -1
  228. package/bundle/.next/static/chunks/app/api/agents/route-a39fe5a18111b91d.js +0 -1
  229. package/bundle/.next/static/chunks/app/api/diagnostics/route-a39fe5a18111b91d.js +0 -1
  230. package/bundle/.next/static/chunks/app/api/files/reveal/route-a39fe5a18111b91d.js +0 -1
  231. package/bundle/.next/static/chunks/app/api/gateway/control/route-a39fe5a18111b91d.js +0 -1
  232. package/bundle/.next/static/chunks/app/api/mission/route-a39fe5a18111b91d.js +0 -1
  233. package/bundle/.next/static/chunks/app/api/models/catalog/route-a39fe5a18111b91d.js +0 -1
  234. package/bundle/.next/static/chunks/app/api/models/providers/route-a39fe5a18111b91d.js +0 -1
  235. package/bundle/.next/static/chunks/app/api/onboarding/models/route-a39fe5a18111b91d.js +0 -1
  236. package/bundle/.next/static/chunks/app/api/onboarding/route-a39fe5a18111b91d.js +0 -1
  237. package/bundle/.next/static/chunks/app/api/openclaw/capabilities/route-a39fe5a18111b91d.js +0 -1
  238. package/bundle/.next/static/chunks/app/api/planner/[planId]/deploy/route-a39fe5a18111b91d.js +0 -1
  239. package/bundle/.next/static/chunks/app/api/planner/[planId]/document-rewrite/route-a39fe5a18111b91d.js +0 -1
  240. package/bundle/.next/static/chunks/app/api/planner/[planId]/route-a39fe5a18111b91d.js +0 -1
  241. package/bundle/.next/static/chunks/app/api/planner/[planId]/simulate/route-a39fe5a18111b91d.js +0 -1
  242. package/bundle/.next/static/chunks/app/api/planner/[planId]/turn/route-a39fe5a18111b91d.js +0 -1
  243. package/bundle/.next/static/chunks/app/api/planner/route-a39fe5a18111b91d.js +0 -1
  244. package/bundle/.next/static/chunks/app/api/reset/route-a39fe5a18111b91d.js +0 -1
  245. package/bundle/.next/static/chunks/app/api/runtimes/[runtimeId]/route-a39fe5a18111b91d.js +0 -1
  246. package/bundle/.next/static/chunks/app/api/settings/gateway/route-a39fe5a18111b91d.js +0 -1
  247. package/bundle/.next/static/chunks/app/api/settings/openclaw-binary/route-a39fe5a18111b91d.js +0 -1
  248. package/bundle/.next/static/chunks/app/api/settings/workspace-root/route-a39fe5a18111b91d.js +0 -1
  249. package/bundle/.next/static/chunks/app/api/snapshot/route-a39fe5a18111b91d.js +0 -1
  250. package/bundle/.next/static/chunks/app/api/stream/route-a39fe5a18111b91d.js +0 -1
  251. package/bundle/.next/static/chunks/app/api/system/open-terminal/route-a39fe5a18111b91d.js +0 -1
  252. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/abort/route-a39fe5a18111b91d.js +0 -1
  253. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/control/route-a39fe5a18111b91d.js +0 -1
  254. package/bundle/.next/static/chunks/app/api/tasks/[taskId]/stream/route-a39fe5a18111b91d.js +0 -1
  255. package/bundle/.next/static/chunks/app/api/update/route-a39fe5a18111b91d.js +0 -1
  256. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/discovered-groups/route-a39fe5a18111b91d.js +0 -1
  257. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/route-a39fe5a18111b91d.js +0 -1
  258. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/edit-draft/route-a39fe5a18111b91d.js +0 -1
  259. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/files/route-a39fe5a18111b91d.js +0 -1
  260. package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/surfaces/discovery/route-a39fe5a18111b91d.js +0 -1
  261. package/bundle/.next/static/chunks/app/api/workspaces/route-a39fe5a18111b91d.js +0 -1
  262. package/bundle/.next/static/chunks/app/layout-7c2d7e515f68248b.js +0 -1
  263. package/bundle/.next/static/chunks/app/not-found-a39fe5a18111b91d.js +0 -1
  264. package/bundle/.next/static/chunks/app/page-9bd535a80e3968e2.js +0 -1
  265. package/bundle/.next/static/chunks/app/settings/page-3794e22c77091d4b.js +0 -1
  266. package/bundle/.next/static/chunks/d08e407b-a7a2691dd8d9de6b.js +0 -1
  267. package/bundle/.next/static/chunks/f6503f1c-7df4e7c4564148dc.js +0 -1
  268. package/bundle/.next/static/chunks/framework-c8a5f18418cd0e86.js +0 -1
  269. package/bundle/.next/static/chunks/main-2c126219b824eed3.js +0 -5
  270. package/bundle/.next/static/chunks/main-app-9a4481b0ab7b57f6.js +0 -1
  271. package/bundle/.next/static/chunks/next/dist/client/components/builtin/app-error-a39fe5a18111b91d.js +0 -1
  272. package/bundle/.next/static/chunks/next/dist/client/components/builtin/forbidden-a39fe5a18111b91d.js +0 -1
  273. package/bundle/.next/static/chunks/next/dist/client/components/builtin/global-error-38aa72b47d0b8f99.js +0 -1
  274. package/bundle/.next/static/chunks/next/dist/client/components/builtin/unauthorized-a39fe5a18111b91d.js +0 -1
  275. package/bundle/.next/static/css/7b10ac9fa66d7c17.css +0 -3
  276. package/bundle/.next/static/ujFbMZ9arxb7I3_g4GzfY/_buildManifest.js +0 -1
  277. /package/bundle/.next/static/{ujFbMZ9arxb7I3_g4GzfY → JwIu-FqrfB4Nerk5vBqR2}/_ssgManifest.js +0 -0
@@ -1,39 +1,63 @@
1
1
  import readline from "node:readline";
2
2
 
3
- export const AGENTOS_BOOT_HEADER = ` █████╗ ██████╗ ███████╗███╗ ██╗████████╗ ██████╗ ███████╗
4
- ██╔══██╗██╔════╝ ██╔════╝████╗ ██║╚══██╔══╝██╔═══██╗██╔════╝
5
- ███████║██║ ███╗█████╗ ██╔██╗ ██║ ██║ ██║ ██║███████╗
6
- ██╔══██║██║ ██║██╔══╝ ██║╚██╗██║ ██║ ██║ ██║╚════██║
7
- ██║ ██║╚██████╔╝███████╗██║ ╚████║ ██║ ╚██████╔╝███████║
8
- ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚═════╝ ╚══════╝`;
3
+ const LARGE_AGENT_WORDMARK = [
4
+ " █████╗ ██████╗ ███████╗███╗ ██╗████████╗",
5
+ "██╔══██╗██╔════╝ ██╔════╝████╗ ██║╚══██╔══╝",
6
+ "███████║██║ ███╗█████╗ ██╔██╗ ██║ ██║ ",
7
+ "██╔══██║██║ ██║██╔══╝ ██║╚██╗██║ ██║ ",
8
+ "██║ ██║╚██████╔╝███████╗██║ ╚████║ ██║ ",
9
+ "╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ "
10
+ ];
11
+
12
+ const LARGE_OS_WORDMARK = [
13
+ " ██████╗ ███████╗",
14
+ "██╔═══██╗██╔════╝",
15
+ "██║ ██║███████╗",
16
+ "██║ ██║╚════██║",
17
+ "╚██████╔╝███████║",
18
+ " ╚═════╝ ╚══════╝"
19
+ ];
20
+
21
+ export const AGENTOS_BOOT_HEADER = LARGE_AGENT_WORDMARK
22
+ .map((line, index) => `${line} ${LARGE_OS_WORDMARK[index]}`)
23
+ .join("\n");
9
24
 
10
25
  export const TERMINAL_THEME = {
11
- primaryCyan: "#36D7E8",
12
- softCyan: "#8BE9FD",
26
+ neonRed: "#FF1744",
27
+ softRed: "#FF5A6D",
28
+ deepRed: "#6E0A17",
13
29
  successGreen: "#39D353",
14
- warningAmber: "#D7BA2F",
15
- dangerRed: "#FF5C5C",
30
+ warningAmber: "#FFD166",
31
+ dangerRed: "#FF3B3B",
16
32
  mutedGray: "#8B949E",
17
33
  textWhite: "#F0F6FC",
18
- dividerGray: "#30363D"
34
+ brightWhite: "#FFFFFF",
35
+ dividerGray: "#4A121B"
19
36
  };
20
37
 
21
- const BOOT_TAGLINE = "Built on OpenClaw · Human operating layer for AI agents";
22
- const COMPACT_HEADER = "AgentOS · Built on OpenClaw";
38
+ const HEADER_TITLE = "AGENTOS CONTROL ROOM";
39
+ const BOOT_PRIMARY_LINE = "Built on OpenClaw";
40
+ const BOOT_SECONDARY_LINE = "Human operating layer for AI agents";
41
+ const BOOT_TAGLINE = `${BOOT_PRIMARY_LINE} · ${BOOT_SECONDARY_LINE}`;
23
42
  const MEDIUM_HEADER_MIN_COLUMNS = 48;
24
43
  const LARGE_HEADER_MIN_COLUMNS = 82;
25
- const MEDIUM_WORDMARK = [
26
- "▄▀█ █▀▀ █▀▀ █▄░█ ▀█▀ █▀█ █▀",
27
- "█▀█ █▄█ ██▄ █░▀█ █ █▄█ ▄█"
44
+ const DASHBOARD_MIN_COLUMNS = 56;
45
+ const MEDIUM_AGENT_WORDMARK = [
46
+ "▄▀█ █▀▀ █▀▀ █▄░█ ▀█▀",
47
+ "█▀█ █▄█ ██▄ █░▀█ █ "
48
+ ];
49
+ const MEDIUM_OS_WORDMARK = [
50
+ " █▀█ █▀",
51
+ " █▄█ ▄█"
28
52
  ];
29
53
 
30
54
  const STATE_META = {
31
- checking: { label: "CHECKING", color: "primary", symbol: "…", ascii: "..." },
55
+ checking: { label: "CHECKING", color: "brand", symbol: "…", ascii: "..." },
32
56
  waiting: { label: "WAITING", color: "muted", symbol: "…", ascii: "..." },
33
- loading: { label: "LOADING", color: "primary", symbol: "…", ascii: "..." },
34
- starting: { label: "STARTING", color: "primary", symbol: "…", ascii: "..." },
35
- resolving: { label: "RESOLVING", color: "primary", symbol: "…", ascii: "..." },
36
- preparing: { label: "PREPARING", color: "primary", symbol: "…", ascii: "..." },
57
+ loading: { label: "LOADING", color: "brand", symbol: "…", ascii: "..." },
58
+ starting: { label: "STARTING", color: "brand", symbol: "…", ascii: "..." },
59
+ resolving: { label: "RESOLVING", color: "brand", symbol: "…", ascii: "..." },
60
+ preparing: { label: "PREPARING", color: "brand", symbol: "…", ascii: "..." },
37
61
  connected: { label: "CONNECTED", color: "success", symbol: "✓", ascii: "OK" },
38
62
  active: { label: "ACTIVE", color: "success", symbol: "✓", ascii: "OK" },
39
63
  ready: { label: "READY", color: "success", symbol: "✓", ascii: "OK" },
@@ -44,6 +68,7 @@ const STATE_META = {
44
68
  failed: { label: "FAILED", color: "danger", symbol: "✕", ascii: "x" },
45
69
  unreachable: { label: "UNREACHABLE", color: "danger", symbol: "✕", ascii: "x" },
46
70
  broken: { label: "BROKEN", color: "danger", symbol: "✕", ascii: "x" },
71
+ error: { label: "ERROR", color: "danger", symbol: "✕", ascii: "x" },
47
72
  disabled: { label: "DISABLED", color: "muted", symbol: "–", ascii: "-" },
48
73
  skipped: { label: "SKIPPED", color: "muted", symbol: "–", ascii: "-" },
49
74
  inactive: { label: "INACTIVE", color: "muted", symbol: "–", ascii: "-" },
@@ -65,17 +90,17 @@ const STATUS_ROWS = [
65
90
  ];
66
91
 
67
92
  const UNICODE_FRAMES = [
68
- "Workspace ▣──◆──▢ Agent ▢────▣ Channel",
69
- "Workspace ▣────▣ Agent ▢──◆──▢ Channel",
70
- "Workspace ▢────▣ Agent ▣──◆──▢ Channel",
71
- "Workspace ▢──◆──▢ Agent ▣────▣ Channel"
93
+ "OpenClaw Gateway ▰▱▱ AgentOS Runtime ▱▱▱ Local UI",
94
+ "OpenClaw Gateway ▰▰▱ AgentOS Runtime ▰▱▱ Local UI",
95
+ "OpenClaw Gateway ▰▰▰ AgentOS Runtime ▰▰▱ Local UI",
96
+ "OpenClaw Gateway ▰▰▰ AgentOS Runtime ▰▰▰ Local UI"
72
97
  ];
73
98
 
74
99
  const ASCII_FRAMES = [
75
- "Workspace [#]--<>--[ ] Agent [ ]----[#] Channel",
76
- "Workspace [#]----[#] Agent [ ]--<>--[ ] Channel",
77
- "Workspace [ ]----[#] Agent [#]--<>--[ ] Channel",
78
- "Workspace [ ]--<>--[ ] Agent [#]----[#] Channel"
100
+ "OpenClaw Gateway [#--] AgentOS Runtime [---] Local UI",
101
+ "OpenClaw Gateway [##-] AgentOS Runtime [#--] Local UI",
102
+ "OpenClaw Gateway [###] AgentOS Runtime [##-] Local UI",
103
+ "OpenClaw Gateway [###] AgentOS Runtime [###] Local UI"
79
104
  ];
80
105
 
81
106
  export function createTerminalBoot(options = {}) {
@@ -155,7 +180,8 @@ export function renderBootFrame(options = {}) {
155
180
  color,
156
181
  columns,
157
182
  compact,
158
- large
183
+ large,
184
+ unicode
159
185
  }));
160
186
 
161
187
  lines.push("");
@@ -188,7 +214,8 @@ export function renderStatusDashboard(options = {}) {
188
214
  color,
189
215
  columns,
190
216
  compact: !unicode || columns < MEDIUM_HEADER_MIN_COLUMNS,
191
- large: unicode && columns >= LARGE_HEADER_MIN_COLUMNS
217
+ large: unicode && columns >= LARGE_HEADER_MIN_COLUMNS,
218
+ unicode
192
219
  }));
193
220
  lines.push("");
194
221
  }
@@ -203,7 +230,12 @@ export function renderStatusDashboard(options = {}) {
203
230
 
204
231
  if (options.finalInfo) {
205
232
  lines.push("");
206
- lines.push(color.bold(color.success(`AgentOS ready · ${options.finalInfo}`)));
233
+ lines.push(...renderReadyBlock({
234
+ color,
235
+ columns,
236
+ finalInfo: options.finalInfo,
237
+ unicode
238
+ }));
207
239
  } else if (options.footer) {
208
240
  lines.push("");
209
241
  lines.push(color.muted(options.footer));
@@ -223,7 +255,7 @@ export function renderDoctorReport(options = {}) {
223
255
 
224
256
  lines.push(color.bold(color.primary(options.title || "AGENTOS DOCTOR")));
225
257
  lines.push(color.muted(truncate(options.subtitle || BOOT_TAGLINE, columns)));
226
- lines.push(color.divider(divider(columns)));
258
+ lines.push(color.divider(divider(columns, unicode)));
227
259
  lines.push(...formatStatusRows(rows, {
228
260
  color,
229
261
  columns,
@@ -231,7 +263,7 @@ export function renderDoctorReport(options = {}) {
231
263
  }));
232
264
 
233
265
  if (options.footer) {
234
- lines.push(color.divider(divider(columns)));
266
+ lines.push(color.divider(divider(columns, unicode)));
235
267
  lines.push(color.muted(truncate(options.footer, columns)));
236
268
  }
237
269
 
@@ -420,13 +452,62 @@ function normalizeRows(rows = []) {
420
452
 
421
453
  function renderStatusSection(options) {
422
454
  const title = options.title || "SYSTEM CHECK";
455
+ const columns = normalizeColumns(options.columns);
456
+
457
+ if (columns < DASHBOARD_MIN_COLUMNS) {
458
+ return renderCompactStatusSection({
459
+ ...options,
460
+ title,
461
+ columns
462
+ });
463
+ }
464
+
465
+ const width = panelWidth(columns);
466
+ const innerWidth = width - 4;
467
+ const rows = options.rows;
468
+ const labelWidth = Math.min(23, Math.max(17, ...rows.map((row) => row.label.length)));
469
+ const badgeWidth = 15;
470
+ const detailWidth = Math.max(8, innerWidth - labelWidth - badgeWidth - 4);
423
471
  const lines = [
424
- options.color.bold(options.color.text(title)),
425
- options.color.divider(divider(options.columns))
472
+ renderBorder({
473
+ color: options.color,
474
+ title,
475
+ unicode: options.unicode,
476
+ width,
477
+ edge: "top"
478
+ }),
479
+ boxLine(formatDashboardHeader({
480
+ badgeWidth,
481
+ color: options.color,
482
+ detailWidth,
483
+ labelWidth
484
+ }), {
485
+ color: options.color,
486
+ unicode: options.unicode,
487
+ width
488
+ }),
489
+ renderBorder({
490
+ color: options.color,
491
+ unicode: options.unicode,
492
+ width,
493
+ edge: "middle"
494
+ })
426
495
  ];
427
496
 
428
- lines.push(...formatStatusRows(options.rows, options));
429
- lines.push(options.color.divider(divider(options.columns)));
497
+ lines.push(...rows.map((row) => formatDashboardRow(row, {
498
+ badgeWidth,
499
+ color: options.color,
500
+ detailWidth,
501
+ labelWidth,
502
+ unicode: options.unicode,
503
+ width
504
+ })));
505
+ lines.push(renderBorder({
506
+ color: options.color,
507
+ unicode: options.unicode,
508
+ width,
509
+ edge: "bottom"
510
+ }));
430
511
 
431
512
  return lines;
432
513
  }
@@ -461,18 +542,16 @@ function formatStatusRow(row, options) {
461
542
  }
462
543
 
463
544
  function renderMediumHeader(options) {
464
- const available = Math.max(0, options.columns - 4);
545
+ return MEDIUM_AGENT_WORDMARK.map((line, index) => {
546
+ const agent = options.color.bold(options.color.text(line));
547
+ const os = options.color.bold(options.color.brand(MEDIUM_OS_WORDMARK[index]));
465
548
 
466
- return [
467
- ...MEDIUM_WORDMARK.map((line) => ` ${options.color.bold(options.color.primary(line))}`),
468
- ` ${options.color.muted(truncate(BOOT_TAGLINE, available))}`,
469
- ` ${options.color.divider(divider(Math.min(available, 72)))}`
470
- ];
549
+ return `${options.color.dim(options.color.brand("▌"))} ${agent}${os}`;
550
+ });
471
551
  }
472
552
 
473
553
  function renderCompleteFrame(options) {
474
554
  const lines = [""];
475
- const message = options.finalInfo ? `AgentOS ready · ${options.finalInfo}` : "AgentOS ready";
476
555
 
477
556
  lines.push(...renderHeaderLines(options));
478
557
  lines.push("");
@@ -484,64 +563,108 @@ function renderCompleteFrame(options) {
484
563
  unicode: options.unicode
485
564
  }));
486
565
  lines.push("");
487
- lines.push(options.color.bold(options.color.success(message)));
566
+ lines.push(...renderReadyBlock({
567
+ color: options.color,
568
+ columns: options.columns,
569
+ finalInfo: options.finalInfo,
570
+ unicode: options.unicode
571
+ }));
488
572
 
489
573
  return lines.join("\n");
490
574
  }
491
575
 
492
576
  function renderHeaderLines(options) {
493
- if (options.compact) {
494
- return [
495
- options.color.bold(options.color.primary(COMPACT_HEADER)),
496
- options.color.divider(divider(options.columns))
497
- ];
577
+ const width = panelWidth(options.columns);
578
+ const lines = [
579
+ renderBorder({
580
+ color: options.color,
581
+ title: HEADER_TITLE,
582
+ unicode: options.unicode,
583
+ width,
584
+ edge: "top"
585
+ })
586
+ ];
587
+ const logoLines = options.compact
588
+ ? [formatCompactHeader(options.color)]
589
+ : options.large
590
+ ? renderLargeHeader(options)
591
+ : renderMediumHeader(options);
592
+
593
+ for (const line of logoLines) {
594
+ lines.push(boxLine(line, {
595
+ color: options.color,
596
+ unicode: options.unicode,
597
+ width
598
+ }));
498
599
  }
499
600
 
500
- if (options.large) {
501
- return [
502
- ...AGENTOS_BOOT_HEADER.split("\n").map((line, index) => options.color.gradient(line, index)),
503
- options.color.muted(BOOT_TAGLINE),
504
- options.color.divider(divider(options.columns))
505
- ];
506
- }
601
+ lines.push(boxLine("", {
602
+ color: options.color,
603
+ unicode: options.unicode,
604
+ width
605
+ }));
606
+ lines.push(boxLine(options.color.text(BOOT_PRIMARY_LINE), {
607
+ color: options.color,
608
+ unicode: options.unicode,
609
+ width
610
+ }));
611
+ lines.push(boxLine(options.color.muted(BOOT_SECONDARY_LINE), {
612
+ color: options.color,
613
+ unicode: options.unicode,
614
+ width
615
+ }));
616
+ lines.push(renderBorder({
617
+ color: options.color,
618
+ unicode: options.unicode,
619
+ width,
620
+ edge: "bottom"
621
+ }));
507
622
 
508
- return renderMediumHeader(options);
623
+ return lines;
509
624
  }
510
625
 
511
626
  function createColor(enabled) {
512
- const wrap = (code, value) => enabled ? `\u001B[${code}m${value}\u001B[0m` : value;
627
+ const ansi = (codes, value) => enabled ? `\u001B[${codes}m${value}\u001B[0m` : value;
628
+ const rgbCode = (value) => {
629
+ const [red, green, blue] = parseHex(value);
630
+ return `38;2;${red};${green};${blue}`;
631
+ };
513
632
  const hex = (value, text) => {
514
633
  if (!enabled) {
515
634
  return text;
516
635
  }
517
636
 
518
- const [red, green, blue] = parseHex(value);
519
- return `\u001B[38;2;${red};${green};${blue}m${text}\u001B[0m`;
637
+ return ansi(rgbCode(value), text);
520
638
  };
521
639
 
522
640
  return {
523
- bold: (value) => wrap("1", value),
524
- dim: (value) => wrap("2", value),
525
- primary: (value) => hex(TERMINAL_THEME.primaryCyan, value),
526
- soft: (value) => hex(TERMINAL_THEME.softCyan, value),
641
+ bold: (value) => ansi("1", value),
642
+ dim: (value) => ansi("2", value),
643
+ underline: (value) => ansi("4", value),
644
+ brand: (value) => hex(TERMINAL_THEME.neonRed, value),
645
+ accent: (value) => hex(TERMINAL_THEME.softRed, value),
646
+ primary: (value) => hex(TERMINAL_THEME.neonRed, value),
647
+ soft: (value) => hex(TERMINAL_THEME.softRed, value),
527
648
  success: (value) => hex(TERMINAL_THEME.successGreen, value),
528
649
  warning: (value) => hex(TERMINAL_THEME.warningAmber, value),
529
650
  danger: (value) => hex(TERMINAL_THEME.dangerRed, value),
530
651
  muted: (value) => hex(TERMINAL_THEME.mutedGray, value),
531
652
  text: (value) => hex(TERMINAL_THEME.textWhite, value),
653
+ bright: (value) => hex(TERMINAL_THEME.brightWhite, value),
532
654
  divider: (value) => hex(TERMINAL_THEME.dividerGray, value),
533
- cyan: (value) => hex(TERMINAL_THEME.primaryCyan, value),
655
+ url: (value) => enabled ? ansi(`4;${rgbCode(TERMINAL_THEME.brightWhite)}`, value) : value,
656
+ cyan: (value) => hex(TERMINAL_THEME.neonRed, value),
534
657
  green: (value) => hex(TERMINAL_THEME.successGreen, value),
535
658
  yellow: (value) => hex(TERMINAL_THEME.warningAmber, value),
536
659
  red: (value) => hex(TERMINAL_THEME.dangerRed, value),
537
660
  gradient: (value, index) => {
538
661
  const palette = [
539
- TERMINAL_THEME.softCyan,
540
- TERMINAL_THEME.primaryCyan,
541
- TERMINAL_THEME.softCyan,
542
- TERMINAL_THEME.primaryCyan,
543
- TERMINAL_THEME.softCyan,
544
- TERMINAL_THEME.primaryCyan
662
+ TERMINAL_THEME.textWhite,
663
+ TERMINAL_THEME.textWhite,
664
+ TERMINAL_THEME.textWhite,
665
+ TERMINAL_THEME.textWhite,
666
+ TERMINAL_THEME.neonRed,
667
+ TERMINAL_THEME.neonRed
545
668
  ];
546
669
  return hex(palette[index % palette.length], value);
547
670
  }
@@ -558,14 +681,181 @@ function formatDetail(value, color) {
558
681
  }
559
682
 
560
683
  if (/^https?:\/\//i.test(value)) {
561
- return color.soft(value);
684
+ return color.url(value);
562
685
  }
563
686
 
564
687
  return color.text(value);
565
688
  }
566
689
 
567
- function divider(columns) {
568
- return "─".repeat(Math.max(24, Math.min(normalizeColumns(columns), 96)));
690
+ function renderCompactStatusSection(options) {
691
+ const width = panelWidth(options.columns);
692
+ const lines = [
693
+ options.color.bold(options.color.brand(options.title)),
694
+ options.color.divider(divider(width, options.unicode))
695
+ ];
696
+
697
+ for (const row of options.rows) {
698
+ const badge = formatStatusBadge(row.state || "pending", {
699
+ color: options.color,
700
+ unicode: options.unicode,
701
+ width: 0
702
+ }).trimEnd();
703
+ const detail = row.message || row.detail || "";
704
+
705
+ lines.push(`${options.color.text(truncate(row.label, Math.max(8, width - 18)))} ${badge}`);
706
+
707
+ if (detail) {
708
+ lines.push(` ${formatDetail(truncate(String(detail), Math.max(8, width - 2)), options.color)}`);
709
+ }
710
+ }
711
+
712
+ lines.push(options.color.divider(divider(width, options.unicode)));
713
+
714
+ return lines;
715
+ }
716
+
717
+ function formatDashboardHeader(options) {
718
+ return [
719
+ options.color.muted("SUBSYSTEM".padEnd(options.labelWidth)),
720
+ options.color.muted("STATUS".padEnd(options.badgeWidth)),
721
+ options.color.muted("DETAIL".padEnd(options.detailWidth))
722
+ ].join(" ");
723
+ }
724
+
725
+ function formatDashboardRow(row, options) {
726
+ const state = row.state || "pending";
727
+ const detail = row.message || row.detail || "";
728
+ const label = options.color.text(truncate(row.label, options.labelWidth).padEnd(options.labelWidth));
729
+ const badge = formatStatusBadge(state, {
730
+ color: options.color,
731
+ unicode: options.unicode,
732
+ width: options.badgeWidth
733
+ });
734
+ const detailText = truncate(String(detail), options.detailWidth);
735
+ const formattedDetail = formatDetail(detailText, options.color);
736
+ const content = `${label} ${badge} ${formattedDetail}`;
737
+
738
+ return boxLine(content, {
739
+ color: options.color,
740
+ unicode: options.unicode,
741
+ width: options.width
742
+ });
743
+ }
744
+
745
+ function renderLargeHeader(options) {
746
+ return LARGE_AGENT_WORDMARK.map((line, index) => {
747
+ const agent = options.color.bold(options.color.text(line));
748
+ const os = options.color.bold(options.color.brand(LARGE_OS_WORDMARK[index]));
749
+
750
+ return `${options.color.dim(options.color.brand("▌"))} ${agent} ${os}`;
751
+ });
752
+ }
753
+
754
+ function formatCompactHeader(color) {
755
+ return `${color.bold(color.text("Agent"))}${color.bold(color.brand("OS"))}`;
756
+ }
757
+
758
+ function renderReadyBlock(options) {
759
+ const width = panelWidth(options.columns);
760
+ const readyLine = options.color.bold(options.color.success("✓ AgentOS ready"));
761
+ const localUiLine = options.finalInfo
762
+ ? `${options.color.text("Local UI:")} ${formatDetail(options.finalInfo, options.color)}`
763
+ : "";
764
+
765
+ if (width < DASHBOARD_MIN_COLUMNS) {
766
+ return localUiLine ? [readyLine, localUiLine] : [readyLine];
767
+ }
768
+
769
+ const lines = [
770
+ renderBorder({
771
+ color: options.color,
772
+ title: "READY",
773
+ unicode: options.unicode,
774
+ width,
775
+ edge: "top"
776
+ }),
777
+ boxLine(readyLine, {
778
+ color: options.color,
779
+ unicode: options.unicode,
780
+ width
781
+ })
782
+ ];
783
+
784
+ if (localUiLine) {
785
+ lines.push(boxLine(localUiLine, {
786
+ color: options.color,
787
+ unicode: options.unicode,
788
+ width
789
+ }));
790
+ }
791
+
792
+ lines.push(renderBorder({
793
+ color: options.color,
794
+ unicode: options.unicode,
795
+ width,
796
+ edge: "bottom"
797
+ }));
798
+
799
+ return lines;
800
+ }
801
+
802
+ function renderBorder(options) {
803
+ const chars = boxChars(options.unicode);
804
+ const left = options.edge === "bottom" ? chars.bottomLeft : options.edge === "middle" ? chars.middleLeft : chars.topLeft;
805
+ const right = options.edge === "bottom" ? chars.bottomRight : options.edge === "middle" ? chars.middleRight : chars.topRight;
806
+ const horizontal = options.edge === "middle" ? chars.middle : chars.horizontal;
807
+ const innerWidth = Math.max(0, options.width - 2);
808
+
809
+ if (options.title && options.edge === "top") {
810
+ const title = ` ${options.title} `;
811
+ const safeTitle = truncate(title, Math.max(0, innerWidth - 2));
812
+ const remaining = Math.max(0, innerWidth - safeTitle.length - 1);
813
+
814
+ return options.color.brand(`${left}${horizontal}${safeTitle}${horizontal.repeat(remaining)}${right}`);
815
+ }
816
+
817
+ return options.color.divider(`${left}${horizontal.repeat(innerWidth)}${right}`);
818
+ }
819
+
820
+ function boxLine(value, options) {
821
+ const chars = boxChars(options.unicode);
822
+ const innerWidth = Math.max(0, options.width - 4);
823
+ const safeValue = stripAnsi(value).length > innerWidth ? truncate(stripAnsi(value), innerWidth) : value;
824
+ const padded = padAnsi(safeValue, innerWidth);
825
+
826
+ return `${options.color.brand(chars.vertical)} ${padded} ${options.color.brand(chars.vertical)}`;
827
+ }
828
+
829
+ function boxChars(unicode) {
830
+ if (!unicode) {
831
+ return {
832
+ topLeft: "+",
833
+ topRight: "+",
834
+ bottomLeft: "+",
835
+ bottomRight: "+",
836
+ middleLeft: "+",
837
+ middleRight: "+",
838
+ horizontal: "-",
839
+ middle: "-",
840
+ vertical: "|"
841
+ };
842
+ }
843
+
844
+ return {
845
+ topLeft: "┌",
846
+ topRight: "┐",
847
+ bottomLeft: "└",
848
+ bottomRight: "┘",
849
+ middleLeft: "├",
850
+ middleRight: "┤",
851
+ horizontal: "─",
852
+ middle: "─",
853
+ vertical: "│"
854
+ };
855
+ }
856
+
857
+ function divider(columns, unicode = true) {
858
+ return (unicode ? "─" : "-").repeat(Math.max(24, Math.min(normalizeColumns(columns), 96)));
569
859
  }
570
860
 
571
861
  function parseHex(value) {
@@ -596,6 +886,20 @@ function normalizeColumns(columns) {
596
886
  return typeof columns === "number" && Number.isFinite(columns) && columns > 0 ? columns : 80;
597
887
  }
598
888
 
889
+ function panelWidth(columns) {
890
+ return Math.max(24, Math.min(normalizeColumns(columns), 96));
891
+ }
892
+
893
+ function padAnsi(value, width) {
894
+ const visibleLength = stripAnsi(value).length;
895
+
896
+ if (visibleLength >= width) {
897
+ return value;
898
+ }
899
+
900
+ return `${value}${" ".repeat(width - visibleLength)}`;
901
+ }
902
+
599
903
  function countTerminalLines(value, columns) {
600
904
  const normalized = value.endsWith("\n") ? value.slice(0, -1) : value;
601
905
 
@@ -1 +1 @@
1
- ujFbMZ9arxb7I3_g4GzfY
1
+ JwIu-FqrfB4Nerk5vBqR2
@@ -4,19 +4,18 @@
4
4
  "/api/openclaw/capabilities/route": "/api/openclaw/capabilities",
5
5
  "/api/diagnostics/route": "/api/diagnostics",
6
6
  "/api/agents/route": "/api/agents",
7
- "/api/agents/[agentId]/chat/route": "/api/agents/[agentId]/chat",
8
- "/api/files/reveal/route": "/api/files/reveal",
9
7
  "/api/gateway/control/route": "/api/gateway/control",
8
+ "/api/files/reveal/route": "/api/files/reveal",
10
9
  "/api/mission/route": "/api/mission",
10
+ "/api/agents/[agentId]/chat/route": "/api/agents/[agentId]/chat",
11
+ "/api/integrations/[integrationId]/status/route": "/api/integrations/[integrationId]/status",
11
12
  "/api/models/catalog/route": "/api/models/catalog",
12
- "/api/models/providers/route": "/api/models/providers",
13
+ "/api/openclaw/compatibility-smoke/route": "/api/openclaw/compatibility-smoke",
13
14
  "/api/planner/[planId]/deploy/route": "/api/planner/[planId]/deploy",
14
- "/api/onboarding/models/route": "/api/onboarding/models",
15
15
  "/api/planner/[planId]/document-rewrite/route": "/api/planner/[planId]/document-rewrite",
16
16
  "/api/planner/[planId]/route": "/api/planner/[planId]",
17
17
  "/api/planner/[planId]/simulate/route": "/api/planner/[planId]/simulate",
18
18
  "/api/planner/[planId]/turn/route": "/api/planner/[planId]/turn",
19
- "/api/onboarding/route": "/api/onboarding",
20
19
  "/api/planner/route": "/api/planner",
21
20
  "/api/reset/route": "/api/reset",
22
21
  "/api/runtimes/[runtimeId]/route": "/api/runtimes/[runtimeId]",
@@ -26,16 +25,24 @@
26
25
  "/api/snapshot/route": "/api/snapshot",
27
26
  "/api/stream/route": "/api/stream",
28
27
  "/api/system/open-terminal/route": "/api/system/open-terminal",
28
+ "/api/onboarding/models/route": "/api/onboarding/models",
29
29
  "/api/tasks/[taskId]/abort/route": "/api/tasks/[taskId]/abort",
30
30
  "/api/tasks/[taskId]/control/route": "/api/tasks/[taskId]/control",
31
- "/api/tasks/[taskId]/stream/route": "/api/tasks/[taskId]/stream",
31
+ "/api/models/providers/route": "/api/models/providers",
32
32
  "/api/workspaces/[workspaceId]/channels/discovered-groups/route": "/api/workspaces/[workspaceId]/channels/discovered-groups",
33
+ "/api/tasks/[taskId]/stream/route": "/api/tasks/[taskId]/stream",
33
34
  "/api/workspaces/[workspaceId]/edit-draft/route": "/api/workspaces/[workspaceId]/edit-draft",
34
- "/api/update/route": "/api/update",
35
- "/api/workspaces/[workspaceId]/channels/route": "/api/workspaces/[workspaceId]/channels",
36
35
  "/api/workspaces/[workspaceId]/files/route": "/api/workspaces/[workspaceId]/files",
36
+ "/api/workspaces/[workspaceId]/channels/route": "/api/workspaces/[workspaceId]/channels",
37
37
  "/api/workspaces/[workspaceId]/surfaces/discovery/route": "/api/workspaces/[workspaceId]/surfaces/discovery",
38
38
  "/api/workspaces/route": "/api/workspaces",
39
+ "/api/update/route": "/api/update",
40
+ "/api/onboarding/route": "/api/onboarding",
41
+ "/agents/page": "/agents",
42
+ "/files/page": "/files",
43
+ "/integrations/page": "/integrations",
44
+ "/models/page": "/models",
39
45
  "/page": "/",
40
- "/settings/page": "/settings"
46
+ "/settings/page": "/settings",
47
+ "/tasks/page": "/tasks"
41
48
  }