@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.
- package/bin/agentos.js +113 -2
- package/bin/terminal-boot.js +383 -76
- package/bundle/.next/BUILD_ID +1 -1
- package/bundle/.next/app-path-routes-manifest.json +9 -8
- package/bundle/.next/build-manifest.json +3 -3
- package/bundle/.next/prerender-manifest.json +3 -3
- package/bundle/.next/react-loadable-manifest.json +2 -2
- package/bundle/.next/required-server-files.json +1 -1
- package/bundle/.next/routes-manifest.json +6 -0
- package/bundle/.next/server/app/_global-error/page.js +2 -2
- package/bundle/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/_global-error.html +1 -1
- package/bundle/.next/server/app/_global-error.rsc +1 -1
- package/bundle/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/bundle/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/bundle/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/bundle/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/bundle/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/bundle/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/bundle/.next/server/app/_not-found/page.js +2 -2
- package/bundle/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/_not-found.html +1 -1
- package/bundle/.next/server/app/_not-found.rsc +2 -2
- package/bundle/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/bundle/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/bundle/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/bundle/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/bundle/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/bundle/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/bundle/.next/server/app/agents/page.js +2 -2
- package/bundle/.next/server/app/agents/page.js.nft.json +1 -1
- package/bundle/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/agents/[agentId]/chat/route.js +4 -4
- package/bundle/.next/server/app/api/agents/[agentId]/chat/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/agents/route.js +1 -1
- package/bundle/.next/server/app/api/agents/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/diagnostics/route.js +1 -1
- package/bundle/.next/server/app/api/diagnostics/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/files/reveal/route.js +1 -1
- package/bundle/.next/server/app/api/gateway/control/route.js +1 -1
- package/bundle/.next/server/app/api/gateway/control/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/integrations/[integrationId]/status/route.js +1 -1
- package/bundle/.next/server/app/api/mission/route.js +1 -1
- package/bundle/.next/server/app/api/mission/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/models/catalog/route.js +2 -2
- package/bundle/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/models/providers/route.js +2 -2
- package/bundle/.next/server/app/api/models/providers/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/onboarding/models/route.js +3 -3
- package/bundle/.next/server/app/api/onboarding/models/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/onboarding/route.js +2 -2
- package/bundle/.next/server/app/api/onboarding/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/openclaw/capabilities/route.js +1 -1
- package/bundle/.next/server/app/api/openclaw/compatibility-smoke/route.js +1 -0
- package/bundle/.next/server/app/api/openclaw/compatibility-smoke/route.js.nft.json +1 -0
- package/bundle/.next/server/app/api/openclaw/compatibility-smoke/route_client-reference-manifest.js +1 -0
- package/bundle/.next/server/app/api/planner/[planId]/deploy/route.js +2 -2
- package/bundle/.next/server/app/api/planner/[planId]/deploy/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/planner/[planId]/document-rewrite/route.js +1 -1
- package/bundle/.next/server/app/api/planner/[planId]/document-rewrite/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/planner/[planId]/route.js +1 -1
- package/bundle/.next/server/app/api/planner/[planId]/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/planner/[planId]/simulate/route.js +1 -1
- package/bundle/.next/server/app/api/planner/[planId]/simulate/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/planner/[planId]/turn/route.js +1 -1
- package/bundle/.next/server/app/api/planner/[planId]/turn/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/planner/route.js +1 -1
- package/bundle/.next/server/app/api/planner/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/reset/route.js +2 -2
- package/bundle/.next/server/app/api/reset/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/runtimes/[runtimeId]/route.js +1 -1
- package/bundle/.next/server/app/api/runtimes/[runtimeId]/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/settings/gateway/route.js +1 -1
- package/bundle/.next/server/app/api/settings/gateway/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/settings/openclaw-binary/route.js +1 -1
- package/bundle/.next/server/app/api/settings/openclaw-binary/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/settings/workspace-root/route.js +1 -1
- package/bundle/.next/server/app/api/settings/workspace-root/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/snapshot/route.js +1 -1
- package/bundle/.next/server/app/api/snapshot/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/stream/route.js +2 -2
- package/bundle/.next/server/app/api/stream/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/system/open-terminal/route.js +1 -1
- package/bundle/.next/server/app/api/tasks/[taskId]/abort/route.js +1 -1
- package/bundle/.next/server/app/api/tasks/[taskId]/abort/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/tasks/[taskId]/control/route.js +1 -1
- package/bundle/.next/server/app/api/tasks/[taskId]/control/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/tasks/[taskId]/stream/route.js +2 -2
- package/bundle/.next/server/app/api/tasks/[taskId]/stream/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/update/route.js +2 -2
- package/bundle/.next/server/app/api/update/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/discovered-groups/route.js +1 -1
- package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/discovered-groups/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/route.js +1 -1
- package/bundle/.next/server/app/api/workspaces/[workspaceId]/channels/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/workspaces/[workspaceId]/edit-draft/route.js +1 -1
- package/bundle/.next/server/app/api/workspaces/[workspaceId]/edit-draft/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/workspaces/[workspaceId]/files/route.js +1 -1
- package/bundle/.next/server/app/api/workspaces/[workspaceId]/files/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/workspaces/[workspaceId]/surfaces/discovery/route.js +1 -1
- package/bundle/.next/server/app/api/workspaces/[workspaceId]/surfaces/discovery/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/workspaces/route.js +2 -2
- package/bundle/.next/server/app/api/workspaces/route.js.nft.json +1 -1
- package/bundle/.next/server/app/files/page.js +2 -2
- package/bundle/.next/server/app/files/page.js.nft.json +1 -1
- package/bundle/.next/server/app/files/page_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/integrations/page.js +2 -2
- package/bundle/.next/server/app/integrations/page.js.nft.json +1 -1
- package/bundle/.next/server/app/integrations/page_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/models/page.js +2 -2
- package/bundle/.next/server/app/models/page.js.nft.json +1 -1
- package/bundle/.next/server/app/models/page_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/page.js +2 -2
- package/bundle/.next/server/app/page.js.nft.json +1 -1
- package/bundle/.next/server/app/page_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/settings/page.js +2 -2
- package/bundle/.next/server/app/settings/page.js.nft.json +1 -1
- package/bundle/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/tasks/page.js +2 -2
- package/bundle/.next/server/app/tasks/page.js.nft.json +1 -1
- package/bundle/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app-paths-manifest.json +9 -8
- package/bundle/.next/server/chunks/1718.js +4 -0
- package/bundle/.next/server/chunks/4391.js +45 -35
- package/bundle/.next/server/chunks/4767.js +1 -4
- package/bundle/.next/server/chunks/5151.js +14 -4
- package/bundle/.next/server/chunks/6476.js +2 -2
- package/bundle/.next/server/chunks/8849.js +1 -1
- package/bundle/.next/server/functions-config-manifest.json +1 -0
- package/bundle/.next/server/middleware-build-manifest.js +1 -1
- package/bundle/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/bundle/.next/server/pages/404.html +1 -1
- package/bundle/.next/server/pages/500.html +1 -1
- package/bundle/.next/server/server-reference-manifest.json +1 -1
- package/bundle/.next/static/C5KQaZvAavAtZzYvH3CPw/_buildManifest.js +1 -0
- package/bundle/.next/static/chunks/2396-395f5ed99e66819d.js +1 -0
- package/bundle/.next/static/chunks/7197.2385ee563e32813a.js +1 -0
- package/bundle/.next/static/chunks/7442-b2286cbca8c413fd.js +198 -0
- package/bundle/.next/static/chunks/app/_global-error/{page-73422dc4075cbfe0.js → page-8443c62570b9a078.js} +1 -1
- package/bundle/.next/static/chunks/app/_not-found/{page-73422dc4075cbfe0.js → page-8443c62570b9a078.js} +1 -1
- package/bundle/.next/static/chunks/app/api/agents/[agentId]/chat/{route-73422dc4075cbfe0.js → route-8443c62570b9a078.js} +1 -1
- package/bundle/.next/static/chunks/app/api/agents/{route-73422dc4075cbfe0.js → route-8443c62570b9a078.js} +1 -1
- package/bundle/.next/static/chunks/app/api/diagnostics/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/files/reveal/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/gateway/control/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/integrations/[integrationId]/status/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/mission/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/models/catalog/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/models/providers/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/onboarding/models/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/onboarding/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/openclaw/capabilities/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/openclaw/compatibility-smoke/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/planner/[planId]/deploy/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/planner/[planId]/document-rewrite/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/planner/[planId]/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/planner/[planId]/simulate/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/planner/[planId]/turn/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/planner/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/reset/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/runtimes/[runtimeId]/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/settings/gateway/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/settings/openclaw-binary/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/settings/workspace-root/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/snapshot/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/stream/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/system/open-terminal/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/tasks/[taskId]/abort/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/tasks/[taskId]/control/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/tasks/[taskId]/stream/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/update/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/discovered-groups/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/edit-draft/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/files/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/surfaces/discovery/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/api/workspaces/route-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/app/not-found-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/next/dist/client/components/builtin/app-error-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/next/dist/client/components/builtin/forbidden-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/next/dist/client/components/builtin/unauthorized-8443c62570b9a078.js +1 -0
- package/bundle/.next/static/chunks/{webpack-1e021d6850c9ac01.js → webpack-13c3a46c1cdfa6e4.js} +1 -1
- package/bundle/.next/static/css/288b13e5308447b9.css +3 -0
- package/bundle/server.js +1 -1
- package/package.json +1 -1
- package/bundle/.next/static/JJw_UWORQdbCo0tnqFq68/_buildManifest.js +0 -1
- package/bundle/.next/static/chunks/1994.2c1ce6369c0b31aa.js +0 -1
- package/bundle/.next/static/chunks/2396-3a9544c281c618dd.js +0 -1
- package/bundle/.next/static/chunks/7442-0da619eb6902ba5b.js +0 -188
- package/bundle/.next/static/chunks/app/api/diagnostics/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/files/reveal/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/gateway/control/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/integrations/[integrationId]/status/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/mission/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/models/catalog/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/models/providers/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/onboarding/models/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/onboarding/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/openclaw/capabilities/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/planner/[planId]/deploy/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/planner/[planId]/document-rewrite/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/planner/[planId]/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/planner/[planId]/simulate/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/planner/[planId]/turn/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/planner/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/reset/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/runtimes/[runtimeId]/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/settings/gateway/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/settings/openclaw-binary/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/settings/workspace-root/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/snapshot/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/stream/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/system/open-terminal/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/tasks/[taskId]/abort/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/tasks/[taskId]/control/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/tasks/[taskId]/stream/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/update/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/discovered-groups/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/channels/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/edit-draft/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/files/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/workspaces/[workspaceId]/surfaces/discovery/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/api/workspaces/route-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/app/not-found-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/next/dist/client/components/builtin/app-error-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/next/dist/client/components/builtin/forbidden-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/chunks/next/dist/client/components/builtin/unauthorized-73422dc4075cbfe0.js +0 -1
- package/bundle/.next/static/css/6de56db1be7d3d06.css +0 -3
- /package/bundle/.next/static/{JJw_UWORQdbCo0tnqFq68 → C5KQaZvAavAtZzYvH3CPw}/_ssgManifest.js +0 -0
package/bin/terminal-boot.js
CHANGED
|
@@ -1,39 +1,64 @@
|
|
|
1
1
|
import readline from "node:readline";
|
|
2
2
|
|
|
3
|
-
|
|
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
|
-
|
|
12
|
-
|
|
26
|
+
neonRed: "#FF1744",
|
|
27
|
+
softRed: "#FF5A6D",
|
|
28
|
+
deepRed: "#6E0A17",
|
|
13
29
|
successGreen: "#39D353",
|
|
14
|
-
warningAmber: "#
|
|
15
|
-
dangerRed: "#
|
|
30
|
+
warningAmber: "#FFD166",
|
|
31
|
+
dangerRed: "#FF3B3B",
|
|
16
32
|
mutedGray: "#8B949E",
|
|
17
33
|
textWhite: "#F0F6FC",
|
|
18
|
-
|
|
34
|
+
brightWhite: "#FFFFFF",
|
|
35
|
+
dividerGray: "#4A121B"
|
|
19
36
|
};
|
|
20
37
|
|
|
21
|
-
const
|
|
22
|
-
const
|
|
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
|
|
26
|
-
|
|
27
|
-
|
|
44
|
+
const DASHBOARD_MIN_COLUMNS = 56;
|
|
45
|
+
const PANEL_MAX_COLUMNS = 80;
|
|
46
|
+
const MEDIUM_AGENT_WORDMARK = [
|
|
47
|
+
"▄▀█ █▀▀ █▀▀ █▄░█ ▀█▀",
|
|
48
|
+
"█▀█ █▄█ ██▄ █░▀█ █ "
|
|
49
|
+
];
|
|
50
|
+
const MEDIUM_OS_WORDMARK = [
|
|
51
|
+
" █▀█ █▀",
|
|
52
|
+
" █▄█ ▄█"
|
|
28
53
|
];
|
|
29
54
|
|
|
30
55
|
const STATE_META = {
|
|
31
|
-
checking: { label: "CHECKING", color: "
|
|
56
|
+
checking: { label: "CHECKING", color: "brand", symbol: "…", ascii: "..." },
|
|
32
57
|
waiting: { label: "WAITING", color: "muted", symbol: "…", ascii: "..." },
|
|
33
|
-
loading: { label: "LOADING", color: "
|
|
34
|
-
starting: { label: "STARTING", color: "
|
|
35
|
-
resolving: { label: "RESOLVING", color: "
|
|
36
|
-
preparing: { label: "PREPARING", color: "
|
|
58
|
+
loading: { label: "LOADING", color: "brand", symbol: "…", ascii: "..." },
|
|
59
|
+
starting: { label: "STARTING", color: "brand", symbol: "…", ascii: "..." },
|
|
60
|
+
resolving: { label: "RESOLVING", color: "brand", symbol: "…", ascii: "..." },
|
|
61
|
+
preparing: { label: "PREPARING", color: "brand", symbol: "…", ascii: "..." },
|
|
37
62
|
connected: { label: "CONNECTED", color: "success", symbol: "✓", ascii: "OK" },
|
|
38
63
|
active: { label: "ACTIVE", color: "success", symbol: "✓", ascii: "OK" },
|
|
39
64
|
ready: { label: "READY", color: "success", symbol: "✓", ascii: "OK" },
|
|
@@ -44,6 +69,7 @@ const STATE_META = {
|
|
|
44
69
|
failed: { label: "FAILED", color: "danger", symbol: "✕", ascii: "x" },
|
|
45
70
|
unreachable: { label: "UNREACHABLE", color: "danger", symbol: "✕", ascii: "x" },
|
|
46
71
|
broken: { label: "BROKEN", color: "danger", symbol: "✕", ascii: "x" },
|
|
72
|
+
error: { label: "ERROR", color: "danger", symbol: "✕", ascii: "x" },
|
|
47
73
|
disabled: { label: "DISABLED", color: "muted", symbol: "–", ascii: "-" },
|
|
48
74
|
skipped: { label: "SKIPPED", color: "muted", symbol: "–", ascii: "-" },
|
|
49
75
|
inactive: { label: "INACTIVE", color: "muted", symbol: "–", ascii: "-" },
|
|
@@ -65,17 +91,17 @@ const STATUS_ROWS = [
|
|
|
65
91
|
];
|
|
66
92
|
|
|
67
93
|
const UNICODE_FRAMES = [
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
94
|
+
"OpenClaw Gateway ▰▱▱ AgentOS Runtime ▱▱▱ Local UI",
|
|
95
|
+
"OpenClaw Gateway ▰▰▱ AgentOS Runtime ▰▱▱ Local UI",
|
|
96
|
+
"OpenClaw Gateway ▰▰▰ AgentOS Runtime ▰▰▱ Local UI",
|
|
97
|
+
"OpenClaw Gateway ▰▰▰ AgentOS Runtime ▰▰▰ Local UI"
|
|
72
98
|
];
|
|
73
99
|
|
|
74
100
|
const ASCII_FRAMES = [
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
101
|
+
"OpenClaw Gateway [#--] AgentOS Runtime [---] Local UI",
|
|
102
|
+
"OpenClaw Gateway [##-] AgentOS Runtime [#--] Local UI",
|
|
103
|
+
"OpenClaw Gateway [###] AgentOS Runtime [##-] Local UI",
|
|
104
|
+
"OpenClaw Gateway [###] AgentOS Runtime [###] Local UI"
|
|
79
105
|
];
|
|
80
106
|
|
|
81
107
|
export function createTerminalBoot(options = {}) {
|
|
@@ -155,7 +181,8 @@ export function renderBootFrame(options = {}) {
|
|
|
155
181
|
color,
|
|
156
182
|
columns,
|
|
157
183
|
compact,
|
|
158
|
-
large
|
|
184
|
+
large,
|
|
185
|
+
unicode
|
|
159
186
|
}));
|
|
160
187
|
|
|
161
188
|
lines.push("");
|
|
@@ -188,7 +215,8 @@ export function renderStatusDashboard(options = {}) {
|
|
|
188
215
|
color,
|
|
189
216
|
columns,
|
|
190
217
|
compact: !unicode || columns < MEDIUM_HEADER_MIN_COLUMNS,
|
|
191
|
-
large: unicode && columns >= LARGE_HEADER_MIN_COLUMNS
|
|
218
|
+
large: unicode && columns >= LARGE_HEADER_MIN_COLUMNS,
|
|
219
|
+
unicode
|
|
192
220
|
}));
|
|
193
221
|
lines.push("");
|
|
194
222
|
}
|
|
@@ -203,7 +231,12 @@ export function renderStatusDashboard(options = {}) {
|
|
|
203
231
|
|
|
204
232
|
if (options.finalInfo) {
|
|
205
233
|
lines.push("");
|
|
206
|
-
lines.push(
|
|
234
|
+
lines.push(...renderReadyBlock({
|
|
235
|
+
color,
|
|
236
|
+
columns,
|
|
237
|
+
finalInfo: options.finalInfo,
|
|
238
|
+
unicode
|
|
239
|
+
}));
|
|
207
240
|
} else if (options.footer) {
|
|
208
241
|
lines.push("");
|
|
209
242
|
lines.push(color.muted(options.footer));
|
|
@@ -223,7 +256,7 @@ export function renderDoctorReport(options = {}) {
|
|
|
223
256
|
|
|
224
257
|
lines.push(color.bold(color.primary(options.title || "AGENTOS DOCTOR")));
|
|
225
258
|
lines.push(color.muted(truncate(options.subtitle || BOOT_TAGLINE, columns)));
|
|
226
|
-
lines.push(color.divider(divider(columns)));
|
|
259
|
+
lines.push(color.divider(divider(columns, unicode)));
|
|
227
260
|
lines.push(...formatStatusRows(rows, {
|
|
228
261
|
color,
|
|
229
262
|
columns,
|
|
@@ -231,7 +264,7 @@ export function renderDoctorReport(options = {}) {
|
|
|
231
264
|
}));
|
|
232
265
|
|
|
233
266
|
if (options.footer) {
|
|
234
|
-
lines.push(color.divider(divider(columns)));
|
|
267
|
+
lines.push(color.divider(divider(columns, unicode)));
|
|
235
268
|
lines.push(color.muted(truncate(options.footer, columns)));
|
|
236
269
|
}
|
|
237
270
|
|
|
@@ -420,13 +453,62 @@ function normalizeRows(rows = []) {
|
|
|
420
453
|
|
|
421
454
|
function renderStatusSection(options) {
|
|
422
455
|
const title = options.title || "SYSTEM CHECK";
|
|
456
|
+
const columns = normalizeColumns(options.columns);
|
|
457
|
+
|
|
458
|
+
if (columns < DASHBOARD_MIN_COLUMNS) {
|
|
459
|
+
return renderCompactStatusSection({
|
|
460
|
+
...options,
|
|
461
|
+
title,
|
|
462
|
+
columns
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
const width = panelWidth(columns);
|
|
467
|
+
const innerWidth = width - 4;
|
|
468
|
+
const rows = options.rows;
|
|
469
|
+
const labelWidth = Math.min(23, Math.max(17, ...rows.map((row) => row.label.length)));
|
|
470
|
+
const badgeWidth = 15;
|
|
471
|
+
const detailWidth = Math.max(8, innerWidth - labelWidth - badgeWidth - 4);
|
|
423
472
|
const lines = [
|
|
424
|
-
|
|
425
|
-
|
|
473
|
+
renderBorder({
|
|
474
|
+
color: options.color,
|
|
475
|
+
title,
|
|
476
|
+
unicode: options.unicode,
|
|
477
|
+
width,
|
|
478
|
+
edge: "top"
|
|
479
|
+
}),
|
|
480
|
+
boxLine(formatDashboardHeader({
|
|
481
|
+
badgeWidth,
|
|
482
|
+
color: options.color,
|
|
483
|
+
detailWidth,
|
|
484
|
+
labelWidth
|
|
485
|
+
}), {
|
|
486
|
+
color: options.color,
|
|
487
|
+
unicode: options.unicode,
|
|
488
|
+
width
|
|
489
|
+
}),
|
|
490
|
+
renderBorder({
|
|
491
|
+
color: options.color,
|
|
492
|
+
unicode: options.unicode,
|
|
493
|
+
width,
|
|
494
|
+
edge: "middle"
|
|
495
|
+
})
|
|
426
496
|
];
|
|
427
497
|
|
|
428
|
-
lines.push(...
|
|
429
|
-
|
|
498
|
+
lines.push(...rows.map((row) => formatDashboardRow(row, {
|
|
499
|
+
badgeWidth,
|
|
500
|
+
color: options.color,
|
|
501
|
+
detailWidth,
|
|
502
|
+
labelWidth,
|
|
503
|
+
unicode: options.unicode,
|
|
504
|
+
width
|
|
505
|
+
})));
|
|
506
|
+
lines.push(renderBorder({
|
|
507
|
+
color: options.color,
|
|
508
|
+
unicode: options.unicode,
|
|
509
|
+
width,
|
|
510
|
+
edge: "bottom"
|
|
511
|
+
}));
|
|
430
512
|
|
|
431
513
|
return lines;
|
|
432
514
|
}
|
|
@@ -461,18 +543,16 @@ function formatStatusRow(row, options) {
|
|
|
461
543
|
}
|
|
462
544
|
|
|
463
545
|
function renderMediumHeader(options) {
|
|
464
|
-
|
|
546
|
+
return MEDIUM_AGENT_WORDMARK.map((line, index) => {
|
|
547
|
+
const agent = options.color.bold(options.color.text(line));
|
|
548
|
+
const os = options.color.bold(options.color.brand(MEDIUM_OS_WORDMARK[index]));
|
|
465
549
|
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
` ${options.color.muted(truncate(BOOT_TAGLINE, available))}`,
|
|
469
|
-
` ${options.color.divider(divider(Math.min(available, 72)))}`
|
|
470
|
-
];
|
|
550
|
+
return `${options.color.dim(options.color.brand("▌"))} ${agent}${os}`;
|
|
551
|
+
});
|
|
471
552
|
}
|
|
472
553
|
|
|
473
554
|
function renderCompleteFrame(options) {
|
|
474
555
|
const lines = [""];
|
|
475
|
-
const message = options.finalInfo ? `AgentOS ready · ${options.finalInfo}` : "AgentOS ready";
|
|
476
556
|
|
|
477
557
|
lines.push(...renderHeaderLines(options));
|
|
478
558
|
lines.push("");
|
|
@@ -484,64 +564,108 @@ function renderCompleteFrame(options) {
|
|
|
484
564
|
unicode: options.unicode
|
|
485
565
|
}));
|
|
486
566
|
lines.push("");
|
|
487
|
-
lines.push(
|
|
567
|
+
lines.push(...renderReadyBlock({
|
|
568
|
+
color: options.color,
|
|
569
|
+
columns: options.columns,
|
|
570
|
+
finalInfo: options.finalInfo,
|
|
571
|
+
unicode: options.unicode
|
|
572
|
+
}));
|
|
488
573
|
|
|
489
574
|
return lines.join("\n");
|
|
490
575
|
}
|
|
491
576
|
|
|
492
577
|
function renderHeaderLines(options) {
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
options.color
|
|
497
|
-
|
|
578
|
+
const width = panelWidth(options.columns);
|
|
579
|
+
const lines = [
|
|
580
|
+
renderBorder({
|
|
581
|
+
color: options.color,
|
|
582
|
+
title: HEADER_TITLE,
|
|
583
|
+
unicode: options.unicode,
|
|
584
|
+
width,
|
|
585
|
+
edge: "top"
|
|
586
|
+
})
|
|
587
|
+
];
|
|
588
|
+
const logoLines = options.compact
|
|
589
|
+
? [formatCompactHeader(options.color)]
|
|
590
|
+
: options.large
|
|
591
|
+
? renderLargeHeader(options)
|
|
592
|
+
: renderMediumHeader(options);
|
|
593
|
+
|
|
594
|
+
for (const line of logoLines) {
|
|
595
|
+
lines.push(boxLine(line, {
|
|
596
|
+
color: options.color,
|
|
597
|
+
unicode: options.unicode,
|
|
598
|
+
width
|
|
599
|
+
}));
|
|
498
600
|
}
|
|
499
601
|
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
602
|
+
lines.push(boxLine("", {
|
|
603
|
+
color: options.color,
|
|
604
|
+
unicode: options.unicode,
|
|
605
|
+
width
|
|
606
|
+
}));
|
|
607
|
+
lines.push(boxLine(options.color.text(BOOT_PRIMARY_LINE), {
|
|
608
|
+
color: options.color,
|
|
609
|
+
unicode: options.unicode,
|
|
610
|
+
width
|
|
611
|
+
}));
|
|
612
|
+
lines.push(boxLine(options.color.muted(BOOT_SECONDARY_LINE), {
|
|
613
|
+
color: options.color,
|
|
614
|
+
unicode: options.unicode,
|
|
615
|
+
width
|
|
616
|
+
}));
|
|
617
|
+
lines.push(renderBorder({
|
|
618
|
+
color: options.color,
|
|
619
|
+
unicode: options.unicode,
|
|
620
|
+
width,
|
|
621
|
+
edge: "bottom"
|
|
622
|
+
}));
|
|
507
623
|
|
|
508
|
-
return
|
|
624
|
+
return lines;
|
|
509
625
|
}
|
|
510
626
|
|
|
511
627
|
function createColor(enabled) {
|
|
512
|
-
const
|
|
628
|
+
const ansi = (codes, value) => enabled ? `\u001B[${codes}m${value}\u001B[0m` : value;
|
|
629
|
+
const rgbCode = (value) => {
|
|
630
|
+
const [red, green, blue] = parseHex(value);
|
|
631
|
+
return `38;2;${red};${green};${blue}`;
|
|
632
|
+
};
|
|
513
633
|
const hex = (value, text) => {
|
|
514
634
|
if (!enabled) {
|
|
515
635
|
return text;
|
|
516
636
|
}
|
|
517
637
|
|
|
518
|
-
|
|
519
|
-
return `\u001B[38;2;${red};${green};${blue}m${text}\u001B[0m`;
|
|
638
|
+
return ansi(rgbCode(value), text);
|
|
520
639
|
};
|
|
521
640
|
|
|
522
641
|
return {
|
|
523
|
-
bold: (value) =>
|
|
524
|
-
dim: (value) =>
|
|
525
|
-
|
|
526
|
-
|
|
642
|
+
bold: (value) => ansi("1", value),
|
|
643
|
+
dim: (value) => ansi("2", value),
|
|
644
|
+
underline: (value) => ansi("4", value),
|
|
645
|
+
brand: (value) => hex(TERMINAL_THEME.neonRed, value),
|
|
646
|
+
accent: (value) => hex(TERMINAL_THEME.softRed, value),
|
|
647
|
+
primary: (value) => hex(TERMINAL_THEME.neonRed, value),
|
|
648
|
+
soft: (value) => hex(TERMINAL_THEME.softRed, value),
|
|
527
649
|
success: (value) => hex(TERMINAL_THEME.successGreen, value),
|
|
528
650
|
warning: (value) => hex(TERMINAL_THEME.warningAmber, value),
|
|
529
651
|
danger: (value) => hex(TERMINAL_THEME.dangerRed, value),
|
|
530
652
|
muted: (value) => hex(TERMINAL_THEME.mutedGray, value),
|
|
531
653
|
text: (value) => hex(TERMINAL_THEME.textWhite, value),
|
|
654
|
+
bright: (value) => hex(TERMINAL_THEME.brightWhite, value),
|
|
532
655
|
divider: (value) => hex(TERMINAL_THEME.dividerGray, value),
|
|
533
|
-
|
|
656
|
+
url: (value) => enabled ? ansi(`4;${rgbCode(TERMINAL_THEME.brightWhite)}`, value) : value,
|
|
657
|
+
cyan: (value) => hex(TERMINAL_THEME.neonRed, value),
|
|
534
658
|
green: (value) => hex(TERMINAL_THEME.successGreen, value),
|
|
535
659
|
yellow: (value) => hex(TERMINAL_THEME.warningAmber, value),
|
|
536
660
|
red: (value) => hex(TERMINAL_THEME.dangerRed, value),
|
|
537
661
|
gradient: (value, index) => {
|
|
538
662
|
const palette = [
|
|
539
|
-
TERMINAL_THEME.
|
|
540
|
-
TERMINAL_THEME.
|
|
541
|
-
TERMINAL_THEME.
|
|
542
|
-
TERMINAL_THEME.
|
|
543
|
-
TERMINAL_THEME.
|
|
544
|
-
TERMINAL_THEME.
|
|
663
|
+
TERMINAL_THEME.textWhite,
|
|
664
|
+
TERMINAL_THEME.textWhite,
|
|
665
|
+
TERMINAL_THEME.textWhite,
|
|
666
|
+
TERMINAL_THEME.textWhite,
|
|
667
|
+
TERMINAL_THEME.neonRed,
|
|
668
|
+
TERMINAL_THEME.neonRed
|
|
545
669
|
];
|
|
546
670
|
return hex(palette[index % palette.length], value);
|
|
547
671
|
}
|
|
@@ -558,14 +682,183 @@ function formatDetail(value, color) {
|
|
|
558
682
|
}
|
|
559
683
|
|
|
560
684
|
if (/^https?:\/\//i.test(value)) {
|
|
561
|
-
return color.
|
|
685
|
+
return color.url(value);
|
|
562
686
|
}
|
|
563
687
|
|
|
564
688
|
return color.text(value);
|
|
565
689
|
}
|
|
566
690
|
|
|
567
|
-
function
|
|
568
|
-
|
|
691
|
+
function renderCompactStatusSection(options) {
|
|
692
|
+
const width = panelWidth(options.columns);
|
|
693
|
+
const lines = [
|
|
694
|
+
options.color.bold(options.color.brand(options.title)),
|
|
695
|
+
options.color.divider(divider(width, options.unicode))
|
|
696
|
+
];
|
|
697
|
+
|
|
698
|
+
for (const row of options.rows) {
|
|
699
|
+
const badge = formatStatusBadge(row.state || "pending", {
|
|
700
|
+
color: options.color,
|
|
701
|
+
unicode: options.unicode,
|
|
702
|
+
width: 0
|
|
703
|
+
}).trimEnd();
|
|
704
|
+
const detail = row.message || row.detail || "";
|
|
705
|
+
|
|
706
|
+
lines.push(`${options.color.text(truncate(row.label, Math.max(8, width - 18)))} ${badge}`);
|
|
707
|
+
|
|
708
|
+
if (detail) {
|
|
709
|
+
lines.push(` ${formatDetail(truncate(String(detail), Math.max(8, width - 2)), options.color)}`);
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
lines.push(options.color.divider(divider(width, options.unicode)));
|
|
714
|
+
|
|
715
|
+
return lines;
|
|
716
|
+
}
|
|
717
|
+
|
|
718
|
+
function formatDashboardHeader(options) {
|
|
719
|
+
return [
|
|
720
|
+
options.color.muted("SUBSYSTEM".padEnd(options.labelWidth)),
|
|
721
|
+
options.color.muted("STATUS".padEnd(options.badgeWidth)),
|
|
722
|
+
options.color.muted("DETAIL".padEnd(options.detailWidth))
|
|
723
|
+
].join(" ");
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
function formatDashboardRow(row, options) {
|
|
727
|
+
const state = row.state || "pending";
|
|
728
|
+
const detail = row.message || row.detail || "";
|
|
729
|
+
const label = options.color.text(truncate(row.label, options.labelWidth).padEnd(options.labelWidth));
|
|
730
|
+
const badge = formatStatusBadge(state, {
|
|
731
|
+
color: options.color,
|
|
732
|
+
unicode: options.unicode,
|
|
733
|
+
width: options.badgeWidth
|
|
734
|
+
});
|
|
735
|
+
const detailText = truncate(String(detail), options.detailWidth);
|
|
736
|
+
const formattedDetail = formatDetail(detailText, options.color);
|
|
737
|
+
const content = `${label} ${badge} ${formattedDetail}`;
|
|
738
|
+
|
|
739
|
+
return boxLine(content, {
|
|
740
|
+
color: options.color,
|
|
741
|
+
unicode: options.unicode,
|
|
742
|
+
width: options.width
|
|
743
|
+
});
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
function renderLargeHeader(options) {
|
|
747
|
+
return LARGE_AGENT_WORDMARK.map((line, index) => {
|
|
748
|
+
const agent = options.color.bold(options.color.text(line));
|
|
749
|
+
const os = options.color.bold(options.color.brand(LARGE_OS_WORDMARK[index]));
|
|
750
|
+
|
|
751
|
+
return `${options.color.dim(options.color.brand("▌"))} ${agent} ${os}`;
|
|
752
|
+
});
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
function formatCompactHeader(color) {
|
|
756
|
+
return `${color.bold(color.text("Agent"))}${color.bold(color.brand("OS"))}`;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
function renderReadyBlock(options) {
|
|
760
|
+
const width = panelWidth(options.columns);
|
|
761
|
+
const readyLine = options.color.bold(options.color.success("✓ AgentOS ready"));
|
|
762
|
+
const localUiLine = options.finalInfo
|
|
763
|
+
? `${options.color.text("Local UI:")} ${formatDetail(options.finalInfo, options.color)}`
|
|
764
|
+
: "";
|
|
765
|
+
|
|
766
|
+
if (width < DASHBOARD_MIN_COLUMNS) {
|
|
767
|
+
return localUiLine ? [readyLine, localUiLine] : [readyLine];
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
const lines = [
|
|
771
|
+
renderBorder({
|
|
772
|
+
color: options.color,
|
|
773
|
+
title: "READY",
|
|
774
|
+
unicode: options.unicode,
|
|
775
|
+
width,
|
|
776
|
+
edge: "top"
|
|
777
|
+
}),
|
|
778
|
+
boxLine(readyLine, {
|
|
779
|
+
color: options.color,
|
|
780
|
+
unicode: options.unicode,
|
|
781
|
+
width
|
|
782
|
+
})
|
|
783
|
+
];
|
|
784
|
+
|
|
785
|
+
if (localUiLine) {
|
|
786
|
+
lines.push(boxLine(localUiLine, {
|
|
787
|
+
color: options.color,
|
|
788
|
+
unicode: options.unicode,
|
|
789
|
+
width
|
|
790
|
+
}));
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
lines.push(renderBorder({
|
|
794
|
+
color: options.color,
|
|
795
|
+
unicode: options.unicode,
|
|
796
|
+
width,
|
|
797
|
+
edge: "bottom"
|
|
798
|
+
}));
|
|
799
|
+
|
|
800
|
+
return lines;
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
function renderBorder(options) {
|
|
804
|
+
const chars = boxChars(options.unicode);
|
|
805
|
+
const left = options.edge === "bottom" ? chars.bottomLeft : options.edge === "middle" ? chars.middleLeft : chars.topLeft;
|
|
806
|
+
const right = options.edge === "bottom" ? chars.bottomRight : options.edge === "middle" ? chars.middleRight : chars.topRight;
|
|
807
|
+
const horizontal = options.edge === "middle" ? chars.middle : chars.horizontal;
|
|
808
|
+
const innerWidth = Math.max(0, options.width - 2);
|
|
809
|
+
|
|
810
|
+
if (options.title && options.edge === "top") {
|
|
811
|
+
const title = ` ${options.title} `;
|
|
812
|
+
const safeTitle = truncate(title, Math.max(0, innerWidth - 2));
|
|
813
|
+
const remaining = Math.max(0, innerWidth - safeTitle.length - 1);
|
|
814
|
+
|
|
815
|
+
return options.color.brand(`${left}${horizontal}${safeTitle}${horizontal.repeat(remaining)}${right}`);
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
const paintBorder = options.edge === "middle" ? options.color.accent : options.color.brand;
|
|
819
|
+
|
|
820
|
+
return paintBorder(`${left}${horizontal.repeat(innerWidth)}${right}`);
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
function boxLine(value, options) {
|
|
824
|
+
const chars = boxChars(options.unicode);
|
|
825
|
+
const innerWidth = Math.max(0, options.width - 4);
|
|
826
|
+
const safeValue = stripAnsi(value).length > innerWidth ? truncate(stripAnsi(value), innerWidth) : value;
|
|
827
|
+
const padded = padAnsi(safeValue, innerWidth);
|
|
828
|
+
|
|
829
|
+
return `${options.color.brand(chars.vertical)} ${padded} ${options.color.brand(chars.vertical)}`;
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
function boxChars(unicode) {
|
|
833
|
+
if (!unicode) {
|
|
834
|
+
return {
|
|
835
|
+
topLeft: "+",
|
|
836
|
+
topRight: "+",
|
|
837
|
+
bottomLeft: "+",
|
|
838
|
+
bottomRight: "+",
|
|
839
|
+
middleLeft: "+",
|
|
840
|
+
middleRight: "+",
|
|
841
|
+
horizontal: "-",
|
|
842
|
+
middle: "-",
|
|
843
|
+
vertical: "|"
|
|
844
|
+
};
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
return {
|
|
848
|
+
topLeft: "┌",
|
|
849
|
+
topRight: "┐",
|
|
850
|
+
bottomLeft: "└",
|
|
851
|
+
bottomRight: "┘",
|
|
852
|
+
middleLeft: "├",
|
|
853
|
+
middleRight: "┤",
|
|
854
|
+
horizontal: "─",
|
|
855
|
+
middle: "─",
|
|
856
|
+
vertical: "│"
|
|
857
|
+
};
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
function divider(columns, unicode = true) {
|
|
861
|
+
return (unicode ? "─" : "-").repeat(Math.max(24, Math.min(normalizeColumns(columns), PANEL_MAX_COLUMNS)));
|
|
569
862
|
}
|
|
570
863
|
|
|
571
864
|
function parseHex(value) {
|
|
@@ -596,6 +889,20 @@ function normalizeColumns(columns) {
|
|
|
596
889
|
return typeof columns === "number" && Number.isFinite(columns) && columns > 0 ? columns : 80;
|
|
597
890
|
}
|
|
598
891
|
|
|
892
|
+
function panelWidth(columns) {
|
|
893
|
+
return Math.max(24, Math.min(normalizeColumns(columns), PANEL_MAX_COLUMNS));
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
function padAnsi(value, width) {
|
|
897
|
+
const visibleLength = stripAnsi(value).length;
|
|
898
|
+
|
|
899
|
+
if (visibleLength >= width) {
|
|
900
|
+
return value;
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
return `${value}${" ".repeat(width - visibleLength)}`;
|
|
904
|
+
}
|
|
905
|
+
|
|
599
906
|
function countTerminalLines(value, columns) {
|
|
600
907
|
const normalized = value.endsWith("\n") ? value.slice(0, -1) : value;
|
|
601
908
|
|
package/bundle/.next/BUILD_ID
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
C5KQaZvAavAtZzYvH3CPw
|
|
@@ -4,12 +4,13 @@
|
|
|
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/files/reveal/route": "/api/files/reveal",
|
|
8
|
-
"/api/mission/route": "/api/mission",
|
|
9
7
|
"/api/gateway/control/route": "/api/gateway/control",
|
|
8
|
+
"/api/agents/[agentId]/chat/route": "/api/agents/[agentId]/chat",
|
|
9
|
+
"/api/mission/route": "/api/mission",
|
|
10
|
+
"/api/files/reveal/route": "/api/files/reveal",
|
|
10
11
|
"/api/integrations/[integrationId]/status/route": "/api/integrations/[integrationId]/status",
|
|
11
12
|
"/api/models/catalog/route": "/api/models/catalog",
|
|
12
|
-
"/api/
|
|
13
|
+
"/api/openclaw/compatibility-smoke/route": "/api/openclaw/compatibility-smoke",
|
|
13
14
|
"/api/planner/[planId]/deploy/route": "/api/planner/[planId]/deploy",
|
|
14
15
|
"/api/planner/[planId]/document-rewrite/route": "/api/planner/[planId]/document-rewrite",
|
|
15
16
|
"/api/planner/[planId]/route": "/api/planner/[planId]",
|
|
@@ -18,25 +19,25 @@
|
|
|
18
19
|
"/api/planner/route": "/api/planner",
|
|
19
20
|
"/api/reset/route": "/api/reset",
|
|
20
21
|
"/api/runtimes/[runtimeId]/route": "/api/runtimes/[runtimeId]",
|
|
21
|
-
"/api/models/providers/route": "/api/models/providers",
|
|
22
22
|
"/api/settings/gateway/route": "/api/settings/gateway",
|
|
23
23
|
"/api/settings/openclaw-binary/route": "/api/settings/openclaw-binary",
|
|
24
24
|
"/api/settings/workspace-root/route": "/api/settings/workspace-root",
|
|
25
|
-
"/api/onboarding/models/route": "/api/onboarding/models",
|
|
26
25
|
"/api/snapshot/route": "/api/snapshot",
|
|
27
|
-
"/api/
|
|
26
|
+
"/api/onboarding/models/route": "/api/onboarding/models",
|
|
28
27
|
"/api/system/open-terminal/route": "/api/system/open-terminal",
|
|
28
|
+
"/api/stream/route": "/api/stream",
|
|
29
29
|
"/api/tasks/[taskId]/abort/route": "/api/tasks/[taskId]/abort",
|
|
30
30
|
"/api/tasks/[taskId]/control/route": "/api/tasks/[taskId]/control",
|
|
31
|
+
"/api/models/providers/route": "/api/models/providers",
|
|
31
32
|
"/api/workspaces/[workspaceId]/channels/discovered-groups/route": "/api/workspaces/[workspaceId]/channels/discovered-groups",
|
|
32
33
|
"/api/tasks/[taskId]/stream/route": "/api/tasks/[taskId]/stream",
|
|
33
|
-
"/api/onboarding/route": "/api/onboarding",
|
|
34
34
|
"/api/workspaces/[workspaceId]/edit-draft/route": "/api/workspaces/[workspaceId]/edit-draft",
|
|
35
35
|
"/api/workspaces/[workspaceId]/files/route": "/api/workspaces/[workspaceId]/files",
|
|
36
36
|
"/api/workspaces/[workspaceId]/surfaces/discovery/route": "/api/workspaces/[workspaceId]/surfaces/discovery",
|
|
37
37
|
"/api/workspaces/[workspaceId]/channels/route": "/api/workspaces/[workspaceId]/channels",
|
|
38
|
-
"/api/update/route": "/api/update",
|
|
39
38
|
"/api/workspaces/route": "/api/workspaces",
|
|
39
|
+
"/api/update/route": "/api/update",
|
|
40
|
+
"/api/onboarding/route": "/api/onboarding",
|
|
40
41
|
"/agents/page": "/agents",
|
|
41
42
|
"/files/page": "/files",
|
|
42
43
|
"/integrations/page": "/integrations",
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
],
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"lowPriorityFiles": [
|
|
7
|
-
"static/
|
|
8
|
-
"static/
|
|
7
|
+
"static/C5KQaZvAavAtZzYvH3CPw/_buildManifest.js",
|
|
8
|
+
"static/C5KQaZvAavAtZzYvH3CPw/_ssgManifest.js"
|
|
9
9
|
],
|
|
10
10
|
"rootMainFiles": [
|
|
11
|
-
"static/chunks/webpack-
|
|
11
|
+
"static/chunks/webpack-13c3a46c1cdfa6e4.js",
|
|
12
12
|
"static/chunks/f6503f1c-1272160a304f8b44.js",
|
|
13
13
|
"static/chunks/4424-805347abcfa4dab9.js",
|
|
14
14
|
"static/chunks/main-app-70892a7dc1723083.js"
|