agenticros 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/commands/init.d.ts.map +1 -1
  2. package/dist/commands/init.js +37 -26
  3. package/dist/commands/init.js.map +1 -1
  4. package/dist/index.js +0 -0
  5. package/dist/runners/real-robot.d.ts.map +1 -1
  6. package/dist/runners/real-robot.js +9 -21
  7. package/dist/runners/real-robot.js.map +1 -1
  8. package/dist/util/workspace.d.ts +38 -0
  9. package/dist/util/workspace.d.ts.map +1 -0
  10. package/dist/util/workspace.js +122 -0
  11. package/dist/util/workspace.js.map +1 -0
  12. package/package.json +10 -11
  13. package/runtime/BUNDLE.json +1 -1
  14. package/runtime/scripts/check-cli-tarball-install.mjs +49 -0
  15. package/runtime/scripts/configure_agenticros.sh +0 -0
  16. package/runtime/scripts/configure_for_sim.sh +0 -0
  17. package/runtime/scripts/fix-openclaw-control-ui-path.sh +0 -0
  18. package/runtime/scripts/install_cli.sh +0 -0
  19. package/runtime/scripts/install_rosbridge_from_source.sh +0 -0
  20. package/runtime/scripts/onboard_robot.sh +0 -0
  21. package/runtime/scripts/pack-runtime.mjs +0 -0
  22. package/runtime/scripts/run_demo_native.sh +0 -0
  23. package/runtime/scripts/run_nemoclaw_host_stack.sh +0 -0
  24. package/runtime/scripts/run_robot_rosbridge.sh +0 -0
  25. package/runtime/scripts/setup_gateway_plugin.sh +0 -0
  26. package/runtime/scripts/setup_robot.sh +0 -0
  27. package/runtime/scripts/setup_workspace.sh +0 -0
  28. package/runtime/scripts/sim/run_sim.sh +0 -0
  29. package/runtime/scripts/smoke_test_nemoclaw.sh +0 -0
  30. package/runtime/scripts/start_demo.sh +0 -0
  31. package/runtime/scripts/use-openclaw-2026.2.26.sh +0 -0
  32. package/runtime/scripts/use-openclaw-2026.3.11.sh +0 -0
@@ -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,CAgKlE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAcH,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,CAqKlE"}
@@ -13,7 +13,7 @@
13
13
  *
14
14
  * Reuses the existing shell scripts as subprocesses (no logic duplication).
15
15
  */
16
- import { existsSync, mkdirSync, writeFileSync } from "node:fs";
16
+ import { existsSync, mkdirSync, statSync, writeFileSync } from "node:fs";
17
17
  import { dirname, join } from "node:path";
18
18
  import { confirm, input, password, select } from "@inquirer/prompts";
19
19
  import { execa } from "execa";
@@ -21,6 +21,7 @@ import { runDoctorChecks } from "./doctor.js";
21
21
  import { getCliPaths, resetPathsCache } from "../util/paths.js";
22
22
  import { header, info, ok, warn, err, dim, withSpinner } from "../util/logger.js";
23
23
  import { writeState } from "../util/state.js";
