{"_id":"@truealter/cli","_rev":"73-0f87bc47518859ee52df1ce00a43e3f5","name":"@truealter/cli","dist-tags":{"latest":"0.8.43","principal":"0.8.41"},"versions":{"0.1.0":{"name":"@truealter/cli","version":"0.1.0","license":"Apache-2.0","_id":"@truealter/cli@0.1.0","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"2cf4c3ec3e95ecc970df3e24d11b12eb0a53fbb0","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.1.0.tgz","fileCount":77,"integrity":"sha512-opon2bclCfpYu9YQa9z4lP4rtSGy/mAbs6n6vOBtdpFfLepnqhUT5eNU48pbh3/9FITgmKnyQ5rq2ZJDeGaWjA==","signatures":[{"sig":"MEUCIQCj/s/+fQr9c9ImUp8yeafDUSBmiinSi07heLjejT7CZwIgTkFFA7zLTi0RROUoFlT6LwCDntyGQpA//nIBw2/1snM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346228},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"72a975a9cba0a2d205cb1c4c40a4640f8cf1113e","scripts":{"test":"tsc -p tsconfig.test.json && node --test test-out/tests/","build":"tsc && node --input-type=module -e \"import {copyFileSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json')\"","start":"node dist/index.js","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI — login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.0_1776675679222_0.14371058073781873","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@truealter/cli","version":"0.2.0","license":"Apache-2.0","_id":"@truealter/cli@0.2.0","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"60054946b2af2dffb66d4060023d385d02eecd9e","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.2.0.tgz","fileCount":97,"integrity":"sha512-cM9rYlRf3hsYO6nZmTAzJxfRgV3sWp+4h4cvFjv+JwhHThFTGkFzka+gU9yNTtyhHty+1GyXFrSoltTa/ZYb+g==","signatures":[{"sig":"MEYCIQDCIHSgG7ecnNgKTp7/k3hnhe9FYLDgsnswVdtqwjsEUgIhAJm4eHpJlsrktswFLJccat/n5NDMplXOG3OMXoZqzHxC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":457862},"main":"dist/index.js","type":"module","_from":"file:/tmp/truealter-cli-0.2.0.tgz","types":"./dist/index.d.ts","scripts":{"test":"tsc -p tsconfig.test.json && node --test test-out/tests/","build":"tsc && node --input-type=module -e \"import {copyFileSync,chmodSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/tmp/truealter-cli-0.2.0.tgz","_integrity":"sha512-cM9rYlRf3hsYO6nZmTAzJxfRgV3sWp+4h4cvFjv+JwhHThFTGkFzka+gU9yNTtyhHty+1GyXFrSoltTa/ZYb+g==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"11.12.1","description":"ALTER identity CLI — login once, authenticated everywhere.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"chalk":"^5.3.0","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.4.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.0_1776914424556_0.6464486072345581","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@truealter/cli","version":"0.2.1","license":"Apache-2.0","_id":"@truealter/cli@0.2.1","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"f8794300e08d14e1aeb3620b181fb41fe8af2008","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.2.1.tgz","fileCount":98,"integrity":"sha512-Trx9v9hjA8Nivr1D4A/hSzymKMxs9YAwy3KpaZzc+x+YBjW3STJRaiFRsTHAEKb4T7iQeLCJ4QS7rF5RXYa9hg==","signatures":[{"sig":"MEUCIBlAqlT32gOe52hVo9ZaBVIllHin09r1B575cq7NI12tAiEAprZ77nSh4svCJCgYl+YCy43ANZDVAFhTz18k16hE/f8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5757904},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"f1cba6fdbc76f92ee6072848f8e749428f532629","scripts":{"test":"tsc -p tsconfig.test.json && node --test test-out/tests/","build":"tsc && node --input-type=module -e \"import {copyFileSync,chmodSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI — login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.4.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.2.1_1776919121376_0.3031825006764661","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@truealter/cli","version":"0.4.2","license":"Apache-2.0","_id":"@truealter/cli@0.4.2","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"fc3fc0d4cc2eeaae84b82ac6cc10a0d081068bdf","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.4.2.tgz","fileCount":215,"integrity":"sha512-hI+DyUU4r3z8z0CopKJP4/i6gwidi9smiVfF4i8VPvklii5U6BXIkpnsded6YtbyluvWCK6b5bSwzXCOzrKq3g==","signatures":[{"sig":"MEUCIH4OiUvwg/W03NRbtkJuA2zWJgI8OPR36drPob6V4VtcAiEAxRj+1NWbbyVuwi6Say+Y22SC90+bVM6Zz66BobWJzcY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6797400},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"5c639dd245576d6d7491507589e35d4e17c312c8","scripts":{"test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node --test test-out/tests/*.js","build":"tsc && node --input-type=module -e \"import {copyFileSync,chmodSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","test:e2e":"tsc -p tsconfig.e2e.json && node --test test-out-e2e/*.test.js","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI — login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.4.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.4.2_1777110204915_0.9033011807125104","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@truealter/cli","version":"0.4.4","license":"Apache-2.0","_id":"@truealter/cli@0.4.4","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"be5195e2ebaa3bf6ea229fd9563e99eb06c7c204","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.4.4.tgz","fileCount":117,"integrity":"sha512-I7eetUA85cwTayo4FFW/8I5k5VR+KUnZpN+jReLdPVWWDBC3iXescphYUxvC3yVRAipA5ykk6kfSnxTmnWQbEQ==","signatures":[{"sig":"MEYCIQCw6TrScwKy+fa2Ma+GSTFjRBkL5j4DuSK1iB8kR0fycwIhAOCCOGggbYjFgWxNiELEoYZsf6yAjawf/6GH4WVgHQnY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":580099},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.4.4.tgz","types":"./dist/index.d.ts","scripts":{"test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node --test test-out/tests/*.js","build":"tsc && node --input-type=module -e \"import {copyFileSync,chmodSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepare":"[ \"${npm_config_global:-}\" != \"true\" ] && [ -d .githooks ] && [ -f .git/HEAD ] && git config core.hooksPath .githooks || true","test:e2e":"tsc -p tsconfig.e2e.json && node --test test-out-e2e/*.test.js","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .)","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.4.4.tgz","_integrity":"sha512-I7eetUA85cwTayo4FFW/8I5k5VR+KUnZpN+jReLdPVWWDBC3iXescphYUxvC3yVRAipA5ykk6kfSnxTmnWQbEQ==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI — login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.4.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.4.4_1777276816205_0.514187432608392","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@truealter/cli","version":"0.4.5","license":"Apache-2.0","_id":"@truealter/cli@0.4.5","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"4435689d98f6cf79679d237e7bb0ae72de4985c6","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.4.5.tgz","fileCount":133,"integrity":"sha512-nCKd82BlTJ6HJECgXawhgc67KCfNDFxpyQ1uh1brMdRdItF6eLxpTEhJqX2pmdlHZUk5b6upWGFs2rFK1MX5hA==","signatures":[{"sig":"MEYCIQCDPxxG111RbxJfVgEtQk0Ts37LufhiNyh8mAGg9JHk+AIhANyRam7C6+TU+oZ9tWsoAjHeWTgW5MDNrSc/4beCJKFh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":656592},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.4.5.tgz","types":"./dist/index.d.ts","scripts":{"test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node --test test-out/tests/*.js","build":"tsc && node --input-type=module -e \"import {copyFileSync,chmodSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepare":"[ \"${npm_config_global:-}\" != \"true\" ] && [ -d .githooks ] && [ -f .git/HEAD ] && git config core.hooksPath .githooks || true","test:e2e":"tsc -p tsconfig.e2e.json && node --test test-out-e2e/*.test.js","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .)","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.4.5.tgz","_integrity":"sha512-nCKd82BlTJ6HJECgXawhgc67KCfNDFxpyQ1uh1brMdRdItF6eLxpTEhJqX2pmdlHZUk5b6upWGFs2rFK1MX5hA==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI — login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.4.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.4.5_1777524458867_0.7481089048298986","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"@truealter/cli","version":"0.4.7","license":"Apache-2.0","_id":"@truealter/cli@0.4.7","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"e05b5b0ad05ed73bd7ed71a26e97a6d86de4d1b5","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.4.7.tgz","fileCount":139,"integrity":"sha512-gceRLeiRXC1HG+uMpqlzb5CmODn28lOrgBhT/i82NmCOvaDJx5JonI5UV6YGGZvVjjiYEm8P2ho5c6AOZXadgA==","signatures":[{"sig":"MEUCIQDjWdMF1AoO13p2/aFLhsJlZD/U6NAKLsqn4s/2OHl5pwIgWmtsy5hLsRsF38r7a/qLS5HQ7upuli9h9gQ0wPlggjw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":725658},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.4.7.tgz","types":"./dist/index.d.ts","scripts":{"test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node --test test-out/tests/*.js","build":"tsc && node --input-type=module -e \"import {copyFileSync,chmodSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepare":"[ \"${npm_config_global:-}\" != \"true\" ] && [ -d .githooks ] && [ -f .git/HEAD ] && git config core.hooksPath .githooks || true","test:e2e":"tsc -p tsconfig.e2e.json && node --test test-out-e2e/*.test.js","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .)","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.4.7.tgz","_integrity":"sha512-gceRLeiRXC1HG+uMpqlzb5CmODn28lOrgBhT/i82NmCOvaDJx5JonI5UV6YGGZvVjjiYEm8P2ho5c6AOZXadgA==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI — login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.4.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.4.7_1777880233259_0.6979576563480778","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"@truealter/cli","version":"0.4.8","license":"Apache-2.0","_id":"@truealter/cli@0.4.8","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"37503628a0eb0edc717c234201fdf59c5ff6fd4a","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.4.8.tgz","fileCount":163,"integrity":"sha512-ejsdua6Fi+4HSV6//yndZp/7L89HEWPFwwdWR37Hcjzh6NDoGZcNMKUbD3l9d2GxcaSaEpb4d9deL7ToVoKWJA==","signatures":[{"sig":"MEUCIHt0CgyTec6gz1yd5NHgHUKLRGNoLjBLNmUS2b4aSy1AAiEA4YRv2HEqcAgqP4OgWIdrqa7oeh6fBJam5hhcA0xWivY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":884735},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.4.8.tgz","types":"./dist/index.d.ts","scripts":{"test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node --test test-out/tests/*.js","build":"tsc && node --input-type=module -e \"import {copyFileSync,chmodSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); chmodSync('dist/index.js', 0o755)\" && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"[ \"${npm_config_global:-}\" != \"true\" ] && [ -d .githooks ] && [ -f .git/HEAD ] && git config core.hooksPath .githooks || true","test:e2e":"tsc -p tsconfig.e2e.json && node --test test-out-e2e/*.test.js","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .)","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.4.8.tgz","_integrity":"sha512-ejsdua6Fi+4HSV6//yndZp/7L89HEWPFwwdWR37Hcjzh6NDoGZcNMKUbD3l9d2GxcaSaEpb4d9deL7ToVoKWJA==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI — login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@sigstore/sign":"^4.1.1","@truealter/sdk":"^0.4.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.4.8_1778238194276_0.22508024688866812","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@truealter/cli","version":"0.5.1","license":"Apache-2.0","_id":"@truealter/cli@0.5.1","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"1f5348624d3c09feaae1f88dc96945b414de9723","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.5.1.tgz","fileCount":173,"integrity":"sha512-JwCVgoZF+8wCv+XO2Jk0s3Y3h9AqaPpMsdglF4eSzJjYoqBhzJZRRzC3/txemHSOAubVMgUt+kGkf4czD1z9aA==","signatures":[{"sig":"MEQCICRQfStprHfRzsMPEtKpVRsrJn7Lp7CIo6N+YOoKLDqhAiAP9UdwVAhkD7UcySmnh+WMH60STPOLn9kTuHoHczASNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":978350},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.5.1.tgz","types":"./dist/index.d.ts","scripts":{"test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node --test test-out/tests/*.js","build":"tsc && node --input-type=module -e \"import {copyFileSync,chmodSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); chmodSync('dist/index.js', 0o755)\" && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"[ \"${npm_config_global:-}\" != \"true\" ] && [ -d .githooks ] && [ -f .git/HEAD ] && git config core.hooksPath .githooks || true","test:e2e":"tsc -p tsconfig.e2e.json && node --test test-out-e2e/*.test.js","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .)","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.5.1.tgz","_integrity":"sha512-JwCVgoZF+8wCv+XO2Jk0s3Y3h9AqaPpMsdglF4eSzJjYoqBhzJZRRzC3/txemHSOAubVMgUt+kGkf4czD1z9aA==","deprecated":"Withdrawn; upgrade to >0.8.6.","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI — login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@sigstore/sign":"^4.1.1","@truealter/sdk":"^0.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.5.1_1778478798285_0.34555942247220806","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@truealter/cli","version":"0.5.2","license":"Apache-2.0","_id":"@truealter/cli@0.5.2","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"b8eb53859f2c18b74fdfad88631a839958ba2672","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.5.2.tgz","fileCount":173,"integrity":"sha512-+5AmB6WddVTuN8Sb4L0Mpr7QWhuN5gZBQpNs/jnAMjBlUfHXE0LR/PksAKLA7rJpalYkIWQx25atG+7qHPnMeA==","signatures":[{"sig":"MEUCIQCj+q09F+bLBbvLiSn5ZzKTfQlLQ8BBzb+lLM9Hpo1ypwIgOID/l8ZmfoyuWAK19/liUIObQiUTlwIQxNWXCgWW2CE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":979078},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.5.2.tgz","types":"./dist/index.d.ts","scripts":{"test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node --test test-out/tests/*.js","build":"tsc && node --input-type=module -e \"import {copyFileSync,chmodSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); chmodSync('dist/index.js', 0o755)\" && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"[ \"${npm_config_global:-}\" != \"true\" ] && [ -d .githooks ] && [ -f .git/HEAD ] && git config core.hooksPath .githooks || true","test:e2e":"tsc -p tsconfig.e2e.json && node --test test-out-e2e/*.test.js","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .)","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.5.2.tgz","_integrity":"sha512-+5AmB6WddVTuN8Sb4L0Mpr7QWhuN5gZBQpNs/jnAMjBlUfHXE0LR/PksAKLA7rJpalYkIWQx25atG+7qHPnMeA==","deprecated":"Withdrawn; upgrade to >0.8.6.","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI — login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@sigstore/sign":"^4.1.1","@truealter/sdk":"^0.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.5.2_1778484390964_0.8063658667218216","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@truealter/cli","version":"0.5.3","license":"Apache-2.0","_id":"@truealter/cli@0.5.3","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"b5c29122f432044472eaee02ffea05441426cc93","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.5.3.tgz","fileCount":175,"integrity":"sha512-PqJJqoYcS95JyxjYR/FUB3K/l8azxrD7wk3Z8TeEF9uKwIy9KpgQyOiQZZ66eD21s3njjXLW4MMwHiYVmz0TRw==","signatures":[{"sig":"MEUCIHuk8czI5HmNsnqLcjEGNxhm/K4N3goOz8SnLmpJmyPcAiEArSEzSkEdkD0xixTfPo3upNSTfpaeFiDuKm4XgGCnsvc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":995298},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.5.3.tgz","types":"./dist/index.d.ts","scripts":{"test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node --test test-out/tests/*.js","build":"tsc && node --input-type=module -e \"import {copyFileSync,chmodSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); chmodSync('dist/index.js', 0o755)\" && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"[ \"${npm_config_global:-}\" != \"true\" ] && [ -d .githooks ] && [ -f .git/HEAD ] && git config core.hooksPath .githooks || true","test:e2e":"tsc -p tsconfig.e2e.json && node --test test-out-e2e/*.test.js","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .)","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.5.3.tgz","_integrity":"sha512-PqJJqoYcS95JyxjYR/FUB3K/l8azxrD7wk3Z8TeEF9uKwIy9KpgQyOiQZZ66eD21s3njjXLW4MMwHiYVmz0TRw==","deprecated":"Withdrawn; upgrade to >0.8.6.","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI — login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@sigstore/sign":"^4.1.1","@truealter/sdk":"^0.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.5.3_1778559249865_0.18359449931104588","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@truealter/cli","version":"0.5.4","license":"Apache-2.0","_id":"@truealter/cli@0.5.4","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"e404e2e1ac5bfcfe2fa5506975e5a77bb5edd879","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.5.4.tgz","fileCount":179,"integrity":"sha512-pQ31Bob5KeylzTkNfiF3uAEHxvnWcUkk1xdm0MWXpJVcTzXCNdqaYuNe5MZ9JlWxuvqIcKnOzAMqnTN4dCO7hQ==","signatures":[{"sig":"MEYCIQCmfIaN5FbRtoeLMlscIiQUAtWT9+Rg5FLwVG+8CkHVlAIhAPg2oa+k82DwtPb8gRVHaH6EG7OTmfAS5qYvtfsXE0Zc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1043473},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.5.4.tgz","types":"./dist/index.d.ts","scripts":{"test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node --test test-out/tests/*.js","build":"tsc && node --input-type=module -e \"import {copyFileSync,chmodSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); chmodSync('dist/index.js', 0o755)\" && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"[ \"${npm_config_global:-}\" != \"true\" ] && [ -d .githooks ] && [ -f .git/HEAD ] && git config core.hooksPath .githooks || true","test:e2e":"tsc -p tsconfig.e2e.json && node --test test-out-e2e/*.test.js","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .)","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.5.4.tgz","_integrity":"sha512-pQ31Bob5KeylzTkNfiF3uAEHxvnWcUkk1xdm0MWXpJVcTzXCNdqaYuNe5MZ9JlWxuvqIcKnOzAMqnTN4dCO7hQ==","deprecated":"Withdrawn; upgrade to >0.8.6.","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI — login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@sigstore/sign":"^4.1.1","@truealter/sdk":"^0.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.5.4_1778561801680_0.9866099838480951","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@truealter/cli","version":"0.6.0","license":"Apache-2.0","_id":"@truealter/cli@0.6.0","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"40517715a16adf0f2c13b9cf65640d1f27622b32","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.6.0.tgz","fileCount":193,"integrity":"sha512-0TPYCuEeAlOry83f3JPV9gEhTjjSbuN0NY5W81x9WKGIQ+L6LMThfrkAefm0jyVKWO6NedGBHUlTDHLjK/CNWw==","signatures":[{"sig":"MEQCIGqhmSiReSetLiaJ/EWXKvdPIg7/2kV/Bl+Tch2688rhAiBw8sgxbrbhKDr+NeNJzU1K1KhlaP58QnZ/fgF0BgTQ5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1175801},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.6.0.tgz","types":"./dist/index.d.ts","scripts":{"test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node --test test-out/tests/*.js","build":"tsc && node --input-type=module -e \"import {copyFileSync,chmodSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); chmodSync('dist/index.js', 0o755)\" && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"[ \"${npm_config_global:-}\" != \"true\" ] && [ -d .githooks ] && [ -f .git/HEAD ] && git config core.hooksPath .githooks || true","test:e2e":"tsc -p tsconfig.e2e.json && node --test test-out-e2e/*.test.js","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .)","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.6.0.tgz","_integrity":"sha512-0TPYCuEeAlOry83f3JPV9gEhTjjSbuN0NY5W81x9WKGIQ+L6LMThfrkAefm0jyVKWO6NedGBHUlTDHLjK/CNWw==","deprecated":"Withdrawn; upgrade to >0.8.6.","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI — login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@sigstore/sign":"^4.1.1","@truealter/sdk":"^0.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.6.0_1778563173128_0.1533749674897129","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@truealter/cli","version":"0.7.0","license":"Apache-2.0","_id":"@truealter/cli@0.7.0","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"664a116ec622cda60e655d598d8da55a4b8e5811","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.7.0.tgz","fileCount":209,"integrity":"sha512-GGoGI03HP/O0krEJj8XZBIBa8MHyOQ6fEUUJod0TVAGb70FO+yFVVdAgmLTdcNPO85CpfKsew9UZKo82EheeKQ==","signatures":[{"sig":"MEQCIE8UoXYzUvS3i/IooEL7pOtMB9cVgZOOsOck3y7JbPNdAiALq2VUestDqW9kFJLf1DhoC+2hQReu2jW+3PCVWFLXYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1280008},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.7.0.tgz","types":"./dist/index.d.ts","scripts":{"test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node --test test-out/tests/*.js","build":"tsc && node --input-type=module -e \"import {copyFileSync,chmodSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); chmodSync('dist/index.js', 0o755)\" && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"[ \"${npm_config_global:-}\" != \"true\" ] && [ -d .githooks ] && [ -f .git/HEAD ] && git config core.hooksPath .githooks || true","test:e2e":"tsc -p tsconfig.e2e.json && node --test test-out-e2e/*.test.js","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .)","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.7.0.tgz","_integrity":"sha512-GGoGI03HP/O0krEJj8XZBIBa8MHyOQ6fEUUJod0TVAGb70FO+yFVVdAgmLTdcNPO85CpfKsew9UZKo82EheeKQ==","deprecated":"Withdrawn; upgrade to >0.8.6.","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI — login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@sigstore/sign":"^4.1.1","@truealter/sdk":"^0.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.7.0_1778818033162_0.19008924055008092","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@truealter/cli","version":"0.7.1","license":"Apache-2.0","_id":"@truealter/cli@0.7.1","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"c039b9c7b35e85e8e1eb4b242094165ec736f0c7","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.7.1.tgz","fileCount":249,"integrity":"sha512-X7W1PdU7fIRfKGfyk02/t5tiEnIDeU5uAYuWDRl/nbPpYInjsikciw93z7nS5QXqtEv6zOKrGG0pZWSnj8DRDA==","signatures":[{"sig":"MEUCIQCDJSM+G6nb93xUCPrQ/e6GFpbuiwhCSuPEK/+h/dWqYwIgasGIw/ORab1ys1MVOtW/qXnuOiD5iKSPQ2bNo4/F7iU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1438060},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","scripts":{"lint":"eslint 'src/**/*.ts'","test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); chmodSync('dist/index.js', 0o755)\" && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"node -e \"if(process.env.npm_config_global==='true')process.exit(0);try{require('fs').statSync('.githooks');require('fs').statSync('.git/HEAD');require('child_process').execSync('git config core.hooksPath .githooks')}catch{}\"","test:e2e":"tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","build:all":"npm run build && npm run build:internal","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","build:internal":"tsc -p tsconfig.internal.json && node scripts/post-build-internal.mjs","prepublishOnly":"git ls-files dist/ | (! grep .)","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"deprecated":"Withdrawn; upgrade to >0.8.6.","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"11.12.1","description":"ALTER identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@sigstore/sign":"^4.1.1","@truealter/sdk":"^0.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.7.1_1779763534975_0.8241334054861043","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@truealter/cli","version":"0.7.3","license":"Apache-2.0","_id":"@truealter/cli@0.7.3","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"577d0d84074ab951885a342fa91d062399518b0b","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.7.3.tgz","fileCount":249,"integrity":"sha512-ABZB3fErJ0mAzlLyimqa4CLPrO7LdpcjF5tD8rzmV8xocsdIBZhx39k+G+TUmpbZH8A4AzaPXlvscIpdDaljGA==","signatures":[{"sig":"MEUCIHKDDozQ7Hrf+NnDrzZ6dOlZhuEbA8Fya0Wllk1oBNYyAiEAiQFjCccHr42ZE6VjGKo2QxrV0Tgri7iFgslW0kjKqGI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1437949},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.7.3.tgz","types":"./dist/index.d.ts","scripts":{"lint":"eslint 'src/**/*.ts'","test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); chmodSync('dist/index.js', 0o755)\" && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"node -e \"if(process.env.npm_config_global==='true')process.exit(0);try{require('fs').statSync('.githooks');require('fs').statSync('.git/HEAD');require('child_process').execSync('git config core.hooksPath .githooks')}catch{}\"","test:e2e":"tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","build:all":"npm run build && npm run build:internal","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","build:internal":"tsc -p tsconfig.internal.json && node scripts/post-build-internal.mjs","prepublishOnly":"git ls-files dist/ | (! grep .)","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.7.3.tgz","_integrity":"sha512-ABZB3fErJ0mAzlLyimqa4CLPrO7LdpcjF5tD8rzmV8xocsdIBZhx39k+G+TUmpbZH8A4AzaPXlvscIpdDaljGA==","deprecated":"Withdrawn; upgrade to >0.8.6.","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@sigstore/sign":"^4.1.1","@truealter/sdk":"^0.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.7.3_1779874318633_0.1769367948244953","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@truealter/cli","version":"0.8.0","license":"Apache-2.0","_id":"@truealter/cli@0.8.0","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"e173341269b66ef3ace3f7a6a8d3d5aea2edc848","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.0.tgz","fileCount":266,"integrity":"sha512-+NV2pO3btDrCRpdKwBN8q/sgcL9qTv091H09q0EUPEP0izl30/AakQwBe/XFXp8QtKXfaX0zSvhGS4fP2MDILQ==","signatures":[{"sig":"MEUCIGeLLlhT2BIomA9x86NHri5sEDcfVVT5lcCGg6b7D17pAiEAvXrLgSorXJLMErbOXTNhWbhbETdRzCnPid6mCFGkTwM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":963661},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","scripts":{"lint":"eslint 'src/**/*.ts'","test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); chmodSync('dist/index.js', 0o755)\" && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"node -e \"if(process.env.npm_config_global==='true'||process.env.npm_package_name!=='@truealter/cli')process.exit(0);try{require('fs').statSync('.githooks');require('fs').statSync('.git/HEAD');require('child_process').execSync('git config core.hooksPath .githooks')}catch{}\"","test:e2e":"tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","build:all":"npm run build && npm run build:internal","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","build:internal":"tsc -p tsconfig.internal.json && node scripts/post-build-internal.mjs","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"deprecated":"Withdrawn; upgrade to >0.8.6.","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"11.12.1","description":"ALTER identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@sigstore/sign":"^4.1.1","@truealter/sdk":"^0.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.0_1780269802594_0.9748184430349813","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"@truealter/cli","version":"0.8.6","license":"Apache-2.0","_id":"@truealter/cli@0.8.6","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"c225d06c6998fc1aced4833219e2e1f93571f859","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.6.tgz","fileCount":299,"integrity":"sha512-nJMYUO3iFt9sDCOBrynw2vb7KwvHq7ygsG9qA02hW+VQo1VbRNjVsV/CxG0ziUEx9LC2pYqTsEdhXnggY6H3sg==","signatures":[{"sig":"MEYCIQDKzuurtsbWSFxRCKMdrh3I9tPJyBIb8GrwZh6kh9h5CAIhAM2F3ngJ5KrNGhJxIfE6Bjp1/lM/TvwdWCU3nPyM8FLw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1099200},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.6.tgz","types":"./dist/index.d.ts","scripts":{"lint":"eslint 'src/**/*.ts'","test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); chmodSync('dist/index.js', 0o755)\" && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"node -e \"if(process.env.npm_config_global==='true'||process.env.npm_package_name!=='@truealter/cli')process.exit(0);try{require('fs').statSync('.githooks');require('fs').statSync('.git/HEAD');require('child_process').execSync('git config core.hooksPath .githooks')}catch{}\"","test:e2e":"tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","build:all":"npm run build && npm run build:internal","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","build:internal":"tsc -p tsconfig.internal.json && node scripts/post-build-internal.mjs","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.6.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-nJMYUO3iFt9sDCOBrynw2vb7KwvHq7ygsG9qA02hW+VQo1VbRNjVsV/CxG0ziUEx9LC2pYqTsEdhXnggY6H3sg==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.0","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.6_1780467854174_0.6429413130241641","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"@truealter/cli","version":"0.8.7","license":"Apache-2.0","_id":"@truealter/cli@0.8.7","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"dc7156bee8672b28a60b61fb2001780eeae5a106","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.7.tgz","fileCount":299,"integrity":"sha512-HWG7WDwiUrCuGy4g+oCN2s+++6+gop1gyeXdG2rphxFiGhixiYOZ0giVt/YD1lkH9aCRAGB5//aiqokHqA+Bzg==","signatures":[{"sig":"MEYCIQD0gtujAWRMVIO/G72fBHjPW3MJFOFBfysAdrrv2/dmKQIhAOWX+sE6Wrg45pNNwZXebsL8GqssyYnhk+xl9NiCzFYo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1117833},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.7.tgz","types":"./dist/index.d.ts","scripts":{"lint":"eslint 'src/**/*.ts'","test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); chmodSync('dist/index.js', 0o755)\" && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"node -e \"if(process.env.npm_config_global==='true'||process.env.npm_package_name!=='@truealter/cli')process.exit(0);try{require('fs').statSync('.githooks');require('fs').statSync('.git/HEAD');require('child_process').execSync('git config core.hooksPath .githooks')}catch{}\"","test:e2e":"tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","build:all":"npm run build && npm run build:internal","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","build:internal":"tsc -p tsconfig.internal.json && node scripts/post-build-internal.mjs","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.7.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-HWG7WDwiUrCuGy4g+oCN2s+++6+gop1gyeXdG2rphxFiGhixiYOZ0giVt/YD1lkH9aCRAGB5//aiqokHqA+Bzg==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.0","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.7_1780475597048_0.5892085002652834","host":"s3://npm-registry-packages-npm-production"}},"0.8.8":{"name":"@truealter/cli","version":"0.8.8","license":"Apache-2.0","_id":"@truealter/cli@0.8.8","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"6659d70d9060da781fffef1a26096404013a3e07","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.8.tgz","fileCount":309,"integrity":"sha512-4Ll1Spb1ZbK+Cl4TSq3nLdjXOhphN6EfxK946/5o9NTOlO/2uXUgacJIo4Vsxl7pUcffNNi+qJD95HX7f/6XrQ==","signatures":[{"sig":"MEUCIDwRjVTsspigjGb/Q6yXZLGnssdfHQ7nUlQzv+p038hSAiEA5QUBCb+zg3Ur1tDEx8uI35elVdwZMWSileNnQAOhjJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1168269},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.8.tgz","types":"./dist/index.d.ts","scripts":{"lint":"eslint 'src/**/*.ts'","test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); chmodSync('dist/index.js', 0o755)\" && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"node -e \"if(process.env.npm_config_global==='true'||process.env.npm_package_name!=='@truealter/cli')process.exit(0);try{require('fs').statSync('.githooks');require('fs').statSync('.git/HEAD');require('child_process').execSync('git config core.hooksPath .githooks')}catch{}\"","test:e2e":"tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","build:all":"npm run build && npm run build:internal","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","build:internal":"tsc -p tsconfig.internal.json && node scripts/post-build-internal.mjs","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.8.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-4Ll1Spb1ZbK+Cl4TSq3nLdjXOhphN6EfxK946/5o9NTOlO/2uXUgacJIo4Vsxl7pUcffNNi+qJD95HX7f/6XrQ==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.0","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.8_1780575616374_0.19099995801686798","host":"s3://npm-registry-packages-npm-production"}},"0.8.9":{"name":"@truealter/cli","version":"0.8.9","license":"Apache-2.0","_id":"@truealter/cli@0.8.9","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"f36d88e643a73e9e20f4dd58d529a2eb410e9cbd","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.9.tgz","fileCount":311,"integrity":"sha512-/NWAQ7dQoaVUBz1Y7KvXmW17ZyjPWxgdv6k+ZQZuW+wLdAhOJDkxJJ1CQ2YBP3ASiYNSOgWZqO8kMyMB3yrZ8w==","signatures":[{"sig":"MEYCIQCtKxILw62Bh9SnIRrW6l0ofA00Z7jSsIoyxbp9Veh+twIhAOSyOHLHA3QnNzBcLkoWKH5BnzcmSlVW549hQwzeKih0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1165338},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.9.tgz","types":"./dist/index.d.ts","scripts":{"lint":"eslint 'src/**/*.ts'","test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); chmodSync('dist/index.js', 0o755)\" && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"node -e \"if(process.env.npm_config_global==='true'||process.env.npm_package_name!=='@truealter/cli')process.exit(0);try{require('fs').statSync('.githooks');require('fs').statSync('.git/HEAD');require('child_process').execSync('git config core.hooksPath .githooks')}catch{}\"","test:e2e":"tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","build:all":"npm run build && npm run build:internal","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","build:internal":"tsc -p tsconfig.internal.json && node scripts/post-build-internal.mjs","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.9.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-/NWAQ7dQoaVUBz1Y7KvXmW17ZyjPWxgdv6k+ZQZuW+wLdAhOJDkxJJ1CQ2YBP3ASiYNSOgWZqO8kMyMB3yrZ8w==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.0","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.9_1780642515519_0.6232912803608663","host":"s3://npm-registry-packages-npm-production"}},"0.8.10":{"name":"@truealter/cli","version":"0.8.10","license":"Apache-2.0","_id":"@truealter/cli@0.8.10","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"0c60179293ac26d7d9bbe54ac990a1406aa0650b","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.10.tgz","fileCount":311,"integrity":"sha512-cEeLWf+zmgECDuHRUoyrKYjpK/A/h3WCYRBdvAgeQt7/7844zSwjqC87x8HE3tLVGnjNezAirjBdeQndq2MvOQ==","signatures":[{"sig":"MEUCIQDAvJqUZBu1X5PFvmrmlAiZ5zU5WkoTovD9KJC5MBsocAIges75d5amm3m8jVr/hA4zedKTKuODNUMfjc63YCkWtMQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1165471},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.10.tgz","types":"./dist/index.d.ts","scripts":{"lint":"eslint 'src/**/*.ts'","test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); chmodSync('dist/index.js', 0o755)\" && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"node -e \"if(process.env.npm_config_global==='true'||process.env.npm_package_name!=='@truealter/cli')process.exit(0);try{require('fs').statSync('.githooks');require('fs').statSync('.git/HEAD');require('child_process').execSync('git config core.hooksPath .githooks')}catch{}\"","test:e2e":"tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","build:all":"npm run build && npm run build:internal","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","build:internal":"tsc -p tsconfig.internal.json && node scripts/post-build-internal.mjs","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.10.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-cEeLWf+zmgECDuHRUoyrKYjpK/A/h3WCYRBdvAgeQt7/7844zSwjqC87x8HE3tLVGnjNezAirjBdeQndq2MvOQ==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.0","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.10_1780646080481_0.3558806804743837","host":"s3://npm-registry-packages-npm-production"}},"0.8.11":{"name":"@truealter/cli","version":"0.8.11","license":"Apache-2.0","_id":"@truealter/cli@0.8.11","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"dd03e299cd1082b185ea1f6bf224c42c3c771d2a","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.11.tgz","fileCount":341,"integrity":"sha512-aauHzjw8tLXOhPY5RkV7+GZM7zEITKYsezHKoM+iH8uYX3Xvf4K1ka4pik6PdnY2kEovFcCSJ5LsELVJvkEbCA==","signatures":[{"sig":"MEQCIFivtiTyE0WGiUKfHlMCSJTh3Do5dP2qgJk82p9DxK6BAiBBbCTfqYPBZYZA+8dpJzMXyDkKucNYXGgCRQGgDZm4ww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1431643},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.11.tgz","types":"./dist/index.d.ts","scripts":{"lint":"eslint 'src/**/*.ts'","test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync,cpSync,readdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); cpSync('src/assets/hooks','dist/assets/hooks',{recursive:true}); for (const f of readdirSync('dist/assets/hooks')) { if (f.endsWith('.sh')) chmodSync('dist/assets/hooks/'+f, 0o755); } chmodSync('dist/index.js', 0o755)\" && node scripts/strip-testing-exports.mjs && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"node -e \"if(process.env.npm_config_global==='true'||process.env.npm_package_name!=='@truealter/cli')process.exit(0);try{require('fs').statSync('.githooks');require('fs').statSync('.git/HEAD');require('child_process').execSync('git config core.hooksPath .githooks')}catch{}\"","test:e2e":"tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","build:all":"npm run build && npm run build:internal","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","build:internal":"tsc -p tsconfig.internal.json && node scripts/post-build-internal.mjs","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.11.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-aauHzjw8tLXOhPY5RkV7+GZM7zEITKYsezHKoM+iH8uYX3Xvf4K1ka4pik6PdnY2kEovFcCSJ5LsELVJvkEbCA==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.0","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.11_1780728380015_0.9928065814378868","host":"s3://npm-registry-packages-npm-production"}},"0.8.12":{"name":"@truealter/cli","version":"0.8.12","license":"Apache-2.0","_id":"@truealter/cli@0.8.12","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"777f51de5355f6b0f628251ee0c828f2a1c88057","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.12.tgz","fileCount":341,"integrity":"sha512-u4vIt1Thij3TPkBijTkJD7RdrI72d7k+DsNWRUC4e3DSG5zatkvAhFPG0oe+0M0mAah9Kwksut8++f7N4pojIQ==","signatures":[{"sig":"MEUCIBX47br9DnTaKj22lgVakiVE0UCnl7u1g6n6UYLglZ7KAiEAqi7nKJkzVVyvZcfOyfTX4i2jXUzxUQiHyrodE5ySpiA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1438248},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.12.tgz","types":"./dist/index.d.ts","scripts":{"lint":"eslint 'src/**/*.ts'","test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync,cpSync,readdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); cpSync('src/assets/hooks','dist/assets/hooks',{recursive:true}); for (const f of readdirSync('dist/assets/hooks')) { if (f.endsWith('.sh')) chmodSync('dist/assets/hooks/'+f, 0o755); } chmodSync('dist/index.js', 0o755)\" && node scripts/strip-testing-exports.mjs && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"node -e \"if(process.env.npm_config_global==='true'||process.env.npm_package_name!=='@truealter/cli')process.exit(0);try{require('fs').statSync('.githooks');require('fs').statSync('.git/HEAD');require('child_process').execSync('git config core.hooksPath .githooks')}catch{}\"","test:e2e":"tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","build:all":"npm run build && npm run build:internal","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","build:internal":"tsc -p tsconfig.internal.json && node scripts/post-build-internal.mjs","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.12.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-u4vIt1Thij3TPkBijTkJD7RdrI72d7k+DsNWRUC4e3DSG5zatkvAhFPG0oe+0M0mAah9Kwksut8++f7N4pojIQ==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.0","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.12_1780799272041_0.4106384286110867","host":"s3://npm-registry-packages-npm-production"}},"0.8.13":{"name":"@truealter/cli","version":"0.8.13","license":"Apache-2.0","_id":"@truealter/cli@0.8.13","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"35b45f958a85a0cfcd191d2872fe9a6b9b7f4cef","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.13.tgz","fileCount":361,"integrity":"sha512-5MiOaSNPehiG/Ojo6IsfyZtQ2MTmre0kcd3BQ5QWE1nzTLJtxZ+jw2PNYCtqbdrZ9qVuZU4ZOtahCYUg8iDthA==","signatures":[{"sig":"MEQCIDcIJ1MivXIyzdkHqVGHM7jSQyFvYR7iDT2M+9Iu1dA1AiBzDeH2qugyJeZarYeaPKM8LoJHTR/QpOE211Nedpdo9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1654401},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.13.tgz","types":"./dist/index.d.ts","scripts":{"lint":"eslint 'src/**/*.ts'","test":"tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync,cpSync,readdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); cpSync('src/assets/hooks','dist/assets/hooks',{recursive:true}); for (const f of readdirSync('dist/assets/hooks')) { if (f.endsWith('.sh')) chmodSync('dist/assets/hooks/'+f, 0o755); } cpSync('src/assets/skills','dist/assets/skills',{recursive:true}); for (const f of readdirSync('dist/assets/skills')) { if (f.endsWith('.sh')) chmodSync('dist/assets/skills/'+f, 0o755); } cpSync('src/assets/statusline','dist/assets/statusline',{recursive:true}); for (const f of readdirSync('dist/assets/statusline')) { if (f.endsWith('.sh')) chmodSync('dist/assets/statusline/'+f, 0o755); } chmodSync('dist/index.js', 0o755)\" && node scripts/strip-testing-exports.mjs && node scripts/embed-plugin.mjs","start":"node dist/index.js","prepare":"node -e \"if(process.env.npm_config_global==='true'||process.env.npm_package_name!=='@truealter/cli')process.exit(0);try{require('fs').statSync('.githooks');require('fs').statSync('.git/HEAD');require('child_process').execSync('git config core.hooksPath .githooks')}catch{}\"","test:e2e":"tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","build:all":"npm run build && npm run build:internal","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","build:internal":"tsc -p tsconfig.internal.json && node scripts/post-build-internal.mjs","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.13.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-5MiOaSNPehiG/Ojo6IsfyZtQ2MTmre0kcd3BQ5QWE1nzTLJtxZ+jw2PNYCtqbdrZ9qVuZU4ZOtahCYUg8iDthA==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"ALTER identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.3","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.13_1780973002795_0.957555226376277","host":"s3://npm-registry-packages-npm-production"}},"0.8.27":{"name":"@truealter/cli","version":"0.8.27","license":"Apache-2.0","_id":"@truealter/cli@0.8.27","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"46c017a773c450c3d0dbaa1d00192e4ff41f3c34","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.27.tgz","fileCount":369,"integrity":"sha512-Qyzy/9VmCTKHabwGYNbXwcoPYFvK8mBnM809scF9E8vGDNa7oxlWZVfJFx8tVM5hzYPVBFLwoIDIrLt7ONJsFg==","signatures":[{"sig":"MEUCIHzet1cuHcY+45GTGWa2uz1D5D+E7gtYtf+cWa/QfztkAiEAjPNq41lrXMd29PGyhopyNe8jxFJ26mZC2ONtk1PC78E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1729125},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.27.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.22.2"},"scripts":{"lint":"eslint 'src/**/*.ts'","test":"node scripts/ensure-dist.mjs && tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"npm run clean && tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync,cpSync,readdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); cpSync('src/assets/hooks','dist/assets/hooks',{recursive:true}); for (const f of readdirSync('dist/assets/hooks')) { if (f.endsWith('.sh')) chmodSync('dist/assets/hooks/'+f, 0o755); } cpSync('src/assets/skills','dist/assets/skills',{recursive:true}); for (const f of readdirSync('dist/assets/skills')) { if (f.endsWith('.sh')) chmodSync('dist/assets/skills/'+f, 0o755); } cpSync('src/assets/statusline','dist/assets/statusline',{recursive:true}); for (const f of readdirSync('dist/assets/statusline')) { if (f.endsWith('.sh')) chmodSync('dist/assets/statusline/'+f, 0o755); } chmodSync('dist/index.js', 0o755)\" && node scripts/strip-testing-exports.mjs && node scripts/embed-plugin.mjs","clean":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('dist',{recursive:true,force:true})\"","start":"node dist/index.js","prepare":"node -e \"if(process.env.npm_config_global==='true'||process.env.npm_package_name!=='@truealter/cli')process.exit(0);try{require('fs').statSync('.githooks');require('fs').statSync('.git/HEAD');require('child_process').execSync('git config core.hooksPath .githooks')}catch{}\"","test:e2e":"tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","build:all":"npm run build && npm run build:internal","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","build:internal":"tsc -p tsconfig.internal.json && node scripts/post-build-internal.mjs","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.27.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-Qyzy/9VmCTKHabwGYNbXwcoPYFvK8mBnM809scF9E8vGDNa7oxlWZVfJFx8tVM5hzYPVBFLwoIDIrLt7ONJsFg==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"~Alter identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.3","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.27_1781843293627_0.7546978067658572","host":"s3://npm-registry-packages-npm-production"}},"0.8.28":{"name":"@truealter/cli","version":"0.8.28","license":"Apache-2.0","_id":"@truealter/cli@0.8.28","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"099aa8cc8cc9869ccf40101b9243377938dd6a42","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.28.tgz","fileCount":369,"integrity":"sha512-9XBO9+a/eZIInrOdqz/+NapytqbfT2mkJ9DdbJ3N7XbtDCHMGLwXiuU2sBoZmfB/hQSbEB5+4HzFs1+cgW9a3Q==","signatures":[{"sig":"MEYCIQD8xdrz4Gz8ezJVPXFO3HukL3jAVNu5wm0St4PjLTuhYQIhAK32ZF+fz2WTEPHYUCocZY93B9CzvZZvpXZ2N3cC99WB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1729138},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.28.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.22.2"},"scripts":{"lint":"eslint 'src/**/*.ts'","test":"node scripts/ensure-dist.mjs && tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"npm run clean && tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync,cpSync,readdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); cpSync('src/assets/hooks','dist/assets/hooks',{recursive:true}); for (const f of readdirSync('dist/assets/hooks')) { if (f.endsWith('.sh')) chmodSync('dist/assets/hooks/'+f, 0o755); } cpSync('src/assets/skills','dist/assets/skills',{recursive:true}); for (const f of readdirSync('dist/assets/skills')) { if (f.endsWith('.sh')) chmodSync('dist/assets/skills/'+f, 0o755); } cpSync('src/assets/statusline','dist/assets/statusline',{recursive:true}); for (const f of readdirSync('dist/assets/statusline')) { if (f.endsWith('.sh')) chmodSync('dist/assets/statusline/'+f, 0o755); } chmodSync('dist/index.js', 0o755)\" && node scripts/strip-testing-exports.mjs && node scripts/embed-plugin.mjs","clean":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('dist',{recursive:true,force:true})\"","start":"node dist/index.js","prepare":"node -e \"if(process.env.npm_config_global==='true'||process.env.npm_package_name!=='@truealter/cli')process.exit(0);try{require('fs').statSync('.githooks');require('fs').statSync('.git/HEAD');require('child_process').execSync('git config core.hooksPath .githooks')}catch{}\"","test:e2e":"tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","build:all":"npm run build && npm run build:internal","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","build:internal":"tsc -p tsconfig.internal.json && node scripts/post-build-internal.mjs","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.28.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-9XBO9+a/eZIInrOdqz/+NapytqbfT2mkJ9DdbJ3N7XbtDCHMGLwXiuU2sBoZmfB/hQSbEB5+4HzFs1+cgW9a3Q==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"~Alter identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.3","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.28_1782531012567_0.4645924459647184","host":"s3://npm-registry-packages-npm-production"}},"0.8.29":{"name":"@truealter/cli","version":"0.8.29","license":"Apache-2.0","_id":"@truealter/cli@0.8.29","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"f32fa9935024ecfcf8694730e18014955481f5d8","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.29.tgz","fileCount":365,"integrity":"sha512-zQ2eoJU+Lvy1p+fR5N85u6XYz+BUPSAxhzxnqibIgZSHONHp48YVbeMWzA27Q4BrnmkrMpACqc1nsnw7vQ0GWg==","signatures":[{"sig":"MEUCIQDzK9+UDxkMr/rE0gY+LXQXg3QfRR9bVGcK9RmRZ7e4VwIgXOdYDZXf2llJFqyQuEQT5NRd70Ntilayci31IOnM4HQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1729402},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.29.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.22.2"},"scripts":{"lint":"eslint 'src/**/*.ts'","test":"node scripts/ensure-dist.mjs && tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"npm run clean && tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync,cpSync,readdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); cpSync('src/assets/hooks','dist/assets/hooks',{recursive:true}); for (const f of readdirSync('dist/assets/hooks')) { if (f.endsWith('.sh')) chmodSync('dist/assets/hooks/'+f, 0o755); } cpSync('src/assets/skills','dist/assets/skills',{recursive:true}); for (const f of readdirSync('dist/assets/skills')) { if (f.endsWith('.sh')) chmodSync('dist/assets/skills/'+f, 0o755); } cpSync('src/assets/statusline','dist/assets/statusline',{recursive:true}); for (const f of readdirSync('dist/assets/statusline')) { if (f.endsWith('.sh')) chmodSync('dist/assets/statusline/'+f, 0o755); } chmodSync('dist/index.js', 0o755)\" && node scripts/strip-testing-exports.mjs && node scripts/embed-plugin.mjs","clean":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('dist',{recursive:true,force:true})\"","start":"node dist/index.js","test:e2e":"tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","build:all":"npm run build && npm run build:internal","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","build:internal":"tsc -p tsconfig.internal.json && node scripts/post-build-internal.mjs","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.29.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-zQ2eoJU+Lvy1p+fR5N85u6XYz+BUPSAxhzxnqibIgZSHONHp48YVbeMWzA27Q4BrnmkrMpACqc1nsnw7vQ0GWg==","deprecated":"Superseded by 0.8.30. Please upgrade: npm i -g @truealter/cli@latest","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"~Alter identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.3","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.29_1782860812374_0.854952989974451","host":"s3://npm-registry-packages-npm-production"}},"0.8.30":{"name":"@truealter/cli","version":"0.8.30","license":"Apache-2.0","_id":"@truealter/cli@0.8.30","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"db8caa56c61edd072dc5682c27569ac4d1453f5d","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.30.tgz","fileCount":357,"integrity":"sha512-nOQ4YY3HcdBrpBcfJZXTL3BAaiDCheSLOPPjMD97YGsDZtLdsMD1ShOpWccL82eJKkr5kU57pBUmHbBkXEFHRw==","signatures":[{"sig":"MEYCIQCKEp/YiaDv/JzfK7Mk83JuP3UIS7t8UoISQgm+Dnp/rgIhANYa0v7DrAeBOzsH1Q27KQJBaBm/6X+GTlh0JenLTLxb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1697897},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.30.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.22.2"},"scripts":{"lint":"eslint 'src/**/*.ts'","test":"node scripts/ensure-dist.mjs && tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"npm run clean && tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync,cpSync,readdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); cpSync('src/assets/hooks','dist/assets/hooks',{recursive:true}); for (const f of readdirSync('dist/assets/hooks')) { if (f.endsWith('.sh')) chmodSync('dist/assets/hooks/'+f, 0o755); } cpSync('src/assets/skills','dist/assets/skills',{recursive:true}); for (const f of readdirSync('dist/assets/skills')) { if (f.endsWith('.sh')) chmodSync('dist/assets/skills/'+f, 0o755); } cpSync('src/assets/statusline','dist/assets/statusline',{recursive:true}); for (const f of readdirSync('dist/assets/statusline')) { if (f.endsWith('.sh')) chmodSync('dist/assets/statusline/'+f, 0o755); } chmodSync('dist/index.js', 0o755)\" && node scripts/strip-testing-exports.mjs && node scripts/finalize-public-hooks.mjs && node scripts/embed-plugin.mjs","clean":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('dist',{recursive:true,force:true})\"","start":"node dist/index.js","test:e2e":"tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.30.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-nOQ4YY3HcdBrpBcfJZXTL3BAaiDCheSLOPPjMD97YGsDZtLdsMD1ShOpWccL82eJKkr5kU57pBUmHbBkXEFHRw==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"~Alter identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.3","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.30_1782882455816_0.8557124205729534","host":"s3://npm-registry-packages-npm-production"}},"0.8.31":{"name":"@truealter/cli","version":"0.8.31","license":"Apache-2.0","_id":"@truealter/cli@0.8.31","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"4062b63f786265e323aaee64356591d24440d96d","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.31.tgz","fileCount":359,"integrity":"sha512-3kQkyuaeGTG0j0lspR88LvnlnSKmu9uAngTZ5IlPjKUwXkcJjc47W1MfSC3lnQ9KxDEofNRVAuGcKD9UfNc8AA==","signatures":[{"sig":"MEQCIBbioikEXsgoooV3Fk5in/dA2I+ww40/nHI0HAeYzT+8AiBNcepr9gruFSjC0voyaNd4VxlkcSwxTttLBr5c1e3vdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1728499},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.31.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.22.2"},"scripts":{"lint":"eslint 'src/**/*.ts'","test":"node scripts/ensure-dist.mjs && tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"npm run clean && tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync,cpSync,readdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); cpSync('src/assets/hooks','dist/assets/hooks',{recursive:true}); for (const f of readdirSync('dist/assets/hooks')) { if (f.endsWith('.sh')) chmodSync('dist/assets/hooks/'+f, 0o755); } cpSync('src/assets/skills','dist/assets/skills',{recursive:true}); for (const f of readdirSync('dist/assets/skills')) { if (f.endsWith('.sh')) chmodSync('dist/assets/skills/'+f, 0o755); } cpSync('src/assets/statusline','dist/assets/statusline',{recursive:true}); for (const f of readdirSync('dist/assets/statusline')) { if (f.endsWith('.sh')) chmodSync('dist/assets/statusline/'+f, 0o755); } chmodSync('dist/index.js', 0o755)\" && node scripts/strip-testing-exports.mjs && node scripts/finalize-public-hooks.mjs && node scripts/embed-plugin.mjs","clean":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('dist',{recursive:true,force:true})\"","start":"node dist/index.js","test:e2e":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('test-out-e2e',{recursive:true,force:true})\" && tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.31.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-3kQkyuaeGTG0j0lspR88LvnlnSKmu9uAngTZ5IlPjKUwXkcJjc47W1MfSC3lnQ9KxDEofNRVAuGcKD9UfNc8AA==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"~Alter identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.3","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.31_1783053771982_0.3046875602388195","host":"s3://npm-registry-packages-npm-production"}},"0.8.32":{"name":"@truealter/cli","version":"0.8.32","license":"Apache-2.0","_id":"@truealter/cli@0.8.32","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"14ed109f5ec38fead55e697dec662b1228a90d52","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.32.tgz","fileCount":359,"integrity":"sha512-dhzBaLqtxYzM2EA5nwuGwkDUDSwCDcQWBviy4Eih4DHiwFMbU0UlC5CBUN5ZJvFFJXwkj+RDKh+suRD43JY7Ag==","signatures":[{"sig":"MEYCIQDiVeZm9+O+ocTpG/jngXvKL7N5F9JjZr0v8z1my3yCYgIhAIiez4PiE9advL30f/hK/6nAXHDfgox1E3cJHbsbo3L6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1728857},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.32.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.22.2"},"scripts":{"lint":"eslint 'src/**/*.ts'","test":"node scripts/ensure-dist.mjs && tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"npm run clean && tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync,cpSync,readdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); cpSync('src/assets/hooks','dist/assets/hooks',{recursive:true}); for (const f of readdirSync('dist/assets/hooks')) { if (f.endsWith('.sh')) chmodSync('dist/assets/hooks/'+f, 0o755); } cpSync('src/assets/skills','dist/assets/skills',{recursive:true}); for (const f of readdirSync('dist/assets/skills')) { if (f.endsWith('.sh')) chmodSync('dist/assets/skills/'+f, 0o755); } cpSync('src/assets/statusline','dist/assets/statusline',{recursive:true}); for (const f of readdirSync('dist/assets/statusline')) { if (f.endsWith('.sh')) chmodSync('dist/assets/statusline/'+f, 0o755); } chmodSync('dist/index.js', 0o755)\" && node scripts/strip-testing-exports.mjs && node scripts/finalize-public-hooks.mjs && node scripts/embed-plugin.mjs","clean":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('dist',{recursive:true,force:true})\"","start":"node dist/index.js","test:e2e":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('test-out-e2e',{recursive:true,force:true})\" && tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.32.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-dhzBaLqtxYzM2EA5nwuGwkDUDSwCDcQWBviy4Eih4DHiwFMbU0UlC5CBUN5ZJvFFJXwkj+RDKh+suRD43JY7Ag==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"~Alter identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.3","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.32_1783061262381_0.6715940150579558","host":"s3://npm-registry-packages-npm-production"}},"0.8.33":{"name":"@truealter/cli","version":"0.8.33","license":"Apache-2.0","_id":"@truealter/cli@0.8.33","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"439795e0cb32a73fc44b16dab76169d14f65ef5d","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.33.tgz","fileCount":360,"integrity":"sha512-PMe1U1ZNCyQMIaQ3q28nKvQR+sjQGoz6IquaceL8qagedgiuEAc+Y0Q6M8aurwtNEAITWwt+7VfX9dTSFQzK7A==","signatures":[{"sig":"MEQCIFvIIEvu7MlXJ37PrMSyH7robBz5jwtrC8W09o5PrILSAiA0NTs7KV3MrgXWwd9HXzmdZlzCCkghKIGDz8GpVY+Wxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1726511},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.33.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.22.2"},"scripts":{"lint":"eslint 'src/**/*.ts'","test":"node scripts/ensure-dist.mjs && tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"npm run clean && tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync,cpSync,readdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); cpSync('src/assets/hooks','dist/assets/hooks',{recursive:true}); for (const f of readdirSync('dist/assets/hooks')) { if (f.endsWith('.sh')) chmodSync('dist/assets/hooks/'+f, 0o755); } cpSync('src/assets/skills','dist/assets/skills',{recursive:true}); for (const f of readdirSync('dist/assets/skills')) { if (f.endsWith('.sh')) chmodSync('dist/assets/skills/'+f, 0o755); } cpSync('src/assets/statusline','dist/assets/statusline',{recursive:true}); for (const f of readdirSync('dist/assets/statusline')) { if (f.endsWith('.sh')) chmodSync('dist/assets/statusline/'+f, 0o755); } chmodSync('dist/index.js', 0o755)\" && node scripts/strip-testing-exports.mjs && node scripts/finalize-public-hooks.mjs && node scripts/embed-plugin.mjs","clean":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('dist',{recursive:true,force:true})\"","start":"node dist/index.js","test:e2e":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('test-out-e2e',{recursive:true,force:true})\" && tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","dev:setup-hooks":"git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath .githooks","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.33.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-PMe1U1ZNCyQMIaQ3q28nKvQR+sjQGoz6IquaceL8qagedgiuEAc+Y0Q6M8aurwtNEAITWwt+7VfX9dTSFQzK7A==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"~Alter identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.3","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.33_1783231976984_0.3738758305341672","host":"s3://npm-registry-packages-npm-production"}},"0.8.34":{"name":"@truealter/cli","version":"0.8.34","license":"Apache-2.0","_id":"@truealter/cli@0.8.34","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"ee973b254d3ba1510e283347d4563110f0f6d3a4","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.34.tgz","fileCount":366,"integrity":"sha512-9NSaW1/lYPLqPm8CGHeeA8f9unKOhJLgqHKw0fKKR/rtdUvmGLOijbfQRUxPPlDKZAwGewZtBqJMOJR7BrDniw==","signatures":[{"sig":"MEYCIQCUTltQtVCswtVOqf8pAU96elESmcZOnFzRhFysMmd+tQIhAN6L0bD0R6osG/Qz46JuGd9trG8Mfd3OipGqVy/fZWf2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1746454},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.34.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"scripts":{"lint":"eslint 'src/**/*.ts'","test":"node scripts/ensure-dist.mjs && tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"npm run clean && tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync,cpSync,readdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); cpSync('src/assets/hooks','dist/assets/hooks',{recursive:true}); for (const f of readdirSync('dist/assets/hooks')) { if (f.endsWith('.sh')) chmodSync('dist/assets/hooks/'+f, 0o755); } cpSync('src/assets/skills','dist/assets/skills',{recursive:true}); for (const f of readdirSync('dist/assets/skills')) { if (f.endsWith('.sh')) chmodSync('dist/assets/skills/'+f, 0o755); } cpSync('src/assets/statusline','dist/assets/statusline',{recursive:true}); for (const f of readdirSync('dist/assets/statusline')) { if (f.endsWith('.sh')) chmodSync('dist/assets/statusline/'+f, 0o755); } chmodSync('dist/index.js', 0o755)\" && node scripts/strip-testing-exports.mjs && node scripts/finalize-public-hooks.mjs && node scripts/embed-plugin.mjs","clean":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('dist',{recursive:true,force:true})\"","start":"node dist/index.js","test:e2e":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('test-out-e2e',{recursive:true,force:true})\" && tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.34.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-9NSaW1/lYPLqPm8CGHeeA8f9unKOhJLgqHKw0fKKR/rtdUvmGLOijbfQRUxPPlDKZAwGewZtBqJMOJR7BrDniw==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"~Alter identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.3","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.34_1783825255575_0.16664643329865036","host":"s3://npm-registry-packages-npm-production"}},"0.8.35":{"name":"@truealter/cli","version":"0.8.35","license":"Apache-2.0","_id":"@truealter/cli@0.8.35","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"6e8deebbf8d9646234ee7e845a8836cd6ebfb6e7","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.35.tgz","fileCount":366,"integrity":"sha512-6gvpZkU8wJPf2Zo+0PfP87C2JliPJNHdweoA8oTlCp/mVvCyjgFgWRQcUhuPt9tKSkzYU3cppAMMpaFKTraAgQ==","signatures":[{"sig":"MEYCIQCB7ODacisNHpzTUi901wBXT0R8BalAZivyjIY/3Vo5PAIhAMczs13WN4DjeWUHdzLhi90w1kxH25CNKSvcPuUawlOr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1751834},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.35.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"scripts":{"lint":"eslint 'src/**/*.ts'","test":"node scripts/ensure-dist.mjs && tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"npm run clean && tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync,cpSync,readdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); cpSync('src/assets/hooks','dist/assets/hooks',{recursive:true}); for (const f of readdirSync('dist/assets/hooks')) { if (f.endsWith('.sh')) chmodSync('dist/assets/hooks/'+f, 0o755); } cpSync('src/assets/skills','dist/assets/skills',{recursive:true}); for (const f of readdirSync('dist/assets/skills')) { if (f.endsWith('.sh')) chmodSync('dist/assets/skills/'+f, 0o755); } cpSync('src/assets/statusline','dist/assets/statusline',{recursive:true}); for (const f of readdirSync('dist/assets/statusline')) { if (f.endsWith('.sh')) chmodSync('dist/assets/statusline/'+f, 0o755); } chmodSync('dist/index.js', 0o755)\" && node scripts/strip-testing-exports.mjs && node scripts/finalize-public-hooks.mjs && node scripts/embed-plugin.mjs","clean":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('dist',{recursive:true,force:true})\"","start":"node dist/index.js","test:e2e":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('test-out-e2e',{recursive:true,force:true})\" && tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .) && bash scripts/publish-gate.sh dist","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.35.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-6gvpZkU8wJPf2Zo+0PfP87C2JliPJNHdweoA8oTlCp/mVvCyjgFgWRQcUhuPt9tKSkzYU3cppAMMpaFKTraAgQ==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"~Alter identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.3","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.35_1783911940175_0.8879676947836541","host":"s3://npm-registry-packages-npm-production"}},"0.8.36":{"name":"@truealter/cli","version":"0.8.36","license":"Apache-2.0","_id":"@truealter/cli@0.8.36","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"url":"https://github.com/true-alter/alter-cli/issues"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"fb645eb5f7148de73a4097c5529d9c72f7d460b7","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.36.tgz","fileCount":391,"integrity":"sha512-qmK6C1OdKir+YvYzmkOLEl3qv/EM3FKgC0DL22aLUmw+Am8Vzw6t2mwFIbjei2xPhe1RdmQi8Yk/SpaFflERGw==","signatures":[{"sig":"MEUCIBI4aZ4fz+F2CUIkn2sB8swL9MR0Ll0dcozsOe9pFAI8AiEA/nvnAOd2dn/pwWyhh5T+0ImyVV3dWbVt4Qu/LSFyXEY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2011010},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.36.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"scripts":{"lint":"eslint 'src/**/*.ts'","test":"node scripts/ensure-dist.mjs && tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"npm run clean && tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync,cpSync,readdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); cpSync('src/assets/hooks','dist/assets/hooks',{recursive:true}); for (const f of readdirSync('dist/assets/hooks')) { if (f.endsWith('.sh')) chmodSync('dist/assets/hooks/'+f, 0o755); } cpSync('src/assets/skills','dist/assets/skills',{recursive:true}); for (const f of readdirSync('dist/assets/skills')) { if (f.endsWith('.sh')) chmodSync('dist/assets/skills/'+f, 0o755); } cpSync('src/assets/statusline','dist/assets/statusline',{recursive:true}); for (const f of readdirSync('dist/assets/statusline')) { if (f.endsWith('.sh')) chmodSync('dist/assets/statusline/'+f, 0o755); } mkdirSync('dist/assets/loom',{recursive:true}); copyFileSync('src/assets/loom/folder_loom.py','dist/assets/loom/folder_loom.py'); chmodSync('dist/index.js', 0o755)\" && node scripts/strip-testing-exports.mjs && node scripts/finalize-public-hooks.mjs && node scripts/embed-plugin.mjs","clean":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('dist',{recursive:true,force:true})\"","start":"node dist/index.js","test:e2e":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('test-out-e2e',{recursive:true,force:true})\" && tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .) && npm run build && node scripts/check-loom-provenance.mjs && bash scripts/publish-gate.sh dist","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.36.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-qmK6C1OdKir+YvYzmkOLEl3qv/EM3FKgC0DL22aLUmw+Am8Vzw6t2mwFIbjei2xPhe1RdmQi8Yk/SpaFflERGw==","repository":{"url":"git+https://github.com/true-alter/alter-cli.git","type":"git"},"_npmVersion":"10.8.2","description":"~Alter identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.3","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.36_1785798992455_0.6896495892142105","host":"s3://npm-registry-packages-npm-production"}},"0.8.41":{"name":"@truealter/cli","version":"0.8.41","license":"Apache-2.0","_id":"@truealter/cli@0.8.41","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"homepage":"https://truealter.com","bugs":{"email":"security@truealter.com"},"bin":{"alter":"dist/index.js"},"dist":{"shasum":"f969c65b854fc52e9ae65d77060015ca9ab20629","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.41.tgz","fileCount":413,"integrity":"sha512-UwYUMUr2yzc1VfjRWqNQO56KXKR3LE8S0Tz1ddu5zernl3Pr77HkRQoluHmLNSdXpbFu2hAO2v814eNW5c+ZyA==","signatures":[{"sig":"MEUCIQDtGCf30yVsCaBIshnvcZzBeA1TxUVt1In0HU0Md/Im3AIgQJPbRUHGeGfAnHht5tDzuSwwD1SMj7dQFYS/3m9vEx8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2235770},"main":"dist/index.js","type":"module","_from":"file:truealter-cli-0.8.41.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"scripts":{"lint":"eslint 'src/**/*.ts'","test":"node scripts/ensure-dist.mjs && tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"npm run clean && tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync,cpSync,readdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); cpSync('src/assets/hooks','dist/assets/hooks',{recursive:true}); for (const f of readdirSync('dist/assets/hooks')) { if (f.endsWith('.sh')) chmodSync('dist/assets/hooks/'+f, 0o755); } cpSync('src/assets/skills','dist/assets/skills',{recursive:true}); for (const f of readdirSync('dist/assets/skills')) { if (f.endsWith('.sh')) chmodSync('dist/assets/skills/'+f, 0o755); } cpSync('src/assets/statusline','dist/assets/statusline',{recursive:true}); for (const f of readdirSync('dist/assets/statusline')) { if (f.endsWith('.sh')) chmodSync('dist/assets/statusline/'+f, 0o755); } mkdirSync('dist/assets/loom',{recursive:true}); copyFileSync('src/assets/loom/folder_loom.py','dist/assets/loom/folder_loom.py'); chmodSync('dist/index.js', 0o755)\" && node scripts/strip-testing-exports.mjs && node scripts/finalize-public-hooks.mjs && node scripts/embed-plugin.mjs","clean":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('dist',{recursive:true,force:true})\"","start":"node dist/index.js","test:e2e":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('test-out-e2e',{recursive:true,force:true})\" && tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","prepublishOnly":"git ls-files dist/ | (! grep .) && npm run build && node scripts/check-loom-provenance.mjs && bash scripts/publish-gate.sh dist","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"_npmUser":{"name":"maxchop","email":"blake@truealter.com"},"_resolved":"/home/runner/work/alter-cli/alter-cli/truealter-cli-0.8.41.tgz","overrides":{"brace-expansion@^5.0.0":"^5.0.6"},"_integrity":"sha512-UwYUMUr2yzc1VfjRWqNQO56KXKR3LE8S0Tz1ddu5zernl3Pr77HkRQoluHmLNSdXpbFu2hAO2v814eNW5c+ZyA==","_npmVersion":"10.8.2","description":"~Alter identity CLI - login once, authenticated everywhere.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.3","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.8.41_1786535195701_0.17207940874337235","host":"s3://npm-registry-packages-npm-production"}},"0.8.43":{"_id":"@truealter/cli@0.8.43","bin":{"alter":"dist/index.js"},"bugs":{"url":"https://github.com/true-alter/cli/issues"},"dist":{"shasum":"90cd805f6a53bc7415fab112c65eca7765473f32","tarball":"https://registry.npmjs.org/@truealter/cli/-/cli-0.8.43.tgz","integrity":"sha512-GZWiGpNCCMgMtpfZA2ChVYqUvN9HAhcFzutSCiiE5CUwGWIHMfppePPEIpq4GKx7bIVlJj1aaQ3t6BBxmqQp0g==","fileCount":415,"unpackedSize":2275205,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@truealter%2fcli@0.8.43","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCxl1lgbboz+0U/NP9KCA+qNLoCV/hIX+oJa9H50eTwowIhAKY1KIoMULe3fsYqgxZH4guKiDxV2am2yCi4cAFztY4k"}]},"main":"dist/index.js","name":"@truealter/cli","type":"module","_from":"file:truealter-cli-0.8.43.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"license":"Apache-2.0","scripts":{"test":"node scripts/ensure-dist.mjs && tsc -p tsconfig.test.json && node --input-type=module -e \"import {copyFileSync,mkdirSync} from 'fs'; mkdirSync('test-out/src/onboarding', {recursive: true}); copyFileSync('src/onboarding/observations.json','test-out/src/onboarding/observations.json')\" && node scripts/run-tests.mjs test-out/tests","build":"tsc -p tsconfig.public.json --noEmit && npm run clean && tsc -p tsconfig.public.json && node --input-type=module -e \"import {copyFileSync,chmodSync,mkdirSync,cpSync,readdirSync} from 'fs'; copyFileSync('src/onboarding/observations.json','dist/onboarding/observations.json'); mkdirSync('dist/lib/sigstore',{recursive:true}); copyFileSync('src/lib/sigstore/trusted-root.json','dist/lib/sigstore/trusted-root.json'); cpSync('src/assets/hooks','dist/assets/hooks',{recursive:true}); for (const f of readdirSync('dist/assets/hooks')) { if (f.endsWith('.sh')) chmodSync('dist/assets/hooks/'+f, 0o755); } cpSync('src/assets/skills','dist/assets/skills',{recursive:true}); for (const f of readdirSync('dist/assets/skills')) { if (f.endsWith('.sh')) chmodSync('dist/assets/skills/'+f, 0o755); } cpSync('src/assets/statusline','dist/assets/statusline',{recursive:true}); for (const f of readdirSync('dist/assets/statusline')) { if (f.endsWith('.sh')) chmodSync('dist/assets/statusline/'+f, 0o755); } mkdirSync('dist/assets/loom',{recursive:true}); copyFileSync('src/assets/loom/folder_loom.py','dist/assets/loom/folder_loom.py'); chmodSync('dist/index.js', 0o755)\" && node scripts/strip-testing-exports.mjs && node scripts/embed-plugin.mjs","clean":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('dist',{recursive:true,force:true})\"","start":"node dist/index.js","test:e2e":"node --input-type=module -e \"import {rmSync} from 'fs'; rmSync('test-out-e2e',{recursive:true,force:true})\" && tsc -p tsconfig.e2e.json && node scripts/run-tests.mjs test-out-e2e","test:e2e:dev":"ALTER_E2E_DEV=1 node --experimental-strip-types --test tests/e2e/*.test.ts","onboarding:dry-run":"node dist/onboarding/dry-run.js"},"version":"0.8.43","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c504b9ef-cf65-4ff4-8bd3-de5753d20f75"},"approver":{"name":"maxchop","email":"blake@truealter.com"}},"homepage":"https://truealter.com","keywords":["alter","identity","identity-infrastructure","cli","mcp","model-context-protocol","agent-identity","ai-agent","autonomous-agents","agent-payments","x402","usdc","ed25519","authentication"],"_resolved":"/home/runner/work/cli/cli/truealter-cli-0.8.43.tgz","overrides":{"js-yaml":"^4.3.1","ip-address":"^10.3.1","@sigstore/sign":{"@sigstore/core":"^3.2.1"},"brace-expansion@^1.1.7":"^1.1.18","brace-expansion@^5.0.0":"^5.0.9"},"_integrity":"sha512-GZWiGpNCCMgMtpfZA2ChVYqUvN9HAhcFzutSCiiE5CUwGWIHMfppePPEIpq4GKx7bIVlJj1aaQ3t6BBxmqQp0g==","repository":{"url":"git+https://github.com/true-alter/cli.git","type":"git"},"_npmVersion":"12.0.2","description":"~Alter identity CLI - login once, authenticated everywhere.","directories":{},"maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"_nodeVersion":"22.23.2","dependencies":{"chalk":"^5.3.0","smol-toml":"^1.6.1","strip-ansi":"^7.2.0","@clack/prompts":"^0.7.0","@truealter/sdk":"^0.5.10","@sigstore/bundle":"^5.0.0","@sigstore/verify":"^4.0.0","@sigstore/protobuf-specs":"^0.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"devDependencies":{"eslint":"^9.39.4","typescript":"^5.7.0","@types/node":"^22.0.0","@sigstore/sign":"^4.1.1","typescript-eslint":"^8.59.4"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_0.8.43_1788236943981_0.8080142945625581"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-20T09:01:19.039Z","modified":"2026-09-01T04:29:04.544Z","0.1.0":"2026-04-20T09:01:19.366Z","0.2.0":"2026-04-23T03:20:24.692Z","0.2.1":"2026-04-23T04:38:41.703Z","0.4.2":"2026-04-25T09:43:25.280Z","0.4.4":"2026-04-27T08:00:16.401Z","0.4.5":"2026-04-30T04:47:39.053Z","0.4.7":"2026-05-04T07:37:13.414Z","0.4.8":"2026-05-08T11:03:14.485Z","0.5.1":"2026-05-11T05:53:18.491Z","0.5.2":"2026-05-11T07:26:31.102Z","0.5.3":"2026-05-12T04:14:10.065Z","0.5.4":"2026-05-12T04:56:42.028Z","0.6.0":"2026-05-12T05:19:33.379Z","0.7.0":"2026-05-15T04:07:13.373Z","0.7.1":"2026-05-26T02:45:35.139Z","0.7.3":"2026-05-27T09:31:58.859Z","0.7.4":"2026-05-31T09:32:57.674Z","0.8.0":"2026-05-31T23:23:22.804Z","0.8.1":"2026-06-02T04:10:22.189Z","0.8.2":"2026-06-02T05:35:33.714Z","0.8.3":"2026-06-02T09:40:12.743Z","0.8.4":"2026-06-02T22:28:03.373Z","0.8.5":"2026-06-03T05:06:15.139Z","0.8.6":"2026-06-03T06:24:14.376Z","0.8.7":"2026-06-03T08:33:17.295Z","0.8.8":"2026-06-04T12:20:16.533Z","0.8.9":"2026-06-05T06:55:15.668Z","0.8.10":"2026-06-05T07:54:40.670Z","0.8.11":"2026-06-06T06:46:20.195Z","0.8.12":"2026-06-07T02:27:52.196Z","0.8.13":"2026-06-09T02:43:22.991Z","0.8.27":"2026-06-19T04:28:13.794Z","0.8.28":"2026-06-27T03:30:12.700Z","0.8.29":"2026-06-30T23:06:52.583Z","0.8.30":"2026-07-01T05:07:35.988Z","0.8.31":"2026-07-03T04:42:52.158Z","0.8.32":"2026-07-03T06:47:42.526Z","0.8.33":"2026-07-05T06:12:57.135Z","0.8.34":"2026-07-12T03:00:55.740Z","0.8.35":"2026-07-13T03:05:40.379Z","0.8.36":"2026-08-03T23:16:32.652Z","0.8.41":"2026-08-12T11:46:35.873Z","0.8.43":"2026-09-01T04:29:04.174Z"},"bugs":{"url":"https://github.com/true-alter/cli/issues"},"license":"Apache-2.0","homepage":"https://truealter.com","repository":{"url":"git+https://github.com/true-alter/cli.git","type":"git"},"description":"~Alter identity CLI - login once, authenticated everywhere.","maintainers":[{"name":"maxchop","email":"blake@truealter.com"}],"readme":"<div align=\"center\">\n\n<img src=\"https://raw.githubusercontent.com/true-alter/cli/main/docs/alter-mark.svg\" alt=\"\" height=\"96\">\n\n# ~alter CLI\n\n**Claim a name that is yours and get paid when someone reads it**\n\n[![@truealter/cli](https://img.shields.io/npm/v/@truealter/cli?label=%40truealter%2Fcli&color=C9A84C&style=flat-square)](https://www.npmjs.com/package/@truealter/cli)\n[![Homebrew](https://img.shields.io/badge/brew-true--alter%2Ftap%2Falter-C9A84C?style=flat-square)](https://github.com/true-alter/homebrew-tap)\n[![MCP](https://img.shields.io/badge/MCP-live-C9A84C?style=flat-square)](https://mcp.truealter.com/api/v1/mcp)\n[![Node](https://img.shields.io/badge/node-%E2%89%A520-555?style=flat-square)](#install)\n[![Licence](https://img.shields.io/badge/licence-Apache--2.0-555?style=flat-square)](./LICENSE)\n\n[What is ~alter?](#what-is-alter) · [Install](#install) · [The first five minutes](#the-first-five-minutes)\n\n</div>\n\n## What is ~alter?\n\nRun `alter register`, choose a name and confirm you are eighteen or older. Your\nown machine spends a few seconds proving there is a person behind the request,\nand then `~yourname` exists.\n\nA second before that command there was no you on this protocol, and afterwards\nthere is one that is yours. No browser opened, no password was set, no email\naddress was asked for, and no card was taken.\n\n`~alter` is what that name resolves to. `~yourname` is an address, and behind it\nsits a record of what you have actually done. Every command below reads or\nwrites some part of it, and anything else speaking the protocol resolves the\nsame address to the same record.\n\nThe step is that small, and it is the one everything else here runs from. Agents\nyou wire on this machine act under the name, so what they do in your stead\ncarries it. Anybody wanting more of you than the fact you exist pays for it on\nterms you set first, and `alter queries` names each of them and what you kept.\n\nNothing else in the stack is where a name starts. The\n[website](https://truealter.com) argues the case, the\n[runtime](https://github.com/true-alter/runtime) keeps a handle known on your\nown machine, and the [SDK](https://github.com/true-alter/sdk) reads one from\ncode you have written. Each of those begins with a name that already exists,\nand this is the command that makes one.\n\n<details><summary><b>I want to know more</b></summary><br><p>Your friends do not know you from a login. Neither does your family, or the people you work with, or your sports team. They know who you are from how you have shown up, over years. You may look and sound nothing like you did ten years ago and it is still you.</p><p>Software still asks the narrow question. A password at the login screen. A token in the app. Each one checks whether this is the right person, right now, at this exact spot, and then looks away. Everything in between is invisible to it, and that is almost all of your life. The AI tools made it worse, because one of them writes in your name now, and when somebody asks who allowed it, there is no answer anywhere on this machine.</p><p><b>One name, and the record under it is yours.</b> <code>~yourname</code> works at every tool that speaks the protocol, so nothing is set up twice and there is no key to paste, at any point. What is in the record was read from what you did, not typed into a box by you or guessed at by a model. You can cut off access to any of it with one command. No form, no review.</p><p><b>Being read pays you.</b> Anyone can check for free that your handle exists. Reading further, past the fact of you, costs the reader money, that money goes to you, and you decide who gets to read what. Collectives hold a record on the same terms, because it is one record at every scale and the same form holds you, your team, and your country. A union, a club, a trade body, or a group of people who have never met can vouch for their own members and be read the same way you are.</p><p><b>Threads are how you get somewhere.</b> A thread is something you are working towards. You take one on yourself, or ~Alter plants one from what it can already see, or a collective confers one on you. What gets read is the trail you leave while you are doing it, never a certificate at the end.</p><p>All of that is the short version of an argument set out properly, in eight chapters at <a href=\"https://truealter.com/origin\">truealter.com/origin</a>. Its seventy-six predictions were each written so the data could come back and say no. Five of them did, and those five are still published alongside the rest.</p></details>\n\n<details><summary><b>I want to check it myself</b></summary>\n\nNone of it needs taking on trust. Hand this to the AI you already use and\nlet it take you through in your own words.\n\n```text\nGo to truealter.com, find the genesis and the origin\npapers, and read all of them. Then start a discussion\nwith me in my own language, no jargon.\n\nAsk me one question at a time and wait for my answer.\nFollow what I am curious about, not the order the site\nis written in.\n\nDo not only read the pages. Connect to their interface\ndirectly and call get_started. That tells you where I am\nand what comes next, and we work the rest of this from\nthere.\n\nIf I have a ~handle I will give it to you. If I do not\nand I decide I want one, set it up with me here.\n\nWhat I want to understand is what ~Alter is, how it\napplies to me, and what it means for everyone else. Find\nme somewhere in it, and not the version written for\npeople who work in technology. Find the life nearest\nmine and walk me through it, including what it would\ncost me.\n\nTry to prove them wrong. Go and find where they show\ntheir working, and if something is unclear or does not\nhold up, say so.\n```\n\n</details>\n\n## What is ~alter CLI?\n\nOne binary, and every command in it runs under your own handle. Nothing to\npaste, no key to carry between machines, and no browser step at any point.\n\nIt covers six things. Holding a name that is yours and keeping it safe. Deciding\nwho may read you, attribute by attribute. Connecting the sources it reads what\nyou do from. Seeing who looked you up and what each read paid you. Running your\nagents under your handle, so what they do carries it. Asking the field for\nsomebody when you know nobody who would know them.\n\nTwo of those need no account at all. `alter audit` reads this machine, prints\nwhat ~Alter could learn from it, and stops. `alter doctor loom` checks a folder\nfor secrets, bad encoding and broken links, with no network. Both run before you\ndecide anything.\n\nThe rest of this page is the install, and the first five minutes.\n\n## Install\n\nNothing needs setting up first. The installer brings its own Node when the\nmachine has none. Take the line for the shell you are in.\n\n**macOS, Linux and WSL**\n\n```bash\ncurl -sSf https://truealter.com/install.sh | bash\n```\n\n**Windows PowerShell**\n\n```powershell\nirm https://truealter.com/install.ps1 | iex\n```\n\n### What that puts on your machine\n\nFour things land, and the rest of this section is what does not.\n\n- The `alter` command, which is the npm package\n  [`@truealter/cli`](https://www.npmjs.com/package/@truealter/cli), installed\n  globally.\n- One directory on your `PATH`, so `alter` is there in every shell you open.\n- Node, but only if this machine has none. macOS and Linux take the official\n  build, check it against the checksums [nodejs.org](https://nodejs.org)\n  publishes, and unpack it into `~/.local/share/alter/node`. Windows installs\n  Node LTS through winget, or Chocolatey when winget is not there. Node already\n  here is left alone.\n- A checksum for the installer itself, at `install.sh.sha256` and\n  `install.ps1.sha256`, so you can check the script before you run it.\n\nNothing runs under `sudo`. The installer refuses to run as root, because root\nwould own Node, npm and `alter`, and you would not be able to run the command at\nall. macOS asks for a password once, to link the binary into `/usr/local/bin`,\nand nothing else needs administrator rights on either platform. Nothing lands\noutside your home directory.\n\nNo account is created and nothing is sent. When the install finishes ~Alter has\nread nothing about you or about this machine. `alter audit` is the first command\nthat reads anything, and it reads locally. `alter register` is the first that\ncreates anything, and you run it yourself.\n\n<details><summary><h3><a href=\"https://github.com/true-alter/homebrew-tap\">Homebrew</a>, on macOS or Linux</h3></summary>\n\n- **Take this one if** you want Homebrew to own the copy on this machine and\n  upgrade it alongside everything else you have installed.\n- **It brings its own Node.**\n\n```bash\nbrew install true-alter/tap/alter\n```\n\n</details>\n\n<details><summary><h3>Arch Linux, from <a href=\"https://aur.archlinux.org/packages/truealter-cli\">the AUR</a></h3></summary>\n\n- **Take this one on Arch or a derivative,** so `pacman` knows about it like\n  anything else on the machine.\n- **`paru` works the same way,** with `paru -S truealter-cli`.\n\n```bash\nyay -S truealter-cli\n```\n\n</details>\n\n<details><summary><h3>npm, if you would rather not run a script</h3></summary>\n\n- **Take this one when Node 20 or newer is already here** and you would rather\n  install the package yourself.\n- **It is the same package the installer above puts there,** without the Node\n  and `PATH` handling.\n\n```bash\nnpm install -g @truealter/cli\n```\n\n</details>\n\n## The first five minutes\n\nRun `alter` on its own.\n\nThe menu opens on the four commands that turn earning on.\n\n<div align=\"center\">\n\n<img src=\"https://raw.githubusercontent.com/true-alter/cli/main/docs/shot-menu-plain.svg\" alt=\"The alter menu, showing the four earn steps\" width=\"668\" height=\"329\">\n\n</div>\n\nAfter that there is one command to remember. Start this today, get pulled away,\nand come back next week not knowing what is left, and `alter status` names which\nof six steps you are on and what to do next. Those six steps are the sections\nbelow.\n\n<div align=\"center\">\n\n<img src=\"https://raw.githubusercontent.com/true-alter/cli/main/docs/shot-walk-plain.svg\" alt=\"The six-step guided walk shown by alter status\" width=\"668\" height=\"349\">\n\n</div>\n\n### Read your own machine before anything is created\n\nRun `alter audit`.\n\nYou have not decided anything yet and want to see what it would read off your\nown machine first. It reads this machine, prints what ~Alter could learn from\nit, and stops. Nothing is sent and nothing is created.\n\n<div align=\"center\">\n\n<img src=\"https://raw.githubusercontent.com/true-alter/cli/main/docs/shot-audit-plain.svg\" alt=\"alter audit output, showing what is read locally and that nothing was written\" width=\"668\" height=\"411\">\n\n</div>\n\nClose the terminal here and you are exactly where you started.\n\n### 1. Register, and take the handle\n\nRun `alter register`.\n\nFree, and it asks for no account, no card and no application. Use\n`alter login` instead if the handle is already yours.\n\nNothing is printed for you to write down. The handle is claimed, a member\ncredential is minted onto this machine, and the session is stored for you. The\nsecret worth keeping is the root seed, which `alter key device register` mints\nand shows once, on the run that mints it. Run `alter key seed export` to see it\nagain on that machine and `alter key seed import` to put it on a new one. No\nserver holds it, so nobody can reissue it for you.\n\n### 2. Preview the record a caller would get\n\nRun `alter discovery preview` first.\n\nSay you are happy to be found for the trade you do and for nothing else. This\nprints your record the way a caller would receive it, with the price on that\nread, before anybody is able to make one.\n\nThe levels are set by `alter discovery preset recognition`. There are four, and\nthey apply attribute by attribute.\n\n| Level | What a caller gets |\n|---|---|\n| `hidden` | Nothing. Not surfaced at all |\n| `match_only` | Counts toward a ranking. The value is never shown |\n| `tier_label` | A band, never the raw number |\n| `exact` | The literal value |\n\nThree presets are the starting points, `minimal`, `recognition` and `open`, and\n`alter discovery set` moves one attribute off whichever you picked.\n\n### 3. Pair the places you already work\n\nRun `alter pair`.\n\nRun it with nothing after it and you get the menu. GitHub, GitLab, Discord,\nMastodon, Bluesky, ORCID, Steam, Lichess, a domain you control, an Obsidian\nvault. Naming one, `alter pair github`, skips the menu. Neither route opens a\nbrowser at you, both hand you a code to type in.\n\nYou already do the work somewhere. What comes back is what you did there, not\nwhat you say about it. None of it belongs to the source, so it survives leaving\nthe source. Use `alter connections` to list them, `alter pair status` to see\nwhat each returned, and `alter unpair <id>` to drop one.\n\n<div align=\"center\">\n\n<img src=\"https://raw.githubusercontent.com/true-alter/cli/main/docs/shot-pair-plain.svg\" alt=\"alter pair status, showing a paired source and what it gave\" width=\"668\" height=\"288\">\n\n</div>\n\n### 4. Make the handle resolve\n\nRun `alter discovery enable`.\n\nUntil you run it your handle does not resolve at all. After it, a caller gets\nwhat step 2 allows and nothing else. Running `alter discovery disable` takes you\nback out with the settings intact.\n\n### 5. Every read, with the price on it\n\nRun `alter queries`.\n\nYou have applied for nothing and somebody has looked you up anyway. Who asked,\nwhat they paid, what you kept. It is the log itself, not a summary of it, and\nyours costs nothing to read. Anybody's access ends from here with\n`alter consent revoke`.\n\n### 6. The balance, and the two things that open withdrawal\n\nRun `alter earnings`.\n\nThe balance moves whether or not you can withdraw yet. Two things open\nwithdrawal, and the readiness line in the menu says where each of them stands.\n\nYour email has to be confirmed, because nothing accrues from a query against an\nunconfirmed address, and a payout wallet has to be registered with\n`alter wallet register`. Withdrawal opens at Augmented, the third of four levels,\nand the balance keeps building until you reach it.\n\n### Wire the agents already on this machine\n\nRun `alter wire`.\n\nYou use one of those every day and would rather not explain who you are to it\nevery time you open it. It finds the AI harnesses installed here and connects\neach of them to the rail. What an agent does in your name then carries your\nhandle, and turns up in `alter queries` like any other read.\n\n<details><summary><h3>What people do with it</h3></summary>\n\n`alter ask` is the one to try first. It queries the field by situation instead\nof by name, and it costs $1.00 a call, which is the same dollar landing in\nsomebody else's `alter earnings` when they are the answer. The whole economy in\none command, seen from both ends.\n\nSomebody messages you offering work and signs off as ~sam, and you want to know\nthere is a person behind that before you answer. `alter verify` answers it and\ncosts nothing. So does `alter doctor loom`, which reads a folder you are about to\nsend somebody and tells you a password is not sitting in one of the files.\n\n| You want to | Run |\n|---|---|\n| Find people by situation rather than by name | `alter ask --trait ...` |\n| Check whether a handle is real, free | `alter verify <handle>` |\n| Check a folder before you send it, offline | `alter doctor loom ./folder` |\n| Let one peer query alignment with you | `alter alignment grant ~peer` |\n| See how your traits have moved | `alter traits`, `alter portfolio` |\n| Dispute something the field recorded about you | `alter contest` |\n| Read your own signals as they land | `alter signals tail` |\n\n</details>\n\n<details><summary><h3>What the commands cover</h3></summary>\n\n| What you want to do | The commands |\n|---|---|\n| Hold a name that is yours | `register`, `login`, `handle`, `whoami`, `about` |\n| Keep the account safe | `passkey`, `mfa`, `key`, `password`, `sessions`, `creds` |\n| Get paid | `earnings`, `identity-income`, `portfolio`, `cash-out`, `queries`, `wallet` |\n| Show what you can do | `pair`, `unpair`, `discovery`, `traits`, `signals` |\n| Control what is read, and see who read it | `consent`, `forget`, `queries`, `audit` |\n| Agree terms with someone | `accord`, `alignment`, `room`, `coord` |\n| Talk to people and agents | `msg`, `email`, `thread`, `brief`, `ask` |\n| Run agents under your handle | `wire`, `unwire`, `mcp-bridge`, `agent`, `hooks`, `skills`, `runtime` |\n| Check everything is healthy | `doctor`, `status`, `config`, `style` |\n\n`alter help` lists every command, and the interactive menu groups them the same\nway.\n\nAn accord is where two parties who have never met agree a paid job. Each side\nhas a name, both sign the same terms, what gets done is recorded, and payment\nlands in USDC on those terms. No company sits in the middle holding the work,\nthe money or the relationship.\n\n</details>\n\n<details><summary><h3>Wiring the tools you already use</h3></summary>\n\n`alter wire` covers the harnesses on your machine. If you would rather connect\nsomething by hand, or you are on a client that reads its own config, point it at\nthe hosted endpoint:\n\n```\nhttps://mcp.truealter.com/api/v1/mcp\n```\n\nCodex reads that from its config file. ChatGPT takes it as a custom connector.\n\n</details>\n\n<details><summary><h3>Where this goes</h3></summary>\n\nThe six steps are only the start.\n\nA thread is something you are working towards. You take one on, or one is\nplanted from what the field can already see, or a collective confers one on you.\nWhat gets read is the trail you leave while doing it, never a certificate at the\nend.\n\nA collective holds a record on the same terms you do, and can vouch for its own\nmembers. A team, a union, a club or a trade body, one record at every scale.\n\nThe [runtime](https://github.com/true-alter/runtime) keeps your handle known on\nthis machine without the command line running, and `alter help advanced` covers\nthe MCP wiring.\n\nThe deep-dives are all in the terminal, at `alter help getting-started`,\n`alter help earning`, `alter help concepts` and `alter help advanced`. None of\nthem send you to a web page.\n\n</details>\n\n<details><summary><h3>Keeping it current</h3></summary>\n\n```bash\nnpm update -g @truealter/cli\n```\n\nOn the Homebrew path it is `brew update && brew upgrade alter` instead. Either\nway you get the current release, and `alter --version` says which one you are\non.\n\n</details>\n\n<details><summary><h3>If something goes wrong</h3></summary>\n\nRun `alter doctor` first. It checks the install, the session and the\nconnections, then tells you which one is unhappy.\n\nIf it reports a session problem, `alter login` is the answer. You will never be\nasked to create, obtain or paste a token or a key to fix something. If any\nmessage ever tells you to, that is a defect on our side, and it is worth\n[an issue](https://github.com/true-alter/cli/issues).\n\n</details>\n\n<details><summary><h3>The protocols underneath it</h3></summary>\n\nThe record formats are open Internet-Drafts, so somebody else's implementation reads and writes the same records this one does without asking us. These are the drafts this repository actually rests on.\n\n| Draft | What it specifies |\n|---|---|\n| [`mcp-dns-discovery`](https://datatracker.ietf.org/doc/draft-morrison-mcp-dns-discovery/) | The DNS records that publish a `~handle`, the server that answers for it, and the signed envelope bound to it. |\n| [`alter-uri-scheme`](https://datatracker.ietf.org/doc/draft-morrison-alter-uri-scheme/) | The `alter:` URI, so a `~handle` reference resolves, verifies and dispatches to a handler on the machine. |\n| [`identity-pronouns`](https://datatracker.ietf.org/doc/draft-morrison-identity-pronouns/) | Session-scoped references that resolve to a concrete handle on the client before anything reaches the wire. |\n| [`consent-settlement`](https://datatracker.ietf.org/doc/draft-morrison-consent-settlement/) | Binding a paid read of somebody's identity to their own recorded consent, and settling part of that payment to them. |\n\nEighteen drafts make up the whole stack. The rest are on the [IETF datatracker](https://datatracker.ietf.org/doc/search/?name=draft-morrison&activedrafts=on).\n\n</details>\n\n<details><summary><h3>The rest of it</h3></summary>\n\n`~alter` is one identity rail with several ways in, and this command line is the\nfront door for a person.\n\n| Name | What it is |\n|---|---|\n| **cli** | The command line, and the front door for a person. **You are here.** |\n| **[homebrew-tap](https://github.com/true-alter/homebrew-tap)** | That command line, packaged for macOS and Linux. |\n| **[runtime](https://github.com/true-alter/runtime)** | The daemon that keeps your `~handle` known on your own machine. |\n| **[sdk](https://github.com/true-alter/sdk)** | Reading identity from your own code. |\n| **[obsidian](https://github.com/true-alter/obsidian)** | ~Alter inside an Obsidian vault, on-device. |\n| **[mcp-ollama](https://github.com/true-alter/mcp-ollama)** | Local models, for work that should stay on the machine it runs on. |\n\n| Where to read more | |\n|---|---|\n| Website | [truealter.com](https://truealter.com) |\n| The reasoning behind it | [truealter.com/origin](https://truealter.com/origin) |\n| Getting started | [truealter.com/build](https://truealter.com/build) |\n| What the tools do | [truealter.com/docs/mcp/tools](https://truealter.com/docs/mcp/tools) |\n| The open specifications | [the draft stack](https://datatracker.ietf.org/doc/search/?name=draft-morrison&activedrafts=on) |\n\nThis repository is the public home of the released command line, and the npm\nrelease runs from here. The source arrives on a separate branch written by\nautomation, so a pull request against it cannot be accepted.\n[Issues](https://github.com/true-alter/cli/issues) are the way to reach us.\nSecurity reports go to [security@truealter.com](mailto:security@truealter.com),\nnever a public issue, and [`SECURITY.md`](./SECURITY.md) has the detail.\nApache-2.0, see [`LICENSE`](./LICENSE).\n\n</details>\n\n---\n\n<div align=\"center\">\n\n<sub><b>~alter</b> is identity infrastructure. Your name is <code>~yourname</code> and claiming one is free.</sub>\n\n<sub>\n<a href=\"https://truealter.com\">Website</a> &nbsp;·&nbsp;\n<a href=\"https://truealter.com/docs\">Docs</a> &nbsp;·&nbsp;\n<a href=\"https://truealter.com/origin\">The argument in eight chapters</a> &nbsp;·&nbsp;\n<a href=\"https://datatracker.ietf.org/doc/search/?name=draft-morrison&activedrafts=on\">The open specifications</a> &nbsp;·&nbsp;\n<a href=\"https://github.com/true-alter\">Every repository</a>\n</sub>\n\n</div>\n","readmeFilename":"README.md","keywords":["alter","identity","identity-infrastructure","cli","mcp","model-context-protocol","agent-identity","ai-agent","autonomous-agents","agent-payments","x402","usdc","ed25519","authentication"]}