{"_id":"@polycode-projects/seonix","_rev":"43-a939db0a7f5fcd3feea0d451219be83a","name":"@polycode-projects/seonix","dist-tags":{"latest":"0.11.18"},"versions":{"0.1.0":{"name":"@polycode-projects/seonix","version":"0.1.0","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.1.0","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"7552f5f8c93fddef467537b920c97f9baead1ab7","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.1.0.tgz","fileCount":18,"integrity":"sha512-JuP7Ifir4ftyLkX+oop3Ht7vmkQ4Sj8tFdg87Rp+q2KUAQktp8GMPcpdl2cFwTH14ZqNZs5fqAaDYopQo8wqfw==","signatures":[{"sig":"MEUCIQDBeAuqN/Tt82HkfI3wan6hwbdDUnW9gbtKZ1VvrxLkfQIgcVqxXf0S9ZcMB0cG31VZ9SPxDPn23VS7+7OPyaeIU2o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":227757},"type":"module","engines":{"node":">=24"},"gitHead":"7f3832a1eb63a8fff4545ec642da436b0d709450","private":false,"scripts":{"viz":"node bin/cli.mjs viz","test":"node --test \"test/**/*.test.mjs\""},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git","directory":"packages/seonix"},"_npmVersion":"11.8.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"ts-morph":"^24.0.0","cytoscape":"^3.30.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seonix_0.1.0_1782859777626_0.32634089761851137","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@polycode-projects/seonix","version":"0.2.0","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.2.0","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"bf03ac6a16d6fac75a3af4b8986475b09370a22a","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.2.0.tgz","fileCount":26,"integrity":"sha512-z1T0PMKQD+cKMY1mO66zgtS+2kOKxNpJLOk2eUdHtSIgSvF1L+TBad8jzsR4fGJoxvAgt3p+iovOSQdTo5SZ7A==","signatures":[{"sig":"MEQCIAkO3YMO6/aE9Y16NNoRTcvminrZHQLmGihL/fjE1fVQAiA+0zeK2j1icILFRo9p/iaBhDG46QUpx2QHsXp6Oo+qiA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":449566},"type":"module","engines":{"node":">=24"},"gitHead":"7653e9a2a843f46366d5cef752e2711720cbc8e8","private":false,"scripts":{"viz":"node bin/cli.mjs viz","test":"node --test \"test/**/*.test.mjs\""},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git","directory":"packages/seonix"},"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ts-morph":"^24.0.0","cytoscape":"^3.30.0","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seonix_0.2.0_1782994962801_0.6357839932025706","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@polycode-projects/seonix","version":"0.2.1","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.2.1","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"0f84956cd365065b84c2c0da2f64819d90ef9dab","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.2.1.tgz","fileCount":26,"integrity":"sha512-ATOyCpnX5/uGuu+kHJyzOm9OVXG7X04MTVTwROYusCP4I0Ial9zVpessU/01YLARl/HZo5BQAWr+lYDGY5YDKw==","signatures":[{"sig":"MEQCIGtQx+/w3zrSijYLuktuZxf2gn9zHr1BaBF0idDkbXKDAiBOMt3esT3W7MotGz/19nqWM86ZHkr8VqlooVqBMaK0ZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":450074},"type":"module","engines":{"node":">=24"},"gitHead":"904b9511d9f03defb5071a6ab728e9148dc069bd","private":false,"scripts":{"viz":"node bin/cli.mjs viz","test":"node --test \"test/**/*.test.mjs\""},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git","directory":"packages/seonix"},"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"ts-morph":"^24.0.0","cytoscape":"^3.30.0","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seonix_0.2.1_1782997019996_0.3052210790961589","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@polycode-projects/seonix","version":"0.3.0","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.3.0","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"d1a5eb456eb68eff8a8f8cc61c2741322682d791","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.3.0.tgz","fileCount":32,"integrity":"sha512-dPZqP27oPB87SH7yD7cqKRWJEt08kjDHQQMn+gk17XujrIikDzWK4CJlXjy+2fd9bNEUrWanz115fb4UFjfZZw==","signatures":[{"sig":"MEYCIQDUbXSUnDOqD6gYN4uyjseqFBKvb5K+a6QtZ+UI5Yw8UAIhAJxDpjDSXqB+VzcmW0ISXkMnAYp0uAHgUxqAwFLxUNLd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":585869},"type":"module","engines":{"node":">=24"},"gitHead":"71a9523c3459fee24f1b76a1db563eeb73841aa2","private":false,"scripts":{"viz":"node bin/cli.mjs viz","test":"node --test \"test/**/*.test.mjs\""},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git","directory":"packages/seonix"},"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"wink-nlp":"^2.4.0","cytoscape":"^3.30.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","wink-eng-lite-web-model":"^1.8.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seonix_0.3.0_1783016878920_0.24674006686100247","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@polycode-projects/seonix","version":"0.4.0","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.4.0","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"80f6f24b2c00d499ad609eb3114a3cc540a550f1","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.4.0.tgz","fileCount":33,"integrity":"sha512-f1brlSW84YM/GXf/3HOvM3Ve86DP713NIvlis4ItiMp95+2XAKp2cPSM9FQZWNDX6RKCk2+XCwWkSJfcbhG0Cw==","signatures":[{"sig":"MEUCIQCqUpxR8f7oNReJijJRADA+UXTIBp0QulUcLSZgfWVyXwIgLoMcJPtrkvnssBSN2xi96fleuh79xLT72nxSRjVnEoE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":708413},"type":"module","engines":{"node":">=24"},"gitHead":"eac9ccac341844c617d8b00c14e71d7276808c32","private":false,"scripts":{"viz":"node bin/cli.mjs viz","test":"node --test \"test/**/*.test.mjs\""},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git","directory":"packages/seonix"},"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"wink-nlp":"^2.4.0","cytoscape":"^3.30.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","wink-eng-lite-web-model":"^1.8.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seonix_0.4.0_1783026012276_0.6852510787573305","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@polycode-projects/seonix","version":"0.5.0","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.5.0","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"93f555b19b08e3c5e0771c459c47e44ed7b6ab28","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.5.0.tgz","fileCount":33,"integrity":"sha512-xXrA7Z7nSgH0ISBMiirqDmXi8198HfdCf0I48HEatuUBaO2jBmrDZN9axJL9lNJFr/3vh/SBc6P4CaOJyehxAg==","signatures":[{"sig":"MEUCIG1Z9EV/xAM65BQos+7NIIE6iBg8qTGIXqluyOiLsI5BAiEA+Re1HVGpu9LgHDlFVa2yXPvaFPiC0jmNhV5FQvjWyas=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":734631},"type":"module","engines":{"node":">=24"},"gitHead":"2c176891c0782a098aac2275e9c5befb75383306","private":false,"scripts":{"viz":"node bin/cli.mjs viz","test":"node --test \"test/**/*.test.mjs\""},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git","directory":"packages/seonix"},"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"wink-nlp":"^2.4.0","cytoscape":"^3.30.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","wink-eng-lite-web-model":"^1.8.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seonix_0.5.0_1783049381552_0.09578079647716131","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@polycode-projects/seonix","version":"0.6.0","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.6.0","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"a54652aedbf4b680c98a6f40ab23dcc91e50f9cb","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.6.0.tgz","fileCount":33,"integrity":"sha512-RAXEHuDmpQFablvhgdB/f8/vlmGgb1W964vsluzk6iuAOSBYq4X4rJ+xgyjPyCM8OOYmyz0BgLHf1oPYskvqGw==","signatures":[{"sig":"MEUCIQDf+sMoCDvNEU9UlLppZSgxrcIShMZtBGiBtLiourEKYAIgNhlgZHLN0YxlZUjcYpveeNFdWPYEqIKYb5bauPtHkZU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":734617},"type":"module","engines":{"node":">=24"},"gitHead":"ad16ab9399f5106131422d6af773eafd2022bb58","private":false,"scripts":{"viz":"node bin/cli.mjs viz","test":"node --test \"test/**/*.test.mjs\""},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git","directory":"packages/seonix"},"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"wink-nlp":"^2.4.0","cytoscape":"^3.30.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","wink-eng-lite-web-model":"^1.8.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seonix_0.6.0_1783049825458_0.9028355209170911","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@polycode-projects/seonix","version":"0.6.1","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.6.1","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"7028ef6feee8a0608ee5de51652704aaa050c0f4","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.6.1.tgz","fileCount":33,"integrity":"sha512-w9zD6fm1Xz6FGSm0S7BAyFQlp6UfqzcktS1w4wMCXOkq2aZyBU7UvsLNO0JMVWKHWAQXrcc7xRAyssYCKPUzSw==","signatures":[{"sig":"MEQCIHak4bklnlk58kA6g0lgzzbto6dBKw5M6otAU9GNr+srAiAXCWTyTvDdSK6PpxRhlLihCRl8++j71w+lbvv/jbHCQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":734617},"type":"module","engines":{"node":">=24"},"gitHead":"ff160cd06c7cc926fd25912f50566aca9e5284bd","private":false,"scripts":{"viz":"node bin/cli.mjs viz","test":"node --test \"test/**/*.test.mjs\""},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git","directory":"packages/seonix"},"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"wink-nlp":"^2.4.0","cytoscape":"^3.30.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","wink-eng-lite-web-model":"^1.8.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seonix_0.6.1_1783050524326_0.17635331148712896","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@polycode-projects/seonix","version":"0.7.0","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.7.0","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"a79d4c4a4de56546f53fdd2b8a02331656221f56","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.7.0.tgz","fileCount":41,"integrity":"sha512-1AwuVT3G0H3WkTN0cwkFo5f1CH2arW/bmVCwFQ4hcJleUMVb9TD/3ZkLZFXgapyr9Ybv1l/pAjX6vDZS3ZnCBQ==","signatures":[{"sig":"MEUCIQCMo99G7vmZInI+gVqDZGp1V+W0Ui8DFX3g76aEae9E6wIgdFKigApy66DalxHfc9zbfxNV7yvzH5SaqHFALhxE0Bo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":859668},"type":"module","engines":{"node":">=24"},"gitHead":"49476d3986f3093a0db352eb74a69e09e13f817e","private":false,"scripts":{"viz":"node bin/cli.mjs viz","test":"node --test \"test/**/*.test.mjs\""},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git","directory":"packages/seonix"},"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"wink-nlp":"^2.4.0","cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","wink-eng-lite-web-model":"^1.8.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seonix_0.7.0_1783163466503_0.7559848266431484","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@polycode-projects/seonix","version":"0.7.1","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.7.1","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"2edf5e5237afa8970037f864da7180c60e08854c","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.7.1.tgz","fileCount":41,"integrity":"sha512-PE+RkSKl4lIzZydUkmMHzKZD+nJP+FxMqkb29j0S7pt6BFm+kwBZONNY7viPPVN4kkJkPucooOD3n5UgoymjOg==","signatures":[{"sig":"MEUCIQC1CqUsLPLslS/lY905f4BAFIGDoSNmyPMdfUprwmf4SwIgO5Gz5YGYYmoAmBQJ7hNk18OxCEF5Yi/1XE2r3EnuRsQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":860182},"type":"module","engines":{"node":">=24"},"gitHead":"b15f7cbb6826703674310b2f5bf1a5a2b9406b42","private":false,"scripts":{"viz":"node bin/cli.mjs viz","test":"node --test \"test/**/*.test.mjs\""},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git","directory":"packages/seonix"},"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"wink-nlp":"^2.4.0","cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","wink-eng-lite-web-model":"^1.8.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seonix_0.7.1_1783165948463_0.3314012941779829","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@polycode-projects/seonix","version":"0.7.3","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.7.3","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"e68bb81f2f2c1a0d247d1879a240d0a8cc48a09e","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.7.3.tgz","fileCount":41,"integrity":"sha512-EW8fhFHCiTktoDWgyEjaa2xdVNEleGXH1MqzMlntO1Tkq5+xrKETsv5E03ABpDzhBuvf/WGWYOMjzFoiwlh5mg==","signatures":[{"sig":"MEUCIQD/qrewblzWoKxZHtT9kOs5ROIdpO0i2Tg/kFTW/Mm/kQIgagrql9x/A0ys0Bnm/JNBT5MRFti22SU8gbyejTMhl/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":859726},"type":"module","engines":{"node":">=24"},"gitHead":"f39313431c9aa9b4de787b7589164c7027e85de8","private":false,"scripts":{"viz":"node bin/cli.mjs viz","test":"node --test \"test/**/*.test.mjs\""},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git","directory":"packages/seonix"},"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"wink-nlp":"^2.4.0","cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","wink-eng-lite-web-model":"^1.8.1","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seonix_0.7.3_1783260971067_0.28021471589991753","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@polycode-projects/seonix","version":"0.8.0","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.8.0","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"d64cca92b1a7ae4b1e8dcc3886a634d17ca00e52","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.8.0.tgz","fileCount":39,"integrity":"sha512-j8u6NhOJx6a5TOYkXE85cl5WiT6BVIfQiu0D93XNPoEl+4nBei0jZ4gvhm//xRMeXj10DGJXBcT5EJdAroYIUw==","signatures":[{"sig":"MEUCIA6nm1E65CmHquJRBAijsoLpFJPdZjKxYvG1h/i2HPP7AiEAn0biE1LzZMOx7wA6nHej5RP7IoArPlgP3hTL0OGgygk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":751467},"type":"module","engines":{"node":">=24"},"gitHead":"e04f2f3e72923e669e06e74118d85dfb08d6cd11","private":false,"scripts":{"viz":"node bin/cli.mjs viz","test":"node --test \"test/**/*.test.mjs\""},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git","directory":"packages/seonix"},"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seonix_0.8.0_1783277889409_0.1283391233612794","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@polycode-projects/seonix","version":"0.9.0","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.9.0","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"8c74b9e652c38d8460dadaa8c8e9b518288446ab","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.9.0.tgz","fileCount":41,"integrity":"sha512-eX08nZ6jP+3zdiKX+Db4J5kNdxT6yJ0iVbRcxz6iTJ3pTVoz/eQnPfmZVFnM52tkJRtnJ7ITfy98VofwXksEEQ==","signatures":[{"sig":"MEUCIH1/R8qQjJUKpA+BUY7OafL5m277Go9LfU67Zl3wvApdAiEA7fEQZl3+oALLi2eERlE3FZJ3JfVUUrc1dGR87sc8d7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":767593},"type":"module","engines":{"node":">=24"},"gitHead":"c0e168baf640b395147f17951621aa02e8e255a7","private":false,"scripts":{"viz":"node bin/cli.mjs viz","test":"node --test \"test/**/*.test.mjs\""},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git","directory":"packages/seonix"},"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seonix_0.9.0_1783326710582_0.6200688926357378","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@polycode-projects/seonix","version":"0.9.1","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.9.1","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"cf158a26086e09c450b5efc9280c952ec37b20f8","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.9.1.tgz","fileCount":41,"integrity":"sha512-usuuT9QAiPIM2rJewc/y3rbx80AfOjJPMQEeLw3hbqSAz2cjchdmqeEt4O8qTpQT9rrurZ1wX9tM53w42g813w==","signatures":[{"sig":"MEUCICN+rPmmNVhOEIRBeL+bIMLQjAYZ/0A81Tw2FLICWPusAiEAhQs/NDSGjOe9+Yw276kv37Fu3jWg3TRumgurOCk9jK0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":801188},"type":"module","engines":{"node":">=24"},"gitHead":"eb2b7f84b44fe44d3e7dc49913a12edaccfa0171","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"node --test \"test/**/*.test.mjs\"","bench:b010":"node bench/run.mjs --suite django-lh --arms otb,seonix,seonix-min,seonix-b010 --models claude-opus-4-8,claude-sonnet-4-6 --runs 5 --concurrency 10","bench:b011":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --models claude-opus-4-8,claude-sonnet-4-6,claude-haiku-4-5 --runs 5 --concurrency 15","bench:b015":"node scripts/bench-b015.mjs","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:b016h":"node scripts/bench-b016-h.mjs","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:b016p1":"node scripts/bench-b016-p1.mjs","bench:b016p2":"node scripts/bench-b016-p2.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","join:telemetry":"node scripts/join-telemetry.mjs","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs","bench:b011-haiku-refs":"node bench/run.mjs --suite django-lh --arms otb,seonix-b010 --models claude-haiku-4-5 --runs 5 --concurrency 10"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^0.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.9.1_1783378014586_0.04998300247837628","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@polycode-projects/seonix","version":"0.10.0","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.10.0","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"6c5b8e34569440ec2bab630a7026e4d7ddc24a5c","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.10.0.tgz","fileCount":41,"integrity":"sha512-RalROPqP6oITD+VBJknmtdjDbz3OmG6da18ku4dBBY2eiF9KobR9As2xqQQV48obbNeXGBM9olDzgNaA4+lY3g==","signatures":[{"sig":"MEQCIDXXzXWQFWyoJkCFFdGtGPn6PDGd+11IepbiWjcDRjI0AiAliFVvgFeGw6pKxwyW26q+GH2g0BKcXG9Np+7pdkGIwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":841973},"type":"module","engines":{"node":">=24"},"gitHead":"93f17ee89dbf6c45c010eb96aa83d51fd03e1abd","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","join:telemetry":"node scripts/join-telemetry.mjs","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.10.0_1783388762257_0.45939635817537794","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@polycode-projects/seonix","version":"0.10.1","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.10.1","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"0f670350be58cf23b5efe668ebbeaa201a27aa8d","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.10.1.tgz","fileCount":43,"integrity":"sha512-cqvkBXJCui2s+Nhlsnrx40sLInyAxc0v+3kwztC+Rnq/k4dJxtB7VxEEbTy2ee0HQr/Ib0Rb37Rz7HQjWkbioA==","signatures":[{"sig":"MEUCICorqWqL3+6agxd+2d7RHF2LbaRznsny5NHqEFT19kQiAiEAjmV/iO/77rhH0vrHJUOdKMhUsMDlu6qPPZtmvTw5Eso=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":846597},"type":"module","engines":{"node":">=24"},"gitHead":"274fc585e038ffee2511d20533d05864b4d5e83e","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","join:telemetry":"node scripts/join-telemetry.mjs","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.10.1_1783456956735_0.3919401988739648","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"@polycode-projects/seonix","version":"0.10.2","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.10.2","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"34d959d2e6237ed860ecf8946a5a8fd1320ff599","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.10.2.tgz","fileCount":43,"integrity":"sha512-kkJWB05QnYPiEslSEPyZIHMuYOB/qQ+NUk1eiU6BlcIJ6TD8yWBTyWP+0Up7QqfCXOH/4VktKihHOWYOaalSJg==","signatures":[{"sig":"MEUCIQDfT5re5iU9ZBhDHJv++eQrhwtG36SpO58pSRv68w7ZxgIgcdNTJnGJVY5cNXlzkqPenkhlQ2NLv7QFB51UhFmok+8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":846597},"type":"module","engines":{"node":">=24"},"gitHead":"638738a8153f3a75df11cbe482d598ecb4b06a83","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","join:telemetry":"node scripts/join-telemetry.mjs","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.10.2_1783457400924_0.6593405234055794","host":"s3://npm-registry-packages-npm-production"}},"0.10.3":{"name":"@polycode-projects/seonix","version":"0.10.3","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.10.3","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"ccac79574b75a446c7dbfaf969227b0be58810de","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.10.3.tgz","fileCount":43,"integrity":"sha512-AJ0uvx++8Bl8QxojQ+PwZKancJQerEFYRK35InTB0y1aFGy+9S2mRS6ym8wJeK1HOSNZzwlAJt2rYdBSaoQOQw==","signatures":[{"sig":"MEUCID+f1RRXz+dlIoTcDp8pNGEYjkWgcgcHA5xYwKz6MojYAiEAloQXRP4F3AbW9muNAQXshvntFdhf8KMHurzSLbBYtQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":857488},"type":"module","engines":{"node":">=24"},"gitHead":"43bee59c7e93f38010b967948dd312277853576f","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","join:telemetry":"node scripts/join-telemetry.mjs","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^0.9.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.10.3_1783462388875_0.5339904994304487","host":"s3://npm-registry-packages-npm-production"}},"0.10.4":{"name":"@polycode-projects/seonix","version":"0.10.4","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.10.4","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"4fe1e820d43dc7af56aefd003d21fd037524f6cf","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.10.4.tgz","fileCount":43,"integrity":"sha512-SqnKaRJGim0fqvnnJrwF9Usw5nQYbgqq8DthTvLUwm88FYXtANvjo95mjGukjVUeD2NjeBni2Io6apHEB3uwlQ==","signatures":[{"sig":"MEUCIHnnApOVgEGemC2FOjhoTEfujBUXSbv3tTU5lQ6p8P81AiEAiY+u0uJSErkyPlWtcUmVLAcksbc1VLy8KeQcugWwgXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":857488},"type":"module","engines":{"node":">=24"},"gitHead":"9718bdd15f905b796b0196bd8776aa9021c88cbe","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","join:telemetry":"node scripts/join-telemetry.mjs","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^0.9.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.10.4_1783463916784_0.9501606581973472","host":"s3://npm-registry-packages-npm-production"}},"0.10.5":{"name":"@polycode-projects/seonix","version":"0.10.5","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.10.5","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"fd6229348f1c38f9817da4b984bdf92aa65aed2a","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.10.5.tgz","fileCount":43,"integrity":"sha512-ZoyfrQ3mOOWoD+5UcF1Bhm6nLSsLo/4aKj3RmXWIouWWTUtLKKxcIpZkURWM+S4ohxjHeuDdkcErbmt++iVPew==","signatures":[{"sig":"MEQCICIKpTbzjUKdh4wcjomU28euYjZ1Ce/jaKPRoIZAqPdIAiBWOOVqVFjYAuqBVeWmJ90SIP4tKWheh4lDoiwzDwXJTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":858137},"type":"module","engines":{"node":">=24"},"gitHead":"f17fa94cbef4999d5a902ab0909e786bb51f221a","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","join:telemetry":"node scripts/join-telemetry.mjs","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^0.9.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.10.5_1783465231881_0.17019362737282218","host":"s3://npm-registry-packages-npm-production"}},"0.10.6":{"name":"@polycode-projects/seonix","version":"0.10.6","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.10.6","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"30a0f3bfe0c921bec4f748dc09ea07a279976c06","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.10.6.tgz","fileCount":43,"integrity":"sha512-4GWs2hedMqmJOClqg4tvjlUKn1u/m7AILyarr9m0eT8+qscZ5CpQqEBOPN9k+a4lSl/Whp8EkdAUnMgH0e0ENw==","signatures":[{"sig":"MEUCIQCbTLS91H1v+OptoukWrHCZDNpfzuVgCGWOl9a0cE39kQIgUi6Gw5up/lGmhZrr2ilJqmTyOaNwgVfGwv77oz7KTHw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":858137},"type":"module","engines":{"node":">=24"},"gitHead":"b33414b97716a01208ba68725c2e2e8bf631ac93","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","join:telemetry":"node scripts/join-telemetry.mjs","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^0.9.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.10.6_1783465743122_0.3376072825030738","host":"s3://npm-registry-packages-npm-production"}},"0.10.7":{"name":"@polycode-projects/seonix","version":"0.10.7","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.10.7","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"8aa1ac69588c85f9d89cbd80a913c8c10931d01e","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.10.7.tgz","fileCount":43,"integrity":"sha512-uKlOqhJNNOGIR+PI6kBsMljaLRuD/oRbqhZXXDCJhfTLf/y9nZjXAbiLSPCiNr/ICDF/Uy9DgsVO6Yz6KvQ6Vg==","signatures":[{"sig":"MEQCIDzWdcMqLHXuokOINch9H0eB6P7itQSFglVT8hBDQDrWAiBz9OweSpoj9OMdx/aXFyZTiieiSykQcFq2+1+xX0yxqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":858137},"type":"module","engines":{"node":">=24"},"gitHead":"6ca143e5740c7d6776bc4103a24fc9c6057d9f07","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","join:telemetry":"node scripts/join-telemetry.mjs","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^0.9.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.10.7_1783466017100_0.7647762000760596","host":"s3://npm-registry-packages-npm-production"}},"0.10.9":{"name":"@polycode-projects/seonix","version":"0.10.9","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.10.9","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"66fd4f72827f6b1d9f0bcccb396291fabee362de","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.10.9.tgz","fileCount":43,"integrity":"sha512-SgEiDxwr4ocVh7Xlk9O5/sLAJJ7MpMS2v5Q2+EN6meQoBHV8GdKYQPvWd+U10yKM2j59myHyoTl0ixaDg9C+LQ==","signatures":[{"sig":"MEYCIQDs8mpeGq3jA1SCruOBYc7qjvPIxI9Cpc5uE7gYI0pA2QIhAIJTTejOyw+44x28SoAymiQ5vKRAmbhU2rKhv7TSrEKi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":861896},"type":"module","engines":{"node":">=24"},"gitHead":"c428193765ea9005f135248b4208b846ff53bb62","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","join:telemetry":"node scripts/join-telemetry.mjs","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^0.9.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.10.9_1783470548402_0.9885389976930905","host":"s3://npm-registry-packages-npm-production"}},"0.10.10":{"name":"@polycode-projects/seonix","version":"0.10.10","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.10.10","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"245347733ac2b6900dcc2afd16e8416ce4ccce60","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.10.10.tgz","fileCount":44,"integrity":"sha512-txPD6lY4H3Ag7TvUxvWWRqnvNIWvwveVtL1aJUoWDvfjlZret6LmKnXXO6Fw1NbNvWdtgXZXnuzW1N+L1XqW1Q==","signatures":[{"sig":"MEUCIQCd9IPKeO+mnaP42RCQFv5CpbTYxKUJelYYQHtQKLO5OQIgYLy9TvVXafhMQiqgXQ3jMV7NNhukQTMHNFPOGdfAenQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":880697},"type":"module","engines":{"node":">=24"},"gitHead":"4b9e8429f19bb4bde477839a18cf5d7dc831cfb2","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^0.9.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.10.10_1783473854221_0.7162455959628697","host":"s3://npm-registry-packages-npm-production"}},"0.10.11":{"name":"@polycode-projects/seonix","version":"0.10.11","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.10.11","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"f4975bde2dd5be3cc63279d51b5f6a538bb69f16","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.10.11.tgz","fileCount":44,"integrity":"sha512-FM4+Mf5rod09xEtQ7MnaB0Jnhq4Y7m+zvSUVfFgyledFSPF3bn4R0IAc+fAb33EEd1NK/9M8G8r3xCfmP5z0GQ==","signatures":[{"sig":"MEUCIQDQRpCR3mkXkJf8LHd8MvW25zMiR/LH0qazfrakmYll5AIgU/ojdMSc2CEQ2YepejOBKB5xUwDhhnGLerL0x09YVII=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":880697},"type":"module","engines":{"node":">=24"},"gitHead":"fdc0c90f5d931f3a2e07a696d9048c381cb0bef9","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^0.9.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.10.11_1783476041945_0.9936234997237838","host":"s3://npm-registry-packages-npm-production"}},"0.10.14":{"name":"@polycode-projects/seonix","version":"0.10.14","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.10.14","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"f04e1890760b9ee644aa467df10a71a07b89d99a","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.10.14.tgz","fileCount":44,"integrity":"sha512-H1sfGntOEi3xOOeTAVLn8y7ql6FOb2U8w/8Y/mvY8S7ScjO+i0eP6QYdJVdTu62tV4A8uoSHJMgXtOW47v0IWA==","signatures":[{"sig":"MEQCIGvpAFooFjQUPlMK8dCmW3oCw8ss23rZSZ0y31r9ALdsAiAkipTZMc3cw3V7gluCdJVGngObybXv4gyUU8oJPXY9Gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":888610},"type":"module","engines":{"node":">=24"},"gitHead":"db4ddbd7863bb9aa45190c1109e6ec329068fd78","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix-ask --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.10.14_1783559417843_0.23517896170732122","host":"s3://npm-registry-packages-npm-production"}},"0.10.16":{"name":"@polycode-projects/seonix","version":"0.10.16","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.10.16","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"74bb1ba9456e57d8ff1e4d9783260b432662630c","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.10.16.tgz","fileCount":45,"integrity":"sha512-NMYgOpFeAVkwtm5pLbZ/qqO9Iq0pXv44C8Qi+/54kZMyMoH/ZZvEAkayl28fVTY4mvhZk/6ZUdRbklcjZJFwkQ==","signatures":[{"sig":"MEYCIQDy1H44jdQmLyOZgpJESEBpLXWe/+rcEdeTsBAe86TeTQIhAI7nypnxKyU5GQpisY3Gr6GA1w8VWQB8sQZJsrkGekex","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":898525},"type":"module","engines":{"node":">=24"},"gitHead":"2afd7cdd988b7dedfbf2c25cb8858cc4921cf643","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^1.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.10.16_1783564897888_0.8835171154549244","host":"s3://npm-registry-packages-npm-production"}},"0.10.18":{"name":"@polycode-projects/seonix","version":"0.10.18","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.10.18","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"9916a4f9381eb1129ebb7e6c49593d2591430cb0","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.10.18.tgz","fileCount":45,"integrity":"sha512-ciGQLKBsOA9mFnQnyN2DZaf5XTrgKYxAuBRnde1noiAs/9fcwsla6i2a04NjvqwWOpYpmhc2a2FgJLI5hz8gfw==","signatures":[{"sig":"MEUCIGNBXT26850UrkDb+j3GAfeF9HkhFF9hWoZZCAjeUEzHAiEAkBC6rWlm5qhyUkfpHIrVPuIvf98o+6vnAvfJQuMRfL4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":923601},"type":"module","engines":{"node":">=24"},"gitHead":"c346a3ccecd72028091da85e8c9c56f5988943f1","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.10.18_1783625372182_0.5396716180761079","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@polycode-projects/seonix","version":"0.11.0","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.11.0","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"3a571b53e1b013d03ce0b7fec3689de5434931b2","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.11.0.tgz","fileCount":47,"integrity":"sha512-cFSNqnueju+1bctQttWlVC3xFawePB0+mo6fzacIoOQ8kB+3dhhJ3hR+kpHPbjilGv7FohWCmzWyeKuLQWRZyQ==","signatures":[{"sig":"MEUCIQDqu1QmDiVEsEw7Hm2sKe6Zqw6S6SAbhXNPiW6r9xGJlAIgNDILGNWQrcmJdY1PHUUf+RwXK9Nx9OZnDTHtJlT8kyU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":929242},"type":"module","engines":{"node":">=24"},"gitHead":"fa22f7362ab0ef701acc4e57430bf04372af16cb","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","roll":"node scripts/roll.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","check:publish":"node scripts/check-publish.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","check:licences":"node scripts/check-licences.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.11.0_1785072928950_0.24132942419074221","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"name":"@polycode-projects/seonix","version":"0.11.2","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.11.2","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"0ccf661a96517dc3e9ee2a1afd5acccf8e775ad7","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.11.2.tgz","fileCount":47,"integrity":"sha512-9S018of6BdrvrI2ppo1tr6c/mwKEsyejP4re31PFmoVIYYJ03E+P6mSX3TalsN8BRgASheAW3WJzUIuNyEG5Mg==","signatures":[{"sig":"MEUCIQDHYqMuCRt86LE1l/OzSivIJwZMFmpf9zywdxXbu4wFFwIgGB3WyhfC3mjGoh3B440q1qwPs5hQ0yo+6CbJp0wPa/I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1218733},"type":"module","engines":{"node":">=24"},"gitHead":"1a50dbcf99abea636e82a93e5956dce82cf4654e","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","roll":"node scripts/roll.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out site/seonix-graph.html --data-out site/seonix-graph-data.json --browser-out site/code-browser.html --browser-data-out site/code-browser-data.json --timeline-out site/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","check:publish":"node scripts/check-publish.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","check:licences":"node scripts/check-licences.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^3.0.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.11.2_1785081247458_0.24178064048617087","host":"s3://npm-registry-packages-npm-production"}},"0.11.3":{"name":"@polycode-projects/seonix","version":"0.11.3","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.11.3","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"a6ae45156a40a9d7c0fb38e68118e273bf5d283e","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.11.3.tgz","fileCount":47,"integrity":"sha512-9VtD0KLqIAl34BeV6pKnyTKfuLGABE60HnsbfRG2kYKgMsAcojhjFs81sDP9VpxRYIsMPl90S6lytcoU7dTxuA==","signatures":[{"sig":"MEYCIQDJrq/KO4y7+ZpvnLC7fTWSDfiedIMYB2yEGrkL7BjcuAIhAOqjk64M67XbDRFJTFiDRAC0Bz2emkHIv6yFDlqa8Zdx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1222419},"type":"module","engines":{"node":">=24"},"gitHead":"6b9e14404956219dd6fcad14b9a734fbe953ac32","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","roll":"node scripts/roll.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out public/seonix-graph.html --data-out public/seonix-graph-data.json --browser-out public/code-browser.html --browser-data-out public/code-browser-data.json --timeline-out public/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","check:publish":"node scripts/check-publish.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","check:licences":"node scripts/check-licences.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^3.0.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.11.3_1785087723122_0.8535921370589525","host":"s3://npm-registry-packages-npm-production"}},"0.11.4":{"name":"@polycode-projects/seonix","version":"0.11.4","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.11.4","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"665e545f1b56f5cc9977ef7489a5cd2d96c1d01a","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.11.4.tgz","fileCount":86,"integrity":"sha512-YAx9dw+/380DuFLG6b+n0tkcYRHKXSwuG5UdX+xCf8EWIA7V8lsy1QJYYb3IOTVFIoBsO6O/kr9VvwO0iXqqew==","signatures":[{"sig":"MEQCIHIzEcic0rhm+g/cxhSbjNRwy5MJrszPtI6WohWrX2bLAiBCnSbkJHGW2L18XmWy9M7zBWn4Uj5rQMV5S1PGGVhBzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1263408},"type":"module","engines":{"node":">=24"},"gitHead":"81b21caf77bf23040df00b441e98b1c27cc40062","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","roll":"node scripts/roll.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out public/seonix-graph.html --data-out public/seonix-graph-data.json --browser-out public/code-browser.html --browser-data-out public/code-browser-data.json --timeline-out public/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","verify:loop":"node scripts/verify-loop.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","check:publish":"node scripts/check-publish.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:baseline":"node scripts/use-baseline.mjs","check:licences":"node scripts/check-licences.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^3.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.11.4_1785095661801_0.35067445226815885","host":"s3://npm-registry-packages-npm-production"}},"0.11.5":{"name":"@polycode-projects/seonix","version":"0.11.5","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.11.5","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"96cf118c13f21ead66c702afb99574bf7779e83c","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.11.5.tgz","fileCount":97,"integrity":"sha512-bp7ZkJA6Q/UuQEEv9Rc5FwOV5SU+Ta8q/s/6Fc+lMJovzcpNuw3jghD38wOCsSm9bDJM9AeT9VBu7zp5j3PdjQ==","signatures":[{"sig":"MEUCIGlnsRZ2y/6TfeIyObFuMnhLkhZUCaQ+e40T1E5974UTAiEA3FjBe3UPQsLvDBERY+LVGcV+1GM5Fj1ejqik4PKzb8I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1342265},"type":"module","engines":{"node":">=24"},"gitHead":"08cd0cd674404423c4a9a5d10c7d03c9fad8599f","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","roll":"node scripts/roll.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out public/seonix-graph.html --data-out public/seonix-graph-data.json --browser-out public/code-browser.html --browser-data-out public/code-browser-data.json --timeline-out public/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","rank:gate":"node scripts/rank-gate.mjs","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:b015":"node scripts/bench-b015.mjs","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","tune:search":"node scripts/tune-search.mjs","verify:loop":"node scripts/verify-loop.mjs","bench:b016:h":"node scripts/bench-b016-h.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","bench:b016:p1":"node scripts/bench-b016-p1.mjs","bench:b016:p2":"node scripts/bench-b016-p2.mjs","check:publish":"node scripts/check-publish.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:b015:dry":"node scripts/bench-b015.mjs --dry","bench:baseline":"node scripts/use-baseline.mjs","check:lexicons":"node bin/cli.mjs cli lexicon_validate","check:licences":"node scripts/check-licences.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","bench:b016:h:dry":"node scripts/bench-b016-h.mjs --dry","build:ask-bundle":"node scripts/build-ask-bundle.mjs","bench:b016:p1:dry":"node scripts/bench-b016-p1.mjs --dry","bench:b016:p2:dry":"node scripts/bench-b016-p2.mjs --dry"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^3.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.11.5_1785106132807_0.341141492770757","host":"s3://npm-registry-packages-npm-production"}},"0.11.7":{"name":"@polycode-projects/seonix","version":"0.11.7","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.11.7","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"ebf5c87d2110b025d429ed44fc83bbaa1c9fc617","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.11.7.tgz","fileCount":97,"integrity":"sha512-9ElsI937p7Df35MoEgzotACIaICeDrG/beBZlygKZ7A+iAM24j1qLZ4AjAGo8+dxvb8YsSxGKYqx4yVN9YhSIQ==","signatures":[{"sig":"MEUCIEq9Vu3SyQ+iaBoopES4D/A3YW3Pa09D9x7r++sLhUHBAiEAptcjGqxnZAx7tr4ywNI73G+0POjRQKpF2nQiWQXYxds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1343235},"type":"module","engines":{"node":">=24"},"gitHead":"8473f6715c99c18338364b1ff5cfb9dd338d27ae","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","roll":"node scripts/roll.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out public/seonix-graph.html --data-out public/seonix-graph-data.json --browser-out public/code-browser.html --browser-data-out public/code-browser-data.json --timeline-out public/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","rank:gate":"node scripts/rank-gate.mjs","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:b015":"node scripts/bench-b015.mjs","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","tune:search":"node scripts/tune-search.mjs","verify:loop":"node scripts/verify-loop.mjs","bench:b016:h":"node scripts/bench-b016-h.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","bench:b016:p1":"node scripts/bench-b016-p1.mjs","bench:b016:p2":"node scripts/bench-b016-p2.mjs","check:publish":"node scripts/check-publish.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:b015:dry":"node scripts/bench-b015.mjs --dry","bench:baseline":"node scripts/use-baseline.mjs","check:lexicons":"node bin/cli.mjs cli lexicon_validate","check:licences":"node scripts/check-licences.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","bench:b016:h:dry":"node scripts/bench-b016-h.mjs --dry","build:ask-bundle":"node scripts/build-ask-bundle.mjs","bench:b016:p1:dry":"node scripts/bench-b016-p1.mjs --dry","bench:b016:p2:dry":"node scripts/bench-b016-p2.mjs --dry"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^3.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.11.7_1785107547360_0.536289749904362","host":"s3://npm-registry-packages-npm-production"}},"0.11.8":{"name":"@polycode-projects/seonix","version":"0.11.8","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.11.8","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"e7bcef5e296442116a4ca11c439bf414ee1155cf","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.11.8.tgz","fileCount":97,"integrity":"sha512-22+mMd9JRkz6v563FGLRmWKJaFhamR8jK9/LnSyzwrxsrZMM3kBtXoPnudLmmfaCJrXPzPB3gAtBGr4G6Opx8g==","signatures":[{"sig":"MEQCICU19hUJzVfM0TSxCeej9IKWJcG6+blaNpnUIbmyLLnQAiAlRVioucsnng5i9Syfc1WYbzZyAaIVQfmOb8BFh7AeHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1341963},"type":"module","engines":{"node":">=24"},"gitHead":"a08285db3cfa2fb7f0eaf9fc562afb64b662b3e1","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","roll":"node scripts/roll.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out public/seonix-graph.html --data-out public/seonix-graph-data.json --browser-out public/code-browser.html --browser-data-out public/code-browser-data.json --timeline-out public/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","rank:gate":"node scripts/rank-gate.mjs","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:b015":"node scripts/bench-b015.mjs","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","tune:search":"node scripts/tune-search.mjs","verify:loop":"node scripts/verify-loop.mjs","bench:b016:h":"node scripts/bench-b016-h.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","bench:b016:p1":"node scripts/bench-b016-p1.mjs","bench:b016:p2":"node scripts/bench-b016-p2.mjs","check:publish":"node scripts/check-publish.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:b015:dry":"node scripts/bench-b015.mjs --dry","bench:baseline":"node scripts/use-baseline.mjs","check:lexicons":"node bin/cli.mjs cli lexicon_validate","check:licences":"node scripts/check-licences.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","bench:b016:h:dry":"node scripts/bench-b016-h.mjs --dry","build:ask-bundle":"node scripts/build-ask-bundle.mjs","bench:b016:p1:dry":"node scripts/bench-b016-p1.mjs --dry","bench:b016:p2:dry":"node scripts/bench-b016-p2.mjs --dry"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^3.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.11.8_1785117518306_0.014930528681599942","host":"s3://npm-registry-packages-npm-production"}},"0.11.9":{"name":"@polycode-projects/seonix","version":"0.11.9","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.11.9","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"2bd35d5456b4c7ad458ed7dbb5b7dd3f4145a00f","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.11.9.tgz","fileCount":97,"integrity":"sha512-UfK/LvsqXrurDf7+RHVnZZhKImbDDIM8+YF7lnfgu3Q2T1sLYKyHpJ2iwYUH3jt7oDbhVZx3S0Jl9YHDCC+4Kw==","signatures":[{"sig":"MEUCIAe7vPocptRMIsCsMSJ6cqOqWzXkwZFtAwZ1zFv05KbLAiEA6A/ipN0H7uSgdSChS8Skz65oN02RdemW5GEyYDKKxVc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1341964},"type":"module","engines":{"node":">=24"},"gitHead":"67d5c4352ff7245af0d571b5e305624c0ed03b64","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","roll":"node scripts/roll.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out public/seonix-graph.html --data-out public/seonix-graph-data.json --browser-out public/code-browser.html --browser-data-out public/code-browser-data.json --timeline-out public/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","rank:gate":"node scripts/rank-gate.mjs","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:b015":"node scripts/bench-b015.mjs","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","tune:search":"node scripts/tune-search.mjs","verify:loop":"node scripts/verify-loop.mjs","bench:b016:h":"node scripts/bench-b016-h.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","bench:b016:p1":"node scripts/bench-b016-p1.mjs","bench:b016:p2":"node scripts/bench-b016-p2.mjs","check:publish":"node scripts/check-publish.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:b015:dry":"node scripts/bench-b015.mjs --dry","bench:baseline":"node scripts/use-baseline.mjs","check:lexicons":"node bin/cli.mjs cli lexicon_validate","check:licences":"node scripts/check-licences.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","bench:b016:h:dry":"node scripts/bench-b016-h.mjs --dry","build:ask-bundle":"node scripts/build-ask-bundle.mjs","bench:b016:p1:dry":"node scripts/bench-b016-p1.mjs --dry","bench:b016:p2:dry":"node scripts/bench-b016-p2.mjs --dry"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^3.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.11.9_1785181012982_0.15425157847579585","host":"s3://npm-registry-packages-npm-production"}},"0.11.10":{"name":"@polycode-projects/seonix","version":"0.11.10","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.11.10","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"85bc4253b5d3efb9099617d8b6680554659e7a77","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.11.10.tgz","fileCount":97,"integrity":"sha512-lphuVgGz/xo7t+lJuRqFpaSh23cwEYPfmnHp+NhrGAQZVR7WzXwWVo0XPLWF8uRjcpP6pAggjhacbApNrAeMQg==","signatures":[{"sig":"MEYCIQC/LonrN40cfReLHmjVkRv4cw1TQHmZz2heH+oCeVxSlAIhAMZpOMQejnG2zMwivtZYn/0oECjLKn+7oVpkfQzLwZY8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1341965},"type":"module","engines":{"node":">=24"},"gitHead":"42803817623fc802ffaa86db8b10710f718fa973","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","roll":"node scripts/roll.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out public/seonix-graph.html --data-out public/seonix-graph-data.json --browser-out public/code-browser.html --browser-data-out public/code-browser-data.json --timeline-out public/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","rank:gate":"node scripts/rank-gate.mjs","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:b015":"node scripts/bench-b015.mjs","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","tune:search":"node scripts/tune-search.mjs","verify:loop":"node scripts/verify-loop.mjs","bench:b016:h":"node scripts/bench-b016-h.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","bench:b016:p1":"node scripts/bench-b016-p1.mjs","bench:b016:p2":"node scripts/bench-b016-p2.mjs","check:publish":"node scripts/check-publish.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:b015:dry":"node scripts/bench-b015.mjs --dry","bench:baseline":"node scripts/use-baseline.mjs","check:lexicons":"node bin/cli.mjs cli lexicon_validate","check:licences":"node scripts/check-licences.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","bench:b016:h:dry":"node scripts/bench-b016-h.mjs --dry","build:ask-bundle":"node scripts/build-ask-bundle.mjs","bench:b016:p1:dry":"node scripts/bench-b016-p1.mjs --dry","bench:b016:p2:dry":"node scripts/bench-b016-p2.mjs --dry"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^3.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.11.10_1785191272317_0.15229248303645626","host":"s3://npm-registry-packages-npm-production"}},"0.11.11":{"name":"@polycode-projects/seonix","version":"0.11.11","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.11.11","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"e9b6cff970df342af2e2bfd09aee8d847a2c352b","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.11.11.tgz","fileCount":97,"integrity":"sha512-l7eMhNoLyLLv/fo7SgSn9NoqOggeQJZdvdl1/jGSNCHL5hUZhJ4ZeXcUSq4ZlWCN101xsucz4hZfLPwc3RfTuw==","signatures":[{"sig":"MEUCIGK2Ji3P0m0YOsDwo31R5/JStH+b7ZbL5I0uNtcPmd0ZAiEAgDoMPv+I6XHogf8PA/ellvAnh5sG+3mG1RrEJVFcH9c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1341161},"type":"module","engines":{"node":">=24"},"gitHead":"6de8a89ced1a58fee5539770236ccf4c8d682db8","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","roll":"node scripts/roll.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out public/seonix-graph.html --data-out public/seonix-graph-data.json --browser-out public/code-browser.html --browser-data-out public/code-browser-data.json --timeline-out public/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","rank:gate":"node scripts/rank-gate.mjs","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:b015":"node scripts/bench-b015.mjs","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","solve-rate":"node bench/solve-rate.mjs","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","tune:search":"node scripts/tune-search.mjs","verify:loop":"node scripts/verify-loop.mjs","bench:b016:h":"node scripts/bench-b016-h.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","bench:b016:p1":"node scripts/bench-b016-p1.mjs","bench:b016:p2":"node scripts/bench-b016-p2.mjs","check:publish":"node scripts/check-publish.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:b015:dry":"node scripts/bench-b015.mjs --dry","bench:baseline":"node scripts/use-baseline.mjs","check:lexicons":"node bin/cli.mjs cli lexicon_validate","check:licences":"node scripts/check-licences.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","bench:b016:h:dry":"node scripts/bench-b016-h.mjs --dry","build:ask-bundle":"node scripts/build-ask-bundle.mjs","bench:b016:p1:dry":"node scripts/bench-b016-p1.mjs --dry","bench:b016:p2:dry":"node scripts/bench-b016-p2.mjs --dry"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^3.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.11.11_1785194147085_0.010469250336203828","host":"s3://npm-registry-packages-npm-production"}},"0.11.14":{"name":"@polycode-projects/seonix","version":"0.11.14","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.11.14","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"ece3f0d87f4eee456572ae1efa819f1f3aeac81f","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.11.14.tgz","fileCount":97,"integrity":"sha512-ataX8H5N3RbNAGhKUAiAFobUnxKkylhoYPL7p1kcDhiVzmXkme+0jVfp+Em7A8GRyqVG5NRGYGPb/JISYJckWQ==","signatures":[{"sig":"MEYCIQC2YYwZMmNwJHoBYD9+FNm0qPFwhdrxYs9WKrKdGlVWQAIhANes9MfK6suTw7oK0ZZMJ1XvIdgvYX7YL831GzviT9GL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1347379},"type":"module","engines":{"node":">=24"},"gitHead":"64bf8d413391fb01fad177da7343bb30e2ecf6f9","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","roll":"node scripts/roll.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out public/seonix-graph.html --data-out public/seonix-graph-data.json --browser-out public/code-browser.html --browser-data-out public/code-browser-data.json --timeline-out public/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","rank:gate":"node scripts/rank-gate.mjs","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:b015":"node scripts/bench-b015.mjs","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","solve-rate":"node bench/solve-rate.mjs","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","tune:search":"node scripts/tune-search.mjs","verify:loop":"node scripts/verify-loop.mjs","bench:b016:h":"node scripts/bench-b016-h.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","bench:b016:p1":"node scripts/bench-b016-p1.mjs","bench:b016:p2":"node scripts/bench-b016-p2.mjs","check:publish":"node scripts/check-publish.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:b015:dry":"node scripts/bench-b015.mjs --dry","bench:baseline":"node scripts/use-baseline.mjs","check:lexicons":"node bin/cli.mjs cli lexicon_validate","check:licences":"node scripts/check-licences.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","bench:b016:h:dry":"node scripts/bench-b016-h.mjs --dry","build:ask-bundle":"node scripts/build-ask-bundle.mjs","bench:b016:p1:dry":"node scripts/bench-b016-p1.mjs --dry","bench:b016:p2:dry":"node scripts/bench-b016-p2.mjs --dry"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.11.14_1785206227947_0.8410405149729476","host":"s3://npm-registry-packages-npm-production"}},"0.11.15":{"name":"@polycode-projects/seonix","version":"0.11.15","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.11.15","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"3b313655969c2135e167696520ce9df865706bc5","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.11.15.tgz","fileCount":97,"integrity":"sha512-7YXZsOQIGMFue/29HE6r4kbNjsFg6eH0pn4gZA5PnA2jVwYo9NJtx6O7R751eM2r97F4v9KhIqKU9otitDn/fw==","signatures":[{"sig":"MEUCICQNtA+yecevHisr+EfFBPhY0FPYRM0AdFqaGr3xSzQ6AiEAweUtaowbtae7FmxFmv+ZqnGGMiZDBtz7MbvdDZB445U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1347379},"type":"module","engines":{"node":">=24"},"gitHead":"8ad96a22a20644b23471d14e783d67b205c1f0b5","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","roll":"node scripts/roll.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out public/seonix-graph.html --data-out public/seonix-graph-data.json --browser-out public/code-browser.html --browser-data-out public/code-browser-data.json --timeline-out public/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","rank:gate":"node scripts/rank-gate.mjs","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:b015":"node scripts/bench-b015.mjs","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","solve-rate":"node bench/solve-rate.mjs","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","tune:search":"node scripts/tune-search.mjs","verify:loop":"node scripts/verify-loop.mjs","bench:b016:h":"node scripts/bench-b016-h.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","bench:b016:p1":"node scripts/bench-b016-p1.mjs","bench:b016:p2":"node scripts/bench-b016-p2.mjs","check:publish":"node scripts/check-publish.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:b015:dry":"node scripts/bench-b015.mjs --dry","bench:baseline":"node scripts/use-baseline.mjs","check:lexicons":"node bin/cli.mjs cli lexicon_validate","check:licences":"node scripts/check-licences.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","bench:b016:h:dry":"node scripts/bench-b016-h.mjs --dry","build:ask-bundle":"node scripts/build-ask-bundle.mjs","bench:b016:p1:dry":"node scripts/bench-b016-p1.mjs --dry","bench:b016:p2:dry":"node scripts/bench-b016-p2.mjs --dry"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.11.15_1785207148939_0.6551517070581141","host":"s3://npm-registry-packages-npm-production"}},"0.11.16":{"name":"@polycode-projects/seonix","version":"0.11.16","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.11.16","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"cdcb62e2a6662fff88068bfe3d2651f06a9880de","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.11.16.tgz","fileCount":97,"integrity":"sha512-5jEFu4g0igZd2IGgriVEsmLBsW7oG+7/Cw0Sy+4Vym68woVZ909WPQnIuMgCM6lClxzDDfmL6d0s6EyTGpT0ig==","signatures":[{"sig":"MEYCIQD9v+MQNd1tlt3OoOxBMJ27RseX2al6ytVsIxn28p4cTwIhAP5VtPX0axmETL9jB/dVLe0sTGTl7M/4n6voHGsHoW9k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1347379},"type":"module","engines":{"node":">=24"},"gitHead":"c763aa58538f8d2b43d1db403e79ce8954af500a","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","roll":"node scripts/roll.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out public/seonix-graph.html --data-out public/seonix-graph-data.json --browser-out public/code-browser.html --browser-data-out public/code-browser-data.json --timeline-out public/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","rank:gate":"node scripts/rank-gate.mjs","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:b015":"node scripts/bench-b015.mjs","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","solve-rate":"node bench/solve-rate.mjs","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","tune:search":"node scripts/tune-search.mjs","verify:loop":"node scripts/verify-loop.mjs","bench:b016:h":"node scripts/bench-b016-h.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","bench:b016:p1":"node scripts/bench-b016-p1.mjs","bench:b016:p2":"node scripts/bench-b016-p2.mjs","check:publish":"node scripts/check-publish.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:b015:dry":"node scripts/bench-b015.mjs --dry","bench:baseline":"node scripts/use-baseline.mjs","check:lexicons":"node bin/cli.mjs cli lexicon_validate","check:licences":"node scripts/check-licences.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","bench:b016:h:dry":"node scripts/bench-b016-h.mjs --dry","build:ask-bundle":"node scripts/build-ask-bundle.mjs","bench:b016:p1:dry":"node scripts/bench-b016-p1.mjs --dry","bench:b016:p2:dry":"node scripts/bench-b016-p2.mjs --dry"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.16.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^3.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.11.16_1785579592845_0.4792453574486888","host":"s3://npm-registry-packages-npm-production"}},"0.11.17":{"name":"@polycode-projects/seonix","version":"0.11.17","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","_id":"@polycode-projects/seonix@0.11.17","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"homepage":"https://seonix.polycode.co.uk","bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"bin":{"seonix":"bin/cli.mjs"},"dist":{"shasum":"b2c27c6aa64380737be5052b2c6061e1ee00acd2","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.11.17.tgz","fileCount":97,"integrity":"sha512-QLdj7wNVHLDL1pVhrQ9M7Ux37XRj3W9RaNH9/YOeRNH+dSz+doqovnB4dC0IFUUiVY0TwdF4l/rzGIuLQAS0lQ==","signatures":[{"sig":"MEUCIQDKHoN+Tj25I5d4YuIljjsFAQY3uEmhiZ9r/yL7QUqWcQIgLninESWMLej3J+wpk5gMIiNX0ll/Hhn/JsaF8mxTTbc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1377056},"type":"module","engines":{"node":">=24"},"gitHead":"303f845137d8b5f7a9de37652474a94cb2f347b3","private":false,"scripts":{"all":"npm run setup && npm run bench && npm run report","e2e":"playwright test","refs":"node scripts/fetch-references.mjs","roll":"node scripts/roll.mjs","test":"npm run test:root && npm run chrono:test","audit":"npm audit --audit-level=high","bench":"node bench/run.mjs","clean":"node scripts/clean.mjs","proof":"node scripts/proof-demo.mjs","setup":"node scripts/setup.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","seonix":"node bin/cli.mjs","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","e2e:site":"playwright test site.behaviour.test.js","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out public/seonix-graph.html --data-out public/seonix-graph-data.json --browser-out public/code-browser.html --browser-data-out public/code-browser-data.json --timeline-out public/timeline.html && npm run site:prompts","test:all":"npm run test","audit:fix":"npm audit fix","rank:gate":"node scripts/rank-gate.mjs","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","bench:b015":"node scripts/bench-b015.mjs","bench:lite":"node bench/run.mjs --suite lite","seonix:viz":"node bin/cli.mjs viz --","solve-rate":"node bench/solve-rate.mjs","bench:quick":"node bench/run.mjs --instances 1 --runs 1","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","e2e:install":"npx playwright install chromium --with-deps","tune:search":"node scripts/tune-search.mjs","verify:loop":"node scripts/verify-loop.mjs","bench:b016:h":"node scripts/bench-b016-h.mjs","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","build:roslyn":"node scripts/build-roslyn.mjs","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","site:prompts":"node scripts/site-prompts.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","bench:b016:p1":"node scripts/bench-b016-p1.mjs","bench:b016:p2":"node scripts/bench-b016-p2.mjs","check:publish":"node scripts/check-publish.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:review":"node scripts/verify-review.mjs","verify:sanity":"node scripts/verify-sanity.mjs","bench:b015:dry":"node scripts/bench-b015.mjs --dry","bench:baseline":"node scripts/use-baseline.mjs","check:lexicons":"node bin/cli.mjs cli lexicon_validate","check:licences":"node scripts/check-licences.mjs","join:telemetry":"node scripts/join-telemetry.mjs","verify:shipped":"node scripts/verify-shipped.mjs","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","refs:embeddings":"node scripts/fetch-embeddings.mjs","bench:b016:h:dry":"node scripts/bench-b016-h.mjs --dry","build:ask-bundle":"node scripts/build-ask-bundle.mjs","bench:b016:p1:dry":"node scripts/bench-b016-p1.mjs --dry","bench:b016:p2:dry":"node scripts/bench-b016-p2.mjs --dry"},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"repository":{"url":"git+https://gitlab.com/polycode-projects/seonix.git","type":"git"},"workspaces":["infra"],"_npmVersion":"11.17.0","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"cytoscape":"^3.30.0","smol-toml":"^1.7.0","typescript":"~5.6.2","tree-sitter":"^0.21.1","tree-sitter-java":"^0.21.0","tree-sitter-c-sharp":"^0.21.3","@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^5.0.25"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1","@playwright/test":"^1.56.0"},"_npmOperationalInternal":{"tmp":"tmp/seonix_0.11.17_1786214994342_0.22801822223777224","host":"s3://npm-registry-packages-npm-production"}},"0.11.18":{"name":"@polycode-projects/seonix","version":"0.11.18","private":false,"type":"module","description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","license":"AGPL-3.0-only","author":{"name":"Polycode Limited"},"homepage":"https://seonix.polycode.co.uk","repository":{"type":"git","url":"git+https://gitlab.com/polycode-projects/seonix.git"},"bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"engines":{"node":">=24"},"bin":{"seonix":"bin/cli.mjs"},"publishConfig":{"access":"public"},"workspaces":["infra"],"scripts":{"build:roslyn":"node scripts/build-roslyn.mjs","setup":"node scripts/setup.mjs","bench":"node bench/run.mjs","bench:quick":"node bench/run.mjs --instances 1 --runs 1","bench:telemetry":"node bench/run.mjs --suite django-lh --arms seonix --instances 1 --runs 1 --telemetry","join:telemetry":"node scripts/join-telemetry.mjs","bench:lite":"node bench/run.mjs --suite lite","bench:seonix":"node bench/run.mjs --suite django-lh --arms seonix,seonix-min --runs 5","bench:baseline":"node scripts/use-baseline.mjs","bench:b015":"node scripts/bench-b015.mjs","bench:b015:dry":"node scripts/bench-b015.mjs --dry","bench:b016:h":"node scripts/bench-b016-h.mjs","bench:b016:h:dry":"node scripts/bench-b016-h.mjs --dry","bench:b016:p1":"node scripts/bench-b016-p1.mjs","bench:b016:p1:dry":"node scripts/bench-b016-p1.mjs --dry","bench:b016:p2":"node scripts/bench-b016-p2.mjs","bench:b016:p2:dry":"node scripts/bench-b016-p2.mjs --dry","tune:search":"node scripts/tune-search.mjs","rank:gate":"node scripts/rank-gate.mjs","proof":"node scripts/proof-demo.mjs","smoke":"node bench/smoke.mjs --suite django-lh","report":"node bench/report.mjs","solve-rate":"node bench/solve-rate.mjs","all":"npm run setup && npm run bench && npm run report","clean":"node scripts/clean.mjs","verify:counts":"node scripts/verify-counts.mjs","verify:sanity":"node scripts/verify-sanity.mjs","verify:index":"node scripts/verify-index.mjs","verify:query":"node scripts/verify-query.mjs","verify:review":"node scripts/verify-review.mjs","verify:loop":"node scripts/verify-loop.mjs","verify:shipped":"node scripts/verify-shipped.mjs","refs":"node scripts/fetch-references.mjs","refs:embeddings":"node scripts/fetch-embeddings.mjs","audit":"npm audit --audit-level=high","audit:fix":"npm audit fix","check:lexicons":"node bin/cli.mjs cli lexicon_validate","check:licences":"node scripts/check-licences.mjs","check:publish":"node scripts/check-publish.mjs","roll":"node scripts/roll.mjs","test:root":"GIT_CONFIG_GLOBAL=\"$PWD/test/fixtures/global-gitconfig\" node --test \"test/**/*.test.mjs\"","test":"npm run test:root && npm run chrono:test","chrono:build":"node chronograph/build.mjs","chrono:serve":"node chronograph/serve.mjs","chrono:test":"node --test \"chronograph/test/**/*.test.mjs\"","test:all":"npm run test","seonix":"node bin/cli.mjs","seonix:viz":"node bin/cli.mjs viz --","e2e:install":"npx playwright install chromium --with-deps","e2e":"playwright test","e2e:site":"playwright test site.behaviour.test.js","e2e:prod":"SEONIX_E2E_BASE_URL=https://seonix.polycode.co.uk playwright test site.behaviour.test.js","site:prompts":"node scripts/site-prompts.mjs","build:ask-bundle":"node scripts/build-ask-bundle.mjs","site:gen":"npm run build:ask-bundle && node bin/cli.mjs viz --focus buildContextBundle --depth 2 --repo-url https://gitlab.com/polycode-projects/seonix --site-nav --out public/seonix-graph.html --data-out public/seonix-graph-data.json --browser-out public/code-browser.html --browser-data-out public/code-browser-data.json --timeline-out public/timeline.html && npm run site:prompts"},"dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","@polycode-projects/the-mechanical-code-talker":"^5.0.25","cytoscape":"^3.30.0","smol-toml":"^1.7.0","tree-sitter":"^0.21.1","tree-sitter-c-sharp":"^0.21.3","tree-sitter-java":"^0.21.0","typescript":"~5.6.2"},"devDependencies":{"@playwright/test":"^1.56.0","esbuild":"^0.28.1"},"gitHead":"417a18762cda64b5fc5777bc88baa97e7e072fc9","_id":"@polycode-projects/seonix@0.11.18","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-vb17Ia/8/oe3yB2uRSsKQH/uJ6HXNCWpwRJBjNmQqk5VEioXHdNdeiVAg/Lty5iokbBaQni91e90GcdqZ5sX7A==","shasum":"120adf509bb88be0e83515558fc074ecc4b81f33","tarball":"https://registry.npmjs.org/@polycode-projects/seonix/-/seonix-0.11.18.tgz","fileCount":97,"unpackedSize":1377056,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICYf9qlVtT8dVP7ba3FKS/etctd0SJrYnV6d51IgomsjAiA/Ytb45JP/fwzB+1n0brlqluqht3cgL0RsmqIxDNhDkQ=="}]},"_npmUser":{"name":"antonycc","email":"antonyccartwright@gmail.com"},"directories":{},"maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/seonix_0.11.18_1786230331559_0.09414292951752579"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-30T22:49:37.499Z","modified":"2026-08-08T23:05:31.909Z","0.1.0":"2026-06-30T22:49:37.781Z","0.2.0":"2026-07-02T12:22:42.974Z","0.2.1":"2026-07-02T12:57:00.246Z","0.3.0":"2026-07-02T18:27:59.070Z","0.4.0":"2026-07-02T21:00:12.600Z","0.5.0":"2026-07-03T03:29:41.746Z","0.6.0":"2026-07-03T03:37:05.664Z","0.6.1":"2026-07-03T03:48:44.537Z","0.7.0":"2026-07-04T11:11:06.656Z","0.7.1":"2026-07-04T11:52:28.644Z","0.7.3":"2026-07-05T14:16:11.255Z","0.8.0":"2026-07-05T18:58:09.594Z","0.9.0":"2026-07-06T08:31:50.788Z","0.9.1":"2026-07-06T22:46:54.749Z","0.10.0":"2026-07-07T01:46:02.455Z","0.10.1":"2026-07-07T20:42:36.928Z","0.10.2":"2026-07-07T20:50:01.105Z","0.10.3":"2026-07-07T22:13:09.083Z","0.10.4":"2026-07-07T22:38:36.925Z","0.10.5":"2026-07-07T23:00:32.048Z","0.10.6":"2026-07-07T23:09:03.342Z","0.10.7":"2026-07-07T23:13:37.292Z","0.10.9":"2026-07-08T00:29:08.584Z","0.10.10":"2026-07-08T01:24:14.432Z","0.10.11":"2026-07-08T02:00:42.174Z","0.10.14":"2026-07-09T01:10:18.068Z","0.10.16":"2026-07-09T02:41:38.040Z","0.10.18":"2026-07-09T19:29:32.366Z","0.11.0":"2026-07-26T13:35:29.138Z","0.11.2":"2026-07-26T15:54:07.680Z","0.11.3":"2026-07-26T17:42:03.283Z","0.11.4":"2026-07-26T19:54:21.977Z","0.11.5":"2026-07-26T22:48:52.966Z","0.11.7":"2026-07-26T23:12:27.568Z","0.11.8":"2026-07-27T01:58:38.463Z","0.11.9":"2026-07-27T19:36:53.138Z","0.11.10":"2026-07-27T22:27:52.563Z","0.11.11":"2026-07-27T23:15:47.246Z","0.11.14":"2026-07-28T02:37:08.130Z","0.11.15":"2026-07-28T02:52:29.282Z","0.11.16":"2026-08-01T10:19:53.011Z","0.11.17":"2026-08-08T18:49:54.494Z","0.11.18":"2026-08-08T23:05:31.740Z"},"bugs":{"url":"https://gitlab.com/polycode-projects/seonix/-/issues"},"author":{"name":"Polycode Limited"},"license":"AGPL-3.0-only","homepage":"https://seonix.polycode.co.uk","keywords":["code-graph","mcp","coding-agent","ast","claude-code","offline","deterministic","token-reduction"],"repository":{"type":"git","url":"git+https://gitlab.com/polycode-projects/seonix.git"},"description":"SEONIX — a deterministic, offline, $0 code-graph tool that makes a cheap coding agent edit like an expensive one. Indexes a repo with Python ast + git (zero model calls) and renders a bounded edit-digest.","maintainers":[{"name":"antonycc","email":"antonyccartwright@gmail.com"}],"readme":"# @polycode-projects/seonix\n\n**A deterministic, offline, $0 code-graph tool that makes a cheap coding agent\nedit like an expensive one.** SEONIX indexes a repository with Python's `ast` and\n`git log`, with **zero model calls**, into a typed code graph, then renders a\nbounded **edit digest** you inject once at session start. Your agent edits from\nturn 1 without fishing through the repo.\n\n> **Headline.** Measured as **mean** input tokens per both-solved task (paired\n> arms, identical model pin, environment-isolated so a host's own global config\n> can't leak into either side). The shipped default pairs the live `seonix_ask`\n> MCP tool with a token-discipline guidance file, measured against an\n> out-of-the-box agent given the same guidance. No cell clears the ≥50% bar yet,\n> but every cell measured is a genuine, positive reduction (6% to 28%, both models,\n> a TypeScript and a C# task), with no solve-rate regression. The bigger shift:\n> the ask tool is actually used now — 75% of runs called it, up from 5% the cycle\n> before pairing it with guidance. Indexing costs **$0**. Full method, numbers, and\n> the measurement contract are in\n> [`BENCHMARKS.md`](https://gitlab.com/polycode-projects/seonix/-/blob/main/BENCHMARKS.md)\n> and the latest cycle's\n> [`BENCHMARK_0.11.10.md`](https://gitlab.com/polycode-projects/seonix/-/blob/main/BENCHMARK_0.11.10.md).\n\n- **Website / live demo:** https://seonix.polycode.co.uk\n- **Source + benchmarks:** https://gitlab.com/polycode-projects/seonix\n- **Licence:** AGPL-3.0-only\n\n## A cheaper model, matched\n\nseonix on the cheaper **Sonnet 4.6** used fewer input tokens than out-of-the-box\n**Opus 4.8** on six of eight tasks, at equal correctness. The full cross-model\ntable and the turns correlation (Pearson 0.91) are in\n[`BENCHMARKS.md`](https://gitlab.com/polycode-projects/seonix/-/blob/main/BENCHMARKS.md).\n\n## Install\n\n```bash\nnpm i -g @polycode-projects/seonix        # global — gives you the `seonix` bin on PATH\n# or one-shot, no install:\nnpx @polycode-projects/seonix cli index_repository '{\"repo_path\":\"/abs/path/to/repo\"}'\n```\n\n**Runtime prerequisites:** Node ≥ 24, **Python 3**, and **git** on `PATH` (the\nindexer shells out to Python's `ast` and `git log`). A Java runtime is needed\nonly to index Java through JavaParser, and the .NET SDK only to index C# through\nRoslyn; without them, indexing for that language falls back to the bundled\ntree-sitter parser. Indexing is fully local and deterministic: no API keys, no\nnetwork calls, **$0**.\n\n## Quickstart\n\n```bash\n# 1. index your repo (deterministic, offline) — writes a machine-local .seonix/\ncd /path/to/repo && seonix cli index_repository\n\n# 2. self-locate the touched modules from the task text (no human-chosen target)\nseonix cli seonix_search '{\"query\":\"<your task>\"}'\n\n# 3. render the bounded edit digest for those modules\nseonix cli digest '{\"modules\":[\"<top hits>\"]}' > digest.txt\n\n# 4. inject digest.txt once at session start, then run your coding agent\nclaude --prompt \"Use the seonix digest below to localise and make the change. $(cat digest.txt)\"\n```\n\nAdd `.seonix/` to your `.gitignore`; it is machine-local and rebuilt from source.\n\nThe JSON argument is optional on every `cli` command: an omitted `repo_path`\nresolves to the nearest ancestor of the current directory (current directory\nfirst) containing a `.seonix/`, so query commands work from any subdirectory of\nan indexed repo. `index_repository` falls back to the current directory when\nnothing is indexed yet; query commands print a one-line error instead. An\nexplicit `repo_path` always wins.\n\n## Indexing multiple repositories\n\n`index_repository` takes one of three argument forms:\n\n```bash\n# one repo (unchanged): artifacts to <repo_path>/.seonix/, module ids unprefixed\nseonix cli index_repository '{\"repo_path\":\"/abs/repo\"}'\n\n# n explicit repos, merged into ONE graph at <out_root>/.seonix/\nseonix cli index_repository '{\"repo_paths\":[\"/abs/repo1\",\"/abs/repo2\"],\"out_root\":\"/abs/dir\"}'\n\n# estate discovery: every immediate child directory of multi_root that contains a\n# .git (dir or file) is indexed as a repo; artifacts to <multi_root>/.seonix/\nseonix cli index_repository '{\"multi_root\":\"/abs/estate\"}'\n```\n\nThe forms are mutually exclusive. `out_root` defaults to the deepest common\nancestor directory of the paths (or the current directory if that ancestor is the\nfilesystem root). In the merged graph every module id and label is prefixed with\nthe repo's directory basename (`mod:<repoName>/<relpath>`); when two repos share a\nbasename the first in path sort order keeps the bare name and later ones get `-2`,\n`-3`, … appended. Each repo's git history and `.seonixignore` are handled per repo,\nexactly as in single mode — a `.seonixignore` at the `multi_root` **parent** is NOT read\n(each sub-repo loads only its own). For an **estate-wide exclude**, put it in a `seonix.toml`\nat the directory you index from (`[index].exclude` / `secret_exclude`); that propagates to\nevery sub-repo. Cross-repo call edges only arise where a symbol name\nresolves uniquely across the whole merged graph; ambiguous names are dropped, as\nwithin one repo. Query a merged graph by passing the merge root as `repo_path`\n(e.g. `seonix cli seonix_search '{\"repo_path\":\"/abs/estate\",\"query\":\"…\"}'`).\n\n## The shape that ships\n\nThe product is the **no-MCP digest path**: render the digest, inject it once, run\nwith **no server**. The stdio MCP server still ships and is fully supported (bare\n`seonix` starts it) — it's just not the recommended default, because even\nmitigated the interactive tool loop never cleared the 50% bar: the cost lies in\nthe round-trip count rather than the resident schema. Use `seonix_search`\n(`locate`, self-derives the target) in production; pass a known target (`oracle`)\nonly to measure the headroom.\n\n## CLI reference\n\nEvery invocation shape `bin/cli.mjs` dispatches on, verified against the current source.\n\n### Bare invocation — MCP stdio server\n\n```bash\nseonix\n```\n\nNo flags, no config file. Starts the stdio MCP server against\n`<cwd>/.seonix/graph.json` (override with `SEONIX_GRAPH_FILE`). MCP launchers\nshould start it with cwd = the indexed worktree.\n\n### `cli index_repository` — build the graph\n\n```bash\nseonix cli index_repository                       # no arg: index the repo you are in\nseonix cli index_repository '{\"repo_path\":\"/abs/repo\"}'\nseonix cli index_repository '{\"repo_paths\":[\"/abs/repo1\",\"/abs/repo2\"],\"out_root\":\"/abs/dir\"}'\nseonix cli index_repository '{\"multi_root\":\"/abs/estate\"}'\n```\n\n`repo_path` / `repo_paths`+`out_root` / `multi_root` are mutually exclusive — pass\nat most one. When none is given, `seonix.toml`'s `repositories` supplies the set\nif present; otherwise the target defaults to the nearest ancestor of the current\ndirectory carrying a `.seonix/` (re-index), else the current directory itself\n(first index). Shared JSON options:\n\n- `ignores` (bool, default `true`) — honour the repo's `.seonixignore`. Pass\n  `\"ignores\":false` to index everything regardless (the bench harness always\n  passes this, so a subject repo's own `.seonixignore` never shapes an arm's index).\n- `config` (bool, default `true`) — read `seonix.toml` from the target dir. Pass\n  `\"config\":false` to skip it entirely (byte-identical to no-file behaviour; the\n  bench harness's index/locate/digest calls always pass this).\n- `sync` (bool) — on a `multi_root` call, `\"sync\":true` routes through the same\n  incremental path as `cli sync` instead of a full re-index.\n- `history_depth` (non-negative integer) — cap on the git-history pass (both the\n  commit walk and the history-symbol pass). `0` skips git history entirely;\n  absent uses the default depth. Precedence: this arg > `seonix.toml`\n  `[index].history_depth` > default.\n\nWrites `<out_root-or-repo_path>/.seonix/graph.json` (+ manifest for\n`multi_root`/`sync`), prints indexed counts to stderr and a human summary MD to\nstdout.\n\n### `cli sync` — incremental estate re-index\n\n```bash\nseonix cli sync '{\"multi_root\":\"/abs/estate\"}'\n```\n\nFingerprints every child repo of `multi_root` and re-extracts only the ones that\nchanged since the last run (per-repo cache under `.seonix/cache/`); one union\nrebuild is exact-equal to a full re-index, and an unchanged estate is a byte-stable\nno-op. Accepts `ignores` and `history_depth` as above. Writes\n`.seonix/manifest.json`.\n\n### `cli digest` — the no-MCP injection payload\n\n```bash\nseonix cli digest '{\"repo_path\":\"/abs/repo\",\"modules\":[\"path/to/mod.mjs\",\"other/mod.py\"]}'\nseonix cli digest '{\"repo_path\":\"/abs/repo\",\"query\":\"add a truncate filter to the article view\"}'\n```\n\nTwo ways to pick the modules: an explicit `modules` array, or a `query` string —\n`query` auto-locates and score-gap-selects the modules in one call (`modules`\nwins if both are given). Prints an architecture map + a size-adaptive context\nbundle per module to stdout, headed by a machine-readable line the rig parses:\n`# seonix-digest tier=<NONE|TINY|MID|LARGE|FULL> topup=<bool> modules=<N>\n[selected=<comma-list>]` (`selected=` only appears in query mode).\n\nTuning flags (all optional, precedence explicit arg > `seonix.toml [tune]` >\nshipped default):\n\n- `top_k` (int, query mode only, default 2) — how many modules `query` mode selects.\n- `score_gap` (number, or `false` to disable) — the score-gap cutoff for query-mode selection.\n- `literal_mention` (bool, default `true`) — credit verbatim dotted-name/path mentions in the raw query text.\n- `min` (bool) — force the leanest bundle (no auto top-up).\n- `untuned` (bool) — the pre-tuning escalation behaviour.\n- `max` (bool) — the injection ceiling: every requested module gets a FULL (untrimmed) bundle instead of primary-full + capped trimmed secondaries.\n\n### `cli seonix_locate` — ranked module list (recall probe)\n\n```bash\nseonix cli seonix_locate '{\"query\":\"…\",\"repo_path\":\"/abs/repo\"}'\n```\n\nPrints `<relpath>\\t<score>` per line, highest first — the raw ranking a caller\n(or the rig) can threshold itself. Recall/precision levers, all optional\n(precedence arg > `seonix.toml [tune]` > default, all default `false` unless noted):\n\n- `demote_nonprod` — demote `examples/`/`fixtures/`/`test-*` paths.\n- `call_adjacency` — resolved-call adjacency bonus.\n- `impl_of_interface` — C# impl-of-interface boost.\n- `beam_search` (+ `beam_width`) — multi-ply discriminative beam expansion.\n- `literal_mention` (default `true`) — verbatim dotted-name/path mention matching against the raw query.\n- `raw_query` — forward a separately-normalized raw problem text for literal matching (else derived from `query`).\n- `spiral` (+ `spiral_depth`, `limit`) — a bounded-radius, degree-ordered ego-neighbourhood walk from the lexical seeds that can surface lexically-invisible modules. `spiral_depth` is the hop radius (only honoured if `>0`); `limit` overrides how many newly-reached nodes the spiral may surface (default 100 — deliberately above the internal 12-node default, since this CLI surface is a recall probe, not a token budget).\n\n### `cli browser_link` — NL request → Chronograph URL\n\n```bash\nseonix cli browser_link '{\"query\":\"classes that change with render\",\"base\":\"https://example.com\"}'\n```\n\nMaps a natural-language-ish request to the code-browser query grammar\ndeterministically (no model call), self-tests the resulting link against the\nlocal temporal graph (must match ≥1 node and every cursor must resolve), then\nprints the URL — or exits 1 with the failure reason(s) rather than printing a\ndead link. Accepts `repo_path` (which repo's graph to test against), `base` (the\nURL prefix the link is built on), `at` / `b` (the two temporal cursors — single\ncursor / diff-cursor), `scope` (restrict the graph to a package-prefix set,\nsame values as `viz --scope`), and `grammar:true` (take `query` as grammar\nverbatim, skipping NL mapping).\n\n### `cli store_rebuild` — force-rebuild the sqlite store\n\n```bash\nseonix cli store_rebuild '{\"repo_path\":\"/abs/repo\"}'\n```\n\nForce-(re)builds the opt-in `node:sqlite` resident store (see\n[SEONIX_STORE](#seonix_store--seonix_graph_format) below) from the current\n`graph.json`. The store is a derived, rebuildable companion — read paths never\nauto-build it, so this is the explicit way to (re)materialize it after an index\nor a manual `graph.json` edit.\n\n### `cli <toolName>` — generic MCP tool fallback\n\n```bash\nseonix cli seonix_ask '{\"query\":\"which modules import codegraph\"}'\nseonix cli seonix_context '{\"symbol\":\"buildContextBundle\",\"repo_path\":\"/abs/repo\"}'\n```\n\nAny sub-command name that isn't one of the above routes straight to the MCP tool\ndispatcher, so any tool in the server's surface — cold or hot — is invokable from\nBash with no MCP connection. `repo_path` in the JSON arg selects the target\ngraph; omitted, it defaults to the nearest ancestor of the current directory\ncontaining a `.seonix/` (a clean one-line error when there is none). Every other\nkey is passed through as the tool's own arguments.\n\n### `hook-augment` — PreToolUse Grep/Glob augmenter\n\n```bash\nseonix hook-augment   # reads a PreToolUse hook event JSON from stdin\n```\n\nReads the hook event from stdin, extracts the Grep/Glob pattern, and — if the\nlocal graph has a hit — writes `{hookSpecificOutput:{hookEventName,\nadditionalContext}}` to stdout so the agent sees seon typed-graph hits alongside\nits own search. Silent (exit 0, no output) on any failure — empty/malformed\ninput, no graph, no hit — the **never-block contract**.\n\n### `init [--dotnet]` — seed a seonix.toml\n\n```bash\nseonix init             # single-repo template\nseonix init --dotnet     # estate/.NET template (repositories + broader include_text/exclude)\nseonix init --force      # overwrite an existing seonix.toml\n```\n\nCopies the shipped template to `./seonix.toml` (byte-for-byte). Refuses to\noverwrite an existing file unless `--force` (exit 2).\n\n### `config --effective [--repo <abs>]`\n\n```bash\nseonix config --effective\nseonix config --effective --repo /abs/repo\n```\n\nPrints the merged `{effective, sources}` config (sorted keys) as JSON — every\nknob's resolved value plus which source won it (`\"arg\"` | `\"seonix.toml\"` |\n`\"default\"`). `--repo` defaults to cwd. Requires `--effective`; without it,\nprints usage and exits 2.\n\n### `viz` — render the code-map / code-browser / timeline\n\n```bash\nseonix viz --focus <Symbol> --out graph.html\nseonix viz --serve --port 8080 --focus <Symbol>\n```\n\nFlags: `--focus <sym>` (default: highest-degree module), `--depth N` (default 2),\n`--hub N` (hub-degree cap, default 40), `--max N` (node cap, default 200), `--out\nf.html` (default `seon-graph.html`), `--data-out f.json` (split viewer + sidecar\ndata file instead of embedding), `--graph <path>` (override the graph.json\nlocation), `--repo-url <url> --ref <branch>` (source links), `--site-nav`\n(add the site's absolute home entry), `--force-inline` (embed the full graph inline\neven past the size gate that would otherwise split it out with a message).\n\nBy default `viz` also writes a `code-browser.html` (Chronograph) and a\n`timeline.html` next to `--out` with a working header nav; override their paths\nwith `--browser-out f.html` / `--browser-data-out f.json` / `--timeline-out\nf.html`, or suppress both siblings with `--graph-only`. `--scope\nproduct|<prefixes>` filters the Chronograph browser/timeline to a package\nprefix set. `--limit N` caps the commit timeline to the newest N commits (0 =\nunlimited; default 100 — an estate-scale timeline stays openable, with a \"newest\nN of M\" header note when truncated).\n\n`--serve [--port N]` serves the same viewer live against this repo's own index\n(code browser at `/code-browser.html`, alias `/browser`; timeline at\n`/timeline.html`; live re-annotates on HEAD change via `/code-browser-version`) —\nport 0 (default) picks a free port.\n\n### `chat` — interactive tmct chat over the graph\n\n```bash\nseonix chat [--repo /abs/path]\n```\n\nOpens tmct's natural-language client over seonix's graph (see [Chat](#chat) below).\ntmct (`@polycode-projects/the-mechanical-code-talker`) owns chat, the graph, and\ninference; seonix hands it graph truth through tmct's provider seam and focuses\non presentation and extraction/extension (see `PLAN_TMCT.md` for the current\ndivision of labor and what's still moving over).\n\n### `SEONIX_STORE` / `SEONIX_GRAPH_FORMAT`\n\nTwo opt-in/opt-out environment knobs, orthogonal to everything above:\n`SEONIX_STORE=sqlite` turns on the resident `node:sqlite` store as a derived,\nrebuildable companion to `graph.json` (rebuild it explicitly with `cli\nstore_rebuild`; unset, nothing sqlite loads). The variable must be **exported**\n(`export SEONIX_STORE=sqlite`) — a plain shell assignment is invisible to the\n`seonix` child process, and the JSON path runs instead. The index summary's\n`store:` line states which mode actually ran (`store: sqlite (graph.db +\ngraph.json)` only when `graph.db` was built). `SEONIX_GRAPH_FORMAT` controls the\ngraph's on-disk wire format — the interned v2 form is the shipped default;\nset `SEONIX_GRAPH_FORMAT=1` to opt back out to the legacy v1 form.\n\n## Configuration (seonix.toml)\n\nAn optional `seonix.toml` at a repo (or estate) root steers indexing and\nscoring. Absent file = shipped defaults, byte-for-byte today's behaviour.\n`seonix init` (or `seonix init --dotnet` for an estate) seeds a commented\ntemplate — see `templates/seonix.toml` and\n`templates/seonix-dotnet.toml` for the full annotated reference.\n\n- **`repositories`** — the repo set for an estate config: an inline array of\n  paths, or a string naming a newline-delimited file (both resolved relative\n  to the config file). Only consulted when no explicit `repo_path` /\n  `repo_paths` / `multi_root` arg is given.\n- **`out_root`** — where the merged graph artifact is written (default `.`).\n- **`[index]`**\n  - `languages` — the AST languages to parse (`javascript`, `typescript`, `python`, `csharp`, `java`, …).\n  - `exclude` — additive glob excludes on top of `.seonixignore` (ordered; a leading `!` re-includes).\n  - `secret_exclude` — a hard, fail-safe-ON glob list (env files, keys, certs) that is never indexed and never grabbed as text, even as a text/structure source.\n  - `history_depth` — cap on the git-history pass (0 = skip entirely). Precedence: CLI arg > this key > default.\n  - `include_text`, `include_structure`, `respect_gitignore`, `markdown_sections`, `vue` — recognized and normalized, but **not yet wired to a consumer** (see \"unwired keys\" below).\n- **`[tune]`** — the locate/digest scoring knobs: `score_gap_k`, `literal_mention` (shipped default `true`), `demote_non_prod`, `call_adjacency`, `impl_of_interface`, `beam_search` (+ `beam_width`), `embed_rank`, `prose_layers`.\n- **`[tune.expansion]`** — graph-traversal expansion mode used by locate/the viewer's navigation: `strategy` (`none` | `beam` | `spiral` | `ppr`; `none` is the byte-identical shipped default), `nodes` (breadth/token-budget cap), `q` (proportion of most-distinctive neighbours followed per step), `depth` (hop radius).\n- **`[interfaces]`** — HTTP route↔handler edges the AST graph can't see on its own: a `Route` node per endpoint, linked to its handler by a `serves` edge, and (JS/TS + tree-sitter C#) an HTTP client call linked to the route it targets by a `callsHttp` edge. Off by default; turn it on with `enabled = true` or `SEONIX_INTERFACES=1` (env wins). Tunable: `frameworks` (default `[\"aspnet\", \"express\"]`), `verbs`, `combine_controller_prefix`, `prefix_strip`, `match_threshold`.\n- **`[lexicon]`** — curated per-language vocabulary merged into the graph at index time: the concepts people name in questions (\"dependency injection\", \"specification pattern\") that no identifier spells out, each with a definition and the exact binders that decide which of this repo's entities it denotes. Off by default; turn it on with `enabled = true` or `SEONIX_LEXICON=1` (env wins). `paths` names extra lexicon files on top of the shipped ones, resolved relative to the config file. See [Lexicons](#lexicons) below.\n- **`[telemetry]`** — `enabled = true` opts in (see [Telemetry](#telemetry) below).\n\n**Precedence, everywhere:** explicit CLI arg > `seonix.toml` value > shipped\ndefault. `seonix cli … '{\"config\":false}'` (always set on the bench path) skips\nreading `seonix.toml` entirely, so a subject repo's config file can never shape\na benchmark arm. A `seonix.toml` key that parses and normalizes but has no\nwired consumer yet (`index.include_text`, `index.include_structure`,\n`index.respect_gitignore`, `index.markdown_sections`, `index.vue`) triggers a\none-time stderr warning per process rather than silently doing nothing.\n`seonix config --effective [--repo <abs>]` prints the fully merged config plus,\nper key, which source won it.\n\n## Lexicons\n\nAn extractor answers \"what identifiers are in this repo\". It cannot answer \"which of them *are*\nthe dependency-injection setup\", because nothing is named that. A lexicon supplies the other\nhalf: a curated term, the words people actually use for it, a definition, and the deterministic\nrules deciding which of this repo's entities the term denotes.\n\nseonix ships one lexicon per language under `lexicons/` (C# today) and loads only the languages\na build actually extracted. Both halves land in the same `graph.json` as everything else, so a\nlexicon answers through the same query surface as any other fact — a `LexiconTerm` individual\ncarrying the definition, and a `denotes` edge to every entity its binders matched. The term's\nwords also join the module scorer, which is what makes a domain phrase locate the code:\n\n    seonix cli seonix_locate \"where is dependency injection configured\"\n\nA `[[term]]` declares its binders, all exact, all written down:\n\n| binder | matches |\n| --- | --- |\n| `symbols` | an entity defined here under that name (class, method, or a module named after it) |\n| `suffixes` | a name-convention tail (`*Controller`), on names longer than the suffix |\n| `bases` | a declared base class or implemented interface |\n| `types` | a type name written in a parameter list or return annotation |\n| `attributes` | a declaration attribute, bare name (`ApiController`) |\n\nNothing is inferred from string similarity, so a term matching nothing in a repo denotes\nnothing and keeps only its definition. `npm run check:lexicons` (`seonix cli lexicon_validate`)\nreads every lexicon the way an index would and reports each file, exiting non-zero on any\nrejection — the check to run before committing a hand edit.\n\n## Telemetry\n\nOpt-in, off by default, and the OFF path is **byte-identical** to no telemetry\nexisting at all — no file, no stdout/stderr change. Turn it on with\n`SEONIX_TELEMETRY=1` (env always wins both directions — `SEONIX_TELEMETRY=0`\nforce-disables even if the toml turns it on) or `[telemetry] enabled = true` in\n`seonix.toml`.\n\nWhen enabled, each `cli` invocation (digest / locate / the generic tool\nfallback) appends fire-and-forget JSONL lines to\n`<repo>/.seonix/seonix-<uuidv7>.log` — one line per query, schema-versioned\n(`v: 1`) with an `id` (the invocation id, reusable across a host's own trace\nvia `SEONIX_INVOCATION_ID`), a monotonic `seq`, and per-surface fields\n(`query`, `response`, `perf`, `cost`). A structural redactor drops any\n`text`/`content`/`snippet` field at any depth and truncates long strings —\n**telemetry never records file contents**, only ids/paths/scores/sizes/counts.\nWrites are swallowed on error: telemetry can never throw, block a query, or\ntouch stdout (stdout is the MCP transport / the digest injected into the\nno-MCP arm).\n\n## Visualise\n\n```bash\nseonix viz --focus <Symbol> --out graph.html\n```\n\nRenders a focused, portable Cytoscape sub-graph of the typed code-map, the same\nview that runs live on the website. By default it also writes a `code-browser.html`\nand a `timeline.html` beside it with a working header nav; pass `--graph-only`\nfor just the single self-contained graph file.\n\n## Chat\n\n```bash\nseonix chat [--repo /abs/path]\n```\n\n`seonix chat` opens an interactive natural-language client over the code graph. The\nengine is **tmct** (`@polycode-projects/the-mechanical-code-talker`), a\ndeterministic, no-LLM chatbot that seonix runs over its own graph through tmct's\nprovider seam. Every answer is grounded in the graph or an honest miss. With no\n`--repo` the target defaults to the git root, so running it from a nested package dir\nstill covers the whole repo.\n\nAsk structural questions in plain English — \"which modules import walk.mjs\", \"where\nis buildContextBundle defined\", \"when did walk.mjs change\" — and route slash-commands\n(`/context`, `/impact`, `/callers`, `/arch`, …) to the graph tools. On top of the\nquery layer, tmct adds conversational memory, provenance and trust scoring,\nteach-and-recall, and multi-strategy interpretation. See the tmct docs for the full\ncommand set.\n\ntmct owns the entire chat, graph, and inference tool surface — not just the\nconversation. seonix hands it graph truth and increasingly routes its own tools\nthrough the same seam rather than reading the graph natively (see `PLAN_TMCT.md`).\nThe old opt-in `--with-claude`/`--with-copilot` fallback is gone — tmct is no-LLM\nby contract.\n\n## Languages\n\nPython (stdlib `ast`), JS/TS (the TypeScript compiler API, including CommonJS\n`require`/`module.exports`), C# (Roslyn, with a tree-sitter fallback) and Java\n(JavaParser, with a tree-sitter fallback), all merged into the one typed graph.\nThe C# Roslyn helper's source ships in the package under `roslyn/`. If the .NET\nSDK is on your PATH, seonix builds it the first time it indexes a C# repo, one\nbuild, cached after that. No `dotnet` on PATH just means it uses the tree-sitter\nfallback, silently, no error. Run `npm run build:roslyn` yourself first if you\nwant the dll ready ahead of time, e.g. in a Docker image build. The Java\nJavaParser helper is a jar built from the repository's `java/` directory (`mvn\npackage`) and is not included in the npm package, so a package install indexes\nJava with the tree-sitter fallback.\n\n## Licence & safety\n\n**AGPL-3.0-only.** The network clause is intended for a hosted MCP tool, so that\nhosted derivatives stay open. The `seonix:` ontology vocabulary is CC-BY-4.0 (NOTICE\ncredits SEON + FAMIX). SEONIX never writes to your global agent config and never\nphones home; everything it writes lives under `.seonix/`.\n","readmeFilename":"README.md"}