{"_id":"@synapsor/spec","_rev":"28-4988f8ee1f831827b64517a6d9dc6147","name":"@synapsor/spec","dist-tags":{"next":"1.8.0","latest":"1.10.0"},"versions":{"0.1.0":{"name":"@synapsor/spec","version":"0.1.0","keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"license":"Apache-2.0","_id":"@synapsor/spec@0.1.0","maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"bin":{"synapsor-spec":"dist/cli.js"},"dist":{"shasum":"a77929e242a87946076801bfc8a5026d4ae96dd3","tarball":"https://registry.npmjs.org/@synapsor/spec/-/spec-0.1.0.tgz","fileCount":59,"integrity":"sha512-FtwNAV5gkSyHL0wz0dRzDci7EIrJkC9Bnv0VmfbbqtXO3/03yCw6ChW6O0zUO4vf5ZaKFdXkMaxG4ptdseFtWw==","signatures":[{"sig":"MEQCIB3TvEomZSXYztpN4nOV+TCFHSaq97QRkMhIjdOGIqGGAiBHOBOQOwUwIWU3k5thhRP3IiEJaIVUuNR42eLbTaSvVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103777},"main":"dist/index.js","type":"module","_from":"file:synapsor-spec-0.1.0.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"test":"vitest run","build":"tsc -b"},"_npmUser":{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"},"_resolved":"/tmp/4b7d00944721a4a8ccc2579cbb289b45/synapsor-spec-0.1.0.tgz","_integrity":"sha512-FtwNAV5gkSyHL0wz0dRzDci7EIrJkC9Bnv0VmfbbqtXO3/03yCw6ChW6O0zUO4vf5ZaKFdXkMaxG4ptdseFtWw==","_npmVersion":"10.9.7","description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spec_0.1.0_1783297054653_0.22695733995015455","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@synapsor/spec","version":"0.1.1","keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"license":"Apache-2.0","_id":"@synapsor/spec@0.1.1","maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"homepage":"https://github.com/Synapsor/Synapsor-Runner/tree/main/packages/spec#readme","bugs":{"url":"https://github.com/Synapsor/Synapsor-Runner/issues"},"bin":{"synapsor-spec":"dist/cli.js"},"dist":{"shasum":"a9d4fc9bd06c1b1cda21d13a6d3671ea7f62facf","tarball":"https://registry.npmjs.org/@synapsor/spec/-/spec-0.1.1.tgz","fileCount":59,"integrity":"sha512-c0t0x261I/3k+7y6hOCrB+aIEz4rnAGASDzZEI3eMZOPLZzKrRzz9V0M4USVYuvfwHybLEhd8Wf1cjIl5cZGFw==","signatures":[{"sig":"MEQCIGlmUCS8mubLA3cm7GZOMXOUr+xKiysvzBLe/G2KV7uBAiBHzYwua9jjZQrCWhI+5NuvR0FVkW0EIQDp3OmLDq0hKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104449},"main":"dist/index.js","type":"module","_from":"file:synapsor-spec-0.1.1.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"test":"vitest run","build":"tsc -b"},"_npmUser":{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"},"_resolved":"/tmp/d02f472a610767a771b8e1637350f0c1/synapsor-spec-0.1.1.tgz","_integrity":"sha512-c0t0x261I/3k+7y6hOCrB+aIEz4rnAGASDzZEI3eMZOPLZzKrRzz9V0M4USVYuvfwHybLEhd8Wf1cjIl5cZGFw==","repository":{"url":"git+https://github.com/Synapsor/Synapsor-Runner.git","type":"git","directory":"packages/spec"},"_npmVersion":"10.9.7","description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spec_0.1.1_1783308871626_0.8575620632073804","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@synapsor/spec","version":"0.1.2","keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"license":"Apache-2.0","_id":"@synapsor/spec@0.1.2","maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"homepage":"https://github.com/Synapsor/Synapsor-Runner/tree/main/packages/spec#readme","bugs":{"url":"https://github.com/Synapsor/Synapsor-Runner/issues"},"bin":{"synapsor-spec":"dist/cli.js"},"dist":{"shasum":"5a721abb2bea403bf40dc9602becb6c1fed1931c","tarball":"https://registry.npmjs.org/@synapsor/spec/-/spec-0.1.2.tgz","fileCount":62,"integrity":"sha512-pSQO+dPuAyiXAsJSh5N8tcfYRM4h4LPvuP5I4CdLo9jaWj+NPIc39RQyhC78h/3OyZfJYJFFg/TkMY3SsIWu7A==","signatures":[{"sig":"MEMCIHhLxR024YIiYv1PSBAMinsC6gaRiuW+A28ANOw1kiyUAh9iD1r7sS8bvOwOcBKDFjbZv/xYkj8Oy/hclYvXWmUi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117147},"main":"dist/index.js","type":"module","_from":"file:synapsor-spec-0.1.2.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"test":"vitest run","build":"tsc -b"},"_npmUser":{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"},"_resolved":"/tmp/fe4c16f099b781dba5807113b0ece1d3/synapsor-spec-0.1.2.tgz","_integrity":"sha512-pSQO+dPuAyiXAsJSh5N8tcfYRM4h4LPvuP5I4CdLo9jaWj+NPIc39RQyhC78h/3OyZfJYJFFg/TkMY3SsIWu7A==","repository":{"url":"git+https://github.com/Synapsor/Synapsor-Runner.git","type":"git","directory":"packages/spec"},"_npmVersion":"10.9.7","description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spec_0.1.2_1783533323969_0.42865456342787756","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@synapsor/spec","version":"0.1.3","keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"license":"Apache-2.0","_id":"@synapsor/spec@0.1.3","maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"homepage":"https://github.com/Synapsor/Synapsor-Runner/tree/main/packages/spec#readme","bugs":{"url":"https://github.com/Synapsor/Synapsor-Runner/issues"},"bin":{"synapsor-spec":"dist/cli.js"},"dist":{"shasum":"81ab57309b8d2aaa3e09ffc5d84f07a5a235a4ed","tarball":"https://registry.npmjs.org/@synapsor/spec/-/spec-0.1.3.tgz","fileCount":65,"integrity":"sha512-rOIogAFmh7zpeD4Uk3yq8TGPaC2y2FyT/iQ1Z3JI0cljdecKnPljl9ZTZvbPTBmBfd81UfiHuOWVD4CxIbsEqQ==","signatures":[{"sig":"MEUCIHVHnyl/t05nv/wrt0Xftdw1ABBdM3/LOx6LJBWQAvYCAiEA8bnBjHaJxjDMNsXCZ28pMek0vmr7dXTDXz3e9a+0W2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130632},"main":"dist/index.js","type":"module","_from":"file:synapsor-spec-0.1.3.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"test":"vitest run","build":"tsc -b"},"_npmUser":{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"},"_resolved":"/tmp/7eff97e9c113c709543f6a20739fdf83/synapsor-spec-0.1.3.tgz","_integrity":"sha512-rOIogAFmh7zpeD4Uk3yq8TGPaC2y2FyT/iQ1Z3JI0cljdecKnPljl9ZTZvbPTBmBfd81UfiHuOWVD4CxIbsEqQ==","repository":{"url":"git+https://github.com/Synapsor/Synapsor-Runner.git","type":"git","directory":"packages/spec"},"_npmVersion":"10.9.7","description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spec_0.1.3_1783619575553_0.4140624585274906","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@synapsor/spec","version":"0.1.4","keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"license":"Apache-2.0","_id":"@synapsor/spec@0.1.4","maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"homepage":"https://github.com/Synapsor/Synapsor-Runner/tree/main/packages/spec#readme","bugs":{"url":"https://github.com/Synapsor/Synapsor-Runner/issues"},"bin":{"synapsor-spec":"dist/cli.js"},"dist":{"shasum":"b407c0a88d34f25430043dba592d49f1ae413dbc","tarball":"https://registry.npmjs.org/@synapsor/spec/-/spec-0.1.4.tgz","fileCount":65,"integrity":"sha512-2vGCUKORuJqsGrIi/IAHou4//sqz9Od2JsvajfeLQma1TQu9rEjgPK4U50xWgGCxwxZdC5SLZ2DZKemMMur7ZA==","signatures":[{"sig":"MEQCIAs3ha+hT0bOsHaOIIgkxKxhjSiuvbkkPLOOnB71wYD+AiA9ZWktoFbWj8WR/BaAt1LQTJedcQxeA2Rh9P8GZWTDSg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131299},"main":"dist/index.js","type":"module","_from":"file:synapsor-spec-0.1.4.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"test":"vitest run","build":"tsc -b"},"_npmUser":{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"},"_resolved":"/tmp/fecd3b168ecbba8859dec11c85cc1058/synapsor-spec-0.1.4.tgz","_integrity":"sha512-2vGCUKORuJqsGrIi/IAHou4//sqz9Od2JsvajfeLQma1TQu9rEjgPK4U50xWgGCxwxZdC5SLZ2DZKemMMur7ZA==","repository":{"url":"git+https://github.com/Synapsor/Synapsor-Runner.git","type":"git","directory":"packages/spec"},"_npmVersion":"10.9.7","description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spec_0.1.4_1783630436691_0.02340644988517049","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@synapsor/spec","version":"1.0.0","keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"license":"Apache-2.0","_id":"@synapsor/spec@1.0.0","maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"homepage":"https://github.com/Synapsor/Synapsor-Runner/tree/main/packages/spec#readme","bugs":{"url":"https://github.com/Synapsor/Synapsor-Runner/issues"},"bin":{"synapsor-spec":"dist/cli.js"},"dist":{"shasum":"628238108bb2db98cd98c5c755a25126b3c3887d","tarball":"https://registry.npmjs.org/@synapsor/spec/-/spec-1.0.0.tgz","fileCount":68,"integrity":"sha512-Dn4TbBs6+TntAg1NjA2xohPG8cyW8fIaHMUI72EiNvlpORZkj2IN/pDe2EN6UN+6Fyf7BFY3FH0ouIS1inCVnw==","signatures":[{"sig":"MEQCIED/ec5GICLr0A/xamhHT7cClRxqFftvPSCkSGNmNFQnAiAodTf+KItyljxkQOD/WYCdtUW4gJv0guuIYPXsZFuHrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139114},"main":"dist/index.js","type":"module","_from":"file:synapsor-spec-1.0.0.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"test":"vitest run","build":"tsc -b"},"_npmUser":{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"},"_resolved":"/tmp/ab5f81715fd31619cfc588047ebb0331/synapsor-spec-1.0.0.tgz","_integrity":"sha512-Dn4TbBs6+TntAg1NjA2xohPG8cyW8fIaHMUI72EiNvlpORZkj2IN/pDe2EN6UN+6Fyf7BFY3FH0ouIS1inCVnw==","repository":{"url":"git+https://github.com/Synapsor/Synapsor-Runner.git","type":"git","directory":"packages/spec"},"_npmVersion":"10.9.7","description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spec_1.0.0_1783834833436_0.37945926766246485","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@synapsor/spec","version":"1.1.0","keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"license":"Apache-2.0","_id":"@synapsor/spec@1.1.0","maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"homepage":"https://github.com/Synapsor/Synapsor-Runner/tree/main/packages/spec#readme","bugs":{"url":"https://github.com/Synapsor/Synapsor-Runner/issues"},"bin":{"synapsor-spec":"dist/cli.js"},"dist":{"shasum":"7a62d400b95db7315e9379f18f21fbcfa16f3d30","tarball":"https://registry.npmjs.org/@synapsor/spec/-/spec-1.1.0.tgz","fileCount":71,"integrity":"sha512-2ie5zN2mXNtdG/wa6WdubTQ9w8GEFIOXHqZKk9XA0e1lXpQqCqHp352OZYdGjN/xPv+u2T8NE1wfkAdNnyOlTQ==","signatures":[{"sig":"MEYCIQC8y1e4h8kstQL5J1grMv5QD1tFuvE6mUJZRIQ9/x5wLgIhAJVLtK0OdE2JVRogJ5uIauFEeMo3GtS/P5VMT1l3MyON","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141908},"main":"dist/index.js","type":"module","_from":"file:synapsor-spec-1.1.0.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"test":"vitest run","build":"tsc -b"},"_npmUser":{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"},"_resolved":"/tmp/d782e61ab8e735661d20efa74cf434cb/synapsor-spec-1.1.0.tgz","_integrity":"sha512-2ie5zN2mXNtdG/wa6WdubTQ9w8GEFIOXHqZKk9XA0e1lXpQqCqHp352OZYdGjN/xPv+u2T8NE1wfkAdNnyOlTQ==","repository":{"url":"git+https://github.com/Synapsor/Synapsor-Runner.git","type":"git","directory":"packages/spec"},"_npmVersion":"10.9.7","description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spec_1.1.0_1783915553236_0.3679180075769177","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@synapsor/spec","version":"1.4.0","keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"license":"Apache-2.0","_id":"@synapsor/spec@1.4.0","maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"homepage":"https://github.com/Synapsor/Synapsor-Runner/tree/main/packages/spec#readme","bugs":{"url":"https://github.com/Synapsor/Synapsor-Runner/issues"},"bin":{"synapsor-spec":"dist/cli.js"},"dist":{"shasum":"2e7762282a5f8aabed108615efedc6f6fbbffed0","tarball":"https://registry.npmjs.org/@synapsor/spec/-/spec-1.4.0.tgz","fileCount":77,"integrity":"sha512-gKqDnhiY6Yf8SuC3lGWTIpgia0KpnM7W01CgXGpSeTsigBCp2EESyAXnxVmZ0TibrYDd3lb3FU8ShwLJIdDbbg==","signatures":[{"sig":"MEUCIEd62ekjipzWyIilRgc3S+tUz6Uy+3ZE+vYjnLJpDEQJAiEA8qEGHq7/+dD+ZDOGhaSzt/UjKt3+Oc8p8KEEOIWdFM8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186124},"main":"dist/index.js","type":"module","_from":"file:synapsor-spec-1.4.0.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"test":"vitest run","build":"tsc -b"},"_npmUser":{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"},"_resolved":"/tmp/f2af80ece2eab90ecfe04fdd365785d9/synapsor-spec-1.4.0.tgz","_integrity":"sha512-gKqDnhiY6Yf8SuC3lGWTIpgia0KpnM7W01CgXGpSeTsigBCp2EESyAXnxVmZ0TibrYDd3lb3FU8ShwLJIdDbbg==","repository":{"url":"git+https://github.com/Synapsor/Synapsor-Runner.git","type":"git","directory":"packages/spec"},"_npmVersion":"10.9.7","description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spec_1.4.0_1784007567865_0.8540816257530317","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@synapsor/spec","version":"1.4.1","keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"license":"Apache-2.0","_id":"@synapsor/spec@1.4.1","maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"homepage":"https://github.com/Synapsor/Synapsor-Runner/tree/main/packages/spec#readme","bugs":{"url":"https://github.com/Synapsor/Synapsor-Runner/issues"},"bin":{"synapsor-spec":"dist/cli.js"},"dist":{"shasum":"ddd6e5e6fda0723c81210bc27e2a55c52568c0a6","tarball":"https://registry.npmjs.org/@synapsor/spec/-/spec-1.4.1.tgz","fileCount":80,"integrity":"sha512-5/rty0DLciHFqHVyrNnNyiXh+93OZ4QOGg1RxZehDk50nQjd9dOqUZJjz7dY8lg//eG88wDvWzh/l0i7Ok60Tg==","signatures":[{"sig":"MEUCICGjCM/fHvG0wmCj4O7jHRN9BIaVzjfsgSf13JFjc87lAiEA0OLbibakyLaKmunZbkvH9egEB4rumxBgXYuisaFPhRk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197962},"main":"dist/index.js","type":"module","_from":"file:synapsor-spec-1.4.1.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"test":"vitest run","build":"tsc -b"},"_npmUser":{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"},"_resolved":"/tmp/b8cbbc4fee4182660371cec53f1b8fa8/synapsor-spec-1.4.1.tgz","_integrity":"sha512-5/rty0DLciHFqHVyrNnNyiXh+93OZ4QOGg1RxZehDk50nQjd9dOqUZJjz7dY8lg//eG88wDvWzh/l0i7Ok60Tg==","repository":{"url":"git+https://github.com/Synapsor/Synapsor-Runner.git","type":"git","directory":"packages/spec"},"_npmVersion":"10.9.7","description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spec_1.4.1_1784080842945_0.48913295836015847","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@synapsor/spec","version":"1.4.2","keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"license":"Apache-2.0","_id":"@synapsor/spec@1.4.2","maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"homepage":"https://github.com/Synapsor/Synapsor-Runner/tree/main/packages/spec#readme","bugs":{"url":"https://github.com/Synapsor/Synapsor-Runner/issues"},"bin":{"synapsor-spec":"dist/cli.js"},"dist":{"shasum":"cb9aa813f481ef14d542a1896c228159aab86353","tarball":"https://registry.npmjs.org/@synapsor/spec/-/spec-1.4.2.tgz","fileCount":83,"integrity":"sha512-35JBfwEeEv9p3fpgzj0b8g5dpfNcbMD6AXGfbC3PQsNG0HEA6nEaCUBnXnBEuawbTl6ocl7EsfYRAKp6+bL84Q==","signatures":[{"sig":"MEUCIQDuuyFqoRfMlKl0I7nOBzNPrIhHXzWmVYdidcNHecMCHgIgEK1GM4N3DFKjsx+A8FGkjTCAjqvxD15xsJUJ5ZGAqPc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205899},"main":"dist/index.js","type":"module","_from":"file:synapsor-spec-1.4.2.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"test":"vitest run","build":"tsc -b"},"_npmUser":{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"},"_resolved":"/tmp/15deca49260bd09ae994dc20edb86ba5/synapsor-spec-1.4.2.tgz","_integrity":"sha512-35JBfwEeEv9p3fpgzj0b8g5dpfNcbMD6AXGfbC3PQsNG0HEA6nEaCUBnXnBEuawbTl6ocl7EsfYRAKp6+bL84Q==","repository":{"url":"git+https://github.com/Synapsor/Synapsor-Runner.git","type":"git","directory":"packages/spec"},"_npmVersion":"10.9.7","description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spec_1.4.2_1784252763952_0.12228959792981775","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@synapsor/spec","version":"1.5.0","keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"license":"Apache-2.0","_id":"@synapsor/spec@1.5.0","maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"homepage":"https://github.com/Synapsor/Synapsor-Runner/tree/main/packages/spec#readme","bugs":{"url":"https://github.com/Synapsor/Synapsor-Runner/issues"},"bin":{"synapsor-spec":"dist/cli.js"},"dist":{"shasum":"e167ccff21e0a511bbe0758d0a918fdd59b03b4d","tarball":"https://registry.npmjs.org/@synapsor/spec/-/spec-1.5.0.tgz","fileCount":83,"integrity":"sha512-u2OeQPThfCBa6z4qDnE0mPa3zii7j2/GIXPPOFcJLdKpHRB8EmJwFvrEn7EHsasgSXWSQJzmEXS6ueAsyIUGVw==","signatures":[{"sig":"MEQCIFuN4tJb0EQfplNslzLgg5xlX1NoRJQUVBJpHLtPiOyOAiAarXj8Z8mGJiRpDkeCKfmKzRnH1OjV7Zi3T5H0H+sUPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":247777},"main":"dist/index.js","type":"module","_from":"file:synapsor-spec-1.5.0.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"test":"vitest run","build":"tsc -b"},"_npmUser":{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"},"_resolved":"/tmp/274be9ba74760b3089c628110f25a898/synapsor-spec-1.5.0.tgz","_integrity":"sha512-u2OeQPThfCBa6z4qDnE0mPa3zii7j2/GIXPPOFcJLdKpHRB8EmJwFvrEn7EHsasgSXWSQJzmEXS6ueAsyIUGVw==","repository":{"url":"git+https://github.com/Synapsor/Synapsor-Runner.git","type":"git","directory":"packages/spec"},"_npmVersion":"10.9.7","description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spec_1.5.0_1784825623993_0.21448768430365917","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@synapsor/spec","version":"1.6.0","keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"license":"Apache-2.0","_id":"@synapsor/spec@1.6.0","maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"homepage":"https://github.com/Synapsor/Synapsor-Runner/tree/main/packages/spec#readme","bugs":{"url":"https://github.com/Synapsor/Synapsor-Runner/issues"},"bin":{"synapsor-spec":"dist/cli.js"},"dist":{"shasum":"cc162e525dc36e2aaa9dd7953465f2ba7bdbf042","tarball":"https://registry.npmjs.org/@synapsor/spec/-/spec-1.6.0.tgz","fileCount":83,"integrity":"sha512-idfLzfFKbHzrUPLFU6lMKVCXDQtZ566d2VyL1nI8oE4qcbzb/g6ZHr+RAuFy6qRPRZ9E7GIBAleDQoTCggfpEw==","signatures":[{"sig":"MEUCIHty9B3yAMyFT16kUhwm29OPyOaXhGeHIEGjeLA6k5/JAiEA+Wfkh8M1FzBidn1C7j9SujdXYGm77ooFhKxnQc+rHJY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":250976},"main":"dist/index.js","type":"module","_from":"file:synapsor-spec-1.6.0.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"test":"vitest run","build":"tsc -b"},"_npmUser":{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"},"_resolved":"/tmp/1ab5c0ca1d56e942b1b44eaa46a58978/synapsor-spec-1.6.0.tgz","_integrity":"sha512-idfLzfFKbHzrUPLFU6lMKVCXDQtZ566d2VyL1nI8oE4qcbzb/g6ZHr+RAuFy6qRPRZ9E7GIBAleDQoTCggfpEw==","repository":{"url":"git+https://github.com/Synapsor/Synapsor-Runner.git","type":"git","directory":"packages/spec"},"_npmVersion":"10.9.7","description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spec_1.6.0_1784953440586_0.9375887609610634","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@synapsor/spec","version":"1.7.0","keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"license":"Apache-2.0","_id":"@synapsor/spec@1.7.0","maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"homepage":"https://github.com/Synapsor/Synapsor-Runner/tree/main/packages/spec#readme","bugs":{"url":"https://github.com/Synapsor/Synapsor-Runner/issues"},"bin":{"synapsor-spec":"dist/cli.js"},"dist":{"shasum":"d778feb8076b5da167e96e1a793aba4dd2d8bf12","tarball":"https://registry.npmjs.org/@synapsor/spec/-/spec-1.7.0.tgz","fileCount":83,"integrity":"sha512-FGKn/pxYvbh882d0qunQ9ACwDpC4gjhObD0W4lQ+xufCQ6dcFjjoPiCTYn1POBg8D0dRo+nXH+uE3C03VRFY3Q==","signatures":[{"sig":"MEUCIAneUYHW9/EfZNtIAwFjNQya0vHPX+oFQX+eaVcxsWssAiEA+IGFS9JsOnP5hsEyO2o+k1uD4ALP0bmIfS5tqeSMufg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":259680},"main":"dist/index.js","type":"module","_from":"file:synapsor-spec-1.7.0.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"test":"vitest run","build":"tsc -b"},"_npmUser":{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"},"_resolved":"/tmp/0f2372e5a89443d60a34d69758536954/synapsor-spec-1.7.0.tgz","_integrity":"sha512-FGKn/pxYvbh882d0qunQ9ACwDpC4gjhObD0W4lQ+xufCQ6dcFjjoPiCTYn1POBg8D0dRo+nXH+uE3C03VRFY3Q==","repository":{"url":"git+https://github.com/Synapsor/Synapsor-Runner.git","type":"git","directory":"packages/spec"},"_npmVersion":"10.9.7","description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spec_1.7.0_1785044492786_0.8269120358009776","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@synapsor/spec","version":"1.8.0","keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"license":"Apache-2.0","_id":"@synapsor/spec@1.8.0","maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"homepage":"https://github.com/Synapsor/Synapsor-Runner/tree/main/packages/spec#readme","bugs":{"url":"https://github.com/Synapsor/Synapsor-Runner/issues"},"bin":{"synapsor-spec":"dist/cli.js"},"dist":{"shasum":"4bb7a3329f505871617be25dae5c5c087279d5de","tarball":"https://registry.npmjs.org/@synapsor/spec/-/spec-1.8.0.tgz","fileCount":83,"integrity":"sha512-x7GxUqL0xP0Ar2SSujraNmzWvNvl+A5UL6/9supGQpKQIHgVrB9m0tsuMIr1CslBTifHBM9vgJUhZwW0LtGVeA==","signatures":[{"sig":"MEUCIGmWN4dyuPsvzgKMHwRfWhd5DXRxHToqLwQxtu3j2vCfAiEA4b/S3igperFo8ZS8t/6eTzXRNGn4L5Q0XSgSPrqwxCs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264609},"main":"dist/index.js","type":"module","_from":"file:synapsor-spec-1.8.0.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"test":"vitest run","build":"tsc -b"},"_npmUser":{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"},"_resolved":"/tmp/95da6ec663968fbc42d117216e18a399/synapsor-spec-1.8.0.tgz","_integrity":"sha512-x7GxUqL0xP0Ar2SSujraNmzWvNvl+A5UL6/9supGQpKQIHgVrB9m0tsuMIr1CslBTifHBM9vgJUhZwW0LtGVeA==","repository":{"url":"git+https://github.com/Synapsor/Synapsor-Runner.git","type":"git","directory":"packages/spec"},"_npmVersion":"10.9.7","description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spec_1.8.0_1785788201063_0.687547574680381","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@synapsor/spec","version":"1.9.0","keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"license":"Apache-2.0","_id":"@synapsor/spec@1.9.0","maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"homepage":"https://github.com/Synapsor/Synapsor-Runner/tree/main/packages/spec#readme","bugs":{"url":"https://github.com/Synapsor/Synapsor-Runner/issues"},"bin":{"synapsor-spec":"dist/cli.js"},"dist":{"shasum":"ec5ab6c7def254d7fced6f1842a8c1ce88023c29","tarball":"https://registry.npmjs.org/@synapsor/spec/-/spec-1.9.0.tgz","fileCount":83,"integrity":"sha512-KCnsKJ3JsGvfcvV+8wk0TblOHU2hGlwUrKAEeyqCUE34xKKEydkLZm/IZ/Yo56PXZM51CjTGRS+XwhYUaGSpaQ==","signatures":[{"sig":"MEYCIQC8VNKsMkNYbcqePRYkbATNOiWxf2kPWu4P2VWzagUa+wIhAKrEZ3SOhX9rhEsABqQ2WzZmJ7iPLYzTjAywpaCNq7rC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":282975},"main":"dist/index.js","type":"module","_from":"file:synapsor-spec-1.9.0.tgz","types":"dist/index.d.ts","engines":{"node":">=22.5.0"},"scripts":{"test":"vitest run","build":"tsc -b"},"_npmUser":{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"},"_resolved":"/tmp/fd6c3d73827274730cac2b28ca6f9704/synapsor-spec-1.9.0.tgz","_integrity":"sha512-KCnsKJ3JsGvfcvV+8wk0TblOHU2hGlwUrKAEeyqCUE34xKKEydkLZm/IZ/Yo56PXZM51CjTGRS+XwhYUaGSpaQ==","repository":{"url":"git+https://github.com/Synapsor/Synapsor-Runner.git","type":"git","directory":"packages/spec"},"_npmVersion":"10.9.7","description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/spec_1.9.0_1786930854596_0.6953418865078815","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@synapsor/spec","version":"1.10.0","description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","license":"Apache-2.0","type":"module","main":"dist/index.js","types":"dist/index.d.ts","bin":{"synapsor-spec":"dist/cli.js"},"keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"engines":{"node":">=22.5.0"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/Synapsor/Synapsor-Runner.git","directory":"packages/spec"},"homepage":"https://github.com/Synapsor/Synapsor-Runner/tree/main/packages/spec#readme","bugs":{"url":"https://github.com/Synapsor/Synapsor-Runner/issues"},"scripts":{"build":"tsc -b","test":"vitest run"},"_id":"@synapsor/spec@1.10.0","_integrity":"sha512-WnDicBWHwPp3ceKALxJPM+mFN63Jq65ojK1Y98aQbB0RXgAgUOGzu0KV/OPSdyljgiy9CDA/dAAljbaeXL/wWQ==","_resolved":"/tmp/550f5bd3d271e923a51fe6a2dc800ee3/synapsor-spec-1.10.0.tgz","_from":"file:synapsor-spec-1.10.0.tgz","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-WnDicBWHwPp3ceKALxJPM+mFN63Jq65ojK1Y98aQbB0RXgAgUOGzu0KV/OPSdyljgiy9CDA/dAAljbaeXL/wWQ==","shasum":"38b1992e8700f1cdce643825de280198b7f42358","tarball":"https://registry.npmjs.org/@synapsor/spec/-/spec-1.10.0.tgz","fileCount":83,"unpackedSize":291682,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHMbrJn46yZcGrG2MnpOIJ//VBX7gVEUe1px9f8CwUddAiAGtf2tGSvhIbUQl/vgBlMRjz/VJAA7WP1MCZh/kbLhMg=="}]},"_npmUser":{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"},"directories":{},"maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/spec_1.10.0_1787188236537_0.9428490423801219"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-06T00:17:34.448Z","modified":"2026-08-20T01:10:36.836Z","0.1.0":"2026-07-06T00:17:34.805Z","0.1.1":"2026-07-06T03:34:31.756Z","0.1.2":"2026-07-08T17:55:24.124Z","0.1.3":"2026-07-09T17:52:55.707Z","0.1.4":"2026-07-09T20:53:56.829Z","1.0.0":"2026-07-12T05:40:33.568Z","1.1.0":"2026-07-13T04:05:53.410Z","1.4.0":"2026-07-14T05:39:28.010Z","1.4.1":"2026-07-15T02:00:43.094Z","1.4.2":"2026-07-17T01:46:04.129Z","1.5.0":"2026-07-23T16:53:44.122Z","1.6.0":"2026-07-25T04:24:00.722Z","1.7.0":"2026-07-26T05:41:32.938Z","1.8.0":"2026-08-03T20:16:41.208Z","1.9.0":"2026-08-17T01:40:54.748Z","1.10.0":"2026-08-20T01:10:36.683Z"},"bugs":{"url":"https://github.com/Synapsor/Synapsor-Runner/issues"},"license":"Apache-2.0","homepage":"https://github.com/Synapsor/Synapsor-Runner/tree/main/packages/spec#readme","keywords":["synapsor","ai-agents","mcp","database-safety","contracts"],"repository":{"type":"git","url":"git+https://github.com/Synapsor/Synapsor-Runner.git","directory":"packages/spec"},"description":"Canonical Synapsor contract schemas, types, validation, and conformance fixtures.","maintainers":[{"name":"sandeshtiwari","email":"sandeshtiwari95@gmail.com"}],"readme":"# @synapsor/spec\n\n`@synapsor/spec` is the canonical Synapsor contract package.\n\nIt defines the portable JSON contract shared by Synapsor Runner and Synapsor\nCloud/C++. The contract describes trusted context, business resources,\ncapabilities, workflows, policies, evidence, proposals, receipts, replay, and\nexternal action intents.\n\nPart of the Synapsor OSS toolchain:\n\n- [`@synapsor/runner`](https://www.npmjs.com/package/@synapsor/runner): local MCP runtime that serves validated contracts.\n- [`@synapsor/dsl`](https://www.npmjs.com/package/@synapsor/dsl): SQL-like authoring layer that compiles to this spec.\n- [Source and issues on GitHub](https://github.com/Synapsor/Synapsor-Runner).\n\nIt does not contain local runtime wiring:\n\n- no database URLs;\n- no write credentials;\n- no local SQLite path;\n- no MCP port or transport;\n- no debug flags.\n\nThose belong in `synapsor.runner.json`.\n\n## Version\n\nCurrent contract version:\n\n```text\n0.1\n```\n\n`0.1` is the current contract schema identifier; it is independent of the npm\npackage version and is not a package-maturity label. Unknown core fields fail\nvalidation. Extension fields must use one of:\n\n- `x-cloud-*`\n- `x-runner-*`\n- `x-experimental-*`\n\n## Programmatic Usage\n\n```ts\nimport { assertValidContract, normalizeContract } from \"@synapsor/spec\";\n\nconst contract = normalizeContract(JSON.parse(source));\nassertValidContract(contract);\n```\n\n## CLI\n\n```bash\nsynapsor-spec validate ./synapsor.contract.json\nsynapsor-spec normalize ./synapsor.contract.json --out ./synapsor.contract.normalized.json\n```\n\nRunner exposes the same public path:\n\n```bash\nsynapsor-runner contract validate ./synapsor.contract.json\nsynapsor-runner contract bundle ./synapsor.contract.json --out ./synapsor-runner-bundle\nsynapsor-runner cloud push ./synapsor.contract.json --dry-run\n```\n\n## What Belongs In The Contract\n\n- contexts and trusted/session bindings;\n- resources and subject identity;\n- optional tenant-additive `principal_scope_key` authority sourced from the\n  context's required trusted principal binding;\n- read/aggregate-read/proposal/external-action capabilities;\n- model-facing capability descriptions and returns hints;\n- visible and kept-out fields;\n- evidence/query-audit requirements;\n- optional protected named row/aggregate reads with fixed predicates, reviewed\n  one-hop or explicitly reviewed bounded many-to-one paths (up to three hops),\n  explicit missing-row semantics, privacy budgets, generation-lock/boundary\n  digests, and either tenant-key authority or one immutable reviewed\n  organization assertion;\n- proposal action shape, explicit INSERT/UPDATE/DELETE operation, source-unique\n  INSERT deduplication, UPDATE version advancement, numeric bounds, transition\n  guards, optional bounded-set cardinality/fixed selection/row and aggregate\n  caps/exact batch items, and guarded writeback intent;\n- workflow allowed capabilities and replay requirements;\n- policy references and 0.1 policy metadata.\n\n## What Does Not Belong In The Contract\n\n- database passwords or URLs;\n- bearer tokens;\n- local machine paths;\n- MCP transport details;\n- ports or local process settings.\n\nRunner config references contracts and provides local wiring. Cloud imports the\nsame contracts into a shared, versioned registry and can export placeholder-only\nRunner bundles. Hosted approval/evidence/replay behavior depends on the enabled\nCloud pilot; managed runners, SAML/SCIM, and enterprise retention are not implied\nby contract compatibility.\n\n## Local To Cloud Loop\n\n```bash\nsynapsor-spec validate ./synapsor.contract.json\nsynapsor-runner contract bundle ./synapsor.contract.json --out ./synapsor-runner-bundle\nsynapsor-runner cloud push ./synapsor.contract.json --dry-run\n```\n\nA real push stores the normalized contract as an immutable Cloud registry\nversion with a server-computed digest. Downloading that version's Runner bundle\nreturns the same contract plus local wiring placeholders; the contract never\ncontains database credentials.\n\n## Conformance Fixtures\n\nSchemas prove shape. Conformance fixtures prove behavior.\n\nFixtures live under:\n\n```text\nfixtures/conformance/\n```\n\nEach fixture contains a canonical contract, a scenario, and expected evidence,\nproposal, receipt, replay, or redaction output. Runner tests load these\ncontracts to ensure tool exposure, kept-out fields, and model-facing boundaries\ndo not drift. Cloud/C++ tests use the same fixtures for import/export\nalignment. The main Synapsor repo also keeps C++ export snapshots under\n`tests/fixtures/synapsor_contract_exports/`; those snapshots validate with this\npackage and load in Runner through the cross-repo round-trip verifier.\nThe `principal-row-scope` fixture additionally proves same-tenant owner/\nassignee isolation; the live Runner gate executes it against Postgres and\nMySQL.\n\n## Extension Policy\n\nUse extension fields instead of inventing new unprefixed core fields:\n\n```json\n{\n  \"x-cloud-registry-target\": {\n    \"workspace\": \"workspace_123\"\n  }\n}\n```\n\nAllowed prefixes:\n\n- `x-cloud-*`\n- `x-runner-*`\n- `x-experimental-*`\n\nUnknown unprefixed fields fail validation by design. That keeps Runner, Cloud,\nC++, and DSL semantics from drifting silently.\n\n## 0.1 Additive Fields\n\nThe `0.1` line accepts additive optional core fields when they carry portable\nsafety semantics shared by Runner and Cloud/C++.\n\nCurrent additive safety fields:\n\n- capability `returns_hint`: model-facing result guidance for a reviewed tool;\n- proposal `numeric_bounds`: reviewed minimum/maximum constraints for patched\n  numeric fields;\n- proposal `transition_guards`: reviewed allowed state transitions for patched\n  string fields;\n- proposal approval `policy`: names a reviewed approval policy for\n  policy-based local approval;\n- proposal approval `required_approvals`: optional distinct-reviewer quorum\n  from 1 through 10; omitted contracts retain the default of 1;\n- approval policy rules: `{ \"field\": \"...\", \"max\": 2500 }` thresholds for\n  integer patched fields. A rule field is numeric when the proposal declares\n  `numeric_bounds` for it, patches it from a `NUMBER` arg, or patches it from\n  an integer literal.\n- proposal `operation.kind`: `update`, `insert`, or `delete`; omission preserves\n  the legacy single-row UPDATE meaning;\n- INSERT `operation.deduplication`: reviewed components supplied from trusted\n  tenant, proposal identity, or a fixed value and enforced by a source unique\n  key;\n- UPDATE `operation.version_advance`: reviewed integer increment or\n  database-generated advancement of the exact conflict guard.\n- bounded-set `operation.cardinality = \"set\"`, fixed typed `selection`,\n  `max_rows` (hard ceiling 100), aggregate bounds, exact batch item source, and\n  source-unique per-item deduplication. Runner requires human/operator approval\n  and freezes the exact set before apply.\n- proposal `reversibility.mode = \"reviewed_inverse\"`: opt-in portable authority\n  to capture a bounded inverse for direct SQL and create a separately approved\n  compensation proposal. It does not authorize automatic or model-facing\n  rollback.\n- scalar argument `enum`: 1 through 64 deterministic, same-type string,\n  number, or boolean values enforced by every Runner transport;\n- capability `kind = \"aggregate_read\"` plus a fixed `aggregate` definition for\n  reviewed count/sum/avg, optional contract-fixed equality selection, a\n  mandatory reviewed minimum-group threshold from 1 upward, required\n  evidence/query audit, and no row-facing arguments or visible fields. A value\n  of 1 permits groups of one and therefore disables small-group suppression; it\n  is valid only as explicit reviewed authority, not as Runner's generated\n  default.\n- capability `protected_read.relationships`: up to three operator-reviewed\n  paths, each containing one through three `many_to_one` links with\n  `max_fan_out: 1` and explicit `unmatched_rows = \"exclude\" | \"keep_null\"`.\n  The legacy singular `protected_read.relationship` field remains canonical\n  for unchanged one-hop contracts so their normalized bytes and digest do not\n  change.\n- capability `protected_read.limits.max_ranked_groups`: an optional reviewed\n  ceiling for the complete candidate population of ranked aggregate queries.\n  `protected_read.aggregate.order_by.kind = \"comparison_change\"` may rank\n  exactly two comparison periods by signed absolute or percentage change.\n  Contracts omitting these fields retain their prior group ceiling,\n  normalization, and digest.\n- capability `protected_read.time_window`: one optional fixed half-open UTC\n  range with `field`, optional reviewed `relationship`, and canonical `start`\n  and exclusive `end` timestamps. It is valid for protected rows or aggregates,\n  cannot coexist with an aggregate comparison, and cannot contain argument or\n  relative-window expressions. Protect uses it to freeze the absolute range\n  resolved by a relative Explore analysis.\n\nReceipt authority, receipt-table provisioning, credentials, and Runner ledger\ntopology are deliberately not canonical fields. They remain deployment choices\nin `synapsor.runner.json`.\n\nThese are not `x-runner-*` extensions because they are part of the reviewed\ncontract. A Cloud importer may choose when to enforce them, but it must not\nsilently drop or reject them as unknown runner-only metadata. This OSS release\nproves bounded-set and reviewed-compensation execution in Runner only; it does\nnot claim proprietary Cloud/C++ execution support for the new fields until\nindependently verified.\n\n## Stability\n\n`0.1` is the first shared contract line. It is intended to be useful and\ntestable, but not yet a frozen v1 compatibility promise. New behavior should\narrive behind optional fields or explicit extension keys until promoted.\n","readmeFilename":"README.md"}