{"_id":"switchboard-router","_rev":"61-1b6ad8eb90647eb87f88f2a2c942af1f","name":"switchboard-router","dist-tags":{"latest":"0.9.33"},"versions":{"0.5.20":{"name":"switchboard-router","version":"0.5.20","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.5.20","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"bc6eca0c90b20bf1521db311c5d0673bbc6d01e0","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.5.20.tgz","fileCount":3181,"integrity":"sha512-uus1sEWjZpeSevOtlV1lWD/dbwII3VOBXq0fQQbY9lADBCeMiF8+0+1hzEfO+UZlZtb1faams0hN7OWrcri/Ow==","signatures":[{"sig":"MEUCIQDnoaurIDEgcN0ci546jbdznfstQJJqb7SAuOvM20CpKwIgGcqzGX4ccXkzMthL4mLwOOwp8hBO61XzKAo1Hzoyxgo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47134398},"engines":{"node":">=18.0.0"},"gitHead":"fdedf74f31c50f03fcf40a89b33d69435d250f26","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ../..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"vijay_duke","email":"Mail@VijayIyengar.com"},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.17.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"26.4.0","dependencies":{"react":"19.2.1","enquirer":"^2.4.1","react-dom":"19.2.1","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.25.12","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.5.20_1783600399539_0.5186527285025164","host":"s3://npm-registry-packages-npm-production"}},"0.5.21":{"name":"switchboard-router","version":"0.5.21","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.5.21","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"600cb55d3eba71fe71156444de5ab30274a7f6cd","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.5.21.tgz","fileCount":3150,"integrity":"sha512-B8ZjSP7B1ai8n89toQk2rp1ilPoqnB7GMfznus6UW+8ndLbbgWUhITHDNQt7p7sVdwywn8PT3dVDVGhYobYdZw==","signatures":[{"sig":"MEYCIQCkd+H2cOrocTQ+RL5YPlBM7r/ITt8auFmO5AcXuZv5OgIhAM+FJ73Uu4DBU0MY2WisCkOoNQEhWMdHdoEYkiLe8AEo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.5.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47076945},"engines":{"node":">=18.0.0"},"gitHead":"ae2e256bdc9c67c7e67e75b73a42bf9113d9c6ea","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ../..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.5.21_1783604860237_0.4860034995777709","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"switchboard-router","version":"0.6.0","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.0","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"26ab55a6b4c23b06261a7dc8f109ae99b544d063","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.0.tgz","fileCount":2977,"integrity":"sha512-bR1EuGLs/uxjmp6UyuFCM12Sq1xrli/b+EN7FvmkwtXVzZNn+GPvY/F6EB8z1ZaeLZN+R1EVAUFKIGN7++VdHA==","signatures":[{"sig":"MEQCIGkwOJvA6lg0ovwN2/Ae9IIZ3IDD7WXor/Z2h1U8mGaBAiAED/xAxrNe6sN1gjAlIaWEc/yFeRMrrExUpncJrHTwGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47926264},"engines":{"node":">=18.0.0"},"gitHead":"3e683e41914d1a4fd6995d0c2794d8b69f0b208d","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.0_1783903657670_0.3731067839730733","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"switchboard-router","version":"0.6.1","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.1","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"35a8537a8e73e3e5af3b31e11bc2747abf856e08","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.1.tgz","fileCount":2981,"integrity":"sha512-wJ8A4mhbkt7CchB2x+VIZGEqPN3YKKb1kxgDFqlVImHUWZ5pSapTJxta4wGdegNSBSdBbPt8kXkBqiXsTaMvxw==","signatures":[{"sig":"MEQCIEr6u1jf4mu+532mc2gEJZpexa9jQhRAuWUx6D7FRNlxAiBhDfNhFsM/qBqvF7oL+1saD/fTtPVawPPyXWD3X4Igfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47957576},"engines":{"node":">=18.0.0"},"gitHead":"9674cdf2e174ab52eaea109472ce3604c6f8fa2a","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.1_1783905383113_0.9363070215835367","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"switchboard-router","version":"0.6.2","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.2","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"6f3d125115ebfc048cfda10bd8984dc17fefab73","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.2.tgz","fileCount":2981,"integrity":"sha512-iaTINiWZBPVJJq8sjnLGPWmJZrkbob7Au+kb+a8h1kZ6vGUu+C8Kf50ohHMw4+9aAwX8raIuGWmbVUHYyxwhuQ==","signatures":[{"sig":"MEYCIQD2ibQl13sQfZ/Fyk7RvXFzvZPJgcRqBZrNpz7QaDIXDwIhALphNmRHdXixPPhghCrZPOm7QlQe2wP1b331LcRxG0y3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47956715},"engines":{"node":">=18.0.0"},"gitHead":"02f7fb95f15ec19314495c5ca04d6dd70ce17e41","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.2_1783905761301_0.9142001868644705","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"switchboard-router","version":"0.6.3","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.3","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"851b65777a75fecfd069eb16750cd66fdd198f3d","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.3.tgz","fileCount":2981,"integrity":"sha512-4N4nSBvxIPqj3x9CVCxDCWkD1qlUknE56A9A30XyNFgBDrZHacJniPvyUpc1Qu1kkd5ArND8jNT2i+ejBRQpDw==","signatures":[{"sig":"MEYCIQDFnoXwBpQw6crlIqzpzUvZ3BQDTwTXtzsGB0jiERtPFwIhAJnf1kOlS24C2AQM8F//S465fSYYGYWfNMycy1OrYK9L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47930240},"engines":{"node":">=18.0.0"},"gitHead":"f76b4ce2f8d3eee4101a0b40a8627dc32a37834b","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.3_1783906899531_0.10576239164442214","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"switchboard-router","version":"0.6.4","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.4","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"c1f24a172b32978a3e8e64b2b2916181167084af","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.4.tgz","fileCount":2984,"integrity":"sha512-zvfMbrMAa/B2/8ypFouSesGVXJ9Y49RSZvorAurDP/bZkCEQ3L1Ywiw27MLtg9exg9FusU79WyPyS32tTLm7zQ==","signatures":[{"sig":"MEQCIGDSeumjPaVHDVNaw8bvAmBfMLeemt/IyQHlCuKS/MeuAiBA5gwyuJBciWLWftxNHn2qEgAh3VbA++lDNy9teu4qOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47959941},"engines":{"node":">=18.0.0"},"gitHead":"2e817a899cd9a69c6ee1788ea837aa1afec8ead0","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.4_1783910903299_0.17270923645900904","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"switchboard-router","version":"0.6.5","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.5","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"1d6da4e2f2f303b10059bc1359b97f4565b22f4d","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.5.tgz","fileCount":2984,"integrity":"sha512-vLWCCzymtzKmL/8WfQhJMSZ17nqzgyxy/NN2mRlp06Z4MQajqZaK/Lig/Gi007BQCt3SWZltciDk63VheKtREg==","signatures":[{"sig":"MEYCIQDsO7wcGnEfBpUYzYHEKj0dtU9n9twYuE/ZIoo8kxo84wIhANOQH+CM/AzVL4Wv1ME0IpGpESGZIV/4Hf4ZjxWsPGr2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47960596},"engines":{"node":">=18.0.0"},"gitHead":"aa0b638a34a31e0427685bc0b5a5a8f493237fa0","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.5_1783913065189_0.38825431071825456","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"switchboard-router","version":"0.6.6","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.6","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"c78dbf391f52769acc97bdf9b1243b1d50e55aae","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.6.tgz","fileCount":2984,"integrity":"sha512-W3mLXH9yB4B+ZzOntiDvc270HBML+uapE8Q2s0WMtOiqp8DOXq2A39A+TpwYfw0tTDZ/msFnmPt+F1B4XIepWA==","signatures":[{"sig":"MEUCIEd62UQ/vlDwWjaPpm7IEL7H90LMwiqCcWQDhmrm3SR8AiEAjB9H1QUvgCmfPh6jbzwSpMFqUohkx2jr6oc8ZNjzHOM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47960596},"engines":{"node":">=18.0.0"},"gitHead":"7ffc6f8da776870d1f3982e5f9cdd3a45b6770a9","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.6_1783914152424_0.957301367485617","host":"s3://npm-registry-packages-npm-production"}},"0.6.7":{"name":"switchboard-router","version":"0.6.7","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.7","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"e0aed17c2e42e810eebfcb6ccc026df8bb229903","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.7.tgz","fileCount":2985,"integrity":"sha512-Z1wiD49VRX6EQSC6man9ZiPiYGe/kj0KtrvPUAfEqoBhDixrSPmykqdwWcvTVIaOe+AmHAjpvNnZH5wfOASOSA==","signatures":[{"sig":"MEQCIFyrrfShaL0VUAbM+3GX3bowhH/44lWGKwPNML6pZv5RAiBEiDIJAJ/LweUIzopqG/wKbm20JTSDw2WiOn8WcXp+Qg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47960942},"engines":{"node":">=18.0.0"},"gitHead":"fdafba086ea9ca68dd0ebc65103bb9ddef2315d7","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.7_1783916179716_0.07369145307258074","host":"s3://npm-registry-packages-npm-production"}},"0.6.8":{"name":"switchboard-router","version":"0.6.8","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.8","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"ac03b3d1367e582a5a4649c5e1e575fc50d03948","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.8.tgz","fileCount":2985,"integrity":"sha512-uFjbDt7qTSG4uU/dvkvGm13mnxr/9X8H4UahFZHnTf6DvUn/SYhXIJqqW4tHbdxdF0eYSicxWlYxIDU/jyWSOw==","signatures":[{"sig":"MEUCIQDxxPIqoYSqdCQpc8BGLnmlN+q+cJ1yiuG9xZVmmjeRRwIgW+N77Hq2VmvbMFs/PUnuYjuqwocEtEAwfNASthmw7pI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47961519},"engines":{"node":">=18.0.0"},"gitHead":"8a49b4133e495ae0a38a0f03b235f2b46a2bc5bf","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.8_1783918593385_0.36499662613069783","host":"s3://npm-registry-packages-npm-production"}},"0.6.9":{"name":"switchboard-router","version":"0.6.9","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.9","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"edff1dd187656f4979c76b6540c2e1660b75ec66","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.9.tgz","fileCount":2986,"integrity":"sha512-VCCfCuNbhqdyWGeKhxdQa6w2q5uN8G1SiUvqP2pzUfg7vIEQwp/tYY7S4xJY1OHkYCcV4DKAnx+XJbLtRtWUOg==","signatures":[{"sig":"MEYCIQC+QTzA1HUgbtRla9Aye5kIGxu8zRkZTHt7VKvVTHEuKAIhANgTIqIX3SRFXt0P4DiDU54QgumRvbea9FlW9odbIu7K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47962975},"engines":{"node":">=18.0.0"},"gitHead":"29ba37399753c857773af69d9739b6cf30cf4bbe","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.9_1783920919592_0.3165751521243345","host":"s3://npm-registry-packages-npm-production"}},"0.6.10":{"name":"switchboard-router","version":"0.6.10","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.10","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"d689ae191850bec957403b6574ef09e0ec410aec","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.10.tgz","fileCount":2986,"integrity":"sha512-Bwg7z1uPMA02rj9jrX+uEm3oPEhiLwFPOLUVpL3vZqhNE5AnFRJb0WZTKT691nqtMlXSrN3/JqRY/pQgfbuZDQ==","signatures":[{"sig":"MEUCID9VjTbiopLuxh4sZsYpVgErEbYeEsBcDChe7QwoULYXAiEAnbv1lRsVEp39f+OiiS9ui7itnhupGE2oUDcO6deQ0pI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47964440},"engines":{"node":">=18.0.0"},"gitHead":"a4ff347acf4b4b4bb866a6d6d29c2e68b8bb5c44","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.10_1783926825842_0.2086439182172135","host":"s3://npm-registry-packages-npm-production"}},"0.6.11":{"name":"switchboard-router","version":"0.6.11","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.11","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"8f9f04a613f0145fa3f48874c5f6605ad23b3242","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.11.tgz","fileCount":3002,"integrity":"sha512-/MJDpp/Upbsz4DObc5J81eZeUv0tAuRHagY7X0ls2lwuhVet7mXd9zFRWK01Kq4FV6IcoYs6+K6vXL2X++7Dsw==","signatures":[{"sig":"MEQCIDXHAOREj41jBD+7ziQGgwAY1YGY/f0c9pzo+klOXWMrAiB6ZRazYEQgcl5hq/H8PsNIA29IUqapClGvu7sayzX5kQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48082377},"engines":{"node":">=18.0.0"},"gitHead":"a0304453cbd3d1246630597165302c3f6b9bb832","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.11_1783939789928_0.21365170885405949","host":"s3://npm-registry-packages-npm-production"}},"0.6.12":{"name":"switchboard-router","version":"0.6.12","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.12","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"0fbf6a290a2b502a02fa86f46cdec2cee2374e0c","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.12.tgz","fileCount":3002,"integrity":"sha512-Ny5FeYMvIEf6d16jp5pUkIEwdu8pT/KqOaKVpo6clmh7qegDoKj3JdfPqs7eFnuEEc69d/NBDGvv9cZGIi5Ing==","signatures":[{"sig":"MEQCIBKEqkq3yjhMk8EipkNTleaK5oDW+75JOax2wJOD/H/3AiAchddWsCFzLo0WETJOanuBz1i++trhQ4pCo16DC5WnCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48084761},"engines":{"node":">=18.0.0"},"gitHead":"a84bf292a5827ca17551983ac5707e77e3f6f900","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.12_1783942360599_0.38565974369745404","host":"s3://npm-registry-packages-npm-production"}},"0.6.13":{"name":"switchboard-router","version":"0.6.13","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.13","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"3e6caccbdca51257f336f5e23b611d4c4c66c44c","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.13.tgz","fileCount":3001,"integrity":"sha512-43Zds5mzkH1fhQ6F7HX5TKKmIpObkmQ8iJLQL3OiFtU1hqJhacKs+7wlfdoQeQcBRX14Tkb71PS9fgljn4hf0Q==","signatures":[{"sig":"MEUCIQDKNgVH+ecNHIUQwC7vXx49LRPJnT6oHAsILuJiYczG+wIgaU9lj7ZO1j9smCxn5Wao1RBHskUOi+hMxgT8HeP1lWQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48091118},"engines":{"node":">=18.0.0"},"gitHead":"ad33fa5367275cd48ffbdb61f1a2960e10789bb8","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.13_1783946222552_0.692321721889505","host":"s3://npm-registry-packages-npm-production"}},"0.6.14":{"name":"switchboard-router","version":"0.6.14","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.14","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"e1ebfefbd9817406c8ea1183040e2c09c51e731a","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.14.tgz","fileCount":3001,"integrity":"sha512-AgYndVL0jYJBvIV5AktVCASBAyspyc9e6zL/4QR3U5AffWLSE+D7XUu1ysPHxHveqrfWn+7BWxT1S8rhTGT8dg==","signatures":[{"sig":"MEUCIB1aTiuaC8/KhACuH9gaCvvlZTvwklUCpx1o6WUxSkeQAiEAlhPnpDG0EFD85CBfC1C3pvcKWNhtzKHqTO1DwnGY7iw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48090857},"engines":{"node":">=18.0.0"},"gitHead":"ca72d4aa0a0a6b579cd08ae3d52c3bf2a8175f3c","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.14_1783948355931_0.4070501507548321","host":"s3://npm-registry-packages-npm-production"}},"0.6.15":{"name":"switchboard-router","version":"0.6.15","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.15","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"92454037ceeae030f0d2e14666e77f659c6acb13","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.15.tgz","fileCount":3001,"integrity":"sha512-gSNXgrXJU3ImMc2wMyZ7NKFX3RIm6xyHQKOZ/VydnluTjQjPmv6qTNX96kRwE3Kr2mRI/DPcaz0WOhKVjDHGwg==","signatures":[{"sig":"MEUCIEVZFAMTxIadW+ISUQnOvkzioeNFxmdjORxHGgtCQMaSAiEAncLzEtB8sxTmVqMXzTN/vKctDVegOH2obz5EWFQ7Ju4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48098324},"engines":{"node":">=18.0.0"},"gitHead":"4321329855a27c278727e5bd0fd97e93d33138a9","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.15_1783950683171_0.3959075542599506","host":"s3://npm-registry-packages-npm-production"}},"0.6.16":{"name":"switchboard-router","version":"0.6.16","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.16","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"e8dc6282e6013dfb0d12c5d4ba3ea8087a7003d3","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.16.tgz","fileCount":3001,"integrity":"sha512-cJ8F5xOnSdbwlmib1JEcZkfJ7oJoL05v78TS1+SH1TUXNdwMHz+Lun7mSQtUpk1T/XVj/fT3LMbkDroRxLgGOg==","signatures":[{"sig":"MEQCICaW7vvJ/ah3QNPvzFKa2yCoWh5MtV1oQLAq8iYSvLjAAiBZerVCWYu+IajakrqBTrTVX1S5tfJu/KQNX1uIzhOEQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48100934},"engines":{"node":">=18.0.0"},"gitHead":"d1622f92598cb2e0a70cc7c20f674b0710c3ac4c","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.16_1783988837205_0.9369149670661294","host":"s3://npm-registry-packages-npm-production"}},"0.6.17":{"name":"switchboard-router","version":"0.6.17","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.17","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js"},"dist":{"shasum":"edaaace49284db9d178cf4070c7dd3d95f3d0e08","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.17.tgz","fileCount":3001,"integrity":"sha512-3cds+0LTkpmupmWP37um4/1P1yZOdOlO2QZp7e4vsMHt22Tx6Nv8GTe7pc7nA8VgIiuu9ADobVtHcfilg8n6hw==","signatures":[{"sig":"MEQCIEUOk/ZPB2p1/G2BNlLLQzYHsr7g6bNr9Jo+WXvtsMqdAiAuKzl+Lp+84Ik2dgh06pCYzg1dutO1Hog+e8p8SQ//jQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48107214},"engines":{"node":">=18.0.0"},"gitHead":"b3ecb8931311be42853dd9f5747ae97ab740571a","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.17_1783994391628_0.9978456739147226","host":"s3://npm-registry-packages-npm-production"}},"0.6.18":{"name":"switchboard-router","version":"0.6.18","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.18","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"e55d5725ab1a3a3f651fecba141095ce44442091","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.18.tgz","fileCount":3009,"integrity":"sha512-iss1BoLw8HJaz2cWOhwFXViAVSUCyP5VnTvbR0wzm5cBUuNVlbQy62NJ6+lRplBm7/525x9i/xkLppF9zoNHJQ==","signatures":[{"sig":"MEQCIGRs7D3wUjtAqMrOrMR5sB4hASb5agn72JhcgsGdopN2AiAec2Zuglyv/AZPuuFI9WTIBC4hDewUBKUEFzs+0efpBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48191671},"engines":{"node":">=18.0.0"},"gitHead":"f5814e4bbfaca8fd972b0969ff7b4986bfae3960","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.18_1784077172592_0.7485340551502344","host":"s3://npm-registry-packages-npm-production"}},"0.6.19":{"name":"switchboard-router","version":"0.6.19","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.19","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"52a8c4b8ea5c856feec9d0a01eafd03d6fad2dd5","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.19.tgz","fileCount":3009,"integrity":"sha512-af69kfjg8lOgB97+KNZnvrjB71LtzU+THXDFPBav5kQnE6gxNZD5Bbd8zcm2B6uJLa9kktaReKEiDR6bSTlYXA==","signatures":[{"sig":"MEQCIH6hgPrNL8qpJJ7GVlfCpuYvzdsfod4fTZKciOlU/Vk1AiB4cxFKDu1ZHUXaKxFMpbxbjv70AH/UBS2E8waQ27S+5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48197730},"engines":{"node":">=18.0.0"},"gitHead":"9058a3daeb1cd1c839f022609442abb67145f7a0","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"systray2 is NOT bundled here. It is lazy-installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js on macOS/Linux only. Windows uses PowerShell NotifyIcon (zero binary). This avoids shipping unsigned Go binaries that trigger antivirus false positives (Kaspersky). We use the systray2 fork because the legacy systray@1.0.5 ships a 2017 x86_64 binary that fails on modern macOS dyld.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.19_1784115328017_0.5094675179809787","host":"s3://npm-registry-packages-npm-production"}},"0.6.21":{"name":"switchboard-router","version":"0.6.21","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.21","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"66c89efaf8e189f933d18db669dbae7ce2fda569","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.21.tgz","fileCount":3009,"integrity":"sha512-ksW7uF+Acjyd2LF1B9I12sfNlXie0wuPLfAevmgSvca+ysjfEUxE4qt58DaHo5U69OxMEN6ttte1cIk/LrX16g==","signatures":[{"sig":"MEQCIE9KeS8OoKDcv2bheW4yqnxOhH4w1QskBEhIVv5MkiXbAiAOqDPHNMnve77F7QM0loWRLPLFTvF3QVVDrEBgZ6dMWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48199546},"engines":{"node":">=18.0.0"},"gitHead":"cb007e844c4350746946095ac11c9dceb46dde24","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.21_1784118223623_0.3532956972578767","host":"s3://npm-registry-packages-npm-production"}},"0.6.22":{"name":"switchboard-router","version":"0.6.22","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.22","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"ac4eb9ff4cdf67145066e9fb9828902fe622f031","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.22.tgz","fileCount":3010,"integrity":"sha512-2JDa2tLPayfo+VwoRur7wIjErrsHAgkF61unD8zCoW4HNVWGdx0D8oV2S+rfnbShk23MK7RmcmcSBCgf9f9yaA==","signatures":[{"sig":"MEUCIAlGxmP7U76Oy04XCkjWoAukjCcx88kp6+gzwojQFpLwAiEAxBJvstqA+DflaA2Qyec7TcIGbAk5rBTEAYJLKLFTrR4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48084786},"engines":{"node":">=18.0.0"},"gitHead":"fb76f9b743cb9fc1e77da5e7f526cbf0047290d0","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.22_1784291808644_0.3744492288276555","host":"s3://npm-registry-packages-npm-production"}},"0.6.23":{"name":"switchboard-router","version":"0.6.23","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.23","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"727660c29bf9da2a8ba4842af7f829acecbb419b","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.23.tgz","fileCount":3014,"integrity":"sha512-BFRXgeFFCEbQ5W57SKExglW0E5vo/VCU7c/5rgE/JvTQV2ciL6cmpjSe4KLJrd/OQYnD6qAa4rgnhZLedZd88g==","signatures":[{"sig":"MEQCIGtE3e3N+5UDUuhn5SwmaCDOE9z/U3vKC5lbhoNmO6fcAiB1HsqzkbNaL1AclYiDU2IrL3qgTKR8d1J0vUsc4dV1SA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48134886},"engines":{"node":">=18.0.0"},"gitHead":"c1b88b92378598090afcae36fee00306e7bb3b26","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.23_1784338453991_0.939342359970941","host":"s3://npm-registry-packages-npm-production"}},"0.6.24":{"name":"switchboard-router","version":"0.6.24","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.24","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"8883ef80ec9ade721cf74217fd0f77f25e2f7d01","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.24.tgz","fileCount":3014,"integrity":"sha512-+Uq5MuLuXoYEDwIKXHmzrW6SmfcFVEdXq1uQdV51IREPo7phIQGEs8RH73OWIhNXHfciVksF4du+APlzkSA13A==","signatures":[{"sig":"MEYCIQD1nTq438E5I81254WIYRI/NRBNe5iFHDuvqpgSgu+XfAIhAJwoVEXjqG6mlnw5fc4X47cGWspq7RO/81Nvyvn1ibpj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48135921},"engines":{"node":">=18.0.0"},"gitHead":"ef9cd177523f3b8d23456fc959e642b276ad3379","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.24_1784339179509_0.3951404412093589","host":"s3://npm-registry-packages-npm-production"}},"0.6.25":{"name":"switchboard-router","version":"0.6.25","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.25","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"6c6679620d7a34459b6a47a8de76a24bdd00307b","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.25.tgz","fileCount":3014,"integrity":"sha512-oXWrVPGptIW/ExGxmZaAHO/lhTSJZoFJUEn7W60Qz557lIKbyA5pm+POxn18cMt9lWb00fPu8gHfZ+pjqC4jpQ==","signatures":[{"sig":"MEUCIHHnqizrW/L85kVnzLU36wAyfXJTwMBTehgiwWlJzeYPAiEAm09gk1ZwOypcCUTAuRdoIRZ2tmfbdMOPsj2ZyeURs7s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48149553},"engines":{"node":">=18.0.0"},"gitHead":"3865f75716acba6c3864317e9c28a839831015d1","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.25_1784343477187_0.33842337402508305","host":"s3://npm-registry-packages-npm-production"}},"0.6.26":{"name":"switchboard-router","version":"0.6.26","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.26","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"cb6b00a4565ca2d1e9302446161eaf9b50af6f94","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.26.tgz","fileCount":3018,"integrity":"sha512-fj+CIb1XpWiz7gmOBglmy2pCs490IAkqisqpkXogJEDVo55oPmPi/C7ucS5YPprUBqe5L+/p+uJfEGCbaoS29g==","signatures":[{"sig":"MEQCIEvs/JXGZlrZs3Y2gYht8CNS0/prcz0tGnxhHoJeYHVNAiA+bMZeWYg8ztrMakb7nDAwWRcMWEAt5a37jyGWwycdEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48197197},"engines":{"node":">=18.0.0"},"gitHead":"b77540f13bd97b08dcaa16a7fe6f4b8816719517","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.26_1784369967177_0.0008556872099081403","host":"s3://npm-registry-packages-npm-production"}},"0.6.28":{"name":"switchboard-router","version":"0.6.28","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.28","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"07b0b453f4b7c22c521abe8b8028e9324967b79f","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.28.tgz","fileCount":3018,"integrity":"sha512-BkYADWtSMOr81lviutHVAKk8+oB/bUs7N2pXCriaCbCUNYbISUhaLHOQYx5B5aXuZEZ86nXLJtddcxuDcldhSg==","signatures":[{"sig":"MEQCIAtwK62HhOOtStJEqdcRoveA6LgrcHWfrMJv/Z82Q5/BAiAVAfW5Lfc0qHhCKev4X8V65d5Zh1krJ6gjgIkd1SXMCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48197253},"engines":{"node":">=18.0.0"},"gitHead":"75d09fb8475235511582abc5ee378187f22b03c9","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.28_1784548973215_0.430137532261452","host":"s3://npm-registry-packages-npm-production"}},"0.6.30":{"name":"switchboard-router","version":"0.6.30","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.30","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"98789214b0a08cd7fadcc3f477920165b9451119","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.30.tgz","fileCount":3044,"integrity":"sha512-OIETYiKABiNr8K0Jb81xfy2ZCrmT5FjW2fQS/HHbWs/bUMqzIz+q/JmrID2LZYhdOv29vVKe+fNQDppka7nTHw==","signatures":[{"sig":"MEUCIDxtI67rqVQsHSvizPWYC2jKjvfiewgGm1P1BMZBd8eDAiEAltb/W+NczonNOekqXBSkEPl96V8DYaSeHOA/K3z3uWE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48973744},"engines":{"node":">=18.0.0"},"gitHead":"83d26111556b3e439d9d73d8415f197382f49029","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.16.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.30_1786447696066_0.549537443989075","host":"s3://npm-registry-packages-npm-production"}},"0.6.31":{"name":"switchboard-router","version":"0.6.31","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.6.31","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"08c89d28c8787bfa1c5d2b236a5044067246aa8f","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.6.31.tgz","fileCount":3044,"integrity":"sha512-DFOxcs/sCUv4asemFZPfDunL6tmgtC3ZrQzdmgjh/K2JSOrKcOq6Yg89t40qg6/nUmxcZc/HbyLre9GJM56G8A==","signatures":[{"sig":"MEQCIGCaBMSmJauJw8RmNDzJ4Z0158LUKVIrVlgTBwyY/RxpAiAMIIisBIEYemJs/hX8VIiJY+E0wbs7lQZopeF5mG6myw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.6.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48974915},"engines":{"node":">=18.0.0"},"gitHead":"f6059d2d66e41f3385c4a3b52bc83ce5c5ab0bda","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.17.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.6.31_1786967075773_0.29826726711077844","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"switchboard-router","version":"0.8.0","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.8.0","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"803f0a06ee536a0a08bbd7f1aa153ed5099eeb47","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.8.0.tgz","fileCount":3388,"integrity":"sha512-peW1GIVV1JzRArk0RAPzjtRD5SWjxf+w7alZbnRTw6hTLccGhrJeSnMi1z5WhWtJiyDANrS3727CSjvsKd7m5w==","signatures":[{"sig":"MEYCIQCvEEMKxhEMdeeiFcSslq7iXNxGNp0LHwwSmpIPPfHjcQIhAOCAcVMTZeWmDIe5FX8e6/ZBGeEUgcpak5+nVJl950za","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":102851796},"engines":{"node":">=20.9.0"},"gitHead":"0ac61e3654ad546647d56f71e284a3d2268e5e8f","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.17.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.8.0_1787477425778_0.7665785105168004","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"switchboard-router","version":"0.8.1","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.8.1","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"36ee992d31156ccbe457aa4cb20d8d778dd55da3","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.8.1.tgz","fileCount":3388,"integrity":"sha512-8Y23UzHVDaTUB8XZzAQ2q//c6dlFTtE0Yq8CUH9BI15N1OMcpJ7jr6FK+nEFNURxCtkmUR7OZDNRT3UwSST2BQ==","signatures":[{"sig":"MEUCIBDbKGN3yS+Q1aQ993xJIC++pFlNhyu/JYZCqqPJqNXfAiEAgU4hu4we3a7a3nZ1JDozJHHGPK28jNeveSTZGkOinUY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":102852127},"engines":{"node":">=20.9.0"},"gitHead":"1c7e54e5dd3f1f92e275a1f6c3c606e8d2aa7898","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.17.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.8.1_1787482833984_0.9046151154018218","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"switchboard-router","version":"0.9.0","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.0","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"49477d29f05e7e5173128cfbcf3b606a2236e6e0","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.0.tgz","fileCount":3388,"integrity":"sha512-fCAOpluEA+2hkodaCm0WH9e4hhIlYwu8oM0li6738XPlQRtxlG7txZD4xS5B3hYexBxRwsKWrSwC2SV9twGTgQ==","signatures":[{"sig":"MEQCIAwmfU8qfA/kXGL/vyQs+H8DWqA400hJzUh/sMGfxC9eAiAqGnzR7/06SokiP30vyTZiqs36VVGcZb+pGB34vyAfdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":102909130},"engines":{"node":">=20.9.0"},"gitHead":"b3a9e0b0ffb72dbeeedda1b5c508f2b13d4acbef","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.17.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.0_1787490920424_0.1337526482122131","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"switchboard-router","version":"0.9.1","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.1","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"7fb85281a18878e32737ae477276c8f71d1cef00","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.1.tgz","fileCount":3389,"integrity":"sha512-v7SJdsRUWG6CMlK1R1JCewBkaz4xt4gZqSEzSe962N9xtIHDe8pILR1rQrLjKgI4BuVDtPm3bsuM7xOjKMKAjw==","signatures":[{"sig":"MEQCIEy735kS9CHT+rEesYjFpjNtFA3/9dWp0EALNaZHYFxUAiAhKJfZT1ftm8/T+m7H2Xgp6PMO51m3IVpX9jf/nTvd2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":102986286},"engines":{"node":">=20.9.0"},"gitHead":"784e78ad5942eb57f2d18543e5dcca62b751bf40","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.17.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.1_1787786096709_0.1610354681917221","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"switchboard-router","version":"0.9.2","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.2","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"f890ca99127ff3f847929442945b7d9ce100c610","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.2.tgz","fileCount":3389,"integrity":"sha512-+QjRi4g7MlE43208NKt3QgnUySyD1QQ3b3BAOvczz/H9geoCLXVHs+T/K6AOGmfWkKy39AJmZW8D/TNG1KqQYg==","signatures":[{"sig":"MEUCIEyDeyZDymCviCDrVJwFhj/3pbT2u87dJdbqhKkK/4A3AiEAzX0jai23DDtfY2jZ01baHkZ6BHqtBrNMGY4Bs55565o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":102987524},"engines":{"node":">=20.9.0"},"gitHead":"36c903a3b08ec88cbad0b1ec64a85fb718c865d0","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.17.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.2_1787788578718_0.7698539462005627","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"switchboard-router","version":"0.9.3","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.3","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"f78f28c6da6fa17eba771b9999f9f17f270f2476","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.3.tgz","fileCount":3389,"integrity":"sha512-fMIytPilQyQtBGiRX7XLohGtKzeQiQ2pQPnafM2NtnpAJWF/NBOoca9HGzK4DI4DtCz3Ll3SkfIfM8R8gFOB/w==","signatures":[{"sig":"MEUCIQDURJmvq3PC4LggJMd3sOIUBObYUBqlN3UsHxyDKJk+xQIgMYgIaYachmLXtqvBorlBs5zbOVEXXewgXnmUwVvUMKE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103106876},"engines":{"node":">=20.9.0"},"gitHead":"87e825c9d74c2ebf4453e7ab56ea9e25e9c2d5d1","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.17.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.3_1787806553957_0.7386248965256204","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"switchboard-router","version":"0.9.5","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.5","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"6842c08cb3fefd5b8cdfa2c82cb2a414f526919f","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.5.tgz","fileCount":3389,"integrity":"sha512-F0lYXGH6b4O8FL/PoITyG1UqVd46LauyKlMeqWBSvKD9QhU4CKsjPEal11P7p2WPH3CEMw/4bS9ICYENDNvxSg==","signatures":[{"sig":"MEUCIQDglcMazoTTeyrJhTNb9EfL3DYYTJJUCfpdkXdyaLVM6AIgVfbbSS2XrR5x844mJunnftiHOKyTm3GU0UzDnSAhu4A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103153989},"engines":{"node":">=20.9.0"},"gitHead":"ff3576c9b553855e682cd3ec942eebe14ec35085","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.17.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.5_1788096550917_0.27105591479969404","host":"s3://npm-registry-packages-npm-production"}},"0.9.6":{"name":"switchboard-router","version":"0.9.6","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.6","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"fea7cae51c66adec060f27de81963c58fa45ed1f","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.6.tgz","fileCount":3389,"integrity":"sha512-whXMEnKvojzZqvZSK7JWbBHCMuAC7LVLahAWoQkDIy8FiHMQbQfpfkphrynixW7W/dhEPvc/XCG1NVomfoHAuA==","signatures":[{"sig":"MEYCIQD+TC34BmL29YyGdU0XDOkpBQa0UPMGzQdFnkCJPBBHdAIhAKtmUgglWpdYGNAM4m4gSFId9obHLz9rc5M9j5XI254r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103154094},"engines":{"node":">=20.9.0"},"gitHead":"8d2b15e26680b72429f8384fae1656c0522c4729","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.17.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.6_1788099157030_0.9956758717165233","host":"s3://npm-registry-packages-npm-production"}},"0.9.7":{"name":"switchboard-router","version":"0.9.7","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.7","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"d9632fa262d7704d438620a5f34aa72055bfd799","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.7.tgz","fileCount":3389,"integrity":"sha512-TqdJX7ELGZYju5Y3xWf+PEbOne0n3NGAHnqmtyQgr7O8klaRnc74nrj7i2nEO0tic61X6XPP789Wnc6fOJtYUQ==","signatures":[{"sig":"MEUCIQDde1YZrkOlLPnb6DOQwPMMTvcglCUmquIRU3WsGk9C2QIgPRD8dNVoHTUIwwSiuMLKnhKTRGJIbhygHOpLvBza2Rs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103154297},"engines":{"node":">=20.9.0"},"gitHead":"8877469707c35f63a16f0e0841ac4a9592580307","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.17.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.7_1788132294515_0.3160343729229116","host":"s3://npm-registry-packages-npm-production"}},"0.9.8":{"name":"switchboard-router","version":"0.9.8","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.8","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"2f8bdd6f0b2233d92cafa22fb4d7e3d5da93da08","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.8.tgz","fileCount":3389,"integrity":"sha512-GbmCeA+uLRCShp907aKu4sXhr64AWMsHhp0KNExXyXdtBGHRiTfwybt2TLpCOaYIzqOBCx3T7G68sryQ/BoY3w==","signatures":[{"sig":"MEUCIQCWM4ZTh/YyaF7zTVru6fl7HlzTGenbrfvNqkW03m+HKAIga3RjqNcc6vMIifcaglQ8iURUo4namUFK9R371YxQShk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103158971},"engines":{"node":">=20.9.0"},"gitHead":"f3a63a9586836e3eadc6f3a470118e02af1ccb89","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.17.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.8_1788144460594_0.8155439804456746","host":"s3://npm-registry-packages-npm-production"}},"0.9.9":{"name":"switchboard-router","version":"0.9.9","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.9","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"3cd3125c6f5df321fb99b3b223ad22903a638363","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.9.tgz","fileCount":3389,"integrity":"sha512-6q7SHBPePROAagQ7kATEp2fJtQTx27hcZL2K4WVA7zI8Cbj1lXbRXdT5iIq8rXzLhFFK28gdLH4bzz7jPJozlQ==","signatures":[{"sig":"MEQCIFA5rLMeqc6JYGRBIZFJqRmzLrfVCMCXxYRLQaidpC+pAiBK1MEMRHF4MKoMRAtXVkAMMClJQa3WmWp5HP02PBfxCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103162410},"engines":{"node":">=20.9.0"},"gitHead":"e680e5c917877bf76236bd7d101ac880023fa34b","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.17.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.9_1788326795903_0.7346410642884089","host":"s3://npm-registry-packages-npm-production"}},"0.9.10":{"name":"switchboard-router","version":"0.9.10","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.10","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"39c390b22eed243265a9aa0c469d847aaa5af9fd","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.10.tgz","fileCount":3394,"integrity":"sha512-OTCjpkOA9Ykme3iPcVXmAVILmlE/iokpR6wtis11x16YM4DgZ/pW9MMLqbekc+VBXO3tZrvL8QW9y55WLGOW3Q==","signatures":[{"sig":"MEYCIQCSfNeDNo9NUmDXcHXOiSP6+3P+gc6vLvcqPLWT+FPDcAIhAPEI0qIxHVPUzl8/qUeL46U7o9eQzSeg0O/UEzQ5O/bK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103297872},"engines":{"node":">=20.9.0"},"gitHead":"87e33bc9ddc58b6c6c19666acb0c9005b8b11755","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.17.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.10_1788415002785_0.25469292941219046","host":"s3://npm-registry-packages-npm-production"}},"0.9.11":{"name":"switchboard-router","version":"0.9.11","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.11","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"7dac933d1fa5425b7b232cd8f045a7080b6cc2f6","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.11.tgz","fileCount":3403,"integrity":"sha512-gyPHCd4TZ3TDIpWWGf9fNwTeHrNaQXPwMnpYb0Q0aaE7nngMlMlLthbdDBcKL9dzBAlmHln75OReMu2J5eZMZQ==","signatures":[{"sig":"MEUCIQCcDCUyWyTqKSDhvbFbPmll+oz+X/akFRweM21PISjWtwIgLevuEjSH+BWA0QRlw00aZ72xOcNz68II4blrt783m1E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103511601},"engines":{"node":">=20.9.0"},"gitHead":"77566c518f497cc4460bc69940401c3f9b084b6e","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.11_1788487192379_0.15963654905688607","host":"s3://npm-registry-packages-npm-production"}},"0.9.12":{"name":"switchboard-router","version":"0.9.12","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.12","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"defa8bb9ad80fdc8e2a2950cddbca06d357c727b","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.12.tgz","fileCount":3403,"integrity":"sha512-PO4tMu9mxFQ3/FkOO96GP43FzxmIzM7TxBsXU/6op3rU29dze1xrD0aZyQPI2ahS6qyFeWoz6Kv2V9Fmfk3Xjw==","signatures":[{"sig":"MEMCHx4ufVttwQ3nktpkHUOpBufeuB7+46qUYbTOxhVMGUcCIFUsUNDNzruFvjSKOd7LbMdACCtWisq9foohUbMn+8Sh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103511442},"engines":{"node":">=20.9.0"},"gitHead":"981fa648367c14b08a0492f19035ea03c74ca697","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.12_1788652210675_0.46098613370071995","host":"s3://npm-registry-packages-npm-production"}},"0.9.13":{"name":"switchboard-router","version":"0.9.13","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.13","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"b620b4e566392ac57cae5b607b849596f6e5103a","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.13.tgz","fileCount":3403,"integrity":"sha512-pmI+NRhTjUFPUNjNyAha8Uy5I+A6k8v8DvfhzH7xIFh7rvEUsg1z7ah5f1aSxgj3kwS6ZkhvMJ+OKVY4d5zO6Q==","signatures":[{"sig":"MEQCIH9uBwyVPJdXH0Kw4s0qW/SnUNiV6jxVlEjc+f2wulE8AiAtJu7Yq+rQgPvKZQhMcxsXCOuJzT9gC94AV5L3OTJyJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103512915},"engines":{"node":">=20.9.0"},"gitHead":"5da06211a9d23041a46f05e6419ce29ede95f29d","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.13_1788655455512_0.9985497429601939","host":"s3://npm-registry-packages-npm-production"}},"0.9.15":{"name":"switchboard-router","version":"0.9.15","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.15","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"bac42dd8bf032c652a3e5fbb39d752d9429dadca","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.15.tgz","fileCount":3403,"integrity":"sha512-Mfvp9X7s3bghFt+x951BNFK9q4FfKjRI/bPhuQx3Vd4qdPlkkHpg40k8+SDNk5vKoGg2pF22GQxGwVg6BgnISA==","signatures":[{"sig":"MEQCIDci7wgzZU8cGNt13FvpZ6P+JbUk41EWHquxX7b7Lrz1AiAtEyPA2G3G9KYFoeR4SFuxO1giId4xqSoX+FA6DzTrSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103513822},"engines":{"node":">=20.9.0"},"gitHead":"e8004b2fa4abb905736dd85f4b106b989a8892ba","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.15_1788777572970_0.5432160771978234","host":"s3://npm-registry-packages-npm-production"}},"0.9.16":{"name":"switchboard-router","version":"0.9.16","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.16","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"42bf7bd3c56e8919366af6485373e04cf7a475e4","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.16.tgz","fileCount":3403,"integrity":"sha512-ANIATDnQa4MHAwoITBWjx1pse1jbCdotwklDQQQTWPdh6HLm9gW9pSztmBqCvbG1ms8Va+IXmI7G8x/DXbTUwA==","signatures":[{"sig":"MEUCIQC4YKXGFyrskWl87Y+1ZWnAgqGFc2MvYNb7bWry+MDYrQIgFoN/jhdpUoqY6vq7p+Qv+/vCaPKn4ZcVwWwRliFZdYc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103513840},"engines":{"node":">=20.9.0"},"gitHead":"0c29c05def1e4788875ce9a9f94d87c5174a482f","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.16_1788781691754_0.6353903540505825","host":"s3://npm-registry-packages-npm-production"}},"0.9.17":{"name":"switchboard-router","version":"0.9.17","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.17","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"3bccbe47641ed66393e0226892c05bd35ee9ad98","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.17.tgz","fileCount":3403,"integrity":"sha512-/AdUrrwOFYhMfHAoWZok7rOjFcY1QdDWcWoXgPL6+xKeZM36FDUAsVBVrDlc750C9PngrFJLPKiAVhqfhVVcZw==","signatures":[{"sig":"MEUCIDULBvy29ehv1updF0sMZAeT7IkHWjNefm/FoofLUSNsAiEA9DE+94wXMZc81f2fM/O2IgOzFzMP8vZuCl1uEzr6PpI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103514127},"engines":{"node":">=20.9.0"},"gitHead":"769be1c3934a083d4964844b13fb0a2ec72f3c93","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.17_1788787187484_0.6273967124797162","host":"s3://npm-registry-packages-npm-production"}},"0.9.18":{"name":"switchboard-router","version":"0.9.18","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.18","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"4944a09a1a0a4cee75b03589878eb1465946f75d","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.18.tgz","fileCount":3403,"integrity":"sha512-JaLa+QlFXNlYFW/vsrByodBbrYEnBcwRQSSjmibqmG7VdO5kotAcaKCrGCrgPdFmRfLGaoaGk1EEAo5hvL85+w==","signatures":[{"sig":"MEYCIQDnkGycyFHZNaPSrjBckBaAMeyGvd1sHLV0L10BMOAF0AIhAPRG3SaBYbfyNHDj9yB+zb4tEQaMWU+W0p8zbA9uryDw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103514499},"engines":{"node":">=20.9.0"},"gitHead":"fe13806e37174890a5172a0a84cd3087003b0204","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.18_1788793337456_0.041987612614331704","host":"s3://npm-registry-packages-npm-production"}},"0.9.19":{"name":"switchboard-router","version":"0.9.19","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.19","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"39a517938f0718e62e484ff84d51a134508e8ffa","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.19.tgz","fileCount":3403,"integrity":"sha512-2ej51NQA1XrLMYqYCfAAiawI9GLfdOGfGipBtlVisf1rkY2Xi/zPM2KaOR0PnkM8e15AkvVafdsQxey01L80Zw==","signatures":[{"sig":"MEYCIQCkbC/gqb6bYeao7KZs6PA5fly6MvtVZ3Gp0J2AcNDqiQIhAKf/b65+Rz6WFKLKTU0f1Uq2vPFILQG5iHGxCwdtjfnU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103514509},"engines":{"node":">=20.9.0"},"gitHead":"7b4adb397c593386c5f8283c98e032f9299a3f94","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.19_1788793699331_0.5956507769039394","host":"s3://npm-registry-packages-npm-production"}},"0.9.21":{"name":"switchboard-router","version":"0.9.21","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.21","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"2d575470a9b0e4a53ff1f7d158f3ae86609fe885","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.21.tgz","fileCount":3403,"integrity":"sha512-cSXn4DrSo31po4URCyvt+fRfzo2oYobdYPWTHIXTOYw/7/4jZTQDFHdAWWLa6a9kVQgo0n/GSyXIlwR0VnCjzw==","signatures":[{"sig":"MEQCIDSfI7hj32ov58sGLRriYFF0bBZKiHYtMjfgfX5vEqxuAiBR23IwYNPxTVLxrmcYZYKaujQ7Nt2ydo9lK2u4WjR7vw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103516403},"engines":{"node":">=20.9.0"},"gitHead":"3e2657323ac78c83c911a6bfe55e3f7e188f1e93","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.21_1788871773682_0.6642256029765177","host":"s3://npm-registry-packages-npm-production"}},"0.9.24":{"name":"switchboard-router","version":"0.9.24","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.24","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"c6e22aa8cb55357967fcfb6f30582b76c5bf8deb","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.24.tgz","fileCount":3417,"integrity":"sha512-LglQnsXY58dIE23P7Py+zpTbUoboSP6OEUrzAyqbgqhuip5eXNPczFN2uxp9ky3Y7tacHXoiiw06Tcaj0z4q7g==","signatures":[{"sig":"MEYCIQC6C8GPxlkp3GAsEyJhy2+kc3RXfWRi/WXVvjLTbSerOAIhAMqgY3nmnpfHB8QpmKg1b/XDRO3I0tXLIvxh3RdnyHSi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103595627},"engines":{"node":">=20.9.0"},"gitHead":"d6fd6df7fdfda8a876d8f3172120cb3eccddbe80","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","postinstall":"node hooks/postinstall.js","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules by hooks/postinstall.js (and re-checked at runtime by cli.js). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Postinstall fallback downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.24_1788950174110_0.5232145448738779","host":"s3://npm-registry-packages-npm-production"}},"0.9.26":{"name":"switchboard-router","version":"0.9.26","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.26","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"32cea0ebae994c4b66d0a6c20b314a22c339be49","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.26.tgz","fileCount":3417,"integrity":"sha512-6/0ST0FeONGiOaOzOpCM64izdaloRecb17YqbAgKtEKsGrd637GO5hp0JzP1I3tRLBB3WYABLe6g/JS+KMiDrg==","signatures":[{"sig":"MEUCIQCJwFd4iIX2w1syjnfHC82JZ4HHkd/utD1kBjmTcxuRCgIgSoAfi0+RwLSQ/PREL1m7t7I84ijGlfLkr3YV9WRFjMg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103596349},"engines":{"node":">=20.9.0"},"gitHead":"ff4f4d62bfca319876c2e4d28f92eb1c405c361c","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules at runtime by cli.js (hooks/sqliteRuntime, self-healing on every start — the package deliberately ships NO postinstall so npm's allow-scripts guard never fires). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Runtime fallback (cli.js ensureTrayRuntime) downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.26_1788951627646_0.664774400587222","host":"s3://npm-registry-packages-npm-production"}},"0.9.27":{"name":"switchboard-router","version":"0.9.27","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.27","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"6576863730de9e5038ce6b96df83319260487aa5","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.27.tgz","fileCount":3417,"integrity":"sha512-sRieg4h6DRUC0I0yyyo4MHYrS5Jnv2vaqJOQYmZQThzx2HJZf3o2yLI9s9ZWt9p93fuUetkDaGMns0gLx9oUvg==","signatures":[{"sig":"MEYCIQDB4r7qysAfVIoqA5stNuxpGWbPBrRG7n8V0vfk6hJDzwIhAKYxcbCOwK8ZdobIiDQ4OxcxVA9WqWbPOMpY1ZmNRnR9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103597875},"engines":{"node":">=20.9.0"},"gitHead":"91f12aa0557e416ced7e70cede43a170831a3a23","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules at runtime by cli.js (hooks/sqliteRuntime, self-healing on every start — the package deliberately ships NO postinstall so npm's allow-scripts guard never fires). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Runtime fallback (cli.js ensureTrayRuntime) downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.27_1788952566807_0.030454707872811904","host":"s3://npm-registry-packages-npm-production"}},"0.9.28":{"name":"switchboard-router","version":"0.9.28","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.28","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"5d27aec159208a221134c49bf715c4fa5fce9625","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.28.tgz","fileCount":3417,"integrity":"sha512-twOQdKG/PxFANde/cfhQQXBhvY6J9D3qXxVFNJJAraNU50lw03M1YRgOaZPkMaQcW7NbU6j9aBUy4JGLFyvVTA==","signatures":[{"sig":"MEUCIQCjDYgrHFheT8xc+yJZrNKHYQCP2bOKC2vQpQri6wamnAIgEN21DQ3QFhPSELCAZ2KwDwh3upbeMA7bjRSkO0q+FQg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103598153},"engines":{"node":">=20.9.0"},"gitHead":"0e605883b5724a0d426f6b2f5505fdb9ca873cb9","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules at runtime by cli.js (hooks/sqliteRuntime, self-healing on every start — the package deliberately ships NO postinstall so npm's allow-scripts guard never fires). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Runtime fallback (cli.js ensureTrayRuntime) downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.28_1788953722446_0.7274002009824723","host":"s3://npm-registry-packages-npm-production"}},"0.9.29":{"name":"switchboard-router","version":"0.9.29","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.29","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"8c49a5e3d4044ac39d4cde1d93b45df77d9c5d9b","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.29.tgz","fileCount":3417,"integrity":"sha512-2t8cRVbYSjc5qFCLO+54MpzFksZw2ejGSL+fs09TVQgcyL6g2xkqcYX6a3MdJyOWcCN+2oDmF02X51vnFjqNPw==","signatures":[{"sig":"MEYCIQCHTwcXwEB9V/gmLQRr1HkKFTQjG9Sge7CuPjwLpR7xDwIhAJ8+eY94m9R+S9K/EagnPYl1bOgcW4Jowdt9vY3ZLTtl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103598613},"engines":{"node":">=20.9.0"},"gitHead":"22065ed1e289e730bd2c78d91477215ef4f1a3eb","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules at runtime by cli.js (hooks/sqliteRuntime, self-healing on every start — the package deliberately ships NO postinstall so npm's allow-scripts guard never fires). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Runtime fallback (cli.js ensureTrayRuntime) downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.29_1788955913725_0.23825685860332713","host":"s3://npm-registry-packages-npm-production"}},"0.9.30":{"name":"switchboard-router","version":"0.9.30","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.30","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"151038b9a63003c4d68134414004d1311e66698d","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.30.tgz","fileCount":3417,"integrity":"sha512-cc9nk94DJKeYU+xvgTLimjp/2uIaXbfA0yGwzCbzyUO6bEROOpPpPnxfN4jXolyRnDcIMcC5vRgj1PxME2VnXA==","signatures":[{"sig":"MEQCIGF8g3GTgxSbLuUX5HR28Ue9TsC920jbA1+oZk4ruSllAiBfxj6mFYaMkVDNIYiCOETT5jPfAKlmVOyq8QD3BbNZ7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103599701},"engines":{"node":">=20.9.0"},"gitHead":"2d97a1ba8bca523ae18c60ba414deb61581a92c7","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules at runtime by cli.js (hooks/sqliteRuntime, self-healing on every start — the package deliberately ships NO postinstall so npm's allow-scripts guard never fires). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Runtime fallback (cli.js ensureTrayRuntime) downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.30_1788960826344_0.4046594602050164","host":"s3://npm-registry-packages-npm-production"}},"0.9.31":{"name":"switchboard-router","version":"0.9.31","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.31","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"d708fb4efa45deec9acc36f2c7b2deaca9021439","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.31.tgz","fileCount":3417,"integrity":"sha512-e+WG44pXi1HWG8rX5laSf8ra6tHDQko29r/Vy7wD0ZN3pAQyZKMP6klp5NQRM+EjlV2nR+WwUAfIgToqzboXPw==","signatures":[{"sig":"MEUCIGGJVjPhR+PzC22lPTQDdd7P8Cy0uQ3GyRQgK0tfl4/VAiEAslKEMU1DWz2iSSGLNnu46SZNnJbq3BohfMSRJ95sNbU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103610922},"engines":{"node":">=20.9.0"},"gitHead":"107914279ccb6f9b1f7fe0cd2dd62fb1eb0d13ca","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules at runtime by cli.js (hooks/sqliteRuntime, self-healing on every start — the package deliberately ships NO postinstall so npm's allow-scripts guard never fires). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Runtime fallback (cli.js ensureTrayRuntime) downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.31_1788964241146_0.9067299396774318","host":"s3://npm-registry-packages-npm-production"}},"0.9.32":{"name":"switchboard-router","version":"0.9.32","keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","_id":"switchboard-router@0.9.32","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"dist":{"shasum":"435d24c72bc31f52bf6b1363f7410492111147eb","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.32.tgz","fileCount":3421,"integrity":"sha512-I87r/AnA4auV37pKoXDE47a4jP854Iu8E2r1GuU5vbfZeUOBPsbpWBLUCz9+cc2ivqGuyvtJXAQpaWDwa+/Gzg==","signatures":[{"sig":"MEYCIQCoAOup0Q+BnsEgv3UGsd+YKlWe7eK5n1p5gN2OmUuijgIhAKZF6xb/H2NlghZD1Tq1XCMGUcC3Bru8eG4ZZ9KcD0oi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103685996},"engines":{"node":">=20.9.0"},"gitHead":"2e6b03e7bd2d01d2e5c8903f83c8ddff79325efd","scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"repository":{"url":"git+https://github.com/Vijay-Duke/switchboard-router.git","type":"git"},"_npmVersion":"11.19.0","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.7","enquirer":"^2.4.1","react-dom":"^19.2.7","node-forge":"^1.3.3","node-machine-id":"^1.1.12"},"_hasShrinkwrap":false,"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules at runtime by cli.js (hooks/sqliteRuntime, self-healing on every start — the package deliberately ships NO postinstall so npm's allow-scripts guard never fires). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Runtime fallback (cli.js ensureTrayRuntime) downloads from GitHub releases if optionalDeps are skipped.","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"optionalDependencies":{"impit-darwin-x64":"0.14.3","impit-darwin-arm64":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-x64-msvc":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","switchboard-tray-linux-x64":"1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-darwin-arm64":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/switchboard-router_0.9.32_1789040384001_0.39646628956874674","host":"s3://npm-registry-packages-npm-production"}},"0.9.33":{"name":"switchboard-router","version":"0.9.33","description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","bin":{"switchboard":"cli.js","claude-switchboard":"claude-switchboard.js"},"repository":{"type":"git","url":"git+https://github.com/Vijay-Duke/switchboard-router.git"},"homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"scripts":{"dev":"nodemon -I --watch cli.js --watch src --watch hooks --ext js,json cli.js","build":"node scripts/build-cli.js","pack:cli":"npm run build && npm pack --pack-destination ..","publish:cli":"npm run build && npm publish","prepublishOnly":"npm run build"},"dependencies":{"enquirer":"^2.4.1","node-forge":"^1.3.3","node-machine-id":"^1.1.12","react":"^19.2.7","react-dom":"^19.2.7"},"comment_sqlite":"sql.js + better-sqlite3 are NOT bundled here. They are installed into ~/.switchboard/runtime/node_modules at runtime by cli.js (hooks/sqliteRuntime, self-healing on every start — the package deliberately ships NO postinstall so npm's allow-scripts guard never fires). This avoids Windows EBUSY errors when updating the global CLI, since native .node files no longer live under the locked install dir.","comment_systray":"System tray uses platform-specific optionalDependencies (esbuild pattern). npm installs only the matching binary for the user's OS/arch. Windows uses PowerShell NotifyIcon (zero binary). Runtime fallback (cli.js ensureTrayRuntime) downloads from GitHub releases if optionalDeps are skipped.","optionalDependencies":{"impit-darwin-arm64":"0.14.3","impit-darwin-x64":"0.14.3","impit-linux-arm64-gnu":"0.14.3","impit-linux-arm64-musl":"0.14.3","impit-linux-x64-gnu":"0.14.3","impit-linux-x64-musl":"0.14.3","impit-win32-arm64-msvc":"0.14.3","impit-win32-x64-msvc":"0.14.3","switchboard-tray-darwin-arm64":"^1.0.0","switchboard-tray-darwin-x64":"1.0.0","switchboard-tray-linux-x64":"1.0.0"},"engines":{"node":">=20.9.0"},"keywords":["switchboard","cli","proxy","ai","api"],"license":"MIT","devDependencies":{"esbuild":"^0.28.1","nodemon":"^3.1.14"},"gitHead":"a6c73d37d3abe4dfc238e76f7fb4d9c942401fb0","_id":"switchboard-router@0.9.33","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-2KalJo4k3ZN1LFZXz0x8cuHClib5h05J0ySAQvCWTgLYQNZLOl1lJz7PnFUgU6tcaJntjtAxjwaQFSNrvvbCvw==","shasum":"d8cc67c2bd7d3e46ecb575c62873fe9b382ea9fe","tarball":"https://registry.npmjs.org/switchboard-router/-/switchboard-router-0.9.33.tgz","fileCount":3422,"unpackedSize":103710503,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/switchboard-router@0.9.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEME/Jv0hX5Qc09dahEdAcSnNP562JTN59xB1bN1+HDVAiEAuESHWLkBDyjyJgVlNxDscHgPvsS2EXfwLC6YktCdmlk="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5026d28c-cd4b-40d0-b57c-755cf87c780a"}},"directories":{},"maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/switchboard-router_0.9.33_1789043503170_0.21995630576399772"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-09T12:33:19.360Z","modified":"2026-09-10T12:31:44.308Z","0.5.20":"2026-07-09T12:33:19.932Z","0.5.21":"2026-07-09T13:47:40.584Z","0.6.0":"2026-07-13T00:47:38.085Z","0.6.1":"2026-07-13T01:16:23.493Z","0.6.2":"2026-07-13T01:22:41.701Z","0.6.3":"2026-07-13T01:41:39.857Z","0.6.4":"2026-07-13T02:48:23.674Z","0.6.5":"2026-07-13T03:24:25.530Z","0.6.6":"2026-07-13T03:42:32.794Z","0.6.7":"2026-07-13T04:16:20.067Z","0.6.8":"2026-07-13T04:56:33.915Z","0.6.9":"2026-07-13T05:35:19.906Z","0.6.10":"2026-07-13T07:13:46.225Z","0.6.11":"2026-07-13T10:49:50.291Z","0.6.12":"2026-07-13T11:32:40.919Z","0.6.13":"2026-07-13T12:37:02.912Z","0.6.14":"2026-07-13T13:12:36.274Z","0.6.15":"2026-07-13T13:51:23.512Z","0.6.16":"2026-07-14T00:27:17.582Z","0.6.17":"2026-07-14T01:59:52.013Z","0.6.18":"2026-07-15T00:59:32.974Z","0.6.19":"2026-07-15T11:35:28.398Z","0.6.21":"2026-07-15T12:23:43.956Z","0.6.22":"2026-07-17T12:36:48.973Z","0.6.23":"2026-07-18T01:34:14.393Z","0.6.24":"2026-07-18T01:46:19.872Z","0.6.25":"2026-07-18T02:57:57.557Z","0.6.26":"2026-07-18T10:19:27.520Z","0.6.28":"2026-07-20T12:02:53.561Z","0.6.30":"2026-08-11T11:28:16.511Z","0.6.31":"2026-08-17T11:44:36.126Z","0.8.0":"2026-08-23T09:30:26.387Z","0.8.1":"2026-08-23T11:00:34.584Z","0.9.0":"2026-08-23T13:15:21.038Z","0.9.1":"2026-08-26T23:14:57.349Z","0.9.2":"2026-08-26T23:56:19.356Z","0.9.3":"2026-08-27T04:55:54.593Z","0.9.5":"2026-08-30T13:29:11.543Z","0.9.6":"2026-08-30T14:12:37.708Z","0.9.7":"2026-08-30T23:24:55.129Z","0.9.8":"2026-08-31T02:47:41.230Z","0.9.9":"2026-09-02T05:26:36.523Z","0.9.10":"2026-09-03T05:56:43.427Z","0.9.11":"2026-09-04T01:59:52.964Z","0.9.12":"2026-09-05T23:50:11.290Z","0.9.13":"2026-09-06T00:44:16.242Z","0.9.15":"2026-09-07T10:39:33.853Z","0.9.16":"2026-09-07T11:48:12.392Z","0.9.17":"2026-09-07T13:19:48.081Z","0.9.18":"2026-09-07T15:02:18.140Z","0.9.19":"2026-09-07T15:08:19.999Z","0.9.21":"2026-09-08T12:49:34.265Z","0.9.24":"2026-09-09T10:36:14.759Z","0.9.26":"2026-09-09T11:00:28.276Z","0.9.27":"2026-09-09T11:16:07.630Z","0.9.28":"2026-09-09T11:35:23.073Z","0.9.29":"2026-09-09T12:11:54.436Z","0.9.30":"2026-09-09T13:33:47.060Z","0.9.31":"2026-09-09T14:30:41.738Z","0.9.32":"2026-09-10T11:39:44.651Z","0.9.33":"2026-09-10T12:31:43.825Z"},"bugs":{"url":"https://github.com/Vijay-Duke/switchboard-router/issues"},"license":"MIT","homepage":"https://github.com/Vijay-Duke/switchboard-router#readme","keywords":["switchboard","cli","proxy","ai","api"],"repository":{"type":"git","url":"git+https://github.com/Vijay-Duke/switchboard-router.git"},"description":"Switchboard CLI — local AI routing gateway (install: npm i -g switchboard-router; run: switchboard)","maintainers":[{"name":"vijay_duke","email":"Mail@VijayIyengar.com"}],"readme":"# Switchboard CLI\n\nStart and manage the Switchboard server (dashboard + OpenAI-compatible gateway) from the terminal. Optional system tray on macOS/Linux.\n\n## Install (from this monorepo)\n\n```bash\n# From repo root\nnpm run cli:pack\n\n# Or develop the CLI package\ncd cli && npm run dev\n```\n\nPublished package name: **`switchboard-router`** (npm). CLI command: **`switchboard`**.\n\n> Bare name `switchboard` is already taken on npm by an unrelated package — always install **`switchboard-router`**.\n\n```bash\nnpm i -g switchboard-router\nswitchboard\n```\n\n## What it does\n\n- Launches the Next.js dashboard/gateway\n- Stores runtime data under `~/.switchboard` (or `%APPDATA%/switchboard` on Windows)\n- Optional tray icon and autostart helpers\n\nDefault port: **20128**\n\n## Operations\n\n```bash\nswitchboard                 # start with the interface menu\nswitchboard --tray          # start directly in tray mode\nswitchboard status          # show URL, versions, PID, start time, and ownership\nswitchboard stop            # gracefully stop the owned instance\nswitchboard restart         # gracefully stop, then start again\nswitchboard --help          # complete command and option reference\n```\n\nIn an interactive terminal, `Ctrl+C` uses the same graceful shutdown path as\n`switchboard stop`: the tray helper, gateway, MITM helper, and recorded child\nprocesses are stopped before the launcher exits. In tray mode, choose **Quit**.\nIf the tray icon is missing, `switchboard stop` remains available.\n\nStarting Switchboard again is safe. The launcher replaces a verified prior\nSwitchboard instance, including an orphaned bundled `next-server`, but refuses\nto signal an unrelated process that happens to use the same port. Use\n`switchboard status` for the listener PID and recovery guidance.\n\nCommon options:\n\n| Option | Purpose |\n|:--|:--|\n| `-p, --port <port>` | Port from 1 to 65535 (default `20128`) |\n| `-H, --host <host>` | Bind address (default `0.0.0.0` — remote dashboard access; non-local browsers sign in with a gateway API key, non-loopback `/v1` requires an API key. Use `127.0.0.1` for local-only) |\n| `-l, --log` | Stream server output while retaining crash diagnostics |\n| `-t, --tray` | Start with the system-tray control surface |\n| `--skip-update` | Skip the startup update check |\n| `--json` | Machine-readable `status` output |\n\n`--host 0.0.0.0` or `--host ::` is network-exposed and is called out explicitly\nin the terminal. Auto-start is opt-in from the tray menu; simply hiding the app\nto the tray does not enable start-on-boot.\n\nTray/autostart logs on macOS are `/tmp/switchboard.log` and\n`/tmp/switchboard.error.log`. Runtime ownership state is stored under\n`~/.switchboard/runtime/owned-processes.json` (or the configured `DATA_DIR`).\n\n## Related docs\n\n- Product direction: [../SWITCHBOARD.md](../SWITCHBOARD.md)\n- Auto + Learn design: [../docs/switchboard/README.md](../docs/switchboard/README.md)\n- Docker: [../DOCKER.md](../DOCKER.md)\n","readmeFilename":"README.md"}