{"_id":"@amaretto-software-labs/borealis-cli","_rev":"4-03118298cb73627e58f4ff3c93e19f11","name":"@amaretto-software-labs/borealis-cli","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@amaretto-software-labs/borealis-cli","version":"0.1.0","license":"Apache-2.0","_id":"@amaretto-software-labs/borealis-cli@0.1.0","maintainers":[{"name":"vlad_vasoftware","email":"vlad@vasoftware.co.uk"}],"homepage":"https://github.com/Amaretto-Software-Labs/borealis-cli#readme","bugs":{"url":"https://github.com/Amaretto-Software-Labs/borealis-cli/issues"},"bin":{"borealis":"dist/main.js"},"dist":{"shasum":"20282b98bd30a05d0d3db2c3f50cbb94ed6669f6","tarball":"https://registry.npmjs.org/@amaretto-software-labs/borealis-cli/-/borealis-cli-0.1.0.tgz","fileCount":52,"integrity":"sha512-9MphZI+3VXVE47v+zgfdWqwfKiOM3jPxHCbbuzIn+ve6rbYuPHxG/+Ud3RuBcLUv7SAHpyFRkDwNrmmoYgEpcA==","signatures":[{"sig":"MEUCIBU2CckluxQUOPBZ1jdrBxINnAEs78dUTswZTNDPQUNGAiEA/qMC5oP8vs9SlP6XZ1q8SrkLjhWe6oDytW1hDVZkujo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":299700},"type":"module","_from":"file:/Users/vlad/code/borealis-cli/amaretto-software-labs-borealis-cli-0.1.0.tgz","engines":{"node":">=22"},"scripts":{"dev":"tsx src/main.ts","lint":"eslint .","test":"vitest run","build":"tsc -p .","clean":"rm -rf dist","format":"prettier --write .","parity":"node scripts/import-dotnet-catalog.mjs --check","typecheck":"tsc -p . --noEmit","format:check":"prettier --check .","catalog:check":"node scripts/validate-public-catalog.mjs","parity:update":"node scripts/import-dotnet-catalog.mjs"},"_npmUser":{"name":"vlad_vasoftware","email":"vlad@vasoftware.co.uk"},"_resolved":"/Users/vlad/code/borealis-cli/amaretto-software-labs-borealis-cli-0.1.0.tgz","_integrity":"sha512-9MphZI+3VXVE47v+zgfdWqwfKiOM3jPxHCbbuzIn+ve6rbYuPHxG/+Ud3RuBcLUv7SAHpyFRkDwNrmmoYgEpcA==","repository":{"url":"git+https://github.com/Amaretto-Software-Labs/borealis-cli.git","type":"git"},"_npmVersion":"11.17.0","description":"Official command-line interface for the Borealis public API","directories":{},"_nodeVersion":"26.5.0","dependencies":{"ws":"^8.18.3","zod":"^4.3.6","undici":"^7.24.8","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^9.39.1","vitest":"^3.2.4","prettier":"^3.7.4","@types/ws":"^8.18.1","@eslint/js":"^9.39.1","typescript":"^5.9.2","@types/node":"^24.10.1","typescript-eslint":"^8.48.1"},"_npmOperationalInternal":{"tmp":"tmp/borealis-cli_0.1.0_1787950465704_0.18536368185608243","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@amaretto-software-labs/borealis-cli","version":"0.1.1","license":"Apache-2.0","_id":"@amaretto-software-labs/borealis-cli@0.1.1","maintainers":[{"name":"vlad_vasoftware","email":"vlad@vasoftware.co.uk"}],"homepage":"https://github.com/Amaretto-Software-Labs/borealis-cli#readme","bugs":{"url":"https://github.com/Amaretto-Software-Labs/borealis-cli/issues"},"bin":{"borealis":"dist/main.js"},"dist":{"shasum":"b99866933c71add35663be7c87c47e2c7dcacbae","tarball":"https://registry.npmjs.org/@amaretto-software-labs/borealis-cli/-/borealis-cli-0.1.1.tgz","fileCount":52,"integrity":"sha512-qyNoXhMhmh+o8FKwk4v2+CCYfn8SciCWQ3v/8NZVZFy3Fa0sS+CvV8ltEID11u59fZEekMrvxB/MBXa49JR6wA==","signatures":[{"sig":"MEYCIQDwbZR0FP3eh8vv+TmSdRO//rsTD9OhyUwA1ec5VuCQLQIhAPPOIKbinI+jw4HwG7kBUUZm737Ir5+P4lPqCKJXU+4H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amaretto-software-labs%2fborealis-cli@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":299700},"type":"module","_from":"file:/home/runner/work/_temp/publish-package/amaretto-software-labs-borealis-cli-0.1.1.tgz","engines":{"node":">=22"},"scripts":{"dev":"tsx src/main.ts","lint":"eslint .","test":"vitest run","build":"tsc -p .","clean":"rm -rf dist","format":"prettier --write .","parity":"node scripts/import-dotnet-catalog.mjs --check","typecheck":"tsc -p . --noEmit","format:check":"prettier --check .","catalog:check":"node scripts/validate-public-catalog.mjs","parity:update":"node scripts/import-dotnet-catalog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:374dab88-9673-4a5d-8658-2a7909823f1e"}},"_resolved":"/home/runner/work/_temp/publish-package/amaretto-software-labs-borealis-cli-0.1.1.tgz","_integrity":"sha512-qyNoXhMhmh+o8FKwk4v2+CCYfn8SciCWQ3v/8NZVZFy3Fa0sS+CvV8ltEID11u59fZEekMrvxB/MBXa49JR6wA==","repository":{"url":"git+https://github.com/Amaretto-Software-Labs/borealis-cli.git","type":"git"},"_npmVersion":"11.17.0","description":"Official command-line interface for the Borealis public API","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.18.3","zod":"^4.3.6","undici":"^7.24.8","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^9.39.1","vitest":"^3.2.4","prettier":"^3.7.4","@types/ws":"^8.18.1","@eslint/js":"^9.39.1","typescript":"^5.9.2","@types/node":"^24.10.1","typescript-eslint":"^8.48.1"},"_npmOperationalInternal":{"tmp":"tmp/borealis-cli_0.1.1_1787953437326_0.1381145481208672","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@amaretto-software-labs/borealis-cli","version":"0.1.2","license":"Apache-2.0","_id":"@amaretto-software-labs/borealis-cli@0.1.2","maintainers":[{"name":"vlad_vasoftware","email":"vlad@vasoftware.co.uk"}],"homepage":"https://github.com/Amaretto-Software-Labs/borealis-cli#readme","bugs":{"url":"https://github.com/Amaretto-Software-Labs/borealis-cli/issues"},"bin":{"borealis":"dist/main.js"},"dist":{"shasum":"3746ea4cb6eada23fa44b038afbc1bbeae1fd438","tarball":"https://registry.npmjs.org/@amaretto-software-labs/borealis-cli/-/borealis-cli-0.1.2.tgz","fileCount":55,"integrity":"sha512-CHv3vRqj7iMSqRMBWFYgWWdCjJph34AU8G2j6XjEVpHbRsQ+u0U8iqktqaPZehsAfbyZnWEAO8zH/L8j48zUFA==","signatures":[{"sig":"MEQCICR4mjGhMBscO+sVzkrNATmogcuw3cbc3tGm5RxyVbPpAiBGJhIw3ThxO0l9YfO9kxX0QQx+9mBEVPsFTB/EQMvzaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amaretto-software-labs%2fborealis-cli@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":321639},"type":"module","_from":"file:/home/runner/work/_temp/publish-package/amaretto-software-labs-borealis-cli-0.1.2.tgz","engines":{"node":">=22"},"scripts":{"dev":"tsx src/main.ts","lint":"eslint .","test":"vitest run","build":"tsc -p .","clean":"rm -rf dist","format":"prettier --write .","parity":"node scripts/import-dotnet-catalog.mjs --check","typecheck":"tsc -p . --noEmit","format:check":"prettier --check .","catalog:check":"node scripts/validate-public-catalog.mjs","parity:update":"node scripts/import-dotnet-catalog.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:374dab88-9673-4a5d-8658-2a7909823f1e"}},"_resolved":"/home/runner/work/_temp/publish-package/amaretto-software-labs-borealis-cli-0.1.2.tgz","_integrity":"sha512-CHv3vRqj7iMSqRMBWFYgWWdCjJph34AU8G2j6XjEVpHbRsQ+u0U8iqktqaPZehsAfbyZnWEAO8zH/L8j48zUFA==","repository":{"url":"git+https://github.com/Amaretto-Software-Labs/borealis-cli.git","type":"git"},"_npmVersion":"11.17.0","description":"Official command-line interface for the Borealis public API","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ws":"^8.18.3","zod":"^4.3.6","undici":"^7.24.8","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","eslint":"^9.39.1","vitest":"^3.2.4","prettier":"^3.7.4","@types/ws":"^8.18.1","@eslint/js":"^9.39.1","typescript":"^5.9.2","@types/node":"^24.10.1","typescript-eslint":"^8.48.1"},"_npmOperationalInternal":{"tmp":"tmp/borealis-cli_0.1.2_1788086581972_0.10811946649586779","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@amaretto-software-labs/borealis-cli","version":"0.1.3","description":"Official command-line interface for the Borealis public API","license":"Apache-2.0","type":"module","repository":{"type":"git","url":"git+https://github.com/Amaretto-Software-Labs/borealis-cli.git"},"homepage":"https://github.com/Amaretto-Software-Labs/borealis-cli#readme","bugs":{"url":"https://github.com/Amaretto-Software-Labs/borealis-cli/issues"},"engines":{"node":">=22"},"bin":{"borealis":"dist/main.js"},"dependencies":{"commander":"^14.0.3","undici":"^7.24.8","ws":"^8.18.3","zod":"^4.3.6"},"devDependencies":{"@eslint/js":"^9.39.1","@types/node":"^24.10.1","@types/ws":"^8.18.1","eslint":"^9.39.1","prettier":"^3.7.4","tsx":"^4.21.0","typescript":"^5.9.2","typescript-eslint":"^8.48.1","vitest":"^3.2.4"},"scripts":{"build":"tsc -p .","catalog:check":"node scripts/validate-public-catalog.mjs","clean":"rm -rf dist","dev":"tsx src/main.ts","format:check":"prettier --check .","format":"prettier --write .","lint":"eslint .","parity":"node scripts/import-dotnet-catalog.mjs --check","parity:update":"node scripts/import-dotnet-catalog.mjs","test":"vitest run","typecheck":"tsc -p . --noEmit"},"_id":"@amaretto-software-labs/borealis-cli@0.1.3","_integrity":"sha512-1X8BX5DLavg1i5K6xdYYcSBmDvZGl4zV2BpE9ww/Ph/jyRyfTmOFJWrWyz9N6nHASorioudF+9QLddRh1EDlcg==","_resolved":"/home/runner/work/_temp/publish-package/amaretto-software-labs-borealis-cli-0.1.3.tgz","_from":"file:/home/runner/work/_temp/publish-package/amaretto-software-labs-borealis-cli-0.1.3.tgz","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-1X8BX5DLavg1i5K6xdYYcSBmDvZGl4zV2BpE9ww/Ph/jyRyfTmOFJWrWyz9N6nHASorioudF+9QLddRh1EDlcg==","shasum":"90dc1bc93bacce10ca1c0c6fc9d1ba0b784e3b2d","tarball":"https://registry.npmjs.org/@amaretto-software-labs/borealis-cli/-/borealis-cli-0.1.3.tgz","fileCount":55,"unpackedSize":322463,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@amaretto-software-labs%2fborealis-cli@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHSP1cC3WfRp738XyHusWwCG3sJ4mfCtlCCB1DMvZI/hAiEA0VG82YoGnUrBJPVR/HwJ0nlObExraUDryjUzaPzfnug="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:374dab88-9673-4a5d-8658-2a7909823f1e"}},"directories":{},"maintainers":[{"name":"vlad_vasoftware","email":"vlad@vasoftware.co.uk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/borealis-cli_0.1.3_1788870950983_0.5936667261734299"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-28T20:54:25.479Z","modified":"2026-09-08T12:35:51.493Z","0.1.0":"2026-08-28T20:54:25.836Z","0.1.1":"2026-08-28T21:43:57.469Z","0.1.2":"2026-08-30T10:43:02.116Z","0.1.3":"2026-09-08T12:35:51.119Z"},"bugs":{"url":"https://github.com/Amaretto-Software-Labs/borealis-cli/issues"},"license":"Apache-2.0","homepage":"https://github.com/Amaretto-Software-Labs/borealis-cli#readme","repository":{"type":"git","url":"git+https://github.com/Amaretto-Software-Labs/borealis-cli.git"},"description":"Official command-line interface for the Borealis public API","maintainers":[{"name":"vlad_vasoftware","email":"vlad@vasoftware.co.uk"}],"readme":"# Borealis CLI\n\nThe official, open-source command-line client for the versioned Borealis public API. The CLI is an ordinary Node.js package: there are no platform-specific executables to download or unpack.\n\nWebsite: [borealishq.io](https://borealishq.io) · Built by [Amaretto Software Labs](https://amarettosoftware.com)\n\n## Install\n\nNode.js 22 or newer is required.\n\n```bash\nnpx @amaretto-software-labs/borealis-cli --help\nnpm install --global @amaretto-software-labs/borealis-cli\nborealis auth login\n```\n\n## Authentication\n\nInteractive login uses OAuth authorization code flow with S256 PKCE and refresh tokens:\n\nIf browser sign-in fails or you cancel consent, keep the CLI running. The branded\nrecovery page offers **Try again** and **Use another account** (which signs out of\nthe web app before returning to sign-in). You can also press **Enter** in an\ninteractive terminal to start a fresh attempt, or open the recovery URL printed\nby the CLI if you closed the browser. Each attempt uses new OAuth state and PKCE\nvalues. Attempts time out after five minutes; the retry page remains available\nfor another ten minutes. **Ctrl+C** stops login and closes the local listener.\nThe success page is shown only after credentials are validated and securely saved.\n\n```bash\nborealis auth login\nborealis auth whoami\nborealis auth logout\n```\n\nNamed profiles are isolated with `--profile <name>`. Sessions use the native macOS Keychain, Linux Secret Service, or Windows DPAPI. Storage fails closed when no secure provider is available. Plaintext owner-only files require an explicit `BOREALIS_CLI_ALLOW_INSECURE_FILE_SESSION=1` opt-in.\n\nAutomation should use one of these sources:\n\n```bash\nBOREALIS_ACCESS_TOKEN=... borealis context show --json\nborealis --token-file ./token sandbox list --json\n```\n\n`--token` remains available but prints a warning because command-line arguments may be visible in process listings and shell history. Only one token source may be supplied.\n\n## Commands\n\nThe public package exposes exactly the 75 active, customer-facing operations in the Borealis v1 catalog. Platform-administration operations are intentionally excluded. Run `borealis --help` for groups and use the canonical command paths, for example:\n\n```bash\nborealis sandbox list --page 1 --page-size 50\nborealis sandbox get 018f4c28-dc05-7e91-9f8e-11e421bb8a91 --json\nborealis sandbox create --body '{\"name\":\"demo\",\"image\":\"ubuntu:24.04\"}'\nborealis host list --pool 018f4c28-dc05-7e91-9f8e-11e421bb8a91\nborealis interactive attach 018f4c28-dc05-7e91-9f8e-11e421bb8a91\n```\n\nPath identifiers are positional. Request fields can use their named kebab-case option or the transport-neutral forms:\n\n```bash\nborealis template create --set displayName=Node --set image=node:22\nborealis template create --body '{\"displayName\":\"Node\",\"defaults\":{\"name\":\"Node\",\"image\":\"node:22\"}}'\n```\n\nAll commands support `--json`. JSON output preserves the public response. Human output is a presentation of the same response. A workspace import that reaches `failed` exits with code 3, including when `--wait` is used; its JSON result is still written to stdout.\n\n### Safety\n\n- Destructive operations require a terminal confirmation or explicit `--yes`, then obtain a server-issued preflight token before mutation.\n- Keyed operations accept `--idempotency-key`; otherwise the CLI generates a UUID and sends it in `Idempotency-Key`.\n- Registry secrets should come from `BOREALIS_REGISTRY_SECRET`, `--secret-file`, or `--secret-stdin`. Direct `--secret` input emits a warning.\n- Service-principal creation requires `--output <new-file>` or `--include-secret`. Output files are created owner-only and are never overwritten; failed delivery triggers compensating revocation.\n- API, Identity, and application origins must use HTTPS. Loopback HTTP is accepted for local development only.\n- Interactive session messages are capped at 4 MiB.\n\n## Shell completion\n\n```bash\nborealis completion bash\nborealis completion zsh\nborealis completion fish\n```\n\n## Development\n\n```bash\ncorepack enable\npnpm install --frozen-lockfile\npnpm test\npnpm typecheck\npnpm lint\npnpm format:check\npnpm build\npnpm pack\n```\n\nThe checked-in `src/operations.json` is imported from `Borealis.Api.Contracts.V1.BorealisOperationCatalog`. In a Borealis source checkout, mechanically verify the 75 public commands against the canonical .NET catalog and client methods with:\n\n```bash\nBOREALIS_SOURCE_ROOT=/path/to/aurora-proto pnpm parity\n```\n\nWhen validating a source revision that still contains the former .NET CLI, the same gate also proves its registry is a one-to-one match.\n\n## Release bootstrap\n\nThe release workflow always validates and packages pushes to `main`, but its npm publish step remains disabled until the repository variable `NPM_TRUSTED_PUBLISHING_ENABLED` is exactly `true`.\n\nBecause npm trusted publishing requires the package to exist first, a maintainer must bootstrap `@amaretto-software-labs/borealis-cli` once from a locally validated tarball using an npm account with 2FA:\n\n```bash\npnpm pack\nnpm publish ./amaretto-software-labs-borealis-cli-0.1.0.tgz --access public\n```\n\nAfter that first interactive publish, configure the npm trusted publisher for `Amaretto-Software-Labs/borealis-cli` and `.github/workflows/release.yml`, then set the GitHub repository variable `NPM_TRUSTED_PUBLISHING_ENABLED=true`. No long-lived npm token is used by the workflow.\n\n## License\n\nApache-2.0. See [LICENSE](LICENSE).\n","readmeFilename":"README.md"}