{"_id":"@calltelemetry/elixir-test-harness","_rev":"20-3071b6befc2e0d64348c0d846a68256a","name":"@calltelemetry/elixir-test-harness","dist-tags":{"bootstrap":"0.0.0","latest":"1.7.0"},"versions":{"0.0.0":{"name":"@calltelemetry/elixir-test-harness","version":"0.0.0","_id":"@calltelemetry/elixir-test-harness@0.0.0","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"a30e06b95f61931b25de45f525723195567d3f1c","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-0.0.0.tgz","fileCount":85,"integrity":"sha512-SRV9yUsNpi/zNz65wh0C6WQAfRaYQF3Pmb8b5i3A/XsSP0u7edwdmq4+vp9RHpSAwan+r7810uKTA4DrcTSLbQ==","signatures":[{"sig":"MEYCIQCAV2U1UK9GtX0dbV1f0HfobadLmnmYLYpGJ2Jba5PvBgIhAKGAOLcjZbPdDc2R8GL0wP23ciqkqI/DBFvpbL19H548","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122518},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs"},"_npmUser":{"name":"jasonbarbee","email":"jason.barbee@gmail.com"},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.19.0","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"26.7.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_0.0.0_1787274841351_0.6436145855503206","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@calltelemetry/elixir-test-harness","version":"1.0.0","_id":"@calltelemetry/elixir-test-harness@1.0.0","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"de7586f661619b1623b9fb73ff5df6282d09fa57","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.0.0.tgz","fileCount":85,"integrity":"sha512-dOz8xQhjSHf6bboFRtsHGV7F3UjHLGxGz214XCfbRo1PQWiNgsST4Vfk0IrKQ4vj7U2RGJft6YPpc66iYvbHug==","signatures":[{"sig":"MEYCIQD5x8DEBZ5zFq45LAD0czUt7AZvIWc68RBwrqwScJCPNAIhAMP01fvzDfbs3ii6RFCaWzKJcD0H24fhfW8vGNufJly9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122518},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"7d391624ff3dfcb303540bcf3dd4b1faf4c597e2","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.0.0_1787276907257_0.21374205882275432","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@calltelemetry/elixir-test-harness","version":"1.0.1","_id":"@calltelemetry/elixir-test-harness@1.0.1","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"c4ac02cae7ead51a436bcbe3df082635d9b8c3da","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.0.1.tgz","fileCount":85,"integrity":"sha512-8TdrCJVRVPwrze3iFgDfGmBxb6Q5HbEEIgLJROEb00ghTXA+wklqhZhEg4zc2P9XVIedYqjP88lhxAwqlEF1cA==","signatures":[{"sig":"MEUCIHKy5U/lAx3jGk9SgJfPk7xRAOheD6bCXFmcmuJ+2PDBAiEAjMpagTG/ZlsvVQvkA44vAbgQhdcnCKC96bHQvmu3RvI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260209},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"2014b8ef44cd3256dc28d42d594f5118f9101dad","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.0.1_1787579789694_0.3475174783830284","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@calltelemetry/elixir-test-harness","version":"1.0.2","_id":"@calltelemetry/elixir-test-harness@1.0.2","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"5e170c4cf83cec4a1f631973a8dd4640dc765da4","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.0.2.tgz","fileCount":85,"integrity":"sha512-Oxwf0zcF2Hs2C4D/9j1udsdaqo8a1SoIlqTtnAcV5J9WOz3M25qW1d1gZUQ+6Hgq6inoqUDOfuruS7/5alj6Cg==","signatures":[{"sig":"MEQCICNCp3wStnr4/ZTap3PkI05TeV1rV+o8AoqbBFCZsFFIAiBggAavcDMQjYGSx0Ppqa4G+ZCR6RBe2DK7gx97h9hHZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260623},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"5cf898966a2f34c0876bc4dd1e205fab985bcd08","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.0.2_1787584144981_0.9194702772302041","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@calltelemetry/elixir-test-harness","version":"1.0.3","_id":"@calltelemetry/elixir-test-harness@1.0.3","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"8c35445cc997119df9e47d31c12c003ec7748000","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.0.3.tgz","fileCount":85,"integrity":"sha512-LoVg3numTDAGKP5RsfGqvHBtlUobhDe1zANfG1XfnL5Y5IcoNgFJGIE4M4QNT+w2AP56OzynbWIJlZUUOF+OXQ==","signatures":[{"sig":"MEYCIQDBUmDwweBh8PMfeyE2Ggvp2b5FG6KZSPGPMfkgARhV6AIhAOkqJ7gvFmpveECCeSFau1fnJJobvW15WiSyimErLo1r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262200},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"fb0a40885d4b6da866bb1ed65aa468d5e01409da","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.0.3_1787588413039_0.6713867673522382","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@calltelemetry/elixir-test-harness","version":"1.0.4","_id":"@calltelemetry/elixir-test-harness@1.0.4","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"11b4a4861058c719383dd09e093ebed6d9201599","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.0.4.tgz","fileCount":85,"integrity":"sha512-y34O6GPLroDJYlB/Avf9Lt1PRa3B5RTaTS6B9LykpNx7uIlYg9NRBNq4/0GDXgvuUYFSkjakFjnxkd8/l2Ym7g==","signatures":[{"sig":"MEQCIEFrlhVYAd0h9zD0EylknkJ1+mIOqLzj5kA8JPsWNqNiAiBld2U+7gDSiZdjFjmtYKy3wsX/gpG6lK0ZMpWwEQL2jA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":268279},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"9e7a290f8e68e0d6f246398f10f0ef81a7c4583c","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.0.4_1787590105983_0.11906051836260723","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@calltelemetry/elixir-test-harness","version":"1.0.5","_id":"@calltelemetry/elixir-test-harness@1.0.5","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"aff2c1a69ce04979e3bb0d150b05d709e85c7d78","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.0.5.tgz","fileCount":85,"integrity":"sha512-1qtl48la8NNKOuofOrqNBuEeZ62bjv/eXpeyfYq1oBKdXn9pyGRak7Ay+96zCBBU6JeI+f3VSwfDbc2i9wbngQ==","signatures":[{"sig":"MEUCIBgZqdWIqx+bGp9Xin9VuhhkVRTBX6wTqV0Sq7+vEH9PAiEA94HbbNh3eKGQSRzBapG1i1XT4ylg46Eg5/IWnQljd2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271888},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"b10ddb4efd46f5a1c115bbeee38e1e946847d083","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.0.5_1787591872876_0.11960014963491661","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@calltelemetry/elixir-test-harness","version":"1.1.0","_id":"@calltelemetry/elixir-test-harness@1.1.0","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"fa8a1bbd7071bacdcf2c1086869e850b9846815e","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.1.0.tgz","fileCount":85,"integrity":"sha512-AJIHe4fbkQJY1MwZ/JnakrDNJwqFW4y13NGlySCiylaLi1PPBrOiOs76wMW+BLvKuZ5KRTG+Sg5VvnobyXlyOg==","signatures":[{"sig":"MEQCIGaTi3aHN3GWZkv3qh2DJCAMlNRACsYMAt3POiZJxsi9AiB6bgTO0vrMkiRfOCSv4NWdUOdlW13CQSB19xX0q3QngQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284286},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"04f28cb726b0828644a7e4b6f383c4c8f8b74fcf","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.1.0_1787595480212_0.6173807247758443","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@calltelemetry/elixir-test-harness","version":"1.2.1","_id":"@calltelemetry/elixir-test-harness@1.2.1","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"68c1f991942c6c16ca2d657c57c79d7a38967963","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.2.1.tgz","fileCount":90,"integrity":"sha512-34j2aOYQW8BV+QfZ+7A9h91RyPLD5CRP5DkyxQ40DVJHnY5mA1Dhg6H4zX9SiiUu9IYXPYDMtwF1PgqERvkr+w==","signatures":[{"sig":"MEQCIGWdiTzzzO2+4l3Al5vKN5pYWvs3dCsVe1o4t/wOpdd0AiA6VvAy3j4wtL3TEVJjl7LIgh0NVJKhmJHZ1OUf6rrb7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":368469},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"10d4304d5ecd5cf1448c0e788572f52dac4dcdf3","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@aws-sdk/client-s3":"^3.1116.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.2.1_1787602038551_0.9543072298295379","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@calltelemetry/elixir-test-harness","version":"1.3.0","_id":"@calltelemetry/elixir-test-harness@1.3.0","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"2efc22d3474ff0dca7af7d293b5e24e96f1ab73f","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.3.0.tgz","fileCount":94,"integrity":"sha512-nON5DMby+6ahRgV8Ae+U5wwz9VjpDtIdt5ZGe0pJW+JHrr/D+gvA1nnHOEGRXdMEVwFQw9CEX/97vwnrn7/Vyg==","signatures":[{"sig":"MEUCIDFwuKzPECxN4WZzEx6eMtxLCRkALnwxX9YwUUzIsT20AiEAmH+7aMuClUZ7Yb+ZYsQBBoQKze2+LRNl/wFqQyL9CwE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":396347},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"584db5640f00a16deb2769c8ef61f8f4e4a79a7f","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@aws-sdk/client-s3":"^3.1116.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.3.0_1787616842623_0.34400935563888524","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@calltelemetry/elixir-test-harness","version":"1.3.1","_id":"@calltelemetry/elixir-test-harness@1.3.1","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"6a8e687dd09f9b7575c0060818a1f0587f7122e6","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.3.1.tgz","fileCount":94,"integrity":"sha512-CS7UU0jzyHVFLbMv/VrUhSwq0TAGmANBprSljRZF20OrL/ObBFfXJhu/bPiXFVZSAUcQSGOoStlZJCpzOHlAYQ==","signatures":[{"sig":"MEQCIG0iw8GoRhL8MWRtFHB/mBzrqIOao3XOjbwL2FHhLv1eAiBoUqtkTo7UAv67kF7cffVQjhlS1KJto4mRmhx0q5YfSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":397621},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"63e1ce830ca25ca104ee34dd6d1d7b95ce891eff","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@aws-sdk/client-s3":"^3.1116.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.3.1_1787726199361_0.04417723640608995","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@calltelemetry/elixir-test-harness","version":"1.3.2","_id":"@calltelemetry/elixir-test-harness@1.3.2","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"a9381de9fd71aab0e2c7594795b4a4a623d2ab4f","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.3.2.tgz","fileCount":98,"integrity":"sha512-gxuuT6EaUkrekbN8lgV/l2S9vmkFB4v7u1uMLUoRUV1qCWjODVwWMoioHB+h0nzOSKvGKZQ7FQTo3Jr/41x0Jw==","signatures":[{"sig":"MEYCIQD+PYWKBeeTK5dJ9YxkcFh7fUHkNEfUBHFEuVtNCyvKVAIhAM8TTUVGV1EtaPeVoyamX86kPo7tHanyi4wrI3kav46O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":555824},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"a3126d8060cf7e4b752865d7b4e2217f8e0f135b","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs","experiment:fmix-paired":"node scripts/fmix-paired-overhead.mjs","telemetry-memory:proof":"npm run build && node --max-old-space-size=64 scripts/telemetry-memory-proof.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@aws-sdk/client-s3":"^3.1116.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.3.2_1787779336881_0.8473806876277254","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@calltelemetry/elixir-test-harness","version":"1.3.3","_id":"@calltelemetry/elixir-test-harness@1.3.3","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"09941dd9708495b88830d52ceefa2b1ce766d93c","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.3.3.tgz","fileCount":98,"integrity":"sha512-xr4KG50B9f+qFzL+gSZyvGWeQ3dUXvRugDjP0CK9uStdSmHi8z7qLrb026Jrke5aedFr8hPKzYshLjhhiNt/EQ==","signatures":[{"sig":"MEYCIQCpshuvDkrl4M+CTHyi/Ov54Kkf0RAVCiKAMsfv2F1UkQIhANx4BeYvMTyOmYoAoteXmVRvvIaI62/Y+uai7jR7xzK7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":555824},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"7ede8571e2dd98535bb33fb8052e9e627fe56e4d","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs","experiment:fmix-paired":"node scripts/fmix-paired-overhead.mjs","telemetry-memory:proof":"npm run build && node --max-old-space-size=64 scripts/telemetry-memory-proof.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@aws-sdk/client-s3":"^3.1116.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.3.3_1787780592623_0.5524532158750965","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@calltelemetry/elixir-test-harness","version":"1.4.0","_id":"@calltelemetry/elixir-test-harness@1.4.0","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"002e31fbae1120bca05a1f2ab34cf568b21f893a","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.4.0.tgz","fileCount":98,"integrity":"sha512-ZVoLNrr7rEU9It/jWJmjdY20YAe7Ijg2oZhH64nIzjylAVdM95RT9wsF+uQ1G5tKFbihuM9yy+m8k3fUa0D/1w==","signatures":[{"sig":"MEUCIQD2E5rJi6GcdP19IvzHBz0XNZ4nPeqbEm1KIw8a3OPzxQIgVQgYX2I0v28OkfxxzajRLJLWmC5hf2d3xG+kcx2iVaY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":560508},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"5b2d0ff8c6a852a2e32fe897d525bb8a0dab0b26","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs","experiment:fmix-paired":"node scripts/fmix-paired-overhead.mjs","telemetry-memory:proof":"npm run build && node --max-old-space-size=64 scripts/telemetry-memory-proof.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@aws-sdk/client-s3":"^3.1116.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.4.0_1787785562567_0.3326393127084559","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@calltelemetry/elixir-test-harness","version":"1.5.0","_id":"@calltelemetry/elixir-test-harness@1.5.0","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"44c180e2e8595101c04e278bc0bcb2d6e17f7a27","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.5.0.tgz","fileCount":102,"integrity":"sha512-Rce2cq/zJmrH+EmIhqrJtFlk1UjGAYWrbvmkl0NhCEpHFN8Fdx0Zp76uMemzN1MhRqvWaXjdZ3gPs1JgHeR5VA==","signatures":[{"sig":"MEYCIQDuawxy7woLxAR5RXgrrFepWkDWS90w6iMQ/W6EwXoAugIhALxibKh0dAqhVJRS9ZxVJirw7umFwvbJ20SqL9sgnq/x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":570187},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"a1c73acffa6069952fe9a666a3f269d0f5c9f9c8","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs","experiment:fmix-paired":"node scripts/fmix-paired-overhead.mjs","telemetry-memory:proof":"npm run build && node --max-old-space-size=64 scripts/telemetry-memory-proof.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@aws-sdk/client-s3":"^3.1116.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.5.0_1787867671463_0.9605049568174799","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@calltelemetry/elixir-test-harness","version":"1.5.1","_id":"@calltelemetry/elixir-test-harness@1.5.1","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"b53a6670a448a8dc408b7307629a84040d55665c","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.5.1.tgz","fileCount":102,"integrity":"sha512-gLmk0WGgXnvD/oj5OpsOu8oZW0bAKj5R9u2sOO96arn+AB5yxtWBGEDTnhwY7biRLrj2AM71yTFq4nFfTglNqQ==","signatures":[{"sig":"MEUCIQCBv8D8cFaGuqySsmVw0FROlDnumnidwxefn9qJL9FBfwIgfeRRUmO9TocWhr6D/vhfi85z16h5FPCy2KIZ73M4t2Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":570777},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"5b2c632353bce995e84769c6a86d9d0df1082e87","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs","experiment:fmix-paired":"node scripts/fmix-paired-overhead.mjs","telemetry-memory:proof":"npm run build && node --max-old-space-size=64 scripts/telemetry-memory-proof.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@aws-sdk/client-s3":"^3.1116.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.5.1_1787870802810_0.24724985473010053","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@calltelemetry/elixir-test-harness","version":"1.5.2","_id":"@calltelemetry/elixir-test-harness@1.5.2","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"fa0b921df405d4aff802a6c232ab9c573e0ee88f","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.5.2.tgz","fileCount":102,"integrity":"sha512-kB3KfxRYQa3P9qGlcn1cz6VVhK1c44tXuj1YSHsKcR2pPfIjoJcB/1avhmtwGSErmQkJTNHWgEnxXYfQiWJUcg==","signatures":[{"sig":"MEYCIQCnNG9gJip1WZhoFvocGzx1QAM/0QrF3xm2XARxnuPKrAIhAP/m1Z5mUDR4OWfD4jppYMfIf8CSvKc5/lKh1avSV09C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":574298},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"b87dcb1fda42be5997662480c5767feeb2a1c4a1","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs","experiment:fmix-paired":"node scripts/fmix-paired-overhead.mjs","telemetry-memory:proof":"npm run build && node --max-old-space-size=64 scripts/telemetry-memory-proof.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@aws-sdk/client-s3":"^3.1116.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.5.2_1787874986891_0.705228267326534","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@calltelemetry/elixir-test-harness","version":"1.6.0","_id":"@calltelemetry/elixir-test-harness@1.6.0","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"992ffe548e3e3670898f30f6623aeeca58439256","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.6.0.tgz","fileCount":102,"integrity":"sha512-dkyAnm6lJQP1TdaUo8xT4ORjs3mYD0Ln6pXMxtivIuTCpwp9tGJY2XA9EQOj0WFnyHa3GjDTbMMRPRCN2mjg0g==","signatures":[{"sig":"MEUCIQC9GbWjjr9yFh6hG0s9nkY9wXMGJcoig5F69Cr7AgBlPAIgGSJSJBBNDHE1KLyIeyvI58RLrjpqiKDdIjbgPxuE2bc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":598834},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"d3030781c04f47c1008d67c1eb78cff98e3f5092","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs","experiment:fmix-paired":"node scripts/fmix-paired-overhead.mjs","telemetry-memory:proof":"npm run build && node --max-old-space-size=64 scripts/telemetry-memory-proof.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@aws-sdk/client-s3":"^3.1116.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.6.0_1787883579108_0.26267087861087135","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@calltelemetry/elixir-test-harness","version":"1.6.1","_id":"@calltelemetry/elixir-test-harness@1.6.1","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"dist":{"shasum":"73ce7e0ceaf2f54a0effa558c7b9d8cf88e9c19d","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.6.1.tgz","fileCount":102,"integrity":"sha512-djimxCYPHrLJW7JovyeNaLIrWlmmqsAHO2r9aFIGJmBKsHpJ1CjPhtJQ0Wk+f+lGGtker+6+soXH8Jr/qDdqtg==","signatures":[{"sig":"MEQCIHE/EmAt599e+iVDjL5LJN6yXzK2TmhhwE7D02CNLrE/AiAj892z6jl3WoWH5g8URxr0YuAri+/aIiuiy6l3m6e5JA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":606680},"type":"module","engines":{"npm":">=11.5.1","node":">=22.14.0"},"gitHead":"d7bc05d7fbbb7870a08c241d94ee7b9fb5ec4e17","private":false,"scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","package:smoke":"node scripts/package-smoke.mjs","experiment:fmix-paired":"node scripts/fmix-paired-overhead.mjs","telemetry-memory:proof":"npm run build && node --max-old-space-size=64 scripts/telemetry-memory-proof.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"repository":{"url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git","type":"git"},"_npmVersion":"11.5.1","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@aws-sdk/client-s3":"^3.1116.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.20.0","vitest":"^3.1.4","typescript":"^5.8.3","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/elixir-test-harness_1.6.1_1787885111884_0.20584650487166734","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@calltelemetry/elixir-test-harness","version":"1.7.0","private":false,"repository":{"type":"git","url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git"},"type":"module","engines":{"node":">=22.14.0","npm":">=11.5.1"},"scripts":{"test":"vitest run","typecheck":"tsc --noEmit","build":"tsc -p tsconfig.build.json","package:smoke":"node scripts/package-smoke.mjs","experiment:fmix-paired":"node scripts/fmix-paired-overhead.mjs","experiment:fmix-exploratory":"node scripts/fmix-paired-exploratory.mjs","telemetry-memory:proof":"npm run build && node --max-old-space-size=64 scripts/telemetry-memory-proof.mjs"},"bin":{"ct-elixir-test-harness":"bin/ct-elixir-test-harness.mjs","ct-elixir-test-harness-mcp":"bin/ct-elixir-test-harness-mcp.mjs"},"publishConfig":{"access":"public"},"devDependencies":{"@types/node":"^22.15.3","ajv":"^8.20.0","typescript":"^5.8.3","vitest":"^3.1.4"},"dependencies":{"@aws-sdk/client-s3":"^3.1116.0"},"_id":"@calltelemetry/elixir-test-harness@1.7.0","gitHead":"defa2f6921926c8d8d5de8d1de1a133165b1f9d9","description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","_nodeVersion":"22.14.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-ZkBObplYbeG6pFZxJRZQrKUn1+19KBG4vATxC7aQnLZRb6O9sl4rTkX+jWIBUJMiN/1cd4F6Q6zW26DERV1GyA==","shasum":"cdfd56fae9d745a7338ee7cfeb50f3b2ab16311b","tarball":"https://registry.npmjs.org/@calltelemetry/elixir-test-harness/-/elixir-test-harness-1.7.0.tgz","fileCount":106,"unpackedSize":640705,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCw3LoVOnPPVAKDFZO/vIquBj5Ra32LdlbIB09PoWNcEQIgKv1P/kv5eMliZ3LIS7Duz6MKOWxy7kbehjgADE6nSIw="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b9d90440-b144-4c13-8b8b-42a8f55e6f26"}},"directories":{},"maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/elixir-test-harness_1.7.0_1787939792512_0.01145627194542942"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-21T01:14:01.204Z","modified":"2026-08-28T17:56:32.885Z","0.0.0":"2026-08-21T01:14:01.532Z","1.0.0":"2026-08-21T01:48:27.461Z","1.0.1":"2026-08-24T13:56:29.833Z","1.0.2":"2026-08-24T15:09:05.221Z","1.0.3":"2026-08-24T16:20:13.206Z","1.0.4":"2026-08-24T16:48:26.151Z","1.0.5":"2026-08-24T17:17:53.011Z","1.1.0":"2026-08-24T18:18:00.344Z","1.2.1":"2026-08-24T20:07:18.735Z","1.3.0":"2026-08-25T00:14:02.809Z","1.3.1":"2026-08-26T06:36:39.515Z","1.3.2":"2026-08-26T21:22:17.014Z","1.3.3":"2026-08-26T21:43:12.941Z","1.4.0":"2026-08-26T23:06:02.734Z","1.5.0":"2026-08-27T21:54:31.654Z","1.5.1":"2026-08-27T22:46:42.965Z","1.5.2":"2026-08-27T23:56:27.039Z","1.6.0":"2026-08-28T02:19:39.318Z","1.6.1":"2026-08-28T02:45:12.045Z","1.7.0":"2026-08-28T17:56:32.692Z"},"bugs":{"url":"https://github.com/calltelemetry/ct-elixir-test-harness/issues"},"homepage":"https://github.com/calltelemetry/ct-elixir-test-harness#readme","repository":{"type":"git","url":"git+https://github.com/calltelemetry/ct-elixir-test-harness.git"},"description":"Portable policy-enforcing test harness and MCP server for CallTelemetry Elixir repositories.","maintainers":[{"name":"jasonbarbee","email":"jason.barbee@gmail.com"}],"readme":"# CallTelemetry Elixir Test Harness\n\nPortable policy-enforcing test harness and MCP server for CallTelemetry Elixir\nrepositories.\n\nThe execution model delegates ordinary test runs to FMix and automatically\nroutes only statically constrained workloads (total memory `<8 GiB` and\nlogical CPUs `<=4`) to a governed Blacksmith Testbox. The route is selected\nonce before execution and never uses load average, available memory, disk\npressure, probe latency, or process telemetry. A governed cloud capability is\navailable when a workload injects `BLACKSMITH_API_TOKEN` and supplies the immutable 40-character\n`CT_ELIXIR_TEST_HARNESS_BLACKSMITH_STABLE_SHA`. The pilot accepts Blacksmith\nCLI `0.4.56+` for organization `calltelemetry` only. Gitlink source projection\nis fail-closed to the explicitly reviewed `0.4.56` and `0.4.57` releases.\nIt also requires `CT_ELIXIR_TEST_HARNESS_BLACKSMITH_BINARY` to name an\nabsolute deployment-approved regular executable whose real path is outside the\ntarget checkout; it never discovers a client through a project-local `PATH`.\nRemote Testbox commands use an owned SSH shim that embeds the resolved\n`/usr/bin/ssh` real path and forces connection persistence off; no environment\nvariable can redirect the shim to another executable.\n\nThis repository is private. Runtime secrets must not be committed, logged,\npassed through process arguments, or persisted in fallback/cache files.\n\n## Distribution and release\n\nThe GitHub repository remains private while the npm package is public so a\nworkload can install the CLI or MCP server with credential-free `npx`. Releases\nare created by Release Please and published only from its exact `v<version>`\ntag through npm trusted publishing (GitHub Actions OIDC); this repository does\nnot use `NPM_TOKEN`. npm does not generate provenance for packages published\nfrom a private GitHub repository, so this release workflow intentionally does\nnot claim or request it.\n\nThe npm trusted publisher is configured for this repository's `Release`\nworkflow, and the protected GitHub `npm` environment gates publication. The\nRelease workflow uses a repository-scoped GitHub App token for Release Please;\nit does not restore a long-lived npm token. Run `npm run package:smoke` to\nvalidate the packed, installed CLI and MCP binaries without publishing.\n\nAfter a feature merge, the Release workflow is the handoff point: Release\nPlease opens the next patch release from a parseable conventional commit, and\nthe protected release PR must merge before the exact tag can publish. A green\nbuild or a successful workflow dispatch is not publication proof. Verify the\ntag, GitHub release, and `npm view @calltelemetry/elixir-test-harness version`\nbefore advertising a deployment; local validation remains `npm run package:smoke`\nand `npm pack --dry-run`.\n\n## Status\n\nThe local contract test suite proves that an injected Blacksmith token\nis sent only over stdin in a task-owned temporary home; it is never copied to\nchild environment variables, argv, logs, or evidence. The CLI may create\nauthentication state only in that mode-0700 owned home, which is removed on\nevery exit. This package does\nnot configure or call Doppler and does not use an ambient developer Blacksmith\nsession. Set `CT_ELIXIR_TEST_HARNESS_BLACKSMITH_PILOT=disabled` for an explicit\nemergency cloud opt-out; the variable is no longer required to enable the\ngoverned capability. See [the headless-auth record](docs/experiments/blacksmith-headless-auth.md)\nfor the trust and hosted-evidence gates.\n\nThe MCP binary speaks newline-delimited JSON-RPC on stdio and keeps stdout\nprotocol-only. Startup does not wait for Docker, FMix, artifact cleanup, or\nremote storage: readiness begins as `unknown`, refreshes in the background, and\nreports bounded `checking`/`ready`/`degraded` snapshots through `doctor`.\nDocker and FMix readiness probes default to a 30-second bound. Workloads may\nset `CT_HARNESS_READINESS_TIMEOUT_MS`; finite integer values are constrained to\n1–60 seconds so readiness can accommodate portable FMix startup latency without\nbecoming unbounded.\n`start` durably acknowledges a request as `queued` before readiness and lane\nselection; status then records the preflight, execution, and terminal phase.\nThe acknowledgement is intentionally useful on its own: it contains the\ndurable run ID, the submitted request, `lane: \"pending\"`, and\n`phase: \"queued\"`, so a caller can reconnect with `status` without replaying\nthe test request.\nIf the client closes stdin while a run is active, the server records a durable\ncancellation request, aborts the executor, waits for cleanup, and releases the\nrun lock before exiting. Completed `status` responses include\nnormalized test counts/timing, a relative stats-artifact locator when FMix emits\none, bounded line-redacted stdout/stderr excerpts, and (when enabled) a\nper-run artifact manifest. The relative FMix locator is observability metadata,\nnot proof that a mutable checkout file belongs to the current run. Logs are\nstreamed through a redacting tee, so the\nstored session log is complete up to a 64 MiB per-artifact ceiling but never\ncontains raw child credentials. The MCP `artifacts` tool lists the session,\nstdout/stderr, and correlated FMix telemetry files; `artifact_read` reads them in bounded\npages using a byte cursor. The CLI prints the bounded excerpt to stderr while\nkeeping stdout machine-readable.\n\nOne-shot CLI commands own and dispose their runtime context before exiting.\n`doctor`, `plan`, and `start` perform only their explicit bounded readiness\nrefresh; read-only `status` does not launch Docker or FMix probes. Artifact\nmaintenance remains an MCP background concern, so a stalled remote sweep\ncannot keep an installed CLI process alive after it emits its JSON result.\n\nCheckout-wide JUnit and stats promotion remains deliberately disabled. A file\ncreated or changed under shared `test-logs/` cannot be attributed to one\nharness run when executions overlap. Merged FMix/cisco-cdr producers now expose\nvalidated UUID-scoped `artifacts/{junit,stats,live}` directories, and only those\nimmutable run-scoped files are eligible for retention. The legacy checkout-wide\npaths remain excluded even for completed or failed ExUnit executions.\n\nArtifacts use the configured DigitalOcean Spaces/S3-compatible backend by\ndefault. A workload explicitly opts out with `CT_HARNESS_ARTIFACT_STORE=local`.\nWhen the namespaced remote profile is incomplete, the harness keeps bounded\nlocal evidence and marks the manifest degraded. A workload may use an\nS3-compatible SeaweedFS bucket by setting `CT_HARNESS_S3_ENDPOINT` and\n`CT_HARNESS_S3_BUCKET`; credentials use the namespaced\n`CT_HARNESS_S3_ACCESS_KEY_ID`, `CT_HARNESS_S3_SECRET_ACCESS_KEY`, and optional\n`CT_HARNESS_S3_SESSION_TOKEN` variables. Doppler should inject those values;\nthe harness never reads the application `S3_*` bucket settings implicitly.\nEach remote request is bounded (30 seconds by default; override with\n`CT_HARNESS_S3_REQUEST_TIMEOUT_MS`).\nObjects are scoped to `test-harness/<run-id>/` (or\n`CT_HARNESS_S3_PREFIX/<run-id>/`) and are swept after the four-hour retention\nwindow. FMix's own four-hour session-cache purge remains owned by FMix.\n\nDigitalOcean Spaces is the portable default S3-compatible profile. The\nCallTelemetry profile uses the private Standard Space\n`calltelemetry-elixir-test-artifacts-nyc3` with:\n\n```text\nCT_HARNESS_S3_ENDPOINT=https://nyc3.digitaloceanspaces.com\nCT_HARNESS_S3_BUCKET=calltelemetry-elixir-test-artifacts-nyc3\nCT_HARNESS_S3_REGION=us-east-1\nCT_HARNESS_S3_PREFIX=test-harness\nCT_HARNESS_S3_REQUEST_TIMEOUT_MS=30000\n```\n\nThe bucket-scoped read/write key is stored as masked\n`CT_HARNESS_S3_ACCESS_KEY_ID` and `CT_HARNESS_S3_SECRET_ACCESS_KEY` values in\nDoppler project `ct-elixir-test-harness-portable`, config `dev_portable_ci`.\nPortable launchers inject that config at process start; the harness itself does\nnot call Doppler. The Space has no CDN or versioning. Its one-day lifecycle for\n`test-harness/` is a crash backstop only; the harness's exact four-hour sweep is\nstill the retrieval contract and normal deletion path.\n\nWhen an S3-compatible store is enabled, local redacted artifacts are finalized\nfirst and the remote upload runs asynchronously. The manifest reports\n`pending`, then `available`, or `degraded`; a slow SeaweedFS endpoint therefore\ncannot keep a test run in `running` or hide local logs. Every streamed payload\nbody is closed after its PUT resolves, rejects, or times out, including when an\nS3 client rejects before consuming the stream.\n\nArtifact retrieval is a trusted-local boundary: the MCP process and its\nstate directory must not be shared between mutually untrusted users. Artifact\nread cursors are UTF-8 byte offsets; clients should follow the returned\n`nextOffset` rather than assume a character count.\n\n## FMix run observability\n\nLocal FMix runs pass the durable harness UUID as `FMIX_RUN_ID`. The telemetry\nreader follows FMix's `FMIX_HOME` setting and the shared `~/.ct-fmix` default.\nFMix 2.5 keeps its optimized runner path and no longer owns the old\nrun-supervisor files, so the harness creates a UUID-scoped compatibility bridge\naround the child process. The bridge publishes the same closed\n`fmix-session.v1`, `fmix-event.v1`, and `fmix-metric.v1` contract, including the\nchild PID, bounded resource samples, and parsed FMix timing/cache phases.\nFMix retains its own stable worktree session identity; the harness never\nsupplies `--session` or `FMIX_SESSION_ID`. MCP polling reads only the run store\nand that UUID's bounded telemetry files. It never invokes the host-wide\n`fmix status` command.\n\nThe existing `status({id})` response remains compatible and adds\n`observability` when a validated `fmix-session.v1` snapshot is available. The\nfollowing additive tools are available:\n\n- `runs_list({status?, cursor?, limit?})` lists only runs owned by the current\n  MCP identity, newest first. `limit` is 1–100; follow the opaque `nextCursor`.\n- `result({id})` returns `{state:\"available\", status, evidence}` for exact\n  `completed`, `failed`, or `cancelled` runs. Active runs fail with\n  `result_not_ready`. An `abandoned` run returns\n  `{state:\"result_incomplete\", status:\"abandoned\", observability}` and never\n  exposes inferred test totals.\n- `metrics({id, cursor?, limit?, resolutionSeconds?})` returns at most 1,000\n  validated `fmix-metric.v1` samples and an optional summary. The cursor counts\n  raw samples. With downsampling, `limit` counts complete output buckets and\n  `nextCursor` points to the first raw sample in the next bucket; buckets are\n  never split across internal FMix pages. Clients must begin at cursor zero and\n  follow returned cursors; a caller-supplied cursor in the middle of a bucket\n  fails with `invalid_metrics_bucket_cursor`. Whole-second downsampling averages process-group CPU, takes the\n  maximum descendant RSS, and takes the minimum host-available memory in each\n  bucket. Terminal runs prefer retained artifacts; active runs read the live\n  harness bridge file.\n\nAll tools return immediately from bounded local or configured artifact-store\nreads and never wait for the test process to finish. Poll `status` and `metrics`\nat a client-selected cadence, then call `result` after a terminal state. Live\nper-test-case progress is intentionally not part of this contract.\n\nOn POSIX systems, cancellable and timeout-owned child commands run in a private\nprocess group. Cancellation, timeout, and ordinary leader exit all drain that\nowned group and are reported as terminal only after the direct child has been\nreaped and the group is absent.\nIf bounded teardown cannot verify both conditions, `result` returns\n`result_incomplete` with status `abandoned` and a closed process `termination`\nobject instead of reporting normal cancellation. Non-POSIX platforms retain\ndirect-child signalling compatibility. Once an absence probe returns `ESRCH`,\nthe harness caches that result and never signals that PGID again. A portable\nPID/PGID-only implementation cannot eliminate reuse before the first absence\nobservation; the bounded teardown window is the remaining POSIX risk.\n\nFMix telemetry artifacts are allowlisted as `fmix/snapshot.json`,\n`fmix/events.jsonl`, and `fmix/metrics.jsonl`. The cisco-cdr producer's\nUUID-scoped `junit/*.xml`, `stats/*.json`, and `live/*.{json,ndjson}` files are\nalso copied from the same validated FMix run namespace. They are independently\npath/mode/owner validated and incrementally read with a hard max-plus-one byte\nbound. Telemetry JSONL has a separate configurable 8 MiB default cap and is\nparsed in fixed chunks, projected/redacted per record, hashed incrementally,\nand uploaded as a bounded file stream. Snapshot and event records are projected through their closed public\nschemas, so private `worktree`, `session.root`, and unknown future event fields\ncannot enter retained bytes. Projected bytes are redacted before hashing, included in the local or\nS3-compatible manifest, and retained for four hours. `artifact_read` uses the\nsame UTF-8 byte cursor as other artifacts. `abandoned` is terminal for listing,\nmetrics, artifact upload/read, restart reconciliation, and retention. Its\n`termination` object is closed and records the reason, paired requested\nsignal/exit code (or both null), `resultExact:false`, the three observed reap\nbooleans, and `cleanup:\"incomplete\"`.\n\nDuring an active asynchronous upload, protected local staging remains listable\nand readable. If only a remote `pending` or `degraded` manifest survives a\ncrash, `artifacts` exposes status with an empty descriptor list and\n`artifact_read`/retained `metrics` fail with `artifact_not_ready`; the harness\nnever reads a missing or partial payload. A later `available` manifest enables\nnormal listing and byte-cursor reads. For compatibility with the original\n`test-artifacts.v1` S3 writer, a remote v1 manifest with no `state` is also\nreadable: that writer uploaded the manifest only after every payload. An\nexplicit unknown state remains fail-closed like `pending` and `degraded`. A\nmanifest fetched from S3 cannot relabel itself as local: an invalid version,\nrun ID, storage claim, artifact collection, retention timeline, JSON document,\nor JSON value is exposed only as remote `degraded` metadata with no readable\ndescriptors. A missing object remains absent. Because malformed metadata has no\ntrustworthy expiry, its namespace falls back to the latest observed object\nwrite plus the configured four-hour retention window instead of persisting\nforever. If a malformed namespace has no finite object timestamp at all, the\nnext sweep deletes it once both active-upload and local-staging protection have\ncleared; an upload that still owns either marker is never swept.\n\nThese fields are optional for older FMix and hosted executions. Blacksmith\nevidence and schemas remain additive; only the capacity-aware `auto` route is\nnew, while explicit cloud requests keep their existing gates.\n\nAutomatic cloud routing remains limited to the static capacity predicate and\nthe independent governance, authentication, readiness, parity, and cost gates\nin the experiment record. FMix-specific readiness failures remain fail-closed.\n","readmeFilename":"README.md"}