{"_id":"mcp-rubber-duck","_rev":"63-bd074e70c5e6dd6f7c2538d3befee4a8","name":"mcp-rubber-duck","dist-tags":{"latest":"1.20.8"},"versions":{"1.1.0":{"name":"mcp-rubber-duck","version":"1.1.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.1.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"0e9477b80598cfdf792920c48320b9642c0a2294","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.1.0.tgz","fileCount":184,"integrity":"sha512-cHaaap0B1NClAZy89iJd2Q0sU8S0bL7kZRgI8d+3NJ3mKoGUzaigpGvDrXagxdnoHfCHqphv8LNHM6dDhP2Daw==","signatures":[{"sig":"MEUCIHElGaH1lnM9YP03roXqDYowm1rgKdRr0SKeM5qoYPDhAiEA1hj8M2+SQZcD1hOXwON08IYMIlPUzd/uxgSMnN+6g+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":690595},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"2d2702e773dea4d135b79c5d9b4fae3005b85d7d","mcpName":"io.github.nesquikm.rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.3","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.1.0_1758113647799_0.02247896091329027","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"mcp-rubber-duck","version":"1.1.1","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.1.1","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"467a8efb43955a09e75129210305ca859c328a95","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.1.1.tgz","fileCount":184,"integrity":"sha512-rfDs9VdQhk0ZbDPhDYmLboZxxnmgmEva5D1q8Q9A8pp6Y7I5JjneerOMyTpTaxeUkugkJgGO9jIisuQHBse9RQ==","signatures":[{"sig":"MEYCIQDZEFPLl1aA4/w51TAkKsmMXG9KHyhCEj/9BtkErizB+QIhAKfIrzg1iRDXP9SemWiY3adbqIKOhqwkFnCWutNpQr+1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":692279},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"5ad25f0b7e1d1bb1520053946b9e2018314ce1d1","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.3","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.1.1_1758115347768_0.7933193554884301","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"mcp-rubber-duck","version":"1.2.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.2.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"5d5bf8e54cba704e6066631ea738ad90b1a95c99","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.2.0.tgz","fileCount":185,"integrity":"sha512-jyYB86ucWUvRbqVRck7CuHP/IHTMgmsTDk8XPBSKL4antFm9M4OnOoh/yRrlCxz1gqH1vjwrAq6brGMSg5rJlQ==","signatures":[{"sig":"MEYCIQCubfzUV/USPet9lDQhxt1mDMxJWhrcdI8e+fmjQktsNQIhAO+fgATZ8/uJb2iV5xN0SHgVRv9GL7142rdHqje95Se3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":692794},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"5dbd5f160b3677eef8803c21c926b84997a243c1","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.3","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.2.0_1758116465607_0.6703483226438558","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"mcp-rubber-duck","version":"1.2.1","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.2.1","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"dec7ecbcb0bf4f332ddf4db35b9081ea51e7ca39","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.2.1.tgz","fileCount":185,"integrity":"sha512-XBzotWrpzpup45/pE8i0gE+P48j1Vfj2yk+Snn1RE17I1fK6Vm7Xl+7xLgMqVsldBZZvMB/+GremEfZu4N/V1A==","signatures":[{"sig":"MEQCIHWRXNk/ofiw8dd95axWreHcODQk+sJHeiolAvQ9ySqWAiA6fKOeJ/FQt4bUN2DMkvM6s17s9jgJhnvAu/hlGqJfvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":686634},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"88c02d692ceefcbeb4a7699c17b64d31b61a6322","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.3","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.2.1_1758131506940_0.8736806558730641","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"mcp-rubber-duck","version":"1.2.2","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.2.2","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"094424567a83145811511995df172bb84b3766dc","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.2.2.tgz","fileCount":184,"integrity":"sha512-BZE2MKCMyt8ZuhM/oXATAwC1cVBWr5Yq3JcH2XFTee1/keWJ2M6dKBEDaP1wQybiJndpP9Y7OJc7dTbz7HSa6Q==","signatures":[{"sig":"MEQCIBWlA8vdwmFCo/EBb5ZyX9B71yeBpzWKcLriHaOfnljWAiA5K50SMsg64nXw7tOWLw8OYKO3mxdg42owPncWvB6ePA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":687579},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"b183eae64ec17b47c99288ebe6bb05826840b19a","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.3","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.2.2_1758133329480_0.6159490462416468","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"mcp-rubber-duck","version":"1.2.3","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.2.3","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"9517f97096aeb1e9224043213c407cae77b9f3e7","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.2.3.tgz","fileCount":183,"integrity":"sha512-Gx5jYhdP8lgeuf9aZksS5qenNGXpxOE+knMWOaUDSewwZuJdAEid67j4WhN4hClTZoPV2ylJioh4QMnGFF2nSw==","signatures":[{"sig":"MEUCIBM7ZujifkQTTDWICpVtMb4xuATwRWX/i+/3WuJJDWBWAiEAjSUPOcMVQ8u1TqgjJVqHQWWWuj0khKAFigZ9gGm07qU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":683661},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"c7d83902cb7f6cd73934222b96f23c0bc1da78d2","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"overrides":{"js-yaml":"^4.1.1"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.3","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.2.3_1763365758744_0.07885977230470553","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"mcp-rubber-duck","version":"1.2.4","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.2.4","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"dcfecf2fe8fe86475958a0407c3be2e97fb409d1","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.2.4.tgz","fileCount":183,"integrity":"sha512-9s4LUo5N3XJSBlPxR0xiBrfwF7cV4+4nFU/a1cX4wexlSrrMFWC1Y/wyseZDd2K1mOZF80yC0gTCxtd0cL7+sQ==","signatures":[{"sig":"MEQCIH7CjQFufzpE6s/Tc/riRDHieIPNNldxEWd6MUGAPZluAiBHot/SPRkBudQdw8fjJ0ipuHJQcXnIJLCgwkcSUauAUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":684042},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"ab49449b923771270a578813a9886ebcb93e61bb","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"overrides":{"js-yaml":"^4.1.1"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.3","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.2.4_1763366102841_0.5265113370652739","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"mcp-rubber-duck","version":"1.2.5","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.2.5","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"1f8036dceb0ffc3bfeeaba1f4a28cd23c287425f","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.2.5.tgz","fileCount":183,"integrity":"sha512-/vmzm7AMdfXVPsX81DRks1GmLyXhDurgyhO6YSQS7v39uPjfU//zKeVhB8/1UVVOiXezbRaXccHoBmvP4/fmOg==","signatures":[{"sig":"MEYCIQDEaKFOP9xTtnyPA/NZd8Yks6AYIXLP4XtStY5mhDhWQQIhAMS1mxd8vZsPeaUuPca3qbByBWXF4WLziUEpM+ZSB9XL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":684712},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"13f367b7360c52c4337b8e874f97efeaf787d7e7","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"overrides":{"js-yaml":"^4.1.1"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.4","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.2.5_1763986411347_0.7617613142831372","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"mcp-rubber-duck","version":"1.3.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.3.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"4035286c27e05d0f92e56560a1ce42d21c0acc22","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.3.0.tgz","fileCount":213,"integrity":"sha512-HoWhtWOXO6zeor1FUYbjjPscCIM0YmxUB0ERTksS3Bo0i/UYed3qMXOw4yksRRuSoo1oaP1CT3Lmo5HF6+H3vA==","signatures":[{"sig":"MEYCIQC7cmhnMzkP+VJki9XNV88dG84zPIdzLOSAil9rYNASrQIhAIJLVb0L7rtp28AbNyA3dK2vLzcWtLJ3Vt4DMu+iDX0d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":875457},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"c3d791e1a89522c875d24a7f2748c7f3ad1f41cc","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"overrides":{"js-yaml":"^4.1.1"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.4","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.3.0_1763996328903_0.7294775793725012","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"mcp-rubber-duck","version":"1.4.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.4.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"a82fda1e8e93570417c29d437ceb065625b82e63","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.4.0.tgz","fileCount":214,"integrity":"sha512-FUWMut5UoBjwL7u3e0wiionzPELlK+8xeMSFXkb4i6dwJn7mCrUJTUFC2c60uDaAodLF5RooycLfU7JY1A/tEA==","signatures":[{"sig":"MEUCIQCj8w3FLJyM8TJRnF3O//EXPLxZhrTmyzZckqAaBKpFugIgL7q5J1DTfGYDkdD/p4+P4vUDwQV6IvN+CZEbuYry5gk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7444219},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"780c515ffaa542aa4fb504ded601dc26a915648d","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"overrides":{"js-yaml":"^4.1.1"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.4","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.4.0_1764495865087_0.2176746706569923","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"mcp-rubber-duck","version":"1.4.1","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.4.1","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"beb842c24bc710c8caffec692dce17e7b4198bc4","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.4.1.tgz","fileCount":215,"integrity":"sha512-lZ7dI3Mm8n3TwcXQKrlLjKUqSwXSkCeQtccoVugrsDBY7YkVv6pc5C/19J1907owdiwi4W37gfd4CKn41byPuA==","signatures":[{"sig":"MEYCIQCCAt1hz74j6liq5UUPnjf7kCYixyrZgU6DdZhLgvu7kgIhAINC4R2h4UkNJ3r526IRsJqriIZN9SuHBgF9IgVOdjje","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7444855},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"90fcc22fafc2d54c66c3d95b3e002de8ac3676bd","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"overrides":{"js-yaml":"^4.1.1"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.4","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.24.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.4.1_1765186639660_0.4197703218648503","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"mcp-rubber-duck","version":"1.4.2","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.4.2","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"bd9885718030c358135667ba8ff04edfa9751cc5","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.4.2.tgz","fileCount":215,"integrity":"sha512-9wcb/+XvaKn24BfXBwysZw5DihXqV/ADO0ze5q1jMO1R95eC4eyq3IglveqEg/zES1ZB79Zk+mlg9sYeku82aw==","signatures":[{"sig":"MEUCIQCIjrakov45/twMwuFV056eORekBHtW4yhZRi7JakqRHAIgdD0F5fXrxcNUHhuZQe1zu7kCsjP7YkE9KmD2MXFi43o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7445146},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"ef76359a4596c5223f9ee7089adeeffd9c243b55","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"overrides":{"js-yaml":"^4.1.1"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.4","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.24.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.4.2_1765188079251_0.09430499378956991","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"mcp-rubber-duck","version":"1.5.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.5.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"d6ea7a6aa00ea6c7d1e8b8c6b37043b3157fb12c","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.5.0.tgz","fileCount":219,"integrity":"sha512-t01GGznLb1rt46wM9yXhzcYdfEoW0c3cbPTfAYMoYEssExSIQEDoT4MPcNLDN5xKd4Cmj51i7u1e9Ln37XNIPQ==","signatures":[{"sig":"MEUCIQDN/PTPpwk8JEK73LAH/Psu+yk+Rzt8GghlJkTDSH4hNAIgb0f4oonOh+pM2OD/CFU4f7dHamKoQTbXyx4tQRTQMCU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7460499},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"03e7087473df9d51d3361dab8334f857efb82a91","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"overrides":{"js-yaml":"^4.1.1"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.4","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.24.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.5.0_1765205836493_0.7832698509701121","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"mcp-rubber-duck","version":"1.5.1","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.5.1","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"5c3b0856ff85268e3f032e59d7a5d8265dcb9858","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.5.1.tgz","fileCount":219,"integrity":"sha512-TiPyEvUyORAGoEgEJkrsU9hOPZfrVns/X+tD+pEEEQ1/mbDQKVLV004ek+UvlXo2vTHKT2NYuB70HVBzmkN7Dw==","signatures":[{"sig":"MEUCID2bxXaftzMmhIoW9zyPSY7FidfGoLqEUoTCmssyVHajAiEA4nuo/R188m+Vq3+HTJVcZIm0LvukkqqEZH5/OTN30rE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7461509},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"54b96388077b7b92f8b8c0b546e7994432467961","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"overrides":{"js-yaml":"^4.1.1"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.4","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.24.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.5.1_1767346230212_0.7988427690293216","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"mcp-rubber-duck","version":"1.5.2","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.5.2","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"9ce23a217cff91caf3718b2d758ed4c5953129fb","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.5.2.tgz","fileCount":232,"integrity":"sha512-NaiZyFPVf3JJUZqH5tm1qb5U0373yakOu0ay5zH5MKnfloF4BNlaK1k7rHwW1m9a/HXT8WS99IIF0HxSyoUgBQ==","signatures":[{"sig":"MEYCIQDyiTzhsOeJRlFnjwIseMVAhQoMqWcb4UGzN9Vrr0hL/wIhAMbN+pRnSgx4XWrroS39qZPxk4aBY0iioqFH9pu3kblE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7605624},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"0937719484656a19d4fbeb1cbcf4829895e3885e","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"overrides":{"js-yaml":"^4.1.1"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.4","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.24.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.5.2_1767864512895_0.678656517678589","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"mcp-rubber-duck","version":"1.6.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.6.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"3efb286d1a125916492c0ae00e91b8e4b15541e2","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.6.0.tgz","fileCount":257,"integrity":"sha512-Brn624n+czEL9i868eNZ0MvOh9LN1mMrNUxFifj4upzswO0x9snpDHFokWreTX4t6LNbDwCgdBsnjpUrd8K+VQ==","signatures":[{"sig":"MEUCIQCK9zd9yVEM/RpJ63rjcyvckmZe6LnUpZuEhYWxfKdaawIgaec4+KGjYioaMh7qJ4LN8I0XZpU/zcY57k9VqqpLuYk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7774511},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"4c5a70233a4cce044efb0251038557ff7a31dbdd","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"overrides":{"js-yaml":"^4.1.1"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.4","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.24.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.6.0_1767901083791_0.4568538607723538","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"mcp-rubber-duck","version":"1.6.1","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.6.1","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"fa8922f41cce83db3eca5230c9eed90f31d0c36e","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.6.1.tgz","fileCount":257,"integrity":"sha512-62flerPczDhc4kqrpb3hYjchY2gpeaAzjHOCQc4FRORPW3EpU/WQVRGn+1bUTFTgYT3iNeY4QPh/flesyzGVbQ==","signatures":[{"sig":"MEUCIQD+VgG1oq05dmaQ5e7691KnVEeWItnwh/Cs6TWBa6OA8QIgX6+ZkK791W/JD7zW3RssAcq0QJjGsL9LtJ/hpuGK/1s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7775417},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"98bd961b470d1e5b722e74480fca283ce415e622","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"overrides":{"js-yaml":"^4.1.1"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.4","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.24.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.6.1_1767953173492_0.8119838361557132","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"mcp-rubber-duck","version":"1.7.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.7.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"9bd376f3f125ffaf059a4f669d84603affb2ec7e","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.7.0.tgz","fileCount":258,"integrity":"sha512-f+DQNyh8oDOYUsQENwL2GoFzqdZbZoMbaeZ4NMBdJPjG4GJ92JjSCLsi6Phz5Qzn5l/cOpzNjIBR/YZD0cheOw==","signatures":[{"sig":"MEUCIGBE1WEOvghHxJjlFCTf5LLXHmwqiwrmnmy6EQAEjzKeAiEAgA27yh2wnLTh1ZaIfgOLjrJ7Cu1Gd5e5ud8MeqqYumU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7796877},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"22700c209305c8e8ccd68b97a1527b7d05dbc93c","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"overrides":{"js-yaml":"^4.1.1"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.4","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.24.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.7.0_1768312567420_0.6211563273098448","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"mcp-rubber-duck","version":"1.8.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.8.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"02f57785daf986abb662b612e14fa0d53d31020e","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.8.0.tgz","fileCount":309,"integrity":"sha512-epa17FRfy4ZLwwy+dhQLSP59ajRk1aSnee06mLUhqU2vz8P025GD8sdlLiQk7UFt2ktdUpEehr4MKr5CT+x43Q==","signatures":[{"sig":"MEQCIDdW1365qhWKdRT/2a3vxidu/9DS5nDMg1/choeX2eumAiAf+sW71/WQcrbST6NwFbw2iKKA9Y3IjckN7zSo1W56Fw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7874037},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"a5db46b217f0ad2d6223c413c5df14bbe60278c7","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"overrides":{"js-yaml":"^4.1.1"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.4","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.24.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.8.0_1768395693064_0.735566172227095","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"mcp-rubber-duck","version":"1.9.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.9.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"7350c86479226fb8ee656eb7a0da36092648e6ab","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.9.0.tgz","fileCount":381,"integrity":"sha512-3GP1ZSEXZeNfUFpTOXwE4+Ww8sQoQrBEOeepo7BjWqSmKpyqXl6oG1C/gO/OefYq164Crw2RGLGme9+MEAy9mQ==","signatures":[{"sig":"MEUCIQC+0fVbzHraTUy0R9Pj6aF67WMZg8yb9aLpn26L9JhJJQIgLHMIa45nE5mP0R8RRNxBC0J3ieYWXiPyvrPSLDbi6rk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8261366},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"e2a45fcb6763c16f3c591404ea9dee8d283c39ae","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"nesquikm","email":"drapolyuk@gmail.com"},"overrides":{"js-yaml":"^4.1.1"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"10.9.4","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.24.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.9.0_1768478311740_0.5814755143080421","host":"s3://npm-registry-packages-npm-production"}},"1.9.3":{"name":"mcp-rubber-duck","version":"1.9.3","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.9.3","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"1322aecfef9684d8355b026e952386c4afa05ed0","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.9.3.tgz","fileCount":381,"integrity":"sha512-Ql6CQCJ13Uy4Lgw2p5PPCP3Tov/8WO+QDmFHStLhcAEGX37heGQPrLBrGdk6csjofskAroyODJAZC7XUzfTyEQ==","signatures":[{"sig":"MEUCIQCrQYftyVVa38cYrO5hhFbE6V1fsoG8NpS1CTGd6bEY7gIgYd5vFUcUqUWdusHywhpNcliQl1wUkyren/Zh0PNTmag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.9.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8262830},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"47cd17511c14a80b01a8e73eb42a22e624da41c7","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"js-yaml":"^4.1.1"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.7.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"20.19.6","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@modelcontextprotocol/sdk":"^1.24.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^24.2.8","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.9.3_1768839733764_0.018370901641935555","host":"s3://npm-registry-packages-npm-production"}},"1.9.4":{"name":"mcp-rubber-duck","version":"1.9.4","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.9.4","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"c1eb23f1a35878a927f01d55c97f9c9055b10ff4","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.9.4.tgz","fileCount":383,"integrity":"sha512-AJNAz0rN6Q0OYxEsMYDocHxa8dM9BUohzMChD3RA0/7c/SPGh1/EorR/njhtQZJu6D4req+w7cQOXdkfGhOYEA==","signatures":[{"sig":"MEQCICZg81k3knEd6JfKrGtt2eXA631Woe6XPlo4cjrmC/n7AiB5k2FBPin+od+4nSq+f2suo5KuKNXeukEep/7KFEGwLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.9.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8263867},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"79a4ab31cff569552568e361ee0e0ec38d4a5665","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.8.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.9.4_1769435988088_0.3264906798626479","host":"s3://npm-registry-packages-npm-production"}},"1.9.5":{"name":"mcp-rubber-duck","version":"1.9.5","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.9.5","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"176bab63f48e65b5eebe05fcc8e2cd085bc4d102","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.9.5.tgz","fileCount":383,"integrity":"sha512-Z/hiJXjqcmrsCXYf2cNHumNK3M7KPnt0l1nX1KUzOfrqbVa1VpyuG+tl1aopMewbm4lpboMYM4iv9kU5W5LKPA==","signatures":[{"sig":"MEUCIQCY8vyaxAbSXf4LsMqnw9J6/BkhaVY+NIkrDljGpR1SbwIgYdQrnWO2aMvxvq3L+1G/iPFn+tmHd8MbBjwVQka9o68=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.9.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8265385},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"b4a755ca70e7a11338c8b8be695165eb786d88fe","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.8.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.9.5_1769698912081_0.15720502036164552","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"mcp-rubber-duck","version":"1.10.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.10.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"f832384a4d633c7fd20d3c77fe8d9fce1a32edb6","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.10.0.tgz","fileCount":405,"integrity":"sha512-u/AZLjOi6RE0ZkGuUbisq4oD2EyI9DQE32smE69Eh7zS6k1yfPMreF6fnHPf3nb6qiBaqpWyiV5Tm6ca4Pnwaw==","signatures":[{"sig":"MEUCIQDIaPBsJRbh4j7aFSqvI83S0UXt1LlN5sJMDc9Ag2ndNAIgKSAiJCTFZHLaB9eUGPGnpxU0JtdFAhvg+ZTSO5vqRrs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10613803},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"7ae45d01aa7e0958c294f48b9c94986e19fa0a4a","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.8.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.10.0_1769706165198_0.9667410651930279","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"mcp-rubber-duck","version":"1.11.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.11.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"d4c3ed9f9fa8477d67dd92b712e350d7c16eb8bc","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.11.0.tgz","fileCount":417,"integrity":"sha512-tGwIiFW7BgZOuefAMt2TzrbY0n3N6cPHJ9CtOlUvx4f2Z32N8dBNd94qhjtCCDPaixZKL7EOZn7VFB5M4VwF6A==","signatures":[{"sig":"MEUCICvL+/cESWZmGVVmHs7aVSdiYZTWq8SVKCBdgRJ1etcBAiEAjNrBMYLivMcAZFnq6zX0DH/YWxxOe1F6qEHVZh8u/4g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10697849},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"21ebbcb36fc450d67fa3dedc9db3c71b7a36f165","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.8.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.11.0_1769788722226_0.3393555259613197","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"mcp-rubber-duck","version":"1.12.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.12.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"6135a6458e5f4acbdb333fe52d88c7777fb8c81a","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.12.0.tgz","fileCount":447,"integrity":"sha512-7ie7QCBm8OjZD6weZQO3Rll4QJ9J8uAm+O/k2fjd2GXDTLJ+WDRPhpf9uk+zeQ0my8a9wslsXEMdYMeoFQmmUw==","signatures":[{"sig":"MEUCIQCJvgxyvgmUOpoRJnYG8UQqGjpRUREf968GXMMYYv/eXwIgM4DaSqaPSiA0JaxIOlx2qdn4D1zOEQtB+lhCqBG2Zl4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10876284},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"13dbec2264ecf3aa31989dbc944478be2bf01770","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.8.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.12.0_1770106218205_0.8445389474811902","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"mcp-rubber-duck","version":"1.13.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.13.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"c1faf0033925842db7932e4c7100f4ff5e600ad5","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.13.0.tgz","fileCount":446,"integrity":"sha512-FXge6605MVF17qCCWcHlpCF/w6n9Egs6Ixb8nkCbf6DAaEyKOZeXtpG0pIpOGM5TwYtNwrHqNbs9qKq/N/UlnA==","signatures":[{"sig":"MEYCIQDWGJIw0WBDwcATnvl/O/r+rZtPKP5DWKYMisi7zuQT0AIhAOpGpMNDjmONqDI4nSw730ALSKMNS+jIpv00Fiy2GE27","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10873215},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"7f2964f8d0f56fc6e55b92a40929755c5800a257","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.9.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","node-cache":"^5.1.2","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.13.0_1770302093116_0.5943011097720652","host":"s3://npm-registry-packages-npm-production"}},"1.13.1":{"name":"mcp-rubber-duck","version":"1.13.1","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.13.1","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"cd6a4b15d5b292129598f08ec69b52fe7b01082b","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.13.1.tgz","fileCount":441,"integrity":"sha512-YPrlyENl17MhJW9g4sCQgjnDdmyRkPLlHmmxwwZCliG7pP2i3e1rWhkk6fxIH+YDqSPAvzpdie04GQzrb593TQ==","signatures":[{"sig":"MEYCIQC3TLtuI33jXJ1CK9DheBwEtRTwnD3VFVeOzJw7BmGnxwIhAMef3Cfif9c4Jw8/fJ0m3vW/bCVWL4vS3kEvKmEcasAS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10855559},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"0fc67745417e6c638e18953f7e7f701efd3a06b4","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.9.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.13.1_1770383548715_0.31673450815449034","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"mcp-rubber-duck","version":"1.14.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.14.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"9ea4129fa0aa2d261e1a87cb911ee9162ec4fdd5","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.14.0.tgz","fileCount":474,"integrity":"sha512-/XQ2mJylPP6QQ50w1xoUZQJz4UqGmdmyqVOVWE5u9OIA+wLIRZ+kTpYXcUj0+mo6468GUdTVPoyLBS4AMtiFCg==","signatures":[{"sig":"MEQCIGNtKZSpt1jpuWU3tVUXX60QVHlxVzRdd6Y0/X2PcDr4AiBtea45VL3oGWyPisDWqVMO5Au2pf3tbjeTsfO9mz9uYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7887945},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"65c959b48abcbb557f418c70aae9c036d77b0df5","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.9.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.14.0_1770547035747_0.34262146734679844","host":"s3://npm-registry-packages-npm-production"}},"1.14.1":{"name":"mcp-rubber-duck","version":"1.14.1","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.14.1","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"d6a5d19fe13742612bd02d8065d227b64213c037","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.14.1.tgz","fileCount":475,"integrity":"sha512-fx29gOQn3dLD11EwDJkfGfj/o3kQ+Bqqc9OedVL4D7e8x3jrDwCSL5M9UpKRqUs5LolBGVVQZl+hgllpaWLHow==","signatures":[{"sig":"MEQCIDWzTiA+kAJrIlBn6Dimb5Kjs/ifaiK1TJ5TeFTIV69KAiB5IMWfKjPXGMEmMuj/j+1vVh4po3w2XjdQ5eQ8AIpNSg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7947857},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"def12156082e74c780b337a4787444abe6a2c94e","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.10.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.14.1_1770990958340_0.17624621101829385","host":"s3://npm-registry-packages-npm-production"}},"1.14.2":{"name":"mcp-rubber-duck","version":"1.14.2","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.14.2","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"cd0b6f700b6408968e05bee58473e814425952f2","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.14.2.tgz","fileCount":475,"integrity":"sha512-P1HTLAjLYW78OL7wmgjGCKvuEdh8YV1gINyl6+v2edqoHVwdvLV0DmQcJm9OoepU/YL9rly4SFbBk8XWCDjHBA==","signatures":[{"sig":"MEUCIQD/sJLPaLoaRROswjC420zS+nvsedtGs2Yy3X33JbnPDwIgXG+rh0Bj4JIjIv0RCeH3CjgubC/qZhEmnKrJV3zhf+o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.14.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7950083},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"aab825dddf975256ebe90e0e04849a922698841e","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src --ext .ts","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.10.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^8.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@typescript-eslint/parser":"^6.0.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.14.2_1771424050700_0.8805584516430074","host":"s3://npm-registry-packages-npm-production"}},"1.14.3":{"name":"mcp-rubber-duck","version":"1.14.3","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.14.3","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"a4b410e6bfaf9af6b2162dbf11ad7ac680946645","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.14.3.tgz","fileCount":475,"integrity":"sha512-Tg+PLHqdd/Wc+zaFe4HmbH9NGvDgyPlbYzK4l6Sln6EYrbS0HNBtGCvumcxdtVhTgwkcehpcZPGLqLzfaoev5A==","signatures":[{"sig":"MEUCIBPusU9+Fn0aIn+Wgn5E4R1e1qluxk6ZI6UfJzMxZtIGAiEAzyM3Gp0HnGHbOWsmpZRsEJ3/zrza1YiKw5TG4RU2FMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.14.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7956688},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"fdfa7da88f804950648deb0aaafbe34ce2f45c16","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.10.1","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.14.3_1771855401624_0.042432764616465724","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"mcp-rubber-duck","version":"1.15.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.15.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"4616c37b4b3396f41d03d4c53ccc0bd32f9a6943","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.15.0.tgz","fileCount":476,"integrity":"sha512-D3PhqKGS19Z5eMlue6wNIF2KHEUKv7dpguA1BqRAm/+Ifn3sCGeBcR7xRQ4MBj9hRW6vSFl64jrl619PGQwsBA==","signatures":[{"sig":"MEUCICyY3JnC+a/H9+4z8pUBBYTp5r9doGGjFqMJtMGdmypeAiEAy10PWBqSliavN+y0SR0v3EI5WoXy8mW9ivuApOsxg6c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7987235},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"d80966a7ec9634d9f38d13538d4034454ebd9a94","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.11.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.15.0_1772115304157_0.512681406886887","host":"s3://npm-registry-packages-npm-production"}},"1.15.1":{"name":"mcp-rubber-duck","version":"1.15.1","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.15.1","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"2d87b64eb4e8ffaa2f4f41a4e6b0fd3ef33c4e81","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.15.1.tgz","fileCount":476,"integrity":"sha512-L54w3KoBbfOZlh1dEDuVZnup7ALETJDzbcHNe8vHTdj8bYawJFknGa81HgE8rx2V2qI7WmXHiOJFjt/vErNUhg==","signatures":[{"sig":"MEUCIA87lyZNN++ViqqQsV5alGbr6BqYUUf/PiK/zy4PbObJAiEAuNwzvpnsHu1Y28EFBs1QsDvFuzbDL5Ccu/QJBrOulTg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7987603},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"adc2e50247a729862b3f1528921a846204ebb73c","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.11.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.15.1_1772466492950_0.3922733551879647","host":"s3://npm-registry-packages-npm-production"}},"1.15.2":{"name":"mcp-rubber-duck","version":"1.15.2","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.15.2","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"307519a0c8b70bd87bbffb2ce649f702d15aeae7","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.15.2.tgz","fileCount":476,"integrity":"sha512-fBZZAZ6fHyg4xNn1Hu1fjcknK22RE+dT+IGfmwqfnKw3mA2TvRZKl9B8Db2RWuEzl018+1LDXX2zYaVUH5CH2A==","signatures":[{"sig":"MEUCIDujA+tsBt507XcYfmVVk/J5jw92Z+/tU4vryNSqJfL+AiEArZua7vGx+xsFjgRsiU8t+XTzQ+P1yurTdQwpF+qDwKk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.15.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7993604},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"73c79431675b8d1522a53cc95502c3bf91541cef","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.11.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.15.2_1772697605518_0.6436821010897729","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"mcp-rubber-duck","version":"1.16.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.16.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"97866383aa3a5daed18173fd0c80cfc882a46e3e","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.16.0.tgz","fileCount":477,"integrity":"sha512-9Da+KF9g2DeqeNw8aqK3JRF7N7hVHzebcl0ojGQyZF+UiAlWWLh6Y+ZU+hbpukAOHSmWA+ipDVKuYxiOH8ApDQ==","signatures":[{"sig":"MEQCIHNs8AF6BPecGF/rfFk2O4j25kc0FIBUMUY9O0e8RbVRAiBdAnMOIB6aeAbxEsbhftGV1l8AzNlhuo8CgnoEHgQMuA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8036768},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"bfa16c54658714a32b5dd143ebb6c2a1ca0a57bd","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.11.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.16.0_1772811432369_0.3585122200902644","host":"s3://npm-registry-packages-npm-production"}},"1.16.1":{"name":"mcp-rubber-duck","version":"1.16.1","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.16.1","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"d4fca085ccb0e7929f95d5b47a04a7e8bcd76d53","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.16.1.tgz","fileCount":477,"integrity":"sha512-J90C5gm49PXdh5FTUWZlsdexzaxNA0cCSzIavrIJMn40Gn+JBRFSw1Oz4rJLi/L40xsbP7dC3Bt1nFHw50C/yA==","signatures":[{"sig":"MEUCIAm7mze/ek3U3X2bfC4FLMU9wU5yIDPTQa1E4XPpm4NjAiEAyL6OsSaSJ8aO7htkk8AWuabPpTdL1xO6Md7+ohyGBYQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.16.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8037321},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"c09936eea980febc8bae959002153b99d90cf934","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.11.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.16.1_1773066907753_0.4253135290918013","host":"s3://npm-registry-packages-npm-production"}},"1.16.2":{"name":"mcp-rubber-duck","version":"1.16.2","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.16.2","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"ba524471a0654f4582e6fccb05b56e220b2c456a","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.16.2.tgz","fileCount":477,"integrity":"sha512-z3vDXWcDpUD/AGp+rq2MBgUnJlshsvbegK0d+a3mfYYS5wNh0FwehQxnA77QfeEH2jY6V4gjtQbVxVPHaIiYOQ==","signatures":[{"sig":"MEQCIGAIfdp16wrG7Erm2cPCOVo6tpVzl1N3kJXlgsR7ewgAAiBDR0n0JAhSbp0pMRJERjNN+qMLOo4KeXd0m0oNLhSMbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.16.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8037574},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"942a7b5e08ef05a27d112efe4075eb966dd4fe70","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.11.1","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.16.2_1773683794244_0.29206628106508403","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"mcp-rubber-duck","version":"1.17.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.17.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"30eac3de9f55d9ee2e61996d14c2e1cf16e7a7ae","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.17.0.tgz","fileCount":481,"integrity":"sha512-eTL3HT/jv7+HF149iiv1PtNsrOn4YXiwbN0/gzEQFVbxsCHuMOIy6P5xVZvdPNawxuSDvxw7tJ4hJASAVPnvbg==","signatures":[{"sig":"MEYCIQCPLC1V/eH7KQ8/sE7rfzJUGJJsyXVROZUGS3t9S7dEpgIhAIvrj35LMsENL9B+X0bUpCtQEX9FrfNhthK51m7C5/iK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8054627},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"44f9ce55045e4bef724e2454a8effc03fb1e82fd","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.11.1","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.17.0_1773732026760_0.8114403678178186","host":"s3://npm-registry-packages-npm-production"}},"1.17.1":{"name":"mcp-rubber-duck","version":"1.17.1","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.17.1","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"b670e0e4fecd3473fc5b0646c2533eefbf0dbd66","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.17.1.tgz","fileCount":481,"integrity":"sha512-VHWqioZ1sK2KV/itDr4+y517kTW346YdkfJ/vQKbtQjVECBlG3Q46urs4pkSOySWoPmssFj8Ux0o9h9dlyV4aw==","signatures":[{"sig":"MEUCIB1N5CFcxnO02TA0y+uNvBUxewof7LZEq4BWjvbToCRPAiEAlYoFaVd2tKtgFjARTYrQxtnJXkNmL7jTMaPiD3/fRBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.17.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8055294},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"ef0efc73cadc8a83ebad1444babe2a40a96efac4","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.12.1","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.24.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.17.1_1774870769856_0.6968095523383546","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"mcp-rubber-duck","version":"1.18.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.18.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"3db2479e619e2c3b38f880b7ae14c527bdc8e3f5","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.18.0.tgz","fileCount":478,"integrity":"sha512-ZppelpY8GZAuGZ0nu8ycWBYDohDngGwvlntd25pWifi780UcRZv7X1bySasuf0V2ccSHlOY/aA5qGDU4XD3q8A==","signatures":[{"sig":"MEUCIQDOmP0z24otAWV6KlKkNWLbOiVLG+8fLX7JNUBCHOaCTgIgKpz57tjr4dOt8Pg8hVQVSiiu5XVL9HCCKX+LtU0zzMY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8064094},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"482e3bfc8ded2acad2265f93762dda1c82f71ceb","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.12.1","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.18.0_1775217759624_0.3000261335394614","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"mcp-rubber-duck","version":"1.19.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.19.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"a5eb99317dc15426151074ca0c5f535217cb29cc","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.19.0.tgz","fileCount":479,"integrity":"sha512-HYGvdl9ccdvYypvDDRu7NzdtxmQhweoS4uMjeB4PV7Q0MtmzqbJK7kRUPj69MAp/KooP5gFr+be5nkBmWlSiAw==","signatures":[{"sig":"MEYCIQChya1ztusaDY8PjjgeWeKTy56VPI4W00o+6yIBf7nLWgIhAJoae+HSJfIo+1Hl8EODjcSswA+khGYBG8+BoiPdRQQz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8075411},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"e9ec24604028e4aff22e3bafa5b056ac7c4a7ecd","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.11.1","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.19.0_1775561146022_0.04155825684593539","host":"s3://npm-registry-packages-npm-production"}},"1.19.1":{"name":"mcp-rubber-duck","version":"1.19.1","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.19.1","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"3b8227dfcd7d23faccd75c2fea140e5367a92676","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.19.1.tgz","fileCount":479,"integrity":"sha512-SH02vf+4VaQWECJ2myGUNCWyNxtqHvmBcasUmcF0e2jTwNruhRO95xcw4Uh7MGIEk4rDInmS86Y4X6YyE6jTPg==","signatures":[{"sig":"MEYCIQDlzc3dorbmoCg6FLo4fV2GPtI051XAypLrGWpP+DuwggIhAJ4Ruo0Q5I/w1LJt9SbFNwqs0YeLd6vrUXtzPlNxTZAE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.19.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8082213},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"6e3ca2bd383755500e105a13100a8cc03f96e1a3","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.11.1","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.19.1_1775902148391_0.06050234731747084","host":"s3://npm-registry-packages-npm-production"}},"1.19.2":{"name":"mcp-rubber-duck","version":"1.19.2","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.19.2","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"653ddb0d6532a9c5553101803ed7a30664c69b38","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.19.2.tgz","fileCount":479,"integrity":"sha512-BQZfujUGeOlN6vNR+iK+9X2vWhnIUWGPYyRg0k3X44oKVnw7zhFPB0UjeS7m9aV/yPudawUvkSqdUIRo3JSAyw==","signatures":[{"sig":"MEYCIQD+YpxsAgD1ETnERpJbI4mQ3MZBrWeoqhFryhVL1iCG1AIhAOdsT5jfhTpqnZyfsyplg/VlIkdP3U42iZLDtqG1N6Ql","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.19.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8085216},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"3cacb521ac6d4628a1035f37fd8db53ff7c1c186","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.11.1","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.19.2_1776583854290_0.7391016230502925","host":"s3://npm-registry-packages-npm-production"}},"1.19.3":{"name":"mcp-rubber-duck","version":"1.19.3","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.19.3","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"2e34b6dce23174f16f5fa8fdd6efb366c2a5b62d","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.19.3.tgz","fileCount":479,"integrity":"sha512-wgOFrtA/X0UXNurfg+1vVq1R9of3vnv+yP3hXdRLpfclyQlFxBHy2gM2r1TqSm9MsBWxUU730yxJBpErBM0zcg==","signatures":[{"sig":"MEYCIQDwhkRrBdN3K3ilwCSbA+jCAwJeYjB+ZgrK5CNkAiKjDAIhAM6uc5iJLCRLHDkkY0tkUuZplGk7OK53pDUXtQ+FuTm3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.19.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8085479},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"275104598c96344c31fe659c40ff929fec552099","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.11.1","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.19.3_1777277175540_0.815457468622883","host":"s3://npm-registry-packages-npm-production"}},"1.19.4":{"name":"mcp-rubber-duck","version":"1.19.4","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.19.4","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"be60ae9d5ca27d31a3d6d8befba328aae290b5da","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.19.4.tgz","fileCount":479,"integrity":"sha512-kstB5VnobkjgipbMmp9DG+yp+pkbltp1d+LVpij20MOQ6L3U93qhHnRpi1YxNdDeQDaBfsxsyRfeehVpwtfXmQ==","signatures":[{"sig":"MEYCIQDvq03mKdbJtMomPTZncpVDeLBlcYV95sirgojJRCHNOQIhAPaT4OEIDorgXKqbBgyqajVgoPlXVsynglL6HqsoM8M2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.19.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8088037},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"97fe57162096dcc79762aa323f2370d2afe76978","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"lodash":"^4.17.23","js-yaml":"^4.1.1","lodash-es":"^4.17.23"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.11.1","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.19.4_1777284435139_0.020389863432295208","host":"s3://npm-registry-packages-npm-production"}},"1.19.5":{"name":"mcp-rubber-duck","version":"1.19.5","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.19.5","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"69ffa3b66d8545bb435ce5a3456e069604b65ad5","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.19.5.tgz","fileCount":479,"integrity":"sha512-OXhFySnaUHUU0zkmnZseTOVS0MzJBJ0jZJnk6J5nIkflvj7ZVC/YZTVORlrim1dWtOMvO2Ewi196Aw80va5Amw==","signatures":[{"sig":"MEQCIFshQf+tCczGfICnAT5tthF+jIA38g5ALxBqs9drlHVqAiB9jvE4cMEnqKx3mPCjEgvzVYpapiakAf1bUw9pH52z1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.19.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8088617},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"69f01988778b60c9931a52e024e6908da0c998b7","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"npm":"^11.14.1","hono":"^4.12.18","lodash":"^4.17.23","js-yaml":"^4.1.1","fast-uri":"^3.1.2","lodash-es":"^4.17.23","ip-address":"^10.2.0"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.14.1","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.19.5_1778485833669_0.35175994946851463","host":"s3://npm-registry-packages-npm-production"}},"1.19.6":{"name":"mcp-rubber-duck","version":"1.19.6","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.19.6","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"fac6cbde0e24e8dce8cea0c2ffddb061f55931cb","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.19.6.tgz","fileCount":479,"integrity":"sha512-5OyZp85DWX7StVzod3GA19DRyAOUne3/vAKB65QSfLigIlFaqiQg8LFYOXnaz3yQfz/y6dFC/8QGTmq21CKTFQ==","signatures":[{"sig":"MEYCIQCc5saGY09dIwx4Tj0mH6d64/LWzbI/MjbPsR43Om4RiAIhALIUVEPyh4aVNWUB81TjWu4j7IbrCDhbbG1ae7r8TaXg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.19.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8090626},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"eb05a0f8f347a39d40e7ad601326a3e2e84e2ea7","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"npm":"^11.14.1","hono":"^4.12.18","lodash":"^4.17.23","js-yaml":"^4.1.1","fast-uri":"^3.1.2","lodash-es":"^4.17.23","ip-address":"^10.2.0"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.14.1","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.19.6_1778829914997_0.9227529336176197","host":"s3://npm-registry-packages-npm-production"}},"1.19.7":{"name":"mcp-rubber-duck","version":"1.19.7","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.19.7","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"c172864e5866f068ba878646fce114c3ce7b44ca","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.19.7.tgz","fileCount":479,"integrity":"sha512-YBPRLB2rhW3/rznuT/a4hcudiHTrKcKLHdE5tK1U2Qez2uJvBRDXjfPavR+Qgb+KL6WlO6b+ZXr6ZwmzKAps4w==","signatures":[{"sig":"MEYCIQC8I5POHiIpkLMat6dD7TCtkN7pvAPGj/ddLXlEwyavogIhAKdZhpT68VpVviSpM8rHLT6z2Fc+VLjsaamS162pv6Qj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.19.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8092272},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"a09acfeeae59425582527b65bce9fe33e6693942","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"qs":"^6.15.2","npm":"^11.16.0","hono":"^4.12.23","lodash":"^4.17.23","js-yaml":"^4.1.1","fast-uri":"^3.1.2","lodash-es":"^4.17.23","ip-address":"^10.2.0"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.16.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^7.3.1","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.19.7_1780647200073_0.8992524210837058","host":"s3://npm-registry-packages-npm-production"}},"1.19.8":{"name":"mcp-rubber-duck","version":"1.19.8","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.19.8","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"e1eb7d421c83be6afb658566fe44ac1dff1ebbbd","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.19.8.tgz","fileCount":479,"integrity":"sha512-4VFKR7xjHSuCkCLVNaD7aer5XIOLk1LtzKLQS3bNWWfdOTOYf+ttrnAJPXIpu1JlT79ZdrimuZIIeMNCj3N/4w==","signatures":[{"sig":"MEMCIEFIiXb37Eg8jEn6tiT4miioWA/VBUZ84pd6fQldEqaSAh8uXWLMzgwADpmdy9cfNTIZaj+04vin3XNhmCspcODC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.19.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8084820},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"8555d5e6f8cd70e92a4273c131f72e05a04bc005","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"qs":"^6.15.2","npm":"^11.16.0","hono":"^4.12.23","lodash":"^4.17.23","js-yaml":"^4.1.1","fast-uri":"^3.1.2","lodash-es":"^4.17.23","ip-address":"^10.2.0"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.16.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^8.0.16","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.19.8_1781511732664_0.4300845153851387","host":"s3://npm-registry-packages-npm-production"}},"1.19.9":{"name":"mcp-rubber-duck","version":"1.19.9","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.19.9","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"929d848264edcd53ed711fe5f09cd3dcd5b6251c","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.19.9.tgz","fileCount":479,"integrity":"sha512-yx2Mcg00042apiRKoVshx0hpB5BPKMwCyOBwfcA1PgHTeEIZz3wserXBNOce5T58adr1If4wrxSfJlN50A+GgA==","signatures":[{"sig":"MEYCIQCecpwZUJaICe5iQrLurot3pX+4BOAbdrWzOGd37OA9QgIhANIdBGX0nOWU1iyY+yaEQqs44uw1rme107jqphvCzafW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.19.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8085265},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"41ef7a5e10c4b31a09a3a0724877aa538972e02b","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"qs":"^6.15.2","npm":"^11.16.0","hono":"^4.12.23","lodash":"^4.17.23","js-yaml":"^4.1.1","fast-uri":"^3.1.2","lodash-es":"^4.17.23","ip-address":"^10.2.0"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.16.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^8.0.16","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.19.9_1781513481471_0.8544500125265495","host":"s3://npm-registry-packages-npm-production"}},"1.19.10":{"name":"mcp-rubber-duck","version":"1.19.10","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.19.10","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"6e0a79d273b4aba168b505912856832388be0d3c","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.19.10.tgz","fileCount":492,"integrity":"sha512-GdW71JavEUAHrXDTQKcXTisbmWpkTyDrdl+8aAsCsECGiawRIIsNj7Q2bzG6/bc3Z252Cvaq0zRNx23lMGVb7g==","signatures":[{"sig":"MEUCIHCDVVjxz954CbfD/04UU6Zo2MPjak21kMx499M5ZV8QAiEAqQLrIKrLFryH0Ph8gLKv0umyHnhVoQQpyy/svb70fFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.19.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8125067},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"6ffe79ce1ef740f019d0a07eb71fbe2b40f17a8e","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"qs":"^6.15.2","npm":"^11.16.0","hono":"^4.12.23","lodash":"^4.17.23","js-yaml":"^4.1.1","fast-uri":"^3.1.2","lodash-es":"^4.17.23","ip-address":"^10.2.0"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.17.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^8.0.16","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.19.10_1781620932949_0.13134722848583413","host":"s3://npm-registry-packages-npm-production"}},"1.19.11":{"name":"mcp-rubber-duck","version":"1.19.11","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.19.11","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"51b13ce324b9e15190277952c3fc5dc26028e18a","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.19.11.tgz","fileCount":492,"integrity":"sha512-27jWivYqDh8l+CgvynJx6v7xsh4Hgm6xK3rtdzBncTnNg3Jm668Mxsk89Qx0o7uts65uXQlxRkApRA/lsCYyew==","signatures":[{"sig":"MEYCIQDsIB0w2TJMLmcfWERV4fLex7sRRZpFlk5cbMPDfmyFIwIhAPL96ihEQh2I4eEiZl94ql8kqLnlfYbd4dPWOiZ9mBHu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.19.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8125305},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"37a35c2caef1fd978ee4a4947f77e72d00f795e2","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"qs":"^6.15.2","npm":"^11.16.0","hono":"^4.12.23","lodash":"^4.17.23","js-yaml":"^4.1.1","fast-uri":"^3.1.2","lodash-es":"^4.17.23","ip-address":"^10.2.0"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.17.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@semantic-release/npm":"^13.1.3","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^8.0.16","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.19.11_1782117462867_0.929803815681131","host":"s3://npm-registry-packages-npm-production"}},"1.19.12":{"name":"mcp-rubber-duck","version":"1.19.12","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.19.12","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"4ff62e1e6ffc8d6f6671679bbbb29d4efd90bb6a","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.19.12.tgz","fileCount":493,"integrity":"sha512-C++L1hraBnJeJab9PtIx8H27O6Wxg0wE5RXOETcDZnZZbWp6SRGQ/yftWjNLL2qmeKDhJDUPKZuZfbl8BzNW6g==","signatures":[{"sig":"MEUCIDAN9dXVrOUd97rC6J2Oaf/deW6teJ6Mdzuyrg6uTQ/bAiEAhszurJNHbsiI6Vy5sjkmdojwSuWMyjbp02Rw4Dx/piA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.19.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8127543},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"3f0a1b0a0e714e53717c58ee6e0dfbb2653309df","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"qs":"^6.15.2","npm":"^11.16.0","hono":"^4.12.23","lodash":"^4.17.23","js-yaml":"^4.1.1","fast-uri":"^3.1.2","lodash-es":"^4.17.23","ip-address":"^10.2.0"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.17.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.22.3","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^8.0.16","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.3","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.19.12_1782122621523_0.22174356141151175","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"mcp-rubber-duck","version":"1.20.0","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.20.0","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"612b7152dc4327eb3d74491a67504768b7e7c84e","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.20.0.tgz","fileCount":493,"integrity":"sha512-Misox6dsdXManFdr2cL6zTr3WztKyhzHCvEFOofEXOqwB3XRondTQIxfqzOBmeXxqV/ES5Ga1QjXyrZrCyVItw==","signatures":[{"sig":"MEQCIB+Tkvh84P2h1nOC7FyCr/e8CTLgo+qbgUA/y71KRCjFAiBqSHIcJfE3U6f8lG4IldJ0NGc5aqueZFU63VOOWt4dDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8145884},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"86ab6463806c06fdb610dae3c4b53b544817b531","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"qs":"^6.15.2","npm":"^11.16.0","hono":"^4.12.23","lodash":"^4.17.23","js-yaml":"^4.1.1","fast-uri":"^3.1.2","lodash-es":"^4.17.23","ip-address":"^10.2.0"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.17.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^8.0.16","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^22.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.3","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.20.0_1784039896755_0.45127826525540127","host":"s3://npm-registry-packages-npm-production"}},"1.20.1":{"name":"mcp-rubber-duck","version":"1.20.1","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.20.1","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"26aeea86f92b03356622dd086e54b84698458451","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.20.1.tgz","fileCount":499,"integrity":"sha512-JwGfP4OsmjiOhj6onsMpzhfHHJoY3JJ0/XjBmpj8FxCY3CXkdPfAvOw5c/0aZj+8I+/+2+P8/nUt8ItQfdnmkw==","signatures":[{"sig":"MEQCIQDTW+EzSIt6OYXUHe4o31RqCktFb7M7pN0Fsb1qq1FffAIfQ8rk26RkvGusMWKaRexhM5m1alEpUCMfzoYIrQo3tA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.20.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8186892},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"0e61648257405517fa28347e1c6874e5a3103736","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"qs":"^6.15.2","npm":"^11.16.0","hono":"^4.12.23","lodash":"^4.17.23","js-yaml":"^4.1.1","fast-uri":"^3.1.2","lodash-es":"^4.17.23","ip-address":"^10.2.0","brace-expansion@1.x":"^1.1.16"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.18.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^8.0.16","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^22.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.3","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.20.1_1784632008926_0.7218043141717818","host":"s3://npm-registry-packages-npm-production"}},"1.20.2":{"name":"mcp-rubber-duck","version":"1.20.2","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.20.2","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"d1918402928800e3c43848f675d745bed2ed73d9","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.20.2.tgz","fileCount":499,"integrity":"sha512-hwi6YHh21GuAVmmhuQwUo+gjXiKNDnbqGcmFsWyCLS9PgtJQLXyjUfM1CdqlEHLrKOQDIGd/9BX2u55gpeRlyg==","signatures":[{"sig":"MEYCIQC2GnuqFlY3e/E1YIiPxvYd+7QmWv7nugI77k+go1RmJAIhAM4neYVe6ywp1456woZCy6/D7bVTG1TmmIVnKSE2EHk6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.20.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8189644},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"46e881334ac60150edae5a2455fc9c991ef15ed5","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"qs":"^6.15.2","npm":"^11.16.0","hono":"^4.12.27","lodash":"^4.17.23","js-yaml":"^4.1.1","postcss":"^8.5.18","fast-uri":"^3.1.4","lodash-es":"^4.17.23","ip-address":"^10.2.0","@hono/node-server":"^2.0.5","brace-expansion@1.x":"^1.1.16"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.18.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^8.0.16","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^22.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.3","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"$overrides-rationale":{"@hono/node-server":"Major-version override (2.x) against the MCP SDK's declared ^1.19.9 — GHSA-frvp-7c67-39w9 is patched only in 2.0.5 and the 1.x line has no fix. Safe here: the SDK pulls @hono/node-server in for its server-side streamableHttp transport, which this project never imports (we use StreamableHTTPClientTransport, the client side, in src/services/mcp-client-manager.ts). v2 keeps the same serve/getRequestListener API. Revisit if this project ever serves MCP over HTTP, or drop the override once the SDK moves to ^2."},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.20.2_1785164527779_0.7656009239625403","host":"s3://npm-registry-packages-npm-production"}},"1.20.3":{"name":"mcp-rubber-duck","version":"1.20.3","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.20.3","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"76800cc7b6f4eeb7b32c382377c9bda5aba8cdc9","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.20.3.tgz","fileCount":499,"integrity":"sha512-Bw5iN7niOlFR+5RwEH1uPUl3q8hFVF1jDErD3eqAzEyh5KYHkPNhRJteHZDmaoUo3UxoVeLXBDMofSSHKp5LEA==","signatures":[{"sig":"MEQCIEuNUwfJo0Mwzd4mxJFC4ifqqT+4Y9JDO4SVO9od3pEQAiA3uD+Gu0tRNttFmtIoU0nqBK6fxhw2MVncRWinX6ahkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.20.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8201356},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"80c0e7745c38438291d1f108be030a16335a2de8","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"qs":"^6.15.2","npm":"^11.16.0","hono":"^4.13.1","lodash":"^4.17.23","js-yaml":"^4.3.1","postcss":"^8.5.18","fast-uri":"^3.1.5","lodash-es":"^4.17.23","ip-address":"^10.3.1","nanoid@3.x":"^3.3.17","undici@6.x":"^6.28.0","undici@7.x":"^7.29.0","@hono/node-server":"^2.0.5","express-rate-limit":"^8.6.2","brace-expansion@1.x":"^1.1.18","brace-expansion@2.x":"^2.1.4"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.18.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^8.0.16","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^22.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.3","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"$overrides-rationale":{"@hono/node-server":"Major-version override (2.x) against the MCP SDK's declared ^1.19.9 — GHSA-frvp-7c67-39w9 is patched only in 2.0.5 and the 1.x line has no fix. Safe here: the SDK pulls @hono/node-server in for its server-side streamableHttp transport, which this project never imports (we use StreamableHTTPClientTransport, the client side, in src/services/mcp-client-manager.ts). v2 keeps the same serve/getRequestListener API. Revisit if this project ever serves MCP over HTTP, or drop the override once the SDK moves to ^2."},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.20.3_1786352126324_0.10475257428462448","host":"s3://npm-registry-packages-npm-production"}},"1.20.4":{"name":"mcp-rubber-duck","version":"1.20.4","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.20.4","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"bce971a22937933adba5ba47d9338199a84f5a10","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.20.4.tgz","fileCount":499,"integrity":"sha512-x3rTSXSXQwTGNyLP5fgC7M2YrVUZVtEoNjaF+NaUureQ3nvDq45Ee3RlmoeoQn1I0UTp1NLerS8vxEQXC7vh0A==","signatures":[{"sig":"MEQCIFgi4b+g0omX2BYN2zspV4/1goycJjQs7l1z9Ue1XpsXAiAdjfQ0WhdWN3VmGaayPHLA5cycaeHVZJv3IK8oeNS7LQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.20.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8223227},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"409ecd1972168701b729de35d7a497477f8a5990","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"qs":"^6.15.2","npm":"^11.16.0","hono":"^4.13.1","lodash":"^4.17.23","js-yaml":"^4.3.1","postcss":"^8.5.18","fast-uri":"^3.1.5","lodash-es":"^4.17.23","ip-address":"^10.3.1","nanoid@3.x":"^3.3.17","undici@6.x":"^6.28.0","undici@7.x":"^7.29.0","@hono/node-server":"^2.0.5","express-rate-limit":"^8.6.2","brace-expansion@1.x":"^1.1.18","brace-expansion@2.x":"^2.1.4"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.18.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^8.0.16","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^22.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.3","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"$overrides-rationale":{"@hono/node-server":"Major-version override (2.x) against the MCP SDK's declared ^1.19.9 — GHSA-frvp-7c67-39w9 is patched only in 2.0.5 and the 1.x line has no fix. Safe here: the SDK pulls @hono/node-server in for its server-side streamableHttp transport, which this project never imports (we use StreamableHTTPClientTransport, the client side, in src/services/mcp-client-manager.ts). v2 keeps the same serve/getRequestListener API. Revisit if this project ever serves MCP over HTTP, or drop the override once the SDK moves to ^2."},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.20.4_1786697773395_0.7008645993733584","host":"s3://npm-registry-packages-npm-production"}},"1.20.5":{"name":"mcp-rubber-duck","version":"1.20.5","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.20.5","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"581d18703c8d5f3f882e6b4fa02bb8b3f0aff4e1","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.20.5.tgz","fileCount":499,"integrity":"sha512-ILpYSKbTQlCs5Mq67YV9GUspcKncMY/w/3HalwCmdT5LhP/ZxZX15zprfLouRHZldzqh/oHWeVSNmuwcqh8p4g==","signatures":[{"sig":"MEUCIQDcVPdWc1M5CvkToWMVhwmx9aUGH35GGOPwrknjZmh89AIgX489bY/oobnywZZYbgFNn1U9Hvi5V4NlnaQC+P5qxtY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.20.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8228821},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"32c9e228d64802f06dd51c940b5aa270e54ee6dd","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"qs":"^6.15.2","npm":"^11.16.0","hono":"^4.13.1","lodash":"^4.17.23","js-yaml":"^4.3.1","postcss":"^8.5.18","fast-uri":"^3.1.5","lodash-es":"^4.17.23","ip-address":"^10.3.1","nanoid@3.x":"^3.3.17","undici@6.x":"^6.28.0","undici@7.x":"^7.29.0","@hono/node-server":"^2.0.5","express-rate-limit":"^8.6.2","brace-expansion@1.x":"^1.1.18","brace-expansion@2.x":"^2.1.4"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.18.0","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^8.0.16","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^22.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.3","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"$overrides-rationale":{"@hono/node-server":"Major-version override (2.x) against the MCP SDK's declared ^1.19.9 — GHSA-frvp-7c67-39w9 is patched only in 2.0.5 and the 1.x line has no fix. Safe here: the SDK pulls @hono/node-server in for its server-side streamableHttp transport, which this project never imports (we use StreamableHTTPClientTransport, the client side, in src/services/mcp-client-manager.ts). v2 keeps the same serve/getRequestListener API. Revisit if this project ever serves MCP over HTTP, or drop the override once the SDK moves to ^2."},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.20.5_1787132608089_0.5572970211995081","host":"s3://npm-registry-packages-npm-production"}},"1.20.6":{"name":"mcp-rubber-duck","version":"1.20.6","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.20.6","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"fb2d2d2fcc036f4d4ce11626863c08df310e86e2","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.20.6.tgz","fileCount":499,"integrity":"sha512-PIPWQejYZDpBYnR4eSeUb00pioYS965H0tBQRecEv56wji4+EaXT5D8UN0btT0AmURZU61PV2bDlfsK6V1o3Sw==","signatures":[{"sig":"MEQCIDqepV8RInm9lG9Dk+mkmZ1oYQX16VGREiWWZ7b5rW25AiA2koo2A2thjRTYfMboWyS/8/i2H9lXacxBbB1Y6nx71Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.20.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8227480},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"c4a056a766ab1d06961710e8499ac70bf1685d0e","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"qs":"^6.15.2","npm":"^11.19.1","hono":"^4.13.1","lodash":"^4.17.23","js-yaml":"^4.3.1","postcss":"^8.5.18","fast-uri":"^3.1.5","lodash-es":"^4.17.23","ip-address":"^10.3.1","nanoid@3.x":"^3.3.17","undici@6.x":"^6.28.0","undici@7.x":"^7.29.0","@hono/node-server":"^2.0.5","express-rate-limit":"^8.6.2","brace-expansion@1.x":"^1.1.18","brace-expansion@2.x":"^2.1.4"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.19.1","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^8.0.16","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^22.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.3","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"$overrides-rationale":{"@hono/node-server":"Major-version override (2.x) against the MCP SDK's declared ^1.19.9 — GHSA-frvp-7c67-39w9 is patched only in 2.0.5 and the 1.x line has no fix. Safe here: the SDK pulls @hono/node-server in for its server-side streamableHttp transport, which this project never imports (we use StreamableHTTPClientTransport, the client side, in src/services/mcp-client-manager.ts). v2 keeps the same serve/getRequestListener API. Revisit if this project ever serves MCP over HTTP, or drop the override once the SDK moves to ^2."},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.20.6_1788790977635_0.9722812489186532","host":"s3://npm-registry-packages-npm-production"}},"1.20.7":{"name":"mcp-rubber-duck","version":"1.20.7","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"author":{"name":"nesquikm"},"license":"MIT","_id":"mcp-rubber-duck@1.20.7","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"bin":{"mcp-rubber-duck":"dist/index.js"},"dist":{"shasum":"f1c4a012ece365cded4a7a7a6c9d46d23e71b31f","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.20.7.tgz","fileCount":499,"integrity":"sha512-IYGgVb+hOPchqJXg/hFQHwGwA7M0nLl74A+OxZDB6iJGvRaGToD5xwDflVWvCyEXHGyB4u+P1IbWzeN8P/Ehrg==","signatures":[{"sig":"MEUCIHVGp146anaiUD+PGLgbu8rmDc6Hv4+4bhimx24WGdX5AiEA2Se3TwV/OLSHF3+6J9p2Fr9a+1zmHjTV3IlIplSLzHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.20.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8231579},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"ad3e826fca66b29019d8b80a53003ac1d764fc63","mcpName":"io.github.nesquikm/rubber-duck","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src","test":"NODE_OPTIONS='--experimental-vm-modules' jest","build":"tsc && npm run build:ui","start":"node dist/index.js","format":"prettier --write \"src/**/*.ts\"","release":"semantic-release","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","typecheck":"tsc --noEmit","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"overrides":{"qs":"^6.15.2","npm":"^11.19.1","hono":"^4.13.1","lodash":"^4.17.23","js-yaml":"^4.3.1","postcss":"^8.5.18","fast-uri":"^3.1.5","lodash-es":"^4.17.23","ip-address":"^10.3.1","nanoid@3.x":"^3.3.17","undici@6.x":"^6.28.0","undici@7.x":"^7.29.0","@hono/node-server":"^2.0.5","express-rate-limit":"^8.6.2","brace-expansion@1.x":"^1.1.18","brace-expansion@2.x":"^2.1.4"},"repository":{"url":"git+https://github.com/nesquikm/mcp-rubber-duck.git","type":"git"},"_npmVersion":"11.19.1","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ajv":"^8.17.1","zod":"^3.23.0","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","@modelcontextprotocol/sdk":"^1.29.0","@modelcontextprotocol/ext-apps":"^1.0.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","jest":"^29.0.0","vite":"^8.0.16","eslint":"^9.0.0","ts-jest":"^29.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^22.0.0","semantic-release":"^25.0.2","typescript-eslint":"^8.0.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.3","vite-plugin-singlefile":"^2.3.0","@semantic-release/github":"^11.0.6","@semantic-release/changelog":"^6.0.3"},"$overrides-rationale":{"@hono/node-server":"Major-version override (2.x) against the MCP SDK's declared ^1.19.9 — GHSA-frvp-7c67-39w9 is patched only in 2.0.5 and the 1.x line has no fix. Safe here: the SDK pulls @hono/node-server in for its server-side streamableHttp transport, which this project never imports (we use StreamableHTTPClientTransport, the client side, in src/services/mcp-client-manager.ts). v2 keeps the same serve/getRequestListener API. Revisit if this project ever serves MCP over HTTP, or drop the override once the SDK moves to ^2."},"_npmOperationalInternal":{"tmp":"tmp/mcp-rubber-duck_1.20.7_1788796580738_0.4981086135545991","host":"s3://npm-registry-packages-npm-production"}},"1.20.8":{"name":"mcp-rubber-duck","version":"1.20.8","description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","main":"dist/index.js","type":"module","bin":{"mcp-rubber-duck":"dist/index.js"},"scripts":{"build":"tsc && npm run build:ui","build:ui":"VITE_UI_ENTRY=compare-ducks vite build && VITE_UI_ENTRY=duck-vote vite build && VITE_UI_ENTRY=duck-debate vite build && VITE_UI_ENTRY=usage-stats vite build","dev":"tsx watch src/index.ts","start":"node dist/index.js","test":"NODE_OPTIONS='--experimental-vm-modules' jest","test:watch":"NODE_OPTIONS='--experimental-vm-modules' jest --watch","lint":"eslint src","format":"prettier --write \"src/**/*.ts\"","typecheck":"tsc --noEmit","release":"semantic-release"},"keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"mcpName":"io.github.nesquikm/rubber-duck","author":{"name":"nesquikm"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/nesquikm/mcp-rubber-duck.git"},"homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"publishConfig":{"provenance":true,"access":"public"},"dependencies":{"@modelcontextprotocol/ext-apps":"^1.0.1","@modelcontextprotocol/sdk":"^1.29.0","ajv":"^8.17.1","dotenv":"^16.4.0","openai":"^4.0.0","winston":"^3.11.0","zod":"^3.23.0"},"devDependencies":{"@eslint/js":"^9.0.0","@semantic-release/changelog":"^6.0.3","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.6","@semantic-release/npm":"^13.1.3","@types/jest":"^29.0.0","@types/node":"^22.0.0","eslint":"^9.0.0","jest":"^29.0.0","prettier":"^3.0.0","semantic-release":"^25.0.2","ts-jest":"^29.0.0","tsx":"^4.0.0","typescript":"^5.0.0","typescript-eslint":"^8.0.0","vite":"^8.0.16","vite-plugin-singlefile":"^2.3.0"},"$overrides-rationale":{"@hono/node-server":"Major-version override (2.x) against the MCP SDK's declared ^1.19.9 — GHSA-frvp-7c67-39w9 is patched only in 2.0.5 and the 1.x line has no fix. Safe here: the SDK pulls @hono/node-server in for its server-side streamableHttp transport, which this project never imports (we use StreamableHTTPClientTransport, the client side, in src/services/mcp-client-manager.ts). v2 keeps the same serve/getRequestListener API. Revisit if this project ever serves MCP over HTTP, or drop the override once the SDK moves to ^2."},"overrides":{"js-yaml":"^4.3.1","lodash":"^4.17.23","lodash-es":"^4.17.23","hono":"^4.13.1","@hono/node-server":"^2.0.5","fast-uri":"^3.1.5","postcss":"^8.5.18","ip-address":"^10.3.1","express-rate-limit":"^8.6.2","qs":"^6.15.2","npm":"^11.19.1","nanoid@3.x":"^3.3.17","undici@6.x":"^6.28.0","undici@7.x":"^7.29.0","brace-expansion@1.x":"^1.1.18","brace-expansion@2.x":"^2.1.4"},"gitHead":"acafd57712f93a0d10a65397abc7f044bc1fc963","types":"./dist/index.d.ts","_id":"mcp-rubber-duck@1.20.8","_nodeVersion":"22.23.2","_npmVersion":"11.19.1","dist":{"integrity":"sha512-v9YW/ActL4umSw/khWAMfAZ55ya5Xj26feuGeamFZ8uGQFb44KgrANatN9gKv2N3hanjepSS5XghQagTcH0/fQ==","shasum":"e4c8c3797853fdcae50485cbc87545231fc21900","tarball":"https://registry.npmjs.org/mcp-rubber-duck/-/mcp-rubber-duck-1.20.8.tgz","fileCount":499,"unpackedSize":8231851,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/mcp-rubber-duck@1.20.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG+MBBwD4jV+TDzA+Lp0vmGDCHuBe0n2C3H0rN5c7MH2AiBb2ogLQnvJyfAXmCuRD4wjloEBFn9sSDTPK3mJi1X0Lg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e64c2804-74b7-454c-8879-de20f1ef6f58"}},"directories":{},"maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-rubber-duck_1.20.8_1789453635252_0.7649790567635779"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-17T12:54:07.798Z","modified":"2026-09-15T06:27:15.894Z","1.1.0":"2025-09-17T12:54:07.997Z","1.1.1":"2025-09-17T13:22:27.974Z","1.2.0":"2025-09-17T13:41:05.848Z","1.2.1":"2025-09-17T17:51:47.168Z","1.2.2":"2025-09-17T18:22:09.732Z","1.2.3":"2025-11-17T07:49:18.986Z","1.2.4":"2025-11-17T07:55:03.059Z","1.2.5":"2025-11-24T12:13:31.577Z","1.3.0":"2025-11-24T14:58:49.135Z","1.4.0":"2025-11-30T09:44:25.354Z","1.4.1":"2025-12-08T09:37:20.039Z","1.4.2":"2025-12-08T10:01:19.612Z","1.5.0":"2025-12-08T14:57:16.816Z","1.5.1":"2026-01-02T09:30:30.579Z","1.5.2":"2026-01-08T09:28:33.213Z","1.6.0":"2026-01-08T19:38:04.176Z","1.6.1":"2026-01-09T10:06:13.874Z","1.7.0":"2026-01-13T13:56:07.781Z","1.8.0":"2026-01-14T13:01:33.418Z","1.9.0":"2026-01-15T11:58:32.121Z","1.9.3":"2026-01-19T16:22:14.107Z","1.9.4":"2026-01-26T13:59:48.408Z","1.9.5":"2026-01-29T15:01:52.481Z","1.10.0":"2026-01-29T17:02:45.664Z","1.11.0":"2026-01-30T15:58:42.576Z","1.12.0":"2026-02-03T08:10:18.639Z","1.13.0":"2026-02-05T14:34:53.579Z","1.13.1":"2026-02-06T13:12:29.116Z","1.14.0":"2026-02-08T10:37:16.077Z","1.14.1":"2026-02-13T13:55:59.419Z","1.14.2":"2026-02-18T14:14:11.119Z","1.14.3":"2026-02-23T14:03:22.004Z","1.15.0":"2026-02-26T14:15:04.515Z","1.15.1":"2026-03-02T15:48:13.316Z","1.15.2":"2026-03-05T08:00:05.863Z","1.16.0":"2026-03-06T15:37:12.761Z","1.16.1":"2026-03-09T14:35:08.137Z","1.16.2":"2026-03-16T17:56:34.538Z","1.17.0":"2026-03-17T07:20:27.081Z","1.17.1":"2026-03-30T11:39:30.250Z","1.18.0":"2026-04-03T12:02:39.935Z","1.19.0":"2026-04-07T11:25:46.399Z","1.19.1":"2026-04-11T10:09:08.754Z","1.19.2":"2026-04-19T07:30:54.714Z","1.19.3":"2026-04-27T08:06:15.846Z","1.19.4":"2026-04-27T10:07:15.432Z","1.19.5":"2026-05-11T07:50:34.016Z","1.19.6":"2026-05-15T07:25:15.316Z","1.19.7":"2026-06-05T08:13:20.343Z","1.19.8":"2026-06-15T08:22:12.957Z","1.19.9":"2026-06-15T08:51:21.725Z","1.19.10":"2026-06-16T14:42:13.255Z","1.19.11":"2026-06-22T08:37:43.102Z","1.19.12":"2026-06-22T10:03:41.773Z","1.20.0":"2026-07-14T14:38:16.995Z","1.20.1":"2026-07-21T11:06:49.193Z","1.20.2":"2026-07-27T15:02:08.075Z","1.20.3":"2026-08-10T08:55:26.554Z","1.20.4":"2026-08-14T08:56:13.650Z","1.20.5":"2026-08-19T09:43:28.407Z","1.20.6":"2026-09-07T14:22:57.891Z","1.20.7":"2026-09-07T15:56:20.962Z","1.20.8":"2026-09-15T06:27:15.522Z"},"bugs":{"url":"https://github.com/nesquikm/mcp-rubber-duck/issues"},"author":{"name":"nesquikm"},"license":"MIT","homepage":"https://github.com/nesquikm/mcp-rubber-duck#readme","keywords":["mcp","model-context-protocol","llm","openai","ai","rubber-duck"],"repository":{"type":"git","url":"git+https://github.com/nesquikm/mcp-rubber-duck.git"},"description":"An MCP server that bridges to multiple OpenAI-compatible LLMs - your AI rubber duck debugging panel","maintainers":[{"name":"nesquikm","email":"drapolyuk@gmail.com"}],"readme":"# MCP Rubber Duck\n\nAn MCP (Model Context Protocol) server that acts as a bridge to query multiple LLMs -- both OpenAI-compatible HTTP APIs and CLI coding agents. Just like rubber duck debugging, explain your problems to various AI \"ducks\" and get different perspectives!\n\n[![npm version](https://img.shields.io/npm/v/mcp-rubber-duck.svg)](https://www.npmjs.com/package/mcp-rubber-duck)\n[![Docker Image](https://img.shields.io/badge/docker-ghcr.io-blue)](https://github.com/nesquikm/mcp-rubber-duck/pkgs/container/mcp-rubber-duck)\n[![MCP Registry](https://img.shields.io/badge/MCP-Registry-green)](https://registry.modelcontextprotocol.io)\n\n<p align=\"center\">\n  <img src=\"assets/mcp-rubber-duck.jpg\" alt=\"MCP Rubber Duck - AI ducks helping debug code\" width=\"600\">\n</p>\n\n> **Why direct provider integration?** MCP's `sampling` primitive -- a server borrowing the *host's* model -- was deprecated in the [2026-07-28 spec RC](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2577) in favor of servers integrating directly with LLM provider APIs. Rubber Duck has always worked this way (it brings its own ducks), so it's aligned with where the protocol is heading -- no migration required.\n\n## Features\n\n- **Universal OpenAI Compatibility** -- Works with any OpenAI-compatible API endpoint\n- **CLI Agent Support** -- Use CLI coding agents (Claude Code, Codex, Gemini CLI, Grok, Aider) as ducks\n- **Multiple Ducks** -- Configure and query multiple LLM providers simultaneously\n- **Conversation Management** -- Maintain context across multiple messages\n- **Duck Council** -- Get responses from all your configured LLMs at once\n- **Consensus Voting** -- Multi-duck voting with reasoning and confidence scores\n- **LLM-as-Judge** -- Have ducks evaluate and rank each other's responses\n- **Iterative Refinement** -- Two ducks collaboratively improve responses\n- **Structured Debates** -- Oxford, Socratic, and adversarial debate formats\n- **MCP Prompts** -- 8 reusable prompt templates for multi-LLM workflows\n- **Vision Input** -- Send images alongside prompts to vision-capable models ([docs](./docs/tools.md#vision-input))\n- **Automatic Failover** -- Falls back to other providers if primary fails\n- **Health Monitoring** -- Real-time health checks for all providers\n- **Usage Tracking** -- Track requests, tokens, and estimated costs per provider\n- **MCP Bridge** -- Connect ducks to other MCP servers for extended functionality ([docs](./docs/mcp-bridge.md))\n- **Guardrails** -- Pluggable safety layer with rate limiting, token limits, pattern blocking, and PII redaction ([docs](./docs/guardrails.md))\n- **Granular Security** -- Per-server approval controls with session-based approvals\n- **Interactive UIs** -- Rich HTML panels for compare, vote, debate, and usage tools (via [MCP Apps](https://github.com/modelcontextprotocol/ext-apps))\n- **Tool Annotations** -- MCP-compliant hints for tool behavior (read-only, destructive, etc.)\n- **Structured Output** -- `outputSchema` on tools returning structured JSON for client-side validation (Cursor, VS Code/Copilot)\n- **Spec-Aligned by Design** -- connects directly to provider APIs, the path the MCP `2026-07-28` spec recommends now that server-side `sampling` is deprecated ([SEP-2577](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2577))\n\n## Supported Providers\n\n### HTTP Providers (OpenAI-compatible API)\n\nAny provider with an OpenAI-compatible API endpoint, including:\n\n- **OpenAI**\n- **Google Gemini**\n- **Anthropic** (via OpenAI-compatible endpoints)\n- **Groq** (fast inference for open-weight models)\n- **Together AI** (broad open-weight model catalog)\n- **Perplexity** (online models with web search)\n- **Anyscale**, **Azure OpenAI**, **Ollama**, **LM Studio**, **Custom**\n\n### CLI Providers (Coding Agents)\n\nCommand-line coding agents that run as local processes:\n\n- **Claude Code** (`claude`) -- **Codex** (`codex`) -- **Gemini CLI** (`gemini`) -- **Grok CLI** (`grok`) -- **Aider** (`aider`) -- **Custom**\n\nSee [CLI Providers](./docs/cli-providers.md) for full setup and configuration.\n\n## Quick Start\n\n```bash\n# Install globally\nnpm install -g mcp-rubber-duck\n\n# Or use npx directly in Claude Desktop config\nnpx mcp-rubber-duck\n```\n\n**Using Claude Desktop?** Jump to [Claude Desktop Configuration](./docs/claude-desktop.md).\n**Using Cursor, VS Code, Windsurf, or another tool?** See the [Setup Guide](./docs/setup.md).\n\n## Installation\n\n### Prerequisites\n\n- Node.js 20 or higher\n- npm or yarn\n- At least one API key for an HTTP provider, **or** a CLI coding agent installed locally\n\n### Install from NPM\n\n```bash\nnpm install -g mcp-rubber-duck\n```\n\n### Install from Source\n\n```bash\ngit clone https://github.com/nesquikm/mcp-rubber-duck.git\ncd mcp-rubber-duck\nnpm install\nnpm run build\nnpm start\n```\n\n## Configuration\n\nCreate a `.env` file or `config/config.json`. Key environment variables:\n\n| Variable | Description |\n|----------|-------------|\n| `OPENAI_API_KEY` | OpenAI API key |\n| `GEMINI_API_KEY` | Google Gemini API key |\n| `GROQ_API_KEY` | Groq API key |\n| `DEFAULT_PROVIDER` | Default provider (e.g., `openai`) |\n| `DEFAULT_TEMPERATURE` | Default temperature (e.g., `0.7`) |\n| `LOG_LEVEL` | `debug`, `info`, `warn`, `error` |\n| `MCP_SERVER` | Set to `true` for MCP server mode |\n| `MCP_BRIDGE_ENABLED` | Enable MCP Bridge (ducks access external MCP servers) |\n| `CUSTOM_{NAME}_*` | Custom HTTP providers |\n| `CLI_{AGENT}_ENABLED` | Enable CLI agents (`CLAUDE`, `CODEX`, `GEMINI`, `GROK`, `AIDER`) |\n\nFull reference: **[Configuration docs](./docs/configuration.md)**\n\n## Interactive UIs (MCP Apps)\n\nFour tools -- `compare_ducks`, `duck_vote`, `duck_debate`, and `get_usage_stats` -- can render rich interactive HTML panels inside supported MCP clients via [MCP Apps](https://github.com/modelcontextprotocol/ext-apps). Once this MCP server is configured in a supporting client, the UIs appear automatically -- no additional setup is required. Clients without MCP Apps support still receive the same plain text output (no functionality is lost). See the [MCP Apps repo](https://github.com/modelcontextprotocol/ext-apps) for an up-to-date list of supported clients.\n\n### Compare Ducks\n\nCompare multiple model responses side-by-side, with latency indicators, token counts, model badges, and error states.\n\n<p align=\"center\">\n  <img src=\"assets/ext-apps-compare.png\" alt=\"Compare Ducks interactive UI\" width=\"600\">\n</p>\n\n### Duck Vote\n\nHave multiple ducks vote on options, displayed as a visual vote tally with bar charts, consensus badge, winner card, confidence bars, and collapsible reasoning.\n\n<p align=\"center\">\n  <img src=\"assets/ext-apps-vote.png\" alt=\"Duck Vote interactive UI\" width=\"600\">\n</p>\n\n### Duck Debate\n\nStructured multi-round debate between ducks, shown as a round-by-round view with format badge, participant list, collapsible rounds, and synthesis section.\n\n<p align=\"center\">\n  <img src=\"assets/ext-apps-debate.png\" alt=\"Duck Debate interactive UI\" width=\"600\">\n</p>\n\n### Usage Stats\n\nUsage analytics with summary cards, provider breakdown with expandable rows, token distribution bars, and estimated costs.\n\n<p align=\"center\">\n  <img src=\"assets/ext-apps-usage-stats.png\" alt=\"Usage Stats interactive UI\" width=\"600\">\n</p>\n\n## Available Tools\n\n| Tool | Description |\n|------|-------------|\n| `ask_duck` | Ask a single question to a specific LLM provider |\n| `chat_with_duck` | Conversation with context maintained across messages |\n| `clear_conversations` | Clear all conversation history |\n| `list_ducks` | List configured providers and health status |\n| `list_models` | List available models for providers |\n| `compare_ducks` | Ask the same question to multiple providers simultaneously |\n| `duck_council` | Get responses from all configured ducks |\n| `get_usage_stats` | Usage statistics and estimated costs |\n| `duck_vote` | Multi-duck voting with reasoning and confidence |\n| `duck_judge` | Have one duck evaluate and rank others' responses |\n| `duck_iterate` | Iteratively refine a response between two ducks |\n| `duck_debate` | Structured multi-round debate between ducks |\n| `mcp_status` | MCP Bridge status and connected servers |\n| `get_pending_approvals` | Pending MCP tool approval requests |\n| `approve_mcp_request` | Approve or deny a duck's MCP tool request |\n\nFull reference with input schemas: **[Tools docs](./docs/tools.md)**\n\n## Available Prompts\n\n| Prompt | Purpose | Required Arguments |\n|--------|---------|-------------------|\n| `perspectives` | Multi-angle analysis with assigned lenses | `problem`, `perspectives` |\n| `assumptions` | Surface hidden assumptions in plans | `plan` |\n| `blindspots` | Hunt for overlooked risks and gaps | `proposal` |\n| `tradeoffs` | Structured option comparison | `options`, `criteria` |\n| `red_team` | Security/risk analysis from multiple angles | `target` |\n| `reframe` | Problem reframing at different levels | `problem` |\n| `architecture` | Design review across concerns | `design`, `workloads`, `priorities` |\n| `diverge_converge` | Divergent exploration then convergence | `challenge` |\n\nFull reference with examples: **[Prompts docs](./docs/prompts.md)**\n\n## Development\n\n```bash\nnpm run dev        # Development with watch mode\nnpm test           # Run all tests\nnpm run lint       # ESLint\nnpm run typecheck  # Type check without emit\n```\n\n## [Documentation](./docs/README.md)\n\n| Topic | Link |\n|-------|------|\n| **Setup guide (all tools)** | **[docs/setup.md](./docs/setup.md)** |\n| Full configuration reference | [docs/configuration.md](./docs/configuration.md) |\n| Claude Desktop setup | [docs/claude-desktop.md](./docs/claude-desktop.md) |\n| All tools with schemas | [docs/tools.md](./docs/tools.md) |\n| Prompt templates | [docs/prompts.md](./docs/prompts.md) |\n| CLI coding agents | [docs/cli-providers.md](./docs/cli-providers.md) |\n| MCP Bridge | [docs/mcp-bridge.md](./docs/mcp-bridge.md) |\n| Guardrails | [docs/guardrails.md](./docs/guardrails.md) |\n| Docker deployment | [docs/docker.md](./docs/docker.md) |\n| Provider-specific setup | [docs/provider-setup.md](./docs/provider-setup.md) |\n| Usage examples | [docs/usage-examples.md](./docs/usage-examples.md) |\n| Architecture | [docs/architecture.md](./docs/architecture.md) |\n| Roadmap | [docs/roadmap.md](./docs/roadmap.md) |\n\n## Troubleshooting\n\n### Provider Not Working\n1. Check API key is correctly set\n2. Verify endpoint URL is correct\n3. Run health check: `list_ducks({ check_health: true })`\n4. Check logs for detailed error messages\n\n### Connection Issues\n- For local providers (Ollama, LM Studio), ensure they're running\n- Check firewall settings for local endpoints\n- Verify network connectivity to cloud providers\n\n### Rate Limiting\n- Configure failover to alternate providers\n- Adjust `max_retries` and `timeout` settings\n- See [Guardrails](./docs/guardrails.md) for rate limiting configuration\n\n## Contributing\n\n```\n     __\n   <(o )___\n    ( ._> /\n     `---'  Quack! Ready to debug!\n```\n\nWe love contributions! Whether you're fixing bugs, adding features, or teaching our ducks new tricks, we'd love to have you join the flock.\n\nCheck out our [Contributing Guide](./CONTRIBUTING.md) to get started.\n\n**Quick start for contributors:**\n1. Fork the repository\n2. Create a feature branch\n3. Follow our [conventional commit guidelines](./CONTRIBUTING.md#commit-messages-duck-communication-protocol)\n4. Add tests for new functionality\n5. Submit a pull request\n\n## License\n\nMIT License - see LICENSE file for details\n\n## Acknowledgments\n\n- Inspired by the rubber duck debugging method\n- Built on the Model Context Protocol (MCP)\n- Uses OpenAI SDK for HTTP provider compatibility\n- Supports CLI coding agents (Claude Code, Codex, Gemini CLI, Grok, Aider)\n\n## Changelog\n\nSee [CHANGELOG.md](./CHANGELOG.md) for a detailed history of changes and releases.\n\n## Registry & Directory\n\n- **NPM Package**: [npmjs.com/package/mcp-rubber-duck](https://www.npmjs.com/package/mcp-rubber-duck)\n- **Docker Images**: [ghcr.io/nesquikm/mcp-rubber-duck](https://github.com/nesquikm/mcp-rubber-duck/pkgs/container/mcp-rubber-duck)\n- **MCP Registry**: Official MCP server `io.github.nesquikm/rubber-duck`\n- **Glama Directory**: [glama.ai/mcp/servers/@nesquikm/mcp-rubber-duck](https://glama.ai/mcp/servers/@nesquikm/mcp-rubber-duck)\n- **Awesome MCP Servers**: Listed in the [community directory](https://github.com/punkpeye/awesome-mcp-servers)\n\n## Support\n\n- Report issues: https://github.com/nesquikm/mcp-rubber-duck/issues\n- Documentation: https://github.com/nesquikm/mcp-rubber-duck/wiki\n- Discussions: https://github.com/nesquikm/mcp-rubber-duck/discussions\n\n---\n\nHappy Debugging with your AI Duck Panel!\n","readmeFilename":"README.md"}