agenticros 0.1.4 → 0.1.6
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/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +114 -8
- package/dist/commands/init.js.map +1 -1
- package/dist/runners/real-robot.d.ts.map +1 -1
- package/dist/runners/real-robot.js +22 -1
- package/dist/runners/real-robot.js.map +1 -1
- package/package.json +3 -2
- package/runtime/BUNDLE.json +1 -1
- package/runtime/scripts/check-cli-tarball-install.mjs +224 -0
- package/runtime/scripts/pack-runtime.mjs +8 -21
- package/runtime/scripts/start_demo.sh +13 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAaH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAaH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgKlE"}
|
package/dist/commands/init.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* Reuses the existing shell scripts as subprocesses (no logic duplication).
|
|
15
15
|
*/
|
|
16
16
|
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
17
|
-
import { join } from "node:path";
|
|
17
|
+
import { dirname, join } from "node:path";
|
|
18
18
|
import { confirm, input, password, select } from "@inquirer/prompts";
|
|
19
19
|
import { execa } from "execa";
|
|
20
20
|
import { runDoctorChecks } from "./doctor.js";
|
|
@@ -37,11 +37,12 @@ export async function initCommand(opts) {
|
|
|
37
37
|
await syncBundleToInstallDir(targetInstallDir, { overwrite: true });
|
|
38
38
|
}
|
|
39
39
|
else {
|
|
40
|
-
//
|
|
41
|
-
//
|
|
42
|
-
//
|
|
43
|
-
|
|
44
|
-
//
|
|
40
|
+
// Step 1: always refresh shipped code (scripts/, packages/, patches/, ...)
|
|
41
|
+
// from the bundle. These are CLI-controlled paths, not user data, so
|
|
42
|
+
// overwriting them is safe and lets bug fixes propagate without --force.
|
|
43
|
+
await refreshShippedCode(targetInstallDir);
|
|
44
|
+
// Step 2: additive cp -an for any *missing* critical paths that weren't
|
|
45
|
+
// covered by Step 1 (e.g. pnpm-lock.yaml). Never clobbers existing files.
|
|
45
46
|
const missing = findMissingBundleFiles(paths.repoRoot);
|
|
46
47
|
if (missing.length > 0) {
|
|
47
48
|
warn(`Existing install is missing ${missing.length} file(s) shipped in this CLI version:`);
|
|
@@ -66,13 +67,36 @@ export async function initCommand(opts) {
|
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
69
|
const repoRoot = paths.repoRoot;
|
|
70
|
+
// Always (re)write the install dir's .npmrc from inline content. npm pack
|
|
71
|
+
// strips .npmrc from the published tarball, so we can't ship it - and even
|
|
72
|
+
// workspace-mode users benefit from having strict-peer-dependencies=false
|
|
73
|
+
// for the init flow specifically. This is a no-op for live monorepos
|
|
74
|
+
// because the root .npmrc takes precedence (pnpm walks UP for config).
|
|
75
|
+
if (paths.mode !== "workspace") {
|
|
76
|
+
writeInitNpmrcInline(repoRoot);
|
|
77
|
+
}
|
|
69
78
|
const before = await runDoctorChecks();
|
|
70
79
|
// Step: workspace deps.
|
|
71
80
|
if (opts.force || !nodeModulesPresent(repoRoot)) {
|
|
72
81
|
await runStep("Installing JS workspace dependencies (pnpm install)", async () => {
|
|
73
|
-
|
|
82
|
+
// Explicitly pass the flags here in addition to writing them to .npmrc.
|
|
83
|
+
// Reason: in some environments (containers, ephemeral CI, certain pnpm
|
|
84
|
+
// versions) the .npmrc is not picked up reliably from cwd. Passing
|
|
85
|
+
// --no-strict-peer-dependencies on the CLI guarantees mem0ai-style peer
|
|
86
|
+
// mismatches downgrade to a warning. --config.auto-install-peers=true
|
|
87
|
+
// matches the inline .npmrc value so behaviour is identical either way.
|
|
88
|
+
await execa("pnpm", [
|
|
89
|
+
"install",
|
|
90
|
+
"--no-strict-peer-dependencies",
|
|
91
|
+
"--config.auto-install-peers=true",
|
|
92
|
+
], {
|
|
74
93
|
cwd: repoRoot,
|
|
75
94
|
stdio: "inherit",
|
|
95
|
+
env: {
|
|
96
|
+
...process.env,
|
|
97
|
+
npm_config_strict_peer_dependencies: "false",
|
|
98
|
+
npm_config_auto_install_peers: "true",
|
|
99
|
+
},
|
|
76
100
|
});
|
|
77
101
|
});
|
|
78
102
|
}
|
|
@@ -253,12 +277,14 @@ async function promptAndConfigureOpenAi() {
|
|
|
253
277
|
* install (because the user previously installed an older CLI version that
|
|
254
278
|
* didn't bundle them), the init flow re-syncs additively.
|
|
255
279
|
*
|
|
280
|
+
* NOTE: .npmrc is NOT in this list - it's never bundled (npm pack strips it).
|
|
281
|
+
* We write it inline via writeInitNpmrcInline() instead.
|
|
282
|
+
*
|
|
256
283
|
* Order: most-likely-to-break-first.
|
|
257
284
|
*/
|
|
258
285
|
const CRITICAL_BUNDLE_FILES = [
|
|
259
286
|
"patches",
|
|
260
287
|
"patches/@eclipse-zenoh__zenoh-ts@1.9.0.patch",
|
|
261
|
-
".npmrc",
|
|
262
288
|
"pnpm-workspace.yaml",
|
|
263
289
|
"pnpm-lock.yaml",
|
|
264
290
|
"package.json",
|
|
@@ -266,9 +292,89 @@ const CRITICAL_BUNDLE_FILES = [
|
|
|
266
292
|
"ros2_ws/src/agenticros_sim/urdf/agenticros_amr.urdf.xacro",
|
|
267
293
|
"scripts/sim/run_sim.sh",
|
|
268
294
|
];
|
|
295
|
+
/**
|
|
296
|
+
* Files / directories the CLI considers "shipped code" - never user-modifiable
|
|
297
|
+
* - that should ALWAYS be refreshed from the bundle on init, even if they
|
|
298
|
+
* already exist. This is what lets the heal flow pick up downstream bug
|
|
299
|
+
* fixes (e.g. start_demo.sh learning to build workspace deps) without the
|
|
300
|
+
* user having to `rm -rf ~/agenticros && npx agenticros` every release.
|
|
301
|
+
*
|
|
302
|
+
* Add anything that is pure CLI-controlled code here. Do NOT add data dirs
|
|
303
|
+
* like ros2_ws/build, node_modules, or user-touchable configs.
|
|
304
|
+
*/
|
|
305
|
+
const ALWAYS_REFRESH_FROM_BUNDLE = [
|
|
306
|
+
"scripts", // start_demo.sh, sim/run_sim.sh, setup_gateway_plugin.sh, ...
|
|
307
|
+
"patches", // patched dep tarballs - immutable, must match package.json
|
|
308
|
+
"packages", // workspace TS sources & the prebuilt MCP dist
|
|
309
|
+
"ros2_ws/src", // ROS 2 package sources (msgs, sim, follow_me, ...)
|
|
310
|
+
"tsconfig.base.json",
|
|
311
|
+
"pnpm-workspace.yaml",
|
|
312
|
+
];
|
|
269
313
|
function findMissingBundleFiles(installDir) {
|
|
270
314
|
return CRITICAL_BUNDLE_FILES.filter((f) => !existsSync(join(installDir, f)));
|
|
271
315
|
}
|
|
316
|
+
/**
|
|
317
|
+
* Write an init-friendly .npmrc into the install dir.
|
|
318
|
+
*
|
|
319
|
+
* Why inline instead of bundled? `npm pack` ALWAYS strips .npmrc from the
|
|
320
|
+
* published tarball (hardcoded denylist alongside .gitignore, .npmignore).
|
|
321
|
+
* That means anything we put in runtime/.npmrc is invisible to end users.
|
|
322
|
+
* Writing it from inline JS at init/heal time guarantees the file lands.
|
|
323
|
+
*
|
|
324
|
+
* We always overwrite (not append) so each CLI upgrade can refresh the
|
|
325
|
+
* settings. If the user wants custom pnpm config they can edit
|
|
326
|
+
* ~/.npmrc (user-level) which takes precedence.
|
|
327
|
+
*/
|
|
328
|
+
function writeInitNpmrcInline(installDir) {
|
|
329
|
+
const target = join(installDir, ".npmrc");
|
|
330
|
+
const contents = [
|
|
331
|
+
"# Auto-generated by `agenticros init` - safe defaults for end-user installs.",
|
|
332
|
+
"# Devs working on the repo from a git clone use the repo root .npmrc.",
|
|
333
|
+
"# Anything you want to customise goes in ~/.npmrc (user-level), which",
|
|
334
|
+
"# takes precedence over this file.",
|
|
335
|
+
"shamefully-hoist=false",
|
|
336
|
+
"strict-peer-dependencies=false",
|
|
337
|
+
"auto-install-peers=true",
|
|
338
|
+
"",
|
|
339
|
+
].join("\n");
|
|
340
|
+
writeFileSync(target, contents);
|
|
341
|
+
ok(`Wrote install-friendly .npmrc to ${target}`);
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Refresh paths in ALWAYS_REFRESH_FROM_BUNDLE from the bundled runtime/.
|
|
345
|
+
*
|
|
346
|
+
* This is destructive *within* the listed paths: e.g. an existing
|
|
347
|
+
* ~/agenticros/scripts/start_demo.sh will be overwritten by the new bundle's
|
|
348
|
+
* version. Paths NOT on the list (config/, node_modules/, ros2_ws/build/,
|
|
349
|
+
* the user's own files, etc.) are untouched.
|
|
350
|
+
*
|
|
351
|
+
* Uses `cp -a` per path so symlinks, perms, and mtimes are preserved. Each
|
|
352
|
+
* destination is wiped first to handle "file removed from the new bundle"
|
|
353
|
+
* cleanly (e.g. an obsolete script being deleted).
|
|
354
|
+
*/
|
|
355
|
+
async function refreshShippedCode(installDir) {
|
|
356
|
+
const paths = getCliPaths();
|
|
357
|
+
const source = paths.bundleDir;
|
|
358
|
+
if (!source || !existsSync(source))
|
|
359
|
+
return;
|
|
360
|
+
const targets = ALWAYS_REFRESH_FROM_BUNDLE.filter((p) => existsSync(join(source, p)));
|
|
361
|
+
if (targets.length === 0)
|
|
362
|
+
return;
|
|
363
|
+
await withSpinner("Refreshing CLI-shipped code from the new bundle", async () => {
|
|
364
|
+
for (const rel of targets) {
|
|
365
|
+
const src = join(source, rel);
|
|
366
|
+
const dst = join(installDir, rel);
|
|
367
|
+
// Wipe the destination first so removed files in the new bundle don't
|
|
368
|
+
// linger. We're only ever inside ALWAYS_REFRESH_FROM_BUNDLE paths, which
|
|
369
|
+
// never contain user data.
|
|
370
|
+
if (existsSync(dst)) {
|
|
371
|
+
await execa("rm", ["-rf", dst]);
|
|
372
|
+
}
|
|
373
|
+
mkdirSync(dirname(dst), { recursive: true });
|
|
374
|
+
await execa("cp", ["-a", src, dst]);
|
|
375
|
+
}
|
|
376
|
+
});
|
|
377
|
+
}
|
|
272
378
|
/**
|
|
273
379
|
* Copy the bundled monorepo snapshot (`packages/agenticros-cli/runtime/`) into
|
|
274
380
|
* the user's install dir (default ~/agenticros) so colcon and pnpm have a full
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"real-robot.d.ts","sourceRoot":"","sources":["../../src/runners/real-robot.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"real-robot.d.ts","sourceRoot":"","sources":["../../src/runners/real-robot.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDxE"}
|
|
@@ -11,7 +11,7 @@ import { join } from "node:path";
|
|
|
11
11
|
import { execa } from "execa";
|
|
12
12
|
import { getCliPaths } from "../util/paths.js";
|
|
13
13
|
import { detectRosDistro } from "../util/env.js";
|
|
14
|
-
import { err, header, info } from "../util/logger.js";
|
|
14
|
+
import { err, header, info, warn } from "../util/logger.js";
|
|
15
15
|
export async function runRealRobot(opts) {
|
|
16
16
|
header("AgenticROS - real robot");
|
|
17
17
|
const paths = getCliPaths();
|
|
@@ -21,6 +21,27 @@ export async function runRealRobot(opts) {
|
|
|
21
21
|
err("Run `agenticros init` first; if you're using `npx`, this is a CLI bug — file an issue.");
|
|
22
22
|
process.exit(1);
|
|
23
23
|
}
|
|
24
|
+
// Precondition check: workspace must be installed + built. start_demo.sh
|
|
25
|
+
// now does this itself, but giving a clearer error here (before any RealSense
|
|
26
|
+
// launches) saves the user from a 200-line tsc dump.
|
|
27
|
+
const repoRoot = paths.repoRoot;
|
|
28
|
+
if (repoRoot) {
|
|
29
|
+
const nodeModules = join(repoRoot, "node_modules");
|
|
30
|
+
if (!existsSync(nodeModules)) {
|
|
31
|
+
err("JS workspace deps not installed. Run `agenticros init` first.");
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
// We only ship one prebuilt dist (claude-code). Core/ros-camera get built
|
|
35
|
+
// by `pnpm install`'s lifecycle or by `agenticros init`. If their dist is
|
|
36
|
+
// missing, start_demo.sh's `pnpm --filter ...@agenticros/claude-code build`
|
|
37
|
+
// will build them; warn the user so they don't think the CLI is stuck.
|
|
38
|
+
const coreDist = join(repoRoot, "packages", "core", "dist", "index.js");
|
|
39
|
+
if (!existsSync(coreDist)) {
|
|
40
|
+
warn("@agenticros/core dist/ missing — start_demo.sh will rebuild the\n" +
|
|
41
|
+
" workspace before launching the MCP server (~30-90s on Jetson).\n" +
|
|
42
|
+
" Tip: run `agenticros init` once after install to do this up front.");
|
|
43
|
+
}
|
|
44
|
+
}
|
|
24
45
|
const ros = detectRosDistro(opts.rosDistro);
|
|
25
46
|
if (!ros.distro) {
|
|
26
47
|
err("No ROS 2 installation detected under /opt/ros/. Install ROS 2 Humble or Jazzy first.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"real-robot.js","sourceRoot":"","sources":["../../src/runners/real-robot.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"real-robot.js","sourceRoot":"","sources":["../../src/runners/real-robot.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAQ5D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAsB;IACvD,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAElC,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,8BAA8B,MAAM,GAAG,CAAC,CAAC;QAC7C,GAAG,CACD,wFAAwF,CACzF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,yEAAyE;IACzE,8EAA8E;IAC9E,qDAAqD;IACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,+DAA+D,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,0EAA0E;QAC1E,0EAA0E;QAC1E,4EAA4E;QAC5E,uEAAuE;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,IAAI,CACF,mEAAmE;gBACjE,oEAAoE;gBACpE,sEAAsE,CACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,GAAG,CAAC,sFAAsF,CAAC,CAAC;QAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;QAAE,GAAG,CAAC,sBAAsB,CAAC,GAAG,GAAG,CAAC;IAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;QAAE,GAAG,CAAC,sBAAsB,CAAC,GAAG,GAAG,CAAC;IAE7D,IAAI,CAAC,qBAAqB,GAAG,CAAC,MAAM,yCAAyC,CAAC,CAAC;IAC/E,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE;YACxC,GAAG;YACH,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,yBAAyB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agenticros",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "AgenticROS - agentic AI for ROS-powered robots. Single CLI to launch real-robot or simulated demos, manage configuration, and inspect status.",
|
|
6
6
|
"keywords": [
|
|
@@ -37,7 +37,8 @@
|
|
|
37
37
|
"clean": "rm -rf dist runtime tsconfig.tsbuildinfo",
|
|
38
38
|
"pack:runtime": "node ../../scripts/pack-runtime.mjs",
|
|
39
39
|
"size:check": "node ../../scripts/check-cli-tarball-size.mjs",
|
|
40
|
-
"
|
|
40
|
+
"tarball:check": "node ../../scripts/check-cli-tarball-install.mjs",
|
|
41
|
+
"prepublishOnly": "pnpm run clean && pnpm run build && pnpm run pack:runtime && pnpm run size:check && pnpm run tarball:check"
|
|
41
42
|
},
|
|
42
43
|
"dependencies": {
|
|
43
44
|
"@inquirer/prompts": "^7.0.0",
|
package/runtime/BUNDLE.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"packedAt": "2026-06-05T22:
|
|
2
|
+
"packedAt": "2026-06-05T22:52:39.644Z",
|
|
3
3
|
"repo": "https://github.com/PlaiPin/agenticros",
|
|
4
4
|
"note": "This directory is a snapshot of the agenticros monorepo source. `agenticros init` will copy it to ~/agenticros and run pnpm install + colcon build there.",
|
|
5
5
|
"layout": {
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* check-cli-tarball-install.mjs
|
|
4
|
+
*
|
|
5
|
+
* Pre-publish guard that pretends to be a brand-new user on a fresh machine
|
|
6
|
+
* running `npx agenticros init`. Catches the entire class of bugs we hit
|
|
7
|
+
* across 0.1.2 -> 0.1.5:
|
|
8
|
+
*
|
|
9
|
+
* * patches/ missing from the published tarball (0.1.2 ENOENT)
|
|
10
|
+
* * .npmrc stripped by npm pack so pnpm sees strict-peer mode (0.1.4)
|
|
11
|
+
* * --no-strict-peer-dependencies not actually wired up
|
|
12
|
+
* * runtime/scripts/sim/run_sim.sh accidentally dropped
|
|
13
|
+
* * etc.
|
|
14
|
+
*
|
|
15
|
+
* Flow:
|
|
16
|
+
* 1. `npm pack` the agenticros CLI into a tmpdir
|
|
17
|
+
* 2. Extract the tarball
|
|
18
|
+
* 3. Sanity-check the extracted tree against CRITICAL_BUNDLE_FILES
|
|
19
|
+
* 4. Copy runtime/ to a sibling install dir (what init.ts does)
|
|
20
|
+
* 5. Write the inline .npmrc (mirrors init.ts writeInitNpmrcInline)
|
|
21
|
+
* 6. Run `pnpm install` with the same flags init.ts uses
|
|
22
|
+
* 7. Verify it exits 0 and that the zenoh-ts patch was actually applied
|
|
23
|
+
*
|
|
24
|
+
* Exits 0 on success, non-zero on any failure. Hooked into the CLI's
|
|
25
|
+
* `prepublishOnly` chain so `npm publish` cannot succeed without it.
|
|
26
|
+
*
|
|
27
|
+
* Run manually:
|
|
28
|
+
* node scripts/check-cli-tarball-install.mjs
|
|
29
|
+
*
|
|
30
|
+
* Skip (e.g. air-gapped CI):
|
|
31
|
+
* AGENTICROS_SKIP_TARBALL_INSTALL=1 node scripts/check-cli-tarball-install.mjs
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
import { execSync, spawnSync } from "node:child_process";
|
|
35
|
+
import { existsSync, mkdirSync, mkdtempSync, readdirSync, rmSync } from "node:fs";
|
|
36
|
+
import { tmpdir } from "node:os";
|
|
37
|
+
import { dirname, join, resolve } from "node:path";
|
|
38
|
+
import { fileURLToPath } from "node:url";
|
|
39
|
+
|
|
40
|
+
// ---------- config ----------
|
|
41
|
+
|
|
42
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
43
|
+
const REPO_ROOT = resolve(__dirname, "..");
|
|
44
|
+
const CLI_DIR = join(REPO_ROOT, "packages", "agenticros-cli");
|
|
45
|
+
|
|
46
|
+
// Mirror of CRITICAL_BUNDLE_FILES in packages/agenticros-cli/src/commands/init.ts.
|
|
47
|
+
// Keep these in sync (small surface area, low maintenance cost).
|
|
48
|
+
const REQUIRED_RUNTIME_FILES = [
|
|
49
|
+
"patches",
|
|
50
|
+
"patches/@eclipse-zenoh__zenoh-ts@1.9.0.patch",
|
|
51
|
+
"pnpm-workspace.yaml",
|
|
52
|
+
"pnpm-lock.yaml",
|
|
53
|
+
"package.json",
|
|
54
|
+
"ros2_ws/src/agenticros_sim",
|
|
55
|
+
"ros2_ws/src/agenticros_sim/urdf/agenticros_amr.urdf.xacro",
|
|
56
|
+
"scripts/sim/run_sim.sh",
|
|
57
|
+
];
|
|
58
|
+
|
|
59
|
+
// ---------- logging ----------
|
|
60
|
+
|
|
61
|
+
function step(msg) {
|
|
62
|
+
process.stdout.write(`\x1b[36m[tarball-test]\x1b[0m ${msg}\n`);
|
|
63
|
+
}
|
|
64
|
+
function ok(msg) {
|
|
65
|
+
process.stdout.write(`\x1b[32m[tarball-test ✓]\x1b[0m ${msg}\n`);
|
|
66
|
+
}
|
|
67
|
+
function fail(msg) {
|
|
68
|
+
process.stderr.write(`\x1b[31m[tarball-test ✗]\x1b[0m ${msg}\n`);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// ---------- helpers ----------
|
|
72
|
+
|
|
73
|
+
function run(cmd, args, opts = {}) {
|
|
74
|
+
const r = spawnSync(cmd, args, { encoding: "utf8", ...opts });
|
|
75
|
+
if (r.status !== 0) {
|
|
76
|
+
fail(`${cmd} ${args.join(" ")} exited ${r.status}`);
|
|
77
|
+
if (r.stdout) process.stdout.write(r.stdout);
|
|
78
|
+
if (r.stderr) process.stderr.write(r.stderr);
|
|
79
|
+
throw new Error(`Command failed: ${cmd} ${args.join(" ")}`);
|
|
80
|
+
}
|
|
81
|
+
return r;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function detectPnpm() {
|
|
85
|
+
const r = spawnSync("pnpm", ["--version"], { encoding: "utf8" });
|
|
86
|
+
if (r.status !== 0) {
|
|
87
|
+
fail("pnpm is not on PATH. Install pnpm before publishing.");
|
|
88
|
+
process.exit(2);
|
|
89
|
+
}
|
|
90
|
+
return r.stdout.trim();
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// ---------- main ----------
|
|
94
|
+
|
|
95
|
+
if (process.env.AGENTICROS_SKIP_TARBALL_INSTALL === "1") {
|
|
96
|
+
step("AGENTICROS_SKIP_TARBALL_INSTALL=1 set; skipping.");
|
|
97
|
+
process.exit(0);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const pnpmVer = detectPnpm();
|
|
101
|
+
step(`Using pnpm ${pnpmVer}`);
|
|
102
|
+
|
|
103
|
+
const work = mkdtempSync(join(tmpdir(), "agenticros-tarball-test-"));
|
|
104
|
+
const packDir = join(work, "pack");
|
|
105
|
+
const extractDir = join(work, "extract");
|
|
106
|
+
const installDir = join(work, "install");
|
|
107
|
+
mkdirSync(packDir);
|
|
108
|
+
mkdirSync(extractDir);
|
|
109
|
+
mkdirSync(installDir);
|
|
110
|
+
|
|
111
|
+
try {
|
|
112
|
+
// 1. npm pack
|
|
113
|
+
step("npm pack...");
|
|
114
|
+
const packResult = run("npm", ["pack", "--pack-destination", packDir, "--silent"], {
|
|
115
|
+
cwd: CLI_DIR,
|
|
116
|
+
});
|
|
117
|
+
const tgz = readdirSync(packDir).find((f) => f.endsWith(".tgz"));
|
|
118
|
+
if (!tgz) {
|
|
119
|
+
fail("npm pack did not produce a .tgz file.");
|
|
120
|
+
process.exit(1);
|
|
121
|
+
}
|
|
122
|
+
const tgzPath = join(packDir, tgz);
|
|
123
|
+
ok(`Packed: ${tgz}`);
|
|
124
|
+
|
|
125
|
+
// 2. extract
|
|
126
|
+
step("Extracting tarball...");
|
|
127
|
+
run("tar", ["-xzf", tgzPath, "-C", extractDir]);
|
|
128
|
+
const pkgDir = join(extractDir, "package"); // npm tar convention
|
|
129
|
+
if (!existsSync(pkgDir)) {
|
|
130
|
+
fail(`Extract did not produce a 'package/' directory.`);
|
|
131
|
+
process.exit(1);
|
|
132
|
+
}
|
|
133
|
+
ok(`Extracted to ${pkgDir}`);
|
|
134
|
+
|
|
135
|
+
// 3. critical files present in the SHIPPED tarball
|
|
136
|
+
step("Verifying critical runtime files are in the tarball...");
|
|
137
|
+
const runtimeInTar = join(pkgDir, "runtime");
|
|
138
|
+
const missing = REQUIRED_RUNTIME_FILES.filter((f) => !existsSync(join(runtimeInTar, f)));
|
|
139
|
+
if (missing.length > 0) {
|
|
140
|
+
fail(`Tarball is missing required runtime files:`);
|
|
141
|
+
for (const m of missing) process.stderr.write(` ${m}\n`);
|
|
142
|
+
process.exit(1);
|
|
143
|
+
}
|
|
144
|
+
ok(`All ${REQUIRED_RUNTIME_FILES.length} critical runtime files present.`);
|
|
145
|
+
|
|
146
|
+
// 4. simulate init: cp -a runtime/. installDir/
|
|
147
|
+
step("Copying runtime/ into a fresh install dir (simulating `agenticros init`)...");
|
|
148
|
+
run("cp", ["-a", `${runtimeInTar}/.`, installDir]);
|
|
149
|
+
ok(`Install dir populated at ${installDir}`);
|
|
150
|
+
|
|
151
|
+
// 5. write inline .npmrc (mirrors init.ts writeInitNpmrcInline)
|
|
152
|
+
step("Writing inline .npmrc (mirroring writeInitNpmrcInline)...");
|
|
153
|
+
const fs = await import("node:fs");
|
|
154
|
+
fs.writeFileSync(
|
|
155
|
+
join(installDir, ".npmrc"),
|
|
156
|
+
[
|
|
157
|
+
"shamefully-hoist=false",
|
|
158
|
+
"strict-peer-dependencies=false",
|
|
159
|
+
"auto-install-peers=true",
|
|
160
|
+
"",
|
|
161
|
+
].join("\n"),
|
|
162
|
+
);
|
|
163
|
+
ok(".npmrc written.");
|
|
164
|
+
|
|
165
|
+
// 6. pnpm install with the same flags init.ts uses
|
|
166
|
+
step("Running pnpm install with init.ts flags (this can take a minute)...");
|
|
167
|
+
const installResult = spawnSync(
|
|
168
|
+
"pnpm",
|
|
169
|
+
[
|
|
170
|
+
"install",
|
|
171
|
+
"--no-strict-peer-dependencies",
|
|
172
|
+
"--config.auto-install-peers=true",
|
|
173
|
+
"--prefer-offline",
|
|
174
|
+
"--ignore-scripts", // skip postinstalls to keep this guard fast
|
|
175
|
+
],
|
|
176
|
+
{
|
|
177
|
+
cwd: installDir,
|
|
178
|
+
encoding: "utf8",
|
|
179
|
+
env: {
|
|
180
|
+
...process.env,
|
|
181
|
+
npm_config_strict_peer_dependencies: "false",
|
|
182
|
+
npm_config_auto_install_peers: "true",
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
);
|
|
186
|
+
|
|
187
|
+
if (installResult.status !== 0) {
|
|
188
|
+
fail(`pnpm install failed (exit ${installResult.status}):`);
|
|
189
|
+
if (installResult.stdout) process.stdout.write(installResult.stdout);
|
|
190
|
+
if (installResult.stderr) process.stderr.write(installResult.stderr);
|
|
191
|
+
process.exit(1);
|
|
192
|
+
}
|
|
193
|
+
ok("pnpm install exited 0.");
|
|
194
|
+
|
|
195
|
+
// 7. verify the zenoh-ts patch was applied (signature in the pnpm store path)
|
|
196
|
+
step("Verifying zenoh-ts patch landed (looking for _patch_hash in .pnpm)...");
|
|
197
|
+
const pnpmStore = join(installDir, "node_modules", ".pnpm");
|
|
198
|
+
if (!existsSync(pnpmStore)) {
|
|
199
|
+
fail(`Expected ${pnpmStore} after pnpm install.`);
|
|
200
|
+
process.exit(1);
|
|
201
|
+
}
|
|
202
|
+
const entries = readdirSync(pnpmStore);
|
|
203
|
+
const patched = entries.find(
|
|
204
|
+
(e) => e.startsWith("@eclipse-zenoh+zenoh-ts@") && e.includes("_patch_hash="),
|
|
205
|
+
);
|
|
206
|
+
if (!patched) {
|
|
207
|
+
fail(
|
|
208
|
+
"Could not find a patched @eclipse-zenoh/zenoh-ts in the pnpm store.\n" +
|
|
209
|
+
" This means patches/ either wasn't shipped or wasn't applied.\n" +
|
|
210
|
+
" Looking for entry matching: @eclipse-zenoh+zenoh-ts@*_patch_hash=*",
|
|
211
|
+
);
|
|
212
|
+
process.exit(1);
|
|
213
|
+
}
|
|
214
|
+
ok(`Patched zenoh-ts present in store: ${patched.slice(0, 70)}...`);
|
|
215
|
+
|
|
216
|
+
ok("ALL CHECKS PASSED. Tarball is publish-ready.");
|
|
217
|
+
} finally {
|
|
218
|
+
// best-effort cleanup; don't mask earlier errors
|
|
219
|
+
try {
|
|
220
|
+
rmSync(work, { recursive: true, force: true });
|
|
221
|
+
} catch {
|
|
222
|
+
// ignore
|
|
223
|
+
}
|
|
224
|
+
}
|
|
@@ -55,6 +55,9 @@ const INCLUDED_PACKAGES = [
|
|
|
55
55
|
"agenticros-gemini",
|
|
56
56
|
];
|
|
57
57
|
|
|
58
|
+
// NOTE: .npmrc is deliberately absent here. npm pack strips .npmrc from
|
|
59
|
+
// every published tarball (hardcoded denylist), so bundling it is pointless.
|
|
60
|
+
// The CLI writes ~/agenticros/.npmrc inline at init/heal time instead.
|
|
58
61
|
const TOP_LEVEL_FILES = [
|
|
59
62
|
"package.json",
|
|
60
63
|
"pnpm-workspace.yaml",
|
|
@@ -62,7 +65,6 @@ const TOP_LEVEL_FILES = [
|
|
|
62
65
|
"tsconfig.base.json",
|
|
63
66
|
"LICENSE",
|
|
64
67
|
"README.md",
|
|
65
|
-
".npmrc",
|
|
66
68
|
];
|
|
67
69
|
|
|
68
70
|
const DOCS_FILES = ["cli.md", "architecture.md", "robot-setup.md", "memory.md"];
|
|
@@ -214,25 +216,11 @@ function copyPatches() {
|
|
|
214
216
|
copyTree(join(REPO_ROOT, "patches"), join(RUNTIME_DIR, "patches"));
|
|
215
217
|
}
|
|
216
218
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
// don't satisfy, which aborts pnpm install. Overwriting .npmrc in the
|
|
223
|
-
// shipped snapshot keeps dev strictness intact while letting `init` succeed
|
|
224
|
-
// on a clean machine.
|
|
225
|
-
logStep("Writing init-friendly .npmrc (overrides dev settings)");
|
|
226
|
-
const contents = [
|
|
227
|
-
"# Generated by scripts/pack-runtime.mjs - safe defaults for `agenticros init`.",
|
|
228
|
-
"# Devs working on the repo itself get the stricter root .npmrc.",
|
|
229
|
-
"shamefully-hoist=false",
|
|
230
|
-
"strict-peer-dependencies=false",
|
|
231
|
-
"auto-install-peers=true",
|
|
232
|
-
"",
|
|
233
|
-
].join("\n");
|
|
234
|
-
writeFileSync(join(RUNTIME_DIR, ".npmrc"), contents);
|
|
235
|
-
}
|
|
219
|
+
// NOTE: We intentionally do NOT ship runtime/.npmrc here. npm strips .npmrc
|
|
220
|
+
// from every published tarball (hardcoded denylist alongside .gitignore), so
|
|
221
|
+
// any .npmrc we write into runtime/ vanishes from the user's `npx agenticros`
|
|
222
|
+
// install. Instead, the CLI writes ~/agenticros/.npmrc from inline content at
|
|
223
|
+
// init/heal time (see commands/init.ts -> writeInitNpmrcInline).
|
|
236
224
|
|
|
237
225
|
function writeBundleManifest() {
|
|
238
226
|
const manifestPath = join(RUNTIME_DIR, "BUNDLE.json");
|
|
@@ -271,7 +259,6 @@ copyPackages();
|
|
|
271
259
|
copyTopLevel();
|
|
272
260
|
copyDocs();
|
|
273
261
|
copyPatches();
|
|
274
|
-
writeInitNpmrc(); // Must come AFTER copyTopLevel which copies the dev .npmrc
|
|
275
262
|
writeBundleManifest();
|
|
276
263
|
reportSize();
|
|
277
264
|
logStep("Done.");
|
|
@@ -43,9 +43,20 @@ else
|
|
|
43
43
|
echo " Started (pid $(cat "$CAMERA_PID_FILE"))"
|
|
44
44
|
fi
|
|
45
45
|
|
|
46
|
-
echo "==> Building @agenticros/claude-code
|
|
46
|
+
echo "==> Building TypeScript workspace (@agenticros/core, ros-camera, claude-code, ...)"
|
|
47
47
|
cd "$REPO_ROOT"
|
|
48
|
-
|
|
48
|
+
# Build claude-code AND all its dependencies (@agenticros/core, ros-camera).
|
|
49
|
+
# Without the leading dots we'd only build claude-code itself and TS would
|
|
50
|
+
# fail to resolve @agenticros/core because the dependency has no dist/ yet.
|
|
51
|
+
# `--workspace-concurrency=1` keeps logs readable on slow Jetson SDs.
|
|
52
|
+
if ! pnpm --filter '...@agenticros/claude-code' --workspace-concurrency=1 build; then
|
|
53
|
+
echo ""
|
|
54
|
+
echo " Workspace build failed. If this is your first run, do:" >&2
|
|
55
|
+
echo " agenticros init # installs deps + builds workspace" >&2
|
|
56
|
+
echo " or, from this dir:" >&2
|
|
57
|
+
echo " pnpm install && pnpm build" >&2
|
|
58
|
+
exit 2
|
|
59
|
+
fi
|
|
49
60
|
|
|
50
61
|
echo "==> Starting motor controller (robotics start motors)"
|
|
51
62
|
robotics start motors
|