{"_id":"@dungle-scrubs/synapse","_rev":"11-b46492e12a42860e0e23ff61b7cb9aa6","name":"@dungle-scrubs/synapse","dist-tags":{"latest":"0.1.8"},"versions":{"0.1.0":{"name":"@dungle-scrubs/synapse","version":"0.1.0","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/synapse@0.1.0","maintainers":[{"name":"dungle-scrubs","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/synapse#readme","bugs":{"url":"https://github.com/dungle-scrubs/synapse/issues"},"dist":{"shasum":"dd86d7c3efacbc9e95ebf0eaf5cb14a1cd8eced8","tarball":"https://registry.npmjs.org/@dungle-scrubs/synapse/-/synapse-0.1.0.tgz","fileCount":28,"integrity":"sha512-XPFCmPmvoMwRg7amz4q9MA5uXKfB/kow3khWNU6wGDV6AmQN+i5GgbV6VyiwPkMwecy6C9KBcNWxxXmnc7xRAw==","signatures":[{"sig":"MEYCIQCkMkTOG3I/cR5rn9tSwfVEZVlqZMAwg1RAUK/f7xPflgIhAMnNG7vWAWde7SpXbrXAGNB4jfH9Z/yrctiUXKsYmhPE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54475},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e55cb4635b18e57dbebf87a9def75d7504372368","scripts":{"lint":"biome check src/ __tests__/","test":"bun test","build":"tsc","lint:fix":"biome check --write src/ __tests__/","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dungle-scrubs","email":"kevinf@the7and8.com"},"repository":{"url":"git+https://github.com/dungle-scrubs/synapse.git","type":"git"},"_npmVersion":"11.7.0","description":"Model capability matrix, fuzzy resolver, task classifier, and selection algorithm for pi-ai models","directories":{},"_nodeVersion":"25.4.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","@mariozechner/pi-ai":"0.52.12"},"peerDependencies":{"@mariozechner/pi-ai":">=0.50.0"},"_npmOperationalInternal":{"tmp":"tmp/synapse_0.1.0_1771346296082_0.9402920201566858","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.1":{"name":"@dungle-scrubs/synapse","version":"0.1.1","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/synapse@0.1.1","maintainers":[{"name":"dungle-scrubs","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/synapse#readme","bugs":{"url":"https://github.com/dungle-scrubs/synapse/issues"},"dist":{"shasum":"b8e9b1889a9b9c2e519626c6c2dbd74d401f4334","tarball":"https://registry.npmjs.org/@dungle-scrubs/synapse/-/synapse-0.1.1.tgz","fileCount":28,"integrity":"sha512-C2UosTP83dGt9gC2w1nlvWJwPC6f26Sp14gKlHYuAh6F79YWriDkIscSFCJOcgJuu5189G15SAErj0zNaXAIEQ==","signatures":[{"sig":"MEUCIQCxxITP5BcfbST/nDI16EmJQT8iltA2lmfeOryX6aMI/QIgNpcPhuIfzGjmmTO2RXYu0p3zb7he7XE1/ZufmVmbTAo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fsynapse@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55288},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ed5cd9dd75c646f067d64257d314af4ab3338051","scripts":{"lint":"biome check src/ __tests__/","test":"bun test --preload ./__tests__/preload.ts","build":"tsc","lint:fix":"biome check --write src/ __tests__/","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:28845f29-c5e7-45fc-92ca-eb090c28545b"}},"repository":{"url":"git+https://github.com/dungle-scrubs/synapse.git","type":"git"},"_npmVersion":"11.10.0","description":"Model capability matrix, fuzzy resolver, task classifier, and selection algorithm for pi-ai models","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","@mariozechner/pi-ai":"0.52.12"},"peerDependencies":{"@mariozechner/pi-ai":">=0.50.0"},"_npmOperationalInternal":{"tmp":"tmp/synapse_0.1.1_1771347652221_0.03673555627818437","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.2":{"name":"@dungle-scrubs/synapse","version":"0.1.2","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/synapse@0.1.2","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/synapse#readme","bugs":{"url":"https://github.com/dungle-scrubs/synapse/issues"},"dist":{"shasum":"1d497bd36f3383babd02b84884b61ac037f60085","tarball":"https://registry.npmjs.org/@dungle-scrubs/synapse/-/synapse-0.1.2.tgz","fileCount":28,"integrity":"sha512-sAF1kJ8AteOgJCBPCfzSOH+h4xip1YjDykRYMRKazoxVJ2XKZKTFnyG/3lvF0HTG3uaxK+5yBIDRkmebTreleg==","signatures":[{"sig":"MEUCIQDdC95SRXDgNCgpmo3E7E5SlcnKpvVMWIE1jyfpV62QRgIgEM/MjCEajUGV1yUyngNhnrRd2jJnE6XLXnnzNvi7zDg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fsynapse@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59091},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"68ba287e2223b005ee483f83dcfa4be15ba80d06","scripts":{"lint":"biome check src/ __tests__/","test":"bun test --preload ./__tests__/preload.ts","build":"tsc","lint:fix":"biome check --write src/ __tests__/","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:28845f29-c5e7-45fc-92ca-eb090c28545b"}},"repository":{"url":"git+https://github.com/dungle-scrubs/synapse.git","type":"git"},"_npmVersion":"11.10.0","description":"Model capability matrix, fuzzy resolver, task classifier, and selection algorithm for pi-ai models","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","@mariozechner/pi-ai":"0.52.12"},"peerDependencies":{"@mariozechner/pi-ai":">=0.50.0"},"_npmOperationalInternal":{"tmp":"tmp/synapse_0.1.2_1771477326643_0.7194214539619603","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.3":{"name":"@dungle-scrubs/synapse","version":"0.1.3","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/synapse@0.1.3","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/synapse#readme","bugs":{"url":"https://github.com/dungle-scrubs/synapse/issues"},"dist":{"shasum":"117f45e619512a7c4c0c57bd20b333c6d91da2df","tarball":"https://registry.npmjs.org/@dungle-scrubs/synapse/-/synapse-0.1.3.tgz","fileCount":28,"integrity":"sha512-pAQPO4wXA6ziT0fU++Ybq/iSjTACyo2fGrbaFmNsPp2T5+XSO9RQ75A0kCvJjKvRbEPOdm91bw7NO5Uyt9XLcQ==","signatures":[{"sig":"MEUCIQD9v47R85uK+4sVuEK9cNDwsN3p+l0GbY9wflvaG93xmwIgW71eUFKAMm8W+4R2PHOarvBX+C5WKzo1IJfYQtAEE8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fsynapse@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":62428},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"7639bac9fe29d74e2e55bfd854a30a2d3ecf9a3b","scripts":{"lint":"biome check src/ __tests__/","test":"bun test --preload ./__tests__/preload.ts","build":"tsc","lint:fix":"biome check --write src/ __tests__/","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:28845f29-c5e7-45fc-92ca-eb090c28545b"}},"repository":{"url":"git+https://github.com/dungle-scrubs/synapse.git","type":"git"},"_npmVersion":"11.10.0","description":"Model capability matrix, fuzzy resolver, task classifier, and selection algorithm for pi-ai models","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","@mariozechner/pi-ai":"0.52.12"},"peerDependencies":{"@mariozechner/pi-ai":">=0.50.0"},"_npmOperationalInternal":{"tmp":"tmp/synapse_0.1.3_1771485565318_0.4714818632524247","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.4":{"name":"@dungle-scrubs/synapse","version":"0.1.4","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/synapse@0.1.4","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/synapse#readme","bugs":{"url":"https://github.com/dungle-scrubs/synapse/issues"},"bin":{"synapse":"dist/cli.js"},"dist":{"shasum":"061e9da45a7b4565245789eb7db387cde157cd54","tarball":"https://registry.npmjs.org/@dungle-scrubs/synapse/-/synapse-0.1.4.tgz","fileCount":32,"integrity":"sha512-ZkZ1Pv1t1G2Kdn6XP+0Mubl/LTdUSvNM5YuarGkpi3/iKtIy7bNl+6HtyoEebEGYH1U15BK8S7F1/Mq1ntTdXQ==","signatures":[{"sig":"MEQCIAl/0vJZE3ThBa2es1/9Lksoj3Q2BYupW3pa10RERRDBAiAXpal30Esa6IKqPNryBIcVds6fm4lLlderQf5poyaC/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fsynapse@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":115170},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"fd41b982d375177c223329b6a90985a18692852a","scripts":{"lint":"biome check src/ __tests__/","test":"bun test --preload ./__tests__/preload.ts","build":"tsc","lint:fix":"biome check --write src/ __tests__/","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:28845f29-c5e7-45fc-92ca-eb090c28545b"}},"repository":{"url":"git+https://github.com/dungle-scrubs/synapse.git","type":"git"},"_npmVersion":"11.10.1","description":"Model capability matrix, fuzzy resolver, task classifier, and selection algorithm for pi-ai models","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","@mariozechner/pi-ai":"0.52.12"},"peerDependencies":{"@mariozechner/pi-ai":">=0.50.0"},"_npmOperationalInternal":{"tmp":"tmp/synapse_0.1.4_1771666014030_0.6111368834341557","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.5":{"name":"@dungle-scrubs/synapse","version":"0.1.5","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/synapse@0.1.5","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/synapse#readme","bugs":{"url":"https://github.com/dungle-scrubs/synapse/issues"},"bin":{"synapse":"dist/cli.js"},"dist":{"shasum":"7e62e6d9b616bfe9f794e93f27c70b52a1c36a9e","tarball":"https://registry.npmjs.org/@dungle-scrubs/synapse/-/synapse-0.1.5.tgz","fileCount":36,"integrity":"sha512-ZmSch7qg2n8cntZbHhou39AiMQWmAndW34ppK3YqALMeOWOhr1T60QovqXc8ofmK3U1UpBThEbiciyNKh6xqmA==","signatures":[{"sig":"MEUCIGL37Fb1E3Oj1Ygrq0gPGWpwCZ84pyjE2ME6nlnJj9b2AiEA5/U0nJ/dY4k9gboybRjd8cLd3d+lesEgm+3CzeChxlU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fsynapse@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":152674},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"67b933a0670714f68bec12b183391fd57176a05a","scripts":{"lint":"biome check src/ __tests__/","test":"bun test --preload ./__tests__/preload.ts","build":"tsc","lint:fix":"biome check --write src/ __tests__/","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:28845f29-c5e7-45fc-92ca-eb090c28545b"}},"repository":{"url":"git+https://github.com/dungle-scrubs/synapse.git","type":"git"},"_npmVersion":"11.10.1","description":"Model capability matrix, fuzzy resolver, task classifier, and selection algorithm for pi-ai models","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.2.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","@mariozechner/pi-ai":"0.52.12"},"peerDependencies":{"@mariozechner/pi-ai":">=0.50.0"},"_npmOperationalInternal":{"tmp":"tmp/synapse_0.1.5_1771736827881_0.1281293655575797","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.6":{"name":"@dungle-scrubs/synapse","version":"0.1.6","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/synapse@0.1.6","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/synapse#readme","bugs":{"url":"https://github.com/dungle-scrubs/synapse/issues"},"bin":{"synapse":"dist/cli.js"},"dist":{"shasum":"41919fa7a7714e9a6e494b3e47fe0200b4beec06","tarball":"https://registry.npmjs.org/@dungle-scrubs/synapse/-/synapse-0.1.6.tgz","fileCount":36,"integrity":"sha512-gZxBNLwuWkpvl6BM5yf6GnnufbMd9vudT+IIpWkIwH5asakpmOyp2oxasdaGuta0wzMfhO/U/8M+EpgOwZOS0w==","signatures":[{"sig":"MEYCIQCeBTHkw+mMJGpr4l0hu7xLtDh1879KFXhEqTXGXv+eHAIhAPDHM47aVWjxUdl4F6I3YVfw6p5Hvcz5v59+MFxjYqcJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fsynapse@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":159352},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d2757e07f925a9ea8cffc9191ef8536259e6eb0c","scripts":{"lint":"biome check src/ __tests__/","test":"bun test --preload ./__tests__/preload.ts","build":"tsc","prepare":"husky","lint:fix":"biome check --write src/ __tests__/","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:28845f29-c5e7-45fc-92ca-eb090c28545b"}},"overrides":{"minimatch":"^10.2.1","fast-xml-parser":"^5.3.6"},"repository":{"url":"git+https://github.com/dungle-scrubs/synapse.git","type":"git"},"_npmVersion":"11.10.1","description":"Model capability matrix, fuzzy resolver, task classifier, and selection algorithm for pi-ai models","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","@types/bun":"^1.2.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","@mariozechner/pi-ai":"0.54.1"},"peerDependencies":{"@mariozechner/pi-ai":">=0.50.0"},"_npmOperationalInternal":{"tmp":"tmp/synapse_0.1.6_1772000468063_0.491653598781552","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.7":{"name":"@dungle-scrubs/synapse","version":"0.1.7","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/synapse@0.1.7","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/synapse#readme","bugs":{"url":"https://github.com/dungle-scrubs/synapse/issues"},"bin":{"synapse":"dist/cli.js"},"dist":{"shasum":"fbad5a77f6ad94b4063c9669128737ea48b8b0cf","tarball":"https://registry.npmjs.org/@dungle-scrubs/synapse/-/synapse-0.1.7.tgz","fileCount":40,"integrity":"sha512-u25506FscolwspQlrL9hMsmPeBQOTh+r+C+HmgHlYcrnsyUK8Ay9cJIzKtiRaVJ4PrbeaJOIdRKSA1BOvKeGOQ==","signatures":[{"sig":"MEUCIC2VqRrHHzFGlDuVYeP8SmoA5zVppNZQO7xSW2EZXFFBAiEAyfqPTaY4QxYj0zo4SoH2894KxZ0rKG3QP62UX/iMao4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fsynapse@0.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":181597},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"613a5829c7ee698a6601b3fd2339dd24a5e650dd","scripts":{"lint":"biome check src/ __tests__/","test":"bun test --preload ./__tests__/preload.ts","build":"tsc","prepare":"husky","lint:fix":"biome check --write src/ __tests__/","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:28845f29-c5e7-45fc-92ca-eb090c28545b"}},"overrides":{"minimatch":"^10.2.1","fast-xml-parser":"^5.3.6"},"repository":{"url":"git+https://github.com/dungle-scrubs/synapse.git","type":"git"},"_npmVersion":"11.11.0","description":"Model capability matrix, fuzzy resolver, task classifier, and selection algorithm for pi-ai models","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","@types/bun":"^1.2.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","@mariozechner/pi-ai":"0.54.1"},"peerDependencies":{"@mariozechner/pi-ai":">=0.50.0"},"_npmOperationalInternal":{"tmp":"tmp/synapse_0.1.7_1772783189047_0.9899920325714358","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.8":{"name":"@dungle-scrubs/synapse","version":"0.1.8","author":{"name":"Kevin Frilot"},"license":"MIT","_id":"@dungle-scrubs/synapse@0.1.8","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"homepage":"https://github.com/dungle-scrubs/synapse#readme","bugs":{"url":"https://github.com/dungle-scrubs/synapse/issues"},"bin":{"synapse":"dist/cli.js"},"dist":{"shasum":"f777abd029c330de6170e5dc7a421308df33fe28","tarball":"https://registry.npmjs.org/@dungle-scrubs/synapse/-/synapse-0.1.8.tgz","fileCount":40,"integrity":"sha512-ihmf3TgJz9RU/Lz/eG9DpNjFslsQNn1jn4ID6rzeBpZfm0vWOhSrZ4xJqdVSSCndBaGgY9YOQB4VX10aH6C5aw==","signatures":[{"sig":"MEQCIGRkx0ds91/ak7e+RX4HYNXd59iGEdldCumLqijpMX6RAiB7dPF72jz+o9Btk6lN3CCNT4ubfWUTeZ8kbLNu4a8tMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dungle-scrubs%2fsynapse@0.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":185004},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d368892532ca9d85feb0fb8b5ef3b11e0fe9a567","scripts":{"lint":"biome check src/ __tests__/","test":"bun test --preload ./__tests__/preload.ts","build":"tsc","prepare":"husky","lint:fix":"biome check --write src/ __tests__/","typecheck":"tsc --noEmit","prepublishOnly":"tsc && bun test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:28845f29-c5e7-45fc-92ca-eb090c28545b"}},"overrides":{"minimatch":"^10.2.1","fast-xml-parser":"^5.3.6"},"repository":{"url":"git+https://github.com/dungle-scrubs/synapse.git","type":"git"},"_npmVersion":"11.12.0","description":"Model capability matrix, fuzzy resolver, task classifier, and selection algorithm for pi-ai models","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","@types/bun":"^1.2.5","typescript":"^5.7.3","@biomejs/biome":"^1.9.4","@mariozechner/pi-ai":"0.54.1"},"peerDependencies":{"@mariozechner/pi-ai":">=0.50.0"},"_npmOperationalInternal":{"tmp":"tmp/synapse_0.1.8_1774095084829_0.7572841674326811","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2026-02-17T16:38:15.944Z","modified":"2026-09-24T15:01:22.708Z","0.1.0":"2026-02-17T16:38:16.233Z","0.1.1":"2026-02-17T17:00:52.374Z","0.1.2":"2026-02-19T05:02:06.778Z","0.1.3":"2026-02-19T07:19:25.505Z","0.1.4":"2026-02-21T09:26:54.195Z","0.1.5":"2026-02-22T05:07:08.033Z","0.1.6":"2026-02-25T06:21:08.266Z","0.1.7":"2026-03-06T07:46:29.188Z","0.1.8":"2026-03-21T12:11:24.989Z"},"bugs":{"url":"https://github.com/dungle-scrubs/synapse/issues"},"author":{"name":"Kevin Frilot"},"license":"MIT","homepage":"https://github.com/dungle-scrubs/synapse#readme","repository":{"url":"git+https://github.com/dungle-scrubs/synapse.git","type":"git"},"description":"Model capability matrix, fuzzy resolver, task classifier, and selection algorithm for pi-ai models","maintainers":[{"name":"dungle-scrubs-org","email":"kevinf@the7and8.com"}],"readme":"# synapse\n\nModel capability matrix, fuzzy resolver, task classifier, and selection\nalgorithm for [pi-ai](https://github.com/nicobrinkkemper/pi-ai) models.\n\n## Install\n\n```bash\nnpm install @dungle-scrubs/synapse\n```\n\nRequires `@mariozechner/pi-ai` as a peer dependency.\n\n## Usage\n\n```typescript\nimport {\n  buildRouteSignalKey,\n  classifyTask,\n  resolveModelFuzzy,\n  selectModels,\n} from \"@dungle-scrubs/synapse\";\n\nconst matrixOverrides = {\n  \"claude-sonnet-4-5\": { code: 2, text: 3, vision: 2 },\n};\n\n// Fuzzy resolve a human-friendly model name\nconst model = resolveModelFuzzy(\"opus\", undefined, undefined, { matrixOverrides });\n// → { provider: \"anthropic\", id: \"claude-opus-4-6\", displayName: \"anthropic/claude-opus-4-6\" }\n\n// classifyTask requires injected deps:\n// - listModels(): { provider, id, cost: { input, output } }[]\n// - complete(provider, modelId, prompt): Promise<string>\nconst classification = await classifyTask(\"Refactor the auth module\", \"code\", {\n  listModels,\n  complete,\n});\n// → { type: \"code\", complexity: 3, reasoning: \"...\" }\n\n// Select ranked models for the task (with optional overrides)\nconst ranked = selectModels(classification, \"balanced\", { matrixOverrides });\n// → [{ provider: \"anthropic\", id: \"claude-sonnet-4-5-...\", ... }, ...]\n\n// Optional score-based routing modes (cheap|fast|balanced|quality|reliable)\nconst rankedFast = selectModels(classification, \"balanced\", {\n  routingMode: \"fast\",\n  routingSignals: {\n    generatedAtMs: Date.now(),\n    routes: {\n      [buildRouteSignalKey(\"anthropic\", \"claude-sonnet-4-5-20250514\")]: {\n        latencyP90Ms: 420,\n        observedAtMs: Date.now(),\n        uptime: 0.995\n      }\n    }\n  }\n});\n```\n\n## Routing signal contract\n\nCanonical keys used by selector lookups:\n\n- Route keys: `provider/modelId` (lowercase)\n- Model keys: `modelId` (lowercase)\n- Provider-scoped model keys: `provider/modelId` (lowercase)\n\nUse helpers to build keys instead of hand-assembling strings:\n\n- `buildRouteSignalKey(provider, modelId)`\n- `buildModelSignalKey(modelId)`\n- `buildProviderModelSignalKey(provider, modelId)`\n\nRuntime sanitization behavior:\n\n- `sanitizeRoutingSignalsSnapshot(input)` drops invalid entries/fields.\n- `sanitizeRoutingModePolicyOverride(input)` drops invalid override fields.\n- Invalid numeric ranges are ignored (for example uptime outside `[0,1]`).\n- Legacy route keys in `provider|modelId` format are normalized.\n\n## CLI\n\nGenerate a model-matrix override template users can edit:\n\n```bash\nsynapse init-overrides ~/.tallow/model-matrix-overrides.json\n```\n\nUseful flags:\n\n- `--empty` — generate `{ \"matrixOverrides\": {} }`\n- `--force` — overwrite existing file\n- `--stdout` — print JSON to stdout\n\nGenerated shape:\n\n```json\n{\n  \"matrixOverrides\": {\n    \"claude-sonnet-4-5\": { \"code\": 4, \"vision\": 3, \"text\": 4 }\n  }\n}\n```\n\nPass `matrixOverrides` into synapse APIs via options.\n\n## API\n\n### Matrix\n\n- `MODEL_MATRIX` — Capability tiers for known models\n- `MODEL_ARENA_PRIORS` — Raw LM Arena priors used for within-tier scoring\n- `getModelRatings(modelId, options?)` — Look up ratings by model ID (prefix matching)\n- `getModelArenaPriors(modelId)` — Look up raw LM Arena priors by model ID\n- `modelSupportsTask(modelId, type, minRating, options?)` — Check if a model supports a task type\n- `createModelRatingsLookup(options?)` — Build a reusable ratings lookup with optional overrides\n- `createModelArenaPriorsLookup()` — Build a reusable raw-priors lookup\n- `applyModelMatrixOverrides(baseMatrix, overrides?)` — Merge base matrix and override map\n- `parseModelMatrixOverrides(input)` — Parse unknown JSON/settings payload into validated overrides\n- `createModelMatrixOverrideTemplate(options?)` — Build override-template object for file generation\n\n### Routing signals\n\n- `buildRouteSignalKey(provider, modelId)` — Build canonical route signal keys\n- `parseRouteSignalKey(key)` — Parse canonical/legacy route signal keys\n- `buildModelSignalKey(modelId)` — Build canonical model signal keys\n- `buildProviderModelSignalKey(provider, modelId)` — Build canonical provider-scoped model keys\n- `sanitizeRoutingSignalsSnapshot(input)` — Validate and sanitize telemetry payloads\n- `sanitizeRoutingModePolicyOverride(input)` — Validate and sanitize mode-policy overrides\n\n### Resolver\n\n- `resolveModelFuzzy(query, modelSource?, preferredProviders?, options?)` — Fuzzy resolve a name to a single model\n- `resolveModelCandidates(query)` — Resolve to all tied candidates\n- `listAvailableModels()` — List all registered models\n\n### Classifier\n\n- `classifyTask(task, primaryType, deps, agentRole?)` — Classify task type and complexity\n- `findCheapestModel(listModels)` — Find the cheapest available model\n\n### Selector\n\n- `selectModels(classification, costPreference, options?)` — Rank models for a classified task\n  - Score-based modes combine matrix tiers with raw LM Arena priors (when available)\n  - `options.routingMode`: score-based mode (`cheap`, `fast`, `balanced`, `quality`, `reliable`)\n  - `options.routingSignals`: telemetry snapshot for latency/reliability/throughput scoring\n  - `options.routingModePolicyOverride`: partial policy override for the active mode\n  - `options.matrixOverrides`: per-model capability override map\n\n## License\n\nMIT\n","readmeFilename":"README.md"}