{"_id":"@adaptivemcp/spec","_rev":"6-00c8fcb61fc8167446b019fa7aade654","name":"@adaptivemcp/spec","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@adaptivemcp/spec","version":"0.1.0","_id":"@adaptivemcp/spec@0.1.0","maintainers":[{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"}],"dist":{"shasum":"0820e76c33618e9ced3d095940a67b2bd1570d47","tarball":"https://registry.npmjs.org/@adaptivemcp/spec/-/spec-0.1.0.tgz","fileCount":21,"integrity":"sha512-MCvInpgzxIA5TpMr2LnHWWKNr7bd7NJ5ejU9AwcvA1kaU7krACoRffFYgIl0PmkWz/yeVOGytarj8uRlakR8hQ==","signatures":[{"sig":"MEQCIF3RHFkbJ8BVznsrHLjCuxUCEHwGRYkIbpm5l67bPdRpAiBidMsZhwLQFqmnF9oUbz5+yd30uRXdib7bQHvPEy3/Fw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14113},"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":"Extension identifiers, event schemas, and shared types for Adaptive MCP.","directories":{},"_nodeVersion":"26.5.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/spec_0.1.0_1784422724222_0.642646062709499","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@adaptivemcp/spec","version":"0.1.1","_id":"@adaptivemcp/spec@0.1.1","maintainers":[{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"}],"dist":{"shasum":"310b1d0e2e326a8ea39031491024bcfc7f382fdb","tarball":"https://registry.npmjs.org/@adaptivemcp/spec/-/spec-0.1.1.tgz","fileCount":22,"integrity":"sha512-lOPYaUZsm7Dicjr0FH/REP8fAS/NyTZiyltkZeUO3rDB8uM4sPo2kH8VOvn33gVD4ydQVy58g2Sn6XWi5GFmqQ==","signatures":[{"sig":"MEQCIB+I8tKF8kygRgoeNxnCJcp7foJxXY6grLNI1b1lT7HuAiAkUTQcIXJ82albSwA211JvD7Czvm0/feBJPbAaMCER/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16777},"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":"Extension identifiers, event schemas, and shared types for Adaptive MCP.","directories":{},"_nodeVersion":"26.5.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/spec_0.1.1_1784423833965_0.4742210253879262","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@adaptivemcp/spec","version":"0.1.2","license":"MIT","_id":"@adaptivemcp/spec@0.1.2","maintainers":[{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"}],"dist":{"shasum":"d829182926f5ed2600846707d07584d7589be774","tarball":"https://registry.npmjs.org/@adaptivemcp/spec/-/spec-0.1.2.tgz","fileCount":22,"integrity":"sha512-y42YO7JE+3eNfqDYrYN7jLUSVAF/YZRkfYVr2e/Nv8cUA97+rOFwhqxZXMJHL10H/a4vrEnjpE6j/ZyUwlE6RA==","signatures":[{"sig":"MEQCIFM+vvLYzXatx1CcYjnwENCiZAIuz40rFeMBwODkX0nfAiBIwQZKOILOxVR3cQpYsVrNLVDQ4g6P71AXvXQ69u9MqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16790},"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":"Extension identifiers, event schemas, and shared types for Adaptive MCP.","directories":{},"_nodeVersion":"26.5.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/spec_0.1.2_1784432903871_0.8451486278681344","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@adaptivemcp/spec","version":"0.1.3","license":"MIT","_id":"@adaptivemcp/spec@0.1.3","maintainers":[{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"}],"dist":{"shasum":"f0baf071e2e47d20f4a1f197476c151e968e1da5","tarball":"https://registry.npmjs.org/@adaptivemcp/spec/-/spec-0.1.3.tgz","fileCount":22,"integrity":"sha512-rd47KDb9ME09QRulxUf9uCim/fz9GBiXnUAcTLj1NFBFlWRWmHXyL9jtDopKcCmtlNgzUIJVjsdUfTiTfNgeXg==","signatures":[{"sig":"MEUCIAzG4Q5kUpj5iGPH+idegAvs9s573bxhL2qDvkPWgC32AiEA6y+ufU5CsK7zlPMCEcuVNJZnkmaShmBXFfJD/70bwHQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16766},"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":"Extension identifiers, event schemas, and shared types for Adaptive MCP.","directories":{},"_nodeVersion":"26.5.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/spec_0.1.3_1784442184415_0.8045719255377133","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@adaptivemcp/spec","version":"0.2.0","license":"MIT","_id":"@adaptivemcp/spec@0.2.0","maintainers":[{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"}],"dist":{"shasum":"48d0aa2a38416eec621e254e68360d55f033a26c","tarball":"https://registry.npmjs.org/@adaptivemcp/spec/-/spec-0.2.0.tgz","fileCount":22,"integrity":"sha512-VL+lX4gq+q3sVpcu57tgXlL3fDVPmfFvGYBEF4jnSlz3JeGakV/90C1g3rLja796/TrWwHDDgHM/jWc0cPDLxg==","signatures":[{"sig":"MEUCICBM6Tv3+MgMoUr0mghSoFR9iB2Go3G1W6gnjVbQEBdRAiEAxVRgHfDcVtTgfduNM71OirMLaYalY2OYTILlmgyU+zE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18990},"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":"Extension identifiers, event schemas, and shared types for Adaptive MCP.","directories":{},"_nodeVersion":"26.5.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/spec_0.2.0_1784448343217_0.7588519285385837","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@adaptivemcp/spec","version":"0.2.1","description":"Extension identifiers, event schemas, and shared types 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"},"devDependencies":{"typescript":"^5.6.0","vitest":"^2.1.0"},"gitHead":"00b51e676ad298a079f5de73e5cbea411fae39f2","_id":"@adaptivemcp/spec@0.2.1","_nodeVersion":"26.5.0","_npmVersion":"12.0.1","dist":{"integrity":"sha512-R86EeQ8Vrfy6jK9gzEnscD304fBpkR7g0/Oi4RMgelVqwalEzQhcOzJidbZ2kIR0YjXjOt71QsNEhbGuyTKitA==","shasum":"586e6a9074cfa1e1544db3fbc7ad7bf25165a521","tarball":"https://registry.npmjs.org/@adaptivemcp/spec/-/spec-0.2.1.tgz","fileCount":22,"unpackedSize":19954,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB3Co3m4fJlGZ0A38j8Sa4e1XXHsqpgz3pHrxZHVAB7TAiEA5bWJ83inOWszPKohpbds4qyfH5y5yzaDjwqZF3u6BHo="}]},"_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/spec_0.2.1_1784457327630_0.8784071640005626"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-19T00:58:44.123Z","modified":"2026-07-19T10:35:27.930Z","0.1.0":"2026-07-19T00:58:44.351Z","0.1.1":"2026-07-19T01:17:14.097Z","0.1.2":"2026-07-19T03:48:24.001Z","0.1.3":"2026-07-19T06:23:04.559Z","0.2.0":"2026-07-19T08:05:43.361Z","0.2.1":"2026-07-19T10:35:27.767Z"},"license":"MIT","description":"Extension identifiers, event schemas, and shared types for Adaptive MCP.","maintainers":[{"name":"kemalelmizan","email":"kemalelmizan@gmail.com"}],"readme":"# @adaptivemcp/spec\n\nExtension identifiers, event schemas, and shared types for Adaptive MCP.\n\nThis package is the dependency-light foundation every other `@adaptivemcp/*`\npackage builds on. It owns the canonical identifiers (the SEP-2133\n`dev.adaptivemcp/` namespace), the `ToolExecutionEvent` observation schema, and\nthe shared `ToolRecord` / `Insight` / `Recommendation` / `Annotation` types.\n\n> MCP sets the contract; Adaptive MCP learns the behavior. `spec` defines the\n> vocabulary both sides speak.\n\n## Install\n\n```bash\nnpm i @adaptivemcp/spec\n```\n\nRequires **Node 22+** (Node 26 recommended; native TypeScript type stripping; no build step needed to\nconsume the published types).\n\n## What's inside\n\n| Export | Purpose |\n| --- | --- |\n| `EXTENSION_NAMESPACE` | `\"dev.adaptivemcp/\"`: the reversed-domain namespace. |\n| `TOOLS_METADATA_EXTENSION` | `\"dev.adaptivemcp/tools-metadata\"`: the single proposed MCP extension (SEP-2133) resource identifier. |\n| `PACKAGE_IDENTIFIERS` | Internal reversed-domain identifiers for client-side packages (namespacing only, not advertised as extensions). |\n| `isExtensionIdentifier(value)` | Predicate: does a string start with `dev.adaptivemcp/`? |\n| `packageIdentifier(name)` | Resolve an internal package identifier by name. |\n| `ToolExecutionEvent` | The atomic observation of a tool execution (feeds telemetry, evaluation, memory). |\n| `ToolRecord`, `ToolStats` | The persisted shape of a tool's metadata and observed stats. |\n| `Insight`, `Recommendation`, `Annotation` | Learned / advised / static metadata about a tool. |\n| `createToolEvent(ctx, status, extra?)` | Ergonomic constructor for `ToolExecutionEvent`. |\n| `SPEC_VERSION` | The spec version this package implements. |\n\n## Example\n\n```ts\nimport {\n  TOOLS_METADATA_EXTENSION,\n  EXTENSION_NAMESPACE,\n  isExtensionIdentifier,\n  createToolEvent,\n} from \"@adaptivemcp/spec\";\n\nconsole.log(TOOLS_METADATA_EXTENSION); // \"dev.adaptivemcp/tools-metadata\"\nconsole.log(isExtensionIdentifier(\"dev.adaptivemcp/tools-metadata\")); // true\n\nconst event = createToolEvent(\n  { toolName: \"deploy_service\", serverName: \"ci\" },\n  \"completed\",\n  { durationMs: 1200, model: \"gpt-5-mini\" },\n);\n```\n\n## Relationship to MCP\n\n`spec` does **not** introduce new MCP primitives. It defines the identifiers and\ntypes used by `@adaptivemcp/extension`, which exposes a single\n`dev.adaptivemcp/tools-metadata` **resource** (SEP-2133 compliant — a server\ngoverns static policy, clients learn and report back). See\n[`docs/sep-2133-tools-metadata.md`](../../docs/sep-2133-tools-metadata.md).\n\n## License\n\nReleased under the [MIT License](../../LICENSE). Copyright (c) 2026 Kemal Elmizan.\n","readmeFilename":"README.md"}