diff --git a/nemoclaw/package.json b/nemoclaw/package.json index d338ee785..0d26662c1 100644 --- a/nemoclaw/package.json +++ b/nemoclaw/package.json @@ -6,6 +6,9 @@ "type": "module", "main": "dist/index.js", "types": "dist/index.d.ts", + "bin": { + "nemoclaw-runner": "./dist/blueprint/runner.js" + }, "openclaw": { "extensions": [ "./dist/index.js" diff --git a/nemoclaw/src/blueprint/runner.ts b/nemoclaw/src/blueprint/runner.ts index 9322b0e03..d96757584 100644 --- a/nemoclaw/src/blueprint/runner.ts +++ b/nemoclaw/src/blueprint/runner.ts @@ -1,3 +1,4 @@ +#!/usr/bin/env node // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 @@ -448,3 +449,12 @@ export async function main(argv: string[] = process.argv.slice(2)): Promise { + process.stderr.write((e instanceof Error ? e.message : String(e)) + "\n"); + process.exit(1); + }); +} diff --git a/nemoclaw/src/blueprint/snapshot.ts b/nemoclaw/src/blueprint/snapshot.ts index d711f6880..e9fca2390 100644 --- a/nemoclaw/src/blueprint/snapshot.ts +++ b/nemoclaw/src/blueprint/snapshot.ts @@ -9,6 +9,9 @@ * - Restore: push snapshot contents into sandbox filesystem * - Cutover: rename host config to archived, point OpenClaw at sandbox * - Rollback: restore host config from snapshot + * + * TODO(#977): Wire into the `nemoclaw migrate` command alongside migration-state.ts. + * These functions are tested and ready; they need a CLI entry point. */ import type { Dirent } from "node:fs"; diff --git a/nemoclaw/src/commands/migration-state.ts b/nemoclaw/src/commands/migration-state.ts index 09deb2f69..2fb5341bf 100644 --- a/nemoclaw/src/commands/migration-state.ts +++ b/nemoclaw/src/commands/migration-state.ts @@ -1,6 +1,13 @@ // SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-License-Identifier: Apache-2.0 +/** + * Migration state detection and snapshot bundling for the `nemoclaw migrate` flow. + * + * TODO(#977): Wire into the `nemoclaw migrate` command alongside snapshot.ts. + * This module is tested and ready; it needs a CLI entry point. + */ + import { chmodSync, copyFileSync,