{"_id":"@opensip-cli/graph","_rev":"68-3fb8f7a0a68e5a7ce7d60316f757a231","name":"@opensip-cli/graph","dist-tags":{"release-candidate-0.1.8":"0.1.8","release-candidate-0.1.9":"0.1.9","release-candidate-0.1.10":"0.1.10","release-candidate-0.1.11":"0.1.11","release-candidate-0.1.12":"0.1.12","release-candidate-0.1.13":"0.1.13","release-candidate-0.1.14":"0.1.14","release-candidate-0.1.15":"0.1.15","release-candidate-0.1.16":"0.1.16","release-candidate-0.1.17":"0.1.17","release-candidate-0.1.18":"0.1.18","release-candidate-0.1.19":"0.1.19","release-candidate-0.2.1":"0.2.1","release-candidate-0.2.3":"0.2.3","release-candidate-0.2.4":"0.2.4","release-candidate-0.3.0":"0.3.0","release-candidate-0.3.1":"0.3.1","release-candidate-0.4.0":"0.4.0","release-candidate-0.4.1":"0.4.1","release-candidate-0.4.2":"0.4.2","release-candidate-0.5.0":"0.5.0","release-candidate-0.5.1":"0.5.1","release-candidate-0.5.2":"0.5.2","release-candidate-0.5.3":"0.5.3","release-candidate-0.6.0":"0.6.0","release-candidate-0.7.0":"0.7.0","release-candidate-0.8.0":"0.8.0","release-candidate-0.8.1":"0.8.1","release-candidate-0.8.2":"0.8.2","release-candidate-0.8.3":"0.8.3","latest":"0.8.5","release-candidate-0.8.4":"0.8.4","release-candidate-0.8.5":"0.8.5"},"versions":{"0.1.0":{"name":"@opensip-cli/graph","version":"0.1.0","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.0","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"c0e465f967dbcb7fe4cde5c4e9cc9afbc61fe0db","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.0.tgz","fileCount":836,"integrity":"sha512-s8AQnMANSlzuapjDoF3cK0hhtPMi6fJlXd0VPOMA4+wRXkAEbKZWD33yeo4w9dF7Xj/KY0gZ1GGHBIdZT6pTSQ==","signatures":[{"sig":"MEUCIQChBmwz5Jq3r9jrQLQXcHvgJvgQ63eJzcVAgddWFRf4+gIgYfwxzunFWYe9w9a6f/z4TMb/IEJcjzbRj0vK6Om2stY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2722342},"main":"./dist/index.js","type":"module","_from":"file:/tmp/opensip-cli-release-tarballs/opensip-cli-graph-0.1.0.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"opensip","email":"admin@opensip.ai"},"_resolved":"/tmp/opensip-cli-release-tarballs/opensip-cli-graph-0.1.0.tgz","_integrity":"sha512-s8AQnMANSlzuapjDoF3cK0hhtPMi6fJlXd0VPOMA4+wRXkAEbKZWD33yeo4w9dF7Xj/KY0gZ1GGHBIdZT6pTSQ==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.13.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^7.0.5","zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.0","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.0","@opensip-cli/config":"0.1.0","@opensip-cli/contracts":"0.1.0","@opensip-cli/datastore":"0.1.0","@opensip-cli/session-store":"0.1.0"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"name":"graph","description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)"},{"name":"graph-lookup","description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"graph-symbol-index","description":"Emit a symbolindex.json artifact (name→file:line and file→names) from the persisted catalog"},{"name":"graph-baseline-export","description":"Export the graph gate baseline (JSON) from the datastore to a file"},{"name":"graph-shard-worker","description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)"},{"name":"graph-equivalence-check","description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)"},{"name":"graph-run-worker","description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)"},{"name":"catalog-export","description":"Run graph analysis and write the CatalogExport JSON document (symbols + edges + provenance) to a file"},{"name":"sarif-export","description":"Run graph analysis and write OpenSIP-convention SARIF v2.1.0 findings to a file"},{"name":"graph-recipes","description":"List available graph recipes"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]}}]},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.0_1781560282294_0.03408126787448196","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@opensip-cli/graph","version":"0.1.1","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.1","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"51aa233e61cfb0c3760e780958bb1e4212c2e7c6","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.1.tgz","fileCount":836,"integrity":"sha512-KO9qK1+GJ8sHhNAqi8zyuHCLWIVoHMeO6udg+5DFaIRn/+Pv9h7Clzq8mxynXLKvHI/0VC67HLmlXbQYdw/iRQ==","signatures":[{"sig":"MEQCIH/paPifOuoq3utikK6aETxnlXpi90aHAQHHym8Jh1qZAiA0mYWRSXOzPD0Cx/cEA6+LVh9nxD3xum3TEqXMe+RTAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2722342},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.1.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.1.tgz","_integrity":"sha512-KO9qK1+GJ8sHhNAqi8zyuHCLWIVoHMeO6udg+5DFaIRn/+Pv9h7Clzq8mxynXLKvHI/0VC67HLmlXbQYdw/iRQ==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.17.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^7.0.5","zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.1","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.1","@opensip-cli/config":"0.1.1","@opensip-cli/contracts":"0.1.1","@opensip-cli/datastore":"0.1.1","@opensip-cli/session-store":"0.1.1"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"name":"graph","description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)"},{"name":"graph-lookup","description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"graph-symbol-index","description":"Emit a symbolindex.json artifact (name→file:line and file→names) from the persisted catalog"},{"name":"graph-baseline-export","description":"Export the graph gate baseline (JSON) from the datastore to a file"},{"name":"graph-shard-worker","description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)"},{"name":"graph-equivalence-check","description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)"},{"name":"graph-run-worker","description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)"},{"name":"catalog-export","description":"Run graph analysis and write the CatalogExport JSON document (symbols + edges + provenance) to a file"},{"name":"sarif-export","description":"Run graph analysis and write OpenSIP-convention SARIF v2.1.0 findings to a file"},{"name":"graph-recipes","description":"List available graph recipes"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]}}]},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.1_1781569971265_0.9823572772093387","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@opensip-cli/graph","version":"0.1.2","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.2","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"988a1d2cc0c15d592db3f0ed0cdaf24925692439","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.2.tgz","fileCount":844,"integrity":"sha512-m7BYDdQzKni7+ZC+FVQjUnH4Iehc9FquvVnMlPqKzQBH3evC04sAd9wxP1HoskCamc8eVSoAQIdsmCr5OURrBg==","signatures":[{"sig":"MEUCIAthFQM354dS4S/ZVlxxhXQNKqUgM8lNOh2aftVEwasiAiEA+2NyAg/80PaJtxAwkHzdkXqi0ffw359xSWKmpLIVxwg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2793439},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.2.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.2.tgz","_integrity":"sha512-m7BYDdQzKni7+ZC+FVQjUnH4Iehc9FquvVnMlPqKzQBH3evC04sAd9wxP1HoskCamc8eVSoAQIdsmCr5OURrBg==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.17.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^7.0.5","zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.2","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.2","@opensip-cli/config":"0.1.2","@opensip-cli/contracts":"0.1.2","@opensip-cli/datastore":"0.1.2","@opensip-cli/session-store":"0.1.2"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"name":"graph","description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)"},{"name":"graph-lookup","description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"graph-symbol-index","description":"Emit a symbolindex.json artifact (name→file:line and file→names) from the persisted catalog"},{"name":"graph-baseline-export","description":"Export the graph gate baseline (JSON) from the datastore to a file"},{"name":"graph-shard-worker","description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)"},{"name":"graph-equivalence-check","description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)"},{"name":"graph-run-worker","description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)"},{"name":"catalog-export","description":"Run graph analysis and write the CatalogExport JSON document (symbols + edges + provenance) to a file"},{"name":"sarif-export","description":"Run graph analysis and write OpenSIP-convention SARIF v2.1.0 findings to a file"},{"name":"graph-recipes","description":"List available graph recipes"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]}}]},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.2"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.2_1781626133312_0.9700818940217943","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@opensip-cli/graph","version":"0.1.3","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.3","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"5d70d27bc9accaff4127e82bb9dc65b260d22e9b","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.3.tgz","fileCount":852,"integrity":"sha512-uWYhO6d/TMD1XNkkWQRBGpWSDJ0enVI8ZQQR4SRcRRMMolyI6LDwaBWYF1BbrN5DYSb+Xf+Y7IhGXqMF952aHA==","signatures":[{"sig":"MEYCIQCrlzgo7SeE0gAo6MIht1ssG6A3R/RBrrWP7UKflZUajAIhAOOScepJafIY1G2YTXaymBQm4rv5//5Qg66JiRbbc6Xq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2814743},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.3.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.3.tgz","_integrity":"sha512-uWYhO6d/TMD1XNkkWQRBGpWSDJ0enVI8ZQQR4SRcRRMMolyI6LDwaBWYF1BbrN5DYSb+Xf+Y7IhGXqMF952aHA==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.17.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^7.0.5","zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.3","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.3","@opensip-cli/config":"0.1.3","@opensip-cli/contracts":"0.1.3","@opensip-cli/datastore":"0.1.3","@opensip-cli/session-store":"0.1.3"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"name":"graph","description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)"},{"name":"graph-lookup","description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"graph-symbol-index","description":"Emit a symbolindex.json artifact (name→file:line and file→names) from the persisted catalog"},{"name":"graph-baseline-export","description":"Export the graph gate baseline (JSON) from the datastore to a file"},{"name":"graph-shard-worker","description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)"},{"name":"graph-equivalence-check","description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)"},{"name":"graph-run-worker","description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)"},{"name":"catalog-export","description":"Run graph analysis and write the CatalogExport JSON document (symbols + edges + provenance) to a file"},{"name":"sarif-export","description":"Run graph analysis and write OpenSIP-convention SARIF v2.1.0 findings to a file"},{"name":"graph-recipes","description":"List available graph recipes"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]}}]},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.3_1781654919454_0.12325350926043166","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@opensip-cli/graph","version":"0.1.4","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.4","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"8341733a5a79cee455c77250620214bbb1635455","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.4.tgz","fileCount":860,"integrity":"sha512-+Qf30yk3C8yKmkRdFrmTSFasWD6h6n8wwgxXbNooThBXH63pPHSgaNDI+W/5YNRrFb8jHoMpjnLd8uyzUyuQxA==","signatures":[{"sig":"MEQCIDURsHttmxltYPnhmpR2SZiQIN534xlCuynosAMTwhlSAiBVaY0eOeE6T88+tRZEaJelLCN2be7Igmbiex6lttv7TQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2835617},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.4.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.4.tgz","_integrity":"sha512-+Qf30yk3C8yKmkRdFrmTSFasWD6h6n8wwgxXbNooThBXH63pPHSgaNDI+W/5YNRrFb8jHoMpjnLd8uyzUyuQxA==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.17.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^7.0.5","zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.4","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.4","@opensip-cli/config":"0.1.4","@opensip-cli/contracts":"0.1.4","@opensip-cli/datastore":"0.1.4","@opensip-cli/session-store":"0.1.4"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"name":"graph","description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)"},{"name":"graph-lookup","description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"graph-symbol-index","description":"Emit a symbolindex.json artifact (name→file:line and file→names) from the persisted catalog"},{"name":"graph-baseline-export","description":"Export the graph gate baseline (JSON) from the datastore to a file"},{"name":"graph-shard-worker","description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)"},{"name":"graph-equivalence-check","description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)"},{"name":"graph-run-worker","description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)"},{"name":"catalog-export","description":"Run graph analysis and write the CatalogExport JSON document (symbols + edges + provenance) to a file"},{"name":"sarif-export","description":"Run graph analysis and write OpenSIP-convention SARIF v2.1.0 findings to a file"},{"name":"graph-recipes","description":"List available graph recipes"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]}}]},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.4_1781669177410_0.12560129568861322","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@opensip-cli/graph","version":"0.1.5","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.5","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"fea7841a2d7c9abb3c338eb1aed7db2ef2ce8215","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.5.tgz","fileCount":884,"integrity":"sha512-8/BD2yHR/NwA5Ej3rTlwWo8IG7uAMuURsxkhF66M2grTHsYtebUB93mlVUN+bo+gxYun99BR41lNJx7GdaQFbA==","signatures":[{"sig":"MEQCIGkIs6qi61UfraVQRyoX0SAniOZC8rh5+DS9KgXWaV7cAiBG9Yt/mGo96zRLjSL5sd6Q1wXdf3u/OC07qiXufjRPpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2837130},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.5.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.5.tgz","_integrity":"sha512-8/BD2yHR/NwA5Ej3rTlwWo8IG7uAMuURsxkhF66M2grTHsYtebUB93mlVUN+bo+gxYun99BR41lNJx7GdaQFbA==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.17.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^7.0.5","zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.5","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.5","@opensip-cli/config":"0.1.5","@opensip-cli/contracts":"0.1.5","@opensip-cli/datastore":"0.1.5","@opensip-cli/session-store":"0.1.5"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"name":"graph","description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)"},{"name":"graph-lookup","description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"graph-symbol-index","description":"Emit a symbolindex.json artifact (name→file:line and file→names) from the persisted catalog"},{"name":"graph-baseline-export","description":"Export the graph gate baseline (JSON) from the datastore to a file"},{"name":"graph-shard-worker","description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)"},{"name":"graph-equivalence-check","description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)"},{"name":"graph-run-worker","description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)"},{"name":"catalog-export","description":"Run graph analysis and write the CatalogExport JSON document (symbols + edges + provenance) to a file"},{"name":"sarif-export","description":"Run graph analysis and write OpenSIP-convention SARIF v2.1.0 findings to a file"},{"name":"graph-recipes","description":"List available graph recipes"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]}}]},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.5"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.5_1781723661698_0.1458273348889172","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@opensip-cli/graph","version":"0.1.6","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.6","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"7af1e8f16b0ff73741b5f890eb7736e54d282475","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.6.tgz","fileCount":896,"integrity":"sha512-e+gXXCPq/FQaCAWcChGoKDSizGe7rSyIr7N9PfcceaoU5BYBcvAKj081UwXxlnXhoXiyjmjRMDPO8Gn+RT0kow==","signatures":[{"sig":"MEUCIBPGkl/zb7Pe/jq6aPElXPWwe5FV7W9vdNF3EMlJuakDAiEA5wcRF2ZNS671+EGQugHIZcJUkAoKuouSvOhQEHoV24g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2847253},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.6.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.6.tgz","_integrity":"sha512-e+gXXCPq/FQaCAWcChGoKDSizGe7rSyIr7N9PfcceaoU5BYBcvAKj081UwXxlnXhoXiyjmjRMDPO8Gn+RT0kow==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.17.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^7.0.5","zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.6","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.6","@opensip-cli/config":"0.1.6","@opensip-cli/contracts":"0.1.6","@opensip-cli/datastore":"0.1.6","@opensip-cli/session-store":"0.1.6"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"name":"graph","description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)"},{"name":"graph-lookup","description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"graph-symbol-index","description":"Emit a symbolindex.json artifact (name→file:line and file→names) from the persisted catalog"},{"name":"graph-baseline-export","description":"Export the graph gate baseline (JSON) from the datastore to a file"},{"name":"graph-shard-worker","description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)"},{"name":"graph-equivalence-check","description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)"},{"name":"graph-run-worker","description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)"},{"name":"catalog-export","description":"Run graph analysis and write the CatalogExport JSON document (symbols + edges + provenance) to a file"},{"name":"sarif-export","description":"Run graph analysis and write OpenSIP-convention SARIF v2.1.0 findings to a file"},{"name":"graph-recipes","description":"List available graph recipes"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]}}]},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.6_1781747788370_0.40877483900703715","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@opensip-cli/graph","version":"0.1.7","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.7","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"a06c9891c6a664091ce5c14a092ec8c2f796a9d5","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.7.tgz","fileCount":916,"integrity":"sha512-ZsSlyWu0RriTVMfwfVrulQYwMkdoJzMkkgST9G6Nbk1RoMZXlLLjMSUDY0OhSZlBw0au+YVWZXiMaCArD7JHkA==","signatures":[{"sig":"MEUCIEBo5cUuLkC4s87N92ZB+evVcTNRL9Q068e3kje2DOmrAiEAhOlsnfC9o8jFkFbhRLBMKtGhx8C1yXnPrMSBG1qofuU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2933519},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.7.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.7.tgz","_integrity":"sha512-ZsSlyWu0RriTVMfwfVrulQYwMkdoJzMkkgST9G6Nbk1RoMZXlLLjMSUDY0OhSZlBw0au+YVWZXiMaCArD7JHkA==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.17.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^7.0.5","zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.7","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.7","@opensip-cli/config":"0.1.7","@opensip-cli/contracts":"0.1.7","@opensip-cli/datastore":"0.1.7","@opensip-cli/session-store":"0.1.7"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"name":"graph","description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)"},{"name":"graph-shard-worker","description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)"},{"name":"graph-equivalence-check","description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)"},{"name":"graph-run-worker","description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)"},{"name":"export","description":"Export graph analysis artifacts (--format sarif | catalog | baseline)"},{"name":"recipes","description":"List available graph recipes"},{"name":"lookup","description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","description":"Emit a symbolindex.json artifact (name→file:line and file→names) from the persisted catalog"},{"name":"list","description":"List available graph rules"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]}}]},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.7_1781886011363_0.6311780828696183","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@opensip-cli/graph","version":"0.1.8","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.8","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"46f1f01bb7175a64e4b7eb7f095d1cbedb479880","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.8.tgz","fileCount":916,"integrity":"sha512-bsw5SzzZBQI6LkVNaifMn4HsSLOa1AxZWyIOnwi3L7vY8hulBXTbaNLPDm3FWFT5AVlQZC7ATGaC74uiJ070Zw==","signatures":[{"sig":"MEQCIH2gnZLM6GcTFJlWULd9MmU8jQ+MNkhoTIYYs9CTA8NvAiBgDM8rrYP6l9swV7cwh/RcoL9o/6qDHE9w5/k7sEew0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2934637},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.8.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.8.tgz","_integrity":"sha512-bsw5SzzZBQI6LkVNaifMn4HsSLOa1AxZWyIOnwi3L7vY8hulBXTbaNLPDm3FWFT5AVlQZC7ATGaC74uiJ070Zw==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.17.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^7.0.5","zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.8","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.8","@opensip-cli/config":"0.1.8","@opensip-cli/contracts":"0.1.8","@opensip-cli/datastore":"0.1.8","@opensip-cli/session-store":"0.1.8"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"name":"graph","description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)"},{"name":"graph-shard-worker","description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)"},{"name":"graph-equivalence-check","description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)"},{"name":"graph-run-worker","description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)"},{"name":"export","description":"Export graph analysis artifacts (--format sarif | catalog | baseline)"},{"name":"recipes","description":"List available graph recipes"},{"name":"lookup","description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","description":"Emit a symbolindex.json artifact (name→file:line and file→names) from the persisted catalog"},{"name":"list","description":"List available graph rules"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]}}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.8_1782026441023_0.8526014703842388","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@opensip-cli/graph","version":"0.1.9","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.9","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"cf3bde6608f2e9dab78bcc91d98f3dd42e37c3cb","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.9.tgz","fileCount":924,"integrity":"sha512-o9GwEJkKJLID4dgRAT9ECy8tirtaKNU1VXrDCX5T1cMm3bmdYdcRMsZBuTElaujEwNy2DL3RhvRNbTo8VShLkA==","signatures":[{"sig":"MEUCIQDaZLAWlUqxfPIuMcVJQw+njCIDGrwdkHtrUAu9uf7GzAIgFkwfpDddREt2UFk66KOWZDNWNBNQW8GL8bwCIDkAzf8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2987826},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.9.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.9.tgz","_integrity":"sha512-o9GwEJkKJLID4dgRAT9ECy8tirtaKNU1VXrDCX5T1cMm3bmdYdcRMsZBuTElaujEwNy2DL3RhvRNbTo8VShLkA==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.17.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^7.0.5","zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.9","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.9","@opensip-cli/config":"0.1.9","@opensip-cli/contracts":"0.1.9","@opensip-cli/datastore":"0.1.9","@opensip-cli/session-store":"0.1.9"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Save current Signal set as the gate baseline"},{"flag":"--gate-compare","default":false,"description":"Compare current Signals to the gate baseline"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--sarif","value":"<path>","description":"Also write this run’s findings as a SARIF 2.1.0 file (for GitHub Code Scanning). Composes with --gate-save; written even when the gate fails."}],"commonFlags":["cwd","json","quiet","verbose","debug","reportTo","apiKey"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"raw-stream","parent":"graph","commonFlags":["json"],"description":"Look up function occurrences by simple name from the persisted catalog","rawStreamReason":"lookup"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]}}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.9"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.9_1782151425643_0.871572120705643","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@opensip-cli/graph","version":"0.1.10","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.10","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"0658641cac3cc6aa55fa2df60701e2d194f68ebf","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.10.tgz","fileCount":924,"integrity":"sha512-cv3hBIFp0Txjle5fgtNy4g4UGwsG07lcJRv2jRMAgOvPO7qHaYc8+LZ5ZODvDuv9Sqc12FAHspthc+R/oMEyrg==","signatures":[{"sig":"MEUCIGIK9R9e2YbYgo2Nqs/rpVe/ZopSfHxb5ju68glBjpG0AiEAkOgdJ5O6kKb7TBIf86Bg5Glm7fy8jtXEugk/aYdsfYA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2987836},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.10.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.10.tgz","_integrity":"sha512-cv3hBIFp0Txjle5fgtNy4g4UGwsG07lcJRv2jRMAgOvPO7qHaYc8+LZ5ZODvDuv9Sqc12FAHspthc+R/oMEyrg==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.17.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^7.0.5","zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.10","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.10","@opensip-cli/config":"0.1.10","@opensip-cli/contracts":"0.1.10","@opensip-cli/datastore":"0.1.10","@opensip-cli/session-store":"0.1.10"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Save current Signal set as the gate baseline"},{"flag":"--gate-compare","default":false,"description":"Compare current Signals to the gate baseline"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--sarif","value":"<path>","description":"Also write this run’s findings as a SARIF 2.1.0 file (for GitHub Code Scanning). Composes with --gate-save; written even when the gate fails."}],"commonFlags":["cwd","json","quiet","verbose","debug","reportTo","apiKey"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"raw-stream","parent":"graph","commonFlags":["json"],"description":"Look up function occurrences by simple name from the persisted catalog","rawStreamReason":"lookup"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]}}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.10"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.10_1782154137038_0.6418422402716142","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@opensip-cli/graph","version":"0.1.11","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.11","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"53e271f8699170a69a544d94f6ca72c31dfc6ee5","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.11.tgz","fileCount":944,"integrity":"sha512-neLR658WT6ngL2k29efwJCta9Nu4Ev2hyynv7sy98HJSyCjqDABz7f9jo7dfxNDjh4LTpwyXUvIuMrEnaAow/Q==","signatures":[{"sig":"MEUCIQDfCGtB8aibA2zwW7cDk4O+RPwuxr3SrBtYROaXp2h2lgIgU2Uidc09nJehIYmpQhbwd3KQQzM3JUCHTtrQ/LKdS+s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2970572},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.11.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.11.tgz","_integrity":"sha512-neLR658WT6ngL2k29efwJCta9Nu4Ev2hyynv7sy98HJSyCjqDABz7f9jo7dfxNDjh4LTpwyXUvIuMrEnaAow/Q==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.17.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.11","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.11","@opensip-cli/config":"0.1.11","@opensip-cli/cli-live":"0.1.11","@opensip-cli/contracts":"0.1.11","@opensip-cli/datastore":"0.1.11","@opensip-cli/session-store":"0.1.11"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Save current Signal set as the gate baseline"},{"flag":"--gate-compare","default":false,"description":"Compare current Signals to the gate baseline"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--sarif","value":"<path>","description":"Also write this run’s findings as a SARIF 2.1.0 file (for GitHub Code Scanning). Composes with --gate-save; written even when the gate fails."}],"commonFlags":["cwd","json","quiet","verbose","debug","reportTo","apiKey"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"raw-stream","parent":"graph","commonFlags":["json"],"description":"Look up function occurrences by simple name from the persisted catalog","rawStreamReason":"lookup"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]}}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.11"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.11_1782278320624_0.36009301793819004","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@opensip-cli/graph","version":"0.1.12","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.12","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"8cf1241407d7904ff9b836ecb6a3830d88cc2e67","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.12.tgz","fileCount":976,"integrity":"sha512-siqQRyhFn4bK0iFrdTqzWocFGQ6HeH94hli/Hjg/qqwTrIFy4/w1FokPgCgOJiqGDD/ZAJJJwMBzll+eYdRyQQ==","signatures":[{"sig":"MEQCICPyLrn2XDtxnnUUF8ZAAZF+/PX9aJTy8hywVxS/2XRzAiAsFqkbBEuyqULgI8mEFPd/IYfqo9QfocMh0yfMML4Slg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3042226},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.12.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.12.tgz","_integrity":"sha512-siqQRyhFn4bK0iFrdTqzWocFGQ6HeH94hli/Hjg/qqwTrIFy4/w1FokPgCgOJiqGDD/ZAJJJwMBzll+eYdRyQQ==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.17.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.12","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.12","@opensip-cli/config":"0.1.12","@opensip-cli/cli-live":"0.1.12","@opensip-cli/contracts":"0.1.12","@opensip-cli/datastore":"0.1.12","@opensip-cli/session-store":"0.1.12","@opensip-cli/clone-detection":"0.1.12"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Save current Signal set as the gate baseline"},{"flag":"--gate-compare","default":false,"description":"Compare current Signals to the gate baseline"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--sarif","value":"<path>","description":"Also write this run’s findings as a SARIF 2.1.0 file (for GitHub Code Scanning). Composes with --gate-save; written even when the gate fails."}],"commonFlags":["cwd","json","quiet","verbose","debug","reportTo","apiKey"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"raw-stream","parent":"graph","commonFlags":["json"],"description":"Look up function occurrences by simple name from the persisted catalog","rawStreamReason":"lookup"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]}}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.12"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.12_1782417849540_0.4020545176390695","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@opensip-cli/graph","version":"0.1.13","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.13","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"d7cec11eae83c4323ddc942580cacb37faf489b7","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.13.tgz","fileCount":988,"integrity":"sha512-8Wm1lzjllzonfSCFLebPkErNJJP2iKFjXDgpIX/uyd1nND2k0lBKTZfx2EOJhS+wCasxTPzL0Wmu+5yUJw5qnA==","signatures":[{"sig":"MEUCID0nS3i4axcNSls9HP769px7nPDsIZ7IHE2XhfeIK5dRAiEAk6pU6zgiPw6T0x+FtNcywS3PPTHckl9u93twht52M1A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3067728},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.13.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.13.tgz","_integrity":"sha512-8Wm1lzjllzonfSCFLebPkErNJJP2iKFjXDgpIX/uyd1nND2k0lBKTZfx2EOJhS+wCasxTPzL0Wmu+5yUJw5qnA==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.17.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.13","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.13","@opensip-cli/config":"0.1.13","@opensip-cli/cli-live":"0.1.13","@opensip-cli/contracts":"0.1.13","@opensip-cli/datastore":"0.1.13","@opensip-cli/session-store":"0.1.13","@opensip-cli/clone-detection":"0.1.13"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Save current Signal set as the gate baseline"},{"flag":"--gate-compare","default":false,"description":"Compare current Signals to the gate baseline"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--sarif","value":"<path>","description":"Also write this run’s findings as a SARIF 2.1.0 file (for GitHub Code Scanning). Composes with --gate-save; written even when the gate fails."}],"commonFlags":["cwd","json","quiet","verbose","debug","reportTo","apiKey"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.13_1782591929871_0.3453456914505033","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@opensip-cli/graph","version":"0.1.14","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.14","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"5bbe421b68db37f2e8bb236c5c45ff9754e0de44","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.14.tgz","fileCount":1000,"integrity":"sha512-k/2nYfFWyIQiFvWewvzfkqAEcOIVASj4n+1efjuzInezTF7VSKdbOQ8Aw1RSI0I/QFJVvnKR9stua+nW6JNa7g==","signatures":[{"sig":"MEYCIQCLzJhj5Da+zke7amcbpXdessJF+wZuVif79akckq9HCgIhAKTxtlts3mPD+Uhkf3sI5DXz3W7yBH06s4WGBPoAkzfq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3125125},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.14.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.14.tgz","_integrity":"sha512-k/2nYfFWyIQiFvWewvzfkqAEcOIVASj4n+1efjuzInezTF7VSKdbOQ8Aw1RSI0I/QFJVvnKR9stua+nW6JNa7g==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.17.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.14","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.14","@opensip-cli/config":"0.1.14","@opensip-cli/cli-live":"0.1.14","@opensip-cli/contracts":"0.1.14","@opensip-cli/datastore":"0.1.14","@opensip-cli/session-store":"0.1.14","@opensip-cli/clone-detection":"0.1.14"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Save current Signal set as the gate baseline"},{"flag":"--gate-compare","default":false,"description":"Compare current Signals to the gate baseline"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run’s findings as a SARIF 2.1.0 file (for GitHub Code Scanning). Composes with --gate-save; written even when the gate fails."}],"commonFlags":["cwd","json","quiet","verbose","debug","reportTo","apiKey"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.14"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.14_1782615117778_0.6152635580267134","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@opensip-cli/graph","version":"0.1.15","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.15","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"0e6048f2211d4c6a55c3d308725baaaf9bd8725b","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.15.tgz","fileCount":1000,"integrity":"sha512-ZA3/6UX9nqcoJhDkQ/Rcqgt+1KpwtlQDS9ujofoQxWS9XL33S4q9HlnqvC9Wq5znodMJD5BHw5+wUvZdxPphPw==","signatures":[{"sig":"MEUCIQDZzFn4XK57teKDvJUKqBXjGKF3NYA3bwboNuyZuI/hmQIgSinuS0/9l+eujRhrikR0u93FIiax90Zb8bk2SddOKKI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3131367},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.15.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.15.tgz","_integrity":"sha512-ZA3/6UX9nqcoJhDkQ/Rcqgt+1KpwtlQDS9ujofoQxWS9XL33S4q9HlnqvC9Wq5znodMJD5BHw5+wUvZdxPphPw==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.17.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.15","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.15","@opensip-cli/config":"0.1.15","@opensip-cli/cli-live":"0.1.15","@opensip-cli/contracts":"0.1.15","@opensip-cli/datastore":"0.1.15","@opensip-cli/session-store":"0.1.15","@opensip-cli/clone-detection":"0.1.15"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Save current Signal set as the gate baseline"},{"flag":"--gate-compare","default":false,"description":"Compare current Signals to the gate baseline"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run’s findings as a SARIF 2.1.0 file (for GitHub Code Scanning). Composes with --gate-save; written even when the gate fails."}],"commonFlags":["cwd","json","quiet","verbose","debug","reportTo","apiKey"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.15"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.15_1782749427870_0.722313270891181","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@opensip-cli/graph","version":"0.1.16","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.16","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"0d9fceeb305b5ef7fcd49557b9d299151ea6e9fe","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.16.tgz","fileCount":1000,"integrity":"sha512-oI8m41z2ntVkR982qs+uNqX+qar5fsU2bnFQZrxXusFBUvoshbwvhemy2oD6dcGfrcoE2xqi7Egau/HHIHCFsQ==","signatures":[{"sig":"MEUCIE1bnhlkiclPLWv7udxb9I0Zg24LTAgckbFN3ewEwWh6AiEA15NC5roLKSyi01XuRk3jKl72osK1OpKc9mIxl56zvoA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3131367},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.16.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.16.tgz","_integrity":"sha512-oI8m41z2ntVkR982qs+uNqX+qar5fsU2bnFQZrxXusFBUvoshbwvhemy2oD6dcGfrcoE2xqi7Egau/HHIHCFsQ==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.16","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.16","@opensip-cli/config":"0.1.16","@opensip-cli/cli-live":"0.1.16","@opensip-cli/contracts":"0.1.16","@opensip-cli/datastore":"0.1.16","@opensip-cli/session-store":"0.1.16","@opensip-cli/clone-detection":"0.1.16"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Save current Signal set as the gate baseline"},{"flag":"--gate-compare","default":false,"description":"Compare current Signals to the gate baseline"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run’s findings as a SARIF 2.1.0 file (for GitHub Code Scanning). Composes with --gate-save; written even when the gate fails."}],"commonFlags":["cwd","json","quiet","verbose","debug","reportTo","apiKey"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.16"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.16_1782780536107_0.10141567381857741","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@opensip-cli/graph","version":"0.1.17","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.17","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"ed66b606372a15ae3af21b1b2a1a8a685014ecc2","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.17.tgz","fileCount":1000,"integrity":"sha512-xUICATfEoA+sZAlVjq1e4H2l9w4BhSHssnlMj8UZRQBJT+0Su54c8BooRbU/89zgUYxpAyGpT85jlsgDPVpTUQ==","signatures":[{"sig":"MEQCIDwjiJ8ue70bZh7LB3a+0AdWVK4YEk3g6DbIO4/M6t/VAiAFE7KFSqlJHyROtBgWgNWdKGvDII4/31DNBUG+1Vsrqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3131367},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.17.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.17.tgz","_integrity":"sha512-xUICATfEoA+sZAlVjq1e4H2l9w4BhSHssnlMj8UZRQBJT+0Su54c8BooRbU/89zgUYxpAyGpT85jlsgDPVpTUQ==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.17","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.17","@opensip-cli/config":"0.1.17","@opensip-cli/cli-live":"0.1.17","@opensip-cli/contracts":"0.1.17","@opensip-cli/datastore":"0.1.17","@opensip-cli/session-store":"0.1.17","@opensip-cli/clone-detection":"0.1.17"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Save current Signal set as the gate baseline"},{"flag":"--gate-compare","default":false,"description":"Compare current Signals to the gate baseline"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run’s findings as a SARIF 2.1.0 file (for GitHub Code Scanning). Composes with --gate-save; written even when the gate fails."}],"commonFlags":["cwd","json","quiet","verbose","debug","reportTo","apiKey"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.17"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.17_1782794595577_0.39452516163220386","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@opensip-cli/graph","version":"0.1.18","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.18","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"a5dcbe42949b51ca19dc997a539caa26d9d31c55","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.18.tgz","fileCount":1000,"integrity":"sha512-oFvFWhJwLT1lvB2ld6yWWiZo9pAOLPFfkIS/xzen6hH0bOIs0W4ARhTEqySKBN42aDBIX8jIu4fxoT1zXIz0MA==","signatures":[{"sig":"MEUCIAgkDN4e2HVLMc/YRl27JERV6UvE1J1UzzMEX9pWX5q/AiEAiQjZgeKrjX2VSDMOZtSHVkIlVPaOqaFBcdv2yY4U0yY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3131127},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.18.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.18.tgz","_integrity":"sha512-oFvFWhJwLT1lvB2ld6yWWiZo9pAOLPFfkIS/xzen6hH0bOIs0W4ARhTEqySKBN42aDBIX8jIu4fxoT1zXIz0MA==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.18","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.18","@opensip-cli/config":"0.1.18","@opensip-cli/cli-live":"0.1.18","@opensip-cli/contracts":"0.1.18","@opensip-cli/datastore":"0.1.18","@opensip-cli/session-store":"0.1.18","@opensip-cli/clone-detection":"0.1.18"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Save current Signal set as the gate baseline"},{"flag":"--gate-compare","default":false,"description":"Compare current Signals to the gate baseline"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run’s findings as a SARIF 2.1.0 file (for GitHub Code Scanning). Composes with --gate-save; written even when the gate fails."}],"commonFlags":["cwd","json","quiet","verbose","debug","reportTo","apiKey"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.8","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.18"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.18_1782858499972_0.6742219604121789","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@opensip-cli/graph","version":"0.1.19","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.1.19","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"c9d020f9e8636b46828d88714a2d4069cecc244f","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.1.19.tgz","fileCount":1000,"integrity":"sha512-YxHCVqexSZFjukyZsU2gwAzORKFV90GYqJrV2ZGF89n634VrecD/V/tT8CF3CVWVdmwY7zn/xJABzVR+Pcj4Vw==","signatures":[{"sig":"MEUCIH5yS9NtV4YPg77Bl/r/FP4pvDpQwWdfGGtAesLJPGFGAiEA6yQEtq4I7LurEtH3MncDyrENsIKB3tDfY2vZxfDwzT0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.1.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3131127},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.1.19.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.1.19.tgz","_integrity":"sha512-YxHCVqexSZFjukyZsU2gwAzORKFV90GYqJrV2ZGF89n634VrecD/V/tT8CF3CVWVdmwY7zn/xJABzVR+Pcj4Vw==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.1.19","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.1.19","@opensip-cli/config":"0.1.19","@opensip-cli/cli-live":"0.1.19","@opensip-cli/contracts":"0.1.19","@opensip-cli/datastore":"0.1.19","@opensip-cli/session-store":"0.1.19","@opensip-cli/clone-detection":"0.1.19"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Save current Signal set as the gate baseline"},{"flag":"--gate-compare","default":false,"description":"Compare current Signals to the gate baseline"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run’s findings as a SARIF 2.1.0 file (for GitHub Code Scanning). Composes with --gate-save; written even when the gate fails."}],"commonFlags":["cwd","json","quiet","verbose","debug","reportTo","apiKey"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.9","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.1.19"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.1.19_1782873839402_0.5259842783021558","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@opensip-cli/graph","version":"0.2.1","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.2.1","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"057e047510f0227f96b5fae95381d88f8923da80","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.2.1.tgz","fileCount":1004,"integrity":"sha512-xPWrUxA4Ba/3+HCZWSlvQmHVNR0TkK5qSNYM6tz3gu/l3EF4rnuRFS0jqeVg3LBcHuJNeW9y8DSJ5Z9Ogi+EwQ==","signatures":[{"sig":"MEUCIHLY+JmDCLWvKLyFe15FzZ4yadezshlt0TDtzlmg0L6AAiEAl627Kv4rNIKXC9AW7X4BWDBcSExisK+WLE+c+NOQhPw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3134334},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.2.1.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.2.1.tgz","_integrity":"sha512-xPWrUxA4Ba/3+HCZWSlvQmHVNR0TkK5qSNYM6tz3gu/l3EF4rnuRFS0jqeVg3LBcHuJNeW9y8DSJ5Z9Ogi+EwQ==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.2.1","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.2.1","@opensip-cli/config":"0.2.1","@opensip-cli/cli-live":"0.2.1","@opensip-cli/contracts":"0.2.1","@opensip-cli/datastore":"0.2.1","@opensip-cli/session-store":"0.2.1","@opensip-cli/clone-detection":"0.2.1"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.9","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.2.1_1782955291384_0.5396361770360889","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@opensip-cli/graph","version":"0.2.3","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.2.3","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"78c4b5ae426f3c7e5453999e016bcb4480e4d27c","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.2.3.tgz","fileCount":1004,"integrity":"sha512-My1isuX0HX5PoZotLku2QlsQOaruPfOh4kySyG3O03XW+mEcnUyCiuO7DtN2ZIwPDOjsxFujX+6oWWvFcVYE/g==","signatures":[{"sig":"MEQCIG/GUCUgfz6XR17oEbsjDT7Yq6YzoAmRkd0lTL0JAZ2tAiBgYDok9bxDzz02sLH4RfgDDOZTj1BbfLBV4GaHJ7Z49g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3134334},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.2.3.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.2.3.tgz","_integrity":"sha512-My1isuX0HX5PoZotLku2QlsQOaruPfOh4kySyG3O03XW+mEcnUyCiuO7DtN2ZIwPDOjsxFujX+6oWWvFcVYE/g==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.2.3","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.2.3","@opensip-cli/config":"0.2.3","@opensip-cli/cli-live":"0.2.3","@opensip-cli/contracts":"0.2.3","@opensip-cli/datastore":"0.2.3","@opensip-cli/session-store":"0.2.3","@opensip-cli/clone-detection":"0.2.3"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.9","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.2.3"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.2.3_1782960806826_0.3355724069770667","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@opensip-cli/graph","version":"0.2.4","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.2.4","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"1ed50caff153544dc698cf893af3ec624544939e","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.2.4.tgz","fileCount":1004,"integrity":"sha512-mohPXV5rUT23mGfzjwvC8zNRdu6m9x2X/Jrl4dgdu4i3cQviEtfpPXNG8hwpfGvWoTphUTu2yHReeYKW9gY+HA==","signatures":[{"sig":"MEUCIQDFP7cQdvvbZZGHAXw++4gUQRxEho1rL7Nef7TLPlG1uAIgIQ042Bn3Z0H9Jeayk6iDbswEuoNwlfP2rzrwyBoOu1s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3134334},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.2.4.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.2.4.tgz","_integrity":"sha512-mohPXV5rUT23mGfzjwvC8zNRdu6m9x2X/Jrl4dgdu4i3cQviEtfpPXNG8hwpfGvWoTphUTu2yHReeYKW9gY+HA==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.17.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.2.4","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.2.4","@opensip-cli/config":"0.2.4","@opensip-cli/cli-live":"0.2.4","@opensip-cli/contracts":"0.2.4","@opensip-cli/datastore":"0.2.4","@opensip-cli/session-store":"0.2.4","@opensip-cli/clone-detection":"0.2.4"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.9","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.2.4"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.2.4_1782969488128_0.26001646467758865","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@opensip-cli/graph","version":"0.3.0","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.3.0","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"6c8ecd92b45fc4111f370309f055b4516867e184","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.3.0.tgz","fileCount":1012,"integrity":"sha512-hYG3Q7TD/ffIXJxOp9uUIkl0nz48sqRa0vAaLJEGZqb9sUbgEQTZDHl7tkzsTiYIsMJa5eXpnfoVtyWxWMSrYA==","signatures":[{"sig":"MEQCIEKiXpGOkgCbcPCZMY2m4SOYYSp9vkFAT6DfX83NVhUnAiBFpNcHKhBFslnqH4p8Rm8WlOH2bufGSPsRhaHc0cd4MA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3177928},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.3.0.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.3.0.tgz","_integrity":"sha512-hYG3Q7TD/ffIXJxOp9uUIkl0nz48sqRa0vAaLJEGZqb9sUbgEQTZDHl7tkzsTiYIsMJa5eXpnfoVtyWxWMSrYA==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.3.0","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.3.0","@opensip-cli/config":"0.3.0","@opensip-cli/cli-live":"0.3.0","@opensip-cli/contracts":"0.3.0","@opensip-cli/datastore":"0.3.0","@opensip-cli/session-store":"0.3.0","@opensip-cli/clone-detection":"0.3.0"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.9","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.3.0_1783047514857_0.5506741250569112","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@opensip-cli/graph","version":"0.3.1","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.3.1","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"72f02732a677a157534889db4d768a6357b937d3","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.3.1.tgz","fileCount":1012,"integrity":"sha512-HcxD443FGHiJ10C5hbb6A2Y/qe24U57+UyDpMGylAOzdaUuBVPBdUL13CUtYxdTuLJBEAMadJiDFpUTB2xtGqg==","signatures":[{"sig":"MEUCIQDGjZXBRrVhuuoasndh20+66/GKFCTJt6bVVyOZDAD+yQIgXZfmAiKJkIFOax78ajaaOXGCEl6lcoaJb24pjsDfZlg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3177928},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.3.1.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.3.1.tgz","_integrity":"sha512-HcxD443FGHiJ10C5hbb6A2Y/qe24U57+UyDpMGylAOzdaUuBVPBdUL13CUtYxdTuLJBEAMadJiDFpUTB2xtGqg==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.3.1","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.3.1","@opensip-cli/config":"0.3.1","@opensip-cli/cli-live":"0.3.1","@opensip-cli/contracts":"0.3.1","@opensip-cli/datastore":"0.3.1","@opensip-cli/session-store":"0.3.1","@opensip-cli/clone-detection":"0.3.1"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.9","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.3.1_1783054139173_0.38849833750090035","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@opensip-cli/graph","version":"0.4.0","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.4.0","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"909f6fc7e21f5dc7f6eeb1bbdbe6b9b22711208f","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.4.0.tgz","fileCount":1012,"integrity":"sha512-n/2Qy9K7yqdGsoWEj3rqbzXoA7kdjGZZeBZC7pLTzIFh31vJqSmmbA5vlpgIenmlLbrxQSxl/rTtFbQrKuZyqA==","signatures":[{"sig":"MEUCIE+9pKS9am/rgae0pCi0+DOpaKvBZHwwQ2nvs5s5IEbxAiEA88zfBMqfrx2bmlPaImNfGlqqTU36c9kSqRlxtz58fBY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3183343},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.4.0.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.4.0.tgz","_integrity":"sha512-n/2Qy9K7yqdGsoWEj3rqbzXoA7kdjGZZeBZC7pLTzIFh31vJqSmmbA5vlpgIenmlLbrxQSxl/rTtFbQrKuZyqA==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.4.0","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.4.0","@opensip-cli/config":"0.4.0","@opensip-cli/cli-live":"0.4.0","@opensip-cli/contracts":"0.4.0","@opensip-cli/datastore":"0.4.0","@opensip-cli/session-store":"0.4.0","@opensip-cli/clone-detection":"0.4.0"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.9","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.4.0_1783362301518_0.03248155037163092","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@opensip-cli/graph","version":"0.4.1","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.4.1","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"cd278e549149276095488e88960f43916067b078","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.4.1.tgz","fileCount":1012,"integrity":"sha512-Lbf71qWaDoHV89HRVGTC8wlyUpqpBwg9oJoZovBTo8H5JFv24vQkSp5jE0SkdTVN9hAsYZfDFFoWU0NyoVsxvg==","signatures":[{"sig":"MEQCIFZvng4XD6cOmEX9G6RE633zYvYRyo9TP557BToJRyEBAiBd+dg5bYBwNxmzLz606rPHz1fbufNbgx9/CXqHdXn48A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3183340},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.4.1.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.4.1.tgz","_integrity":"sha512-Lbf71qWaDoHV89HRVGTC8wlyUpqpBwg9oJoZovBTo8H5JFv24vQkSp5jE0SkdTVN9hAsYZfDFFoWU0NyoVsxvg==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.4.1","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.4.1","@opensip-cli/config":"0.4.1","@opensip-cli/cli-live":"0.4.1","@opensip-cli/contracts":"0.4.1","@opensip-cli/datastore":"0.4.1","@opensip-cli/session-store":"0.4.1","@opensip-cli/clone-detection":"0.4.1"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.9","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.4.1_1783388180259_0.32902392930194413","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@opensip-cli/graph","version":"0.4.2","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.4.2","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"2d9c5b2c9be38a675125653c9c7b2736fb889fb8","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.4.2.tgz","fileCount":1012,"integrity":"sha512-xoIvS7GCsEZq6NGu6P+3lxa3/MIGrq1dFxFEkcWRrxiShkP/YDgu7Bh+7rXX+t+WXKchjqhBp2DPUaHHuv+sfQ==","signatures":[{"sig":"MEQCIHwYSYwv4M7zOrTl9f4xfU3z3s3Ai5ZESbmiiBElvt+IAiB2WnbnjyzsXr8j88XVV96H00h/8MTQ52aPK+rJO6oRMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3183340},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.4.2.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.4.2.tgz","_integrity":"sha512-xoIvS7GCsEZq6NGu6P+3lxa3/MIGrq1dFxFEkcWRrxiShkP/YDgu7Bh+7rXX+t+WXKchjqhBp2DPUaHHuv+sfQ==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.4.2","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.4.2","@opensip-cli/config":"0.4.2","@opensip-cli/cli-live":"0.4.2","@opensip-cli/contracts":"0.4.2","@opensip-cli/datastore":"0.4.2","@opensip-cli/session-store":"0.4.2","@opensip-cli/clone-detection":"0.4.2"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.9","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.4.2"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.4.2_1783401091070_0.42618817423410826","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@opensip-cli/graph","version":"0.5.0","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.5.0","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"5de9174396e197241e623890e9232a0389218cbe","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.5.0.tgz","fileCount":1012,"integrity":"sha512-AwbS+YTZBrkXawYdbVG+4X7Ri2Zp3q0Yv2nkDkOK04DilCJyXkI5Xr2Afdq2eYoKd0neKhvQBhzPuKzBpqieAg==","signatures":[{"sig":"MEYCIQDsUxhXpKTcWVabcT/EsqpqAStlWsP/quex5jCyXkcLfQIhALX1wWPl4EVThR0jaPLzkumlQgoCWOzOGfFPqWdA/jgw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3208517},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.5.0.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.5.0.tgz","_integrity":"sha512-AwbS+YTZBrkXawYdbVG+4X7Ri2Zp3q0Yv2nkDkOK04DilCJyXkI5Xr2Afdq2eYoKd0neKhvQBhzPuKzBpqieAg==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.5.0","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.5.0","@opensip-cli/config":"0.5.0","@opensip-cli/cli-live":"0.5.0","@opensip-cli/contracts":"0.5.0","@opensip-cli/datastore":"0.5.0","@opensip-cli/session-store":"0.5.0","@opensip-cli/clone-detection":"0.5.0"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.9","typescript":"~6.0.3","@types/node":"^24.13.2","@types/react":"^19.2.17","@opensip-cli/output":"0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.5.0_1783489250646_0.06427244436195778","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@opensip-cli/graph","version":"0.5.1","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.5.1","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"ce8e08f3848dbf15b630e7f42103c3203858d6b3","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.5.1.tgz","fileCount":1012,"integrity":"sha512-cwAIt0+KSLY1CxdNxdtqyaWjkzwi8WRPFaLZ5U3T7Ot427DblJbBvYz4U8JwLqqX0L4BVF4+13FFGEHzIQEj3g==","signatures":[{"sig":"MEUCIBlLcmnWNI/5rdqAdSXEeG4elxxddg8M2vXjRXIl3npNAiEAuvrxiZNABw1d7LWEh0yoja1U4mS00pjT7Zw/ws+zNug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3224464},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.5.1.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.5.1.tgz","_integrity":"sha512-cwAIt0+KSLY1CxdNxdtqyaWjkzwi8WRPFaLZ5U3T7Ot427DblJbBvYz4U8JwLqqX0L4BVF4+13FFGEHzIQEj3g==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.5.1","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.5.1","@opensip-cli/config":"0.5.1","@opensip-cli/cli-live":"0.5.1","@opensip-cli/contracts":"0.5.1","@opensip-cli/datastore":"0.5.1","@opensip-cli/session-store":"0.5.1","@opensip-cli/clone-detection":"0.5.1"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.10","typescript":"~6.0.3","@types/node":"^24.13.3","@types/react":"^19.2.17","@opensip-cli/output":"0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.5.1_1783654026248_0.7312377031165018","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@opensip-cli/graph","version":"0.5.2","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.5.2","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"83b29b3e9a0ea63f1cf365d3c744ed2c5e860bae","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.5.2.tgz","fileCount":1036,"integrity":"sha512-8gwh5+L+66zbqQStXlNXfbt1RTpnKs/lCiUUar2QkFbBord0Saxl3j/FLTM3TrM2zMjefLJ8Cn/B0pgCIeml5Q==","signatures":[{"sig":"MEUCIQC617FXU3ia9LomAfof5lfIldxBfRbiwudVMpqeQYAddQIgb62dqCY8A2zBzwBg0oZKkC+2AQQAHyPAJM0lpU7j1DI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3258068},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.5.2.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./read":"./dist/read/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.5.2.tgz","_integrity":"sha512-8gwh5+L+66zbqQStXlNXfbt1RTpnKs/lCiUUar2QkFbBord0Saxl3j/FLTM3TrM2zMjefLJ8Cn/B0pgCIeml5Q==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.5.2","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.5.2","@opensip-cli/config":"0.5.2","@opensip-cli/cli-live":"0.5.2","@opensip-cli/contracts":"0.5.2","@opensip-cli/datastore":"0.5.2","@opensip-cli/session-store":"0.5.2","@opensip-cli/clone-detection":"0.5.2"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.10","typescript":"~6.0.3","@types/node":"^24.13.3","@types/react":"^19.2.17","@opensip-cli/output":"0.5.2"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.5.2_1783698013365_0.4880418241948137","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@opensip-cli/graph","version":"0.5.3","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.5.3","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"f0b40adde335d58d247e3f08e65c6d382a07d12f","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.5.3.tgz","fileCount":1144,"integrity":"sha512-4iUzGIpmOtmsw5GQJJq0MdrCXOmr/NXqDYqyKNzkjoqV49N1yiDFgUvmx57rxKAl0GuGgKo73fJeX6ceFNqqZg==","signatures":[{"sig":"MEUCIQCgA8oqsduw2AZd2WUwCX76hSmpiXmpL0YySmZB67NhLAIgeo5m5yy2Ubdksh+aHqwkNsjWU3sVesF6VL3e04TlZ0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3770572},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.5.3.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./read":"./dist/read/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.5.3.tgz","_integrity":"sha512-4iUzGIpmOtmsw5GQJJq0MdrCXOmr/NXqDYqyKNzkjoqV49N1yiDFgUvmx57rxKAl0GuGgKo73fJeX6ceFNqqZg==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.5.3","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.5.3","@opensip-cli/config":"0.5.3","@opensip-cli/cli-live":"0.5.3","@opensip-cli/contracts":"0.5.3","@opensip-cli/datastore":"0.5.3","@opensip-cli/session-store":"0.5.3","@opensip-cli/clone-detection":"0.5.3"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.10","typescript":"~6.0.3","@types/node":"^24.13.3","@types/react":"^19.2.17","@opensip-cli/output":"0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.5.3_1783738952505_0.2648461773054298","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@opensip-cli/graph","version":"0.6.0","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.6.0","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"6ca2b726c47bb89943532a2caa81d04444f397e8","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.6.0.tgz","fileCount":596,"integrity":"sha512-FPuqMxOuiTRyd3T5Qg0gCwYuB+Sr2FZSQOLXd8m9t4JxMiQP8sR0P7spLDcnAqkHus0pxTQE+cn3AUUvlT8nzw==","signatures":[{"sig":"MEQCIEVqBfVvK6pw6p4aog+K0vO1V1GPVc6e+txiMWWdcQoNAiAE5boJDoKIgrN2/R9qbJ6pbtf4THA8jhjWgKNMNqoZWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2018794},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.6.0.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./read":"./dist/read/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.6.0.tgz","_integrity":"sha512-FPuqMxOuiTRyd3T5Qg0gCwYuB+Sr2FZSQOLXd8m9t4JxMiQP8sR0P7spLDcnAqkHus0pxTQE+cn3AUUvlT8nzw==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.6.0","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.6.0","@opensip-cli/config":"0.6.0","@opensip-cli/cli-live":"0.6.0","@opensip-cli/contracts":"0.6.0","@opensip-cli/datastore":"0.6.0","@opensip-cli/session-store":"0.6.0","@opensip-cli/clone-detection":"0.6.0"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.10","typescript":"~6.0.3","@types/node":"^24.13.3","@types/react":"^19.2.17","@opensip-cli/output":"0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.6.0_1783901020179_0.5256381662378","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@opensip-cli/graph","version":"0.7.0","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.7.0","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"d2e0e0126895704a68983e85f17c8655bc8bfcb4","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.7.0.tgz","fileCount":648,"integrity":"sha512-ZRqZSC5b2l9ivN9+IKmAIkexlPq4WG/N+ccc6Ucv+l4ArNm89cP/3uhfQjxC7GS8J2JiOJOi0BU4GJXV7IjSUQ==","signatures":[{"sig":"MEYCIQCUAr/nw40adUKwShsuRAuekNN+NweI4LKwCqyg4oDoswIhAOf1mV24VmCVkwCHIwOOnc/6hTUQeBORRx3sA54IR1xG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2282449},"main":"./dist/index.js","type":"module","_from":"file:/tmp/tarballs/opensip-cli-graph-0.7.0.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./read":"./dist/read/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/tmp/tarballs/opensip-cli-graph-0.7.0.tgz","_integrity":"sha512-ZRqZSC5b2l9ivN9+IKmAIkexlPq4WG/N+ccc6Ucv+l4ArNm89cP/3uhfQjxC7GS8J2JiOJOi0BU4GJXV7IjSUQ==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.18.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.7.0","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.7.0","@opensip-cli/config":"0.7.0","@opensip-cli/cli-live":"0.7.0","@opensip-cli/codebase":"0.7.0","@opensip-cli/contracts":"0.7.0","@opensip-cli/datastore":"0.7.0","@opensip-cli/session-store":"0.7.0","@opensip-cli/clone-detection":"0.7.0"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":[],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"},{"name":"graph-context-inventory","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":["cwd"],"description":"[internal] Persist bounded project inventory context evidence","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true},{"name":"graph-context-ensure","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":["cwd"],"description":"[internal] Reuse or rebuild one current graph context generation","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true},{"name":"graph-context-select-tests","scope":"project","output":"raw-stream","options":[{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; project-relative)","arrayDefault":[]}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Persist static test-selection context for explicit files","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.10","typescript":"~6.0.3","@types/node":"^24.13.3","@types/react":"^19.2.17","@opensip-cli/output":"0.7.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.7.0_1784155727841_0.14943000776319937","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@opensip-cli/graph","version":"0.8.0","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.8.0","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"048aecfa01e30c404f6d1f4b36124f7e23fcda0b","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.8.0.tgz","fileCount":676,"integrity":"sha512-wDq9Q8gxjhbOW9zjYOjl4+ZCNNEMR8YX2EXnZNRRhf0SKufBGUUiA2AbD97lP286R+A0WNj0N5WCJugVKnGdgQ==","signatures":[{"sig":"MEQCID14cug2NR8NGCrt9ZhiJw4e4gOtXrlZi8NM5us5sf2QAiB7zB0RIEupN7akLx7qmL1eQ1awCyvGNrZ9faF6IIUi+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2336798},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release-bundle/opensip-cli-graph-0.8.0.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./read":"./dist/read/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/home/runner/work/_temp/release-bundle/opensip-cli-graph-0.8.0.tgz","_integrity":"sha512-wDq9Q8gxjhbOW9zjYOjl4+ZCNNEMR8YX2EXnZNRRhf0SKufBGUUiA2AbD97lP286R+A0WNj0N5WCJugVKnGdgQ==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.13.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.8.0","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.8.0","@opensip-cli/config":"0.8.0","@opensip-cli/cli-live":"0.8.0","@opensip-cli/codebase":"0.8.0","@opensip-cli/contracts":"0.8.0","@opensip-cli/datastore":"0.8.0","@opensip-cli/session-store":"0.8.0","@opensip-cli/clone-detection":"0.8.0","@opensip-cli/shared-analysis":"0.8.0"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","options":[{"flag":"--config","value":"<path>","description":"Resolved project config inherited from the parent run"}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","options":[{"flag":"--config","value":"<path>","description":"Resolved project config inherited from the parent run"}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"},{"name":"graph-context-inventory","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":["cwd"],"description":"[internal] Persist bounded project inventory context evidence","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true},{"name":"graph-context-ensure","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":["cwd"],"description":"[internal] Reuse or rebuild one current graph context generation","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true},{"name":"graph-context-select-tests","scope":"project","output":"raw-stream","options":[{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; project-relative)","arrayDefault":[]}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Persist static test-selection context for explicit files","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.10","typescript":"~6.0.3","@types/node":"^24.13.3","@types/react":"^19.2.17","@opensip-cli/output":"0.8.0"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.8.0_1784501652530_0.9075027225812564","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@opensip-cli/graph","version":"0.8.1","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.8.1","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"6829f6a715355c4c95eed49bf67e80d4739e2502","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.8.1.tgz","fileCount":676,"integrity":"sha512-G1u3nkWkzLKl5yHRDf2b09nJb0mLZ2k61n+CYg56X/IiTpROWxudlN1sSsuAYKuxXUqzdzvtuFNfI95oXEnHdQ==","signatures":[{"sig":"MEUCIQD7aPVxSufocTdsCubTTNxZGCOr6yGXFImKc9LkOaesvgIgVMIbxBhdAxeDD86qTntypW1O05+D2KoTHbMExjCn0Ss=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2336798},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release-bundle/opensip-cli-graph-0.8.1.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./read":"./dist/read/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/home/runner/work/_temp/release-bundle/opensip-cli-graph-0.8.1.tgz","_integrity":"sha512-G1u3nkWkzLKl5yHRDf2b09nJb0mLZ2k61n+CYg56X/IiTpROWxudlN1sSsuAYKuxXUqzdzvtuFNfI95oXEnHdQ==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.13.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.8.1","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.8.1","@opensip-cli/config":"0.8.1","@opensip-cli/cli-live":"0.8.1","@opensip-cli/codebase":"0.8.1","@opensip-cli/contracts":"0.8.1","@opensip-cli/datastore":"0.8.1","@opensip-cli/session-store":"0.8.1","@opensip-cli/clone-detection":"0.8.1","@opensip-cli/shared-analysis":"0.8.1"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","options":[{"flag":"--config","value":"<path>","description":"Resolved project config inherited from the parent run"}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","options":[{"flag":"--config","value":"<path>","description":"Resolved project config inherited from the parent run"}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"},{"name":"graph-context-inventory","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":["cwd"],"description":"[internal] Persist bounded project inventory context evidence","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true},{"name":"graph-context-ensure","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":["cwd"],"description":"[internal] Reuse or rebuild one current graph context generation","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true},{"name":"graph-context-select-tests","scope":"project","output":"raw-stream","options":[{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; project-relative)","arrayDefault":[]}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Persist static test-selection context for explicit files","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.10","typescript":"~6.0.3","@types/node":"^24.13.3","@types/react":"^19.2.17","@opensip-cli/output":"0.8.1"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.8.1_1784514591351_0.8416905913033861","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@opensip-cli/graph","version":"0.8.2","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.8.2","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"b66675895ab8588a6f28d8a7e272426a6ea7e189","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.8.2.tgz","fileCount":676,"integrity":"sha512-MJkXAtYC1QochJuC0TRIhjHkTAWFUkUgtrIAO0VpN438Aur+Amzdom/GcL/ndxSYAKrY07/Zms5MA6S/vwMufw==","signatures":[{"sig":"MEUCIAoAGV10o5IOm+tcHsOV6OHmJAzAe3OocUlcxDceKAGbAiEAksAccQA7lGxNnM1tIygxISsp5Siv1/6nIuCfWZvJtFM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2336798},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release-bundle/opensip-cli-graph-0.8.2.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./read":"./dist/read/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/home/runner/work/_temp/release-bundle/opensip-cli-graph-0.8.2.tgz","_integrity":"sha512-MJkXAtYC1QochJuC0TRIhjHkTAWFUkUgtrIAO0VpN438Aur+Amzdom/GcL/ndxSYAKrY07/Zms5MA6S/vwMufw==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.13.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.8.2","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.8.2","@opensip-cli/config":"0.8.2","@opensip-cli/cli-live":"0.8.2","@opensip-cli/codebase":"0.8.2","@opensip-cli/contracts":"0.8.2","@opensip-cli/datastore":"0.8.2","@opensip-cli/session-store":"0.8.2","@opensip-cli/clone-detection":"0.8.2","@opensip-cli/shared-analysis":"0.8.2"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","options":[{"flag":"--config","value":"<path>","description":"Resolved project config inherited from the parent run"}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","options":[{"flag":"--config","value":"<path>","description":"Resolved project config inherited from the parent run"}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"},{"name":"graph-context-inventory","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":["cwd"],"description":"[internal] Persist bounded project inventory context evidence","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true},{"name":"graph-context-ensure","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":["cwd"],"description":"[internal] Reuse or rebuild one current graph context generation","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true},{"name":"graph-context-select-tests","scope":"project","output":"raw-stream","options":[{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; project-relative)","arrayDefault":[]}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Persist static test-selection context for explicit files","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.10","typescript":"~6.0.3","@types/node":"^24.13.3","@types/react":"^19.2.17","@opensip-cli/output":"0.8.2"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.8.2_1784600516175_0.04067152672821828","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@opensip-cli/graph","version":"0.8.3","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.8.3","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"9a6ea26ef34a1325a50af1672d5c2c9d87840641","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.8.3.tgz","fileCount":676,"integrity":"sha512-0+xOzMw67R804fytFKjRvNga7j4UeY+GUAuaaI+whzWDLayCIgsazzwclyd31/LQ5jpdWrLHoY4RM6BARUAOpw==","signatures":[{"sig":"MEUCIQDWz0FPyRo3WgnY9xzWUaxJB/s8O/lb2KfdZmBYVVXyrAIgFnHC83X4FES8HPDLcv9qfHoD/bRnfw3P3clz48AEmFY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2336798},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release-bundle/opensip-cli-graph-0.8.3.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./read":"./dist/read/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/home/runner/work/_temp/release-bundle/opensip-cli-graph-0.8.3.tgz","_integrity":"sha512-0+xOzMw67R804fytFKjRvNga7j4UeY+GUAuaaI+whzWDLayCIgsazzwclyd31/LQ5jpdWrLHoY4RM6BARUAOpw==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.13.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.8.3","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.8.3","@opensip-cli/config":"0.8.3","@opensip-cli/cli-live":"0.8.3","@opensip-cli/codebase":"0.8.3","@opensip-cli/contracts":"0.8.3","@opensip-cli/datastore":"0.8.3","@opensip-cli/session-store":"0.8.3","@opensip-cli/clone-detection":"0.8.3","@opensip-cli/shared-analysis":"0.8.3"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","options":[{"flag":"--config","value":"<path>","description":"Resolved project config inherited from the parent run"}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","options":[{"flag":"--config","value":"<path>","description":"Resolved project config inherited from the parent run"}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"},{"name":"graph-context-inventory","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":["cwd"],"description":"[internal] Persist bounded project inventory context evidence","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true},{"name":"graph-context-ensure","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":["cwd"],"description":"[internal] Reuse or rebuild one current graph context generation","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true},{"name":"graph-context-select-tests","scope":"project","output":"raw-stream","options":[{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; project-relative)","arrayDefault":[]}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Persist static test-selection context for explicit files","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.10","typescript":"~6.0.3","@types/node":"^24.13.3","@types/react":"^19.2.17","@opensip-cli/output":"0.8.3"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.8.3_1784608157922_0.07996521157620062","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@opensip-cli/graph","version":"0.8.4","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.8.4","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"a889bed4c408d02b0ed18af36800722a1e1e96bd","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.8.4.tgz","fileCount":688,"integrity":"sha512-O35Ch/7ZRikTIYMK9i/gqEHy7qyE9CHInY5KcnLW4NbeDDpPconv9ANDrR+wB+fleWL1kF5nSdO447WGuY4PzQ==","signatures":[{"sig":"MEUCIQDav0mgdKig6YwaGFa9R56ZrXU2wEHc6AYoADomCO+T5AIgJtyc5Q79e2uk93vQtmHt4rNeUegXSuCRUTPoPdi+o6U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.8.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2365052},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release-bundle/opensip-cli-graph-0.8.4.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./read":"./dist/read/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/home/runner/work/_temp/release-bundle/opensip-cli-graph-0.8.4.tgz","_integrity":"sha512-O35Ch/7ZRikTIYMK9i/gqEHy7qyE9CHInY5KcnLW4NbeDDpPconv9ANDrR+wB+fleWL1kF5nSdO447WGuY4PzQ==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.13.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.8.4","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.8.4","@opensip-cli/config":"0.8.4","@opensip-cli/cli-live":"0.8.4","@opensip-cli/codebase":"0.8.4","@opensip-cli/contracts":"0.8.4","@opensip-cli/datastore":"0.8.4","@opensip-cli/session-store":"0.8.4","@opensip-cli/clone-detection":"0.8.4","@opensip-cli/shared-analysis":"0.8.4"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","options":[{"flag":"--config","value":"<path>","description":"Resolved project config inherited from the parent run"}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","options":[{"flag":"--config","value":"<path>","description":"Resolved project config inherited from the parent run"}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"},{"name":"graph-context-inventory","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":["cwd"],"description":"[internal] Persist bounded project inventory context evidence","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true},{"name":"graph-context-ensure","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":["cwd"],"description":"[internal] Reuse or rebuild one current graph context generation","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true},{"name":"graph-context-select-tests","scope":"project","output":"raw-stream","options":[{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; project-relative)","arrayDefault":[]}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Persist static test-selection context for explicit files","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.10","typescript":"~6.0.3","@types/node":"^24.13.3","@types/react":"^19.2.17","@opensip-cli/output":"0.8.4"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.8.4_1784753887627_0.04083345052384857","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"@opensip-cli/graph","version":"0.8.5","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"license":"Apache-2.0","_id":"@opensip-cli/graph@0.8.5","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"homepage":"https://github.com/opensip-ai/opensip-cli","bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"dist":{"shasum":"e929cda83a2c84b361bd93c2671bf0612e8a8cd6","tarball":"https://registry.npmjs.org/@opensip-cli/graph/-/graph-0.8.5.tgz","fileCount":688,"integrity":"sha512-RWKohR8HYpYRReOMLJQDew7VxSKvw0Oj7FYv7tQrQ6TphEnRItAf7m95qD6BIhtPMJj6mUvDDhh0KnUme+uU1w==","signatures":[{"sig":"MEUCIQCT159fuSTFpsPVKa3iS42KhxLZYmTakquNJOE7FWaRbAIgCq6lTQAlAIpNxYHPgHIBGfyvcpmkz/d5xucIpa1aGAQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@opensip-cli%2fgraph@0.8.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2365487},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/release-bundle/opensip-cli-graph-0.8.5.tgz","types":"./dist/index.d.ts","exports":{".":"./dist/index.js","./read":"./dist/read/index.js","./internal":"./dist/internal.js"},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:986299a3-f7b4-4ae0-97d6-1971d554e2de"}},"_resolved":"/home/runner/work/_temp/release-bundle/opensip-cli-graph-0.8.5.tgz","_integrity":"sha512-RWKohR8HYpYRReOMLJQDew7VxSKvw0Oj7FYv7tQrQ6TphEnRItAf7m95qD6BIhtPMJj6mUvDDhh0KnUme+uU1w==","repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"_npmVersion":"11.13.0","description":"Static call-graph + dead-end analysis (seven-stage pipeline)","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","glob":"^13.0.0","react":"^19.2.7","commander":"^15.0.0","minimatch":"^10.2.5","drizzle-orm":"^0.45.2","@opensip-cli/core":"0.8.5","@opentelemetry/api":"^1.9.1","@opensip-cli/cli-ui":"0.8.5","@opensip-cli/config":"0.8.5","@opensip-cli/cli-live":"0.8.5","@opensip-cli/codebase":"0.8.5","@opensip-cli/contracts":"0.8.5","@opensip-cli/datastore":"0.8.5","@opensip-cli/session-store":"0.8.5","@opensip-cli/clone-detection":"0.8.5","@opensip-cli/shared-analysis":"0.8.5"},"opensipTools":{"id":"graph","kind":"tool","commands":[{"args":[{"name":"paths","optional":true,"variadic":true,"description":"Subtrees to analyze (default: whole project)"}],"name":"graph","scope":"project","output":"raw-stream","aliases":[],"options":[{"flag":"--no-cache","negatable":true,"description":"Skip catalog cache (force full rebuild)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--recipe","value":"<name>","description":"Run a named recipe (a subset of graph rules). Default: all rules"},{"flag":"--show","value":"<session>","description":"Replay a stored graph session by id, or latest for the latest graph session"},{"flag":"--gate-save","default":false,"description":"Architecture-gate: save current findings as baseline in the project SQLite store (mutually exclusive with --gate-compare)"},{"flag":"--gate-compare","default":false,"description":"Architecture-gate: compare current findings against the saved baseline; exit 1 on regression"},{"flag":"--profile","value":"<path>","description":"Write graph performance profile JSON to path"},{"flag":"--workspace","default":false,"description":"Fan out across detected workspace units (memory-isolated; polyglot)"},{"flag":"--exact","default":false,"description":"Use the single-program exact build engine instead of the default parallel sharded engine (both resolve through one shared model — exact = the 1-shard case — held equivalent by the directional equivalence guardrail; --exact suits small/single-package repos)."},{"flag":"--concurrency","value":"<n>","description":"Concurrency cap for --workspace and the sharded build (default: cpus()-1)"},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--list-files","default":false,"description":"List the source files graph would discover for this scope and exit (no build; honors [paths...], --workspace, --language, --json)"},{"flag":"--filter","value":"<filter>","description":"Agent filter (repeatable): errors-only, warnings-only, category:<name>, source:<slug>, file:<path>, high-impact, top:<n>","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Limit returned signals (sugar for --filter top:<n>)"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--sarif","value":"<path>","description":"Also write this run findings as SARIF 2.1.0. Composes with --gate-save; written even when the gate fails."}],"commonFlags":["json","cwd","quiet","verbose","debug","reportTo","apiKey","open"],"description":"Run static call-graph analysis (rules, entry points, catalog summary in one report)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"args":[{"name":"specPath","description":"Path to a JSON ShardWorkerSpec file"}],"name":"graph-shard-worker","scope":"project","output":"raw-stream","options":[{"flag":"--config","value":"<path>","description":"Resolved project config inherited from the parent run"}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)","rawStreamReason":"worker-ipc"},{"args":[{"name":"specPath","description":"Path to a JSON graph build-spec file"}],"name":"graph-run-worker","scope":"project","output":"raw-stream","options":[{"flag":"--config","value":"<path>","description":"Resolved project config inherited from the parent run"}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)","rawStreamReason":"worker-ipc"},{"name":"export","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--format","value":"<fmt>","choices":["sarif","catalog","baseline"],"required":true,"description":"Export artifact: sarif | catalog | baseline"},{"flag":"--output-sarif","value":"<path>","description":"Output file path for the SARIF v2.1.0 document"},{"flag":"--catalog-output","value":"<path>","description":"Output file path for the CatalogExport JSON"},{"flag":"--tenant-id","value":"<id>","description":"Tenant scope stamped on every row + provenance"},{"flag":"--repo-id","value":"<id>","description":"Repository scope stamped on every row"},{"flag":"--git-sha","value":"<sha>","description":"Commit SHA the catalog was extracted at"},{"flag":"--run-id","value":"<uuid>","description":"Run id for provenance (auto-generated if absent)"},{"flag":"--mode","value":"<mode>","default":"initial","description":"'initial' (full rebuild) or 'incremental' (reuse cache when present)"},{"flag":"--changed-file","value":"<relPath>","description":"Changed file (repeatable). Advisory today — the engine derives the true changed set from fingerprint diffs; recorded for observability.","arrayDefault":[]},{"flag":"--language","value":"<name>","description":"Force a specific language adapter (suppresses auto-detection)"},{"flag":"--resolution","value":"<mode>","choices":["exact","fast"],"default":"exact","description":"Edge resolution tier: exact (semantic) or fast (syntactic, no type checker)"},{"flag":"--out","value":"<path>","description":"Output file path for the JSON baseline"}],"commonFlags":["cwd","json"],"description":"Export graph analysis artifacts: --format sarif (SARIF v2.1.0 findings), catalog (CatalogExport JSON), or baseline (gate fingerprint JSON)","rawStreamReason":"file-export"},{"name":"recipes","scope":"project","output":"command-result","parent":"graph","commonFlags":["json"],"description":"List available graph recipes"},{"args":[{"name":"name","description":"Function simple name to look up (e.g. \"saveBaseline\")"}],"name":"lookup","scope":"project","output":"command-result","parent":"graph","commonFlags":["json","cwd"],"description":"Look up function occurrences by simple name from the persisted catalog"},{"name":"index","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--build","default":false,"description":"Run the graph pipeline to refresh the catalog before emitting the index"},{"flag":"--cwd <path>","description":"Target directory (out path resolves against this)"},{"flag":"--out","value":"<path>","default":"symbolindex.json","description":"Output file path"}],"commonFlags":[],"description":"Emit a symbolindex.json artifact (name→file:line and file→names); --build refreshes the catalog first","rawStreamReason":"file-export"},{"name":"list","scope":"project","output":"command-result","parent":"graph","commonFlags":["cwd","json"],"description":"List available graph rules"},{"name":"impact","scope":"project","output":"raw-stream","parent":"graph","options":[{"flag":"--changed","default":false,"description":"Use git working-tree / branch diff for changed files"},{"flag":"--since","value":"<ref>","description":"Git ref base (diff <ref>...HEAD); implies changed semantics"},{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; git-free)","arrayDefault":[]},{"flag":"--top","value":"<n>","description":"Cap impacted function count"},{"flag":"--raw","default":false,"description":"Emit unwrapped payload (no CommandOutcome wrapper)"},{"flag":"--no-cache","default":false,"description":"Force catalog rebuild before impact analysis"}],"commonFlags":["cwd","json"],"description":"Analyze what changed and what depends on it (git --changed/--since or explicit --files)","producesVerdict":true,"rawStreamReason":"runtime-render-dispatch"},{"name":"graph-equivalence-check","scope":"project","output":"raw-stream","options":[{"flag":"--cwd <path>","description":"Target repo root to check (default: current directory)"},{"flag":"--budget","value":"<path>","default":".config/graph-equivalence-budget.json","description":"Path to the committed budget JSON (relative to cwd or absolute)"},{"flag":"--update-budget","description":"Rewrite the budget file to the observed production divergence count (capture/tighten); always exits 0"}],"visibility":"internal","commonFlags":[],"description":"[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)","rawStreamReason":"diagnostic-gate"},{"name":"graph-context-inventory","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":["cwd"],"description":"[internal] Persist bounded project inventory context evidence","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true},{"name":"graph-context-ensure","scope":"project","output":"raw-stream","visibility":"internal","commonFlags":["cwd"],"description":"[internal] Reuse or rebuild one current graph context generation","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true},{"name":"graph-context-select-tests","scope":"project","output":"raw-stream","options":[{"flag":"--files","value":"<path>","description":"Explicit changed file (repeatable; project-relative)","arrayDefault":[]}],"visibility":"internal","commonFlags":["cwd"],"description":"[internal] Persist static test-selection context for explicit files","rawStreamReason":"host-orchestrated-evidence","producesEvidenceSnapshot":true}],"identity":{"name":"graph"},"requires":[{"reason":"Reads source/config files and writes graph cache, baselines, reports, profiles, and worker specs","resource":"filesystem"},{"reason":"Runs live-build and sharded-build worker subprocesses for graph analysis","resource":"subprocess"}],"stableId":"3873f1c2-02a9-4719-930a-bca74b62b706","apiVersion":1,"capabilities":[{"id":"graph-adapter","discovery":{"discovery":{"mode":"marker","markerKind":"graph-adapter"},"configKeys":{"packages":"graphAdapters","autoDiscover":"autoDiscoverGraphAdapters"},"exportName":"adapter","exportShape":"single","builtinScope":"@opensip-cli"},"apiVersion":1,"contributionKind":"module-export","contributionSchema":{"requiredKeys":["id"]},"minSupportedApiVersion":1}]},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.10","typescript":"~6.0.3","@types/node":"^24.13.3","@types/react":"^19.2.17","@opensip-cli/output":"0.8.5"},"_npmOperationalInternal":{"tmp":"tmp/graph_0.8.5_1784862135262_0.9120609375960842","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-06-15T21:51:22.057Z","modified":"2026-07-24T03:19:30.392Z","0.1.0":"2026-06-15T21:51:22.470Z","0.1.1":"2026-06-16T00:32:51.430Z","0.1.2":"2026-06-16T16:08:53.565Z","0.1.3":"2026-06-17T00:08:39.675Z","0.1.4":"2026-06-17T04:06:17.660Z","0.1.5":"2026-06-17T19:14:21.925Z","0.1.6":"2026-06-18T01:56:28.572Z","0.1.7":"2026-06-19T16:20:11.527Z","0.1.8":"2026-06-21T07:20:41.231Z","0.1.9":"2026-06-22T18:03:45.850Z","0.1.10":"2026-06-22T18:48:57.215Z","0.1.11":"2026-06-24T05:18:40.844Z","0.1.12":"2026-06-25T20:04:09.745Z","0.1.13":"2026-06-27T20:25:30.031Z","0.1.14":"2026-06-28T02:51:57.945Z","0.1.15":"2026-06-29T16:10:28.120Z","0.1.16":"2026-06-30T00:48:56.321Z","0.1.17":"2026-06-30T04:43:15.738Z","0.1.18":"2026-06-30T22:28:20.149Z","0.1.19":"2026-07-01T02:43:59.635Z","0.2.1":"2026-07-02T01:21:31.554Z","0.2.3":"2026-07-02T02:53:27.006Z","0.2.4":"2026-07-02T05:18:08.303Z","0.3.0":"2026-07-03T02:58:35.088Z","0.3.1":"2026-07-03T04:48:59.355Z","0.4.0":"2026-07-06T18:25:01.709Z","0.4.1":"2026-07-07T01:36:20.472Z","0.4.2":"2026-07-07T05:11:31.296Z","0.5.0":"2026-07-08T05:40:50.859Z","0.5.1":"2026-07-10T03:27:06.485Z","0.5.2":"2026-07-10T15:40:13.522Z","0.5.3":"2026-07-11T03:02:32.706Z","0.6.0":"2026-07-13T00:03:40.392Z","0.7.0":"2026-07-15T22:48:48.027Z","0.8.0":"2026-07-19T22:54:12.727Z","0.8.1":"2026-07-20T02:29:51.489Z","0.8.2":"2026-07-21T02:21:56.356Z","0.8.3":"2026-07-21T04:29:18.172Z","0.8.4":"2026-07-22T20:58:07.789Z","0.8.5":"2026-07-24T03:02:15.423Z"},"bugs":{"url":"https://github.com/opensip-ai/opensip-cli/issues"},"license":"Apache-2.0","homepage":"https://github.com/opensip-ai/opensip-cli","keywords":["opensip-cli","static-analysis","code-quality","call-graph","dependency-graph","code-analysis","architecture"],"repository":{"url":"git+https://github.com/opensip-ai/opensip-cli.git","type":"git","directory":"packages/graph/engine"},"description":"Static call-graph + dead-end analysis (seven-stage pipeline)","maintainers":[{"name":"opensip","email":"admin@opensip.ai"}],"readme":"","readmeFilename":"README.md"}