{"_id":"@adaptivemcp/evaluation","_rev":"6-078e74ed9bb5bb358265f628ddab3c65","name":"@adaptivemcp/evaluation","dist-tags":{"latest":"0.2.5"},"versions":{"0.2.0":{"name":"@adaptivemcp/evaluation","version":"0.2.0","_id":"@adaptivemcp/evaluation@0.2.0","maintainers":[{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"}],"dist":{"shasum":"645913dde933fb2a54ba88a2828cbfd010247e6d","tarball":"https://registry.npmjs.org/@adaptivemcp/evaluation/-/evaluation-0.2.0.tgz","fileCount":9,"integrity":"sha512-YB523t7bURlvQwkKyPdQYTTuXETV3HQPm86FT2ixAsdqJQ1sX9ue0DtqpN/l6FBsD61L1SA1pZTKcuqhRwo+Uw==","signatures":[{"sig":"MEUCIHnvyxguAEKWQJnBG+EPJ/90a0IrZlVoTn3ef6OtjR7xAiEA0oSXlVT48LxcrhwucTlpz4CQq3F7dz3y4kekDyceqV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6891},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b9dccae7f134e038a09c1b9e11db8afbfa674ac8","scripts":{"test":"vitest run --config ../../vitest.config.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"},"_npmVersion":"12.0.1","description":"Outcome scoring and feedback loops for Adaptive MCP.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"@adaptivemcp/spec":"workspace:*","@adaptivemcp/memory":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/evaluation_0.2.0_1784422733420_0.373986714045627","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@adaptivemcp/evaluation","version":"0.2.1","_id":"@adaptivemcp/evaluation@0.2.1","maintainers":[{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"}],"dist":{"shasum":"3d41325601e7da5eebf284db23d5b36fb629e973","tarball":"https://registry.npmjs.org/@adaptivemcp/evaluation/-/evaluation-0.2.1.tgz","fileCount":10,"integrity":"sha512-BGEdAsK5KP9W8JULN3U6NUDwdCMHN/RdvagpEiA3VUfdMos7W3eBpzR2Bw1dGZaXu/ZcrgYSCLL4T3MoNzf+6w==","signatures":[{"sig":"MEUCIQCdtiZHMsaaKs+uC9rXe96Kslz3wKSaOWoJpY9tAXlwuQIgfOupacWyh21KUF33pZYhEthOZrrL+Xj305riPH2gRvY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8373},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"ab944f02101e63d3ee95f2f22e737b56193be024","scripts":{"test":"vitest run --config ../../vitest.config.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"},"_npmVersion":"12.0.1","description":"Outcome scoring and feedback loops for Adaptive MCP.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"@adaptivemcp/spec":"workspace:*","@adaptivemcp/memory":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/evaluation_0.2.1_1784423845966_0.752815045144094","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@adaptivemcp/evaluation","version":"0.2.2","license":"MIT","_id":"@adaptivemcp/evaluation@0.2.2","maintainers":[{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"}],"dist":{"shasum":"8499aadc91e57224babf962c6e4c0871b8baff62","tarball":"https://registry.npmjs.org/@adaptivemcp/evaluation/-/evaluation-0.2.2.tgz","fileCount":10,"integrity":"sha512-AvcBZIGZOthlOyS9yhB0TROkW+W70+AzjNcVdgssPdpuRgxWbGLjxQbbTRDnbTBED8xReBiftiHAgLkiAhwg4Q==","signatures":[{"sig":"MEUCIAllp9EpFkOt5YwypG/kF1NejSrcNumm8XoTF78IT/MPAiEA+g8ZiXBk/M0rf0CQ7vgvMjJAmkEzvVekmDtvPkjRLBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8396},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"1e65d4d6c3ddd569340aea01b27469c545474896","scripts":{"test":"vitest run --config ../../vitest.config.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"},"_npmVersion":"12.0.1","description":"Outcome scoring and feedback loops for Adaptive MCP.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"@adaptivemcp/spec":"workspace:*","@adaptivemcp/memory":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/evaluation_0.2.2_1784432913090_0.40836977084991033","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@adaptivemcp/evaluation","version":"0.2.3","license":"MIT","_id":"@adaptivemcp/evaluation@0.2.3","maintainers":[{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"}],"dist":{"shasum":"4d7aad79f7d5018686c25794c0fdefa924ee8d9d","tarball":"https://registry.npmjs.org/@adaptivemcp/evaluation/-/evaluation-0.2.3.tgz","fileCount":10,"integrity":"sha512-smTNE8GO0Tltl71VJBYKA5dvSjjhPb9ZRiJjei8vNC9dLc+xWUDkbkGF2Ht9zifdjQ5hQc7ei4gazRmXQpkedQ==","signatures":[{"sig":"MEUCIQDylD7xFGjk5lvz6s822Rghwy+kSyCf8zwQ03Qx3vru7QIgKSq/U6my8Iyrx9v7icT9QuKwXZnlM8ZuoTuv9B+oT3o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8399},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"507cfadb2e49ddec1f96ce96023d3bd8f01c17a1","scripts":{"test":"vitest run --config ../../vitest.config.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"},"_npmVersion":"12.0.1","description":"Outcome scoring and feedback loops for Adaptive MCP.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"@adaptivemcp/spec":"workspace:*","@adaptivemcp/memory":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/evaluation_0.2.3_1784442193691_0.3043009123613878","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@adaptivemcp/evaluation","version":"0.2.4","license":"MIT","_id":"@adaptivemcp/evaluation@0.2.4","maintainers":[{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"}],"dist":{"shasum":"c1ae34be618bbeea1fd8ae38e87f9c316cdcafa4","tarball":"https://registry.npmjs.org/@adaptivemcp/evaluation/-/evaluation-0.2.4.tgz","fileCount":10,"integrity":"sha512-FyoIwf8+A9zbbExvCgf2nzMi2lGra++o1x61k8pBHOJCUA57qqXnT05tXP6kq2wc/gi5leRuDARhXCj4dZIKSw==","signatures":[{"sig":"MEUCIQDMrSQ/9gPifhpCvojIUS/OTdmBFG48ihNiQFps+QaWOgIgVWy3YofhZ7aLTcNCdGc9bxKsGnomHTiqbUz07IstWg4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8327},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"72b57ab2c6e3a08fc0a5446bb57e8bd75dd51477","scripts":{"test":"vitest run --config ../../vitest.config.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"},"_npmVersion":"12.0.1","description":"Outcome scoring and feedback loops for Adaptive MCP.","directories":{},"_nodeVersion":"26.5.0","dependencies":{"@adaptivemcp/spec":"workspace:*","@adaptivemcp/memory":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/evaluation_0.2.4_1784448360078_0.33732640094494437","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@adaptivemcp/evaluation","version":"0.2.5","description":"Outcome scoring and feedback loops for Adaptive MCP.","license":"MIT","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.json","test":"vitest run --config ../../vitest.config.ts"},"dependencies":{"@adaptivemcp/spec":"workspace:*","@adaptivemcp/memory":"workspace:*"},"devDependencies":{"typescript":"^5.6.0","vitest":"^2.1.0"},"gitHead":"00b51e676ad298a079f5de73e5cbea411fae39f2","_id":"@adaptivemcp/evaluation@0.2.5","_nodeVersion":"26.5.0","_npmVersion":"12.0.1","dist":{"integrity":"sha512-B2q31NU1s/6+OmBIIFf0x45wu0/lJFdYfpxopFAEvWGxnpglaQLlWl2vnKdwejbJl5jcvaL9xQnVKrBMkF/NUA==","shasum":"2ff06595f48c149f91bfdab2bc54036a8e40e75c","tarball":"https://registry.npmjs.org/@adaptivemcp/evaluation/-/evaluation-0.2.5.tgz","fileCount":10,"unpackedSize":8327,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD3A01/NWCeYwhyId6/AzkPdcdn91oy0NCoARKZEpPFggIgYJtR6DO4wh6xTrofkrAkWor808/VGOeNuio3uQwiuA8="}]},"_npmUser":{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"},"directories":{},"maintainers":[{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/evaluation_0.2.5_1784457340727_0.6294644283617166"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-19T00:58:53.317Z","modified":"2026-07-19T10:35:41.053Z","0.2.0":"2026-07-19T00:58:53.593Z","0.2.1":"2026-07-19T01:17:26.114Z","0.2.2":"2026-07-19T03:48:33.219Z","0.2.3":"2026-07-19T06:23:13.830Z","0.2.4":"2026-07-19T08:06:00.213Z","0.2.5":"2026-07-19T10:35:40.864Z"},"license":"MIT","description":"Outcome scoring and feedback loops for Adaptive MCP.","maintainers":[{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"}],"readme":"# @adaptivemcp/evaluation\n\nOutcome scoring and feedback loops for Adaptive MCP.\n\n`evaluation` is the **evaluate → remember** step of the adaptation loop. It\nreads the store stats from `@adaptivemcp/memory` and writes derived `Insight`s\nback. For example, an `observed_failure_rate` or `avg_duration_ms` signal emerges\nonly once enough samples accumulate.\n\n## Install\n\n```bash\nnpm i @adaptivemcp/evaluation\n```\n\nRequires **Node 22+** (Node 26 recommended).\n\n## Usage\n\n```ts\nimport { MemoryStore } from \"@adaptivemcp/memory\";\nimport { Evaluator } from \"@adaptivemcp/evaluation\";\n\nconst store = new MemoryStore({ path: \":memory:\" });\nconst evaluator = new Evaluator({ memory: store });\n\n// After enough telemetry has accumulated:\nconst insights = evaluator.evaluateAll();\n// e.g. [{ toolName: \"deploy_service\", key: \"observed_failure_rate\", value: 0.12, ... }]\n```\n\n## API\n\n| Method | Purpose |\n| --- | --- |\n| `evaluateTool(toolName)` | Evaluate a single tool; persist and return derived insights. |\n| `evaluateAll()` | Evaluate every known tool. |\n\n### Defaults\n\n| Option | Default | Meaning |\n| --- | --- | --- |\n| `failureRateThreshold` | `0.1` | Failure rate at/above which a `observed_failure_rate` insight is emitted. |\n| `minInvocations` | `10` | Minimum invocations before a tool is evaluated (avoids low-sample noise). |\n\nInsights emitted: `observed_failure_rate` and `avg_duration_ms`.\n\n## License\n\nReleased under the [MIT License](../../LICENSE). Copyright (c) 2026 Kemal Elmizan.\n","readmeFilename":"README.md"}