{"_id":"openlore","_rev":"40-bf348f2ec1d18652124669dea69d8a1c","name":"openlore","dist-tags":{"latest":"3.6.0"},"versions":{"2.0.0":{"name":"openlore","version":"2.0.0","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.0","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"0d3bf9f6f5dfe60b40d384acd96723812b936402","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.0.tgz","fileCount":634,"integrity":"sha512-73k1ScwsubC5ueSJn4dZ8uB4uXsoZzfLHRFy0U8cOA+hBJfT7UV1ipgDuoP3l160QCfEClt3v2TvFdL9wugkqQ==","signatures":[{"sig":"MEUCIAMPpPH0ZM70KKQLI5hZwJF3opHtEnxzHxO0M4tHhFYoAiEAtmZpYDpoVqlbHEqcWDODhTI9DGi++hXP9BqNTvKFcVc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4612950},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"4cc20cab36135e2bccc3b9dda1a971002a1a36b3","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","typecheck":"tsc --noEmit","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"claygood","email":"hi@claygood.com"},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.11.0","description":"Reverse-engineer OpenSpec specifications from existing codebases","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ora":"^8.1.1","glob":"^11.0.0","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-python":"^0.23.6","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-swift":"^0.7.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.0_1778586351908_0.6515374680708756","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"openlore","version":"2.0.1","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.1","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"d728a09fd6bca63075e1329d1085b2ac9adc50b9","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.1.tgz","fileCount":646,"integrity":"sha512-QyL+6TCA18IP3xhy7mdjeKEFMAHdHnp3a0iRc4T6kGY1U924m94uDFesc3e0R2njQ2qmtdGgDRjmYLR36mTh5w==","signatures":[{"sig":"MEUCIQCRcNPnwGkc2rgBWOlCYOxbezpGZzWwtcrErUajeRC6jQIgFxIBR8BpWW3yhtV7O/KckZojT55NdXx4JROEwxbzPnw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4704733},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"814f66de9ed70ac77d18cc10380fb8be61f8035a","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","typecheck":"tsc --noEmit","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"claygood","email":"hi@claygood.com"},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.12.1","description":"Reverse-engineer OpenSpec specifications from existing codebases","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ora":"^8.1.1","glob":"^11.0.0","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-python":"^0.23.6","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-swift":"^0.7.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.1_1779056958434_0.8389821287723038","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"openlore","version":"2.0.2","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.2","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"421b709411959dc369fbcba5b57b760b5cc9996b","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.2.tgz","fileCount":715,"integrity":"sha512-8i5qmhn/beGjN7FwD6uLBSK97TGHMECD47MOSBus+iIDJJnkwdMgHhbr0woUXJgGFJgAWp09zW+AzX2YRXeb1g==","signatures":[{"sig":"MEUCICIA1bfNYvSLLM1HNOSDr9zLInx05CTLvle/9C/nctS0AiEA+27JdnzkjtZicXcJMGaoK1uh3u/BgBQ0OG+RoHwY+m8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4866892},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"bc9bc2c1f42f7c85c30add7a651257999f3eb360","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","typecheck":"tsc --noEmit","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.12.1","description":"Reverse-engineer OpenSpec specifications from existing codebases","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ora":"^8.1.1","glob":"^11.0.0","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-python":"^0.23.6","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-swift":"^0.7.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.2_1779834283646_0.11754816138294788","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"openlore","version":"2.0.3","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.3","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"f56d53d8554cefac5a63097a49515b90e70dcd31","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.3.tgz","fileCount":765,"integrity":"sha512-bzRH6Q6G2VaY+WEpppPmmKAqQgDWwQVic7sIJZuiuB+Ib2eHQ2tu7P871pU83wmHmEhUaW9VjBXBdics0NsByw==","signatures":[{"sig":"MEUCIBOZq5AfGOSJYNUF17lPBs9TN++SJgxRWQj3hcZ9rUVGAiEAusPKraxBQ0ZPifhsWsXEafIIuDleA/Kr9tSiUs3MuF4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5019520},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"3608b097ef7be7987be2cf95136c9989f2bf0dd6","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","typecheck":"tsc --noEmit","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Reverse-engineer OpenSpec specifications from existing codebases","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^11.0.0","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","protobufjs":"^8.4.2","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-python":"^0.23.6","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-swift":"^0.7.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.3_1779904809228_0.6696124027389738","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"openlore","version":"2.0.4","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.4","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"648601f6c5a043ba5f946a39e609b6b752f4f9e9","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.4.tgz","fileCount":813,"integrity":"sha512-DYXI1iay/zHo/RKf9cWQnwuSpS0op0RmUmJdRbxejRDH1srkoxYbsr5uk2SUaZrIXZfFC0lDuMOMApl2RYqDgQ==","signatures":[{"sig":"MEYCIQDWR4pO2l753FYjY/xWFw7upgJEGLJgJOozQIe63JV2swIhALuIL752G+I8c8oaoGjQL75qJI+mJBmdGZTvtUSiMyrU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5286291},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"787483b819ca2611940cb68ed31c92f4d6fc109d","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","typecheck":"tsc --noEmit","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.12.1","description":"Reverse-engineer OpenSpec specifications from existing codebases","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ora":"^8.1.1","glob":"^11.0.0","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","protobufjs":"^8.4.2","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","web-tree-sitter":"0.25.0","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-scala":"^0.24.0","tree-sitter-wasms":"0.1.13","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.23.1","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-swift":"^0.7.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.4_1779916532066_0.9478712108907252","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"openlore","version":"2.0.5","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.5","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"da6eff18a8679a04734e39f8f86b0856dc4b805b","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.5.tgz","fileCount":817,"integrity":"sha512-IhGZlEVnDrfjDBPcngJf2AC9iJvPJLR/mHdxrFVopvn9vsgytyeSyKhH4xs4MWvNbNNbIbmRdqUy2A7flZYGUw==","signatures":[{"sig":"MEYCIQDNLafzFTGMDYWecN8aVNY3q8Qj6RA8FFB6G33bxZC17AIhAOb2T7xmalqM0ci2m4Q8c7OKcbFXVmenJoOX2bx0Mh6C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5309059},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"e7aebd5d49dfb8a1f04167cb7e25b061207c77f6","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","typecheck":"tsc --noEmit","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Reverse-engineer OpenSpec specifications from existing codebases","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^11.0.0","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","protobufjs":"^8.4.2","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","web-tree-sitter":"0.25.0","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-scala":"^0.24.0","tree-sitter-wasms":"0.1.13","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.23.1","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-swift":"^0.7.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.5_1780061409697_0.1436570137640829","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"openlore","version":"2.0.6","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.6","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"6c3d6ecb52be2119bb57844347b9e2de7a93338e","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.6.tgz","fileCount":817,"integrity":"sha512-iQwmlsSbXAQfBkYZUUaVGHyAPSB8cLJ466C2g8KJGaZpH56NJ9IlOuOgj/NzbPb31u+DhXJEUTQuhSbDsMB66g==","signatures":[{"sig":"MEQCIDB1XzWl22ajpiHVOd0wHmv0iM9RR/btL7j/pnTZoyjLAiBSB5RaeZKMvdFWPBOoYmxi7FA39PHwVex8IVrqumKfZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5359562},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"7e0c97eb5257fb7ea80642cee6b0dfdfd21ca39c","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","typecheck":"tsc --noEmit","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Reverse-engineer OpenSpec specifications from existing codebases","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^11.0.0","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","protobufjs":"^8.4.2","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","web-tree-sitter":"0.25.0","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-scala":"^0.24.0","tree-sitter-wasms":"0.1.13","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.23.1","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-swift":"^0.7.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.6_1780339916729_0.46955586875198696","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"openlore","version":"2.0.7","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.7","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"620e30d75915824e5bfc881e4e5dcec331a14993","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.7.tgz","fileCount":821,"integrity":"sha512-bsQre+mqvzlsCwFcZQSaZ6sHRXMfdsKsSjQs0abDYlKswR3WXx3scis5shAJZmcseuAo8gCneeXtWqwxcADRoA==","signatures":[{"sig":"MEQCIH6+XgMPYNuPPH9WbOGtJrZdUSN32TjxloEj3UxrHv4SAiBa9QCHoDhkJq+RjWR52bQdu3fwFmtG1QL88fdpMoFvig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5372544},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"3e2ac6e1d8e59e763a806086f151de36002c0925","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Reverse-engineer OpenSpec specifications from existing codebases","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^11.0.0","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","protobufjs":"^8.4.2","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","web-tree-sitter":"0.25.0","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-scala":"^0.24.0","tree-sitter-wasms":"0.1.13","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.23.1","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-swift":"^0.7.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.7_1780351447344_0.33312354172374836","host":"s3://npm-registry-packages-npm-production"}},"2.0.8":{"name":"openlore","version":"2.0.8","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.8","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"7156a2f1ce9ac1bbde01df70ae23dc389c998eff","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.8.tgz","fileCount":869,"integrity":"sha512-qombnpoMaHqpEuddqp0Ci+wxMbqW5vejdc9p1TR7T1hv/DNg/+lrNbBFwv1S6pmhcij6sEQj0ZWuQruTuTjmLQ==","signatures":[{"sig":"MEUCIQDksQd9YQdShSm3cWNapeNacp9errv5eRpGP0RsrxhifAIgd0l/7fCQD6OXga6jmvvvrFulbQJJd4+OJA1TnuBMuv8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5674606},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"7795a66b4adda9834a27d35e93211db044ad5b7d","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Reverse-engineer OpenSpec specifications from existing codebases","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^11.0.0","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","protobufjs":"^8.4.2","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","web-tree-sitter":"0.25.0","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","tree-sitter-python":"^0.23.6","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-c":"^0.23.6","tree-sitter-php":"^0.23.12","tree-sitter-bash":"^0.23.3","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-c-sharp":"^0.23.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.8_1780439368910_0.30626548618735505","host":"s3://npm-registry-packages-npm-production"}},"2.0.9":{"name":"openlore","version":"2.0.9","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.9","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"ac6711716e252f043efee9e9cbc4c0b1fe409770","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.9.tgz","fileCount":889,"integrity":"sha512-SXKGZDQC3ZYNy8V1glY/nltcYTIBoOx0Zjqs34JVHqAi+P1CtIn+xTlDz9UUOnnKD41wucGm48i+rr7YqJwzsg==","signatures":[{"sig":"MEUCIQDqwHlcM7vexiKt5VYRDlZUzueSSQX7hw4JYKJxBUwv4QIgO98EmCgIrFq2Oq6zpc3U7e99y2oGT2yJ4Ixy9Z/bnew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5765489},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"12d8f03424cd972583859139c07cf9311eb75551","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Reverse-engineer OpenSpec specifications from existing codebases","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^11.0.0","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","protobufjs":"^8.4.2","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","web-tree-sitter":"0.25.0","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","tree-sitter-python":"^0.23.6","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-c":"^0.23.6","tree-sitter-php":"^0.23.12","tree-sitter-bash":"^0.23.3","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-c-sharp":"^0.23.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.9_1780517353801_0.6551672274106866","host":"s3://npm-registry-packages-npm-production"}},"2.0.10":{"name":"openlore","version":"2.0.10","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.10","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"1ef6809d0d7eab7a2a581086b97036eabb7a737f","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.10.tgz","fileCount":889,"integrity":"sha512-Smh7wZ5ASibURYRi7pGc12X8hgtNlXiUfJ139aX/oMajI/8FJBucmQJ/3m3SuheqWHnIR8K/oJXDSKstoDnoXA==","signatures":[{"sig":"MEQCIFE6e1IzBX9uVyL2KQtOisEYB3R/fk0Ve5gvPlIZf602AiAHTzfeM3r9UDkNwyvIaZYiiSGBnx1xM5GWvDF8i3r5XQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5768130},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"070a4c4bf93f43ff4f17837a3185a075dedc7bac","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Reverse-engineer OpenSpec specifications from existing codebases","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^11.0.0","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","protobufjs":"^8.4.2","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","web-tree-sitter":"0.25.0","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","tree-sitter-python":"^0.23.6","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-c":"^0.23.6","tree-sitter-php":"^0.23.12","tree-sitter-bash":"^0.23.3","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-c-sharp":"^0.23.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.10_1780624935026_0.004088102333026367","host":"s3://npm-registry-packages-npm-production"}},"2.0.11":{"name":"openlore","version":"2.0.11","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.11","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"eb86d6548cbca0e9e523b7cdefd294ddfb0bf94d","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.11.tgz","fileCount":903,"integrity":"sha512-5SSV9XB82b/YHu6h+ICH3N1kD0I+GsCQw+OB8p4YiAaqQyO4CWBbnZg718z9JHst4llDtLxZsnWVDNRnOWkFLg==","signatures":[{"sig":"MEYCIQCO9F4BXNe+2qfCDxdT9BmnPCNO3kTlfTapiY4HA9BW4gIhAKHXr74X3MNRvBpEXTaMH8D7U1tQwH7Ca6vOSVzhk8qV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5833703},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"27ebaa6d1e6f17019a958da2ab1b99609231bbd7","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Reverse-engineer OpenSpec specifications from existing codebases","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^11.0.0","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","protobufjs":"^8.4.2","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","web-tree-sitter":"0.25.0","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","tree-sitter-python":"^0.23.6","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-c":"^0.23.6","tree-sitter-php":"^0.23.12","tree-sitter-bash":"^0.23.3","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-c-sharp":"^0.23.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.11_1780790207233_0.05854666712133505","host":"s3://npm-registry-packages-npm-production"}},"2.0.12":{"name":"openlore","version":"2.0.12","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.12","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"d503107ca59598f7ea32d5483433c7e0d4758620","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.12.tgz","fileCount":917,"integrity":"sha512-as0HpJK1Uywje15ka3ejKSfSHZY/O4gENdx2EKaJ+3S5wc8bz6v0w+Gvd8SSqlQQyCUj5E8jOtu79/IhmlaBYw==","signatures":[{"sig":"MEUCIA1YNFGStblF/x5viE60whwMlcRAAyj/GFF5SWKfHgSzAiEAtmNm7BuP7mkMD+1hFBzE02hR5ofyrNBlEuGseOBgRRo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5913318},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"67d8cbfdb4950db0d06dc1afe5d4387c88332656","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Reverse-engineer OpenSpec specifications from existing codebases","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^11.0.0","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","protobufjs":"^8.4.2","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","web-tree-sitter":"0.25.0","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","tree-sitter-python":"^0.23.6","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","typebox":"1.1.38","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@earendil-works/pi-ai":"^0.78.1","@earendil-works/pi-coding-agent":"^0.78.1"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-c":"^0.23.6","tree-sitter-php":"^0.23.12","tree-sitter-bash":"^0.23.3","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-c-sharp":"^0.23.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.12_1780859302987_0.168533484771205","host":"s3://npm-registry-packages-npm-production"}},"2.0.13":{"name":"openlore","version":"2.0.13","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.13","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"72ac559c819b1b4ccd46245309fca110446afcf0","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.13.tgz","fileCount":917,"integrity":"sha512-CHmeXqBmMhjnEnQ2liPizKFkptOng9z19chWhqNzhMNzagMddLwU/L74mHuCZbzFVYqhqhNePXKPdM//J/C31w==","signatures":[{"sig":"MEUCIQCZ+fjGMkq7SP9Tcf1VbfB9fN/fkbargEKqXDyCuoB+ZAIgCGbGooJ/0DNFPcFGJKxnELFtHfdBv3nA4OVXwriOyOE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5913519},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"05d49a64f1a9e90af858029de812d9bc7641cd4d","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^13.0.6","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","protobufjs":"^8.4.2","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","web-tree-sitter":"0.25.0","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","tree-sitter-python":"^0.23.6","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","typebox":"1.1.38","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@earendil-works/pi-ai":"^0.78.1","@earendil-works/pi-coding-agent":"^0.78.1"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-c":"^0.23.6","tree-sitter-php":"^0.23.12","tree-sitter-bash":"^0.23.3","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-c-sharp":"^0.23.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.13_1780863647766_0.9475534748092533","host":"s3://npm-registry-packages-npm-production"}},"2.0.14":{"name":"openlore","version":"2.0.14","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.14","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"df9a6c1e706d226618c4b3729616f50552ab2f01","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.14.tgz","fileCount":941,"integrity":"sha512-M0jTeRkLBAmGA5HOVpMPGLZs3ag3E5I+4a1QxoWY1lDqzAi/86y8RxN0SFlAb8V8bu2NwEYPEIUfiImMQFC5GA==","signatures":[{"sig":"MEUCIQDIb9xOC63kU6iJFGvCdI3k4+sI/agaESknnAwLx7ZBVAIgH77hIU0d5saQOl/afVUY/+2ezsdQlkqYJ+b8kM7v8qk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6025792},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"dbdae91387ef4590c26c95826f4de965237411ba","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^13.0.6","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","protobufjs":"^8.4.2","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","web-tree-sitter":"0.25.0","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","tree-sitter-python":"^0.23.6","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","typebox":"1.1.38","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@earendil-works/pi-ai":"^0.79.0","@earendil-works/pi-coding-agent":"^0.79.0"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-c":"^0.23.6","tree-sitter-php":"^0.23.12","tree-sitter-bash":"^0.23.3","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-c-sharp":"^0.23.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.14_1780969083509_0.8439221339540415","host":"s3://npm-registry-packages-npm-production"}},"2.0.15":{"name":"openlore","version":"2.0.15","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.15","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"a49bb6abdfb5b743cf77df3756040ccedf0aeb79","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.15.tgz","fileCount":965,"integrity":"sha512-Ie1DEvUCzospbxMLYwQLzBW1b2A5PVRNeloW4n/u1i3buqC/GW/2frbbAYTHjVx2DGE645yX+NkNGCJexZ7mqw==","signatures":[{"sig":"MEQCIE029MjjXmn58JhfoHQ0XRVs73+MzJfoUetsAyX005ZjAiAn7pcud6iqALHM6XCY2mkYDyRIT003gUPoKSQRZQzuzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6104046},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"b5e8238a52ca37f656250f23bb0dddaf1a4efa52","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^13.0.6","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","protobufjs":"^8.4.2","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","web-tree-sitter":"0.25.0","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","tree-sitter-python":"^0.23.6","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","typebox":"1.1.38","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@earendil-works/pi-ai":"^0.79.0","@earendil-works/pi-coding-agent":"^0.79.0"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-c":"^0.23.6","tree-sitter-php":"^0.23.12","tree-sitter-bash":"^0.23.3","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-c-sharp":"^0.23.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.15_1781053498711_0.7474229464356568","host":"s3://npm-registry-packages-npm-production"}},"2.0.16":{"name":"openlore","version":"2.0.16","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.16","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"ab38d7b4746d48406efb1a0ed3388ea77e0d8e59","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.16.tgz","fileCount":973,"integrity":"sha512-FNhIFD0wejI0VLruqLSyjsWtEBkKBVJsUlFtSLoUDhemQ+tfE0l0joTtaSS7BJtLj2sdewzEueP7qHpeP+uqQw==","signatures":[{"sig":"MEUCIQCb8MeZN2x6FcQKL8UqzQdIX9r3MHB4Pm7edVGa6pvOugIgLae6kFlsW03uehFQ8YWhQ6cbWl4rtB4BULATEWnSlcc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6132795},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"d5dcc34bfaf6e268945a42a2582b7f47ecb09a77","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^13.0.6","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","protobufjs":"^8.4.2","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","web-tree-sitter":"0.25.0","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","tree-sitter-python":"^0.23.6","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","typebox":"1.1.38","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@earendil-works/pi-ai":"^0.79.0","@earendil-works/pi-coding-agent":"^0.79.0"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-c":"^0.23.6","tree-sitter-php":"^0.23.12","tree-sitter-bash":"^0.23.3","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-c-sharp":"^0.23.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.16_1781091381202_0.2629863606933409","host":"s3://npm-registry-packages-npm-production"}},"2.0.17":{"name":"openlore","version":"2.0.17","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.17","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"d8a120ea946794a1788e0bf211a8dad9f4c5e5fa","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.17.tgz","fileCount":1002,"integrity":"sha512-3F2njCw+ooL0ZuwqzTfe20S9wYIWM0HUcEbrzkHemTgtq1Ft3LwIBoUlelZn+L1PjaZ0SpIzq2vt/r0SKyA+Kw==","signatures":[{"sig":"MEUCIQDG0tLcQ2zt9yfxaNfnmGQdIk4nctU1MyuQ7WcdZKtd2wIgFG2Ic05C/LU6Mw2/99p07CGIEFzN8LEkrSUFS7mML1M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6429282},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"8aff8d2d69ec85b2fd835ccbeda8c9ebea2bd730","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^13.0.6","vite":"^7.1.3","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","protobufjs":"^8.4.2","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","web-tree-sitter":"0.25.0","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","tree-sitter-python":"^0.23.6","@vitejs/plugin-react":"^5.0.2","tree-sitter-typescript":"^0.23.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","typebox":"1.1.38","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@earendil-works/pi-ai":"^0.79.0","@earendil-works/pi-coding-agent":"^0.79.0"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"tree-sitter-c":"^0.23.6","tree-sitter-php":"^0.23.12","tree-sitter-bash":"^0.23.3","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-c-sharp":"^0.23.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.17_1781232404986_0.9644315634962097","host":"s3://npm-registry-packages-npm-production"}},"2.0.18":{"name":"openlore","version":"2.0.18","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.18","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"9951fb0d2308a7b0ba639130aa1e107ba295b10e","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.18.tgz","fileCount":1006,"integrity":"sha512-j+pdtVtdREeFugxVWGUn8SeoHkyCKVGBbsX2zuTZQxZkcBOU00XKTMed3QYdaiVRCq0z5wM1IJ8vbFdbXY52cA==","signatures":[{"sig":"MEUCIEiB9maZVJkVdOz1sGaZfIKkHrtyBtkalbMgg5Uds5TnAiEA3ohbKAg5YC2JdWV/whgFasOoLUB+AgAS3ELYWwC8rfU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6648245},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"c63daa02eb4ff7037988529316ae6b7b54c9e9b2","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub"},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^13.0.6","vite":"^8.0.16","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","web-tree-sitter":"0.25.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","@vitejs/plugin-react":"^5.0.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","typebox":"1.1.38","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@earendil-works/pi-ai":"^0.79.0","@earendil-works/pi-coding-agent":"^0.79.0"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"protobufjs":"^8.4.2","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.23.1","tree-sitter-typescript":"^0.23.2"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.18_1781399789114_0.39241196353985663","host":"s3://npm-registry-packages-npm-production"}},"2.0.19":{"name":"openlore","version":"2.0.19","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.0.19","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"14cc870569af2c59b1050e9b6a6b906519f01361","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.0.19.tgz","fileCount":1010,"integrity":"sha512-P74mkq7sgrwebbGUYDCd12ellLMytbO6OHgGl+dspTluwogdSrRA09m49gVsFAJC1frEKOE0cq1yYVo1aJr4Mg==","signatures":[{"sig":"MEUCIG6aN6+5weqK8FjHEwdYLL9WLkrV0yGAzeK9AqE0Ysw7AiEAx3mpyCLjNJ83FMsPWxTL0F8+b5pvF1WkEEsXaVRbVS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.0.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6724695},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"a504e80a747e5e88aa97ff1d877a67ba4ee708a4","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"ws":"^8.21.0","hono":"^4.12.25","js-yaml":"^4.2.0","@google/genai":{"protobufjs":"^7.6.4"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","@google/genai":{"protobufjs":"^7.6.4"}}},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^13.0.6","vite":"^8.0.16","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","jsonc-parser":"^3.3.1","web-tree-sitter":"0.25.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","@vitejs/plugin-react":"^5.0.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","typebox":"1.1.38","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@earendil-works/pi-ai":"^0.79.4","@earendil-works/pi-coding-agent":"^0.79.4"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"protobufjs":"^8.6.3","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.23.1","tree-sitter-typescript":"^0.23.2"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.0.19_1781642445727_0.534744641879181","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"openlore","version":"2.1.0","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.1.0","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"51dcdd3eafa3b13a4fa2a8ce2ee21630fe3ff1f4","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.1.0.tgz","fileCount":1034,"integrity":"sha512-eBYo6QJRLOpyVjbJlSOLgtW1TTdyf/En9inpzx2B4XMmxqJvTt3RRQQ9VwVnASPzuEqQ3hwxRnNu2gB1jLEieQ==","signatures":[{"sig":"MEYCIQDxr/egGSgHlBEFBWrTGXlv6QQHQOtKxs0u0g7+fVlizgIhAPt+PuDBBfW1gfhN9dfXemyRHO9KmBUNVlzPxvbu8yNW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6949805},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"8010e70ece9422880babdac07e552304bdce8a83","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"ws":"^8.21.0","hono":"^4.12.25","undici":"^8.5.0","js-yaml":"^4.2.0","@google/genai":{"protobufjs":"^7.6.4"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.5.0","@google/genai":{"protobufjs":"^7.6.4"}}},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^13.0.6","vite":"^8.0.16","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","jsonc-parser":"^3.3.1","web-tree-sitter":"0.25.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","@vitejs/plugin-react":"^5.0.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","typebox":"1.1.38","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@earendil-works/pi-ai":"^0.79.4","@earendil-works/pi-tui":"^0.79.4","@earendil-works/pi-coding-agent":"^0.79.4"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"protobufjs":"^8.6.3","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.23.1","tree-sitter-typescript":"^0.23.2"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.1.0_1781804432930_0.9133752052337705","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"openlore","version":"2.1.1","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.1.1","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"850bc6ea460c4aad3c9aeb2981d02a4be01986c4","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.1.1.tgz","fileCount":1086,"integrity":"sha512-OQrl7qJVB8gePigiJLU3ZTdbubtNxEDWjeLcL3r9Hb1o7IaQkrp18xguv8DrYfVPv2uut+Qe/dQYNcAogavRNw==","signatures":[{"sig":"MEYCIQD45Kd+mreVEuq3PTlSQxtSWBT0tYZKdwB9n7+zoEIOYgIhAIePAksd5PxWU6JGKRG6G/EI4Rr3UyeWWcatsrFZnANs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7289357},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"b119afbf4cf42d8233310c3f79d2ac936abeb40d","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"ws":"^8.21.0","hono":"^4.12.25","undici":"^8.5.0","js-yaml":"^4.2.0","@google/genai":{"protobufjs":"^7.6.4"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.5.0","@google/genai":{"protobufjs":"^7.6.4"}}},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^13.0.6","vite":"^8.0.16","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","jsonc-parser":"^3.3.1","web-tree-sitter":"0.25.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","@vitejs/plugin-react":"^5.0.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","typebox":"1.1.38","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@earendil-works/pi-ai":"^0.79.4","@earendil-works/pi-tui":"^0.79.4","@earendil-works/pi-coding-agent":"^0.79.4"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"protobufjs":"^8.6.3","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.23.1","tree-sitter-typescript":"^0.23.2"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.1.1_1781913038883_0.11697583319633886","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"openlore","version":"2.1.2","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.1.2","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"ac245a4ba7b1baff409088c5d8faafdd37180fdc","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.1.2.tgz","fileCount":1094,"integrity":"sha512-koQBJUkJ3XU4akhXsZ3lOk55IjzKXilAHlt3d6BE4iqDWcCMW4R2gG/LHjp62/9ERo9BmXRLx78V1PIaTPDVIw==","signatures":[{"sig":"MEYCIQCHkLuPJJ8TP04EM5K5kSarQkZPy4igfVuHpp2QTj3pMQIhANL04QWyvrNAcHL9mIzK8FDo1rNjw2IT/C1bgdr1NCYa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7340632},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"c927dc280ee7b308e333ebb9c23c8152df32ba8b","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"ws":"^8.21.0","hono":"^4.12.25","undici":"^8.5.0","js-yaml":"^4.2.0","@google/genai":{"protobufjs":"^7.6.4"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.5.0","@google/genai":{"protobufjs":"^7.6.4"}}},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^13.0.6","vite":"^8.0.16","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","jsonc-parser":"^3.3.1","web-tree-sitter":"0.25.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","@vitejs/plugin-react":"^5.0.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","typebox":"1.1.38","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@earendil-works/pi-ai":"^0.79.4","@earendil-works/pi-tui":"^0.79.4","@earendil-works/pi-coding-agent":"^0.79.4"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"protobufjs":"^8.6.3","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.23.1","tree-sitter-typescript":"^0.23.2"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.1.2_1781987375614_0.48734541347993177","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"openlore","version":"2.1.3","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.1.3","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"588f38508ec50d4c8285d94de9b3bac0e15b1762","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.1.3.tgz","fileCount":1174,"integrity":"sha512-FJHZGyaIWEAd2Ti2zPP6nYemYTdEeRK7WTf/anthQXVbDxXzPMEMFmnQs9geBZDyCyxt7SkUzs/Jh+KAmzoeHw==","signatures":[{"sig":"MEUCIQDjebSJDi2giudb7h0RjNdJ6/rfBpJvyJ3Lokk0MkAxKgIgTdvXk9hWFZHYWGGWK2UR5ICc9ll0WgKUZo0wZGycd2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7881000},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"eb9c2d3d68918d32371866fa269f54cad3aa47b4","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"overrides":{"ws":"^8.21.0","hono":"^4.12.25","undici":"^8.5.0","js-yaml":"^4.2.0","@google/genai":{"protobufjs":"^7.6.4"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.5.0","@google/genai":{"protobufjs":"^7.6.4"}}},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ora":"^8.1.1","glob":"^13.0.6","vite":"^8.0.16","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","jsonc-parser":"^3.3.1","web-tree-sitter":"0.25.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","@vitejs/plugin-react":"^5.0.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","typebox":"1.1.38","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@earendil-works/pi-ai":"^0.79.4","@earendil-works/pi-tui":"^0.79.4","@earendil-works/pi-coding-agent":"^0.79.4"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"protobufjs":"^8.6.3","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.23.1","tree-sitter-typescript":"^0.23.2"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.1.3_1782098190535_0.010774129045179492","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"openlore","version":"2.1.4","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.1.4","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"05bfa870f2a87d9f853b40fb038233ea480d790a","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.1.4.tgz","fileCount":1416,"integrity":"sha512-ge4uYcPDI3LwK84EanSlYiGeHg473x05vV1f35peG/v39XbWYnoA9znamAtEyuIeTRV9wB9hYmIsAXuHB7qmjw==","signatures":[{"sig":"MEQCIG9c7SnuyE26bOg8wflYirpp2vuxgkpnzbjfGK7MJowTAiAz6K/Y0cJzLbfOydOTZHC4SDF2zBzh5NXjKdb4hfYmIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9594469},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"e2dcdf5d2bf43da9f35ed2fb9f89c79acdba3f5c","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","postinstall":"node scripts/postinstall.mjs","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"openspec":{"id":"openlore","bin":"openlore","skills":[{"dir":"openlore-orient","source":"skills/openlore-orient"}],"binArgs":["npx","--yes","openlore"],"summary":"Reverse-engineer living OpenSpec specs from existing code, then keep code and specs in sync.","commands":[{"name":"generate","summary":"Reverse-engineer OpenSpec specs from existing code"},{"name":"drift","summary":"Detect code/spec drift"},{"name":"verify","summary":"Verify specs against the codebase"},{"name":"analyze","summary":"Build the structural analysis graph (no API key)"},{"name":"orient","summary":"One-shot structural orientation for a task"},{"name":"digest","summary":"Emit the compact codebase digest"},{"name":"decisions","summary":"Manage architectural decision records"}],"namespace":"lore","displayName":"OpenLore","openspecCompat":">=0.1.0","ownsConfigKeys":["openlore"],"manifestVersion":1},"overrides":{"ws":"^8.21.0","hono":"^4.12.25","undici":"^8.5.0","js-yaml":"^4.2.0","@google/genai":{"protobufjs":"^7.6.4"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.5.0","@google/genai":{"protobufjs":"^7.6.4"}}},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ora":"^8.1.1","glob":"^13.0.6","vite":"^8.0.16","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","jsonc-parser":"^3.3.1","web-tree-sitter":"0.25.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","@vitejs/plugin-react":"^5.0.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","typebox":"1.1.38","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@earendil-works/pi-ai":"^0.79.4","@earendil-works/pi-tui":"^0.79.4","@earendil-works/pi-coding-agent":"^0.79.4"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"protobufjs":"^8.6.3","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.23.1","tree-sitter-typescript":"^0.23.2","@huggingface/transformers":"^3.8.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.1.4_1782575979288_0.6243348306030176","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"openlore","version":"2.1.5","keywords":["openspec","spec-driven","code-analysis","documentation","reverse-engineering","specification","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.1.5","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"0f314972529d402002d6dbb92bdf5f42e7fe305f","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.1.5.tgz","fileCount":1428,"integrity":"sha512-GYuSdXkBqucWLTg8T6duV/CL5Wb7eujIR+PGAEW0F9i7QyMeSnwFcKdMKRFR6rQ7fli0iM6oOe/w7NyS3B8gZQ==","signatures":[{"sig":"MEQCIGzhENnbYnqXhssg6hjz++rnHSbsa6eGmL0Mfk4iNjWUAiBiFUTO2OMhYzENo6uMBA64Aahnr1meqn97j+3H5ckFQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9639754},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"a34eb5545af5caedc1ac9d337f088253c6302c24","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","postinstall":"node scripts/postinstall.mjs","bench:surface":"tsx scripts/bench-preset-surface.ts","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","bench:selection":"tsx scripts/bench-preset-selection.ts","bench:completion":"tsx scripts/bench-preset-completion.ts","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"openspec":{"id":"openlore","bin":"openlore","skills":[{"dir":"openlore-orient","source":"skills/openlore-orient"}],"binArgs":["npx","--yes","openlore"],"summary":"Reverse-engineer living OpenSpec specs from existing code, then keep code and specs in sync.","commands":[{"name":"generate","summary":"Reverse-engineer OpenSpec specs from existing code"},{"name":"drift","summary":"Detect code/spec drift"},{"name":"verify","summary":"Verify specs against the codebase"},{"name":"analyze","summary":"Build the structural analysis graph (no API key)"},{"name":"orient","summary":"One-shot structural orientation for a task"},{"name":"digest","summary":"Emit the compact codebase digest"},{"name":"decisions","summary":"Manage architectural decision records"}],"namespace":"lore","displayName":"OpenLore","openspecCompat":">=0.1.0","ownsConfigKeys":["openlore"],"manifestVersion":1},"overrides":{"ws":"^8.21.0","hono":"^4.12.25","undici":"^8.5.0","js-yaml":"^4.2.0","@google/genai":{"protobufjs":"^7.6.4"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.5.0","@google/genai":{"protobufjs":"^7.6.4"}}},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.13.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"ora":"^8.1.1","glob":"^13.0.6","vite":"^8.0.16","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","jsonc-parser":"^3.3.1","web-tree-sitter":"0.25.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","@vitejs/plugin-react":"^5.0.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","typebox":"1.1.38","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@earendil-works/pi-ai":"^0.79.4","@earendil-works/pi-tui":"^0.79.4","@earendil-works/pi-coding-agent":"^0.79.4"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"protobufjs":"^8.6.3","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.23.1","tree-sitter-typescript":"^0.23.2","@huggingface/transformers":"^3.8.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.1.5_1782688728150_0.15988839005789224","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"openlore","version":"2.1.6","keywords":["architectural-memory","structural-analysis","code-analysis","call-graph","static-analysis","ai-coding-agents","mcp","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.1.6","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"46fb906422eaf0a2a6c7e05c8973eb1119ed2591","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.1.6.tgz","fileCount":1484,"integrity":"sha512-D0GNnstFyJ8iqtFhcf6rzvX/5r9bs0on4px/TNgZmnc2KU1iV2SdOlvqZu6/PEucfp0+V+wsw8zpBOi1WoxPgA==","signatures":[{"sig":"MEQCIB/0D9mqJMMQ+a4RpttsX/g/Lx5uPzAXQRCTZxZlF8J9AiACT2+fA5t6D+ufRrkHT6FhfVsyy78rWgX9SGSENB7vxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10123795},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":">=22.13.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"b1b90238b929a7111bea4e2e3a6b475a41a9eacd","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","typecheck":"tsc --noEmit","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","postinstall":"node scripts/postinstall.mjs","bench:surface":"tsx scripts/bench-preset-surface.ts","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test:run","bench:selection":"tsx scripts/bench-preset-selection.ts","bench:completion":"tsx scripts/bench-preset-completion.ts","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:integration":"vitest run --config vitest.integration.config.ts","skill:install-local":"node scripts/install-skill.js","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"openspec":{"id":"openlore","bin":"openlore","skills":[{"dir":"openlore-orient","source":"skills/openlore-orient"}],"binArgs":["npx","--yes","openlore"],"summary":"Persistent architectural memory and deterministic structural context for AI coding agents, computed locally from your code.","commands":[{"name":"generate","summary":"Reverse-engineer OpenSpec specs from existing code"},{"name":"drift","summary":"Detect code/spec drift"},{"name":"verify","summary":"Verify specs against the codebase"},{"name":"analyze","summary":"Build the structural analysis graph (no API key)"},{"name":"orient","summary":"One-shot structural orientation for a task"},{"name":"digest","summary":"Emit the compact codebase digest"},{"name":"decisions","summary":"Manage architectural decision records"}],"namespace":"lore","displayName":"OpenLore","openspecCompat":">=0.1.0","ownsConfigKeys":["openlore"],"manifestVersion":1},"overrides":{"ws":"^8.21.0","hono":"^4.12.25","undici":"^8.5.0","js-yaml":"^4.2.0","@google/genai":{"protobufjs":"^7.6.4"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.5.0","@google/genai":{"protobufjs":"^7.6.4"}}},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.16.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ora":"^8.1.1","glob":"^13.0.6","vite":"^8.0.16","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^6.0.2","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","jsonc-parser":"^3.3.1","web-tree-sitter":"0.25.0","@inquirer/prompts":"^7.2.1","tree-sitter-wasms":"0.1.13","@vitejs/plugin-react":"^5.0.2","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^16.0.0","typebox":"1.1.38","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/node":"^22.10.5","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@earendil-works/pi-ai":"^0.79.4","@earendil-works/pi-tui":"^0.79.4","@earendil-works/pi-coding-agent":"^0.79.4"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"protobufjs":"^8.6.3","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.21.3","tree-sitter-typescript":"^0.23.2","@huggingface/transformers":"^3.8.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.1.6_1784502578274_0.8900109130646339","host":"s3://npm-registry-packages-npm-production"}},"2.1.7":{"name":"openlore","version":"2.1.7","keywords":["architectural-memory","structural-analysis","code-analysis","call-graph","static-analysis","ai-coding-agents","mcp","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.1.7","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"cec6a6acbee82ae5ea335070933bf8f0605c3510","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.1.7.tgz","fileCount":1531,"integrity":"sha512-2rR+9RHVrHiy14L/+0bfT5y9d+/IFiTxVFpOXljc+nol5ZUZ35LlrlxZFuOWrtOsBZ8DaWyDif3n1JBUUP1pHA==","signatures":[{"sig":"MEUCIQChDouxJqgX3abeF7QYZe5qR4SspiSijCrVNS1MJvUb9wIgLAJ7NKByMCtOl9igPvf2dJ2GGfP9dfJwo9Wdh+N+v80=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10613736},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":"^22.13.0 || >=23.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"cca189475078181c402f210b56f494275a138be6","scripts":{"dev":"tsx watch src/cli/index.ts","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","typecheck":"tsc --noEmit","audit:gate":"node scripts/audit-gate.mjs","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","postinstall":"node scripts/postinstall.mjs","bench:surface":"tsx scripts/bench-preset-surface.ts","test:coverage":"vitest run --coverage","audit:packlist":"node scripts/audit-packlist.mjs","prepublishOnly":"npm run build && npm run test:run","bench:selection":"tsx scripts/bench-preset-selection.ts","bench:completion":"tsx scripts/bench-preset-completion.ts","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:integration":"vitest run --config vitest.integration.config.ts","bench:reachability":"node scripts/bench-reachability.mjs","skill:install-local":"node scripts/install-skill.js","verify:reachability":"node scripts/verify-reachability-equivalence.mjs","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"openspec":{"id":"openlore","bin":"openlore","skills":[{"dir":"openlore-orient","source":"skills/openlore-orient"}],"binArgs":["npx","--yes","openlore"],"summary":"Persistent architectural memory and deterministic structural context for AI coding agents, computed locally from your code.","commands":[{"name":"generate","summary":"Reverse-engineer OpenSpec specs from existing code"},{"name":"drift","summary":"Detect code/spec drift"},{"name":"verify","summary":"Verify specs against the codebase"},{"name":"analyze","summary":"Build the structural analysis graph (no API key)"},{"name":"orient","summary":"One-shot structural orientation for a task"},{"name":"digest","summary":"Emit the compact codebase digest"},{"name":"decisions","summary":"Manage architectural decision records"}],"namespace":"lore","displayName":"OpenLore","openspecCompat":">=0.1.0","ownsConfigKeys":["openlore"],"manifestVersion":1},"overrides":{"ws":"^8.21.0","hono":"^4.12.32","sharp":"^0.35.0","undici":"^8.5.0","js-yaml":"^4.3.0","@google/genai":{"protobufjs":"^7.6.5"},"onnxruntime-web":{"protobufjs":"^7.6.5"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@hono/node-server":"^2.0.5","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.5.0","@google/genai":{"protobufjs":"^7.6.5"}}},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.16.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ora":"^8.1.1","glob":"^13.0.6","vite":"^8.0.16","yaml":"^2.6.1","chalk":"^5.3.0","react":"^19.1.1","ignore":"^7.0.6","chokidar":"^5.0.0","commander":"^12.1.0","react-dom":"^19.1.1","jsonc-parser":"^3.3.1","web-tree-sitter":"0.25.0","@inquirer/prompts":"^8.5.2","tree-sitter-wasms":"0.1.13","@vitejs/plugin-react":"^6.0.4","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^10.8.0","vitest":"^4.0.18","globals":"^17.7.0","typebox":"1.3.8","@eslint/js":"^10.0.1","typescript":"^5.7.2","@types/node":"^26.1.1","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-tui":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"protobufjs":"^8.6.6","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.21.3","tree-sitter-typescript":"^0.23.2","@huggingface/transformers":"^3.8.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.1.7_1785105848191_0.9020830014263832","host":"s3://npm-registry-packages-npm-production"}},"2.1.8":{"name":"openlore","version":"2.1.8","keywords":["architectural-memory","structural-analysis","code-analysis","call-graph","static-analysis","ai-coding-agents","mcp","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.1.8","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"8363a5934a11f4c6d75279a7b645153024f2d40e","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.1.8.tgz","fileCount":1563,"integrity":"sha512-kUIS9tMilfPiaTbH6ZZQxcA84q5wbH0bWE+J05Zq0+674HYEsPGbcSazQqVSIXjNcZp5HIlWcoJ/7uygWN+prA==","signatures":[{"sig":"MEQCIBzd63G4/f3pYuqopvyVD0z7H2ggF7oe7qUWuMNnP2rYAiA/3gXZO+CYeW8XRRIhY6PCLbuLDFU20TySHmdciBJ7QQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10959438},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":"^22.13.0 || >=23.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"d3393fa267bb1ab0448e5e804581dd3626c16b4c","scripts":{"dev":"tsx watch src/cli/index.ts","fuzz":"vitest run src/fuzz","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","typecheck":"tsc --noEmit","audit:gate":"node scripts/audit-gate.mjs","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","postinstall":"node scripts/postinstall.mjs","bench:surface":"tsx scripts/bench-preset-surface.ts","test:coverage":"vitest run --coverage","audit:packlist":"node scripts/audit-packlist.mjs","prepublishOnly":"npm run build && npm run test:run","bench:selection":"tsx scripts/bench-preset-selection.ts","bench:completion":"tsx scripts/bench-preset-completion.ts","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:integration":"vitest run --config vitest.integration.config.ts","bench:reachability":"node scripts/bench-reachability.mjs","skill:install-local":"node scripts/install-skill.js","verify:reachability":"node scripts/verify-reachability-equivalence.mjs","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"openspec":{"id":"openlore","bin":"openlore","skills":[{"dir":"openlore-orient","source":"skills/openlore-orient"}],"binArgs":["npx","--yes","openlore"],"summary":"Persistent architectural memory and deterministic structural context for AI coding agents, computed locally from your code.","commands":[{"name":"generate","summary":"Reverse-engineer OpenSpec specs from existing code"},{"name":"drift","summary":"Detect code/spec drift"},{"name":"verify","summary":"Verify specs against the codebase"},{"name":"analyze","summary":"Build the structural analysis graph (no API key)"},{"name":"orient","summary":"One-shot structural orientation for a task"},{"name":"digest","summary":"Emit the compact codebase digest"},{"name":"decisions","summary":"Manage architectural decision records"}],"namespace":"lore","displayName":"OpenLore","openspecCompat":">=0.1.0","ownsConfigKeys":["openlore"],"manifestVersion":1},"overrides":{"ws":"^8.21.0","hono":"^4.12.32","sharp":"^0.35.0","undici":"^8.5.0","adm-zip":"^0.6.0","js-yaml":"^4.3.0","@google/genai":{"protobufjs":"^7.6.5"},"onnxruntime-web":{"protobufjs":"^7.6.5"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@hono/node-server":"^2.0.5","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.5.0","@google/genai":{"protobufjs":"^7.6.5"}}},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.16.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ora":"^9.4.1","glob":"^13.0.6","vite":"^8.0.16","yaml":"^2.6.1","chalk":"^6.0.0","react":"^19.1.1","ignore":"^7.0.6","chokidar":"^5.0.0","commander":"^15.0.0","react-dom":"^19.1.1","jsonc-parser":"^3.3.1","web-tree-sitter":"0.25.0","@inquirer/prompts":"^8.5.2","tree-sitter-wasms":"0.1.13","@vitejs/plugin-react":"^6.0.4","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^10.8.0","vitest":"^4.0.18","globals":"^17.7.0","typebox":"1.3.8","@eslint/js":"^10.0.1","fast-check":"^4.9.0","typescript":"^5.7.2","@types/node":"^26.1.1","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@fission-ai/openspec":"1.7.0","@earendil-works/pi-ai":"^0.82.1","@earendil-works/pi-tui":"^0.82.1","@earendil-works/pi-coding-agent":"^0.82.1"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"protobufjs":"^8.6.6","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.21.3","tree-sitter-typescript":"^0.23.2","@huggingface/transformers":"^4.2.0"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.1.8_1785690360668_0.3630660250827513","host":"s3://npm-registry-packages-npm-production"}},"2.1.9":{"name":"openlore","version":"2.1.9","keywords":["architectural-memory","structural-analysis","code-analysis","call-graph","static-analysis","ai-coding-agents","mcp","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.1.9","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./examples/opencode-skills","./skills/openlore-orient"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"3753598f54eadfc6edf6a18abeeaa60aa23e5703","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.1.9.tgz","fileCount":1601,"integrity":"sha512-T6Lmlv6RkDCxjgSJRXib0s3ceyOt6y5vEPtzKb65X3oNbxzKqnZNNu4QdtHyfnSTvDt+alu+BJXLvtz+85/wlg==","signatures":[{"sig":"MEUCIQDr15vR70tjalGMk6ed60IAIds5iINpDgFpD5/XUKjxpQIgY6JeRTrn4HkCfDtP80aFZzOK9sUsLV1efahqNNqb8Yc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11251948},"main":"dist/api/index.js","type":"module","types":"dist/api/index.d.ts","engines":{"node":"^22.13.0 || >=23.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"gitHead":"8bda76a3ffd3c22894d1ad27a2e32b9a51b0e9fb","scripts":{"dev":"tsx watch src/cli/index.ts","fuzz":"vitest run src/fuzz","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","typecheck":"tsc --noEmit","audit:gate":"node scripts/audit-gate.mjs","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","postinstall":"node scripts/postinstall.mjs","bench:surface":"tsx scripts/bench-preset-surface.ts","test:coverage":"vitest run --coverage","audit:packlist":"node scripts/audit-packlist.mjs","prepublishOnly":"npm run build && npm run test:run","bench:selection":"tsx scripts/bench-preset-selection.ts","bench:completion":"tsx scripts/bench-preset-completion.ts","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:integration":"vitest run --config vitest.integration.config.ts","bench:reachability":"node scripts/bench-reachability.mjs","skill:install-local":"node scripts/install-skill.js","verify:reachability":"node scripts/verify-reachability-equivalence.mjs","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"openspec":{"id":"openlore","bin":"openlore","skills":[{"dir":"openlore-orient","source":"skills/openlore-orient"}],"binArgs":["npx","--yes","openlore"],"summary":"Persistent architectural memory and deterministic structural context for AI coding agents, computed locally from your code.","commands":[{"name":"generate","summary":"Reverse-engineer OpenSpec specs from existing code"},{"name":"drift","summary":"Detect code/spec drift"},{"name":"verify","summary":"Verify specs against the codebase"},{"name":"analyze","summary":"Build the structural analysis graph (no API key)"},{"name":"orient","summary":"One-shot structural orientation for a task"},{"name":"digest","summary":"Emit the compact codebase digest"},{"name":"decisions","summary":"Manage architectural decision records"}],"namespace":"lore","displayName":"OpenLore","openspecCompat":">=0.1.0","ownsConfigKeys":["openlore"],"manifestVersion":1},"overrides":{"ws":"^8.21.0","hono":"^4.12.34","sharp":"^0.35.0","nanoid":"^3.3.17","undici":"^8.9.0","adm-zip":"^0.6.0","js-yaml":"^4.3.0","fast-uri":"^3.1.5","@google/genai":{"protobufjs":"^7.6.5"},"brace-expansion":"^5.0.9","onnxruntime-web":{"protobufjs":"^7.6.5"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@hono/node-server":"^2.0.5","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.9.0","@google/genai":{"protobufjs":"^7.6.5"}}},"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.16.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ora":"^9.4.1","glob":"^13.0.6","vite":"^8.0.16","yaml":"^2.6.1","chalk":"^6.0.0","react":"^19.1.1","ignore":"^7.0.6","chokidar":"^5.0.0","commander":"^15.0.0","react-dom":"^19.1.1","jsonc-parser":"^3.3.1","web-tree-sitter":"0.25.0","@inquirer/prompts":"^8.5.2","tree-sitter-wasms":"0.1.13","@vitejs/plugin-react":"^6.0.4","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^10.8.0","vitest":"^4.0.18","globals":"^17.7.0","typebox":"1.3.9","@eslint/js":"^10.0.1","fast-check":"^4.9.0","typescript":"^5.7.2","@types/node":"^26.1.1","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@fission-ai/openspec":"1.7.0","@earendil-works/pi-ai":"^0.83.0","@earendil-works/pi-tui":"^0.83.0","@earendil-works/pi-coding-agent":"^0.83.0"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"protobufjs":"^8.6.6","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.21.3","tree-sitter-typescript":"^0.23.2","@huggingface/transformers":"^4.2.0"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.1.9_1786325886129_0.9674504530284085","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"openlore","version":"2.2.0","keywords":["architectural-memory","structural-analysis","code-analysis","call-graph","static-analysis","ai-coding-agents","mcp","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@2.2.0","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./skills"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"3ac481775221df00940841a6333e39b258136b7e","tarball":"https://registry.npmjs.org/openlore/-/openlore-2.2.0.tgz","fileCount":1683,"integrity":"sha512-zvLo2bk3PEFi/VoA5vRN0CAcdHa8tAvOx/i1a57Maf36R2VT1aVuZ7ND58rheEdcnyK0cdFHikR+79iE270BIA==","signatures":[{"sig":"MEQCIFMFPa8a9rz5nXhz/xxzx3PBSRdZ5IFDpfY7RUaGOw1SAiAer/fA+kYIBQ5/LrxdgJTgoN0eyVi9uFrBTsOH4mG+Hw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12474383},"main":"dist/api/index.js","type":"module","_from":"file:openlore-2.2.0.tgz","types":"dist/api/index.d.ts","engines":{"node":"^22.13.0 || >=23.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"scripts":{"dev":"tsx watch src/cli/index.ts","fuzz":"vitest run src/fuzz","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","typecheck":"tsc --noEmit","audit:gate":"node scripts/audit-gate.mjs","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","postinstall":"node scripts/postinstall.mjs","bench:surface":"tsx scripts/bench-preset-surface.ts","test:coverage":"vitest run --coverage","audit:packlist":"node scripts/audit-packlist.mjs","prepublishOnly":"npm run build && npm run test:run","bench:selection":"tsx scripts/bench-preset-selection.ts","bench:completion":"tsx scripts/bench-preset-completion.ts","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:integration":"vitest run --config vitest.integration.config.ts","bench:reachability":"node scripts/bench-reachability.mjs","skill:install-local":"node scripts/install-skill.js","verify:reachability":"node scripts/verify-reachability-equivalence.mjs","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"openspec":{"id":"openlore","bin":"openlore","skills":[{"dir":"openlore-orient","source":"skills/openlore-orient"}],"binArgs":["npx","--yes","openlore"],"summary":"Persistent architectural memory and deterministic structural context for AI coding agents, computed locally from your code.","commands":[{"name":"generate","summary":"Reverse-engineer OpenSpec specs from existing code"},{"name":"drift","summary":"Detect code/spec drift"},{"name":"verify","summary":"Verify specs against the codebase"},{"name":"analyze","summary":"Build the structural analysis graph (no API key)"},{"name":"orient","summary":"One-shot structural orientation for a task"},{"name":"digest","summary":"Emit the compact codebase digest"},{"name":"decisions","summary":"Manage architectural decision records"},{"name":"change-status","summary":"Compute OpenSpec change status from documented evidence"}],"namespace":"lore","displayName":"OpenLore","openspecCompat":">=0.1.0","ownsConfigKeys":["openlore"],"manifestVersion":1},"_resolved":"/home/runner/work/OpenLore/OpenLore/release-artifact/openlore-2.2.0.tgz","overrides":{"ws":"^8.21.0","hono":"^4.12.34","sharp":"^0.35.0","nanoid":"^3.3.17","undici":"^8.9.0","adm-zip":"^0.6.0","js-yaml":"^4.3.0","fast-uri":"^3.1.5","@google/genai":{"protobufjs":"^7.6.5"},"brace-expansion":"^5.0.9","onnxruntime-web":{"protobufjs":"^7.6.5"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@hono/node-server":"^2.0.5","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.9.0","@google/genai":{"protobufjs":"^7.6.5"}}},"_integrity":"sha512-zvLo2bk3PEFi/VoA5vRN0CAcdHa8tAvOx/i1a57Maf36R2VT1aVuZ7ND58rheEdcnyK0cdFHikR+79iE270BIA==","repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.17.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ora":"^9.4.1","glob":"^13.0.6","vite":"^8.0.16","yaml":"^2.6.1","chalk":"^6.0.0","react":"^19.1.1","ignore":"^7.0.6","chokidar":"^5.0.0","commander":"^15.0.0","react-dom":"^19.1.1","jsonc-parser":"^3.3.1","web-tree-sitter":"0.25.0","@inquirer/prompts":"^8.5.2","tree-sitter-wasms":"0.1.13","@vitejs/plugin-react":"^6.0.4","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^10.8.0","vitest":"^4.0.18","globals":"^17.7.0","typebox":"1.3.11","@eslint/js":"^10.0.1","fast-check":"^4.9.0","typescript":"^5.7.2","@types/node":"^26.1.1","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@fission-ai/openspec":"1.8.0","@earendil-works/pi-ai":"^0.84.1","@earendil-works/pi-tui":"^0.84.1","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"protobufjs":"^8.6.6","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.21.3","tree-sitter-typescript":"^0.23.2","@huggingface/transformers":"^4.2.0"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_2.2.0_1786936545782_0.4595041100919559","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"openlore","version":"3.0.1","keywords":["architectural-memory","structural-analysis","code-analysis","call-graph","static-analysis","ai-coding-agents","mcp","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@3.0.1","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./skills"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"c63b0a64e8cc51f2dfb1c27e1c0f210474ce9388","tarball":"https://registry.npmjs.org/openlore/-/openlore-3.0.1.tgz","fileCount":1767,"integrity":"sha512-lokz0BQHDTHA2RRHSwURPKntcIi51xWk5Q23qdKA/jfPAXH7hBNy0On1vnrI1F5TPeE7NKOSyaxyN4Df+9y+zA==","signatures":[{"sig":"MEYCIQDTKlgR8Hp/srHFyHLWzNznzIpbmMOfkqz6STx2Q/TfUQIhAP1GkngHQ4LVJvHomUkFzIebtMsKLreI63Syqe1e+DeC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13697210},"main":"dist/api/index.js","type":"module","_from":"file:openlore-3.0.1.tgz","types":"dist/api/index.d.ts","engines":{"node":"^22.19.0 || >=23.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"scripts":{"dev":"tsx watch src/cli/index.ts","fuzz":"vitest run src/fuzz","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","test:unit":"vitest run --exclude src/core/analyzer/derived-artifact-equivalence.test.ts --exclude src/core/analyzer/hash-keyed-analyze.test.ts --exclude src/core/analyzer/pass1-fact-cache.test.ts --exclude src/core/analyzer/extraction-pool.test.ts --exclude src/core/analyzer/extraction-pool-threads.test.ts --exclude src/core/analyzer/condensation.test.ts --exclude src/core/analyzer/index-bundle.test.ts --exclude src/core/analyzer/bm25-corpus-persistence.test.ts --exclude src/core/analyzer/vector-index.test.ts --exclude src/core/analyzer/spec-vector-index.test.ts --exclude src/core/services/mcp-handlers/traversal.test.ts --exclude src/core/services/mcp-watcher-parity.test.ts --exclude src/core/services/mcp-watcher-incremental.test.ts","typecheck":"tsc --noEmit","audit:gate":"node scripts/audit-gate.mjs","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","postinstall":"node scripts/postinstall.mjs","bench:surface":"tsx scripts/bench-preset-surface.ts","test:coverage":"vitest run --coverage","audit:packlist":"node scripts/audit-packlist.mjs","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test:run && npm run test:integration:ci && npm run audit:gate && npm run audit:packlist","bench:selection":"tsx scripts/bench-preset-selection.ts","bench:completion":"tsx scripts/bench-preset-completion.ts","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:equivalence":"vitest run src/core/analyzer/derived-artifact-equivalence.test.ts src/core/analyzer/hash-keyed-analyze.test.ts src/core/analyzer/pass1-fact-cache.test.ts src/core/analyzer/extraction-pool.test.ts src/core/analyzer/extraction-pool-threads.test.ts src/core/analyzer/condensation.test.ts src/core/analyzer/index-bundle.test.ts src/core/analyzer/bm25-corpus-persistence.test.ts src/core/analyzer/vector-index.test.ts src/core/analyzer/spec-vector-index.test.ts src/core/services/mcp-handlers/traversal.test.ts src/core/services/mcp-watcher-parity.test.ts src/core/services/mcp-watcher-incremental.test.ts","test:integration":"vitest run --config vitest.integration.config.ts","test:api-consumer":"npm run build && node scripts/api-consumer-smoke.mjs","bench:reachability":"node scripts/bench-reachability.mjs","skill:install-local":"node scripts/install-skill.js","test:integration:ci":"vitest run --config vitest.integration.config.ts src/api/analyze-parity.integration.test.ts src/api/generate.integration.test.ts src/api/run-dry-run.integration.test.ts src/api/verify.e2e.integration.test.ts src/cli/commands/analyze.integration.test.ts src/core/analyzer/html-asset-edges.integration.test.ts src/core/analyzer/html-inline-script.e2e.integration.test.ts src/core/services/mcp-handlers/spec-reconciliation-workflow.e2e.integration.test.ts src/core/verifier/verification-engine.e2e.integration.test.ts","verify:reachability":"node scripts/verify-reachability-equivalence.mjs","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'","measure:certified-scale":"tsx scripts/measure-certified-scale.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"openspec":{"id":"openlore","bin":"openlore","skills":[{"dir":"openlore-orient","source":"skills/openlore-orient"}],"binArgs":["npx","--yes","openlore"],"summary":"Persistent architectural memory and deterministic structural context for AI coding agents, computed locally from your code.","commands":[{"name":"generate","summary":"Reverse-engineer OpenSpec specs from existing code"},{"name":"drift","summary":"Detect code/spec drift"},{"name":"verify","summary":"Verify specs against the codebase"},{"name":"analyze","summary":"Build the structural analysis graph (no API key)"},{"name":"orient","summary":"One-shot structural orientation for a task"},{"name":"digest","summary":"Emit the compact codebase digest"},{"name":"decisions","summary":"Manage architectural decision records"},{"name":"change-status","summary":"Compute OpenSpec change status from documented evidence"}],"namespace":"lore","displayName":"OpenLore","openspecCompat":">=0.1.0","ownsConfigKeys":["openlore"],"manifestVersion":1},"_resolved":"/home/runner/work/OpenLore/OpenLore/release-artifact/openlore-3.0.1.tgz","overrides":{"ws":"^8.21.0","hono":"^4.12.34","sharp":"^0.35.0","nanoid":"^3.3.17","undici":"^8.9.0","adm-zip":"^0.6.0","js-yaml":"^4.3.0","fast-uri":"^3.1.5","@google/genai":{"protobufjs":"^7.6.5"},"brace-expansion":"^5.0.9","onnxruntime-web":{"protobufjs":"^7.6.5"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@hono/node-server":"^2.0.5","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.9.0","@google/genai":{"protobufjs":"^7.6.5"}}},"_integrity":"sha512-lokz0BQHDTHA2RRHSwURPKntcIi51xWk5Q23qdKA/jfPAXH7hBNy0On1vnrI1F5TPeE7NKOSyaxyN4Df+9y+zA==","repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.17.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ora":"^9.4.1","glob":"^13.0.6","vite":"^8.0.16","yaml":"^2.6.1","chalk":"^6.0.0","react":"^19.1.1","ignore":"^7.0.6","chokidar":"^5.0.0","commander":"^15.0.0","react-dom":"^19.1.1","jsonc-parser":"^3.3.1","web-tree-sitter":"0.25.0","@inquirer/prompts":"^8.5.2","tree-sitter-wasms":"0.1.13","@vitejs/plugin-react":"^6.0.4","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^10.8.0","vitest":"^4.0.18","globals":"^17.7.0","typebox":"1.3.16","@eslint/js":"^10.0.1","fast-check":"^4.9.0","typescript":"^5.7.2","@types/node":"^26.1.1","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@fission-ai/openspec":"1.10.0","@earendil-works/pi-ai":"^0.84.1","@earendil-works/pi-tui":"^0.84.1","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"protobufjs":"^8.6.6","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.21.3","tree-sitter-typescript":"^0.23.2","@huggingface/transformers":"^4.2.0"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_3.0.1_1787540485951_0.40541173245309037","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"openlore","version":"3.1.0","keywords":["architectural-memory","structural-analysis","code-analysis","call-graph","static-analysis","ai-coding-agents","mcp","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@3.1.0","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./skills"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"4c1d2b0d4fa996dd84fe175934ec27c39b9adc30","tarball":"https://registry.npmjs.org/openlore/-/openlore-3.1.0.tgz","fileCount":1827,"integrity":"sha512-gxsNWJvUUv5+3dHebZG15IawFIaLBzaAaXewOKoHF8+mkNyAVTa/Ih5TPqLa36tI/tqaBnDL49QoJZQdPeud1Q==","signatures":[{"sig":"MEQCIAt4/IqnKsRtI+0Y/VQ7hvfQFpBTbJX4RhGFI3Lp2dKtAiAQ0vtlgJNdmJwQySA3kOFDcfVvQzQd85RdapN98LtOmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14353705},"main":"dist/api/index.js","type":"module","_from":"file:openlore-3.1.0.tgz","types":"dist/api/index.d.ts","engines":{"node":"^22.19.0 || >=23.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"}},"scripts":{"dev":"tsx watch src/cli/index.ts","fuzz":"vitest run src/fuzz","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","test:unit":"vitest run --exclude src/core/analyzer/derived-artifact-equivalence.test.ts --exclude src/core/analyzer/hash-keyed-analyze.test.ts --exclude src/core/analyzer/pass1-fact-cache.test.ts --exclude src/core/analyzer/extraction-pool.test.ts --exclude src/core/analyzer/extraction-pool-threads.test.ts --exclude src/core/analyzer/condensation.test.ts --exclude src/core/analyzer/index-bundle.test.ts --exclude src/core/analyzer/bm25-corpus-persistence.test.ts --exclude src/core/analyzer/vector-index.test.ts --exclude src/core/analyzer/spec-vector-index.test.ts --exclude src/core/services/mcp-handlers/traversal.test.ts --exclude src/core/services/mcp-watcher-parity.test.ts --exclude src/core/services/mcp-watcher-incremental.test.ts","typecheck":"tsc --noEmit","audit:gate":"node scripts/audit-gate.mjs","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","postinstall":"node scripts/postinstall.mjs","bench:surface":"tsx scripts/bench-preset-surface.ts","test:coverage":"vitest run --coverage","audit:packlist":"node scripts/audit-packlist.mjs","bench:protocol":"node --import tsx bench/run.ts","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test:run && npm run test:integration:ci && npm run audit:gate && npm run audit:packlist","bench:selection":"tsx scripts/bench-preset-selection.ts","bench:completion":"tsx scripts/bench-preset-completion.ts","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:equivalence":"vitest run src/core/analyzer/derived-artifact-equivalence.test.ts src/core/analyzer/hash-keyed-analyze.test.ts src/core/analyzer/pass1-fact-cache.test.ts src/core/analyzer/extraction-pool.test.ts src/core/analyzer/extraction-pool-threads.test.ts src/core/analyzer/condensation.test.ts src/core/analyzer/index-bundle.test.ts src/core/analyzer/bm25-corpus-persistence.test.ts src/core/analyzer/vector-index.test.ts src/core/analyzer/spec-vector-index.test.ts src/core/services/mcp-handlers/traversal.test.ts src/core/services/mcp-watcher-parity.test.ts src/core/services/mcp-watcher-incremental.test.ts","test:integration":"vitest run --config vitest.integration.config.ts","test:api-consumer":"npm run build && node scripts/api-consumer-smoke.mjs","bench:reachability":"node scripts/bench-reachability.mjs","skill:install-local":"node scripts/install-skill.js","test:integration:ci":"vitest run --config vitest.integration.config.ts src/api/analyze-parity.integration.test.ts src/api/generate.integration.test.ts src/api/run-dry-run.integration.test.ts src/api/verify.e2e.integration.test.ts src/cli/commands/analyze.integration.test.ts src/core/analyzer/html-asset-edges.integration.test.ts src/core/analyzer/html-inline-script.e2e.integration.test.ts src/core/services/mcp-handlers/spec-reconciliation-workflow.e2e.integration.test.ts src/core/verifier/verification-engine.e2e.integration.test.ts","verify:reachability":"node scripts/verify-reachability-equivalence.mjs","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'","measure:certified-scale":"tsx scripts/measure-certified-scale.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"openspec":{"id":"openlore","bin":"openlore","skills":[{"dir":"openlore-orient","source":"skills/openlore-orient"}],"binArgs":["npx","--yes","openlore"],"summary":"Persistent architectural memory and deterministic structural context for AI coding agents, computed locally from your code.","commands":[{"name":"generate","summary":"Reverse-engineer OpenSpec specs from existing code"},{"name":"drift","summary":"Detect code/spec drift"},{"name":"verify","summary":"Verify specs against the codebase"},{"name":"analyze","summary":"Build the structural analysis graph (no API key)"},{"name":"orient","summary":"One-shot structural orientation for a task"},{"name":"digest","summary":"Emit the compact codebase digest"},{"name":"decisions","summary":"Manage architectural decision records"},{"name":"change-status","summary":"Compute OpenSpec change status from documented evidence"}],"namespace":"lore","displayName":"OpenLore","openspecCompat":">=0.1.0","ownsConfigKeys":["openlore"],"manifestVersion":1},"_resolved":"/home/runner/work/OpenLore/OpenLore/release-artifact/openlore-3.1.0.tgz","overrides":{"ws":"^8.21.0","hono":"^4.12.34","sharp":"^0.35.0","nanoid":"^3.3.17","undici":"^8.9.0","adm-zip":"^0.6.0","js-yaml":"^4.3.0","fast-uri":"^3.1.5","@google/genai":{"protobufjs":"^7.6.5"},"brace-expansion":"^5.0.9","onnxruntime-web":{"protobufjs":"^7.6.5"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@hono/node-server":"^2.0.5","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.9.0","@google/genai":{"protobufjs":"^7.6.5"}}},"_integrity":"sha512-gxsNWJvUUv5+3dHebZG15IawFIaLBzaAaXewOKoHF8+mkNyAVTa/Ih5TPqLa36tI/tqaBnDL49QoJZQdPeud1Q==","repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.17.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"ora":"^9.4.1","glob":"^13.0.6","vite":"^8.0.16","yaml":"^2.6.1","chalk":"^6.0.0","react":"^19.1.1","ignore":"^7.0.6","chokidar":"^5.0.0","commander":"^15.0.0","minimatch":"^10.2.5","react-dom":"^19.1.1","jsonc-parser":"^3.3.1","web-tree-sitter":"0.25.10","@inquirer/prompts":"^8.5.2","tree-sitter-wasms":"0.1.13","@vitejs/plugin-react":"^6.0.4","@modelcontextprotocol/sdk":"^1.27.1","@modelcontextprotocol/server-memory":"^2026.1.26"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.15.0","eslint":"^10.8.0","vitest":"^4.0.18","globals":"^17.7.0","typebox":"1.3.16","@eslint/js":"^10.0.1","fast-check":"^4.9.0","typescript":"^5.7.2","@types/node":"^26.1.1","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^4.0.18","@fission-ai/openspec":"1.10.0","@earendil-works/pi-ai":"^0.84.1","@earendil-works/pi-tui":"^0.84.1","@earendil-works/pi-coding-agent":"^0.84.1"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"protobufjs":"^8.6.6","tree-sitter":"^0.22.4","apache-arrow":"^21.1.0","tree-sitter-c":"^0.23.6","tree-sitter-go":"^0.23.4","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.23.12","@lancedb/lancedb":"0.22.4-beta.3","tree-sitter-bash":"^0.23.3","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.23.6","tree-sitter-c-sharp":"^0.21.3","tree-sitter-typescript":"^0.23.2","@huggingface/transformers":"^4.2.0"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_3.1.0_1788167800339_0.22246020840585934","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"openlore","version":"3.1.1","keywords":["architectural-memory","structural-analysis","code-analysis","call-graph","static-analysis","ai-coding-agents","mcp","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@3.1.1","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./skills"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"97b14ad67ef8c24ebc7fe7295d981cf3e60438bf","tarball":"https://registry.npmjs.org/openlore/-/openlore-3.1.1.tgz","fileCount":1891,"integrity":"sha512-lJaWC4zqkTNgDt/9AwiUsQh0AKCdoI690lUuhgftfzN2+nb3qLlNQrh3VrPJEF9mXv6v8Lzhc7Ic5PevJhcZ2w==","signatures":[{"sig":"MEQCIFwOW+nyEZz+kf8DahkMlqRAZjXFM5XLQDvy595Ff/fkAiBzz5/YkJzab3K5qYfLC2OC7vYBROdrAs4WNE0HdCADRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@3.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15110538},"main":"dist/api/index.js","type":"module","_from":"file:openlore-3.1.1.tgz","types":"dist/api/index.d.ts","engines":{"node":"^22.19.0 || >=23.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"},"./serve-descriptor":{"types":"./dist/api/serve-descriptor.d.ts","import":"./dist/api/serve-descriptor.js"}},"scripts":{"dev":"tsx watch src/cli/index.ts","fuzz":"vitest run src/fuzz","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","test:unit":"vitest run --exclude src/core/analyzer/derived-artifact-equivalence.test.ts --exclude src/core/analyzer/hash-keyed-analyze.test.ts --exclude src/core/analyzer/pass1-fact-cache.test.ts --exclude src/core/analyzer/extraction-pool.test.ts --exclude src/core/analyzer/extraction-pool-threads.test.ts --exclude src/core/analyzer/condensation.test.ts --exclude src/core/analyzer/index-bundle.test.ts --exclude src/core/analyzer/bm25-corpus-persistence.test.ts --exclude src/core/analyzer/vector-index.test.ts --exclude src/core/analyzer/spec-vector-index.test.ts --exclude src/core/services/mcp-handlers/traversal.test.ts --exclude src/core/services/mcp-watcher-parity.test.ts --exclude src/core/services/mcp-watcher-incremental.test.ts","typecheck":"tsc --noEmit","audit:deps":"node scripts/audit-dependencies.mjs","audit:gate":"node scripts/audit-gate.mjs","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","postinstall":"node scripts/postinstall.mjs","bench:surface":"tsx scripts/bench-preset-surface.ts","test:coverage":"vitest run --coverage","audit:packlist":"node scripts/audit-packlist.mjs","bench:protocol":"node --import tsx bench/run.ts","lock:integrity":"node scripts/backfill-lock-integrity.mjs","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test:run && npm run test:integration:ci && npm run audit:gate && npm run audit:packlist && npm run audit:deps","bench:selection":"tsx scripts/bench-preset-selection.ts","bench:completion":"tsx scripts/bench-preset-completion.ts","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:equivalence":"vitest run src/core/analyzer/derived-artifact-equivalence.test.ts src/core/analyzer/hash-keyed-analyze.test.ts src/core/analyzer/pass1-fact-cache.test.ts src/core/analyzer/extraction-pool.test.ts src/core/analyzer/extraction-pool-threads.test.ts src/core/analyzer/condensation.test.ts src/core/analyzer/index-bundle.test.ts src/core/analyzer/bm25-corpus-persistence.test.ts src/core/analyzer/vector-index.test.ts src/core/analyzer/spec-vector-index.test.ts src/core/services/mcp-handlers/traversal.test.ts src/core/services/mcp-watcher-parity.test.ts src/core/services/mcp-watcher-incremental.test.ts","test:integration":"vitest run --config vitest.integration.config.ts","test:api-consumer":"npm run build && node scripts/api-consumer-smoke.mjs","bench:reachability":"node scripts/bench-reachability.mjs","skill:install-local":"node scripts/install-skill.js","test:integration:ci":"vitest run --config vitest.integration.config.ts src/api/analyze-parity.integration.test.ts src/api/generate.integration.test.ts src/api/run-dry-run.integration.test.ts src/api/verify.e2e.integration.test.ts src/cli/commands/analyze.integration.test.ts src/core/analyzer/html-asset-edges.integration.test.ts src/core/analyzer/html-inline-script.e2e.integration.test.ts src/core/services/mcp-watcher.integration.test.ts src/cli/commands/watch-auto.integration.test.ts src/core/services/mcp-handlers/spec-reconciliation-workflow.e2e.integration.test.ts src/core/verifier/verification-engine.e2e.integration.test.ts","verify:reachability":"node scripts/verify-reachability-equivalence.mjs","lock:integrity:check":"node scripts/backfill-lock-integrity.mjs --check","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'","measure:certified-scale":"tsx scripts/measure-certified-scale.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"openspec":{"id":"openlore","bin":"openlore","skills":[{"dir":"openlore-orient","source":"skills/openlore-orient"}],"binArgs":["npx","--yes","openlore"],"summary":"Persistent architectural memory and deterministic structural context for AI coding agents, computed locally from your code.","commands":[{"name":"generate","summary":"Reverse-engineer OpenSpec specs from existing code"},{"name":"drift","summary":"Detect code/spec drift"},{"name":"verify","summary":"Verify specs against the codebase"},{"name":"analyze","summary":"Build the structural analysis graph (no API key)"},{"name":"orient","summary":"One-shot structural orientation for a task"},{"name":"digest","summary":"Emit the compact codebase digest"},{"name":"decisions","summary":"Manage architectural decision records"},{"name":"change-status","summary":"Compute OpenSpec change status from documented evidence"}],"namespace":"lore","displayName":"OpenLore","openspecCompat":">=0.1.0","ownsConfigKeys":["openlore"],"manifestVersion":1},"_resolved":"/home/runner/work/OpenLore/OpenLore/release-artifact/openlore-3.1.1.tgz","overrides":{"ws":"^8.21.0","hono":"^4.12.34","sharp":"^0.35.4","nanoid":"^3.3.17","undici":"^8.9.0","adm-zip":"^0.6.0","js-yaml":"^4.3.0","fast-uri":"^3.1.7","@google/genai":{"protobufjs":"^7.6.5"},"brace-expansion":"^5.0.9","onnxruntime-web":{"protobufjs":"^7.6.5"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@hono/node-server":"^2.0.5","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.9.0","@google/genai":{"protobufjs":"^7.6.5"}}},"_integrity":"sha512-lJaWC4zqkTNgDt/9AwiUsQh0AKCdoI690lUuhgftfzN2+nb3qLlNQrh3VrPJEF9mXv6v8Lzhc7Ic5PevJhcZ2w==","repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.19.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ora":"^9.4.1","glob":"^13.0.6","yaml":"^2.6.1","chalk":"^6.0.0","ignore":"^7.0.8","chokidar":"^5.0.0","commander":"^15.0.0","minimatch":"^10.2.6","jsonc-parser":"^3.3.1","web-tree-sitter":"0.25.10","@inquirer/prompts":"^8.7.1","tree-sitter-wasms":"0.1.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.71.0","eslint":"^10.9.1","vitest":"^5.0.0","globals":"^17.7.0","typebox":"1.3.27","@eslint/js":"^10.0.1","fast-check":"^4.9.0","typescript":"^5.7.2","@types/node":"^26.4.0","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^5.0.0","@fission-ai/openspec":"1.12.0","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-tui":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"vite":"^8.0.16","react":"^19.1.1","react-dom":"^19.1.1","protobufjs":"^8.8.0","tree-sitter":"^0.25.1","apache-arrow":"^21.1.0","tree-sitter-c":"^0.24.1","tree-sitter-go":"^0.25.0","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.24.2","@lancedb/lancedb":"0.38.0","tree-sitter-bash":"^0.25.1","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.25.0","tree-sitter-c-sharp":"^0.23.5","@vitejs/plugin-react":"^6.1.1","tree-sitter-typescript":"^0.23.2","@huggingface/transformers":"^4.2.0","@modelcontextprotocol/sdk":"^1.27.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_3.1.1_1788955358065_0.3778691207157965","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"openlore","version":"3.2.0","keywords":["architectural-memory","structural-analysis","code-analysis","call-graph","static-analysis","ai-coding-agents","mcp","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@3.2.0","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./skills"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"f6d187f338d366c98a16c340aa323fca0159d09e","tarball":"https://registry.npmjs.org/openlore/-/openlore-3.2.0.tgz","fileCount":1911,"integrity":"sha512-pnfCqsguAeBVqkwgvXybyiwAp8JQuJRPCNRR4sPdvhNgX7JrsQCji9Eg6K83xwCiE4RzfjD4oOiePiB4YWMzqw==","signatures":[{"sig":"MEUCIQD8pJ4KLD407smjUODT71e/aP5ea23g7oD9humcRjMbdwIgaRUFgesA0DOjr21XpSfp/MfGDT75mdvRfM3KBG/ITew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15663623},"main":"dist/api/index.js","type":"module","_from":"file:openlore-3.2.0.tgz","types":"dist/api/index.d.ts","engines":{"node":"^22.19.0 || >=23.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"},"./serve-descriptor":{"types":"./dist/api/serve-descriptor.d.ts","import":"./dist/api/serve-descriptor.js"}},"scripts":{"dev":"tsx watch src/cli/index.ts","fuzz":"vitest run src/fuzz","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","test:unit":"vitest run --exclude src/core/analyzer/extractor-redos.test.ts --exclude src/core/analyzer/derived-artifact-equivalence.test.ts --exclude src/core/analyzer/hash-keyed-analyze.test.ts --exclude src/core/analyzer/pass1-fact-cache.test.ts --exclude src/core/analyzer/extraction-pool.test.ts --exclude src/core/analyzer/extraction-pool-threads.test.ts --exclude src/core/analyzer/condensation.test.ts --exclude src/core/analyzer/index-bundle.test.ts --exclude src/core/analyzer/bm25-corpus-persistence.test.ts --exclude src/core/analyzer/vector-index.test.ts --exclude src/core/analyzer/spec-vector-index.test.ts --exclude src/core/services/mcp-handlers/traversal.test.ts --exclude src/core/services/mcp-watcher-parity.test.ts --exclude src/core/services/mcp-watcher-incremental.test.ts","typecheck":"tsc --noEmit","audit:deps":"node scripts/audit-dependencies.mjs","audit:gate":"node scripts/audit-gate.mjs","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","postinstall":"node scripts/postinstall.mjs","test:budgets":"vitest run --no-file-parallelism src/core/analyzer/extractor-redos.test.ts","bench:surface":"tsx scripts/bench-preset-surface.ts","test:coverage":"vitest run --coverage","audit:packlist":"node scripts/audit-packlist.mjs","bench:protocol":"node --import tsx bench/run.ts","lock:integrity":"node scripts/backfill-lock-integrity.mjs","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test:run && npm run test:integration:ci && npm run audit:gate && npm run audit:packlist && npm run audit:deps","bench:selection":"tsx scripts/bench-preset-selection.ts","bench:completion":"tsx scripts/bench-preset-completion.ts","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:equivalence":"vitest run src/core/analyzer/derived-artifact-equivalence.test.ts src/core/analyzer/hash-keyed-analyze.test.ts src/core/analyzer/pass1-fact-cache.test.ts src/core/analyzer/extraction-pool.test.ts src/core/analyzer/extraction-pool-threads.test.ts src/core/analyzer/condensation.test.ts src/core/analyzer/index-bundle.test.ts src/core/analyzer/bm25-corpus-persistence.test.ts src/core/analyzer/vector-index.test.ts src/core/analyzer/spec-vector-index.test.ts src/core/services/mcp-handlers/traversal.test.ts src/core/services/mcp-watcher-parity.test.ts src/core/services/mcp-watcher-incremental.test.ts","test:integration":"vitest run --config vitest.integration.config.ts","test:api-consumer":"npm run build && node scripts/api-consumer-smoke.mjs","bench:reachability":"node scripts/bench-reachability.mjs","skill:install-local":"node scripts/install-skill.js","test:integration:ci":"vitest run --config vitest.integration.config.ts src/api/analyze-parity.integration.test.ts src/api/generate.integration.test.ts src/api/run-dry-run.integration.test.ts src/api/verify.e2e.integration.test.ts src/cli/commands/analyze.integration.test.ts src/core/analyzer/html-asset-edges.integration.test.ts src/core/analyzer/html-inline-script.e2e.integration.test.ts src/core/services/mcp-watcher.integration.test.ts src/cli/commands/watch-auto.integration.test.ts src/core/services/mcp-handlers/spec-reconciliation-workflow.e2e.integration.test.ts src/core/verifier/verification-engine.e2e.integration.test.ts","verify:reachability":"node scripts/verify-reachability-equivalence.mjs","lock:integrity:check":"node scripts/backfill-lock-integrity.mjs --check","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'","measure:certified-scale":"tsx scripts/measure-certified-scale.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"openspec":{"id":"openlore","bin":"openlore","skills":[{"dir":"openlore-orient","source":"skills/openlore-orient"}],"binArgs":["npx","--yes","openlore"],"summary":"Persistent architectural memory and deterministic structural context for AI coding agents, computed locally from your code.","commands":[{"name":"generate","summary":"Reverse-engineer OpenSpec specs from existing code"},{"name":"drift","summary":"Detect code/spec drift"},{"name":"verify","summary":"Verify specs against the codebase"},{"name":"analyze","summary":"Build the structural analysis graph (no API key)"},{"name":"orient","summary":"One-shot structural orientation for a task"},{"name":"digest","summary":"Emit the compact codebase digest"},{"name":"decisions","summary":"Manage architectural decision records"},{"name":"change-status","summary":"Compute OpenSpec change status from documented evidence"}],"namespace":"lore","displayName":"OpenLore","openspecCompat":">=0.1.0","ownsConfigKeys":["openlore"],"manifestVersion":1},"_resolved":"/home/runner/work/OpenLore/OpenLore/release-artifact/openlore-3.2.0.tgz","overrides":{"ws":"^8.21.0","hono":"^4.12.34","sharp":"^0.35.4","nanoid":"^3.3.17","undici":"^8.9.0","adm-zip":"^0.6.1","js-yaml":"^4.3.0","fast-uri":"^3.1.7","@google/genai":{"protobufjs":"^7.6.5"},"brace-expansion":"^5.0.9","onnxruntime-web":{"protobufjs":"^7.6.5"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@hono/node-server":"^2.0.5","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.9.0","@google/genai":{"protobufjs":"^7.6.5"}}},"_integrity":"sha512-pnfCqsguAeBVqkwgvXybyiwAp8JQuJRPCNRR4sPdvhNgX7JrsQCji9Eg6K83xwCiE4RzfjD4oOiePiB4YWMzqw==","repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.19.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ora":"^9.4.1","glob":"^13.0.6","yaml":"^2.6.1","chalk":"^6.0.0","ignore":"^7.0.8","chokidar":"^5.0.0","commander":"^15.0.0","minimatch":"^10.2.6","jsonc-parser":"^3.3.1","web-tree-sitter":"0.27.0","@inquirer/prompts":"^8.7.1","@repomix/tree-sitter-wasms":"0.1.17"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.71.0","eslint":"^10.9.1","vitest":"^5.0.0","globals":"^17.7.0","typebox":"1.3.30","@eslint/js":"^10.0.1","fast-check":"^4.9.0","typescript":"^5.7.2","@types/node":"^26.4.0","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^5.0.0","@fission-ai/openspec":"1.12.0","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-tui":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"vite":"^8.0.16","react":"^19.1.1","react-dom":"^19.1.1","protobufjs":"^8.8.0","tree-sitter":"^0.25.1","apache-arrow":"^21.1.0","tree-sitter-c":"^0.24.1","tree-sitter-go":"^0.25.0","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.24.2","@lancedb/lancedb":"0.38.0","tree-sitter-bash":"^0.25.1","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.25.0","tree-sitter-c-sharp":"^0.23.5","@vitejs/plugin-react":"^6.1.1","tree-sitter-typescript":"^0.23.2","@huggingface/transformers":"^4.2.0","@modelcontextprotocol/sdk":"^1.27.1","@tree-sitter-grammars/tree-sitter-lua":"^0.4.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_3.2.0_1789337576835_0.3449641599629507","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"openlore","version":"3.3.0","keywords":["architectural-memory","structural-analysis","code-analysis","call-graph","static-analysis","ai-coding-agents","mcp","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@3.3.0","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./skills"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"8205598894bf4a2ca552fa191a1f56b20d690593","tarball":"https://registry.npmjs.org/openlore/-/openlore-3.3.0.tgz","fileCount":1943,"integrity":"sha512-WdlE5/bIjpjrstBYzq1ts0W30hnZmFGbrDIT3eZ3sn/1pp4KVKq4TUNJ8Y4i9c9MFT7u2TB58ftK6qaObt1Ojw==","signatures":[{"sig":"MEUCIQDAwNP4XUJPUZ/LH3OoC+9JSr1I3wUiaaN6iSwA/zqg4gIgfH07ldOxlrZV/nwMci4sJEMpfm4H8YKCosNKlOIoil0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEu9rm96Phn17VnESNwzmNOBezyBfkNj87EazoCDZ/taAiBw6Q1wKLjsZad+FliqyKyEwrSqaimICxi7aQ7Ldd8OXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@3.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16171223},"main":"dist/api/index.js","type":"module","_from":"file:openlore-3.3.0.tgz","types":"dist/api/index.d.ts","engines":{"node":"^22.19.0 || >=23.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"},"./serve-descriptor":{"types":"./dist/api/serve-descriptor.d.ts","import":"./dist/api/serve-descriptor.js"}},"scripts":{"dev":"tsx watch src/cli/index.ts","fuzz":"vitest run src/fuzz","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","test:unit":"vitest run --exclude src/core/analyzer/extractor-redos.test.ts --exclude src/core/analyzer/derived-artifact-equivalence.test.ts --exclude src/core/analyzer/hash-keyed-analyze.test.ts --exclude src/core/analyzer/pass1-fact-cache.test.ts --exclude src/core/analyzer/extraction-pool.test.ts --exclude src/core/analyzer/extraction-pool-threads.test.ts --exclude src/core/analyzer/condensation.test.ts --exclude src/core/analyzer/index-bundle.test.ts --exclude src/core/analyzer/bm25-corpus-persistence.test.ts --exclude src/core/analyzer/vector-index.test.ts --exclude src/core/analyzer/spec-vector-index.test.ts --exclude src/core/services/mcp-handlers/traversal.test.ts --exclude src/core/services/mcp-watcher-parity.test.ts --exclude src/core/services/mcp-watcher-incremental.test.ts","typecheck":"tsc --noEmit","audit:deps":"node scripts/audit-dependencies.mjs","audit:gate":"node scripts/audit-gate.mjs","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","postinstall":"node scripts/postinstall.mjs","test:budgets":"vitest run --no-file-parallelism src/core/analyzer/extractor-redos.test.ts","bench:surface":"tsx scripts/bench-preset-surface.ts","test:coverage":"vitest run --coverage","audit:packlist":"node scripts/audit-packlist.mjs","bench:protocol":"node --import tsx bench/run.ts","lock:integrity":"node scripts/backfill-lock-integrity.mjs","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test:run && npm run test:integration:ci && npm run audit:gate && npm run audit:packlist && npm run audit:deps","bench:selection":"tsx scripts/bench-preset-selection.ts","bench:completion":"tsx scripts/bench-preset-completion.ts","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:equivalence":"vitest run src/core/analyzer/derived-artifact-equivalence.test.ts src/core/analyzer/hash-keyed-analyze.test.ts src/core/analyzer/pass1-fact-cache.test.ts src/core/analyzer/extraction-pool.test.ts src/core/analyzer/extraction-pool-threads.test.ts src/core/analyzer/condensation.test.ts src/core/analyzer/index-bundle.test.ts src/core/analyzer/bm25-corpus-persistence.test.ts src/core/analyzer/vector-index.test.ts src/core/analyzer/spec-vector-index.test.ts src/core/services/mcp-handlers/traversal.test.ts src/core/services/mcp-watcher-parity.test.ts src/core/services/mcp-watcher-incremental.test.ts","test:integration":"vitest run --config vitest.integration.config.ts","test:api-consumer":"npm run build && node scripts/api-consumer-smoke.mjs","bench:reachability":"node scripts/bench-reachability.mjs","skill:install-local":"node scripts/install-skill.js","test:integration:ci":"vitest run --config vitest.integration.config.ts src/api/analyze-parity.integration.test.ts src/api/generate.integration.test.ts src/api/run-dry-run.integration.test.ts src/api/verify.e2e.integration.test.ts src/cli/commands/analyze.integration.test.ts src/core/analyzer/html-asset-edges.integration.test.ts src/core/analyzer/html-inline-script.e2e.integration.test.ts src/core/services/mcp-watcher.integration.test.ts src/cli/commands/watch-auto.integration.test.ts src/core/services/mcp-handlers/spec-reconciliation-workflow.e2e.integration.test.ts src/core/verifier/verification-engine.e2e.integration.test.ts","verify:reachability":"node scripts/verify-reachability-equivalence.mjs","lock:integrity:check":"node scripts/backfill-lock-integrity.mjs --check","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'","measure:certified-scale":"tsx scripts/measure-certified-scale.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"openspec":{"id":"openlore","bin":"openlore","skills":[{"dir":"openlore-orient","source":"skills/openlore-orient"}],"binArgs":["npx","--yes","openlore"],"summary":"Persistent architectural memory and deterministic structural context for AI coding agents, computed locally from your code.","commands":[{"name":"generate","summary":"Reverse-engineer OpenSpec specs from existing code"},{"name":"drift","summary":"Detect code/spec drift"},{"name":"verify","summary":"Verify specs against the codebase"},{"name":"analyze","summary":"Build the structural analysis graph (no API key)"},{"name":"orient","summary":"One-shot structural orientation for a task"},{"name":"digest","summary":"Emit the compact codebase digest"},{"name":"decisions","summary":"Manage architectural decision records"},{"name":"change-status","summary":"Compute OpenSpec change status from documented evidence"}],"namespace":"lore","displayName":"OpenLore","openspecCompat":">=0.1.0","ownsConfigKeys":["openlore"],"manifestVersion":1},"_resolved":"/home/runner/work/OpenLore/OpenLore/release-artifact/openlore-3.3.0.tgz","overrides":{"ws":"^8.21.0","hono":"^4.12.34","sharp":"^0.35.4","nanoid":"^3.3.17","undici":"^8.9.0","adm-zip":"^0.6.1","js-yaml":"^4.3.0","fast-uri":"^3.1.7","@google/genai":{"protobufjs":"^7.6.5"},"brace-expansion":"^5.0.9","onnxruntime-web":{"protobufjs":"^7.6.5"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@hono/node-server":"^2.0.5","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.9.0","@google/genai":{"protobufjs":"^7.6.5"}}},"_integrity":"sha512-WdlE5/bIjpjrstBYzq1ts0W30hnZmFGbrDIT3eZ3sn/1pp4KVKq4TUNJ8Y4i9c9MFT7u2TB58ftK6qaObt1Ojw==","repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.19.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"ora":"^9.4.1","glob":"^13.0.6","yaml":"^2.6.1","chalk":"^6.0.0","ignore":"^7.0.8","chokidar":"^5.0.0","commander":"^15.0.0","minimatch":"^10.2.6","jsonc-parser":"^3.3.1","web-tree-sitter":"0.27.0","@inquirer/prompts":"^8.7.1","@repomix/tree-sitter-wasms":"0.1.17"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.71.0","eslint":"^10.9.1","vitest":"^5.0.0","globals":"^17.7.0","typebox":"1.3.32","@eslint/js":"^10.0.1","fast-check":"^4.9.0","typescript":"^5.7.2","@types/node":"^26.4.0","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^5.0.0","@fission-ai/openspec":"1.13.0","@earendil-works/pi-ai":"^0.85.1","@earendil-works/pi-tui":"^0.85.1","@earendil-works/pi-coding-agent":"^0.85.1"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"vite":"^8.0.16","react":"^19.1.1","react-dom":"^19.1.1","protobufjs":"^8.8.0","tree-sitter":"^0.25.1","apache-arrow":"^21.1.0","tree-sitter-c":"^0.24.1","tree-sitter-go":"^0.25.0","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.24.2","@lancedb/lancedb":"0.38.0","tree-sitter-bash":"^0.25.1","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.25.0","tree-sitter-c-sharp":"^0.23.5","@vitejs/plugin-react":"^6.1.1","tree-sitter-typescript":"^0.23.2","@huggingface/transformers":"^4.2.0","@modelcontextprotocol/sdk":"^1.27.1","@tree-sitter-grammars/tree-sitter-lua":"^0.4.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_3.3.0_1789946744275_0.7327227584808014","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"openlore","version":"3.3.1","keywords":["architectural-memory","structural-analysis","code-analysis","call-graph","static-analysis","ai-coding-agents","mcp","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@3.3.1","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./skills"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"a2f9b5997c41acaa30f22287cc238a111a0cdf54","tarball":"https://registry.npmjs.org/openlore/-/openlore-3.3.1.tgz","fileCount":1947,"integrity":"sha512-iDg86/Vt+hxSUgBek1Dh2sG0D+DGSyXqD9OGjerko2nf2mHCcyccCC2hiWsEDg1lnP6cScJ4P6Yya/Ef6nrd7g==","signatures":[{"sig":"MEYCIQCAVYiezwTnq9LD8UVglMIwspjwcVX2x8Osb2bp/wl+xAIhALkMol/X9tdQtFM5tDWxm62AIFxEZJ6ZaK1ygZV/iB1g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICMNmHAfLjLcqkZA0qkwmcJK+KS09IRwOn/mSiKiVJdtAiBzYbaRN6mVsuz9qhIo/1dkmTZOeV0N2rAZC1xDJzL0ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@3.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16229454},"main":"dist/api/index.js","type":"module","_from":"file:openlore-3.3.1.tgz","types":"dist/api/index.d.ts","engines":{"node":"^22.19.0 || >=23.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"},"./serve-descriptor":{"types":"./dist/api/serve-descriptor.d.ts","import":"./dist/api/serve-descriptor.js"}},"scripts":{"dev":"tsx watch src/cli/index.ts","fuzz":"vitest run src/fuzz","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","test:unit":"vitest run --exclude src/core/analyzer/extractor-redos.test.ts --exclude src/core/analyzer/derived-artifact-equivalence.test.ts --exclude src/core/analyzer/hash-keyed-analyze.test.ts --exclude src/core/analyzer/pass1-fact-cache.test.ts --exclude src/core/analyzer/extraction-pool.test.ts --exclude src/core/analyzer/extraction-pool-threads.test.ts --exclude src/core/analyzer/condensation.test.ts --exclude src/core/analyzer/index-bundle.test.ts --exclude src/core/analyzer/bm25-corpus-persistence.test.ts --exclude src/core/analyzer/vector-index.test.ts --exclude src/core/analyzer/spec-vector-index.test.ts --exclude src/core/services/mcp-handlers/traversal.test.ts --exclude src/core/services/mcp-watcher-parity.test.ts --exclude src/core/services/mcp-watcher-incremental.test.ts","typecheck":"tsc --noEmit","audit:deps":"node scripts/audit-dependencies.mjs","audit:gate":"node scripts/audit-gate.mjs","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","postinstall":"node scripts/postinstall.mjs","test:budgets":"vitest run --no-file-parallelism src/core/analyzer/extractor-redos.test.ts","bench:surface":"tsx scripts/bench-preset-surface.ts","test:coverage":"vitest run --coverage","audit:packlist":"node scripts/audit-packlist.mjs","bench:protocol":"node --import tsx bench/run.ts","lock:integrity":"node scripts/backfill-lock-integrity.mjs","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test:run && npm run test:integration:ci && npm run audit:gate && npm run audit:packlist && npm run audit:deps","bench:selection":"tsx scripts/bench-preset-selection.ts","bench:completion":"tsx scripts/bench-preset-completion.ts","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:equivalence":"vitest run src/core/analyzer/derived-artifact-equivalence.test.ts src/core/analyzer/hash-keyed-analyze.test.ts src/core/analyzer/pass1-fact-cache.test.ts src/core/analyzer/extraction-pool.test.ts src/core/analyzer/extraction-pool-threads.test.ts src/core/analyzer/condensation.test.ts src/core/analyzer/index-bundle.test.ts src/core/analyzer/bm25-corpus-persistence.test.ts src/core/analyzer/vector-index.test.ts src/core/analyzer/spec-vector-index.test.ts src/core/services/mcp-handlers/traversal.test.ts src/core/services/mcp-watcher-parity.test.ts src/core/services/mcp-watcher-incremental.test.ts","test:integration":"vitest run --config vitest.integration.config.ts","test:api-consumer":"npm run build && node scripts/api-consumer-smoke.mjs","bench:reachability":"node scripts/bench-reachability.mjs","skill:install-local":"node scripts/install-skill.js","test:integration:ci":"vitest run --config vitest.integration.config.ts src/api/analyze-parity.integration.test.ts src/api/generate.integration.test.ts src/api/run-dry-run.integration.test.ts src/api/verify.e2e.integration.test.ts src/cli/commands/analyze.integration.test.ts src/core/analyzer/html-asset-edges.integration.test.ts src/core/analyzer/html-inline-script.e2e.integration.test.ts src/core/services/mcp-watcher.integration.test.ts src/cli/commands/watch-auto.integration.test.ts src/core/services/mcp-handlers/spec-reconciliation-workflow.e2e.integration.test.ts src/core/verifier/verification-engine.e2e.integration.test.ts","verify:reachability":"node scripts/verify-reachability-equivalence.mjs","lock:integrity:check":"node scripts/backfill-lock-integrity.mjs --check","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'","measure:certified-scale":"tsx scripts/measure-certified-scale.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"openspec":{"id":"openlore","bin":"openlore","skills":[{"dir":"openlore-orient","source":"skills/openlore-orient"}],"binArgs":["npx","--yes","openlore"],"summary":"Persistent architectural memory and deterministic structural context for AI coding agents, computed locally from your code.","commands":[{"name":"generate","summary":"Reverse-engineer OpenSpec specs from existing code"},{"name":"drift","summary":"Detect code/spec drift"},{"name":"verify","summary":"Verify specs against the codebase"},{"name":"analyze","summary":"Build the structural analysis graph (no API key)"},{"name":"orient","summary":"One-shot structural orientation for a task"},{"name":"digest","summary":"Emit the compact codebase digest"},{"name":"decisions","summary":"Manage architectural decision records"},{"name":"change-status","summary":"Compute OpenSpec change status from documented evidence"}],"namespace":"lore","displayName":"OpenLore","openspecCompat":">=0.1.0","ownsConfigKeys":["openlore"],"manifestVersion":1},"_resolved":"/home/runner/work/OpenLore/OpenLore/release-artifact/openlore-3.3.1.tgz","overrides":{"ws":"^8.21.0","hono":"^4.12.34","sharp":"^0.35.5","nanoid":"^3.3.17","undici":"^8.9.0","adm-zip":"^0.6.1","js-yaml":"^4.3.0","fast-uri":"^3.1.8","@google/genai":{"protobufjs":"^7.6.5"},"brace-expansion":"^5.0.12","onnxruntime-web":{"protobufjs":"^7.6.5"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@hono/node-server":"^2.0.5","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.9.0","@google/genai":{"protobufjs":"^7.6.5"}}},"_integrity":"sha512-iDg86/Vt+hxSUgBek1Dh2sG0D+DGSyXqD9OGjerko2nf2mHCcyccCC2hiWsEDg1lnP6cScJ4P6Yya/Ef6nrd7g==","repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.19.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"ora":"^9.4.1","glob":"^13.0.6","yaml":"^2.6.1","chalk":"^6.0.0","ignore":"^7.0.8","chokidar":"^5.0.0","commander":"^15.0.0","minimatch":"^10.2.6","jsonc-parser":"^3.3.1","web-tree-sitter":"0.27.0","@inquirer/prompts":"^8.7.1","@repomix/tree-sitter-wasms":"0.1.17"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.71.0","eslint":"^10.9.1","vitest":"^5.0.0","globals":"^17.7.0","typebox":"1.3.34","@eslint/js":"^10.0.1","fast-check":"^4.9.0","typescript":"^5.7.2","@types/node":"^26.4.0","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^5.0.0","@fission-ai/openspec":"1.14.0","@earendil-works/pi-ai":"^1.0.1","@earendil-works/pi-tui":"^1.0.1","@earendil-works/pi-coding-agent":"^1.0.1"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"vite":"^8.0.16","react":"^19.1.1","react-dom":"^19.1.1","protobufjs":"^8.8.0","tree-sitter":"^0.25.1","apache-arrow":"^21.1.0","tree-sitter-c":"^0.24.1","tree-sitter-go":"^0.25.0","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.24.2","@lancedb/lancedb":"0.39.0","tree-sitter-bash":"^0.25.1","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.25.0","tree-sitter-c-sharp":"^0.23.5","@vitejs/plugin-react":"^6.1.1","tree-sitter-typescript":"^0.23.2","@huggingface/transformers":"^4.2.0","@modelcontextprotocol/sdk":"^1.27.1","@tree-sitter-grammars/tree-sitter-lua":"^0.4.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_3.3.1_1791674266989_0.8196512152197373","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"openlore","version":"3.4.0","keywords":["architectural-memory","structural-analysis","code-analysis","call-graph","static-analysis","ai-coding-agents","mcp","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@3.4.0","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./skills"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"90c91688be10c0bd04c6006da9af469ec39fae9a","tarball":"https://registry.npmjs.org/openlore/-/openlore-3.4.0.tgz","fileCount":1983,"integrity":"sha512-3VjLIkRini4sW9B2LwMe7OkrjlDYw3fhDNquPFW8yuU0jbETfzARBNatfdXa+hsQ2HmevqHXbN9mtgDH1rsCnA==","signatures":[{"sig":"MEUCIFUbPAz9ZhPKuupFk7HiTIAMMnIsa/IpQLc/LI19zddXAiEAoim7g/xJJ1LI/2O2nWMkp83h2DzlcG7bDPJ1CBEml9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCbJbMo1837n7Uo9ijKjO89K9W6/2NrH03gl8hesvjemAIhANqLoFGy1dBHcVuDo1++J30bwYYrWMgS3iaBXRyltmhE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@3.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16764194},"main":"dist/api/index.js","type":"module","_from":"file:openlore-3.4.0.tgz","types":"dist/api/index.d.ts","engines":{"node":"^22.19.0 || >=23.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"},"./serve-descriptor":{"types":"./dist/api/serve-descriptor.d.ts","import":"./dist/api/serve-descriptor.js"}},"scripts":{"dev":"tsx watch src/cli/index.ts","fuzz":"vitest run src/fuzz","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","test:unit":"vitest run --exclude src/core/analyzer/extractor-redos.test.ts --exclude src/core/analyzer/derived-artifact-equivalence.test.ts --exclude src/core/analyzer/hash-keyed-analyze.test.ts --exclude src/core/analyzer/pass1-fact-cache.test.ts --exclude src/core/analyzer/extraction-pool.test.ts --exclude src/core/analyzer/extraction-pool-threads.test.ts --exclude src/core/analyzer/condensation.test.ts --exclude src/core/analyzer/index-bundle.test.ts --exclude src/core/analyzer/bm25-corpus-persistence.test.ts --exclude src/core/analyzer/vector-index.test.ts --exclude src/core/analyzer/spec-vector-index.test.ts --exclude src/core/services/mcp-handlers/traversal.test.ts --exclude src/core/services/mcp-watcher-parity.test.ts --exclude src/core/services/mcp-watcher-incremental.test.ts","typecheck":"tsc --noEmit","audit:deps":"node scripts/audit-dependencies.mjs","audit:gate":"node scripts/audit-gate.mjs","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","postinstall":"node scripts/postinstall.mjs","test:budgets":"vitest run --no-file-parallelism src/core/analyzer/extractor-redos.test.ts","bench:surface":"tsx scripts/bench-preset-surface.ts","test:coverage":"vitest run --coverage","audit:packlist":"node scripts/audit-packlist.mjs","bench:protocol":"node --import tsx bench/run.ts","lock:integrity":"node scripts/backfill-lock-integrity.mjs","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test:run && npm run test:integration:ci && npm run audit:gate && npm run audit:packlist && npm run audit:deps","bench:selection":"tsx scripts/bench-preset-selection.ts","bench:completion":"tsx scripts/bench-preset-completion.ts","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:equivalence":"vitest run src/core/analyzer/derived-artifact-equivalence.test.ts src/core/analyzer/hash-keyed-analyze.test.ts src/core/analyzer/pass1-fact-cache.test.ts src/core/analyzer/extraction-pool.test.ts src/core/analyzer/extraction-pool-threads.test.ts src/core/analyzer/condensation.test.ts src/core/analyzer/index-bundle.test.ts src/core/analyzer/bm25-corpus-persistence.test.ts src/core/analyzer/vector-index.test.ts src/core/analyzer/spec-vector-index.test.ts src/core/services/mcp-handlers/traversal.test.ts src/core/services/mcp-watcher-parity.test.ts src/core/services/mcp-watcher-incremental.test.ts","test:integration":"vitest run --config vitest.integration.config.ts","test:api-consumer":"npm run build && node scripts/api-consumer-smoke.mjs","bench:reachability":"node scripts/bench-reachability.mjs","skill:install-local":"node scripts/install-skill.js","test:integration:ci":"vitest run --config vitest.integration.config.ts src/api/analyze-parity.integration.test.ts src/api/generate.integration.test.ts src/api/run-dry-run.integration.test.ts src/api/verify.e2e.integration.test.ts src/cli/commands/analyze.integration.test.ts src/core/analyzer/html-asset-edges.integration.test.ts src/core/analyzer/html-inline-script.e2e.integration.test.ts src/core/services/mcp-watcher.integration.test.ts src/cli/commands/watch-auto.integration.test.ts src/core/services/mcp-handlers/spec-reconciliation-workflow.e2e.integration.test.ts src/core/verifier/verification-engine.e2e.integration.test.ts","verify:reachability":"node scripts/verify-reachability-equivalence.mjs","lock:integrity:check":"node scripts/backfill-lock-integrity.mjs --check","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'","measure:certified-scale":"tsx scripts/measure-certified-scale.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"openspec":{"id":"openlore","bin":"openlore","skills":[{"dir":"openlore-orient","source":"skills/openlore-orient"}],"binArgs":["npx","--yes","openlore"],"summary":"Persistent architectural memory and deterministic structural context for AI coding agents, computed locally from your code.","commands":[{"name":"generate","summary":"Reverse-engineer OpenSpec specs from existing code"},{"name":"drift","summary":"Detect code/spec drift"},{"name":"verify","summary":"Verify specs against the codebase"},{"name":"analyze","summary":"Build the structural analysis graph (no API key)"},{"name":"orient","summary":"One-shot structural orientation for a task"},{"name":"digest","summary":"Emit the compact codebase digest"},{"name":"decisions","summary":"Manage architectural decision records"},{"name":"change-status","summary":"Compute OpenSpec change status from documented evidence"}],"namespace":"lore","displayName":"OpenLore","openspecCompat":">=0.1.0","ownsConfigKeys":["openlore"],"manifestVersion":1},"_resolved":"/home/runner/work/OpenLore/OpenLore/release-artifact/openlore-3.4.0.tgz","overrides":{"ws":"^8.21.0","hono":"^4.12.34","sharp":"^0.35.5","nanoid":"^3.3.17","undici":"^8.9.0","adm-zip":"^0.6.1","js-yaml":"^4.3.0","fast-uri":"^3.1.8","@google/genai":{"protobufjs":"^7.6.5"},"brace-expansion":"^5.0.12","onnxruntime-web":{"protobufjs":"^7.6.5"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@hono/node-server":"^2.0.5","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.9.0","@google/genai":{"protobufjs":"^7.6.5"}}},"_integrity":"sha512-3VjLIkRini4sW9B2LwMe7OkrjlDYw3fhDNquPFW8yuU0jbETfzARBNatfdXa+hsQ2HmevqHXbN9mtgDH1rsCnA==","repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.19.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"ora":"^9.4.1","glob":"^13.0.6","yaml":"^2.6.1","chalk":"^6.0.0","ignore":"^7.0.8","chokidar":"^5.0.0","commander":"^15.0.0","minimatch":"^10.2.6","jsonc-parser":"^3.3.1","web-tree-sitter":"0.27.1","@inquirer/prompts":"^8.7.1","@repomix/tree-sitter-wasms":"0.1.17"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.71.0","eslint":"^10.9.1","vitest":"^5.0.0","globals":"^17.7.0","typebox":"1.3.36","@eslint/js":"^10.0.1","fast-check":"^4.9.0","typescript":"^5.7.2","@types/node":"^26.4.0","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^5.0.0","@fission-ai/openspec":"1.14.1","@earendil-works/pi-ai":"^1.0.1","@earendil-works/pi-tui":"^1.0.1","@earendil-works/pi-coding-agent":"^1.0.1"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"vite":"^8.0.16","react":"^19.1.1","react-dom":"^19.1.1","protobufjs":"^8.8.0","tree-sitter":"^0.25.1","apache-arrow":"^21.1.0","tree-sitter-c":"^0.24.1","tree-sitter-go":"^0.25.0","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.24.2","@lancedb/lancedb":"0.40.0","tree-sitter-bash":"^0.25.1","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.25.0","tree-sitter-c-sharp":"^0.23.5","@vitejs/plugin-react":"^6.1.1","tree-sitter-typescript":"^0.23.2","@huggingface/transformers":"^4.2.0","@modelcontextprotocol/sdk":"^1.27.1","@tree-sitter-grammars/tree-sitter-lua":"^0.4.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_3.4.0_1792369121525_0.36583505298543706","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"openlore","version":"3.5.0","keywords":["architectural-memory","structural-analysis","code-analysis","call-graph","static-analysis","ai-coding-agents","mcp","cli","pi-package"],"author":{"name":"Clay Good"},"license":"MIT","_id":"openlore@3.5.0","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"homepage":"https://github.com/clay-good/openlore#readme","bugs":{"url":"https://github.com/clay-good/openlore/issues"},"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./skills"],"extensions":["./dist/pi/extension.js"]},"bin":{"openlore":"dist/cli/index.js"},"dist":{"shasum":"0f0973be190f074e3c831d80253f801a9f1b80b5","tarball":"https://registry.npmjs.org/openlore/-/openlore-3.5.0.tgz","fileCount":2003,"integrity":"sha512-fv+gfy+Rnt7opOgO58IjBDhgzxrktY37DLmlSr2Y4u+BswhA4NnJbyaT1Mva9eI0cPGWkk0oZgIM64MSGHHQ/A==","signatures":[{"sig":"MEUCIDjzh8SMNYOuW1QHgKvEKmRHY/IAMgzXav506VtUfWUfAiEAziwYwSa8LlctF/hnkKOS7/D0CO7xrCUeT0CQM4LWHm4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAr1sJCIHnzLo8DxXWIKgN8m/jIrXjGEsq6JuKGzX7+MAiBTsdsC0QSkcEBLGsYM16T1yhqwud6xQRB0xAlSNC2xfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@3.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16887405},"main":"dist/api/index.js","type":"module","_from":"file:openlore-3.5.0.tgz","types":"dist/api/index.d.ts","engines":{"node":"^22.19.0 || >=23.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"},"./serve-descriptor":{"types":"./dist/api/serve-descriptor.d.ts","import":"./dist/api/serve-descriptor.js"}},"scripts":{"dev":"tsx watch src/cli/index.ts","fuzz":"vitest run src/fuzz","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","test:unit":"vitest run --exclude src/core/analyzer/extractor-redos.test.ts --exclude src/core/analyzer/derived-artifact-equivalence.test.ts --exclude src/core/analyzer/hash-keyed-analyze.test.ts --exclude src/core/analyzer/pass1-fact-cache.test.ts --exclude src/core/analyzer/extraction-pool.test.ts --exclude src/core/analyzer/extraction-pool-threads.test.ts --exclude src/core/analyzer/condensation.test.ts --exclude src/core/analyzer/index-bundle.test.ts --exclude src/core/analyzer/bm25-corpus-persistence.test.ts --exclude src/core/analyzer/vector-index.test.ts --exclude src/core/analyzer/spec-vector-index.test.ts --exclude src/core/services/mcp-handlers/traversal.test.ts --exclude src/core/services/mcp-watcher-parity.test.ts --exclude src/core/services/mcp-watcher-incremental.test.ts","typecheck":"tsc --noEmit","audit:deps":"node scripts/audit-dependencies.mjs","audit:gate":"node scripts/audit-gate.mjs","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","postinstall":"node scripts/postinstall.mjs","test:budgets":"vitest run --no-file-parallelism src/core/analyzer/extractor-redos.test.ts","bench:surface":"tsx scripts/bench-preset-surface.ts","test:coverage":"vitest run --coverage","audit:packlist":"node scripts/audit-packlist.mjs","bench:protocol":"node --import tsx bench/run.ts","lock:integrity":"node scripts/backfill-lock-integrity.mjs","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test:run && npm run test:integration:ci && npm run audit:gate && npm run audit:packlist && npm run audit:deps","bench:selection":"tsx scripts/bench-preset-selection.ts","bench:completion":"tsx scripts/bench-preset-completion.ts","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:equivalence":"vitest run src/core/analyzer/derived-artifact-equivalence.test.ts src/core/analyzer/hash-keyed-analyze.test.ts src/core/analyzer/pass1-fact-cache.test.ts src/core/analyzer/extraction-pool.test.ts src/core/analyzer/extraction-pool-threads.test.ts src/core/analyzer/condensation.test.ts src/core/analyzer/index-bundle.test.ts src/core/analyzer/bm25-corpus-persistence.test.ts src/core/analyzer/vector-index.test.ts src/core/analyzer/spec-vector-index.test.ts src/core/services/mcp-handlers/traversal.test.ts src/core/services/mcp-watcher-parity.test.ts src/core/services/mcp-watcher-incremental.test.ts","test:integration":"vitest run --config vitest.integration.config.ts","test:api-consumer":"npm run build && node scripts/api-consumer-smoke.mjs","bench:reachability":"node scripts/bench-reachability.mjs","skill:install-local":"node scripts/install-skill.js","test:integration:ci":"vitest run --config vitest.integration.config.ts src/api/analyze-parity.integration.test.ts src/api/generate.integration.test.ts src/api/run-dry-run.integration.test.ts src/api/verify.e2e.integration.test.ts src/cli/commands/analyze.integration.test.ts src/core/analyzer/html-asset-edges.integration.test.ts src/core/analyzer/html-inline-script.e2e.integration.test.ts src/core/services/mcp-watcher.integration.test.ts src/cli/commands/watch-auto.integration.test.ts src/core/services/mcp-handlers/spec-reconciliation-workflow.e2e.integration.test.ts src/core/services/mcp-handlers/moat-tools.e2e.integration.test.ts src/core/verifier/verification-engine.e2e.integration.test.ts","verify:reachability":"node scripts/verify-reachability-equivalence.mjs","lock:integrity:check":"node scripts/backfill-lock-integrity.mjs --check","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'","measure:certified-scale":"tsx scripts/measure-certified-scale.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"openspec":{"id":"openlore","bin":"openlore","skills":[{"dir":"openlore-orient","source":"skills/openlore-orient"}],"binArgs":["npx","--yes","openlore"],"summary":"Persistent architectural memory and deterministic structural context for AI coding agents, computed locally from your code.","commands":[{"name":"generate","summary":"Reverse-engineer OpenSpec specs from existing code"},{"name":"drift","summary":"Detect code/spec drift"},{"name":"verify","summary":"Verify specs against the codebase"},{"name":"analyze","summary":"Build the structural analysis graph (no API key)"},{"name":"orient","summary":"One-shot structural orientation for a task"},{"name":"digest","summary":"Emit the compact codebase digest"},{"name":"decisions","summary":"Manage architectural decision records"},{"name":"change-status","summary":"Compute OpenSpec change status from documented evidence"}],"namespace":"lore","displayName":"OpenLore","openspecCompat":">=0.1.0","ownsConfigKeys":["openlore"],"manifestVersion":1},"_resolved":"/home/runner/work/OpenLore/OpenLore/release-artifact/openlore-3.5.0.tgz","overrides":{"ws":"^8.21.0","hono":"^4.12.34","sharp":"^0.35.5","nanoid":"^3.3.17","undici":"^8.12.2","adm-zip":"^0.6.1","js-yaml":"^4.3.0","fast-uri":"^3.1.9","@google/genai":{"protobufjs":"^7.6.5"},"brace-expansion":"^5.0.12","onnxruntime-web":{"protobufjs":"^7.6.5"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@hono/node-server":"^2.0.5","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.12.2","@google/genai":{"protobufjs":"^7.6.5"}}},"_integrity":"sha512-fv+gfy+Rnt7opOgO58IjBDhgzxrktY37DLmlSr2Y4u+BswhA4NnJbyaT1Mva9eI0cPGWkk0oZgIM64MSGHHQ/A==","repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.19.0","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"ora":"^9.4.1","glob":"^13.0.6","yaml":"^2.6.1","chalk":"^6.0.0","ignore":"^7.0.8","chokidar":"^5.0.0","commander":"^15.0.0","minimatch":"^10.2.6","jsonc-parser":"^3.3.1","web-tree-sitter":"0.27.1","@inquirer/prompts":"^8.7.1","@repomix/tree-sitter-wasms":"0.1.17"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.71.0","eslint":"^10.9.1","vitest":"^5.0.0","globals":"^17.7.0","typebox":"1.4.2","@eslint/js":"^10.0.1","fast-check":"^4.9.0","typescript":"^5.7.2","@types/node":"^26.4.0","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^5.0.0","@fission-ai/openspec":"1.14.3","@earendil-works/pi-ai":"^1.0.1","@earendil-works/pi-tui":"^1.0.1","@earendil-works/pi-coding-agent":"^1.0.1"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"vite":"^8.0.16","react":"^19.1.1","react-dom":"^19.1.1","protobufjs":"^8.8.0","tree-sitter":"^0.25.1","apache-arrow":"^21.1.0","tree-sitter-c":"^0.24.1","tree-sitter-go":"^0.25.0","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.24.2","@lancedb/lancedb":"0.40.0","tree-sitter-bash":"^0.25.1","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.25.0","tree-sitter-c-sharp":"^0.23.5","@vitejs/plugin-react":"^6.1.1","tree-sitter-typescript":"^0.23.2","@huggingface/transformers":"^4.2.0","@modelcontextprotocol/sdk":"^1.27.1","@tree-sitter-grammars/tree-sitter-lua":"^0.4.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openlore_3.5.0_1792964424513_0.9785299823008335","host":"s3://npm-registry-packages-npm-production"}},"3.6.0":{"pi":{"image":"https://raw.githubusercontent.com/clay-good/openlore/main/docs/openlore-gallery.png","skills":["./skills"],"extensions":["./dist/pi/extension.js"]},"_id":"openlore@3.6.0","bin":{"openlore":"dist/cli/index.js"},"bugs":{"url":"https://github.com/clay-good/openlore/issues"},"dist":{"shasum":"8857b21c63ebc8b18721d0085eb90ff0a71720ea","tarball":"https://registry.npmjs.org/openlore/-/openlore-3.6.0.tgz","fileCount":2246,"integrity":"sha512-37eKX88E4duI4CnbO4Ji59U5Vj4obFMtrH7jy5uvn4ZpZ853fRUgZJaF3cuxuzpcjvS5a7RodyJsro/ylVkyvw==","signatures":[{"sig":"MEQCIBPzP2rmR/D3qblVzA+EmWsxL7eMoawzd3p30+xmY4+WAiBQiE8Ve87oE/G27W1HvZkT26uBGBqDAUAgz9n0SIAS+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCHZbv47ypyJ02hoc7fp3+i5Yu578nGrZww+lnc5khKvwIhAJbY78VzZAMABqoPWLnL6XGbO/XY74/BwImGlGkPprH1"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openlore@3.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19832478},"main":"dist/api/index.js","name":"openlore","type":"module","_from":"file:openlore-3.6.0.tgz","types":"dist/api/index.d.ts","author":{"name":"Clay Good"},"engines":{"node":"^22.22.0 || >=23.5.0"},"exports":{".":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"import":"./dist/cli/index.js"},"./serve-descriptor":{"types":"./dist/api/serve-descriptor.d.ts","import":"./dist/api/serve-descriptor.js"}},"license":"MIT","scripts":{"dev":"tsx watch src/cli/index.ts","fuzz":"vitest run src/fuzz","lint":"eslint src","test":"vitest","view":"tsx src/cli/index.ts view","bench":"tsx scripts/bench.ts","build":"tsc && node scripts/copy-assets.mjs","clean":"rm -rf dist coverage","start":"node dist/cli/index.js","format":"eslint src --fix","test:e2e":"vitest run --config vitest.integration.config.ts --reporter=verbose","test:run":"vitest run","bench:mcp":"tsx scripts/bench-mcp.ts","test:live":"vitest run --config vitest.integration.config.ts live-data --reporter=verbose","test:unit":"vitest run --exclude src/core/analyzer/extractor-redos.test.ts --exclude src/core/analyzer/derived-artifact-equivalence.test.ts --exclude src/core/analyzer/hash-keyed-analyze.test.ts --exclude src/core/analyzer/pass1-fact-cache.test.ts --exclude src/core/analyzer/extraction-pool.test.ts --exclude src/core/analyzer/extraction-pool-threads.test.ts --exclude src/core/analyzer/condensation.test.ts --exclude src/core/analyzer/index-bundle.test.ts --exclude src/core/analyzer/bm25-corpus-persistence.test.ts --exclude src/core/analyzer/vector-index.test.ts --exclude src/core/analyzer/spec-vector-index.test.ts --exclude src/core/services/mcp-handlers/traversal.test.ts --exclude src/core/services/mcp-watcher-parity.test.ts --exclude src/core/services/mcp-watcher-incremental.test.ts","typecheck":"tsc --noEmit","audit:deps":"node scripts/audit-dependencies.mjs","audit:gate":"node scripts/audit-gate.mjs","bench:agent":"tsx scripts/bench-agent.ts","bench:watch":"tsx scripts/bench-watch.ts","build:watch":"tsc --watch","postinstall":"node scripts/postinstall.mjs","test:budgets":"vitest run --no-file-parallelism src/core/analyzer/extractor-redos.test.ts","bench:surface":"tsx scripts/bench-preset-surface.ts","test:coverage":"vitest run --coverage","audit:packlist":"node scripts/audit-packlist.mjs","bench:protocol":"node --import tsx bench/run.ts","lock:integrity":"node scripts/backfill-lock-integrity.mjs","prepublishOnly":"npm run lint && npm run typecheck && npm run build && npm run test:run && npm run test:integration:ci && npm run audit:gate && npm run audit:packlist && npm run audit:deps","bench:retrieval":"node --import tsx bench/retrieval/run.ts","bench:selection":"tsx scripts/bench-preset-selection.ts","bench:completion":"tsx scripts/bench-preset-completion.ts","homebrew:formula":"node scripts/update-homebrew-formula.mjs","test:equivalence":"vitest run src/core/analyzer/derived-artifact-equivalence.test.ts src/core/analyzer/hash-keyed-analyze.test.ts src/core/analyzer/pass1-fact-cache.test.ts src/core/analyzer/extraction-pool.test.ts src/core/analyzer/extraction-pool-threads.test.ts src/core/analyzer/condensation.test.ts src/core/analyzer/index-bundle.test.ts src/core/analyzer/bm25-corpus-persistence.test.ts src/core/analyzer/vector-index.test.ts src/core/analyzer/spec-vector-index.test.ts src/core/services/mcp-handlers/traversal.test.ts src/core/services/mcp-watcher-parity.test.ts src/core/services/mcp-watcher-incremental.test.ts","test:integration":"vitest run --config vitest.integration.config.ts","test:api-consumer":"npm run build && node scripts/api-consumer-smoke.mjs","bench:reachability":"node scripts/bench-reachability.mjs","skill:install-local":"node scripts/install-skill.js","test:integration:ci":"vitest run --config vitest.integration.config.ts src/api/analyze-parity.integration.test.ts src/api/generate.integration.test.ts src/api/run-dry-run.integration.test.ts src/api/verify.e2e.integration.test.ts src/cli/commands/analyze.integration.test.ts src/core/analyzer/html-asset-edges.integration.test.ts src/core/analyzer/html-inline-script.e2e.integration.test.ts src/core/services/mcp-watcher.integration.test.ts src/cli/commands/watch-auto.integration.test.ts src/core/services/mcp-handlers/spec-reconciliation-workflow.e2e.integration.test.ts src/core/services/mcp-handlers/moat-tools.e2e.integration.test.ts src/core/verifier/verification-engine.e2e.integration.test.ts","verify:reachability":"node scripts/verify-reachability-equivalence.mjs","lock:integrity:check":"node scripts/backfill-lock-integrity.mjs --check","test:openspec-compat":"vitest run --grep 'openspec' || echo 'No OpenSpec compat tests yet'","measure:certified-scale":"tsx scripts/measure-certified-scale.ts"},"version":"3.6.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"d9a3a6bb-918e-4edf-869c-f803c0c5800a"}},"homepage":"https://github.com/clay-good/openlore#readme","keywords":["architectural-memory","structural-analysis","code-analysis","call-graph","static-analysis","ai-coding-agents","mcp","cli","pi-package"],"_resolved":"/home/runner/work/OpenLore/OpenLore/release-artifact/openlore-3.6.0.tgz","overrides":{"ws":"^8.21.0","hono":"^4.12.34","sharp":"^0.35.5","nanoid":"^3.3.17","undici":"^8.12.2","adm-zip":"^0.6.1","js-yaml":"^4.3.0","fast-uri":"^3.1.9","minimatch":"^11.0.1","@google/genai":{"protobufjs":"^7.6.5"},"brace-expansion":"^5.0.12","onnxruntime-web":{"protobufjs":"^7.6.5"},"tree-sitter-cli":"file:stubs/tree-sitter-cli-stub","@hono/node-server":"^2.0.5","@earendil-works/pi-coding-agent":{"ws":"^8.21.0","undici":"^8.12.2","@google/genai":{"protobufjs":"^7.6.5"}}},"_integrity":"sha512-37eKX88E4duI4CnbO4Ji59U5Vj4obFMtrH7jy5uvn4ZpZ853fRUgZJaF3cuxuzpcjvS5a7RodyJsro/ylVkyvw==","repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"_npmVersion":"11.19.1","description":"Persistent architectural memory and structural cognition for AI coding agents.","directories":{},"maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"_nodeVersion":"24.22.2","dependencies":{"ora":"^10.0.0","glob":"^14.0.2","yaml":"^2.6.1","chalk":"^6.0.0","ignore":"^7.0.8","chokidar":"^6.0.0","commander":"^15.0.0","minimatch":"^11.0.1","jsonc-parser":"^3.3.1","web-tree-sitter":"0.27.1","@inquirer/prompts":"^8.7.1","@repomix/tree-sitter-wasms":"0.1.17"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","memfs":"^4.71.0","eslint":"^10.9.1","vitest":"^5.0.0","globals":"^17.7.0","typebox":"1.4.5","@eslint/js":"^10.0.1","fast-check":"^4.9.0","typescript":"^5.7.2","@types/node":"^26.4.0","typescript-eslint":"^8.19.1","@vitest/coverage-v8":"^5.0.0","@fission-ai/openspec":"1.16.0","@earendil-works/pi-ai":"^1.0.1","@earendil-works/pi-tui":"^1.0.1","@earendil-works/pi-coding-agent":"^1.0.1"},"peerDependencies":{"@fission-ai/openspec":">=0.1.0"},"optionalDependencies":{"vite":"^8.0.16","react":"^19.1.1","react-dom":"^19.1.1","protobufjs":"^8.8.0","tree-sitter":"^0.25.1","apache-arrow":"^21.1.0","tree-sitter-c":"^0.24.1","tree-sitter-go":"^0.25.0","tree-sitter-cpp":"^0.23.4","tree-sitter-php":"^0.24.2","@lancedb/lancedb":"0.41.0","tree-sitter-bash":"^0.25.1","tree-sitter-java":"^0.23.5","tree-sitter-ruby":"^0.23.1","tree-sitter-rust":"^0.24.0","tree-sitter-scala":"^0.24.0","tree-sitter-swift":"^0.7.1","tree-sitter-elixir":"^0.3.5","tree-sitter-kotlin":"^0.3.8","tree-sitter-python":"^0.25.0","tree-sitter-c-sharp":"^0.23.5","@vitejs/plugin-react":"^6.1.1","tree-sitter-typescript":"^0.23.2","@huggingface/transformers":"^4.2.0","@modelcontextprotocol/sdk":"^1.27.1","@tree-sitter-grammars/tree-sitter-lua":"^0.4.1"},"peerDependenciesMeta":{"@fission-ai/openspec":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openlore_3.6.0_1794238868380_0.26505797186312297"}}},"time":{"created":"2026-05-12T11:45:51.764Z","modified":"2026-11-09T15:41:08.960Z","2.0.0":"2026-05-12T11:45:52.114Z","2.0.1":"2026-05-17T22:29:18.647Z","2.0.2":"2026-05-26T22:24:43.837Z","2.0.3":"2026-05-27T18:00:09.476Z","2.0.4":"2026-05-27T21:15:32.323Z","2.0.5":"2026-05-29T13:30:09.851Z","2.0.6":"2026-06-01T18:51:57.018Z","2.0.7":"2026-06-01T22:04:07.651Z","2.0.8":"2026-06-02T22:29:29.071Z","2.0.9":"2026-06-03T20:09:14.005Z","2.0.10":"2026-06-05T02:02:15.238Z","2.0.11":"2026-06-06T23:56:47.437Z","2.0.12":"2026-06-07T19:08:23.149Z","2.0.13":"2026-06-07T20:20:47.964Z","2.0.14":"2026-06-09T01:38:03.739Z","2.0.15":"2026-06-10T01:04:58.966Z","2.0.16":"2026-06-10T11:36:21.404Z","2.0.17":"2026-06-12T02:46:45.195Z","2.0.18":"2026-06-14T01:16:29.285Z","2.0.19":"2026-06-16T20:40:45.897Z","2.1.0":"2026-06-18T17:40:33.184Z","2.1.1":"2026-06-19T23:50:39.094Z","2.1.2":"2026-06-20T20:29:35.850Z","2.1.3":"2026-06-22T03:16:30.686Z","2.1.4":"2026-06-27T15:59:39.500Z","2.1.5":"2026-06-28T23:18:48.355Z","2.1.6":"2026-07-19T23:09:38.512Z","2.1.7":"2026-07-26T22:44:08.398Z","2.1.8":"2026-08-02T17:06:00.922Z","2.1.9":"2026-08-10T01:38:06.342Z","2.2.0":"2026-08-17T03:15:46.013Z","3.0.1":"2026-08-24T03:01:26.281Z","3.1.0":"2026-08-31T09:16:40.627Z","3.1.1":"2026-09-09T12:02:38.319Z","3.2.0":"2026-09-13T22:12:57.137Z","3.3.0":"2026-09-20T23:25:44.440Z","3.3.1":"2026-10-10T23:17:47.153Z","3.4.0":"2026-10-19T00:18:41.698Z","3.5.0":"2026-10-25T21:40:24.669Z","3.6.0":"2026-11-09T15:41:08.604Z"},"bugs":{"url":"https://github.com/clay-good/openlore/issues"},"author":{"name":"Clay Good"},"license":"MIT","homepage":"https://github.com/clay-good/openlore#readme","keywords":["architectural-memory","structural-analysis","code-analysis","call-graph","static-analysis","ai-coding-agents","mcp","cli","pi-package"],"repository":{"url":"git+https://github.com/clay-good/openlore.git","type":"git"},"description":"Persistent architectural memory and structural cognition for AI coding agents.","maintainers":[{"name":"claygood","email":"hi@claygood.com"}],"readme":"<h1 align=\"center\">OpenLore</h1>\n\n<p align=\"center\">\n  <strong>Deterministic, local-first memory and guardrails for AI coding agents — no LLM in the hot path.</strong><br>\n  Install once. From then on it runs in the background, keeping your agent oriented and its changes safe.<br>\n  No API key. Same answer every time.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/openlore\"><img src=\"https://img.shields.io/npm/v/openlore?color=2563eb&label=npm&logo=npm&logoColor=white\" alt=\"npm version\"></a>\n  <a href=\"https://github.com/clay-good/OpenLore/actions/workflows/ci.yml\"><img src=\"https://github.com/clay-good/OpenLore/actions/workflows/ci.yml/badge.svg\" alt=\"CI status\"></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/npm/l/openlore?color=22c55e\" alt=\"MIT License\"></a>\n  <img src=\"https://img.shields.io/node/v/openlore?color=339933&logo=node.js&logoColor=white\" alt=\"Node >=22.22\">\n  <br>\n  <img src=\"https://img.shields.io/badge/MCP-ready-7c3aed?logo=anthropic&logoColor=white\" alt=\"MCP ready\">\n  <img src=\"https://img.shields.io/badge/languages-21%20%2B%2013%20IaC-f97316\" alt=\"21 languages + 13 IaC ecosystems\">\n  <img src=\"https://img.shields.io/badge/tests-5500%2B-success\" alt=\"5500+ tests\">\n  <img src=\"https://img.shields.io/badge/API_key-not_required-0ea5e9\" alt=\"No API key required\">\n  <a href=\"https://github.com/clay-good/OpenLore/stargazers\"><img src=\"https://img.shields.io/github/stars/clay-good/OpenLore?style=social\" alt=\"GitHub stars\"></a>\n</p>\n\n<p align=\"center\">\n  <code>install</code> wires your agent and indexes the repo → <code>orient</code> returns the code a task touches → <code>review</code> catches the change that breaks a contract. All local, no API key.\n</p>\n\n<p align=\"center\">\n  <strong><a href=\"#install-once-then-forget-it\">Install</a> · <a href=\"#what-you-get\">What you get</a> · <a href=\"#value-scorecard--does-it-pay-for-itself\">Benchmarks</a> · <a href=\"#openlore-vs-alternatives\">vs. Alternatives</a> · <a href=\"#documentation\">Docs</a></strong>\n</p>\n\n---\n\nAI coding agents are **amnesiac and ungoverned**. Every task restarts by re-reading the same files, long sessions drift onto stale assumptions, and nothing warns the agent when a change is about to break a contract or cross a boundary.\n\nOpenLore fixes both halves, and then gets out of your way. A **one-time static analysis** builds a live knowledge graph of your repo — call structure, types, tests, decisions, IaC. From then on your agent is **already oriented at the start of every task** and its changes are **certified before they land** — automatically, deterministically, with **no LLM in the hot path**, so the same question returns the same grounded answer and the agent is *told when a fact goes stale* instead of served a confident guess.\n\n## Install once, then forget it\n\n```bash\nnpm install -g openlore && openlore install\n```\n\nThat is the only command most people ever run. It **auto-detects your agent** (Claude Code, Cursor, Cline, Continue, Pi, AGENTS.md), wires it, registers the MCP server, and builds the index — no API key, no config, no prompts. After that, **it's on in the background and you don't think about it:**\n\n- 🔄 **Every task starts oriented, automatically** — a compact architecture digest is injected into your agent's context at the start of each session, and your agent calls `orient()` and the other tools itself over MCP. You don't type anything.\n- 🌱 **Every repo, not just this one** — `install` wires your user account too, so each new git repo you open indexes itself in the background on first touch. \"Install once\" is literal.\n- 🩹 **Always fresh** — a file watcher re-indexes as you edit and converges to a full analysis; anything it can't recompute in time is marked explicitly stale, never silently wrong.\n- 🛡️ **Changes get checked before they land** — the governance tools (and `openlore review` on a PR) run deterministically with no API key.\n\nThe CLI below exists for humans and CI — `prove`, `review`, `doctor`, `features`. The everyday path is: install, then let your agent use it.\n\n> **Zero config.** Run **`openlore features`** to see every opt-in capability (embeddings, the commit gate, the spec store…), whether it's on, and the one command to enable it. `openlore doctor` verifies the wiring.\n\n---\n\n## What you get\n\nTwo things, both deterministic and local:\n\n**🧠 Memory — your agent starts every task already oriented**\n\n- **Orient in one call** — `orient(task)` returns the relevant functions, callers, specs, tests, and insertion points (**~430µs p50** on a 15k-node graph) instead of a dozen exploratory file reads.\n- **Survives refactors** — anchored notes and decisions carry forward when a symbol is renamed or moved, instead of orphaning.\n- **One graph for everything** — application code, Infrastructure-as-Code, and architectural decisions share one graph, so a single query spans all three.\n- **Told when a fact is stale** — every response carries a brief, **factual freshness note** (the Epistemic Lease) once a cached fact has aged or the repo moved, so a long session can't drift onto a confident guess.\n\n**🛡️ Governance — guardrails on what the agent changes**\n\n- **Breaking-change verdict** — `certify_public_surface` classifies every changed export `breaking / non-breaking / potentially-breaking` and **names the consumers each break hits**. Never silently \"safe.\"\n- **Sensitive-boundary check** — `change_impact_certificate` flags when a diff **opens a new path into a boundary you declared** (reachable after the change, not before).\n- **Grounded claims** — `verify_claim` returns `confirmed / refuted / unverifiable` with a citation, before an agent asserts \"X is dead\" or \"Y is safe to change.\"\n- **One commit gate** — `openlore enforce` blocks on findings you mark `blocking`. Advisory by default, no API key.\n\n**The one line to remember:** an agent's expensive failure mode isn't ignorance — it's *confidence*. A model that doesn't know a function exists will go look. A model that \"knows\" a stale fact builds on it, and you pay at review time. OpenLore is built so the agent can be told *\"that fact is stale\"* and *\"this change opens a path you said was sensitive\"* — deterministically, with no second model guessing about the first.\n\n---\n\n## Value Scorecard — does it pay for itself?\n\nOpenLore only earns its place if an agent **with** it reaches a correct answer for less total cost than the same agent **without** it. We measure that and publish it — wins **and** losses. Numbers from the Spec 14 benchmark (`claude -p`, sonnet, N=4 medians, pinned SHAs), measured **2026-06-01**.\n\n| Scenario | Cost Δ | Round-trips Δ | Verdict |\n|---|---|---|---|\n| **Large/unfamiliar repo · deep \"how does X flow through Y\"** *(its target)* | **−7% to −21%** | **−26%** | ✅ helps — and the win grows with repo size |\n| Small/familiar repo · shallow \"who calls X\" | task-dependent *(Round 1: +43%)* | +38% | ❌ often **adds overhead** — measure first |\n\nThe win scales with codebase size (round-trips without → with):\n\n| Repo (size) | Cost Δ | Round-trips |\n|---|---|---|\n| excalidraw (~640 files) | **−21%** | 25 → 16 |\n| tokio (~790 files) | **−21%** | 17 → 13 |\n| okhttp | **−13%** | 13 → 11 |\n| django (~3k files) | **−7%** | 21 → 15 |\n| gin (110 files, smallest) | +4% *(≈even)* | 10 → 9 |\n\n> **Re-confirmed live 2026-06-03:** the deep-task win reproduces (okhttp **−13%**); the small/familiar case is task-dependent, not a flat loss (chalk **−32%** win vs. express **+59%** loss). Don't guess from our repos — run **`openlore prove --estimate`** on yours (seconds, no API key).\n\n> **Honesty contract.** We never publish a savings number the benchmark didn't produce, we always show the losses next to the wins, and every claim traces to a command you can run. Methodology: [docs/AGENT-BENCHMARKS.md](docs/AGENT-BENCHMARKS.md).\n\n---\n\n## Is OpenLore for you?\n\n| | |\n|---|---|\n| ✅ **Strong fit** | A codebase too big to hold in your head — and the model's. Private or niche code the model never memorized. Long sessions where stale assumptions compound. Polyglot repos, or code plus the IaC that deploys it. |\n| 🤔 **Try it, measure** | Mid-size repos and mixed workloads. Run **`openlore prove --estimate`** (seconds, no key) before you commit. |\n| ❌ **Probably not** | A small repo the model already knows, answering shallow questions — your agent's built-in search is cheaper, and we [publish the measurement that says so](#value-scorecard--does-it-pay-for-itself). Also: OpenLore locates and certifies, it never edits your code. |\n\n---\n\n## What your agent reaches for (you rarely type these)\n\nOnce wired, your agent calls these over MCP on its own. The default surface is the **`substrate`** preset — **15 tools**: the navigation core, the highest-value governance reads (`recall`, `verify_claim`, `blast_radius`), and the spec composites. The lean **`navigation`** preset (10 tools) and the full **83 tools** (`--preset full`) are one flag away.\n\n| When the agent needs to… | Tool |\n|-----------|------|\n| Start any task | `orient(task)` — functions, callers, specs, insertion points in one call |\n| Find which file/function handles X | `search_code` |\n| Know the blast radius of a change | `analyze_impact` — risk + up/downstream chain + governing decisions |\n| Trace how request X reaches function Y | `trace_execution_path` |\n| Pick the tests a change should run | `select_tests` — backward reachability to the reaching tests |\n| Find dead code / what dies if X is deleted | `find_dead_code` — cross-language reachability |\n| Check a whole diff before commit | `blast_radius` — callers, tests, specs that drift |\n| Tell if a diff opens a sensitive boundary | `change_impact_certificate` |\n| Tell if a change breaks a consumer's API | `certify_public_surface` — verdict, consumers named |\n| Verify a fact before asserting it | `verify_claim` — deterministic verdict + citation |\n| Record an architectural choice | `record_decision` **before** writing the code |\n\nFull reference — all 83 tools: [docs/mcp-tools.md](docs/mcp-tools.md). Ships as a Claude Code [Skill](https://docs.claude.com/en/docs/claude-code/skills) at [`skills/openlore-orient/`](skills/openlore-orient/).\n\n---\n\n## OpenLore vs. alternatives\n\nEveryone in this category answers the same first question: **how does the agent see the codebase without reading it file by file?** LSP toolkits answer with symbols, graph MCP servers with a parsed graph, search platforms with an index. OpenLore answers it too — then keeps going into the **second question almost nobody answers: what happens when the agent starts writing?** A retrieval layer makes an agent *informed*; it doesn't make it *safe*. That second half — **governance on the same graph, no LLM in the loop** — is what OpenLore is for.\n\n| | Agent built-ins | LSP toolkits | Graph MCP | Search platforms | **OpenLore** |\n|---|---|---|---|---|---|\n| Structural context instead of file reads | ❌ grep | ✓ symbols | ✓ graph | ✓ index | ✓ call graph + **IaC + decisions on one graph** |\n| Local, no API key, deterministic | Partial | ✓ | ✓ | ❌ hosted | ✓ no LLM in the hot path |\n| Cross-session memory anchored to code | ❌ | Partial | ✓ notes | ❌ | ✓ **carried across renames** |\n| Told when a cached fact goes **stale** | ❌ | ❌ | ❌ | ❌ | ✓ Epistemic Lease |\n| Breaking-change **verdict** over a diff | ❌ | ❌ | Partial | ❌ | ✓ per export, **consumers named** |\n| \"Did this diff open a sensitive path?\" | ❌ | ❌ | ❌ | ❌ | ✓ differential, pre-commit |\n| Cost effect **published with the losses** | ❌ | ❌ | ❌ | ❌ | ✓ −26% round-trips on deep tasks |\n\n**Use the other tool when it's the right one:** symbol-level *edits* (rename across files) are an LSP toolkit's home turf — OpenLore is deliberately read-only, and the two compose. Org-wide search across hundreds of repos is a search platform. Just-fast-graph-retrieval is a smaller graph MCP server. And a small, familiar repo with shallow questions is cheaper with your agent's built-in search. OpenLore also [exports SCIP](docs/scip-export.md), so it sits alongside these tools, not against them.\n\n*Comparisons reflect each project's publicly documented capabilities as of July 2026; a correction PR is always welcome.*\n\n---\n\n## What it costs\n\nMeasured on a fresh clone of [ripgrep](https://github.com/BurntSushi/ripgrep) with published `openlore@2.1.6`:\n\n| What it costs | On ripgrep (232 files) |\n|---|---|\n| **One-time index build** | **13.6 s**, entirely local — no API key, no network |\n| **Disk** | **27 MB** under `.openlore/` (gitignorable; rebuildable from source) |\n| **Per-query latency** | **~430 µs p50** in-process via the MCP server |\n| **Your source code** | never leaves the machine — no account, no telemetry (opt-in only) |\n| **Lock-in** | none — delete `.openlore/` and nothing about your repo has changed |\n\nLarge monorepos take minutes rather than seconds, stated plainly in [Known limitations](#known-limitations). Platform: Linux and Windows are exercised in CI; macOS is supported.\n\n> **Fully local — nothing phones home.** No account, no network call; your source, the index, and every query stay on your machine. The only diagnostics that exist are **opt-in and local-only**, off by default and never transmitted: `OPENLORE_TELEMETRY=1` records tool calls, agent identity, latency, error messages, decision titles, and lease events to the gitignored `.openlore/telemetry/` directory, and `OPENLORE_LLM_LOGS=1` stores prompts and responses (after secret redaction) in the gitignored `.openlore/logs/` directory. → [docs/configuration.md](docs/configuration.md)\n\n---\n\n## Languages, Infrastructure-as-Code & contracts\n\n**Languages**: TypeScript · JavaScript · Python · Go · Rust · Ruby · Java · C++ · Swift · C# · Kotlin · PHP · C · Scala · Dart · Lua · Elixir · Bash — call graphs ride the same primitives for every language. → [docs/language-support.md](docs/language-support.md)\n\n**Infrastructure-as-Code**: Terraform/HCL · Kubernetes · Helm · CloudFormation · Ansible · Pulumi · AWS CDK · CDKTF · Dockerfile · Docker Compose · GitHub Actions · Azure Bicep · Serverless Framework — IaC resources project onto the **same graph** as application code, so `orient`, `search_code`, and `analyze_impact` answer \"what's the blast radius of changing this security group / IAM role / base image / CI job?\" with zero new tooling. → [docs/iac.md](docs/iac.md)\n\n**Interface contracts**: OpenAPI 3.x · Swagger 2.0 — each declared operation projects onto the **same graph**, bound to the route handler that serves it and the function that calls it, so `orient` and `analyze_impact` cross the API boundary. Matching is literal, and everything unbound is disclosed. → [docs/contracts.md](docs/contracts.md)\n\n---\n\n## Known limitations\n\nWe'd rather you know these up front.\n\n- **Static analysis only.** Polymorphic dispatch, event channels, and route→handler bindings *are* recovered (provenance-labeled `synthesized`). What isn't: reflective invocation with a non-literal target (`getattr(o, name)()`), `eval`, and DI/plugin registries with no visible binding — silently absent from the graph.\n- **LLM spec quality varies.** Generated spec *prose* reflects the model's understanding — review complex business logic. Structure, format, coverage, and drift are checked deterministically.\n- **Keyword (BM25) search answers first; local semantic follows in the background.** `orient`/`search_code` work immediately with no key. Background builds then add on-device vectors (CPU-only, ~23 MB model) when the optional package is installed; opt out with `\"embedding\": { \"provider\": \"none\" }`.\n- **Large monorepos** analyze one package at a time after the first full build (`openlore analyze --shard <name>`); the initial index is still a full analysis.\n- **Incremental updates converge or flag, never silently diverge.** When a change exceeds the per-save budget, the rest is marked explicitly stale and self-heals on later edits or a background re-analyze.\n\n---\n\n## Documentation\n\n**Start here:** the [documentation index](docs/README.md) maps every task to the one canonical page that answers it. The essentials:\n\n| I want to… | Doc |\n|------------|-----|\n| **Install & wire my agent** (one command) | [install.md](docs/install.md) |\n| Understand *why* wiring an agent helps | [agent-setup.md](docs/agent-setup.md) |\n| See all **83 MCP tools** + parameters | [mcp-tools.md](docs/mcp-tools.md) |\n| Run the full **CLI reference** | [cli-reference.md](docs/cli-reference.md) |\n| Configure `.openlore/config.json` (incl. `enforcement.policy`) | [configuration.md](docs/configuration.md) |\n| Choose / configure an LLM provider (optional) | [providers.md](docs/providers.md) |\n| Fix a setup problem | [TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) |\n| Read the **benchmark methodology** + per-task numbers | [AGENT-BENCHMARKS.md](docs/AGENT-BENCHMARKS.md) |\n| Search code by meaning (semantic / GraphRAG) | [semantic-search.md](docs/semantic-search.md) |\n| Pick the tests a change should run | [test-impact-selection.md](docs/test-impact-selection.md) |\n| Find dead code / coverage gaps | [reachability-dead-code.md](docs/reachability-dead-code.md) · [coverage-gaps.md](docs/coverage-gaps.md) |\n| Detect spec ↔ code drift | [drift-detection.md](docs/drift-detection.md) |\n| Enforce architecture / import rules | [architecture-invariants.md](docs/architecture-invariants.md) |\n| Gate commits / wire CI & PR review | [ci-cd.md](docs/ci-cd.md) · [preflight.md](docs/preflight.md) |\n| Understand IaC & cross-domain impact | [iac.md](docs/iac.md) · [cross-domain-impact.md](docs/cross-domain-impact.md) |\n| See declared API contracts in the graph | [contracts.md](docs/contracts.md) |\n| Query across repos (federation) | [federation.md](docs/federation.md) |\n| Share the index as a bundle | [shareable-bundle.md](docs/shareable-bundle.md) |\n| Export to Sourcegraph / SCIP tools | [scip-export.md](docs/scip-export.md) |\n| Read the internals | [ARCHITECTURE.md](docs/ARCHITECTURE.md) · [ALGORITHMS.md](docs/ALGORITHMS.md) · [PHILOSOPHY.md](docs/PHILOSOPHY.md) |\n\n---\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnpm run test:run  # 5500+ unit tests, one-shot (npm test is watch mode)\nnpm run typecheck\n```\n\nNew contributor? See **[CONTRIBUTING.md](CONTRIBUTING.md)** for setup, MCP wiring, and the commit gate. Please also read our [Code of Conduct](CODE_OF_CONDUCT.md); to report a vulnerability, see [SECURITY.md](SECURITY.md).\n\n---\n\n## Community\n\nIf OpenLore saves your agents from re-reading the same files — or catches one risky change before it lands — **star the repo**. It's the signal that tells us to keep building, and it helps other engineers find it.\n\n- ⭐ **Star** to follow along: [github.com/clay-good/OpenLore](https://github.com/clay-good/OpenLore)\n- 🐛 **Bug or idea?** Open an [issue](https://github.com/clay-good/OpenLore/issues).\n- 🤝 **Contribute?** Start with [CONTRIBUTING.md](CONTRIBUTING.md).\n\n---\n\n## Links\n\n- [OpenSpec](https://github.com/Fission-AI/OpenSpec) — spec-driven development framework\n- [AGENTS.md](AGENTS.md) — system prompt for direct LLM prompting\n- [Examples](examples/) — BMAD, Vibe, GSD, drift-demo, spec-kit integrations\n","readmeFilename":"README.md"}