{"_id":"@mean-weasel/lineage","_rev":"53-d56621dd13a9febd69ebd4ac9d1ab638","name":"@mean-weasel/lineage","dist-tags":{"next":"0.1.21-rc.3","latest":"0.1.36"},"versions":{"0.1.0":{"name":"@mean-weasel/lineage","version":"0.1.0","license":"MIT","_id":"@mean-weasel/lineage@0.1.0","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js"},"dist":{"shasum":"cd64102f7d0f9489d2ab6afbbc48c46db2a9bf3a","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.0.tgz","fileCount":14,"integrity":"sha512-zaS3r85PJsnoOlNTO7ly67KGJlntBUZrvWXGTD/BAAXcYMlqqAMr+MGNIRBpkq6b2taOdodWCDK6vBpwypQi/w==","signatures":[{"sig":"MEYCIQDeXQ9D0bB5Va/yFzXjXkcau2E/E6+Me4hAFHFwO2bbFgIhAKy88B8CfI0SO7MfexQr88ZtbDPqpn5VnmtO++nJXcFG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1284271},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"e9bc612d870cfeb6147e7a32abbdf06b767f9005","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run e2e && npm run public:readiness && npm run package:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"playwright test --config playwright.config.ts","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-dev.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap","build:web":"vite build --config vite.config.ts","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs","release:latest":"node scripts/release.mjs --tag latest","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","public:readiness":"node scripts/public-readiness.mjs","release:promote-latest":"node scripts/release.mjs --promote-latest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:21453eb0-8208-4b97-b6f6-c2ba2aab03bd"}},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"11.18.0","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.0_1783096735075_0.5531865665876818","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@mean-weasel/lineage","version":"0.1.1","license":"MIT","_id":"@mean-weasel/lineage@0.1.1","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js"},"dist":{"shasum":"33f279b137334ba1b68cc94c56f5a7a2cb9773c5","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.1.tgz","fileCount":14,"integrity":"sha512-sKqcv4U2k+MYemdvmCaGA78q89U25aH/YVBF9xNqvvZXRPvUooSP+GFK8RAgNew5eQ1gg2RJqDSo7Kj9zuArKQ==","signatures":[{"sig":"MEUCIFT8Dqbhx3LbkohzRqKlE8lXNPBZRQ8khm9rG7Wij/xfAiEA9So+Cf6BEU++AZR0f54+CUHNQONq0Vh2BuP2U0RkZiM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1286166},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"7f699efe5a6bf510f68a9a40aa14552b54b2bb76","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run e2e && npm run public:readiness && npm run package:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"playwright test --config playwright.config.ts","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-dev.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap","build:web":"vite build --config vite.config.ts","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs","release:latest":"node scripts/release.mjs --tag latest","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","public:readiness":"node scripts/public-readiness.mjs","release:promote-latest":"node scripts/release.mjs --promote-latest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:21453eb0-8208-4b97-b6f6-c2ba2aab03bd"}},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"11.18.0","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.1_1783099870871_0.5141767734989784","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@mean-weasel/lineage","version":"0.1.2","license":"MIT","_id":"@mean-weasel/lineage@0.1.2","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js"},"dist":{"shasum":"84abcd988fd8fc0408efd533194d56522845a32b","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.2.tgz","fileCount":14,"integrity":"sha512-WrADy84auX4GpuwHEtc1M1pdx1ht5FsANK32gpaZokcz1KkYKYZlQ8GhV6SlCAhTk6dWJetDmBlFmTB4paiang==","signatures":[{"sig":"MEUCIBK9vYoEU0UnL7EimFzGxRaZcyYQPKGmnvP9bpHsAgITAiEAiWkAJP8nu6F+7GLbZoRHh7SuRQnCeRgsblHd1LcpwWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1640759},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"ed487ff4dd5dca8c4fd3de55d4b320b606db11de","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run e2e && npm run public:readiness && npm run package:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"playwright test --config playwright.config.ts","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-dev.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap","build:web":"vite build --config vite.config.ts","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","public:readiness":"node scripts/public-readiness.mjs","release:promote-latest":"node scripts/release.mjs --promote-latest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:21453eb0-8208-4b97-b6f6-c2ba2aab03bd"}},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"11.18.0","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.2_1783133762628_0.529455734320786","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@mean-weasel/lineage","version":"0.1.3","license":"MIT","_id":"@mean-weasel/lineage@0.1.3","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js"},"dist":{"shasum":"ce218b9e2f9964484ace79be712100412e00bafc","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.3.tgz","fileCount":15,"integrity":"sha512-e3Aq/C2o6ciNtFGXR6S55qyedA0+qox6ujJbOMxzmjKgW59884AU+IMRQmnZONzXDdOea8clS2IhDeQh9RLaOA==","signatures":[{"sig":"MEUCIQD8tuHGpfpCHdHil/bEYl7hJBV1EEZhzJjXS0YLD874DwIgNJGonpkluYDMvpHalYzY1huHAJ8lcjNCEcsjozlhj3c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1698117},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"335f536e6029b2d901ff3da2a828262b4e4c968c","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run e2e && npm run public:readiness && npm run package:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"playwright test --config playwright.config.ts","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-dev.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap","build:web":"vite build --config vite.config.ts","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","public:readiness":"node scripts/public-readiness.mjs","release:promote-latest":"node scripts/release.mjs --promote-latest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:21453eb0-8208-4b97-b6f6-c2ba2aab03bd"}},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"11.18.0","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.3_1783288913867_0.27378960211914394","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@mean-weasel/lineage","version":"0.1.4","license":"MIT","_id":"@mean-weasel/lineage@0.1.4","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js"},"dist":{"shasum":"6c9722a24ab9ee23e8182568cde639f2b1d29874","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.4.tgz","fileCount":15,"integrity":"sha512-7gNwz+PkFZpF53SnPGxc6bFpcoNAnGHhUd15C2W9InRZ7lNOkr2qXQbnrQw/CbtmSChPQwqCbHtlPqEdSVqN3A==","signatures":[{"sig":"MEUCIDplwTYUAHqJEFXz3FG5hfDxU1+dBpIoaK12d5ETR1ZMAiEA5oeqUiTesB62pOpbjg/HgWnC8ooZBFVk/HXl/J+zGV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1934110},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"5329c4cd3e15ed27fd7dbae6e1c00aaee785c9bd","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run e2e && npm run public:readiness && npm run package:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"playwright test --config playwright.config.ts","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-dev.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap","build:web":"vite build --config vite.config.ts","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","public:readiness":"node scripts/public-readiness.mjs","release:promote-latest":"node scripts/release.mjs --promote-latest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:21453eb0-8208-4b97-b6f6-c2ba2aab03bd"}},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"11.18.0","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.4_1783341482199_0.17003070718696467","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@mean-weasel/lineage","version":"0.1.5","license":"MIT","_id":"@mean-weasel/lineage@0.1.5","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js"},"dist":{"shasum":"7e1bf4d0cae1235b956fbe202b722d21cd43c569","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.5.tgz","fileCount":15,"integrity":"sha512-4SF85iWhDSDSPI+wcY2c4ZxTjPrM3gzlU+nwkVh6tT/DLTDeuGxITVM4faQOOir+mILwAL5rO5nj9eC+WQC3rQ==","signatures":[{"sig":"MEUCIGJorNEjwJkkVq77GmSyDROw2LWdxuvWSZc07FD5Wc7oAiEAhkVCvm33ZsdL1LkEeHDml201h3/efDfcLqxOMHa1BvA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1984726},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"4bd01cc413a7888aedd59f885e22b5b641bb9ee7","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run e2e && npm run public:readiness && npm run package:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"playwright test --config playwright.config.ts","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-dev.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap","build:web":"vite build --config vite.config.ts","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","public:readiness":"node scripts/public-readiness.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:promote-latest":"node scripts/release.mjs --promote-latest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:21453eb0-8208-4b97-b6f6-c2ba2aab03bd"}},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"11.18.0","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.5_1783375657014_0.6731988420284827","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@mean-weasel/lineage","version":"0.1.6","license":"MIT","_id":"@mean-weasel/lineage@0.1.6","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js"},"dist":{"shasum":"b3d8104b3923f29eae263f767349f8b7f306b3bf","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.6.tgz","fileCount":18,"integrity":"sha512-sCzMtEoi/wpx5mSnc2j3ZVa7MXvK4RVXKWUMRteqv3z0lNqdc3eJIGph38D4bm5CSyy2yeTd0Ga1kmcWBRAKPA==","signatures":[{"sig":"MEUCIQCt0DyouOIEGT/Jd3zEMNORc/gANnpZIAlove946FSYYAIgahSLgGgUAqHnv3b3Q76ReN4S4o/dTfMj5aGOTbXEUp4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8735941},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"cf978e34b0948dca3b40a7ca939d99e364ff9b90","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run e2e && npm run public:readiness && npm run package:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"playwright test --config playwright.config.ts","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-dev.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap","build:web":"vite build --config vite.config.ts","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","public:readiness":"node scripts/public-readiness.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:promote-latest":"node scripts/release.mjs --promote-latest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:21453eb0-8208-4b97-b6f6-c2ba2aab03bd"}},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"11.18.0","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.6_1783458232896_0.4402237794225219","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@mean-weasel/lineage","version":"0.1.7","license":"MIT","_id":"@mean-weasel/lineage@0.1.7","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js"},"dist":{"shasum":"2561b6e5345609bc2ecdf38345b410c38ef38f19","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.7.tgz","fileCount":18,"integrity":"sha512-0TtiYl4LKO9sfn3Z6Es1pwA+Phhwsl6H+pnLPETbp7abXqqURoY1qvLzbBfdXJCYwyCxKPLQPmqWuS3co3pOyg==","signatures":[{"sig":"MEQCIHFh42tiOft6iPezxF0kgrP4LfdUY76fyVD7s0xmPMHyAiBDCM81/t7nHN6c0aPqeo8NwxOj7ONr3zuO61MtlMaXNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9095391},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"18c3c9797dbab50be1f5e60dbe07638cf0384268","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run e2e && npm run public:readiness && npm run package:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"playwright test --config playwright.config.ts","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-dev.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap","build:web":"vite build --config vite.config.ts","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","public:readiness":"node scripts/public-readiness.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:promote-latest":"node scripts/release.mjs --promote-latest"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.7_1783550833223_0.017812026862545682","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@mean-weasel/lineage","version":"0.1.8","license":"MIT","_id":"@mean-weasel/lineage@0.1.8","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js"},"dist":{"shasum":"6817c475366e0cb7c329144cc86526fed4b36410","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.8.tgz","fileCount":18,"integrity":"sha512-JjS8Qh4EWdWBRi5bIx39j4QNuvhUaUV6SNbLKRdlHuEMPx8x9fdx6heOx+5fkEdWdi58ADVB7i4OE7uFeJb7gQ==","signatures":[{"sig":"MEYCIQDoaj/TMHSlvvG57GIGJ6aSdEPns9vdBfIw9zAV6RbdZwIhAJRmEkT5cl+HqQww9II/XPSx5OwsmWRcdO2hhXE5NusA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9163445},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"dd30b905f6593f72c188527fe352f9888bd26f0c","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run e2e && npm run public:readiness && npm run package:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"playwright test --config playwright.config.ts","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-dev.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap","build:web":"vite build --config vite.config.ts","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","public:readiness":"node scripts/public-readiness.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:promote-latest":"node scripts/release.mjs --promote-latest"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.8_1783621830400_0.1941997964109159","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@mean-weasel/lineage","version":"0.1.9","license":"MIT","_id":"@mean-weasel/lineage@0.1.9","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js"},"dist":{"shasum":"5aeed496281e49505e298bccb751207889341a91","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.9.tgz","fileCount":18,"integrity":"sha512-XWq7us20jU2of1uoEiw7zatg4UYhr1iQ6k17JyR4d978hlaQg2Q5kZmkjZsXtPS+uMsI28Z7W/NIOmmbyv14zA==","signatures":[{"sig":"MEUCIQDBo+FP1RHGVxmiIMeXyUrlKo6btsS2hqDeMUlj1GYYPwIgEqZNZAZHGR6SkThWuBvdwaBb08Gxytlqm3QpToNtsfw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9203622},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"c41ffc4eebbf2cbbdb1fdc0ab442e1d286bc8216","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run e2e && npm run public:readiness && npm run package:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"playwright test --config playwright.config.ts","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-dev.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap","build:web":"vite build --config vite.config.ts","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs","release:github":"node scripts/sync-github-release.mjs","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","public:readiness":"node scripts/public-readiness.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --dry-run","release:promote-latest":"node scripts/release.mjs --promote-latest"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.9_1783634782186_0.7081214884990137","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@mean-weasel/lineage","version":"0.1.10","license":"MIT","_id":"@mean-weasel/lineage@0.1.10","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js"},"dist":{"shasum":"c0225c564221e2d09f6ac8e37fda9ef41620d98a","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.10.tgz","fileCount":18,"integrity":"sha512-JYcbdHhKXhtrcPgRxgz7LIshD8o6c7wCTqu8RwhbrRY1bkkzP7K9WVuIs27EAn4PfWMHnIgcUL3yrddcGIMIag==","signatures":[{"sig":"MEUCIQDyW2G8PPJGVyTnrEQ03s/x8A9z8RnkvcNL+oFAyYGhUgIgbSBEaST7AXi/suaGTr9XgJSTE1Xlj8Q7luthEudIKqY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9204094},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"92d7d83923260fbfc2c0c76376260861cd080cf0","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run e2e && npm run public:readiness && npm run package:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"playwright test --config playwright.config.ts","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-dev.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap","build:web":"vite build --config vite.config.ts","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs","release:github":"node scripts/sync-github-release.mjs","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","public:readiness":"node scripts/public-readiness.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --dry-run","release:promote-latest":"node scripts/release.mjs --promote-latest"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.10_1783635674845_0.4131889653924885","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@mean-weasel/lineage","version":"0.1.11","license":"MIT","_id":"@mean-weasel/lineage@0.1.11","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js"},"dist":{"shasum":"276ad05517865fdfdbebc613f894f1728540271e","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.11.tgz","fileCount":18,"integrity":"sha512-FD53Cx300h78aY8/GvlgS8Y5I7fjZG8ZTLDKAigAs8VgWk08/qnSuk7NDCfnXnZ7RG2gf9OUwyb7HBC2sP4Z5A==","signatures":[{"sig":"MEQCIFUuR2glwGca/L8RgUW98LFqECgZ627MknMUn/AN3IS8AiAJQExAqOy/tKPCfFmCKU4GhnTj0KpjN+mjFVN0TSuMwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9211359},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"cba20a6f5d2e870af025196211e3d69d1a2221bd","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run e2e && npm run public:readiness && npm run package:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"playwright test --config playwright.config.ts","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-dev.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap","build:web":"vite build --config vite.config.ts","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs","release:github":"node scripts/sync-github-release.mjs","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","public:readiness":"node scripts/public-readiness.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --dry-run","release:promote-latest":"node scripts/release.mjs --promote-latest"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.11_1783863193296_0.5325696928517785","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@mean-weasel/lineage","version":"0.1.12","license":"MIT","_id":"@mean-weasel/lineage@0.1.12","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js"},"dist":{"shasum":"f28530dcd0e5c7015df76cfccf3809e7e0d9ad75","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.12.tgz","fileCount":18,"integrity":"sha512-/7Edl8zvKIDBHIu52zPA1rbklhtxnifNKwyIVUwgdkhbhWOhupxsk1MkazT/jihSy4agy9MRJerV+PCjt/twWA==","signatures":[{"sig":"MEUCIQCUsawsYWoswEnKoL2HBs4sqTI3y8Nz+iC/KIpsqc/yWgIgV3CQF1EWdw5BqUwkPC6sXF7lSELsHh/WpSEzj/PRsXk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9831195},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"af4be933cf84819c1d261a9580ff6b51a17dc3e7","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run e2e && npm run public:readiness && npm run package:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"playwright test --config playwright.config.ts","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-dev.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap","build:web":"vite build --config vite.config.ts","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs","release:github":"node scripts/sync-github-release.mjs","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","public:readiness":"node scripts/public-readiness.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --dry-run","release:promote-latest":"node scripts/release.mjs --promote-latest"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.12_1784077374986_0.39311800867964153","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@mean-weasel/lineage","version":"0.1.13","license":"MIT","_id":"@mean-weasel/lineage@0.1.13","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"71ccb7cb87796b9172be7f26b7ac7f458cf08418","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.13.tgz","fileCount":25,"integrity":"sha512-mFr4KDzzLpBAXQbMTFaGuVHzsxU0bGGqvmkWWSZwmSWXIRFbM+blhyU1obMD5ine090bcyiK6YF8MHUHlKAeqA==","signatures":[{"sig":"MEYCIQC28Br1tMxR+vSjDDQJ+Cz48siHxkyXhA4O+XQRsxdQiAIhAMZxis1aJRH3dXepyh6JYlHm4C0YDp2ikz0i2oU8nl9r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11046355},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"b1dbfad1fa1552bd577d17fa39b0c9dc1623db23","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run runtime:oracle && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","lineage:dev":"tsx src/cli/lineage-dev.ts","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","public:readiness":"node scripts/public-readiness.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:promote-latest":"node scripts/release.mjs --promote-latest","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"deprecated":"Cannot bootstrap isolated channel installs with affected npm metadata output. Upgrade to >=0.1.14.","repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.13_1784223961620_0.9480975341509763","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@mean-weasel/lineage","version":"0.1.14","license":"MIT","_id":"@mean-weasel/lineage@0.1.14","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"2360b1a50e3d7e538a22106ad692f1e2b8e3974f","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.14.tgz","fileCount":25,"integrity":"sha512-e9M2LZiGdojmS3ic+XSRKhSeL7lYcj3oCVZc/K+njnvFKSZwzEDYfKUQSMLPaN5RGgC7sLgB7oTw6PCW8p0MhQ==","signatures":[{"sig":"MEYCIQDmFj0I8jyC7aQCzXIdwGxwbQfNBNHtn3HPK2q9U/3ryAIhALpbAay6apmjvJdmV5WjIUOtR2yDk4HbT9gxfv07BWMV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11049932},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"3606f2163599c76940da078371c7bf2e9dfe2fc4","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run runtime:oracle && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","lineage:dev":"tsx src/cli/lineage-dev.ts","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","public:readiness":"node scripts/public-readiness.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:promote-latest":"node scripts/release.mjs --promote-latest","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.14_1784226769506_0.4817455249050908","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@mean-weasel/lineage","version":"0.1.15","license":"MIT","_id":"@mean-weasel/lineage@0.1.15","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"50201bebd51691bc13aafee8de42cd2df7b187c1","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.15.tgz","fileCount":29,"integrity":"sha512-tjb8SXPru/thnYl7VcM24G6BaW34m3uLuYikEpB/z23qROp0Y6RIvBtkauannuf7xDRp7TmG/m6vx0stErB0+A==","signatures":[{"sig":"MEYCIQDLCEqILyGbfxZ9dr1985doJAOx66U8Fp0dAUPRTDrNlQIhAIKp0cmDiIrYQtA04QOIdKCb6GZvGY9C96aH2VtWnVkg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11156242},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"6883a78641c32006bd66d0ea068ecbc4bbf7ea94","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run runtime:oracle && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","lineage:dev":"tsx src/cli/lineage-dev.ts","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:promote-latest":"node scripts/release.mjs --promote-latest","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.15_1784501592538_0.5628304680935479","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@mean-weasel/lineage","version":"0.1.16","license":"MIT","_id":"@mean-weasel/lineage@0.1.16","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"2c9071e993b9def113567bdb8ab73c7d4c7fecdc","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.16.tgz","fileCount":29,"integrity":"sha512-wHUQSAHilu4Ivzurf/6qJopdcDGkv8o1U4I8OpyPBKhz6/h2TeLx+Jxk3To+zvdo1fwguo9TwV83DS49pcgMAg==","signatures":[{"sig":"MEYCIQC/2/uiuT2ImAxjvTQZADksRKQlFsyFqfvqSWmVwXTqdgIhANhdq7InKFUgIMoM0UIoUz/BmQ1RL1dvkHdTViQ1Qkcn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11515540},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"6f5d7c7ef3acb2039a85535d263aebe8e0e866f3","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run runtime:oracle && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"NODE_ENV=development tsx src/server.ts","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","lineage:dev":"tsx src/cli/lineage-dev.ts","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:promote-latest":"node scripts/release.mjs --promote-latest","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.16_1784587045654_0.3520141639300034","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@mean-weasel/lineage","version":"0.1.17","license":"MIT","_id":"@mean-weasel/lineage@0.1.17","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"578d31c837ea44865e5e397a8a6aa5a0bc128cf3","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.17.tgz","fileCount":41,"integrity":"sha512-M7QrVeuvGYSya/fBwrUr3/rkUsIzllnyBhKgplihd4McTcOHgLm8v//BRCF32TFOZ82Dv5gjx/cUQVuXy7/Ozw==","signatures":[{"sig":"MEQCIAcjiWVeuNXxKScmEBNq8T+Ij7R+SkSOA4f9srEKFKAwAiBgR8OT16d3cVIlZ5rl179Vy2G8k/R1bNcu3EZ2RFapzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19895376},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"399a50473ece3f18150e811d8e5ffdd06484fd5a","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","lineage:dev":"tsx src/cli/lineage-dev.ts","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:promote-latest":"node scripts/release.mjs --promote-latest","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.17_1784742931582_0.367358435581036","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@mean-weasel/lineage","version":"0.1.18","license":"MIT","_id":"@mean-weasel/lineage@0.1.18","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"ce1b673e348adf413b49de3900e2fc9b8d4da112","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.18.tgz","fileCount":41,"integrity":"sha512-ztqz+h+CYcd9YBl6g2wpxW6QuZoMT5G6eFeVOsbgtzDvyl3w8SQnspsvFQeeWK28QrsInMbcKXPCOo6wvTBnRA==","signatures":[{"sig":"MEQCIEV4720Y2ui1tbWsW7tWSv6DbfP2v57fw/pw1QXf4Nr2AiAj0mDjjwsUV1IQUghKjIY6WF3e9cayejMiSGT2nxaDvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19903277},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"7b7a0ba3166359522a78bf918bf3e88e471bf933","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","lineage:dev":"tsx src/cli/lineage-dev.ts","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:promote-latest":"node scripts/release.mjs --promote-latest","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.18_1784755505907_0.1309969894121159","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@mean-weasel/lineage","version":"0.1.20","license":"MIT","_id":"@mean-weasel/lineage@0.1.20","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"a02c29d4664a0d20cebb8093dbcf1dae7ad43486","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.20.tgz","fileCount":42,"integrity":"sha512-GMx8UDnVNwoAyJd8rArACRwnmDE9AeXvrwwlJYhMoDXQ8klxMoBUIUq9LU6f5SSyQ96ZUDU02S1cuVPiFypyRw==","signatures":[{"sig":"MEUCIQDE4huj1NtOUl7QQ2urZnSLKWbU4DtXwJfFHmzLbVXqowIgTLkakBSvjEWASpdyZnmOq8KI9EOP9jo27Iygtzrta9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20521762},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"9b3e36ba2e2752b4f9dd414ffdade8dd946b69b4","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run knip && npm run build && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","lineage:dev":"tsx src/cli/lineage-dev.ts","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","release:next":"node scripts/release.mjs --tag next","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:latest":"node scripts/release.mjs --tag latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:promote-latest":"node scripts/release.mjs --promote-latest","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.20_1784776030193_0.5857899503877215","host":"s3://npm-registry-packages-npm-production"}},"0.1.21-rc.3":{"name":"@mean-weasel/lineage","version":"0.1.21-rc.3","license":"MIT","_id":"@mean-weasel/lineage@0.1.21-rc.3","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"dd810c5021d25e19fe12c8c49fbc5a94bb677f5a","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.21-rc.3.tgz","fileCount":42,"integrity":"sha512-HrqBWPD3NJOZ3515ElZjIbkbhvslsaofH1Jqn5qWztvZ66NajVv0BtOLy1mHQsxcFgHRjQ73RgaIGMLjL6C63w==","signatures":[{"sig":"MEUCIQDKdLqWvLt2LNzBg/zJTaa1RPS5dRx8/LoBKvlyEZppjAIgDAIT1jqNzOO6Mx9a4F9ffCtIa/K0kdt/bapCuneI4+M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.21-rc.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20522276},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"270645f776cad017c1688659f3efcf03b24a5553","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run knip && npm run build && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","lineage:dev":"tsx src/cli/lineage-dev.ts","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:policy:test":"node --test scripts/tag-release-plan.test.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.21-rc.3_1784821470082_0.7186028124937687","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"@mean-weasel/lineage","version":"0.1.21","license":"MIT","_id":"@mean-weasel/lineage@0.1.21","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"2eaa45af51c4379861272760902680ff1fb121f3","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.21.tgz","fileCount":42,"integrity":"sha512-DvN/5qh2uUgTEcHQtXR3b1PeyOlpDFUITcqed2Ig9hrjaeZo3IJGNbqdzufO6eCxG3GaqQrcgRn4gCkhrmyNKA==","signatures":[{"sig":"MEQCIAXyeaStec9Gs5+WSZwiNXdG0m1I9JIbW9kVnmX8Yo29AiAOAU7/skVEqHRg4CEreVT1vyNCD/qokrzrrlow96GnLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20522639},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"53f6f28c97ca06e635ab06c015f4168e494e92c3","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run knip && npm run build && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","lineage:dev":"tsx src/cli/lineage-dev.ts","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:policy:test":"node --test scripts/tag-release-plan.test.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.21_1784823488233_0.6917599495610054","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"@mean-weasel/lineage","version":"0.1.22","license":"MIT","_id":"@mean-weasel/lineage@0.1.22","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"f3e79c059286266150e54975cd2262209d825096","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.22.tgz","fileCount":43,"integrity":"sha512-K+jIMTgY4uUv37YU0D9+ZStKaNp5WLp0pU0kgRg6FsbS1L2tCDS3R7fKehtgddxPiGhgr7p9dkDZwyREFKqb7A==","signatures":[{"sig":"MEUCIQCLtP+m3zNZ33yc3OEXJoWJjr6ygM5FzWHk+gaKva3d8QIgKIO/i+WNP5+C7CrA18DsnwTQZOYjtxsXMSXQcb04Pm0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20536819},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"ff38ca8fca7fa4c8ad1cde6a700332a9118b1f00","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run knip && npm run build && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","lineage:dev":"tsx src/cli/lineage-dev.ts","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:policy:test":"node --test scripts/tag-release-plan.test.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","jsdom":"^29.1.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.22_1784837542977_0.3627696931837372","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"@mean-weasel/lineage","version":"0.1.23","license":"MIT","_id":"@mean-weasel/lineage@0.1.23","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"b9b25f67dbd52fe53c2f03ba34f9f9fe3f4013e1","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.23.tgz","fileCount":244,"integrity":"sha512-iP2uAddAnQOvGfLij8fT2ME/8zhAnTcND/ZycjdtAuolRAp/whvwR/XCACeyKMmWICfpomjOYbj1ypqF2UU+fg==","signatures":[{"sig":"MEYCIQD6JU1+ssqhh5hcf7hegGdD8d+rfVBCsDCkZMkRgaWGgAIhALXMlzdT+yndeC5TXKHQKIlKx/IgqzTC3JrmaG6y42+t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34698465},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"08ee55e788d4bf5debee2b45ac305610863603b6","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run docs:check && npm run knip && npm run build && npm run pages:check && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","docs:build":"astro build --root docs-site","docs:check":"npm run docs:validate && npm run docs:build","lineage:dev":"tsx src/cli/lineage-dev.ts","pages:check":"npm run docs:validate && LINEAGE_DOCS_BASE=/lineage/docs/ npm run docs:build && LINEAGE_WEB_BASE=/lineage/ npm run build:web && npm run pages:prepare && test -f dist/pages/index.html && test -f dist/pages/docs/index.html","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","docs:validate":"node scripts/docs-check.mjs","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","pages:prepare":"node scripts/prepare-pages.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:policy:test":"node --test scripts/tag-release-plan.test.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","astro":"^7.1.3","jsdom":"^29.1.1","cookie":"^2.0.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@astrojs/starlight":"^0.41.4","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.23_1785000261760_0.4515181475799135","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"@mean-weasel/lineage","version":"0.1.24","license":"MIT","_id":"@mean-weasel/lineage@0.1.24","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"c62ce0eeda3a998684ba86e47435333fbebeaebb","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.24.tgz","fileCount":244,"integrity":"sha512-JWGO2/DISZ307+pR7z7YgikIG6RxI+R6IdwY2mubh5X+Ey4eI6F1CDyH6oYgT3sU6g4RpcO8N3AwFGplhAzIOg==","signatures":[{"sig":"MEUCIFjdFA2wycKLqizE5b+nZ9CxzQOIidwOVxvV/dx8jOQKAiEA47Ys1HoZt4sk0+ri178sAVPJPZ+NlioRr8iaz1K46qA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35026969},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"d6299071a5a3d71b0c0c3c9ee28b6955ef1a7c7c","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run docs:check && npm run knip && npm run build && npm run pages:check && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run stable-upgrade:smoke && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","docs:build":"astro build --root docs-site","docs:check":"npm run docs:validate && npm run docs:build","lineage:dev":"tsx src/cli/lineage-dev.ts","pages:check":"npm run docs:validate && LINEAGE_DOCS_BASE=/lineage/docs/ npm run docs:build && LINEAGE_WEB_BASE=/lineage/ npm run build:web && npm run pages:prepare && test -f dist/pages/index.html && test -f dist/pages/docs/index.html","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","docs:validate":"node scripts/docs-check.mjs","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","pages:prepare":"node scripts/prepare-pages.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:policy:test":"node --test scripts/tag-release-plan.test.mjs","stable-upgrade:smoke":"node scripts/stable-profile-upgrade-smoke.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","astro":"^7.1.3","jsdom":"^29.1.1","cookie":"^2.0.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@astrojs/starlight":"^0.41.4","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.24_1785016158531_0.04467485898046952","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"@mean-weasel/lineage","version":"0.1.25","license":"MIT","_id":"@mean-weasel/lineage@0.1.25","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"5c9e2cc6783db44be588fdc99e38060f3ca8d58d","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.25.tgz","fileCount":244,"integrity":"sha512-5+Po5VT2VT6V9DplnkuSBetJ7YgCOY3yo3JK6WXB3byKqigHg0Aqro0SCLfJBnmT0oolY2mRJ6/ZBCimYRKRsg==","signatures":[{"sig":"MEUCICLJlrhG0nzzkD0B67FAJm8ICClh9F85uamzBu75eaE7AiEA9Vm0MasDW3dykYw23IPyCqs83QA/8dwxs/v6dsWI5oE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35027147},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"97033deeb3708cbe360a2ebd0fe74360cfe1b688","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run docs:check && npm run knip && npm run build && npm run pages:check && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run stable-upgrade:smoke && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","docs:build":"astro build --root docs-site","docs:check":"npm run docs:validate && npm run docs:build","lineage:dev":"tsx src/cli/lineage-dev.ts","pages:check":"npm run docs:validate && LINEAGE_DOCS_BASE=/lineage/docs/ npm run docs:build && LINEAGE_WEB_BASE=/lineage/ npm run build:web && npm run pages:prepare && test -f dist/pages/index.html && test -f dist/pages/docs/index.html","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","docs:validate":"node scripts/docs-check.mjs","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","pages:prepare":"node scripts/prepare-pages.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:policy:test":"node --test scripts/tag-release-plan.test.mjs scripts/release-provenance.test.mjs","stable-upgrade:smoke":"node scripts/stable-profile-upgrade-smoke.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","astro":"^7.1.3","jsdom":"^29.1.1","cookie":"^2.0.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@astrojs/starlight":"^0.41.4","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.25_1785017807719_0.7484673606580221","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"@mean-weasel/lineage","version":"0.1.26","license":"MIT","_id":"@mean-weasel/lineage@0.1.26","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"8c806c47e4f1b3ea7e214744ce23e8e8694d4717","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.26.tgz","fileCount":244,"integrity":"sha512-EdBC4fQDYbIHoSut6IKrd9vLOJmzeBMtn4vRsWvuYddjimBle3RuKSv6Wy03bWnIXfyN7/eHHww6L5wpkRNR4A==","signatures":[{"sig":"MEUCIQCFEKq2mQC7PPOB5UtJ/1h7uZOa+69gVCtUYs34JFMNqAIgLK+4nwuZ/+ifY/INRrWz2JSMbovptsQZvQIkWQNVU4k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35027200},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"eef358ba16f60619f6ba8104d3bed14ab8d58257","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run docs:check && npm run knip && npm run build && npm run pages:check && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run stable-upgrade:smoke && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","docs:build":"astro build --root docs-site","docs:check":"npm run docs:validate && npm run docs:build","lineage:dev":"tsx src/cli/lineage-dev.ts","pages:check":"npm run docs:validate && LINEAGE_DOCS_BASE=/lineage/docs/ npm run docs:build && LINEAGE_WEB_BASE=/lineage/ npm run build:web && npm run pages:prepare && test -f dist/pages/index.html && test -f dist/pages/docs/index.html && npm run build:web","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","docs:validate":"node scripts/docs-check.mjs","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","pages:prepare":"node scripts/prepare-pages.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:policy:test":"node --test scripts/tag-release-plan.test.mjs scripts/release-provenance.test.mjs","stable-upgrade:smoke":"node scripts/stable-profile-upgrade-smoke.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","astro":"^7.1.3","jsdom":"^29.1.1","cookie":"^2.0.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@astrojs/starlight":"^0.41.4","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.26_1785027428493_0.3752978683785828","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"@mean-weasel/lineage","version":"0.1.27","license":"MIT","_id":"@mean-weasel/lineage@0.1.27","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"69bf73f81ec99a7a4a6cc4c6c22ce636b949c3ef","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.27.tgz","fileCount":244,"integrity":"sha512-KboFj3fKkSTtBx03Xe0mLj6FGaeWrRyN+Q3IyRnJYsVEVkbi2lvRwJdq4QJ1PRRJmMe0Ug47SOJJ+Y2A60GqpQ==","signatures":[{"sig":"MEUCIQDAseMFoi7PX6y8TgmhZ4LcIFOMzUKKC7si77wFjsksEwIgN6ERzvXtWiU7K8nJB+WsXIUWR/Gvk4Ag4LDChkSo99o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35912519},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"d1c680928e7006cc1a9d51026d494cb1752324a1","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run docs:check && npm run knip && npm run build && npm run pages:check && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run stable-upgrade:smoke && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","docs:build":"astro build --root docs-site","docs:check":"npm run docs:validate && npm run docs:build","lineage:dev":"tsx src/cli/lineage-dev.ts","pages:check":"npm run docs:validate && LINEAGE_DOCS_BASE=/lineage/docs/ npm run docs:build && LINEAGE_WEB_BASE=/lineage/ npm run build:web && npm run pages:prepare && test -f dist/pages/index.html && test -f dist/pages/docs/index.html && npm run build:web","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","docs:validate":"node scripts/docs-check.mjs","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","pages:prepare":"node scripts/prepare-pages.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:policy:test":"node --test scripts/tag-release-plan.test.mjs scripts/release-provenance.test.mjs","stable-upgrade:smoke":"node scripts/stable-profile-upgrade-smoke.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","sharp":"0.35.3","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","astro":"^7.1.3","jsdom":"^29.1.1","cookie":"^2.0.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@astrojs/starlight":"^0.41.4","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.27_1785175067851_0.7870233536418954","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"@mean-weasel/lineage","version":"0.1.28","license":"MIT","_id":"@mean-weasel/lineage@0.1.28","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"eea178f006dbc371d46845231c2d85d8c78f54ba","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.28.tgz","fileCount":244,"integrity":"sha512-c7qPKiY6N9Gk8arF9GCqHxCJxsysk0wCWTx0lb6SQid6zT6dEfVS9lmRhkVR1LyV2FUzakyi8tqDuqBasHXAPQ==","signatures":[{"sig":"MEUCIQD14hmgGZ9Y+FYwfafLwC4acrH33PaN5RTYIYr2KCV9BQIgdm5P1jUh/argA5CVnxB/T+Ic6orXBz/bzrEZ/EIUqH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36037734},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"9df5f2b4d15d1ab3b0203af4fa5bf0af084cb6bf","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run docs:check && npm run knip && npm run build && npm run pages:check && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run stable-upgrade:smoke && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","docs:build":"astro build --root docs-site","docs:check":"npm run docs:validate && npm run docs:build","lineage:dev":"tsx src/cli/lineage-dev.ts","pages:check":"npm run docs:validate && LINEAGE_DOCS_BASE=/lineage/docs/ npm run docs:build && LINEAGE_WEB_BASE=/lineage/ npm run build:web && npm run pages:prepare && test -f dist/pages/index.html && test -f dist/pages/docs/index.html && npm run build:web","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","docs:validate":"node scripts/docs-check.mjs","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","pages:prepare":"node scripts/prepare-pages.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:policy:test":"node --test scripts/tag-release-plan.test.mjs scripts/release-provenance.test.mjs","stable-upgrade:smoke":"node scripts/stable-profile-upgrade-smoke.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","sharp":"0.35.3","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","astro":"^7.1.3","jsdom":"^29.1.1","cookie":"^2.0.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@astrojs/starlight":"^0.41.4","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.28_1785180657454_0.04297024845399133","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"@mean-weasel/lineage","version":"0.1.29","license":"MIT","_id":"@mean-weasel/lineage@0.1.29","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"a435bd7a39aa03e2970ef19326a619138bba205e","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.29.tgz","fileCount":244,"integrity":"sha512-l6dhk2m5hLN4iltNPcVN+56PGWO5O9UvYP2lIEIMtiU0d+/4gW3yDhOKetRJtroe0Q3pBWB72IiWPfh5n+aD9w==","signatures":[{"sig":"MEUCIAdHvbSTa3K9JCqr11c8Ts2jAi8wmBJRXJl7AMmpsx3gAiEA/TakpFtZL87T1IzqUCzYu5IzkE6DViC8pFdTJEIJbG0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36513957},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"96899b0bf06eb605507f8c7769831caf36d50b45","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run docs:check && npm run knip && npm run build && npm run pages:check && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run stable-upgrade:smoke && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","docs:build":"astro build --root docs-site","docs:check":"npm run docs:validate && npm run docs:build","lineage:dev":"tsx src/cli/lineage-dev.ts","pages:check":"npm run docs:validate && LINEAGE_DOCS_BASE=/lineage/docs/ npm run docs:build && LINEAGE_WEB_BASE=/lineage/ npm run build:web && npm run pages:prepare && test -f dist/pages/index.html && test -f dist/pages/docs/index.html && npm run build:web","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","docs:validate":"node scripts/docs-check.mjs","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","pages:prepare":"node scripts/prepare-pages.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:policy:test":"node --test scripts/tag-release-plan.test.mjs scripts/release-provenance.test.mjs","stable-upgrade:smoke":"node scripts/stable-profile-upgrade-smoke.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","sharp":"0.35.3","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","astro":"^7.1.3","jsdom":"^29.1.1","cookie":"^2.0.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@astrojs/starlight":"^0.41.4","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.29_1785197439384_0.1609828661912991","host":"s3://npm-registry-packages-npm-production"}},"0.1.30":{"name":"@mean-weasel/lineage","version":"0.1.30","license":"MIT","_id":"@mean-weasel/lineage@0.1.30","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"0b38381c4ab393dc7de5d026997a43633bb0a1f9","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.30.tgz","fileCount":244,"integrity":"sha512-GINl/TXp1uEf0X9cum8bR82b/t0zalzPTMf9djqxpjycek5i8AYWIC0HP88RlBrvbhK8pwVKWDAp/xA4hyST1A==","signatures":[{"sig":"MEQCIHjbsjzMuKmcfs0f9FtSmcXnroJnUrcKaDfSdCAr16g9AiAsJqEPNnIee/nqx9r3uZ0Jlg/VGk9iGeZegh7vyupxcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36540596},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"6ea9dbb27a0b63f4541dfc27decd2366b80abf73","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run docs:check && npm run knip && npm run build && npm run pages:check && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run stable-upgrade:smoke && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","docs:build":"astro build --root docs-site","docs:check":"npm run docs:validate && npm run docs:build","lineage:dev":"tsx src/cli/lineage-dev.ts","pages:check":"npm run docs:validate && LINEAGE_DOCS_BASE=/lineage/docs/ npm run docs:build && LINEAGE_WEB_BASE=/lineage/ npm run build:web && npm run pages:prepare && test -f dist/pages/index.html && test -f dist/pages/docs/index.html && npm run build:web","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","docs:validate":"node scripts/docs-check.mjs","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","pages:prepare":"node scripts/prepare-pages.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:policy:test":"node --test scripts/tag-release-plan.test.mjs scripts/release-provenance.test.mjs","stable-upgrade:smoke":"node scripts/stable-profile-upgrade-smoke.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","sharp":"0.35.3","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","astro":"^7.1.3","jsdom":"^29.1.1","cookie":"^2.0.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@astrojs/starlight":"^0.41.4","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.30_1785262620667_0.6800880227991613","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"@mean-weasel/lineage","version":"0.1.31","license":"MIT","_id":"@mean-weasel/lineage@0.1.31","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"af33c1b792df39bf33bc11b77b3f468805abbfd1","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.31.tgz","fileCount":244,"integrity":"sha512-fGYPMGeyvOtG6E7aSomGmbUoGybKr5QDIU/co3iCxcexzHcdaYO+hXVVXpDJpYdTYU+otqU2z6EliZi2WyQ8LA==","signatures":[{"sig":"MEUCIFG1nNc3ggtGODduLGtiBTWjVfxE/RyHMhpIJ2ujj5qoAiEA/HwMz3WbTc0t+MEKrLVDZYt4fmr6Njh9LYxVujmjG8Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36598756},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"243b69a4f89c656421a99626a64791f88ab87ea7","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run docs:check && npm run knip && npm run build && npm run pages:check && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run stable-upgrade:smoke && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","docs:build":"astro build --root docs-site","docs:check":"npm run docs:validate && npm run docs:build","lineage:dev":"tsx src/cli/lineage-dev.ts","pages:check":"npm run docs:validate && LINEAGE_DOCS_BASE=/lineage/docs/ npm run docs:build && LINEAGE_WEB_BASE=/lineage/ npm run build:web && npm run pages:prepare && test -f dist/pages/index.html && test -f dist/pages/docs/index.html && npm run build:web","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","docs:validate":"node scripts/docs-check.mjs","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","pages:prepare":"node scripts/prepare-pages.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:policy:test":"node --test scripts/tag-release-plan.test.mjs scripts/release-provenance.test.mjs","stable-upgrade:smoke":"node scripts/stable-profile-upgrade-smoke.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","sharp":"0.35.3","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","astro":"^7.1.3","jsdom":"^29.1.1","cookie":"^2.0.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@astrojs/starlight":"^0.41.4","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.31_1785339609011_0.7314357010521686","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"@mean-weasel/lineage","version":"0.1.32","license":"MIT","_id":"@mean-weasel/lineage@0.1.32","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"34cca545a8bd94ceb1917f81a9caca4fac8cc89a","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.32.tgz","fileCount":244,"integrity":"sha512-jIl4xNMqF8gR10E5J12XknyXmgeFxMHkbUZUjh9DtzGgQjoom1I7ecnw+IibXDBv7dOfWcAx8MCjxMcE4nZVPw==","signatures":[{"sig":"MEUCIQCqh8SpNI3FkbxX540tj9VGxrR0TrKDtIajYRLhbGOZIQIgKXPZ0Dmy/cUpAms1uyH/kMARiKnujcdGriSnN1Ftdl8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36624852},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"0b3b9ef3835d010db16a495a825dc334eb60279f","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run docs:check && npm run knip && npm run build && npm run pages:check && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run stable-upgrade:smoke && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","docs:build":"astro build --root docs-site","docs:check":"npm run docs:validate && npm run docs:build","lineage:dev":"tsx src/cli/lineage-dev.ts","pages:check":"npm run docs:validate && LINEAGE_DOCS_BASE=/lineage/docs/ npm run docs:build && LINEAGE_WEB_BASE=/lineage/ npm run build:web && npm run pages:prepare && test -f dist/pages/index.html && test -f dist/pages/docs/index.html && npm run build:web","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","docs:validate":"node scripts/docs-check.mjs","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","pages:prepare":"node scripts/prepare-pages.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:policy:test":"node --test scripts/tag-release-plan.test.mjs scripts/release-provenance.test.mjs","stable-upgrade:smoke":"node scripts/stable-profile-upgrade-smoke.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","sharp":"0.35.3","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","astro":"^7.1.3","jsdom":"^29.1.1","cookie":"^2.0.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@astrojs/starlight":"^0.41.4","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.32_1785362133616_0.3861205363608058","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"@mean-weasel/lineage","version":"0.1.33","license":"MIT","_id":"@mean-weasel/lineage@0.1.33","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"533fdc717c91cffd89006418cc3ba0cc9a7488ba","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.33.tgz","fileCount":244,"integrity":"sha512-CALXsh4RQLOXiD6Op3PYebRPiL5/fmQeANFZpBzvjZ/oDMJ0ZSuIpflPIDk3IEQSilRF+0li70bb0ZR2aaiF5A==","signatures":[{"sig":"MEUCICJWg2fwtzelJvuUVjqDIpkRgxSUe4JASEhs7YKf9IfAAiEA8zK4t9MvAbQn8qhttwxo/sWKLIXlbQ6xvvx7jWXkXjE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37081790},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"1a4e144ce24debbd972b558d96301c3e042c04ad","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run docs:check && npm run knip && npm run build && npm run pages:check && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run stable-upgrade:smoke && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","docs:build":"astro build --root docs-site","docs:check":"npm run docs:validate && npm run docs:build","lineage:dev":"tsx src/cli/lineage-dev.ts","pages:check":"npm run docs:validate && LINEAGE_DOCS_BASE=/lineage/docs/ npm run docs:build && LINEAGE_WEB_BASE=/lineage/ npm run build:web && npm run pages:prepare && test -f dist/pages/index.html && test -f dist/pages/docs/index.html && npm run build:web","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","docs:validate":"node scripts/docs-check.mjs","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","pages:prepare":"node scripts/prepare-pages.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:policy:test":"node --test scripts/tag-release-plan.test.mjs scripts/release-provenance.test.mjs","stable-upgrade:smoke":"node scripts/stable-profile-upgrade-smoke.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","sharp":"0.35.3","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","astro":"^7.1.3","jsdom":"^29.1.1","cookie":"^2.0.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@astrojs/starlight":"^0.41.4","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.33_1785435758851_0.13935044990769407","host":"s3://npm-registry-packages-npm-production"}},"0.1.34":{"name":"@mean-weasel/lineage","version":"0.1.34","license":"MIT","_id":"@mean-weasel/lineage@0.1.34","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"ea9e87475c763f485309c9c3fa8d9bda24171632","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.34.tgz","fileCount":244,"integrity":"sha512-C+9RbFsuZY3oY/D0c7G9mcAq9CaKGpglzpW2VsXZXhdQftylUezMYp5a7sQjUNLEHV9E3z7uhqqeWZc2VZ5iKQ==","signatures":[{"sig":"MEUCIEFtUJPo5QN5CtHMPItd4miSERiVv0KaIZcJ06rztLdNAiEArmm07VoBhk1as8c6QRY5B8PJc5xAJalfby1AGQ849AI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37223942},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"0bad52a525602d0d20da5091c4816cd278309e34","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run docs:check && npm run knip && npm run build && npm run pages:check && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run stable-upgrade:smoke && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","docs:build":"astro build --root docs-site","docs:check":"npm run docs:validate && npm run docs:build","lineage:dev":"tsx src/cli/lineage-dev.ts","pages:check":"npm run docs:validate && LINEAGE_DOCS_BASE=/lineage/docs/ npm run docs:build && LINEAGE_WEB_BASE=/lineage/ npm run build:web && npm run pages:prepare && test -f dist/pages/index.html && test -f dist/pages/docs/index.html && npm run build:web","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","docs:validate":"node scripts/docs-check.mjs","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","pages:prepare":"node scripts/prepare-pages.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:policy:test":"node --test scripts/tag-release-plan.test.mjs scripts/release-provenance.test.mjs","stable-upgrade:smoke":"node scripts/stable-profile-upgrade-smoke.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","sharp":"0.35.3","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","astro":"^7.1.3","jsdom":"^29.1.1","cookie":"^2.0.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@astrojs/starlight":"^0.41.4","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.34_1785527727516_0.5868198567336984","host":"s3://npm-registry-packages-npm-production"}},"0.1.35":{"name":"@mean-weasel/lineage","version":"0.1.35","license":"MIT","_id":"@mean-weasel/lineage@0.1.35","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"homepage":"https://github.com/mean-weasel/lineage#readme","bugs":{"url":"https://github.com/mean-weasel/lineage/issues"},"bin":{"lineage":"dist/cli/lineage.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"dist":{"shasum":"6373cd935967050e91802833fde531a4c3bf2ab4","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.35.tgz","fileCount":244,"integrity":"sha512-gEKvmkG8i2Fi8ppgUgSDbN7kTgw/rqRrXUj08gYGuWXf6QT7NlHl/Acb4AFUz4A50wNB3hxhvEkOPxD4pBT8qg==","signatures":[{"sig":"MEUCIQD5emYrbhnlB0xrxks3Ak0XUbAaD5uYVeY/cTps2HMpSQIgTqMnC8wglRp6EKCUyvXv2uByWhWYXJpNQzLtuHOikjA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37460771},"type":"module","engines":{"node":">=22.22.0"},"gitHead":"6bfe05919a4586f70ab613860d11319b23a71b07","scripts":{"ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run docs:check && npm run knip && npm run build && npm run pages:check && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run stable-upgrade:smoke && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","dev":"tsx scripts/dev-profile-server.mjs","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","audit":"npm audit --audit-level=moderate","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","start":"NODE_ENV=production node dist/server.js","release":"node scripts/release.mjs","service":"node scripts/managed-service.mjs","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build:web":"vite build --config vite.config.ts","docs:build":"astro build --root docs-site","docs:check":"npm run docs:validate && npm run docs:build","lineage:dev":"tsx src/cli/lineage-dev.ts","pages:check":"npm run docs:validate && LINEAGE_DOCS_BASE=/lineage/docs/ npm run docs:build && LINEAGE_WEB_BASE=/lineage/ npm run build:web && npm run pages:prepare && test -f dist/pages/index.html && test -f dist/pages/docs/index.html && npm run build:web","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","plugin:smoke":"node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","docs:validate":"node scripts/docs-check.mjs","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","pages:prepare":"node scripts/prepare-pages.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:status":"node scripts/release-status.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","seed:qa:verify":"node scripts/qa-seed-verify.mjs","prepare-release":"node scripts/prepare-release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","build:provenance":"node scripts/write-runtime-build.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","public:readiness":"node scripts/public-readiness.mjs","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:policy:test":"node --test scripts/tag-release-plan.test.mjs scripts/release-provenance.test.mjs","stable-upgrade:smoke":"node scripts/stable-profile-upgrade-smoke.mjs","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run"},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"repository":{"url":"git+ssh://git@github.com/mean-weasel/lineage.git","type":"git"},"_npmVersion":"10.9.8","description":"Local-first creative lineage workspace","directories":{},"_nodeVersion":"22.22.3","dependencies":{"react":"^18.3.1","sharp":"0.35.3","multer":"^2.2.0","express":"^4.19.2","react-dom":"^18.3.1","lucide-react":"^0.468.0","@xyflow/react":"^12.11.1","@dagrejs/dagre":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","knip":"^6.17.1","vite":"^8.0.16","astro":"^7.1.3","jsdom":"^29.1.1","cookie":"^2.0.1","eslint":"^10.5.0","vitest":"^4.1.9","esbuild":"^0.28.1","globals":"^17.6.0","@eslint/js":"^10.0.1","playwright":"^1.61.0","typescript":"^5.7.2","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/multer":"^1.4.12","@types/express":"^4.17.21","@types/react-dom":"^18.3.1","typescript-eslint":"^8.61.1","@astrojs/starlight":"^0.41.4","@vitejs/plugin-react":"^6.0.2","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/lineage_0.1.35_1785759317798_0.6183101003946894","host":"s3://npm-registry-packages-npm-production"}},"0.1.36":{"name":"@mean-weasel/lineage","version":"0.1.36","description":"Local-first creative lineage workspace","license":"MIT","type":"module","bin":{"lineage":"dist/cli/lineage.js","lineage-channel":"dist/cli/lineage-channel.js","lineage-dev":"dist/cli/lineage-dev.js","lineage-preview":"dist/cli/lineage-preview.js","lineage-service":"dist/cli/managed-service.js"},"scripts":{"dev":"tsx scripts/dev-profile-server.mjs","lineage:dev":"tsx src/cli/lineage-dev.ts","start":"NODE_ENV=production node dist/server.js","build:web":"vite build --config vite.config.ts","docs:validate":"node scripts/docs-check.mjs","docs:build":"astro build --root docs-site","docs:check":"npm run docs:validate && npm run docs:build","pages:prepare":"node scripts/prepare-pages.mjs","pages:check":"npm run docs:validate && LINEAGE_DOCS_BASE=/docs/ LINEAGE_DOCS_SITE=https://lineage.neonwatty.com npm run docs:build && LINEAGE_WEB_BASE=/ npm run build:web && npm run pages:prepare && test -f dist/pages/index.html && test -f dist/pages/docs/index.html && npm run build:web","build:provenance":"node scripts/write-runtime-build.mjs","build:server":"esbuild src/server.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/server.js --sourcemap","build:cli":"esbuild src/cli/lineage.ts src/cli/lineage-channel.ts src/cli/lineage-dev.ts src/cli/lineage-preview.ts --bundle --platform=node --format=esm --target=node22 --packages=external --outdir=dist/cli --sourcemap && esbuild scripts/managed-service.mjs --bundle --platform=node --format=esm --target=node22 --packages=external --outfile=dist/cli/managed-service.js --sourcemap","build":"npm run build:web && npm run build:provenance && npm run build:server && npm run build:cli","check":"tsc --noEmit","lint":"eslint src scripts --max-warnings=0","test":"NODE_OPTIONS=--no-warnings vitest run --config vitest.config.ts","e2e":"node scripts/e2e-profile-runner.mjs","knip":"knip","audit":"npm audit --audit-level=moderate","public:readiness":"node scripts/public-readiness.mjs","package:smoke":"node scripts/package-smoke.mjs && node scripts/managed-service-smoke.mjs","runtime:smoke":"node scripts/runtime-isolation-smoke.mjs","runtime:oracle":"node scripts/coexistence-oracle.mjs","stable-upgrade:smoke":"node scripts/stable-profile-upgrade-smoke.mjs","onboarding:smoke":"node scripts/onboarding-smoke.mjs","service":"node scripts/managed-service.mjs","service:smoke":"node scripts/managed-service-smoke.mjs","release:claim-smoke":"node scripts/release-claim-smoke.mjs","seed:qa:prepare":"node scripts/qa-seed-verify.mjs --prepare","seed:qa:verify":"node scripts/qa-seed-verify.mjs","ci":"npm run check && npm run lint && npm run test && npm run release:policy:test && npm run docs:check && npm run knip && npm run build && npm run pages:check && npm run onboarding:smoke && npm run runtime:smoke && npm run runtime:oracle && npm run stable-upgrade:smoke && npm run e2e && npm run public:readiness && npm run package:smoke && npm run plugin:smoke && npm run audit","plugin:pack":"node scripts/plugin-release.mjs --out-dir dist/lineage-plugin --json","plugin:smoke":"node --test scripts/plugin-guidance.test.mjs && node scripts/plugin-release.mjs && npm test --prefix packages/lineage-plugin-installer && npm run check --prefix packages/lineage-plugin-installer","plugin:codex-smoke":"node packages/lineage-plugin-installer/scripts/codex-smoke.mjs","prepare-release":"node scripts/prepare-release.mjs","release":"node scripts/release.mjs","release:dry-run":"node scripts/release.mjs --dry-run","release:policy:test":"node --test scripts/tag-release-plan.test.mjs scripts/release-provenance.test.mjs","release:github":"node scripts/sync-github-release.mjs --channel latest","release:github:next":"node scripts/sync-github-release.mjs --channel next","release:github:dry-run":"node scripts/sync-github-release.mjs --channel latest --dry-run","release:github:next:dry-run":"node scripts/sync-github-release.mjs --channel next --dry-run","release:status":"node scripts/release-status.mjs"},"dependencies":{"@dagrejs/dagre":"^3.0.0","@xyflow/react":"^12.11.1","express":"^4.19.2","lucide-react":"^0.468.0","multer":"^2.2.0","react":"^18.3.1","react-dom":"^18.3.1","sharp":"0.35.3"},"overrides":{"qs":"6.16.0"},"devDependencies":{"@astrojs/starlight":"^0.41.4","@eslint/js":"^10.0.1","@types/express":"^4.17.21","@types/multer":"^1.4.12","@types/node":"^22.10.2","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^6.0.2","astro":"^7.1.3","cookie":"^2.0.1","esbuild":"^0.28.1","eslint":"^10.5.0","eslint-plugin-react-hooks":"^7.1.1","eslint-plugin-react-refresh":"^0.5.3","globals":"^17.6.0","jsdom":"^29.1.1","knip":"^6.17.1","playwright":"^1.61.0","tsx":"^4.19.2","typescript":"^5.7.2","typescript-eslint":"^8.61.1","vite":"^8.0.16","vitest":"^4.1.9"},"engines":{"node":">=22.22.0"},"repository":{"type":"git","url":"git+https://github.com/lineagehq/lineage.git"},"bugs":{"url":"https://github.com/lineagehq/lineage/issues"},"homepage":"https://github.com/lineagehq/lineage#readme","publishConfig":{"access":"public"},"_id":"@mean-weasel/lineage@0.1.36","gitHead":"59fc92af842697c60e434a53cc9c6e2449e4a6e4","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-Xr0rEbH1seXbO4SOWYodGaYzje7t30/V+MSZPBMPIXBeAdKQnB5x49OdjDxOekv/NOLU07oCn75uhvFkJ7qvBw==","shasum":"de567acb45bc13767ba98d896132b828f6a4fe8d","tarball":"https://registry.npmjs.org/@mean-weasel/lineage/-/lineage-0.1.36.tgz","fileCount":244,"unpackedSize":37443840,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mean-weasel%2flineage@0.1.36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBx0cMUgpZaRdSSyLW8Qz5bcT1kB+VWttvvp6gA0BL/6AiANMjGlqbTVIrQ9m6CrYzQ3VsJOARQQrtofvCKv0/7WUg=="}]},"_npmUser":{"name":"neonwatty","email":"jermwatt@gmail.com"},"directories":{},"maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lineage_0.1.36_1788733387809_0.6522663156980142"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-03T16:38:55.015Z","modified":"2026-09-06T22:23:08.597Z","0.1.0":"2026-07-03T16:38:55.267Z","0.1.1":"2026-07-03T17:31:11.013Z","0.1.2":"2026-07-04T02:56:02.788Z","0.1.3":"2026-07-05T22:01:54.027Z","0.1.4":"2026-07-06T12:38:02.326Z","0.1.5":"2026-07-06T22:07:37.215Z","0.1.6":"2026-07-07T21:03:53.247Z","0.1.7":"2026-07-08T22:47:13.524Z","0.1.8":"2026-07-09T18:30:30.702Z","0.1.9":"2026-07-09T22:06:22.442Z","0.1.10":"2026-07-09T22:21:15.078Z","0.1.11":"2026-07-12T13:33:13.551Z","0.1.12":"2026-07-15T01:02:55.259Z","0.1.13":"2026-07-16T17:46:01.902Z","0.1.14":"2026-07-16T18:32:49.744Z","0.1.15":"2026-07-19T22:53:12.789Z","0.1.16":"2026-07-20T22:37:26.010Z","0.1.17":"2026-07-22T17:55:31.945Z","0.1.18":"2026-07-22T21:25:06.256Z","0.1.20":"2026-07-23T03:07:10.563Z","0.1.21-rc.3":"2026-07-23T15:44:30.452Z","0.1.21":"2026-07-23T16:18:08.635Z","0.1.22":"2026-07-23T20:12:23.345Z","0.1.23":"2026-07-25T17:24:22.199Z","0.1.24":"2026-07-25T21:49:18.977Z","0.1.25":"2026-07-25T22:16:48.172Z","0.1.26":"2026-07-26T00:57:08.961Z","0.1.27":"2026-07-27T17:57:48.324Z","0.1.28":"2026-07-27T19:30:57.950Z","0.1.29":"2026-07-28T00:10:39.860Z","0.1.30":"2026-07-28T18:17:01.148Z","0.1.31":"2026-07-29T15:40:09.506Z","0.1.32":"2026-07-29T21:55:34.129Z","0.1.33":"2026-07-30T18:22:39.487Z","0.1.34":"2026-07-31T19:55:27.984Z","0.1.35":"2026-08-03T12:15:18.261Z","0.1.36":"2026-09-06T22:23:08.261Z"},"bugs":{"url":"https://github.com/lineagehq/lineage/issues"},"license":"MIT","homepage":"https://github.com/lineagehq/lineage#readme","repository":{"type":"git","url":"git+https://github.com/lineagehq/lineage.git"},"description":"Local-first creative lineage workspace","maintainers":[{"name":"neonwatty","email":"jermwatt@gmail.com"}],"readme":"# Lineage\n\n**The shared visual workspace where humans and agents shape creative work together.**\n\nChat is a good interface for directing agent-driven creative work, but it is not\nbuilt to hold the state of that work. Lineage keeps every asset, path, prompt,\niteration, relationship, selection, and annotation in one local-first record:\nvisual enough for humans to review and direct, and precise enough for agents to\nretrieve through the CLI and continue accurately.\n\n[See the landing page](https://lineage.neonwatty.com/) ·\n[Install Lineage](#first-run) ·\n[Use the Codex plugin](#codex-plugin) ·\n[Develop locally](#local-development)\n\n## One creative state for humans and agents\n\n- **Humans keep the history organized.** Review branches and attempts, compare\n  results, choose the exact asset to continue from, and annotate the next move.\n- **Agents keep the context behind the work.** Read the same assets, prompts,\n  relationships, and decisions instead of reconstructing them from chat.\n- **Context travels both ways.** Agent-created work returns to the visual record;\n  human selections and annotations become precise context for the next agent\n  action.\n\nWith Lineage, you can trace an asset from its origin through every branch,\nselection, and campaign format; continue from any useful point without losing\nearlier work; and hand a clear, durable work packet to the next human, agent, or\ndownstream tool.\n\n## Built with GPT-5.6 Sol in Codex\n\nLineage is itself a human-agent collaboration. We use GPT-5.6 Sol in Codex\nthroughout the project to:\n\n- design and implement the web app, server, CLI, and version-locked Codex plugin;\n- exercise real workflows through the Codex in-app browser and Codex Chrome\n  extension, alongside automated browser tests;\n- shape architecture and safety boundaries for runtime channels, local data,\n  agent claims, and handoffs;\n- diagnose failures, review changes, write tests, and stabilize end-to-end\n  behavior;\n- create and refine the landing page, including its visual design, interactions,\n  and supporting visual assets; and\n- build and verify CI, packaging, release automation, public documentation, and\n  product messaging.\n\nModel-assisted work is held to the same proof standard as any other change. The\nrepository's automated gates cover unit, integration, and browser behavior;\nruntime and database isolation; public-readiness checks; installability; plugin\nintegrity; and dependency audits.\n\n## First Run\n\n### Prerequisites\n\nBefore installing anything, verify the tools used by the path you choose:\n\n```bash\nnode --version\nnpm --version\nnpx --version\nmake --version\n```\n\nLineage requires Node.js 22.22.0 or newer and npm, including the accompanying\n`npx` command used by the plugin installer. Make is required only for the\ndocumented `make` shortcuts. A real Codex installation is optional for the app,\nbut required to install and activate the Codex plugin; verify that additional\nprerequisite with `codex --version` in the same shell before following the\nplugin step. If either command is missing, restore its executable directory on\n`PATH` before installing.\n\nOn the minimum supported Node 22 line, foreground startup can print one\n`ExperimentalWarning` for Node's built-in SQLite module before the healthy\n`Lineage listening` line. Lineage keeps that category-specific warning visible;\nit does not indicate an identity or database failure.\n\n### Develop from a fresh clone\n\nThis is the shortest source-development path with hot reload and isolated\ndevelopment data:\n\n```bash\ngit clone https://github.com/mean-weasel/lineage.git\ncd lineage\nnpm ci &&\nnpm run lineage:dev -- runtime doctor --json &&\nnpm run lineage:dev -- profile init --profile team-development --confirm-write --json &&\nnpm run lineage:dev -- runtime doctor --json &&\nnpm run lineage:dev -- profile doctor --profile team-development --json &&\nnpm run lineage:dev -- db info --profile team-development --json &&\nnpm run dev -- --profile team-development\n```\n\nOpen `http://lineage-dev.localhost:5198`, expand **Demo/QA** in the Canvas\ncontext panel, then choose **Load demo lineage** for a small graph or **Load\nrich image demo** for the full media-backed example. On later runs, reuse the\nsame healthy profile and run only the final start command. If profile\ninitialization reports an existing but unhealthy profile, run the exact\n`profile doctor` command it prints before changing anything.\n\n### Using the navigation shell\n\nLineage opens on Projects. Choose a project to reach its dedicated Workspaces\npage, where workspaces can be searched, reordered, archived, deleted, and\nopened in Canvas. Project-scoped destinations appear in the left rail only\nafter entering a project: Workspaces, Canvas, Assets, Content batches, Review,\nBackup queue, Agents, Ledger, and Settings. **Workspaces** always opens the\nproject directory. After you open a workspace, **Canvas** returns to that exact\nworkspace in the current browser tab, including its card presentation. Use the\n**L** mark to return to Projects; About Lineage remains available from the\ninformation button at the bottom of the rail.\n\nThe adjacent context panel contains the current project plus controls that\napply to the active destination. Collapse it when you want more room, then\nselect the active rail destination to reopen it; its desktop state is\nremembered in this browser. On mobile, the rail becomes a menu button that\nopens the same navigation and context as a drawer.\n\nCanvas uses the remaining viewport without a top toolbar. A compact location\nbar keeps the workspace title visible and provides a separate **Workspaces**\nback action. The context panel shows that workspace's identity, node/link\ncount, Replay growth, Plan outputs, output defaults, and selection management.\nMaintenance and Demo/QA are collapsed by default. Workspace creation and\nlifecycle management live on the Workspaces page rather than in a Canvas\nswitcher.\n\nUse the gear at the upper right of Canvas for presentation and graph controls:\ncompact or portrait cards, direction, edge weight, edge labels, hover\npreviews, minimap visibility, the maximum queued branches, independent Branch\nand Re-roll prompt behavior, prompt editing in the variation queue, Fit graph,\nTidy tree, and Reset appearance.\nVisual choices use direct option cards, while minimap, edge labels, and hover\npreviews use on/off switches. These appearance choices are stored in the\nbrowser. Canvas settings, selection, and Canvas asset details share one\nright-side panel, so opening one replaces the other; on mobile that panel\nbecomes a bottom sheet. Panel and control transitions respect the system's\nreduced-motion preference. Agent handoff now flows through the direct agent/UX\nbridge and the Agents view rather than a separate bottom Agent Context drawer.\n\nChoose **Branch** or **Re-roll** on a node—or focus it and press **B** or\n**R**—to queue that action. By default, Lineage first offers an exact prompt;\nthe two **Ask for … prompt** Canvas switches can independently make Branch or\nRe-roll a one-step mark instead. Saved prompts remain visible on the node and\nare included in agent-readable task and generation handoffs. Open\n**Variation queue** from the context panel or press **V** to see all queued\nactions in one scroll, highlight their nodes, focus an item on the unobstructed\nCanvas, edit its prompt, or remove it. Blank prompts remain explicitly missing\nso the agent asks what should change instead of guessing.\n\nNodes with descendants show a small count control beside their outgoing\nconnection. Select it to collapse or expand that branch. Collapse state is\nview-only and session-local, nested choices are preserved, shared descendants\nremain visible through any other expanded path, and growth replay temporarily\nshows the complete lineage.\n\n### Install the published channels\n\nUse the currently published npm dist-tags when you want installed rather than\ncheckout code:\n\n```bash\nnpm install -g @mean-weasel/lineage@latest &&\nlineage-channel install stable &&\nlineage-stable runtime doctor --json &&\nlineage-stable profile init --profile team-production --confirm-write --json &&\nlineage-stable runtime doctor --json &&\nlineage-stable profile doctor --profile team-production --json &&\nlineage-stable db info --profile team-production --json &&\nlineage-stable start --profile team-production\n```\n\nPreview is independent and must use its own runtime root and profile:\n\n```bash\nlineage-channel install preview &&\nlineage-preview runtime doctor --json &&\nlineage-preview profile init --profile team-preview --confirm-write --json &&\nlineage-preview runtime doctor --json &&\nlineage-preview profile doctor --profile team-preview --json &&\nlineage-preview db info --profile team-preview --json &&\nlineage-preview start --profile team-preview\n```\n\nThe version in this checkout may be ahead of npm and is not necessarily\npublished. The channel installer resolves `latest` or `next` at install time;\ndo not substitute the checkout version or install both tags into one global npm\nprefix.\n\nTo add the optional Codex plugin, first choose the exact Codex home you intend\nto modify, then install and doctor the matching published channel:\n\n```bash\nexport CODEX_HOME=\"$HOME/.codex\"\nnpx --yes @mean-weasel/lineage-plugin-installer@latest install --channel latest --codex-home \"$CODEX_HOME\"\nnpx --yes @mean-weasel/lineage-plugin-installer@latest doctor --channel latest --codex-home \"$CODEX_HOME\"\n```\n\nIf doctor fails, it prints a version-pinned remediation command for that same\nCodex home. For verification, use a temporary `--codex-home`; do not test an\ninstaller against your real Codex profile.\n\nMaintainers can exercise the complete published and source journeys without\ntouching an existing Lineage or Codex installation by following the\n[hermetic manual install dogfood runbook](MANUAL_INSTALL_DOGFOOD.md).\n\n## Package Channels\n\nLineage is packaged as `@mean-weasel/lineage`, but stable and preview must not\nbe installed into the same global npm prefix. A global `npm install -g ...@next`\nwould replace the files and bins used by `latest`.\n\nUse the stable package only as a bootstrap for the channel installer, then\nresolve `latest` and `next` into separate content-addressed roots:\n\n```bash\nnpm install -g @mean-weasel/lineage@latest\nlineage-channel install stable\nlineage-channel install preview\n```\n\nBy default the installer writes immutable version/integrity roots beneath\n`~/Library/Application Support/Lineage/runtimes`, plus channel-qualified\nlaunchers in npm's global executable directory (the directory already on\n`PATH` for the globally installed `lineage-channel`). Every launcher is pinned\nto an absolute package root and install receipt; it does not select code from\n`PATH` at runtime. Use `--shim-dir <path>` to choose another launcher directory,\nor `--root <path>` to keep both a custom runtime and its launchers under that\nroot. Lineage never edits shell startup files.\n\nThe three exact channel meanings are:\n\n- `stable` is npm `latest`, launched as `lineage-stable` from its receipt-bound root.\n- `preview` is npm `next`, launched as `lineage-preview` from a different root.\n- `dev` is the current Git checkout/worktree, launched from source with\n  `npm run lineage:dev -- <command>`.\n\nVerify code identity before inspecting data or starting a service:\n\n```bash\nlineage-stable runtime doctor --json\nlineage-preview runtime doctor --json\nnpm run lineage:dev -- runtime doctor --json\n```\n\nOn a first install, initialize one new profile per channel before starting it:\n\n```bash\nlineage-stable profile init --profile team-production --confirm-write --json\nlineage-preview profile init --profile team-preview --confirm-write --json\nnpm run lineage:dev -- profile init --profile team-development --confirm-write --json\n```\n\nFresh-profile bootstrap exception: because profile doctor and `db info` cannot\npass before a profile and database exist, run runtime doctor first, perform the\natomic `profile init`, and then immediately run runtime doctor, profile doctor,\nand `db info --profile <profile> --json`. Do not start a service or perform\nanother write until that post-init gate passes.\n\n`profile init` derives the environment and exact verified code pin from the\nlauncher, creates owner-only media and SQLite paths, binds the new database\nidentity, and publishes the profile manifest only after those steps succeed.\nIt is fresh-only: it never adopts or overwrites an existing directory or\ndatabase. Use `profile bind` only to migrate an existing database.\n\n`runtime doctor` fails unless channel, canonical package/checkout root, exact\nversion, embedded Git/build fingerprint, install receipt, and installed package\ntree agree. `runtime info` prints the same identity without requiring it to pass\nand is intended for repair diagnostics.\n\nA published package still carries a `lineage-dev` migration stub so old global\nlinks fail with checkout guidance. It never runs package code as dev.\n\nStart each foreground runtime explicitly:\n\n```bash\nlineage-stable start --profile team-production\nlineage-preview start --profile team-preview\nnpm run lineage:dev -- start --profile team-development\n```\n\nStable defaults to `lineage.localhost:5197`, dev to\n`lineage-dev.localhost:5198`, and preview to\n`lineage-preview.localhost:5199`. A named profile owns its host, port, database,\nand asset root. To choose another service origin, set it when creating the\nprofile:\n\n```bash\nlineage-stable profile init --profile team-production-6123 \\\n  --service-origin http://lineage.localhost:6123 --confirm-write --json\nlineage-stable start --profile team-production-6123\n```\n\nStarts with a named profile reject conflicting `--host`, `--port`, `--db`, or\nasset-root selections. Direct path selection is retained only for explicit\ndiagnostic, read-only access. The installed package directory remains\nresponsible only for bundled code, web assets, and public demo fixtures.\n\n## Runtime Channels and SQLite\n\nLineage treats attested code identity and local SQLite data identity as separate,\nsimultaneously required concerns:\n\n- `stable` is the isolated npm `latest` install and daily-use channel.\n- `preview` is the isolated npm `next` candidate.\n- `dev` is the current Git checkout/worktree and may be dirty.\n\nEach channel must use its own code root, runtime directory, and SQLite database.\nDo not point preview or dev code at the stable database. Use the profile clone\ncommand when a realistic preview/dev dataset is needed; it reads the source\nthrough SQLite's online backup API and gives the target a fresh non-production\nidentity. Direct `--db` and `LINEAGE_DB` selection is diagnostic/read-only\nunless a matching named profile has been selected and its writer lease is held.\n\nFor repeatable or multi-session work, prefer a named profile over those legacy\npath defaults. A profile is an immutable identity contract for one Lineage\nservice and its data:\n\n```json\n{\n  \"schema_version\": \"lineage.profile.v1\",\n  \"profile_id\": \"team-production\",\n  \"environment\": \"production\",\n  \"expected_runtime\": {\n    \"channel\": \"stable\",\n    \"code_origin\": \"package\",\n    \"code_fingerprint\": \"<64-character fingerprint from runtime doctor>\"\n  },\n  \"database_path\": \"./lineage.sqlite\",\n  \"asset_root\": \"./media\",\n  \"service_origin\": \"http://lineage.localhost:5197\"\n}\n```\n\nNamed profiles live at `$LINEAGE_PROFILE_ROOT/<profile-id>/profile.json` by\ndefault, or can be selected with an explicit manifest path. Relative database\nand asset paths resolve from the manifest directory. Create a fresh profile,\nthen inspect it without making further changes:\n\n```bash\nlineage-stable profile init --profile team-production --confirm-write --json\nlineage-stable profile doctor --profile team-production --json\nlineage-stable start --profile team-production\n```\n\nPass `--service-origin http://host:port` to `profile init` when the profile\nmust use a non-default local origin. Once initialized, that origin is part of\nthe immutable profile identity rather than a per-start override.\n\n`LINEAGE_PROFILE` is equivalent to `--profile`. Profile commands reject direct\n`--db` and `--asset-root` overrides, and a dev or preview runtime refuses to\nopen a production profile. Doctor also requires the existing SQLite database\nto have one matching `lineage_profile_identity` binding, including the profile\nmanifest fingerprint. Binding is an explicit migration operation:\n\n```bash\nlineage-stable profile bind --profile team-production --confirm-write --json\n```\n\nThe profile must pin the exact verified code origin and fingerprint before it\ncan be bound or used for writes. `profile bind` may add a fingerprint to a\nmatching legacy identity, but refuses a conflicting identity. An unprofiled\nCLI or service is `legacy-unbound` and read-only; mutating CLI commands and HTTP\nmethods fail with a profile-required error instead of creating a database.\nThat error points new installations to `profile init`; direct database paths do\nnot opt a process into writes.\n\nCheckout fingerprints intentionally change as tracked or untracked source\nchanges. To repin an existing development profile, first stop its managed\nservice, then run the guarded checkout-only workflow:\n\n```bash\nmake repin-dev LINEAGE_DEV_PROFILE=team-development\n```\n\nThe underlying explicit command is:\n\n```bash\nnpm run lineage:dev -- profile repin-runtime \\\n  --profile team-development --checkout-root \"$PWD\" --confirm-write --json\n```\n\nRepin accepts only a verified dev checkout whose canonical root equals\n`--checkout-root`, an owner-only development manifest already pinned to\ndev/checkout, and an available profile writer lease. It atomically replaces\nonly `expected_runtime`; profile/database identity, paths, environment,\nservice origin, and migrations stay unchanged. Production, preview, package,\nwrong-root, unsafe-manifest, unconfirmed, and active-service cases fail closed.\nThe command may prepare a new structurally valid development manifest before\nits database and asset root are cloned.\n\n### Upgrade a stable production profile\n\nA stable package update and a production profile runtime pin are separate\noperations. Upgrade only while the matching managed service is stopped:\n\n```bash\nmake stop-prod LINEAGE_PROD_PROFILE=team-production\nmake upgrade-prod LINEAGE_PROD_PROFILE=team-production\nmake start-prod-bg LINEAGE_PROD_PROFILE=team-production\nmake status-prod LINEAGE_PROD_PROFILE=team-production\n```\n\n`upgrade-prod` installs the current npm `latest` into a new receipt-bound stable\nroot, runs stable runtime doctor, confirms `profile upgrade-runtime`, then runs\nruntime doctor, profile doctor, and profile-selected `db info`. It deliberately\ndoes not stop or restart the service for you, so the stopped interval and the\npost-upgrade readiness check stay explicit.\n\nThe equivalent commands between stop and start are:\n\n```bash\nmake install-prod\nlineage-stable runtime doctor --json\nlineage-stable profile upgrade-runtime \\\n  --profile team-production --confirm-write --json\nlineage-stable runtime doctor --json\nlineage-stable profile doctor --profile team-production --json\nlineage-stable db info --profile team-production --json\n```\n\nThe upgrade target comes only from the executing verified stable package.\nPreview/dev/unverified code, an active writer, a downgrade, a same-version\nidentity change, unhealthy profile data, or unsafe manifest ownership fails\nbefore a new pin is accepted. The operation preserves the profile fingerprint,\ndatabase and asset paths and contents, service origin, migration requirements,\nand unknown manifest fields.\n\nTo create a realistic preview or development database without copying a live\nSQLite file directly, define a new non-production target profile whose database\ndoes not exist, then run:\n\n```bash\nlineage-preview profile clone --source-db /path/to/source.sqlite \\\n  --target-profile team-preview --confirm-write --json\nnpm run lineage:dev -- profile clone --source-db /path/to/source.sqlite \\\n  --target-profile team-development --confirm-write --json\n```\n\nClone refuses production targets, existing target files, source/target path\nreuse, unverified code, and missing confirmation. It writes a local receipt\nunder the target profile directory after SQLite integrity and identity checks.\n\nWhen migrating a legacy installation whose production media still lives under\na development checkout, stage only database-referenced local files into the\nnew profile's nonexistent, dedicated asset root before binding or starting it:\n\n```bash\nlineage-stable profile clone-assets --source-asset-root /path/to/legacy/checkout \\\n  --target-profile team-production --confirm-write --json\n```\n\nAsset clone holds the target profile's writer lease, refuses reused or nested\nroots and escaping references, reserves the target without clobbering, verifies\nevery copied file by SHA-256, uses owner-only permissions, and writes a compact\nreceipt. Missing legacy references are counted rather than silently replaced;\nunreferenced checkout scratch files are not copied. Inspect that count before\nbinding the database. The source database and asset tree remain read-only.\n\nA named profile has one cross-process writer lease at\n`<profile-directory>/writer.lock`. The managed service holds that lease for its\nlifetime, so a second service or one-shot CLI writer is refused while it is\nrunning. A CLI data command may hold the same lease only while the service is\noffline. Lineage verifies lease ownership before opening a named-profile\ndatabase for writes and configures SQLite with WAL journaling and a five-second\nbusy timeout. If an owner was killed, the next writer may reclaim the lock only\nafter the recorded PID is no longer alive; malformed or mismatched lock metadata\nis left in place for manual inspection. `profile doctor` never acquires or\nmodifies the lease. The lease records both the immutable profile ID and manifest\nfingerprint; legacy-unbound access never acquires a writer lease.\n\nCheck the active runtime before making changes:\n\n```bash\nlineage-stable db info --profile team-production --json\nlineage-preview db info --profile team-preview --json\nnpm run lineage:dev -- db info --profile team-development --json\n```\n\nOffline `db info` reports the one-shot CLI under `process` with\n`role: \"command\"` and omits `service`; its PID is never service-health evidence.\nHTTP runtime responses from a launched app report `process.role: \"service\"` and\na separate `service` identity. `service.mode: \"managed\"` records the launch\ncontext only—managed health still requires the profile-scoped receipt and an\nexact `/api/runtime` code/profile/database/instance match.\n\nManaged services are profile-scoped. Their receipts record the launcher PID\nand start token, unique service instance, code root/fingerprint, profile and\ndatabase fingerprints, origin, and log path. Start waits for `/api/runtime` to\nmatch every field before reporting success or opening a browser. Status exits\nnonzero for a stale PID, unreachable service, current-code drift, wrong port,\nor any code/profile/database/instance mismatch:\n\n```bash\nmake start-prod-bg LINEAGE_PROD_PROFILE=team-production\nmake status-prod LINEAGE_PROD_PROFILE=team-production\nmake start-preview-bg LINEAGE_PREVIEW_PROFILE=team-preview\nmake start-dev-bg LINEAGE_DEV_PROFILE=team-development\n```\n\nUse the matching `status-*`, `logs-*`, and `stop-*` target with the same profile\nvariable. Stable and preview targets execute the service controller from that\nchannel's attested, content-addressed package root; only dev executes the\ncheckout controller. Stop signals only the process identity recorded for that profile.\nCheckout-backed `start-local-prod` and registration-only launchd/tmux status\npaths are intentionally not supported.\n\nThe app shows a persistent environment/profile badge, and Settings includes the\nprofile binding, code origin/root/fingerprint, channel, version, embedded Git\nrevision, schema markers, and SQLite path.\n\n## Agent Claims\n\nMutating agent writes use target-scoped claim tokens. Read-only inspection stays\navailable without a claim, but confirmed writes such as lineage `link-child` and\nclaimed content post attach/phase actions require a matching token when a target\nis already claimed.\n\nCreate a claim and copy the raw token at creation time:\n\n```bash\nlineage agent claim --project demo-project --scope lineage_workspace --target demo-project:lineage-workspace:<root-asset-id> --target-title \"TikTok hook lineage\" --agent-name \"Codex thread 123\" --ttl 20m --json\nexport LINEAGE_CLAIM_TOKEN='claim_abc.secret_xyz'\n```\n\nAgents can inspect the current lineage graph without a claim:\n\n```bash\nlineage agent graph --project demo-project --root <root-asset-id> --json\n```\n\nAgents can also export the current active workspace selection as a durable JSON\npacket for downstream tools such as GrowthOps:\n\n```bash\nlineage selection packet --project demo-project --channel linkedin --campaign 2026-07-launch \\\n  --db /absolute/path/to/lineage.sqlite --asset-root /absolute/path/to/asset-repo \\\n  --out ./lineage-selection-packet.json --json\n```\n\nThe packet is schema-versioned as `lineage.selection_packet.v1` and includes the\nworkspace/root binding, selected asset IDs, local media paths when known, S3 key\nmetadata when known, context labels/notes, warnings, and a stable `packet_id`.\nLineage only exports the packet. GrowthOps or another downstream tool remains\nresponsible for importing it, creating posts, checking media readiness, preparing\npublic URLs, scheduling, and recording placement receipts.\n\nVersion 1 remains the default for compatibility. Opt in to the current-attempt-\nbound contract with `--schema v2`:\n\n```bash\nlineage selection packet --project demo-project --schema v2 \\\n  --out ./lineage-selection-packet-v2.json --json\n```\n\nThe `lineage.selection_packet.v2` packet requires a verifiable current attempt\nand lowercase SHA-256 checksum for every selected asset. Its full\n`identity_sha256` and derived `packet_id` bind only the canonical semantic\nselection: project/product, workspace/root, context, ordered selected assets and\ntheir current attempts, and stable diagnostics. Timestamps, local paths, storage\ndetails, source metadata, generation job IDs, and human-readable warning/error\ntext stay in the envelope but do not change v2 identity.\n\nUse `--schema v3` before node-target-driven image generation. Version 3 retains\nthe verified v2 media identity and adds separate `current_geometry` and\n`next_output_targets` facts for every selected node. Its\n`selected_source_resolution_digest_sha256` covers the effective target\nresolution for the complete ordered selection:\n\n```bash\nlineage selection packet --project demo-project --root <root-asset-id> --schema v3 --json\n```\n\nKeep the claim fresh and pass it to mutating commands:\n\n```bash\nlineage agent heartbeat --claim-token \"$LINEAGE_CLAIM_TOKEN\" --json\nlineage link-child --project demo-project --root <root-asset-id> --child <child-asset-id> --summary \"Cleaner type\" --claim-token \"$LINEAGE_CLAIM_TOKEN\" --confirm-write --json\nlineage agent release --claim-token \"$LINEAGE_CLAIM_TOKEN\" --json\n```\n\n`lineage link-child` creates a new visible descendant in the lineage graph. Do\nnot use it for re-rolls. The coordinating agent must supply `--summary` with a\none- or two-word description of the change from parent to child.\n\nFor a coordinated multi-output generation job, plan from the selected lineage\nbases, copy `job.handoff.output_manifest` from the JSON response into a manifest\nfile, and fill every output's `file_path` and distinct one- or two-word\n`edge_summary` before import:\n\n```bash\nlineage generate image plan --project demo-project --prompt \"Create two variations\" --from-lineage-selection --count 2 --json\nlineage generate image inspect --project demo-project --job-id <job-id> --json\nlineage generate image import --project demo-project --job-id <job-id> --manifest .asset-scratch/generation-output-manifest.json --confirm-write --json\n```\n\nStatic-image output locks are discoverable offline; agents must resolve an\nexplicit delivery surface instead of guessing from a platform name:\n\n```bash\nlineage output-targets list --media image --json\nlineage output-targets resolve --query \"Instagram Feed portrait\" --json\nlineage output-targets defaults --project demo-project --root <root-asset-id> --json\nlineage output-targets node get --project demo-project --root <root-asset-id> --node <node-asset-id> --json\nlineage output-targets node set --project demo-project --root <root-asset-id> --node <node-asset-id> --destination instagram.story --confirm-write --json\nlineage output-targets node replace --project demo-project --root <root-asset-id> --node <node-asset-id> --expected-revision <revision> --destination instagram.feed_portrait --confirm-write --json\nlineage generate image plan --project demo-project --prompt \"Create persisted variants\" --from-lineage-selection --from-node-targets --expected-target-resolution-digest <selection-v3-digest> --variants-per-target 2 --json\nlineage generate image plan --project demo-project --prompt \"Create campaign variants\" --from-lineage-selection --destination instagram.feed_portrait --destination instagram.story --custom-dimensions 1200x1500 --variants-per-target 2 --json\nlineage generate image plan --project demo-project --prompt \"Create per-source variants\" --from-lineage-selection --target-map target-map.json --json\n```\n\nPlatform-only resolution returns selectable surfaces. Repeated destination and\ncustom-dimension flags are one-source shorthand; multiple selected sources\nrequire a complete `lineage.generation_target_map.v1` file. Use\n`--separate-destination` to prevent same-sized surfaces from consolidating.\nTarget-aware jobs reject legacy `--count` and `--per-base-count`; variant counts\ndefault to one per resolved group and can be set with `--variants-per-target` or\nper target in the map. Defaults are read-only to agents and the CLI.\n\nNode settings are sticky and geometry-only. `node set` refuses an existing\nsetting; a conflict requires the distinct `node replace` command with its exact\nrevision, and `node clear` also requires that revision before returning to the\ncurrent human canvas default. Plan-from-node requires the v3 selection digest\nand snapshots exact pixels, origin, revision/digests, and frozen surface\nmetadata before provider work. Later setting changes do not mutate the job.\nUse `generate image cancel --job-id <job-id> --confirm-write` to abandon a\nplanned job; cancelled jobs cannot import.\n\nNewly planned selection jobs require the versioned manifest and reject mixed\n`--manifest`, `--files`, or `--parent-files` input. Jobs already planned with\nthe legacy adapter may still finish with `--files` or `--parent-files`; those\nlegacy child edges remain unlabeled. Manifest retries are idempotent only while\nthe output mapping, original summary, and current agent provenance still match.\nAsset indexing precedes the receipt transaction, so a later transactional\nfailure can leave an indexed asset even though outputs, edges, receipt, job\nstatus, and selection reset roll back together.\n\nFor re-roll work, mark the target, have the agent plan/import one replacement\nattempt, and cancel only when the request should be abandoned:\n\n```bash\nlineage reroll mark --project demo-project --root <root-asset-id> --target <target-asset-id> --notes \"Fix distorted text\" --confirm-write --json\nlineage reroll list --project demo-project --root <root-asset-id> --json\nlineage reroll plan --project demo-project --root <root-asset-id> --target <target-asset-id> --prompt \"Regenerate with clean readable text\" --json\nlineage reroll import --project demo-project --job-id <job-id> --file <.asset-scratch-file> --confirm-write --json\nlineage reroll cancel --project demo-project --root <root-asset-id> --target <target-asset-id> --confirm-write --json\n```\n\n`lineage reroll import` updates the target node's current attempt and should\nnot add a visible child edge.\n\nLineage task queue commands expose the same work as explicit tasks that agents\ncan inspect, claim, start, comment on, and cancel:\n\n```bash\nlineage tasks list --project demo-project --root <root-asset-id> --json\nlineage tasks inspect --project demo-project --task <task-id> --json\nlineage tasks claim --project demo-project --task <task-id> --agent-name \"Task worker\" --json\nlineage tasks start --project demo-project --task <task-id> --claim-token \"$LINEAGE_CLAIM_TOKEN\" --json\nlineage tasks comment --project demo-project --task <task-id> --message \"Blocked on source art review.\" --json\nlineage tasks cancel --project demo-project --task <task-id> --confirm-write --override --json\nlineage tasks instructions --project demo-project --task <task-id> --instructions \"Preserve palette; replace unreadable text.\" --json\nlineage tasks override --project demo-project --task <task-id> --reason \"Human is reassigning the work.\" --instructions \"Use the updated brief.\" --json\n```\n\nThe app-created claim-aware handoff packet includes the same token export,\nheartbeat, inspect, and write commands. Raw claim tokens are not shown in the\nread-only Agents view.\n\nUse `project_channel` only for rare work that intentionally owns an entire\nproject/channel lane. Prefer `lineage_workspace` or `content_post` claims for\nnormal target-scoped agent work:\n\n```bash\nlineage agent claim --project demo-project --scope project_channel --target demo-project:channel:tiktok --channel tiktok --agent-name \"Channel owner\" --ttl 20m --json\n```\n\n## Codex Plugin\n\nThe versioned Codex plugin lives in `plugins/lineage-codex-plugin`. Install the\nplugin that matches the resolved `@mean-weasel/lineage` package version with:\n\n```bash\nnpx --yes @mean-weasel/lineage-plugin-installer@latest install --channel latest\nnpx --yes @mean-weasel/lineage-plugin-installer@latest doctor --channel latest\n```\n\nThe explicit installer `@latest` prevents `npx` from reusing an older installed\nor cached CLI. Both commands honor `CODEX_HOME`; pass `--codex-home <path>` to\nmake the target visible in the command and machine-readable result. `doctor` is\nread-only and fails unless the selected Codex home reports the matching plugin\ninstalled and enabled from the expected Lineage marketplace root.\nOn failure it distinguishes a missing or mismatched marketplace, missing or\ndisabled plugin, version mismatch, and invalid manifest, then prints an exact\n`--version`-pinned install/reinstall command for that Codex home.\n\nThe installer verifies the plugin artifact checksum and rejects plugin manifests\nwhose version or `lineage.version` does not exactly match the resolved Lineage\npackage version. It then creates a dedicated marketplace under the active\n`CODEX_HOME`, registers that marketplace with supported `codex plugin`\ncommands, installs the plugin, and verifies that Codex reports the exact version\nas installed and enabled. Use `--target-dir <path>` for a files-only install or\n`--dry-run` for a non-mutating activation plan. The plugin artifact and installer\npackage are released from this public repository.\n\nEvery Lineage release preflights the current operator skill, packs and checksums\nthe exact matching plugin, installs that artifact into a temporary Codex plugin\nroot, and attaches both files to the versioned GitHub release before npm publish\nor dist-tag mutation is allowed. Release status reports the local version lock\nand GitHub assets. The installed skill requires isolated channel launchers,\nnamed profiles, managed service identity status, and profile-only writes.\n\nThe checkout also exposes `.agents/plugins/marketplace.json`, which points only\nat the checkout plugin and marks it installed by default for new development\ntasks. That repo marketplace is separate from the installer-managed marketplace\nunder `CODEX_HOME`; restart Codex and use a brand-new task when validating either\nactivation path.\n\n## Local Development\n\nFor source development with hot reload:\n\n```bash\nnpm ci\nnpm run lineage:dev -- profile init --profile team-development --confirm-write --json\nnpm run dev -- --profile team-development\n```\n\nBoth source and bundled server starts require a named profile. The hot-reload\nlauncher doctors the profile before it binds a port, then derives the database,\nasset root, host, and port exclusively from that profile. Reuse an existing\ndevelopment profile by omitting the `profile init` line.\n\nFor the profile-safe CLI and managed development service, prepare the checkout\nonce, initialize a development profile, and start it:\n\n```bash\nmake install-dev\nnpm run lineage:dev -- profile init --profile team-development --confirm-write --json\nmake start-dev LINEAGE_DEV_PROFILE=team-development\n```\n\nManaged starts are idempotent: rerunning the same `start-*-bg` command returns\nsuccess only after the existing service again matches the exact code, profile,\ndatabase, origin, and service-instance receipt. Identity conflicts and unhealthy\nservices remain errors. If `profile init` reports that a profile already passes\ndoctor, reuse it with `start --profile <id>`; if it fails doctor, run the printed\n`profile doctor` command and inspect the profile directory before retrying.\n\n`make install-dev` installs the locked dependencies and builds the bundled\nserver required by `lineage-dev start`; no separate build command is needed.\nRun the verification gates with:\n\n```bash\nnpm run ci\nnpm run onboarding:smoke\nnpm run runtime:oracle\n```\n\n`npm run dev -- --profile <development-profile>` starts the local development server from source with Vite hot reload. `npm run ci` runs the full local verification gate.\n`npm run onboarding:smoke` uses only temporary runtime, profile, service, npm,\nmedia, and Codex roots to prove the installed stable launcher, profile init and\ndoctor, managed app, basic and rich seeds, CLI handoff, plugin activation, and\nplugin doctor as one first-user journey. It uses the real `codex` executable\nwhen one is on `PATH`; otherwise it uses a deterministic protocol harness so\nthe public CI gate remains portable. Run `npm run plugin:codex-smoke` on a\nmachine with Codex installed for real-CLI activation, reinstallation, cleanup,\nand rollback proof.\n`npm run runtime:oracle` creates three temporary code roots, profiles,\ndatabases, ports, and managed services, proves their identities are distinct\nwhile all are live, attacks every cross-channel and stale-identity boundary,\nand then cleans up.\n\n## Command Shortcuts\n\nThe root `Makefile` provides memorable wrappers for common setup, startup, and\nverification commands. Run `make` or `make help` to list the available targets.\n`make install-prod` and `make install-preview` bootstrap the published\n`@mean-weasel/lineage@latest` package under the isolated runtime root before\ncreating the channel runtime and its launchers, so they work from a fresh clone\nwithout checkout build artifacts or overwriting an existing channel launcher.\n\n```bash\nmake install-prod\nmake install-plugin-prod\nmake start-prod LINEAGE_PROD_PROFILE=team-production\nmake start-prod-bg LINEAGE_PROD_PROFILE=team-production\nmake status-prod LINEAGE_PROD_PROFILE=team-production\nmake check\nmake smoke\n```\n\nThe Makefile is only a convenience layer. npm scripts, the packaged CLIs, and\nGitHub release workflows remain the source of truth for build, test, and release\nbehavior.\n\n## Release Checks\n\nUse `next` for candidate builds and `latest` for the stable public channel. Check the current local, npm, and workflow state with:\n\n```bash\nnpm run release:status\n```\n\nFor local release validation:\n\n```bash\nnpm run release:dry-run -- --tag next\nnpm run release:claim-smoke -- --package @mean-weasel/lineage@next\nnpm run release:dry-run -- --tag latest\nnpm run release:policy:test\n```\n\nThe release script verifies package metadata, changelog version coverage, public-readiness scans, install smoke, browser smoke, audit, package contents, and the version-locked Codex plugin before publishing. The GitHub plugin artifact and checksum must exist before npm publish. GitHub Actions runs CI on pull requests and `main`; publishing is controlled by a new immutable annotated release tag.\n\nThe release tag is the public release authority:\n\n- Merge the exact root, lockfile, plugin package, plugin manifest, `lineage.version`, and changelog version to `main` and require CI to pass.\n- Create a new annotated `v<package.json version>` tag on that reviewed `main` commit and push the tag once. Never move, replace, or reuse a release tag.\n- A stable SemVer tag such as `v0.2.0` creates a full GitHub Release and publishes the same npm version to `latest`.\n- A prerelease SemVer tag such as `v0.2.0-rc.1` creates a GitHub prerelease and publishes the same npm version to `next`.\n\nThe tag-triggered Release workflow rejects lightweight tags, tags that do not point to a commit already on `main`, mismatched version metadata, and missing changelog sections. It builds and verifies the plugin tarball and checksum on the matching GitHub Release before publishing npm, then verifies the GitHub release mode, npm dist-tag, tag commit, and assets. To dogfood before a stable release, publish an explicit prerelease version such as `0.2.0-rc.1`; do not publish a stable version to `next` and later reinterpret the same version.\n\n## Demo Fixture\n\nSource checkouts and installed packages include a synthetic public demo catalog at `fixtures/demo-project/assets/catalog.json`. When `demo-project/assets/catalog.json` does not exist in the repo root, Lineage uses that fixture so the demo project can load without private storage or customer data.\n\nIf you create a real `demo-project/assets/catalog.json`, that root project catalog overrides the packaged fixture. The fixture keeps S3-shaped metadata for realistic catalog structure, but default previews are generated local SVG data URLs and do not call storage.\n\nLineage also includes a lightweight Swissifier rich-demo manifest at `fixtures/demo-project/lineage/swissifier-rich-demo.json`. The manifest stores only synthetic metadata, checksums, graph edges, layout positions, and selected next-variation bases. It does not include local SQLite state.\n\nThe package intentionally includes three public-safe synthetic Swissifier re-roll PNG fixtures in `fixtures/demo-project/lineage/swissifier-rerolls/`. They are the only generated PNG media committed with the rich demo, and each file is pinned in the manifest by filename, SHA-256, size, content type, prompt, and demo generation job id so public-readiness and package-smoke checks can prove the fixture is hermetic.\n\nTo hydrate the Swissifier demo with real images, expand **Demo/QA** in the\nCanvas context panel and use **Download rich images**. Lineage downloads\n`swissifier-rich-demo-v1.tar.gz` from the [v0.1.2 GitHub\nrelease](https://github.com/mean-weasel/lineage/releases/tag/v0.1.2), verifies\nthe archive checksum, safely unpacks the PNGs into local scratch storage, and\nthen verifies each PNG checksum before loading the rich demo.\n\nFuture rich-demo media packs should follow the same split unless a small synthetic media exception is explicitly documented and manifest-pinned like the packaged re-roll PNGs: commit lightweight manifest changes, attach generated media archives to the GitHub release for the app version that first references them, then pin the public release URL, archive size, and SHA-256 in the manifest. If a later app release reuses an unchanged media pack, keep the manifest pointed at the original release asset instead of duplicating the archive.\n\nFor manual verification or offline restore, the expected archive checksum is:\n\n```sh\nshasum -a 256 swissifier-rich-demo-v1.tar.gz\n```\n\n`24edc5307d0932ddc8a151c6a8c1001a08c45075e3ae198082038c44519be0de`\n\nThe previous manual path remains available: unpack the media pack yourself, set `LINEAGE_SWISSIFIER_MEDIA_DIR` to that folder, then use the Demo seed menu to restore media and load Swissifier.\n\n## Data And Privacy\n\nLineage stores local workspace state in a SQLite database on your machine. Public fixtures are synthetic and must not contain private names, credentials, presigned URLs, real customer content, private campaign data, or real media. Keep private catalogs and media outside public package fixtures.\n","readmeFilename":"README.md"}