{"_id":"@tiangong-lca/cli","_rev":"6-1fa6ee3cef7500975ec4bc23b4918ac5","name":"@tiangong-lca/cli","dist-tags":{"latest":"0.0.6"},"versions":{"0.0.1":{"name":"@tiangong-lca/cli","version":"0.0.1","keywords":["tiangong","lca","cli","rest"],"license":"MIT","_id":"@tiangong-lca/cli@0.0.1","maintainers":[{"name":"linanenv","email":"linanenv@gmail.com"},{"name":"biaoo","email":"872299269@qq.com"}],"homepage":"https://github.com/tiangong-lca/tiangong-cli#readme","bugs":{"url":"https://github.com/tiangong-lca/tiangong-cli/issues"},"bin":{"tiangong":"bin/tiangong.js"},"dist":{"shasum":"ebf5843db7bf6b9c62ba31973ca36f88ca9d51ef","tarball":"https://registry.npmjs.org/@tiangong-lca/cli/-/cli-0.0.1.tgz","fileCount":96,"integrity":"sha512-ZYDiKrbc3KxzuxaDv8T9HRmd8oJldoFi1l2qVfRP3nc1IDwCc7g1uOqcm5E8gGvq1Q24DR6U0abkNpqIULFBjA==","signatures":[{"sig":"MEUCIQCN9i2UNg72lH/jevAjawXL4KgtOd6Msnyukt5zQg6UHAIgR4DDFCHrfh08/SgJzPN0AH5zotzabgHH0PS7ErMBfPg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2442957},"type":"module","engines":{"node":">=24 <25"},"scripts":{"dev":"tsx watch src/main.ts","tsc":"tsc --noEmit","lint":"npm run lint:js && npm run lint:prettier && npm run lint:coverage-guards && npm run tsc","test":"npm run build && node --import tsx --test","build":"tsc -p tsconfig.build.json","clean":"node --eval \"import('node:fs').then(({ rmSync }) => rmSync('dist', { recursive: true, force: true }))\"","start":"npm run build && node ./bin/tiangong.js","lint:js":"eslint --cache --ext .js,.jsx,.ts,.tsx,.cjs,.mjs --format=stylish ./src ./test ./scripts ./bin && npm run lint:deprecated","prepare":"npm run build","prettier":"prettier --write \"{src,test,docs,scripts,bin}/**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}\" \"*.{js,cjs,mjs,jsx,tsx,ts,md,json}\"","typecheck":"npm run tsc","lint-staged":"lint-staged","prepush:gate":"npm run lint && npm run test:coverage && npm run test:coverage:assert-full","lint:prettier":"prettier --check \"{src,test,docs,scripts,bin}/**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}\" \"*.{js,cjs,mjs,jsx,tsx,ts,md,json}\"","test:coverage":"npm run build && node ./scripts/run-test-coverage.cjs","lint-staged:js":"eslint --ext .js,.jsx,.ts,.tsx ","lint:deprecated":"node ./scripts/lint-deprecated.cjs src test scripts","release:check-tag":"node ./scripts/ci/check-release-tag.cjs cli","lint:coverage-guards":"node ./scripts/assert-no-coverage-ignore.cjs","test:coverage:assert-full":"node ./dist/scripts/assert-full-coverage.js","release:assert-unpublished":"node ./scripts/ci/release-version.cjs assert-unpublished"},"_npmUser":{"name":"linanenv","email":"linanenv@gmail.com"},"repository":{"url":"git+https://github.com/tiangong-lca/tiangong-cli.git","type":"git"},"_npmVersion":"11.6.2","description":"Unified TianGong LCA CLI with direct REST adapters and low-entropy command surface.","directories":{},"lint-staged":{"**/*.{js,jsx,ts,tsx,cjs,mjs}":"npm run lint-staged:js --","**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}":["prettier --write"]},"_nodeVersion":"24.13.0","dependencies":{"@supabase/supabase-js":"^2.101.1","@tiangong-lca/tidas-sdk":"^0.1.30"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","eslint":"^10.1.0","globals":"^17.4.0","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.12.0","lint-staged":"^16.4.0","typescript-eslint":"^8.57.2"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.0.1_1775469551016_0.5531425850301244","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@tiangong-lca/cli","version":"0.0.2","keywords":["tiangong","lca","cli","rest"],"license":"MIT","_id":"@tiangong-lca/cli@0.0.2","maintainers":[{"name":"linanenv","email":"linanenv@gmail.com"},{"name":"biaoo","email":"872299269@qq.com"}],"homepage":"https://github.com/tiangong-lca/tiangong-cli#readme","bugs":{"url":"https://github.com/tiangong-lca/tiangong-cli/issues"},"bin":{"tiangong":"bin/tiangong.js"},"dist":{"shasum":"edba0ded97e32fe26f4694462e636e84ffc4eda7","tarball":"https://registry.npmjs.org/@tiangong-lca/cli/-/cli-0.0.2.tgz","fileCount":96,"integrity":"sha512-6xNucNCo5bOPHIWj8O4CgcHEuNbkKom+HGHTunqWWQyWLUIpXb81h1hyaDJ+1Ex/UTGEzzKBIrNmSbPJqaDM3A==","signatures":[{"sig":"MEYCIQCHwKT7/0/nKv41o0BsfDxeP0B9e5gZ/evO8ft/UVySZwIhAKoi80leG9JU3Rlz8K/SPjvqd6bK7TJerz1M7sgBWdTb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tiangong-lca%2fcli@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2442957},"type":"module","engines":{"node":">=24 <25"},"gitHead":"87b376dd3cb825adb239d9925e4606f1467e2c52","scripts":{"dev":"tsx watch src/main.ts","tsc":"tsc --noEmit","lint":"npm run lint:js && npm run lint:prettier && npm run lint:coverage-guards && npm run tsc","test":"npm run build && node --import tsx --test","build":"tsc -p tsconfig.build.json","clean":"node --eval \"import('node:fs').then(({ rmSync }) => rmSync('dist', { recursive: true, force: true }))\"","start":"npm run build && node ./bin/tiangong.js","lint:js":"eslint --cache --ext .js,.jsx,.ts,.tsx,.cjs,.mjs --format=stylish ./src ./test ./scripts ./bin && npm run lint:deprecated","prepare":"npm run build","prettier":"prettier --write \"{src,test,docs,scripts,bin}/**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}\" \"*.{js,cjs,mjs,jsx,tsx,ts,md,json}\"","typecheck":"npm run tsc","lint-staged":"lint-staged","prepush:gate":"npm run lint && npm run test:coverage && npm run test:coverage:assert-full","lint:prettier":"prettier --check \"{src,test,docs,scripts,bin}/**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}\" \"*.{js,cjs,mjs,jsx,tsx,ts,md,json}\"","test:coverage":"npm run build && node ./scripts/run-test-coverage.cjs","lint-staged:js":"eslint --ext .js,.jsx,.ts,.tsx ","lint:deprecated":"node ./scripts/lint-deprecated.cjs src test scripts","release:check-tag":"node ./scripts/ci/check-release-tag.cjs cli","lint:coverage-guards":"node ./scripts/assert-no-coverage-ignore.cjs","test:coverage:assert-full":"node ./dist/scripts/assert-full-coverage.js","release:assert-unpublished":"node ./scripts/ci/release-version.cjs assert-unpublished"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ff048fbc-082d-4316-b8f9-27fde2f22055"}},"repository":{"url":"git+https://github.com/tiangong-lca/tiangong-cli.git","type":"git"},"_npmVersion":"11.12.1","description":"Unified TianGong LCA CLI with direct REST adapters and low-entropy command surface.","directories":{},"lint-staged":{"**/*.{js,jsx,ts,tsx,cjs,mjs}":"npm run lint-staged:js --","**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}":["prettier --write"]},"_nodeVersion":"24.14.1","dependencies":{"@supabase/supabase-js":"^2.101.1","@tiangong-lca/tidas-sdk":"^0.1.31"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.12.2","lint-staged":"^16.4.0","typescript-eslint":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.0.2_1775473010484_0.20953490385432594","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@tiangong-lca/cli","version":"0.0.3","keywords":["tiangong","lca","cli","rest"],"license":"MIT","_id":"@tiangong-lca/cli@0.0.3","maintainers":[{"name":"linanenv","email":"linanenv@gmail.com"},{"name":"biaoo","email":"872299269@qq.com"}],"homepage":"https://github.com/tiangong-lca/tiangong-cli#readme","bugs":{"url":"https://github.com/tiangong-lca/tiangong-cli/issues"},"bin":{"tiangong":"bin/tiangong.js"},"dist":{"shasum":"802e9a6efcbba95373e6d21c37a03e7bf3015a38","tarball":"https://registry.npmjs.org/@tiangong-lca/cli/-/cli-0.0.3.tgz","fileCount":100,"integrity":"sha512-5rrs1fotOs7ES0yFlV+4x7n07PV9rDCuh7f2qIT5pCzKuX2MNjxXIADX3aGrG/c3wap11LnNcxxjeTS1lrRO0A==","signatures":[{"sig":"MEQCIGNFfWPHcY2py0yZlViiMg7p9jo47kyDiBKweDJYFmojAiAe5ERwjpibX3+jDdN9YDMedSv1mQQSwq0AnAhnecVdeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tiangong-lca%2fcli@0.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2507959},"type":"module","engines":{"node":">=24 <25"},"gitHead":"43bb1bdaee0ffed7c70df5d653cfb884aa9bf482","scripts":{"dev":"tsx watch src/main.ts","tsc":"tsc --noEmit","lint":"npm run lint:js && npm run lint:prettier && npm run lint:coverage-guards && npm run tsc","test":"npm run build && node --import tsx --test","build":"tsc -p tsconfig.build.json","clean":"node --eval \"import('node:fs').then(({ rmSync }) => rmSync('dist', { recursive: true, force: true }))\"","start":"npm run build && node ./bin/tiangong.js","lint:js":"eslint --cache --ext .js,.jsx,.ts,.tsx,.cjs,.mjs --format=stylish ./src ./test ./scripts ./bin && npm run lint:deprecated","prepare":"npm run build","prettier":"prettier --write \"{src,test,docs,scripts,bin}/**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}\" \"*.{js,cjs,mjs,jsx,tsx,ts,md,json}\"","typecheck":"npm run tsc","lint-staged":"lint-staged","prepush:gate":"npm run lint && npm run test:coverage && npm run test:coverage:assert-full","lint:prettier":"prettier --check \"{src,test,docs,scripts,bin}/**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}\" \"*.{js,cjs,mjs,jsx,tsx,ts,md,json}\"","test:coverage":"npm run build && node ./scripts/run-test-coverage.cjs","lint-staged:js":"eslint --ext .js,.jsx,.ts,.tsx ","lint:deprecated":"node ./scripts/lint-deprecated.cjs src test scripts","release:check-tag":"node ./scripts/ci/check-release-tag.cjs cli","lint:coverage-guards":"node ./scripts/assert-no-coverage-ignore.cjs","test:coverage:assert-full":"node ./dist/scripts/assert-full-coverage.js","release:assert-unpublished":"node ./scripts/ci/release-version.cjs assert-unpublished"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ff048fbc-082d-4316-b8f9-27fde2f22055"}},"repository":{"url":"git+https://github.com/tiangong-lca/tiangong-cli.git","type":"git"},"_npmVersion":"11.12.1","description":"Unified TianGong LCA CLI with direct REST adapters and low-entropy command surface.","directories":{},"lint-staged":{"**/*.{js,jsx,ts,tsx,cjs,mjs}":"npm run lint-staged:js --","**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}":["prettier --write"]},"_nodeVersion":"24.14.1","dependencies":{"@supabase/supabase-js":"^2.101.1","@tiangong-lca/tidas-sdk":"^0.1.31"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.12.2","lint-staged":"^16.4.0","typescript-eslint":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.0.3_1775535023044_0.12280885247264828","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@tiangong-lca/cli","version":"0.0.4","keywords":["tiangong","lca","cli","rest"],"license":"MIT","_id":"@tiangong-lca/cli@0.0.4","maintainers":[{"name":"linanenv","email":"linanenv@gmail.com"},{"name":"biaoo","email":"872299269@qq.com"}],"homepage":"https://github.com/tiangong-lca/tiangong-cli#readme","bugs":{"url":"https://github.com/tiangong-lca/tiangong-cli/issues"},"bin":{"tiangong":"bin/tiangong.js"},"dist":{"shasum":"38d9798cba47113d6e44e5b6ff813e7ee4835527","tarball":"https://registry.npmjs.org/@tiangong-lca/cli/-/cli-0.0.4.tgz","fileCount":102,"integrity":"sha512-6kDsC8C4xZBGgXQVCFzdK83OGt3reA+fWajCedNAAsqxguJpQ1yI9dYpU4kfMEEqXcP5pkzuzEMYoLYECzp/qg==","signatures":[{"sig":"MEYCIQDM/fSZnJH1pzt+rNv3c3Nit+8hzpxSzdN4xA90advl4QIhAOa8dRpXWnMuyry6SZy1qIzIiZtTTacsXZKhpUu7pwmu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tiangong-lca%2fcli@0.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2525753},"type":"module","engines":{"node":">=24 <25"},"gitHead":"29ad58db34a8e96935841a91568721098fc92c3d","scripts":{"dev":"tsx watch src/main.ts","tsc":"tsc --noEmit","lint":"npm run lint:js && npm run lint:prettier && npm run lint:coverage-guards && npm run tsc","test":"npm run build && node --import tsx --test","build":"tsc -p tsconfig.build.json","clean":"node --eval \"import('node:fs').then(({ rmSync }) => rmSync('dist', { recursive: true, force: true }))\"","start":"npm run build && node ./bin/tiangong.js","lint:js":"eslint --cache --ext .js,.jsx,.ts,.tsx,.cjs,.mjs --format=stylish ./src ./test ./scripts ./bin && npm run lint:deprecated","prepare":"npm run build","prettier":"prettier --write \"{src,test,docs,scripts,bin}/**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}\" \"*.{js,cjs,mjs,jsx,tsx,ts,md,json}\"","typecheck":"npm run tsc","lint-staged":"lint-staged","prepush:gate":"npm run lint && npm run test:coverage && npm run test:coverage:assert-full","lint:prettier":"prettier --check \"{src,test,docs,scripts,bin}/**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}\" \"*.{js,cjs,mjs,jsx,tsx,ts,md,json}\"","test:coverage":"npm run build && node ./scripts/run-test-coverage.cjs","lint-staged:js":"eslint --ext .js,.jsx,.ts,.tsx ","lint:deprecated":"node ./scripts/lint-deprecated.cjs src test scripts","release:check-tag":"node ./scripts/ci/check-release-tag.cjs cli","lint:coverage-guards":"node ./scripts/assert-no-coverage-ignore.cjs","test:coverage:assert-full":"node ./dist/scripts/assert-full-coverage.js","release:assert-unpublished":"node ./scripts/ci/release-version.cjs assert-unpublished"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ff048fbc-082d-4316-b8f9-27fde2f22055"}},"repository":{"url":"git+https://github.com/tiangong-lca/tiangong-cli.git","type":"git"},"_npmVersion":"11.12.1","description":"Unified TianGong LCA CLI with direct REST adapters and low-entropy command surface.","directories":{},"lint-staged":{"**/*.{js,jsx,ts,tsx,cjs,mjs}":"npm run lint-staged:js --","**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}":["prettier --write"]},"_nodeVersion":"24.14.1","dependencies":{"@supabase/supabase-js":"^2.101.1","@tiangong-lca/tidas-sdk":"^0.1.31"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.12.2","lint-staged":"^16.4.0","typescript-eslint":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.0.4_1776148255888_0.002280015021965287","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@tiangong-lca/cli","version":"0.0.5","keywords":["tiangong","lca","cli","rest"],"license":"MIT","_id":"@tiangong-lca/cli@0.0.5","maintainers":[{"name":"linanenv","email":"linanenv@gmail.com"},{"name":"biaoo","email":"872299269@qq.com"}],"homepage":"https://github.com/tiangong-lca/tiangong-cli#readme","bugs":{"url":"https://github.com/tiangong-lca/tiangong-cli/issues"},"bin":{"tiangong":"bin/tiangong.js"},"dist":{"shasum":"1a3329742cf4fc9cccac935be2f46802529197e4","tarball":"https://registry.npmjs.org/@tiangong-lca/cli/-/cli-0.0.5.tgz","fileCount":110,"integrity":"sha512-J6LT0yBY30I4hx5hcyyRhtiIwzHhqRGQZH2P8S0hZytSck1deIQCPilyy/c/13mYskq8aZW9F1FfKyUiK7uXdQ==","signatures":[{"sig":"MEQCIELy9yULcvNARn8JohIyi7Uh+GwLhymtIbHmkjJISP3aAiBGgRUyE1iFX6a8oIQ7YeqayDVh2zuhC+/xi0GRFZc2cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tiangong-lca%2fcli@0.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2674489},"type":"module","engines":{"node":">=24 <25"},"gitHead":"d8cb5dc0da6381989d5bfafbfbb59d5d252195f3","scripts":{"dev":"tsx watch src/main.ts","tsc":"tsc --noEmit","lint":"npm run lint:js && npm run lint:prettier && npm run lint:coverage-guards && npm run tsc","test":"npm run build && node --import tsx --test","build":"tsc -p tsconfig.build.json","clean":"node --eval \"import('node:fs').then(({ rmSync }) => rmSync('dist', { recursive: true, force: true }))\"","start":"npm run build && node ./bin/tiangong.js","lint:js":"eslint --cache --ext .js,.jsx,.ts,.tsx,.cjs,.mjs --format=stylish ./src ./test ./scripts ./bin && npm run lint:deprecated","prepare":"npm run build","prettier":"prettier --write \"{src,test,docs,scripts,bin}/**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}\" \"*.{js,cjs,mjs,jsx,tsx,ts,md,json}\"","typecheck":"npm run tsc","lint-staged":"lint-staged","prepush:gate":"npm run lint && npm run test:coverage && npm run test:coverage:assert-full","lint:prettier":"prettier --check \"{src,test,docs,scripts,bin}/**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}\" \"*.{js,cjs,mjs,jsx,tsx,ts,md,json}\"","test:coverage":"npm run build && node ./scripts/run-test-coverage.cjs","lint-staged:js":"eslint --ext .js,.jsx,.ts,.tsx ","lint:deprecated":"node ./scripts/lint-deprecated.cjs src test scripts","release:check-tag":"node ./scripts/ci/check-release-tag.cjs cli","lint:coverage-guards":"node ./scripts/assert-no-coverage-ignore.cjs","test:coverage:assert-full":"node ./dist/scripts/assert-full-coverage.js","release:assert-unpublished":"node ./scripts/ci/release-version.cjs assert-unpublished"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ff048fbc-082d-4316-b8f9-27fde2f22055"}},"repository":{"url":"git+https://github.com/tiangong-lca/tiangong-cli.git","type":"git"},"_npmVersion":"11.12.1","description":"Unified TianGong LCA CLI with direct REST adapters and low-entropy command surface.","directories":{},"lint-staged":{"**/*.{js,jsx,ts,tsx,cjs,mjs}":"npm run lint-staged:js --","**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}":["prettier --write"]},"_nodeVersion":"24.14.1","dependencies":{"@supabase/supabase-js":"^2.101.1","@tiangong-lca/tidas-sdk":"^0.1.31"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.12.2","lint-staged":"^16.4.0","typescript-eslint":"^8.58.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.0.5_1776163285989_0.5300212763175074","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@tiangong-lca/cli","version":"0.0.6","description":"Unified TianGong LCA CLI with direct REST adapters and low-entropy command surface.","repository":{"type":"git","url":"git+https://github.com/tiangong-lca/tiangong-cli.git"},"homepage":"https://github.com/tiangong-lca/tiangong-cli#readme","bugs":{"url":"https://github.com/tiangong-lca/tiangong-cli/issues"},"type":"module","bin":{"tiangong":"bin/tiangong.js"},"publishConfig":{"access":"public"},"scripts":{"start":"npm run build && node ./bin/tiangong.js","dev":"tsx watch src/main.ts","typecheck":"npm run tsc","tsc":"tsc --noEmit","lint":"npm run lint:js && npm run lint:prettier && npm run lint:coverage-guards && npm run tsc","lint-staged":"lint-staged","lint-staged:js":"eslint --ext .js,.jsx,.ts,.tsx ","lint:deprecated":"node ./scripts/lint-deprecated.cjs src test scripts","lint:coverage-guards":"node ./scripts/assert-no-coverage-ignore.cjs","lint:js":"eslint --cache --ext .js,.jsx,.ts,.tsx,.cjs,.mjs --format=stylish ./src ./test ./scripts ./bin && npm run lint:deprecated","lint:prettier":"prettier --check \"{src,test,docs,scripts,bin}/**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}\" \"*.{js,cjs,mjs,jsx,tsx,ts,md,json}\"","prettier":"prettier --write \"{src,test,docs,scripts,bin}/**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}\" \"*.{js,cjs,mjs,jsx,tsx,ts,md,json}\"","build":"tsc -p tsconfig.build.json","prepare":"npm run build","test":"npm run build && node --import tsx --test","test:coverage":"npm run build && node ./scripts/run-test-coverage.cjs","test:coverage:assert-full":"node ./dist/scripts/assert-full-coverage.js","prepush:gate":"npm run lint && npm run test:coverage && npm run test:coverage:assert-full","release:check-tag":"node ./scripts/ci/check-release-tag.cjs cli","release:assert-unpublished":"node ./scripts/ci/release-version.cjs assert-unpublished","clean":"node --eval \"import('node:fs').then(({ rmSync }) => rmSync('dist', { recursive: true, force: true }))\""},"lint-staged":{"**/*.{js,jsx,ts,tsx,cjs,mjs}":"npm run lint-staged:js --","**/*.{js,cjs,mjs,jsx,tsx,ts,md,json}":["prettier --write"]},"engines":{"node":">=24 <25"},"keywords":["tiangong","lca","cli","rest"],"license":"MIT","devDependencies":{"@eslint/js":"^10.0.1","@types/node":"^24.12.2","c8":"^11.0.0","eslint":"^10.2.0","globals":"^17.4.0","lint-staged":"^16.4.0","prettier":"^3.8.1","tsx":"^4.21.0","typescript":"^5.9.3","typescript-eslint":"^8.58.0"},"dependencies":{"@supabase/supabase-js":"^2.101.1","@tiangong-lca/tidas-sdk":"^0.1.31"},"gitHead":"8a2184bd17dd796a7f13704a085ffe538605f0fe","_id":"@tiangong-lca/cli@0.0.6","_nodeVersion":"24.14.1","_npmVersion":"11.12.1","dist":{"integrity":"sha512-xsMYRyuJgwkXZt6HM0GSGgAUbChaKcKYHnj9Pvdw86Oeau/inM3HthxYMIheeu7u2uOCwPEJijuJTbedPGcLTA==","shasum":"d5f65283e35b398de71e7c711fae6fccb458bcc0","tarball":"https://registry.npmjs.org/@tiangong-lca/cli/-/cli-0.0.6.tgz","fileCount":112,"unpackedSize":2734814,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@tiangong-lca%2fcli@0.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDx+y3AblgkaOMste5BCJBYQCD8/PblFmT8a+e5NLPnuQIhAIhz3/+M2MqxwJvNN9c+CuW/KPrEq/LF9aAHcy2m2fks"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ff048fbc-082d-4316-b8f9-27fde2f22055"}},"directories":{},"maintainers":[{"name":"linanenv","email":"linanenv@gmail.com"},{"name":"biaoo","email":"872299269@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_0.0.6_1776244589231_0.5888828351869524"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-06T09:59:10.903Z","modified":"2026-04-15T09:16:29.759Z","0.0.1":"2026-04-06T09:59:11.218Z","0.0.2":"2026-04-06T10:56:50.696Z","0.0.3":"2026-04-07T04:10:23.346Z","0.0.4":"2026-04-14T06:30:56.230Z","0.0.5":"2026-04-14T10:41:26.213Z","0.0.6":"2026-04-15T09:16:29.407Z"},"bugs":{"url":"https://github.com/tiangong-lca/tiangong-cli/issues"},"license":"MIT","homepage":"https://github.com/tiangong-lca/tiangong-cli#readme","keywords":["tiangong","lca","cli","rest"],"repository":{"type":"git","url":"git+https://github.com/tiangong-lca/tiangong-cli.git"},"description":"Unified TianGong LCA CLI with direct REST adapters and low-entropy command surface.","maintainers":[{"name":"linanenv","email":"linanenv@gmail.com"},{"name":"biaoo","email":"872299269@qq.com"}],"readme":"# TianGong LCA CLI\n\nPackage: `@tiangong-lca/cli` Executable: `tiangong` Node: `24.x`\n\n## Run\n\nOne-off published run:\n\n```bash\nnpm exec --yes --package=@tiangong-lca/cli@latest -- tiangong --help\nnpm exec --yes --package=@tiangong-lca/cli@latest -- tiangong doctor\nnpm exec --yes --package=@tiangong-lca/cli@latest -- tiangong flow --help\n```\n\nInstall the published CLI:\n\n```bash\nnpm install --global @tiangong-lca/cli\ntiangong --help\ntiangong doctor\ntiangong flow --help\n```\n\nRun from this repository:\n\n```bash\nnpm ci\nnpm run build\nnode ./bin/tiangong.js --help\n```\n\n## Env\n\nRemote commands require:\n\n```bash\nTIANGONG_LCA_API_BASE_URL=\nTIANGONG_LCA_API_KEY=\nTIANGONG_LCA_SUPABASE_PUBLISHABLE_KEY=\nTIANGONG_LCA_REGION=us-east-1\n```\n\nNotes:\n\n- `TIANGONG_LCA_API_BASE_URL` accepts the project root, `/functions/v1`, or `/rest/v1`.\n- `TIANGONG_LCA_API_KEY` is the TianGong user API key from the account page, not a Supabase project key.\n- The CLI exchanges `TIANGONG_LCA_API_KEY` for a user session, then reuses the access token for both Edge Functions and direct Supabase access.\n\nOptional session control:\n\n```bash\nTIANGONG_LCA_SESSION_FILE=\nTIANGONG_LCA_DISABLE_SESSION_CACHE=false\nTIANGONG_LCA_FORCE_REAUTH=false\n```\n\nOptional LLM review env, only for `review process --enable-llm` or `review flow --enable-llm`:\n\n```bash\nTIANGONG_LCA_REVIEW_LLM_BASE_URL=\nTIANGONG_LCA_REVIEW_LLM_API_KEY=\nTIANGONG_LCA_REVIEW_LLM_MODEL=\n```\n\n## Search\n\nMinimal `search flow` request:\n\n```json\n{\n  \"query\": \"soda lime glass\",\n  \"filter\": {\n    \"flowType\": \"Product flow\"\n  }\n}\n```\n\nRun:\n\n```bash\ntiangong search flow --input ./search-flow.request.json --json\ntiangong search process --input ./search-process.request.json --json\ntiangong search lifecyclemodel --input ./search-lifecyclemodel.request.json --json\n```\n\nEmpty search results should be treated as empty whether the response is `[]` or `{\"data\":[]}`.\n\n## Read\n\n```bash\ntiangong flow get --id <flow-id> --version <version> --json\ntiangong flow list --id <flow-id> --state-code 100 --limit 20 --json\ntiangong process get --id <process-id> --version <version> --json\ntiangong process list --state-code 100 --limit 20 --json\n```\n\n## Real DB Flow Review\n\n1. Search or otherwise collect exact flow refs.\n2. Materialize DB rows into local review input.\n3. Review the materialized rows.\n4. Materialize approved decisions into downstream artifacts.\n\n`flow fetch-rows` input:\n\n```json\n[\n  {\n    \"id\": \"7a285e9a-a9f6-4b86-ab17-6ea17367400c\",\n    \"version\": \"01.01.001\",\n    \"state_code\": 100,\n    \"cluster_id\": \"cluster-0001\",\n    \"source\": \"search-flow\"\n  }\n]\n```\n\n`flow materialize-decisions` input:\n\n```json\n[\n  {\n    \"cluster_id\": \"cluster-0001\",\n    \"decision\": \"merge_keep_one\",\n    \"canonical_flow\": {\n      \"id\": \"7a285e9a-a9f6-4b86-ab17-6ea17367400c\",\n      \"version\": \"01.01.001\"\n    },\n    \"flow_refs\": [\n      \"7a285e9a-a9f6-4b86-ab17-6ea17367400c@01.01.001\",\n      \"017acdd0-7fd7-44cb-a410-1d559e59c506@01.01.001\"\n    ],\n    \"reason\": \"approved_same_product_flow\"\n  }\n]\n```\n\nRun:\n\n```bash\ntiangong flow fetch-rows \\\n  --refs-file ./flow-refs.json \\\n  --out-dir ./flow-fetch\n\ntiangong review flow \\\n  --rows-file ./flow-fetch/review-input-rows.jsonl \\\n  --out-dir ./flow-review\n\ntiangong flow materialize-decisions \\\n  --decision-file ./approved-decisions.json \\\n  --flow-rows-file ./flow-fetch/review-input-rows.jsonl \\\n  --out-dir ./flow-decisions\n```\n\nKey `flow fetch-rows` outputs:\n\n- `review-input-rows.jsonl`\n- `fetch-summary.json`\n- `missing-flow-refs.jsonl`\n- `ambiguous-flow-refs.jsonl`\n\nKey `flow materialize-decisions` outputs:\n\n- `flow-dedup-canonical-map.json`\n- `flow-dedup-rewrite-plan.json`\n- `manual-semantic-merge-seed.current.json`\n- `decision-summary.json`\n- `blocked-clusters.json`\n\n## Other Common Commands\n\n```bash\ntiangong review process --rows-file ./process-list-report.json --out-dir ./review\ntiangong review process --run-root ./artifacts/process_from_flow/<run_id> --run-id <run_id> --out-dir ./review\ntiangong publish run --input ./publish-request.json --dry-run\ntiangong doctor --json\n```\n\nFor `publish run`, relative `out_dir` values from either the request body or `--out-dir` are resolved against the request file directory, not the shell `cwd`. Use an absolute path when you want a fixed destination independent of the request file location.\n\nFor `review process`, `--rows-file` accepts either raw process rows as JSON/JSONL or the full JSON report emitted by `tiangong process list --json`, as long as it contains a `rows` array.\n\n## More Docs\n\n- `docs/IMPLEMENTATION_GUIDE_CN.md`: maintainer-facing command contract and implementation notes\n- `--help`: the canonical command surface for `tiangong`, `tiangong flow`, `tiangong review`, `tiangong process`, `tiangong lifecyclemodel`, and `tiangong publish`\n- `tiangong-lca-skills`: use the skill-specific `SKILL.md` and wrapper docs for agent workflows; the CLI README only covers the public invocation contract\n\n## Help\n\n```bash\ntiangong --help\ntiangong flow --help\ntiangong review --help\ntiangong process --help\ntiangong lifecyclemodel --help\ntiangong publish --help\n```\n","readmeFilename":"README.md"}