@sapienx/agentos 0.1.1 → 0.1.4
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/README.md +14 -0
- package/bin/agentos.js +426 -14
- package/bundle/.next/BUILD_ID +1 -1
- package/bundle/.next/app-path-routes-manifest.json +12 -11
- package/bundle/.next/build-manifest.json +2 -2
- package/bundle/.next/routes-manifest.json +6 -0
- package/bundle/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/_global-error.html +2 -2
- 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_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/api/agents/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/diagnostics/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/diagnostics/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/files/reveal/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/gateway/control/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/gateway/control/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/mission/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/mission/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/onboarding/models/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/onboarding/models/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/onboarding/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/planner/[planId]/deploy/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/planner/[planId]/deploy/route_client-reference-manifest.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]/route_client-reference-manifest.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]/simulate/route_client-reference-manifest.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/[planId]/turn/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/planner/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/planner/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/reset/route.js +3 -0
- package/bundle/.next/server/app/api/reset/route.js.nft.json +1 -0
- package/bundle/.next/server/app/api/reset/route_client-reference-manifest.js +1 -0
- package/bundle/.next/server/app/api/runtimes/[runtimeId]/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/runtimes/[runtimeId]/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/settings/gateway/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/settings/gateway/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/settings/workspace-root/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/settings/workspace-root/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/snapshot/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/snapshot/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/stream/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/stream/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/system/open-terminal/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/update/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/api/workspaces/route.js.nft.json +1 -1
- package/bundle/.next/server/app/api/workspaces/route_client-reference-manifest.js +1 -1
- package/bundle/.next/server/app/page.js +11 -8
- 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-paths-manifest.json +12 -11
- package/bundle/.next/server/chunks/907.js +22 -22
- package/bundle/.next/server/functions-config-manifest.json +1 -0
- package/bundle/.next/server/pages/404.html +1 -1
- package/bundle/.next/server/pages/500.html +2 -2
- package/bundle/.next/static/chunks/632-05d72f27d1a1075e.js +13 -0
- package/bundle/.next/static/chunks/app/{_not-found/page-0d1d1bc0507fcf1d.js → _global-error/page-b01b0a6fdf60f7fe.js} +1 -1
- package/bundle/.next/static/chunks/app/{api/agents/route-0d1d1bc0507fcf1d.js → _not-found/page-b01b0a6fdf60f7fe.js} +1 -1
- package/bundle/.next/static/chunks/app/api/{diagnostics/route-0d1d1bc0507fcf1d.js → agents/route-b01b0a6fdf60f7fe.js} +1 -1
- package/bundle/.next/static/chunks/app/{_global-error/page-0d1d1bc0507fcf1d.js → api/diagnostics/route-b01b0a6fdf60f7fe.js} +1 -1
- package/bundle/.next/static/chunks/app/api/files/reveal/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/gateway/control/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/mission/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/onboarding/models/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/onboarding/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/planner/[planId]/deploy/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/planner/[planId]/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/planner/[planId]/simulate/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/planner/[planId]/turn/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/planner/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/reset/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/runtimes/[runtimeId]/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/settings/gateway/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/settings/workspace-root/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/snapshot/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/stream/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/system/open-terminal/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/update/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/api/workspaces/route-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/not-found-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/app/page-2cb34a431e05ffbc.js +14 -0
- package/bundle/.next/static/chunks/next/dist/client/components/builtin/app-error-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/next/dist/client/components/builtin/forbidden-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b01b0a6fdf60f7fe.js +1 -0
- package/bundle/.next/static/css/b437564fd435ab82.css +3 -0
- package/bundle/.next/static/vVu-6A-oCIV07uAZGrTop/_buildManifest.js +1 -0
- package/package.json +1 -1
- package/bundle/.next/static/OapfD2WRodYTsq1oFnTgh/_buildManifest.js +0 -1
- package/bundle/.next/static/chunks/329-1f8436466b6b9b86.js +0 -13
- package/bundle/.next/static/chunks/app/api/files/reveal/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/gateway/control/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/mission/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/onboarding/models/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/onboarding/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/planner/[planId]/deploy/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/planner/[planId]/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/planner/[planId]/simulate/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/planner/[planId]/turn/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/planner/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/runtimes/[runtimeId]/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/settings/gateway/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/settings/workspace-root/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/snapshot/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/stream/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/system/open-terminal/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/update/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/api/workspaces/route-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/not-found-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/app/page-9b9885753576b25c.js +0 -11
- package/bundle/.next/static/chunks/next/dist/client/components/builtin/app-error-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/next/dist/client/components/builtin/forbidden-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/chunks/next/dist/client/components/builtin/unauthorized-0d1d1bc0507fcf1d.js +0 -1
- package/bundle/.next/static/css/fafac7874e0b1aad.css +0 -3
- /package/bundle/.next/static/{OapfD2WRodYTsq1oFnTgh → vVu-6A-oCIV07uAZGrTop}/_ssgManifest.js +0 -0
package/README.md
CHANGED
|
@@ -18,7 +18,21 @@ Optional flags:
|
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
20
|
agentos start --port 3000 --host 127.0.0.1
|
|
21
|
+
agentos start --port 3000 --host 127.0.0.1 --open
|
|
21
22
|
agentos doctor
|
|
23
|
+
agentos uninstall
|
|
22
24
|
```
|
|
23
25
|
|
|
26
|
+
Optional environment variables:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
AGENTOS_HOST=127.0.0.1
|
|
30
|
+
AGENTOS_PORT=3000
|
|
31
|
+
AGENTOS_OPEN=1
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
`agentos doctor` prints the effective URL, bundle status, Node.js compatibility, OpenClaw detection, and browser auto-open support.
|
|
35
|
+
|
|
36
|
+
`agentos uninstall` removes a release-installer copy. If the package was installed with `pnpm` or `npm`, remove it with your package manager instead.
|
|
37
|
+
|
|
24
38
|
AgentOS is designed to work with a local OpenClaw installation. If OpenClaw is missing, AgentOS still starts and guides onboarding in the UI.
|
package/bin/agentos.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
import { spawn, spawnSync } from "node:child_process";
|
|
4
|
-
import { existsSync } from "node:fs";
|
|
4
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
5
|
+
import { createInterface } from "node:readline/promises";
|
|
5
6
|
import os from "node:os";
|
|
6
7
|
import path from "node:path";
|
|
7
8
|
import process from "node:process";
|
|
@@ -14,6 +15,8 @@ const bundleDir = path.join(packageRoot, "bundle");
|
|
|
14
15
|
const bundledServerPath = path.join(bundleDir, "server.js");
|
|
15
16
|
|
|
16
17
|
const packageJson = JSON.parse(await readTextFile(packageJsonPath));
|
|
18
|
+
const defaultInstallRoot = path.join(os.homedir(), ".agentos");
|
|
19
|
+
const defaultBinDir = path.join(os.homedir(), ".local", "bin");
|
|
17
20
|
|
|
18
21
|
main().catch((error) => {
|
|
19
22
|
console.error(error instanceof Error ? error.message : String(error));
|
|
@@ -44,6 +47,16 @@ async function main() {
|
|
|
44
47
|
return;
|
|
45
48
|
}
|
|
46
49
|
|
|
50
|
+
if (firstArg === "uninstall") {
|
|
51
|
+
if (args[1] === "--help" || args[1] === "-h" || args[1] === "help") {
|
|
52
|
+
printUninstallHelp();
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
await runUninstall(args.slice(1));
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
|
|
47
60
|
if (firstArg === "start") {
|
|
48
61
|
await startServer(args.slice(1));
|
|
49
62
|
return;
|
|
@@ -57,6 +70,7 @@ async function startServer(rawArgs) {
|
|
|
57
70
|
|
|
58
71
|
const options = parseStartArgs(rawArgs);
|
|
59
72
|
const openClawCheck = detectOpenClaw();
|
|
73
|
+
const browserOpener = detectBrowserOpener();
|
|
60
74
|
|
|
61
75
|
const url = `http://${displayHost(options.host)}:${options.port}`;
|
|
62
76
|
console.log(`Starting AgentOS on ${url}`);
|
|
@@ -67,9 +81,15 @@ async function startServer(rawArgs) {
|
|
|
67
81
|
console.log(`OpenClaw detected: ${openClawCheck.version}`);
|
|
68
82
|
}
|
|
69
83
|
|
|
84
|
+
if (options.open && !browserOpener.available) {
|
|
85
|
+
console.warn(
|
|
86
|
+
`Browser auto-open is unavailable on this machine${browserOpener.detail ? ` (${browserOpener.detail})` : ""}.`
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
|
|
70
90
|
const child = spawn(process.execPath, [bundledServerPath], {
|
|
71
91
|
cwd: bundleDir,
|
|
72
|
-
stdio: "inherit",
|
|
92
|
+
stdio: ["inherit", "pipe", "pipe"],
|
|
73
93
|
env: {
|
|
74
94
|
...process.env,
|
|
75
95
|
PORT: String(options.port),
|
|
@@ -77,6 +97,13 @@ async function startServer(rawArgs) {
|
|
|
77
97
|
}
|
|
78
98
|
});
|
|
79
99
|
|
|
100
|
+
const browserState = { opened: false };
|
|
101
|
+
const relayStdout = createRelay(process.stdout, options, url, browserOpener, browserState);
|
|
102
|
+
const relayStderr = createRelay(process.stderr, options, url, browserOpener, browserState);
|
|
103
|
+
|
|
104
|
+
child.stdout.on("data", relayStdout);
|
|
105
|
+
child.stderr.on("data", relayStderr);
|
|
106
|
+
|
|
80
107
|
const forwardSignal = (signal) => {
|
|
81
108
|
if (!child.killed) {
|
|
82
109
|
child.kill(signal);
|
|
@@ -100,17 +127,64 @@ async function startServer(rawArgs) {
|
|
|
100
127
|
}
|
|
101
128
|
|
|
102
129
|
function runDoctor() {
|
|
103
|
-
const
|
|
104
|
-
const nodeVersion = process.version;
|
|
130
|
+
const options = parseStartArgs([]);
|
|
105
131
|
const openClawCheck = detectOpenClaw();
|
|
132
|
+
const browserOpener = detectBrowserOpener();
|
|
133
|
+
const targetUrl = `http://${displayHost(options.host)}:${options.port}`;
|
|
134
|
+
const checks = [
|
|
135
|
+
{
|
|
136
|
+
ok: true,
|
|
137
|
+
label: "Package",
|
|
138
|
+
detail: `${packageJson.name}@${packageJson.version}`
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
ok: isSupportedNodeVersion(process.versions.node),
|
|
142
|
+
label: "Node.js",
|
|
143
|
+
detail: `${process.version} (required >= 20.9.0)`
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
ok: true,
|
|
147
|
+
label: "Platform",
|
|
148
|
+
detail: `${os.platform()} ${os.release()}`
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
ok: existsSync(bundledServerPath),
|
|
152
|
+
label: "Bundle",
|
|
153
|
+
detail: existsSync(bundledServerPath)
|
|
154
|
+
? `ready at ${bundledServerPath}`
|
|
155
|
+
: `missing at ${bundledServerPath}`
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
ok: true,
|
|
159
|
+
label: "Target URL",
|
|
160
|
+
detail: targetUrl
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
ok: true,
|
|
164
|
+
label: "Configured env",
|
|
165
|
+
detail: formatConfiguredEnv(options)
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
ok: openClawCheck.available,
|
|
169
|
+
label: "OpenClaw",
|
|
170
|
+
detail: openClawCheck.available
|
|
171
|
+
? `${openClawCheck.version || "installed"}${openClawCheck.path ? ` at ${openClawCheck.path}` : ""}`
|
|
172
|
+
: "not found on PATH"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
ok: browserOpener.available,
|
|
176
|
+
label: "Browser opener",
|
|
177
|
+
detail: browserOpener.available
|
|
178
|
+
? `${browserOpener.command} is available`
|
|
179
|
+
: browserOpener.detail || "no supported browser opener detected"
|
|
180
|
+
}
|
|
181
|
+
];
|
|
106
182
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
console.log(`Bundle: ${existsSync(bundledServerPath) ? "ready" : "missing"}`);
|
|
111
|
-
console.log(`OpenClaw: ${openClawCheck.available ? openClawCheck.version || "installed" : "not found"}`);
|
|
183
|
+
for (const check of checks) {
|
|
184
|
+
console.log(`${check.ok ? "OK" : "WARN"} ${check.label}: ${check.detail}`);
|
|
185
|
+
}
|
|
112
186
|
|
|
113
|
-
if (!
|
|
187
|
+
if (!checks.every((check) => check.ok || check.label === "OpenClaw" || check.label === "Browser opener")) {
|
|
114
188
|
process.exitCode = 1;
|
|
115
189
|
}
|
|
116
190
|
}
|
|
@@ -119,7 +193,8 @@ function parseStartArgs(rawArgs) {
|
|
|
119
193
|
const envPort = process.env.AGENTOS_PORT || process.env.PORT;
|
|
120
194
|
const options = {
|
|
121
195
|
host: process.env.AGENTOS_HOST || "127.0.0.1",
|
|
122
|
-
port: envPort && /^\d+$/.test(envPort) ? Number(envPort) : 3000
|
|
196
|
+
port: envPort && /^\d+$/.test(envPort) ? Number(envPort) : 3000,
|
|
197
|
+
open: parseBooleanEnv(process.env.AGENTOS_OPEN)
|
|
123
198
|
};
|
|
124
199
|
|
|
125
200
|
for (let index = 0; index < rawArgs.length; index += 1) {
|
|
@@ -155,6 +230,33 @@ function parseStartArgs(rawArgs) {
|
|
|
155
230
|
continue;
|
|
156
231
|
}
|
|
157
232
|
|
|
233
|
+
if (arg === "--open" || arg === "-o") {
|
|
234
|
+
options.open = true;
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
if (arg === "--no-open") {
|
|
239
|
+
options.open = false;
|
|
240
|
+
continue;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
throw new Error(`Unknown argument: ${arg}`);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
return options;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
function parseUninstallArgs(rawArgs) {
|
|
250
|
+
const options = {
|
|
251
|
+
yes: false
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
for (const arg of rawArgs) {
|
|
255
|
+
if (arg === "--yes" || arg === "-y") {
|
|
256
|
+
options.yes = true;
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
259
|
+
|
|
158
260
|
throw new Error(`Unknown argument: ${arg}`);
|
|
159
261
|
}
|
|
160
262
|
|
|
@@ -180,6 +282,7 @@ function assertHost(value) {
|
|
|
180
282
|
}
|
|
181
283
|
|
|
182
284
|
function detectOpenClaw() {
|
|
285
|
+
const pathResult = resolveCommandPath("openclaw");
|
|
183
286
|
const result = spawnSync("openclaw", ["--version"], {
|
|
184
287
|
encoding: "utf8"
|
|
185
288
|
});
|
|
@@ -187,13 +290,53 @@ function detectOpenClaw() {
|
|
|
187
290
|
if (result.error || result.status !== 0) {
|
|
188
291
|
return {
|
|
189
292
|
available: false,
|
|
190
|
-
version: null
|
|
293
|
+
version: null,
|
|
294
|
+
path: pathResult
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
return {
|
|
299
|
+
available: true,
|
|
300
|
+
version: result.stdout.trim() || result.stderr.trim() || null,
|
|
301
|
+
path: pathResult
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
function detectBrowserOpener() {
|
|
306
|
+
if (process.platform === "darwin") {
|
|
307
|
+
return {
|
|
308
|
+
available: true,
|
|
309
|
+
command: "open",
|
|
310
|
+
args: [],
|
|
311
|
+
detail: null
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
if (process.platform === "win32") {
|
|
316
|
+
return {
|
|
317
|
+
available: true,
|
|
318
|
+
command: "cmd",
|
|
319
|
+
args: ["/c", "start", ""],
|
|
320
|
+
detail: null
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
const command = resolveCommandPath("xdg-open");
|
|
325
|
+
|
|
326
|
+
if (!command) {
|
|
327
|
+
return {
|
|
328
|
+
available: false,
|
|
329
|
+
command: "xdg-open",
|
|
330
|
+
args: [],
|
|
331
|
+
detail: "xdg-open was not found on PATH"
|
|
191
332
|
};
|
|
192
333
|
}
|
|
193
334
|
|
|
194
335
|
return {
|
|
195
336
|
available: true,
|
|
196
|
-
|
|
337
|
+
command,
|
|
338
|
+
args: [],
|
|
339
|
+
detail: null
|
|
197
340
|
};
|
|
198
341
|
}
|
|
199
342
|
|
|
@@ -214,17 +357,286 @@ function printHelp() {
|
|
|
214
357
|
|
|
215
358
|
Usage:
|
|
216
359
|
agentos
|
|
217
|
-
agentos start --port 3000 --host 127.0.0.1
|
|
360
|
+
agentos start --port 3000 --host 127.0.0.1 --open
|
|
218
361
|
agentos doctor
|
|
362
|
+
agentos uninstall [--yes]
|
|
219
363
|
agentos --version
|
|
220
364
|
|
|
221
365
|
Options:
|
|
222
366
|
--port, -p Port to bind the local server (default: 3000)
|
|
223
367
|
--host, -H Host to bind the local server (default: 127.0.0.1)
|
|
368
|
+
--open, -o Open AgentOS in the default browser after startup
|
|
369
|
+
--no-open Disable browser auto-open even if AGENTOS_OPEN is set
|
|
224
370
|
`);
|
|
225
371
|
}
|
|
226
372
|
|
|
373
|
+
function printUninstallHelp() {
|
|
374
|
+
console.log(`Remove an AgentOS release installation.
|
|
375
|
+
|
|
376
|
+
Usage:
|
|
377
|
+
agentos uninstall
|
|
378
|
+
agentos uninstall --yes
|
|
379
|
+
|
|
380
|
+
Options:
|
|
381
|
+
--yes, -y Skip the confirmation prompt
|
|
382
|
+
`);
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
function createRelay(target, options, url, browserOpener, browserState) {
|
|
386
|
+
return (chunk) => {
|
|
387
|
+
const text = chunk.toString();
|
|
388
|
+
target.write(text);
|
|
389
|
+
|
|
390
|
+
if (browserState.opened || !options.open || !browserOpener.available) {
|
|
391
|
+
return;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
if (text.includes("Ready in") || text.includes("Local:")) {
|
|
395
|
+
browserState.opened = true;
|
|
396
|
+
openBrowser(url, browserOpener);
|
|
397
|
+
}
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
function openBrowser(url, browserOpener) {
|
|
402
|
+
const browser = spawn(browserOpener.command, [...browserOpener.args, url], {
|
|
403
|
+
detached: true,
|
|
404
|
+
stdio: "ignore"
|
|
405
|
+
});
|
|
406
|
+
|
|
407
|
+
browser.on("error", (error) => {
|
|
408
|
+
console.warn(`Could not open a browser automatically: ${error.message}`);
|
|
409
|
+
});
|
|
410
|
+
|
|
411
|
+
browser.unref();
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
function resolveCommandPath(command) {
|
|
415
|
+
if (process.platform === "win32") {
|
|
416
|
+
const result = spawnSync("where", [command], {
|
|
417
|
+
encoding: "utf8"
|
|
418
|
+
});
|
|
419
|
+
|
|
420
|
+
if (result.error || result.status !== 0) {
|
|
421
|
+
return null;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
return result.stdout.split(/\r?\n/).map((line) => line.trim()).find(Boolean) || null;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
const result = spawnSync("which", [command], {
|
|
428
|
+
encoding: "utf8"
|
|
429
|
+
});
|
|
430
|
+
|
|
431
|
+
if (result.error || result.status !== 0) {
|
|
432
|
+
return null;
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
return result.stdout.trim() || null;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
function isSupportedNodeVersion(version) {
|
|
439
|
+
const [majorText, minorText] = version.split(".");
|
|
440
|
+
const major = Number(majorText);
|
|
441
|
+
const minor = Number(minorText);
|
|
442
|
+
|
|
443
|
+
if (!Number.isFinite(major) || !Number.isFinite(minor)) {
|
|
444
|
+
return false;
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
return major > 20 || (major === 20 && minor >= 9);
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
function parseBooleanEnv(value) {
|
|
451
|
+
if (!value) {
|
|
452
|
+
return false;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
const normalized = value.trim().toLowerCase();
|
|
456
|
+
return normalized === "1" || normalized === "true" || normalized === "yes" || normalized === "on";
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
function formatConfiguredEnv(options) {
|
|
460
|
+
const pairs = [
|
|
461
|
+
`AGENTOS_HOST=${options.host}`,
|
|
462
|
+
`AGENTOS_PORT=${options.port}`,
|
|
463
|
+
`AGENTOS_OPEN=${options.open ? "1" : "0"}`
|
|
464
|
+
];
|
|
465
|
+
|
|
466
|
+
return pairs.join(", ");
|
|
467
|
+
}
|
|
468
|
+
|
|
227
469
|
async function readTextFile(filePath) {
|
|
228
470
|
const { readFile } = await import("node:fs/promises");
|
|
229
471
|
return readFile(filePath, "utf8");
|
|
230
472
|
}
|
|
473
|
+
|
|
474
|
+
async function runUninstall(rawArgs) {
|
|
475
|
+
const options = parseUninstallArgs(rawArgs);
|
|
476
|
+
const install = inspectInstallation();
|
|
477
|
+
|
|
478
|
+
if (install.kind === "package-manager") {
|
|
479
|
+
printPackageManagerUninstallGuidance();
|
|
480
|
+
return;
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
if (install.kind === "source") {
|
|
484
|
+
console.log("This AgentOS copy looks like a source checkout, not a release installation.");
|
|
485
|
+
console.log(`Delete the checkout manually if you want to remove it: ${findRepoRoot()}`);
|
|
486
|
+
return;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
if (!options.yes) {
|
|
490
|
+
const confirmed = await confirmUninstall(install);
|
|
491
|
+
|
|
492
|
+
if (!confirmed) {
|
|
493
|
+
console.log("Uninstall cancelled.");
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
const removedPaths = [];
|
|
499
|
+
|
|
500
|
+
if (await removePathIfExists(install.packagePath)) {
|
|
501
|
+
removedPaths.push(install.packagePath);
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
if (install.launcherPath && (await removePathIfExists(install.launcherPath))) {
|
|
505
|
+
removedPaths.push(install.launcherPath);
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
await removeDirectoryIfEmpty(install.installRoot);
|
|
509
|
+
|
|
510
|
+
if (removedPaths.length === 0) {
|
|
511
|
+
console.log("No removable AgentOS release files were found.");
|
|
512
|
+
return;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
console.log("Removed AgentOS release installation:");
|
|
516
|
+
|
|
517
|
+
for (const removedPath of removedPaths) {
|
|
518
|
+
console.log(`- ${removedPath}`);
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
if (!install.launcherPath) {
|
|
522
|
+
console.log(`No managed launcher was detected on PATH. If you used a custom bin directory, remove that launcher manually.`);
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
function inspectInstallation() {
|
|
527
|
+
if (path.basename(packageRoot) === "package") {
|
|
528
|
+
return {
|
|
529
|
+
kind: "release",
|
|
530
|
+
installRoot: path.dirname(packageRoot),
|
|
531
|
+
packagePath: packageRoot,
|
|
532
|
+
launcherPath: detectManagedLauncher(packageRoot)
|
|
533
|
+
};
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
if (packageRoot.includes(`${path.sep}node_modules${path.sep}`) || packageRoot.includes(`${path.sep}.pnpm${path.sep}`)) {
|
|
537
|
+
return {
|
|
538
|
+
kind: "package-manager"
|
|
539
|
+
};
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
return {
|
|
543
|
+
kind: "source"
|
|
544
|
+
};
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
function printPackageManagerUninstallGuidance() {
|
|
548
|
+
console.log("This AgentOS install appears to come from a package manager.");
|
|
549
|
+
console.log("Remove it with one of:");
|
|
550
|
+
console.log(" pnpm remove -g @sapienx/agentos");
|
|
551
|
+
console.log(" npm uninstall -g @sapienx/agentos");
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
function findRepoRoot() {
|
|
555
|
+
return path.resolve(packageRoot, "..", "..");
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
function detectManagedLauncher(installedPackagePath) {
|
|
559
|
+
const scriptMarker = normalizeForMatch(path.join(installedPackagePath, "bin", "agentos.js"));
|
|
560
|
+
const candidates = new Set([
|
|
561
|
+
resolveCommandPath("agentos"),
|
|
562
|
+
path.join(defaultBinDir, "agentos")
|
|
563
|
+
]);
|
|
564
|
+
|
|
565
|
+
for (const candidate of candidates) {
|
|
566
|
+
if (!candidate || !existsSync(candidate)) {
|
|
567
|
+
continue;
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
try {
|
|
571
|
+
const contents = readFileSync(candidate, "utf8");
|
|
572
|
+
|
|
573
|
+
if (normalizeForMatch(contents).includes(scriptMarker)) {
|
|
574
|
+
return candidate;
|
|
575
|
+
}
|
|
576
|
+
} catch {
|
|
577
|
+
continue;
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
return null;
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
function normalizeForMatch(value) {
|
|
585
|
+
return value.replaceAll("\\", "/");
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
async function confirmUninstall(install) {
|
|
589
|
+
if (!process.stdin.isTTY || !process.stdout.isTTY) {
|
|
590
|
+
throw new Error("Refusing to uninstall without --yes in a non-interactive terminal.");
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
console.log("AgentOS release uninstall");
|
|
594
|
+
console.log(`Package: ${install.packagePath}`);
|
|
595
|
+
|
|
596
|
+
if (install.launcherPath) {
|
|
597
|
+
console.log(`Launcher: ${install.launcherPath}`);
|
|
598
|
+
} else {
|
|
599
|
+
console.log(`Launcher: not detected on PATH`);
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
const readline = createInterface({
|
|
603
|
+
input: process.stdin,
|
|
604
|
+
output: process.stdout
|
|
605
|
+
});
|
|
606
|
+
|
|
607
|
+
try {
|
|
608
|
+
const answer = await readline.question("Remove these files? [y/N] ");
|
|
609
|
+
return /^y(es)?$/i.test(answer.trim());
|
|
610
|
+
} finally {
|
|
611
|
+
readline.close();
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
async function removePathIfExists(targetPath) {
|
|
616
|
+
const { rm } = await import("node:fs/promises");
|
|
617
|
+
|
|
618
|
+
if (!existsSync(targetPath)) {
|
|
619
|
+
return false;
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
await rm(targetPath, {
|
|
623
|
+
recursive: true,
|
|
624
|
+
force: true
|
|
625
|
+
});
|
|
626
|
+
|
|
627
|
+
return true;
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
async function removeDirectoryIfEmpty(targetPath) {
|
|
631
|
+
const { readdir, rmdir } = await import("node:fs/promises");
|
|
632
|
+
|
|
633
|
+
if (!existsSync(targetPath)) {
|
|
634
|
+
return;
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
const entries = await readdir(targetPath);
|
|
638
|
+
|
|
639
|
+
if (entries.length === 0) {
|
|
640
|
+
await rmdir(targetPath);
|
|
641
|
+
}
|
|
642
|
+
}
|
package/bundle/.next/BUILD_ID
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
vVu-6A-oCIV07uAZGrTop
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
{
|
|
2
|
-
"/_not-found/page": "/_not-found",
|
|
3
2
|
"/_global-error/page": "/_global-error",
|
|
4
|
-
"/
|
|
5
|
-
"/api/agents/route": "/api/agents",
|
|
6
|
-
"/api/onboarding/models/route": "/api/onboarding/models",
|
|
7
|
-
"/api/files/reveal/route": "/api/files/reveal",
|
|
3
|
+
"/_not-found/page": "/_not-found",
|
|
8
4
|
"/api/mission/route": "/api/mission",
|
|
9
|
-
"/api/planner/[planId]/route": "/api/planner/[planId]",
|
|
10
5
|
"/api/gateway/control/route": "/api/gateway/control",
|
|
6
|
+
"/api/files/reveal/route": "/api/files/reveal",
|
|
7
|
+
"/api/agents/route": "/api/agents",
|
|
8
|
+
"/api/planner/[planId]/turn/route": "/api/planner/[planId]/turn",
|
|
9
|
+
"/api/planner/[planId]/deploy/route": "/api/planner/[planId]/deploy",
|
|
10
|
+
"/api/planner/[planId]/route": "/api/planner/[planId]",
|
|
11
11
|
"/api/planner/[planId]/simulate/route": "/api/planner/[planId]/simulate",
|
|
12
|
-
"/api/
|
|
12
|
+
"/api/diagnostics/route": "/api/diagnostics",
|
|
13
13
|
"/api/runtimes/[runtimeId]/route": "/api/runtimes/[runtimeId]",
|
|
14
|
-
"/api/planner/
|
|
14
|
+
"/api/planner/route": "/api/planner",
|
|
15
|
+
"/api/reset/route": "/api/reset",
|
|
15
16
|
"/api/settings/gateway/route": "/api/settings/gateway",
|
|
16
|
-
"/api/planner/[planId]/turn/route": "/api/planner/[planId]/turn",
|
|
17
17
|
"/api/settings/workspace-root/route": "/api/settings/workspace-root",
|
|
18
|
-
"/api/snapshot/route": "/api/snapshot",
|
|
19
18
|
"/api/system/open-terminal/route": "/api/system/open-terminal",
|
|
19
|
+
"/api/snapshot/route": "/api/snapshot",
|
|
20
20
|
"/api/stream/route": "/api/stream",
|
|
21
|
-
"/api/update/route": "/api/update",
|
|
22
21
|
"/api/onboarding/route": "/api/onboarding",
|
|
22
|
+
"/api/onboarding/models/route": "/api/onboarding/models",
|
|
23
|
+
"/api/update/route": "/api/update",
|
|
23
24
|
"/api/workspaces/route": "/api/workspaces",
|
|
24
25
|
"/page": "/"
|
|
25
26
|
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
],
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"lowPriorityFiles": [
|
|
7
|
-
"static/
|
|
8
|
-
"static/
|
|
7
|
+
"static/vVu-6A-oCIV07uAZGrTop/_buildManifest.js",
|
|
8
|
+
"static/vVu-6A-oCIV07uAZGrTop/_ssgManifest.js"
|
|
9
9
|
],
|
|
10
10
|
"rootMainFiles": [
|
|
11
11
|
"static/chunks/webpack-032b5b42e067a790.js",
|
|
@@ -129,6 +129,12 @@
|
|
|
129
129
|
"routeKeys": {},
|
|
130
130
|
"namedRegex": "^/api/planner(?:/)?$"
|
|
131
131
|
},
|
|
132
|
+
{
|
|
133
|
+
"page": "/api/reset",
|
|
134
|
+
"regex": "^/api/reset(?:/)?$",
|
|
135
|
+
"routeKeys": {},
|
|
136
|
+
"namedRegex": "^/api/reset(?:/)?$"
|
|
137
|
+
},
|
|
132
138
|
{
|
|
133
139
|
"page": "/api/settings/gateway",
|
|
134
140
|
"regex": "^/api/settings/gateway(?:/)?$",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_global-error/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_global-error/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"1493":{"*":{"id":"9511","name":"*","chunks":[],"async":false}},"2212":{"*":{"id":"6136","name":"*","chunks":[],"async":false}},"2629":{"*":{"id":"9711","name":"*","chunks":[],"async":false}},"3941":{"*":{"id":"5669","name":"*","chunks":[],"async":false}},"4001":{"*":{"id":"7581","name":"*","chunks":[],"async":false}},"4600":{"*":{"id":"3926","name":"*","chunks":[],"async":false}},"5072":{"*":{"id":"3020","name":"*","chunks":[],"async":false}},"6163":{"*":{"id":"7809","name":"*","chunks":[],"async":false}},"6552":{"*":{"id":"1992","name":"*","chunks":[],"async":false}},"7545":{"*":{"id":"5225","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":6163,"name":"*","chunks":[],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":6163,"name":"*","chunks":[],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/client-page.js":{"id":6552,"name":"*","chunks":[],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js":{"id":6552,"name":"*","chunks":[],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/client-segment.js":{"id":4600,"name":"*","chunks":[],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":4600,"name":"*","chunks":[],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":7545,"name":"*","chunks":[],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":7545,"name":"*","chunks":[],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/layout-router.js":{"id":4001,"name":"*","chunks":[],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":4001,"name":"*","chunks":[],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":1493,"name":"*","chunks":[],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":1493,"name":"*","chunks":[],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":2212,"name":"*","chunks":[],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":2212,"name":"*","chunks":[],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":3941,"name":"*","chunks":[],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":3941,"name":"*","chunks":[],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/app/globals.css":{"id":6728,"name":"*","chunks":["273","static/chunks/273-31916bcd40e3f381.js","177","static/chunks/app/layout-f29ac7241aef5824.js"],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/components/ui/sonner.tsx":{"id":2629,"name":"*","chunks":["273","static/chunks/273-31916bcd40e3f381.js","177","static/chunks/app/layout-f29ac7241aef5824.js"],"async":false},"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/components/mission-control/mission-control-shell.tsx":{"id":5072,"name":"*","chunks":["708","static/chunks/4a846800-ac18ff898328f8a0.js","273","static/chunks/273-31916bcd40e3f381.js","632","static/chunks/632-05d72f27d1a1075e.js","974","static/chunks/app/page-2cb34a431e05ffbc.js"],"async":false}},"entryCSSFiles":{"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/":[],"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/app/not-found":[],"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/app/layout":[{"inlined":false,"path":"static/css/b437564fd435ab82.css"}],"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/app/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/kazimakgul/Documents/GitHub/AgentOS-Core/app/_global-error/page":[]},"rscModuleMapping":{"1493":{"*":{"id":"2757","name":"*","chunks":[],"async":false}},"2212":{"*":{"id":"7786","name":"*","chunks":[],"async":false}},"2629":{"*":{"id":"2721","name":"*","chunks":[],"async":false}},"3941":{"*":{"id":"107","name":"*","chunks":[],"async":false}},"4001":{"*":{"id":"3467","name":"*","chunks":[],"async":false}},"4600":{"*":{"id":"4612","name":"*","chunks":[],"async":false}},"5072":{"*":{"id":"9787","name":"*","chunks":[],"async":false}},"6163":{"*":{"id":"5987","name":"*","chunks":[],"async":false}},"6552":{"*":{"id":"3394","name":"*","chunks":[],"async":false}},"6728":{"*":{"id":"216","name":"*","chunks":[],"async":false}},"7545":{"*":{"id":"3051","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|