24
+ import { isWorkspaceBuilt, isWorkspaceInstalled } from "../util/workspace.js";
24
25
  export async function initCommand(opts) {
25
26
  header("AgenticROS first-time setup");
26
27
  let paths = getCliPaths();
@@ -76,8 +77,11 @@ export async function initCommand(opts) {
76
77
  writeInitNpmrcInline(repoRoot);
77
78
  }
78
79
  const before = await runDoctorChecks();
79
- // Step: workspace deps.
80
- if (opts.force || !nodeModulesPresent(repoRoot)) {
80
+ // Step: workspace deps. We check for `.modules.yaml` (not just node_modules/)
81
+ // so a partial / aborted previous install still triggers a fresh `pnpm
82
+ // install`. Otherwise users got stuck in "node_modules exists but tsc isn't
83
+ // in .bin" purgatory.
84
+ if (opts.force || !isWorkspaceInstalled(repoRoot)) {
81
85
  await runStep("Installing JS workspace dependencies (pnpm install)", async () => {
82
86
  // Explicitly pass the flags here in addition to writing them to .npmrc.
83
87
  // Reason: in some environments (containers, ephemeral CI, certain pnpm
@@ -103,10 +107,12 @@ export async function initCommand(opts) {
103
107
  else {
104
108
  ok("JS workspace deps already installed (skip).");
105
109
  }
106
- // Step: build TS workspace.
107
- if (opts.force || !mcpDistExists()) {
110
+ // Step: build TS workspace. Check core/dist (not just MCP dist) - the MCP
111
+ // dist is pre-built in the bundle but core/ros-camera need to be built so
112
+ // claude-code's downstream consumers (and start_demo.sh) can find them.
113
+ if (opts.force || !isWorkspaceBuilt(repoRoot)) {
108
114
  await runStep("Building TypeScript workspace (pnpm build)", async () => {
109
- await execa("pnpm", ["build"], { cwd: repoRoot, stdio: "inherit" });
115
+ await execa("pnpm", ["-r", "build"], { cwd: repoRoot, stdio: "inherit" });
110
116
  });
111
117
  }
112
118
  else {
@@ -185,12 +191,6 @@ async function runStep(label, body) {
185
191
  async function runShell(cmd) {
186
192
  await execa("bash", ["-lc", cmd], { stdio: "inherit" });
187
193
  }
188
- function nodeModulesPresent(repoRoot) {
189
- return existsSync(join(repoRoot, "node_modules"));
190
- }
191
- function mcpDistExists() {
192
- return existsSync(getCliPaths().mcpDistDir);
193
- }
194
194
  function colconBuilt(ws) {
195
195
  return existsSync(join(ws, "install", "setup.bash"));
196
196
  }
@@ -343,14 +343,16 @@ function writeInitNpmrcInline(installDir) {
343
343
  /**
344
344
  * Refresh paths in ALWAYS_REFRESH_FROM_BUNDLE from the bundled runtime/.
345
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.
346
+ * Overlay copy semantics:
347
+ * * Files present in both bundle and install -> OVERWRITTEN with bundle version
348
+ * * Files in install but NOT in bundle -> PRESERVED (so pnpm's per-package
349
+ * node_modules symlinks inside packages/<pkg>/ survive a refresh)
350
+ * * Files in bundle but NOT in install -> ADDED
350
351
  *
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).
352
+ * Uses `cp -a SRC/. DST/` per path so symlinks, perms, and mtimes are
353
+ * preserved. We deliberately do NOT `rm -rf` the destination first: doing so
354
+ * destroys pnpm's per-package node_modules/.bin symlinks and breaks subsequent
355
+ * builds even though root node_modules looks healthy.
354
356
  */
355
357
  async function refreshShippedCode(installDir) {
356
358
  const paths = getCliPaths();
@@ -364,14 +366,23 @@ async function refreshShippedCode(installDir) {
364
366
  for (const rel of targets) {
365
367
  const src = join(source, rel);
366
368
  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
369
  mkdirSync(dirname(dst), { recursive: true });
374
- await execa("cp", ["-a", src, dst]);
370
+ const srcIsDir = statSync(src).isDirectory();
371
+ if (srcIsDir && existsSync(dst)) {
372
+ // Directory overlay: copy contents of SRC into DST, overwriting same-
373
+ // named files but leaving everything else alone (preserves pnpm's
374
+ // per-package node_modules symlinks).
375
+ await execa("cp", ["-a", `${src}/.`, `${dst}/`]);
376
+ }
377
+ else {
378
+ // File, OR directory that doesn't exist at dest yet: plain `cp -a`.
379
+ // Strip a stale dst first only when it's a non-dir leaf file we
380
+ // need to overwrite (e.g. tsconfig.base.json).
381
+ if (existsSync(dst) && !srcIsDir) {
382
+ await execa("rm", ["-f", dst]);
383
+ }
384
+ await execa("cp", ["-a", src, dst]);
385
+ }
375
386
  }
376
387
  });
377
388
  }
@@ -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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"}
package/dist/index.js CHANGED
File without changes
@@ -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,CAyDxE"}
1
+ {"version":3,"file":"real-robot.d.ts","sourceRoot":"","sources":["../../src/runners/real-robot.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,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,CA0CxE"}
@@ -11,7 +11,8 @@ 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, warn } from "../util/logger.js";
14
+ import { err, header, info } from "../util/logger.js";
15
+ import { ensureWorkspaceReady } from "../util/workspace.js";
15
16
  export async function runRealRobot(opts) {
16
17
  header("AgenticROS - real robot");
17
18
  const paths = getCliPaths();
@@ -21,26 +22,13 @@ export async function runRealRobot(opts) {
21
22
  err("Run `agenticros init` first; if you're using `npx`, this is a CLI bug — file an issue.");
22
23
  process.exit(1);
23
24
  }
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
- }
25
+ // Auto-recover if the workspace isn't installed/built. start_demo.sh would
26
+ // also try to build, but it doesn't run `pnpm install` first - so a partial
27
+ // ~/agenticros (node_modules dir exists but no .pnpm, .bin missing) breaks
28
+ // it. Doing it here means picking "Launch with real robot" on a fresh
29
+ // install just works without the user having to know about `init` first.
30
+ if (paths.repoRoot) {
31
+ await ensureWorkspaceReady(paths.repoRoot, "the real-robot demo");
44
32
  }
45
33
  const ros = detectRosDistro(opts.rosDistro);
46
34
  if (!ros.distro) {
@@ -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,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"}
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;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,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,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,sEAAsE;IACtE,yEAAyE;IACzE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,oBAAoB,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IACpE,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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Workspace bring-up helpers used by `agenticros init` and any runner that
3
+ * needs the JS workspace built before it can launch (currently `up real`;
4
+ * sim runners don't need TS deps).
5
+ *
6
+ * Why shared: across 0.1.2 .. 0.1.6 we kept hitting "user picks Launch
7
+ * without running init first" failures. Rather than asking the user to
8
+ * pick the right menu item, we just auto-recover.
9
+ */
10
+ /**
11
+ * `node_modules/` alone isn't proof that `pnpm install` completed - pnpm
12
+ * creates the dir before it succeeds, and a half-finished install leaves it
13
+ * empty or missing `.pnpm/` / `.bin/`. Checking for `.modules.yaml` (written
14
+ * at the END of a successful install) is a reliable success marker.
15
+ *
16
+ * We ALSO verify that per-package symlinks exist - specifically the
17
+ * agenticros-claude-code package's tsc binary. The CLI's heal flow can
18
+ * accidentally clobber per-package node_modules even when root looks
19
+ * healthy, which manifests as `sh: tsc: not found` later. Treating that
20
+ * case as "not installed" forces a clean pnpm install on next launch.
21
+ */
22
+ export declare function isWorkspaceInstalled(repoRoot: string): boolean;
23
+ /**
24
+ * `pnpm build` succeeded if @agenticros/core has been emitted. The
25
+ * agenticros-claude-code adapter is pre-built in the published bundle so
26
+ * we don't check that one.
27
+ */
28
+ export declare function isWorkspaceBuilt(repoRoot: string): boolean;
29
+ /**
30
+ * Idempotently make sure the workspace is install + build ready. Anything
31
+ * already in place is left untouched.
32
+ *
33
+ * @param repoRoot Path to the install or workspace root.
34
+ * @param what Short label describing what needs the workspace (used in
35
+ * the user-facing notice).
36
+ */
37
+ export declare function ensureWorkspaceReady(repoRoot: string, what: string): Promise<void>;
38
+ //# sourceMappingURL=workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/util/workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAkB9D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AA8CD;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Workspace bring-up helpers used by `agenticros init` and any runner that
3
+ * needs the JS workspace built before it can launch (currently `up real`;
4
+ * sim runners don't need TS deps).
5
+ *
6
+ * Why shared: across 0.1.2 .. 0.1.6 we kept hitting "user picks Launch
7
+ * without running init first" failures. Rather than asking the user to
8
+ * pick the right menu item, we just auto-recover.
9
+ */
10
+ import { existsSync, writeFileSync } from "node:fs";
11
+ import { join } from "node:path";
12
+ import { execa } from "execa";
13
+ import { info, ok, warn, withSpinner } from "./logger.js";
14
+ /**
15
+ * `node_modules/` alone isn't proof that `pnpm install` completed - pnpm
16
+ * creates the dir before it succeeds, and a half-finished install leaves it
17
+ * empty or missing `.pnpm/` / `.bin/`. Checking for `.modules.yaml` (written
18
+ * at the END of a successful install) is a reliable success marker.
19
+ *
20
+ * We ALSO verify that per-package symlinks exist - specifically the
21
+ * agenticros-claude-code package's tsc binary. The CLI's heal flow can
22
+ * accidentally clobber per-package node_modules even when root looks
23
+ * healthy, which manifests as `sh: tsc: not found` later. Treating that
24
+ * case as "not installed" forces a clean pnpm install on next launch.
25
+ */
26
+ export function isWorkspaceInstalled(repoRoot) {
27
+ const nm = join(repoRoot, "node_modules");
28
+ if (!existsSync(nm))
29
+ return false;
30
+ if (!existsSync(join(nm, ".modules.yaml")))
31
+ return false;
32
+ if (!existsSync(join(nm, ".pnpm")))
33
+ return false;
34
+ // Verify a per-package symlink. `tsc` is in claude-code's devDeps and
35
+ // gets symlinked into node_modules/.bin per workspace package; if it's
36
+ // gone, downstream `pnpm build` will fail with `tsc: not found`.
37
+ const tsc = join(repoRoot, "packages", "agenticros-claude-code", "node_modules", ".bin", "tsc");
38
+ if (!existsSync(tsc))
39
+ return false;
40
+ return true;
41
+ }
42
+ /**
43
+ * `pnpm build` succeeded if @agenticros/core has been emitted. The
44
+ * agenticros-claude-code adapter is pre-built in the published bundle so
45
+ * we don't check that one.
46
+ */
47
+ export function isWorkspaceBuilt(repoRoot) {
48
+ return existsSync(join(repoRoot, "packages", "core", "dist", "index.js"));
49
+ }
50
+ /** Write the same .npmrc init.ts writes inline (so pnpm install doesn't bail). */
51
+ function writeInstallNpmrc(repoRoot) {
52
+ writeFileSync(join(repoRoot, ".npmrc"), [
53
+ "# Auto-written by AgenticROS CLI - keeps pnpm install from failing on",
54
+ "# upstream peer-dep mismatches (mem0ai @ qdrant/pg/redis).",
55
+ "shamefully-hoist=false",
56
+ "strict-peer-dependencies=false",
57
+ "auto-install-peers=true",
58
+ "",
59
+ ].join("\n"));
60
+ }
61
+ /**
62
+ * Run `pnpm install` with the same flags init.ts uses.
63
+ */
64
+ async function runPnpmInstall(repoRoot) {
65
+ writeInstallNpmrc(repoRoot);
66
+ await execa("pnpm", [
67
+ "install",
68
+ "--no-strict-peer-dependencies",
69
+ "--config.auto-install-peers=true",
70
+ ], {
71
+ cwd: repoRoot,
72
+ stdio: "inherit",
73
+ env: {
74
+ ...process.env,
75
+ npm_config_strict_peer_dependencies: "false",
76
+ npm_config_auto_install_peers: "true",
77
+ },
78
+ });
79
+ }
80
+ /** Run `pnpm -r build` in repoRoot. */
81
+ async function runPnpmBuild(repoRoot) {
82
+ await execa("pnpm", ["-r", "build"], { cwd: repoRoot, stdio: "inherit" });
83
+ }
84
+ /**
85
+ * Idempotently make sure the workspace is install + build ready. Anything
86
+ * already in place is left untouched.
87
+ *
88
+ * @param repoRoot Path to the install or workspace root.
89
+ * @param what Short label describing what needs the workspace (used in
90
+ * the user-facing notice).
91
+ */
92
+ export async function ensureWorkspaceReady(repoRoot, what) {
93
+ const installed = isWorkspaceInstalled(repoRoot);
94
+ const built = isWorkspaceBuilt(repoRoot);
95
+ if (installed && built)
96
+ return;
97
+ info(`Preparing workspace for ${what} (one-time setup):`);
98
+ if (!installed) {
99
+ warn(" ↳ pnpm install (~1-2 min on Jetson)");
100
+ }
101
+ if (!built) {
102
+ warn(" ↳ pnpm -r build (~30-90 s)");
103
+ }
104
+ if (!installed) {
105
+ await withSpinner("Installing JS workspace dependencies (pnpm install)", async () => {
106
+ await runPnpmInstall(repoRoot);
107
+ });
108
+ }
109
+ else {
110
+ ok("JS workspace deps already installed.");
111
+ }
112
+ if (!built) {
113
+ await withSpinner("Building TypeScript workspace (pnpm -r build)", async () => {
114
+ await runPnpmBuild(repoRoot);
115
+ });
116
+ }
117
+ else {
118
+ ok("TypeScript workspace already built.");
119
+ }
120
+ ok("Workspace is ready.");
121
+ }
122
+ //# sourceMappingURL=workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/util/workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agenticros",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
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": [
@@ -31,15 +31,6 @@
31
31
  "engines": {
32
32
  "node": ">=20.0.0"
33
33
  },
34
- "scripts": {
35
- "build": "tsc",
36
- "typecheck": "tsc --noEmit",
37
- "clean": "rm -rf dist runtime tsconfig.tsbuildinfo",
38
- "pack:runtime": "node ../../scripts/pack-runtime.mjs",
39
- "size:check": "node ../../scripts/check-cli-tarball-size.mjs",
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"
42
- },
43
34
  "dependencies": {
44
35
  "@inquirer/prompts": "^7.0.0",
45
36
  "commander": "^12.1.0",
@@ -58,5 +49,13 @@
58
49
  "type": "git",
59
50
  "url": "git+https://github.com/PlaiPin/agenticros.git",
60
51
  "directory": "packages/agenticros-cli"
52
+ },
53
+ "scripts": {
54
+ "build": "tsc",
55
+ "typecheck": "tsc --noEmit",
56
+ "clean": "rm -rf dist runtime tsconfig.tsbuildinfo",
57
+ "pack:runtime": "node ../../scripts/pack-runtime.mjs",
58
+ "size:check": "node ../../scripts/check-cli-tarball-size.mjs",
59
+ "tarball:check": "node ../../scripts/check-cli-tarball-install.mjs"
61
60
  }
62
- }
61
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
- "packedAt": "2026-06-05T22:52:39.644Z",
2
+ "packedAt": "2026-06-05T23:06:49.989Z",
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": {
@@ -213,6 +213,55 @@ try {
213
213
  }
214
214
  ok(`Patched zenoh-ts present in store: ${patched.slice(0, 70)}...`);
215
215
 
216
+ // 8. Refresh-over-existing-install coverage. Mirrors what init.ts does in
217
+ // "installed mode" - overlay-copy bundle paths over an existing install
218
+ // without nuking pnpm's per-package symlinks. Regression test for 0.1.7:
219
+ // cp -a SRC/. DST/ blows up when DST is a file (e.g. tsconfig.base.json).
220
+ step("Simulating refresh over a pre-existing snapshot (regression test for 0.1.7)...");
221
+ const fakeOld = join(work, "old-install");
222
+ mkdirSync(fakeOld);
223
+ fs.writeFileSync(join(fakeOld, "tsconfig.base.json"), '{"old":"to-be-overwritten"}');
224
+ mkdirSync(join(fakeOld, "packages"), { recursive: true });
225
+ fs.writeFileSync(
226
+ join(fakeOld, "packages", "preserved.txt"),
227
+ "must survive overlay refresh",
228
+ );
229
+
230
+ // Replay the refresh logic from init.ts. If init.ts changes its branching,
231
+ // update this block in lockstep.
232
+ const refreshTargets = ["tsconfig.base.json", "packages"];
233
+ for (const rel of refreshTargets) {
234
+ const src = join(runtimeInTar, rel);
235
+ const dst = join(fakeOld, rel);
236
+ if (!existsSync(src)) continue;
237
+ const srcIsDir = fs.statSync(src).isDirectory();
238
+ if (srcIsDir && existsSync(dst)) {
239
+ run("cp", ["-a", `${src}/.`, `${dst}/`]);
240
+ } else {
241
+ if (existsSync(dst) && !srcIsDir) run("rm", ["-f", dst]);
242
+ run("cp", ["-a", src, dst]);
243
+ }
244
+ }
245
+
246
+ const tsStat = fs.statSync(join(fakeOld, "tsconfig.base.json"));
247
+ if (!tsStat.isFile()) {
248
+ fail("Refresh turned tsconfig.base.json into a non-file. cp branching is wrong.");
249
+ process.exit(1);
250
+ }
251
+ const tsContent = fs.readFileSync(join(fakeOld, "tsconfig.base.json"), "utf8");
252
+ if (tsContent.includes('"old":"to-be-overwritten"')) {
253
+ fail("Refresh failed to overwrite tsconfig.base.json with the bundle's version.");
254
+ process.exit(1);
255
+ }
256
+ if (!existsSync(join(fakeOld, "packages", "preserved.txt"))) {
257
+ fail(
258
+ "Refresh wiped a pre-existing file inside packages/. Overlay semantics " +
259
+ "are broken - this is exactly what kills pnpm's per-package node_modules symlinks.",
260
+ );
261
+ process.exit(1);
262
+ }
263
+ ok("Refresh-over-existing-install preserves files and overwrites cleanly.");
264
+
216
265
  ok("ALL CHECKS PASSED. Tarball is publish-ready.");
217
266
  } finally {
218
267
  // best-effort cleanup; don't mask earlier errors
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes