deadbyte-mcp 0.8.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DEADBYTE-MCP-R27-FINAL/R27-ADMIN-CLOSURE.json +22 -0
- package/DEADBYTE-MCP-R27-FINAL/R27-CLEANUP-FINAL-RECEIPT.json +24 -0
- package/DEADBYTE-MCP-R27-FINAL/R27-FINAL-CLOSURE.json +188 -0
- package/DEADBYTE-MCP-R27-FINAL/R27-SLOT-UPDATE-RECEIPT.json +109 -0
- package/DEADBYTE-MCP.cmd +4 -0
- package/MANIFEST.SHA256 +1389 -0
- package/README.txt +260 -0
- package/bin/WORKER-REGISTRY.txt +12 -0
- package/bin/appcontainer-stage.exe +0 -0
- package/bin/appcontainer-stage.obj +0 -0
- package/bin/bootstrap-advapi32.exe +0 -0
- package/bin/bootstrap-advapi32.obj +0 -0
- package/bin/bootstrap-exitcode.exe +0 -0
- package/bin/bootstrap-exitcode.obj +0 -0
- package/bin/bootstrap-kernel32.exe +0 -0
- package/bin/bootstrap-kernel32.obj +0 -0
- package/bin/child-control-probe.exe +0 -0
- package/bin/child-control-probe.obj +0 -0
- package/bin/child-control-stage.exe +0 -0
- package/bin/child-control-stage.obj +0 -0
- package/bin/contained-reverse-worker.exe +0 -0
- package/bin/contained-reverse-worker.obj +0 -0
- package/bin/contained-transform-worker.exe +0 -0
- package/bin/contained-transform-worker.obj +0 -0
- package/bin/containment-probe.exe +0 -0
- package/bin/containment-probe.obj +0 -0
- package/bin/deadbyte-contain.exe +0 -0
- package/bin/deadbyte-contain.obj +0 -0
- package/bin/deadbyte-exec.exe +0 -0
- package/bin/deadbyte-exec.obj +0 -0
- package/bin/deadbyte-process-host.exe +0 -0
- package/bin/deadbyte-process-host.obj +0 -0
- package/bin/deadbyte-tunnel-host.exe +0 -0
- package/bin/deadbyte-tunnel-host.obj +0 -0
- package/conpty-input-observer.obj +0 -0
- package/controller/DEADBYTE-MCP.cmd +5 -0
- package/controller/README.TXT +127 -0
- package/controller/deadbyte-controller.config.psd1.example +60 -0
- package/controller/deadbyte-controller.ps1 +1090 -0
- package/controller/deadbyte-host-policy.json.example +33 -0
- package/controller/deadbyte-process-policy.json +47 -0
- package/docs/ARCHITECTURE.md +168 -0
- package/docs/AUTHORITY.md +56 -0
- package/docs/CHILD-CONTROL.md +31 -0
- package/docs/CONSTRUCTION-LADDER.md +84 -0
- package/docs/CONTAINMENT.md +92 -0
- package/docs/EXECUTION.md +330 -0
- package/docs/NETWORK.md +64 -0
- package/docs/R221-STRICT-OUTPUT-CONTRACT.md +24 -0
- package/docs/REFERENCES.txt +117 -0
- package/docs/TRUST.md +46 -0
- package/docs/V070-HARDENING.md +48 -0
- package/docs/V071-HOST-PLANE.md +113 -0
- package/docs/V073-TUNNEL-STDIO-COMPAT.md +37 -0
- package/docs/V080-AGENT-RUNTIME.md +101 -0
- package/docs/V080-R23-CODING-AGENT.md +50 -0
- package/docs/V080-R24-AUTONOMOUS-PRODUCTION.md +74 -0
- package/docs/V081-R25-MANUS-CONTROL-SEMANTICS.md +145 -0
- package/docs/V082-R26-RUNTIME-SELF-UPDATE.md +86 -0
- package/docs/V083-R27-IMMUTABLE-RELEASE-SLOTS.md +55 -0
- package/docs/V084-R28-PERSISTENT-NAMED-TUNNEL.md +57 -0
- package/docs/V085-R29-MACHINE-IDENTITY.md +99 -0
- package/docs/superpowers/plans/2026-09-14-r30-process-plane.md +178 -0
- package/docs/superpowers/plans/2026-09-14-r31-process-prerequisite.md +132 -0
- package/docs/superpowers/plans/2026-09-15-r33-audit-chain-npx.md +132 -0
- package/docs/superpowers/specs/2026-09-14-r30-r33-machine-control-design.md +214 -0
- package/docs/superpowers/specs/2026-09-14-r31-r33-final-baseline-successor-design.md +133 -0
- package/docs/superpowers/specs/2026-09-15-r33-audit-chain-npx-design.md +145 -0
- package/mcp-server.mjs +1 -0
- package/miniconpty.obj +0 -0
- package/native/appcontainer-stage.cpp +353 -0
- package/native/bootstrap-advapi32.cpp +70 -0
- package/native/bootstrap-exitcode.cpp +6 -0
- package/native/bootstrap-kernel32.cpp +47 -0
- package/native/child-control-probe.cpp +67 -0
- package/native/child-control-stage.cpp +347 -0
- package/native/contained-network-proof.h +118 -0
- package/native/contained-reverse-worker.cpp +299 -0
- package/native/contained-transform-worker.cpp +312 -0
- package/native/containment-probe.cpp +269 -0
- package/native/deadbyte-contain.cpp +625 -0
- package/native/deadbyte-exec.cpp +966 -0
- package/native/deadbyte-process-host.cpp +340 -0
- package/native/deadbyte-tunnel-host.cpp +109 -0
- package/node_modules/@modelcontextprotocol/client/LICENSE +216 -0
- package/node_modules/@modelcontextprotocol/client/README.md +26 -0
- package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-1b6pVpkg.cjs +7531 -0
- package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-1b6pVpkg.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-97rDpkRx.mjs +7514 -0
- package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-97rDpkRx.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-FOQRM7up.d.cts +1071 -0
- package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-FOQRM7up.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-INpkxUi1.d.mts +1071 -0
- package/node_modules/@modelcontextprotocol/client/dist/ajvProvider-INpkxUi1.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-B3ZJEoRM.d.mts +74 -0
- package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-B3ZJEoRM.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-B3dvjU3F.cjs +986 -0
- package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-B3dvjU3F.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-BylNJ1R5.mjs +981 -0
- package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-BylNJ1R5.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-doTkZbTr.d.cts +74 -0
- package/node_modules/@modelcontextprotocol/client/dist/cfWorkerProvider-doTkZbTr.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/chunk-Bnu9O96Y.cjs +60 -0
- package/node_modules/@modelcontextprotocol/client/dist/chunk-Br0eD_fh.mjs +42 -0
- package/node_modules/@modelcontextprotocol/client/dist/dialects-BGO_ZrYF.cjs +46 -0
- package/node_modules/@modelcontextprotocol/client/dist/dialects-BGO_ZrYF.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/dialects-BOhdv1Fc.mjs +34 -0
- package/node_modules/@modelcontextprotocol/client/dist/dialects-BOhdv1Fc.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/index-CHhhk6PQ.d.cts +2526 -0
- package/node_modules/@modelcontextprotocol/client/dist/index-CHhhk6PQ.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/index-D4xIIEF6.d.mts +2523 -0
- package/node_modules/@modelcontextprotocol/client/dist/index-D4xIIEF6.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/index.cjs +5690 -0
- package/node_modules/@modelcontextprotocol/client/dist/index.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/index.d.cts +3252 -0
- package/node_modules/@modelcontextprotocol/client/dist/index.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/index.d.mts +3252 -0
- package/node_modules/@modelcontextprotocol/client/dist/index.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/index.mjs +5481 -0
- package/node_modules/@modelcontextprotocol/client/dist/index.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.cjs +14 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.d.cts +13 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.d.mts +13 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.mjs +13 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsBrowser.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsNode.cjs +14 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsNode.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsNode.d.cts +13 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsNode.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsNode.d.mts +13 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsNode.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsNode.mjs +13 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsNode.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.cjs +21 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.d.cts +13 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.d.mts +13 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.mjs +20 -0
- package/node_modules/@modelcontextprotocol/client/dist/shimsWorkerd.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/src-D_zzAWoS.mjs +7063 -0
- package/node_modules/@modelcontextprotocol/client/dist/src-D_zzAWoS.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/src-NAgB4Mp8.cjs +7431 -0
- package/node_modules/@modelcontextprotocol/client/dist/src-NAgB4Mp8.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/stdio.cjs +217 -0
- package/node_modules/@modelcontextprotocol/client/dist/stdio.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/stdio.d.cts +96 -0
- package/node_modules/@modelcontextprotocol/client/dist/stdio.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/stdio.d.mts +96 -0
- package/node_modules/@modelcontextprotocol/client/dist/stdio.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/stdio.mjs +212 -0
- package/node_modules/@modelcontextprotocol/client/dist/stdio.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/types-DsbMXNFL.d.cts +1099 -0
- package/node_modules/@modelcontextprotocol/client/dist/types-DsbMXNFL.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/types-mS0yxCL0.d.mts +1099 -0
- package/node_modules/@modelcontextprotocol/client/dist/types-mS0yxCL0.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/client/dist/validators/ajv.cjs +5 -0
- package/node_modules/@modelcontextprotocol/client/dist/validators/ajv.d.cts +2 -0
- package/node_modules/@modelcontextprotocol/client/dist/validators/ajv.d.mts +2 -0
- package/node_modules/@modelcontextprotocol/client/dist/validators/ajv.mjs +3 -0
- package/node_modules/@modelcontextprotocol/client/dist/validators/cfWorker.cjs +3 -0
- package/node_modules/@modelcontextprotocol/client/dist/validators/cfWorker.d.cts +2 -0
- package/node_modules/@modelcontextprotocol/client/dist/validators/cfWorker.d.mts +2 -0
- package/node_modules/@modelcontextprotocol/client/dist/validators/cfWorker.mjs +3 -0
- package/node_modules/@modelcontextprotocol/client/package.json +166 -0
- package/node_modules/@modelcontextprotocol/core/LICENSE +216 -0
- package/node_modules/@modelcontextprotocol/core/README.md +40 -0
- package/node_modules/@modelcontextprotocol/core/dist/auth-BWdKR39I.d.mts +8501 -0
- package/node_modules/@modelcontextprotocol/core/dist/auth-BWdKR39I.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/core/dist/auth-CUe6YdwF.mjs +1678 -0
- package/node_modules/@modelcontextprotocol/core/dist/auth-CUe6YdwF.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/core/dist/auth-CfDMXiII.cjs +2899 -0
- package/node_modules/@modelcontextprotocol/core/dist/auth-CfDMXiII.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/core/dist/auth-hYtaIUZm.d.cts +8501 -0
- package/node_modules/@modelcontextprotocol/core/dist/auth-hYtaIUZm.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/core/dist/index.cjs +175 -0
- package/node_modules/@modelcontextprotocol/core/dist/index.d.cts +2 -0
- package/node_modules/@modelcontextprotocol/core/dist/index.d.mts +2 -0
- package/node_modules/@modelcontextprotocol/core/dist/index.mjs +3 -0
- package/node_modules/@modelcontextprotocol/core/dist/internal.cjs +201 -0
- package/node_modules/@modelcontextprotocol/core/dist/internal.d.cts +99 -0
- package/node_modules/@modelcontextprotocol/core/dist/internal.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/core/dist/internal.d.mts +99 -0
- package/node_modules/@modelcontextprotocol/core/dist/internal.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/core/dist/internal.mjs +3 -0
- package/node_modules/@modelcontextprotocol/core/package.json +85 -0
- package/node_modules/@modelcontextprotocol/server/LICENSE +216 -0
- package/node_modules/@modelcontextprotocol/server/README.md +30 -0
- package/node_modules/@modelcontextprotocol/server/dist/ajvProvider-CEoC__sr.mjs +7514 -0
- package/node_modules/@modelcontextprotocol/server/dist/ajvProvider-CEoC__sr.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/ajvProvider-CgI-5L6O.d.mts +1071 -0
- package/node_modules/@modelcontextprotocol/server/dist/ajvProvider-CgI-5L6O.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/ajvProvider-FOQRM7up.d.cts +1071 -0
- package/node_modules/@modelcontextprotocol/server/dist/ajvProvider-FOQRM7up.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/ajvProvider-ZaoO9afR.cjs +7531 -0
- package/node_modules/@modelcontextprotocol/server/dist/ajvProvider-ZaoO9afR.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-BwbPzsdI.cjs +986 -0
- package/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-BwbPzsdI.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-C03CSigr.d.mts +74 -0
- package/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-C03CSigr.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-doTkZbTr.d.cts +74 -0
- package/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-doTkZbTr.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-p3WaZPqB.mjs +981 -0
- package/node_modules/@modelcontextprotocol/server/dist/cfWorkerProvider-p3WaZPqB.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/chunk-Bnu9O96Y.cjs +60 -0
- package/node_modules/@modelcontextprotocol/server/dist/chunk-Br0eD_fh.mjs +42 -0
- package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-CLhGwQTn.d.mts +4043 -0
- package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-CLhGwQTn.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-dBHMsxwf.d.cts +4045 -0
- package/node_modules/@modelcontextprotocol/server/dist/createMcpHandler-dBHMsxwf.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/dialects-D8eXzoGv.cjs +46 -0
- package/node_modules/@modelcontextprotocol/server/dist/dialects-D8eXzoGv.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/dialects-DoSzNhcb.mjs +34 -0
- package/node_modules/@modelcontextprotocol/server/dist/dialects-DoSzNhcb.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/index.cjs +2055 -0
- package/node_modules/@modelcontextprotocol/server/dist/index.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/index.d.cts +739 -0
- package/node_modules/@modelcontextprotocol/server/dist/index.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/index.d.mts +739 -0
- package/node_modules/@modelcontextprotocol/server/dist/index.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/index.mjs +1870 -0
- package/node_modules/@modelcontextprotocol/server/dist/index.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/mcp-D7GmuPnv.cjs +2022 -0
- package/node_modules/@modelcontextprotocol/server/dist/mcp-D7GmuPnv.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/mcp-DXXb3Vv3.mjs +1931 -0
- package/node_modules/@modelcontextprotocol/server/dist/mcp-DXXb3Vv3.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.cjs +23 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.cts +11 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.mts +11 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.mjs +22 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsBrowser.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsNode.cjs +12 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsNode.d.cts +3 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsNode.d.mts +3 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsNode.mjs +4 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.cjs +30 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.cts +10 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.mts +10 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.mjs +29 -0
- package/node_modules/@modelcontextprotocol/server/dist/shimsWorkerd.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/src-CX2iR2pK.mjs +7606 -0
- package/node_modules/@modelcontextprotocol/server/dist/src-CX2iR2pK.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/src-STyD_Vvf.cjs +8104 -0
- package/node_modules/@modelcontextprotocol/server/dist/src-STyD_Vvf.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/stdio.cjs +564 -0
- package/node_modules/@modelcontextprotocol/server/dist/stdio.cjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/stdio.d.cts +107 -0
- package/node_modules/@modelcontextprotocol/server/dist/stdio.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/stdio.d.mts +107 -0
- package/node_modules/@modelcontextprotocol/server/dist/stdio.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/stdio.mjs +562 -0
- package/node_modules/@modelcontextprotocol/server/dist/stdio.mjs.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/types-DUs7mGBv.d.mts +1099 -0
- package/node_modules/@modelcontextprotocol/server/dist/types-DUs7mGBv.d.mts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/types-DsbMXNFL.d.cts +1099 -0
- package/node_modules/@modelcontextprotocol/server/dist/types-DsbMXNFL.d.cts.map +1 -0
- package/node_modules/@modelcontextprotocol/server/dist/validators/ajv.cjs +5 -0
- package/node_modules/@modelcontextprotocol/server/dist/validators/ajv.d.cts +2 -0
- package/node_modules/@modelcontextprotocol/server/dist/validators/ajv.d.mts +2 -0
- package/node_modules/@modelcontextprotocol/server/dist/validators/ajv.mjs +3 -0
- package/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.cjs +3 -0
- package/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.d.cts +2 -0
- package/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.d.mts +2 -0
- package/node_modules/@modelcontextprotocol/server/dist/validators/cfWorker.mjs +3 -0
- package/node_modules/@modelcontextprotocol/server/package.json +160 -0
- package/node_modules/cross-spawn/LICENSE +21 -0
- package/node_modules/cross-spawn/README.md +89 -0
- package/node_modules/cross-spawn/index.js +39 -0
- package/node_modules/cross-spawn/lib/enoent.js +59 -0
- package/node_modules/cross-spawn/lib/parse.js +91 -0
- package/node_modules/cross-spawn/lib/util/escape.js +47 -0
- package/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
- package/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
- package/node_modules/cross-spawn/package.json +73 -0
- package/node_modules/eventsource/LICENSE +22 -0
- package/node_modules/eventsource/README.md +167 -0
- package/node_modules/eventsource/dist/index.cjs +273 -0
- package/node_modules/eventsource/dist/index.cjs.map +1 -0
- package/node_modules/eventsource/dist/index.d.cts +332 -0
- package/node_modules/eventsource/dist/index.d.ts +332 -0
- package/node_modules/eventsource/dist/index.js +273 -0
- package/node_modules/eventsource/dist/index.js.map +1 -0
- package/node_modules/eventsource/package.json +130 -0
- package/node_modules/eventsource/src/EventSource.ts +596 -0
- package/node_modules/eventsource/src/errors.ts +141 -0
- package/node_modules/eventsource/src/index.ts +3 -0
- package/node_modules/eventsource/src/types.ts +152 -0
- package/node_modules/eventsource-parser/LICENSE +21 -0
- package/node_modules/eventsource-parser/README.md +157 -0
- package/node_modules/eventsource-parser/dist/index.cjs +177 -0
- package/node_modules/eventsource-parser/dist/index.cjs.map +1 -0
- package/node_modules/eventsource-parser/dist/index.d.cts +169 -0
- package/node_modules/eventsource-parser/dist/index.d.ts +169 -0
- package/node_modules/eventsource-parser/dist/index.js +177 -0
- package/node_modules/eventsource-parser/dist/index.js.map +1 -0
- package/node_modules/eventsource-parser/dist/stream.cjs +29 -0
- package/node_modules/eventsource-parser/dist/stream.cjs.map +1 -0
- package/node_modules/eventsource-parser/dist/stream.d.cts +134 -0
- package/node_modules/eventsource-parser/dist/stream.d.ts +134 -0
- package/node_modules/eventsource-parser/dist/stream.js +30 -0
- package/node_modules/eventsource-parser/dist/stream.js.map +1 -0
- package/node_modules/eventsource-parser/package.json +92 -0
- package/node_modules/eventsource-parser/src/errors.ts +44 -0
- package/node_modules/eventsource-parser/src/index.ts +8 -0
- package/node_modules/eventsource-parser/src/parse.ts +439 -0
- package/node_modules/eventsource-parser/src/stream.ts +107 -0
- package/node_modules/eventsource-parser/src/types.ts +122 -0
- package/node_modules/eventsource-parser/stream.js +2 -0
- package/node_modules/isexe/.npmignore +2 -0
- package/node_modules/isexe/LICENSE +15 -0
- package/node_modules/isexe/README.md +51 -0
- package/node_modules/isexe/index.js +57 -0
- package/node_modules/isexe/mode.js +41 -0
- package/node_modules/isexe/package.json +31 -0
- package/node_modules/isexe/test/basic.js +221 -0
- package/node_modules/isexe/windows.js +42 -0
- package/node_modules/jose/LICENSE.md +21 -0
- package/node_modules/jose/README.md +150 -0
- package/node_modules/jose/dist/types/index.d.ts +56 -0
- package/node_modules/jose/dist/types/jwe/compact/decrypt.d.ts +37 -0
- package/node_modules/jose/dist/types/jwe/compact/encrypt.d.ts +54 -0
- package/node_modules/jose/dist/types/jwe/flattened/decrypt.d.ts +37 -0
- package/node_modules/jose/dist/types/jwe/flattened/encrypt.d.ts +72 -0
- package/node_modules/jose/dist/types/jwe/general/decrypt.d.ts +43 -0
- package/node_modules/jose/dist/types/jwe/general/encrypt.d.ts +74 -0
- package/node_modules/jose/dist/types/jwk/embedded.d.ts +13 -0
- package/node_modules/jose/dist/types/jwk/thumbprint.d.ts +17 -0
- package/node_modules/jose/dist/types/jwks/local.d.ts +20 -0
- package/node_modules/jose/dist/types/jwks/remote.d.ts +106 -0
- package/node_modules/jose/dist/types/jws/compact/sign.d.ts +25 -0
- package/node_modules/jose/dist/types/jws/compact/verify.d.ts +37 -0
- package/node_modules/jose/dist/types/jws/flattened/sign.d.ts +31 -0
- package/node_modules/jose/dist/types/jws/flattened/verify.d.ts +37 -0
- package/node_modules/jose/dist/types/jws/general/sign.d.ts +52 -0
- package/node_modules/jose/dist/types/jws/general/verify.d.ts +44 -0
- package/node_modules/jose/dist/types/jwt/decrypt.d.ts +41 -0
- package/node_modules/jose/dist/types/jwt/encrypt.d.ts +62 -0
- package/node_modules/jose/dist/types/jwt/sign.d.ts +26 -0
- package/node_modules/jose/dist/types/jwt/unsecured.d.ts +28 -0
- package/node_modules/jose/dist/types/jwt/verify.d.ts +38 -0
- package/node_modules/jose/dist/types/key/export.d.ts +19 -0
- package/node_modules/jose/dist/types/key/generate_key_pair.d.ts +40 -0
- package/node_modules/jose/dist/types/key/generate_secret.d.ts +37 -0
- package/node_modules/jose/dist/types/key/import.d.ts +73 -0
- package/node_modules/jose/dist/types/types.d.ts +871 -0
- package/node_modules/jose/dist/types/util/base64url.d.ts +16 -0
- package/node_modules/jose/dist/types/util/decode_jwt.d.ts +10 -0
- package/node_modules/jose/dist/types/util/decode_protected_header.d.ts +9 -0
- package/node_modules/jose/dist/types/util/errors.d.ts +220 -0
- package/node_modules/jose/dist/webapi/index.js +32 -0
- package/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +9 -0
- package/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +49 -0
- package/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +15 -0
- package/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +65 -0
- package/node_modules/jose/dist/webapi/jwe/general/decrypt.js +51 -0
- package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +177 -0
- package/node_modules/jose/dist/webapi/jwk/embedded.js +33 -0
- package/node_modules/jose/dist/webapi/jwk/thumbprint.js +74 -0
- package/node_modules/jose/dist/webapi/jwks/local.js +70 -0
- package/node_modules/jose/dist/webapi/jwks/remote.js +149 -0
- package/node_modules/jose/dist/webapi/jws/compact/sign.js +22 -0
- package/node_modules/jose/dist/webapi/jws/compact/verify.js +9 -0
- package/node_modules/jose/dist/webapi/jws/flattened/sign.js +32 -0
- package/node_modules/jose/dist/webapi/jws/flattened/verify.js +25 -0
- package/node_modules/jose/dist/webapi/jws/general/sign.js +76 -0
- package/node_modules/jose/dist/webapi/jws/general/verify.js +74 -0
- package/node_modules/jose/dist/webapi/jwt/decrypt.js +21 -0
- package/node_modules/jose/dist/webapi/jwt/encrypt.js +72 -0
- package/node_modules/jose/dist/webapi/jwt/sign.js +18 -0
- package/node_modules/jose/dist/webapi/jwt/unsecured.js +43 -0
- package/node_modules/jose/dist/webapi/jwt/verify.js +15 -0
- package/node_modules/jose/dist/webapi/key/export.js +44 -0
- package/node_modules/jose/dist/webapi/key/generate_key_pair.js +52 -0
- package/node_modules/jose/dist/webapi/key/generate_secret.js +41 -0
- package/node_modules/jose/dist/webapi/key/import.js +61 -0
- package/node_modules/jose/dist/webapi/lib/asn1.js +179 -0
- package/node_modules/jose/dist/webapi/lib/base64.js +22 -0
- package/node_modules/jose/dist/webapi/lib/buffer_utils.js +44 -0
- package/node_modules/jose/dist/webapi/lib/content_encryption.js +134 -0
- package/node_modules/jose/dist/webapi/lib/crypto_key.js +28 -0
- package/node_modules/jose/dist/webapi/lib/deflate.js +52 -0
- package/node_modules/jose/dist/webapi/lib/helpers.js +42 -0
- package/node_modules/jose/dist/webapi/lib/invalid_key_input.js +26 -0
- package/node_modules/jose/dist/webapi/lib/is_key_like.js +17 -0
- package/node_modules/jose/dist/webapi/lib/jwe_algorithms.js +107 -0
- package/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +243 -0
- package/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +142 -0
- package/node_modules/jose/dist/webapi/lib/jwk_metadata.js +20 -0
- package/node_modules/jose/dist/webapi/lib/jwk_to_key.js +17 -0
- package/node_modules/jose/dist/webapi/lib/jws_algorithms.js +73 -0
- package/node_modules/jose/dist/webapi/lib/jws_sign.js +85 -0
- package/node_modules/jose/dist/webapi/lib/jws_verify.js +139 -0
- package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +232 -0
- package/node_modules/jose/dist/webapi/lib/key.js +147 -0
- package/node_modules/jose/dist/webapi/lib/key_algorithm.js +10 -0
- package/node_modules/jose/dist/webapi/lib/key_descriptor.js +7 -0
- package/node_modules/jose/dist/webapi/lib/key_management.js +262 -0
- package/node_modules/jose/dist/webapi/lib/key_options.js +6 -0
- package/node_modules/jose/dist/webapi/lib/options.js +74 -0
- package/node_modules/jose/dist/webapi/lib/signing.js +26 -0
- package/node_modules/jose/dist/webapi/lib/type_checks.js +33 -0
- package/node_modules/jose/dist/webapi/util/base64url.js +39 -0
- package/node_modules/jose/dist/webapi/util/decode_jwt.js +32 -0
- package/node_modules/jose/dist/webapi/util/decode_protected_header.js +24 -0
- package/node_modules/jose/dist/webapi/util/errors.js +99 -0
- package/node_modules/jose/package.json +198 -0
- package/node_modules/path-key/index.d.ts +40 -0
- package/node_modules/path-key/index.js +16 -0
- package/node_modules/path-key/license +9 -0
- package/node_modules/path-key/package.json +39 -0
- package/node_modules/path-key/readme.md +61 -0
- package/node_modules/pkce-challenge/CHANGELOG.md +114 -0
- package/node_modules/pkce-challenge/LICENSE +21 -0
- package/node_modules/pkce-challenge/README.md +55 -0
- package/node_modules/pkce-challenge/dist/index.browser.d.ts +19 -0
- package/node_modules/pkce-challenge/dist/index.browser.js +75 -0
- package/node_modules/pkce-challenge/dist/index.node.cjs +83 -0
- package/node_modules/pkce-challenge/dist/index.node.d.cts +19 -0
- package/node_modules/pkce-challenge/dist/index.node.d.ts +19 -0
- package/node_modules/pkce-challenge/dist/index.node.js +78 -0
- package/node_modules/pkce-challenge/package.json +59 -0
- package/node_modules/shebang-command/index.js +19 -0
- package/node_modules/shebang-command/license +9 -0
- package/node_modules/shebang-command/package.json +34 -0
- package/node_modules/shebang-command/readme.md +34 -0
- package/node_modules/shebang-regex/index.d.ts +22 -0
- package/node_modules/shebang-regex/index.js +2 -0
- package/node_modules/shebang-regex/license +9 -0
- package/node_modules/shebang-regex/package.json +35 -0
- package/node_modules/shebang-regex/readme.md +33 -0
- package/node_modules/which/LICENSE +15 -0
- package/node_modules/which/README.md +54 -0
- package/node_modules/which/bin/node-which +52 -0
- package/node_modules/which/package.json +43 -0
- package/node_modules/which/which.js +125 -0
- package/node_modules/zod/LICENSE +21 -0
- package/node_modules/zod/README.md +191 -0
- package/node_modules/zod/index.cjs +33 -0
- package/node_modules/zod/index.d.cts +4 -0
- package/node_modules/zod/index.d.ts +4 -0
- package/node_modules/zod/index.js +4 -0
- package/node_modules/zod/locales/index.cjs +17 -0
- package/node_modules/zod/locales/index.d.cts +1 -0
- package/node_modules/zod/locales/index.d.ts +1 -0
- package/node_modules/zod/locales/index.js +1 -0
- package/node_modules/zod/locales/package.json +7 -0
- package/node_modules/zod/mini/index.cjs +32 -0
- package/node_modules/zod/mini/index.d.cts +3 -0
- package/node_modules/zod/mini/index.d.ts +3 -0
- package/node_modules/zod/mini/index.js +3 -0
- package/node_modules/zod/mini/package.json +7 -0
- package/node_modules/zod/package.json +135 -0
- package/node_modules/zod/src/index.ts +4 -0
- package/node_modules/zod/src/locales/index.ts +1 -0
- package/node_modules/zod/src/mini/index.ts +3 -0
- package/node_modules/zod/src/v3/ZodError.ts +330 -0
- package/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
- package/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
- package/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
- package/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
- package/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
- package/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
- package/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
- package/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
- package/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
- package/node_modules/zod/src/v3/errors.ts +13 -0
- package/node_modules/zod/src/v3/external.ts +6 -0
- package/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
- package/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
- package/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
- package/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
- package/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
- package/node_modules/zod/src/v3/helpers/util.ts +224 -0
- package/node_modules/zod/src/v3/index.ts +4 -0
- package/node_modules/zod/src/v3/locales/en.ts +124 -0
- package/node_modules/zod/src/v3/standard-schema.ts +113 -0
- package/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
- package/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
- package/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
- package/node_modules/zod/src/v3/tests/array.test.ts +71 -0
- package/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
- package/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
- package/node_modules/zod/src/v3/tests/base.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
- package/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
- package/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
- package/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
- package/node_modules/zod/src/v3/tests/complex.test.ts +70 -0
- package/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
- package/node_modules/zod/src/v3/tests/date.test.ts +32 -0
- package/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
- package/node_modules/zod/src/v3/tests/default.test.ts +112 -0
- package/node_modules/zod/src/v3/tests/description.test.ts +33 -0
- package/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
- package/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
- package/node_modules/zod/src/v3/tests/error.test.ts +551 -0
- package/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
- package/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
- package/node_modules/zod/src/v3/tests/function.test.ts +261 -0
- package/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
- package/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
- package/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
- package/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
- package/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
- package/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
- package/node_modules/zod/src/v3/tests/map.test.ts +110 -0
- package/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
- package/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
- package/node_modules/zod/src/v3/tests/nan.test.ts +24 -0
- package/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
- package/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
- package/node_modules/zod/src/v3/tests/number.test.ts +176 -0
- package/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/object.test.ts +434 -0
- package/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
- package/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
- package/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
- package/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
- package/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
- package/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
- package/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
- package/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
- package/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
- package/node_modules/zod/src/v3/tests/record.test.ts +171 -0
- package/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
- package/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
- package/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
- package/node_modules/zod/src/v3/tests/set.test.ts +142 -0
- package/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
- package/node_modules/zod/src/v3/tests/string.test.ts +916 -0
- package/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
- package/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
- package/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
- package/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
- package/node_modules/zod/src/v3/tests/void.test.ts +15 -0
- package/node_modules/zod/src/v3/types.ts +5138 -0
- package/node_modules/zod/src/v4/classic/checks.ts +32 -0
- package/node_modules/zod/src/v4/classic/coerce.ts +27 -0
- package/node_modules/zod/src/v4/classic/compat.ts +70 -0
- package/node_modules/zod/src/v4/classic/errors.ts +82 -0
- package/node_modules/zod/src/v4/classic/external.ts +52 -0
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +659 -0
- package/node_modules/zod/src/v4/classic/index.ts +5 -0
- package/node_modules/zod/src/v4/classic/iso.ts +90 -0
- package/node_modules/zod/src/v4/classic/parse.ts +82 -0
- package/node_modules/zod/src/v4/classic/schemas.ts +2672 -0
- package/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
- package/node_modules/zod/src/v4/classic/tests/apply.test.ts +59 -0
- package/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +216 -0
- package/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
- package/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
- package/node_modules/zod/src/v4/classic/tests/brand.test.ts +106 -0
- package/node_modules/zod/src/v4/classic/tests/catch.test.ts +326 -0
- package/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
- package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +573 -0
- package/node_modules/zod/src/v4/classic/tests/codec.test.ts +703 -0
- package/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +374 -0
- package/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
- package/node_modules/zod/src/v4/classic/tests/date.test.ts +62 -0
- package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +302 -0
- package/node_modules/zod/src/v4/classic/tests/default.test.ts +409 -0
- package/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
- package/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
- package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +197 -0
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +694 -0
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
- package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +807 -0
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
- package/node_modules/zod/src/v4/classic/tests/file.test.ts +96 -0
- package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +179 -0
- package/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +895 -0
- package/node_modules/zod/src/v4/classic/tests/function.test.ts +360 -0
- package/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
- package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +39 -0
- package/node_modules/zod/src/v4/classic/tests/hash.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/index.test.ts +939 -0
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +60 -0
- package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +198 -0
- package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +46 -0
- package/node_modules/zod/src/v4/classic/tests/json.test.ts +109 -0
- package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
- package/node_modules/zod/src/v4/classic/tests/literal.test.ts +117 -0
- package/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +29 -0
- package/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +24 -0
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +330 -0
- package/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
- package/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
- package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +101 -0
- package/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +325 -0
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +717 -0
- package/node_modules/zod/src/v4/classic/tests/optional.test.ts +333 -0
- package/node_modules/zod/src/v4/classic/tests/partial.test.ts +450 -0
- package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +211 -0
- package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +101 -0
- package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +74 -0
- package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +26 -0
- package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +351 -0
- package/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
- package/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
- package/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
- package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
- package/node_modules/zod/src/v4/classic/tests/record.test.ts +717 -0
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +631 -0
- package/node_modules/zod/src/v4/classic/tests/refine.test.ts +633 -0
- package/node_modules/zod/src/v4/classic/tests/registries.test.ts +243 -0
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +181 -0
- package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +134 -0
- package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +125 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +1224 -0
- package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +106 -0
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +771 -0
- package/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +3125 -0
- package/node_modules/zod/src/v4/classic/tests/transform.test.ts +378 -0
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +496 -0
- package/node_modules/zod/src/v4/classic/tests/union.test.ts +273 -0
- package/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
- package/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
- package/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
- package/node_modules/zod/src/v4/core/api.ts +1823 -0
- package/node_modules/zod/src/v4/core/checks.ts +1293 -0
- package/node_modules/zod/src/v4/core/config.ts +15 -0
- package/node_modules/zod/src/v4/core/core.ts +153 -0
- package/node_modules/zod/src/v4/core/doc.ts +44 -0
- package/node_modules/zod/src/v4/core/errors.ts +455 -0
- package/node_modules/zod/src/v4/core/index.ts +16 -0
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +126 -0
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +666 -0
- package/node_modules/zod/src/v4/core/json-schema.ts +147 -0
- package/node_modules/zod/src/v4/core/parse.ts +195 -0
- package/node_modules/zod/src/v4/core/regexes.ts +190 -0
- package/node_modules/zod/src/v4/core/registries.ts +105 -0
- package/node_modules/zod/src/v4/core/schemas.ts +4730 -0
- package/node_modules/zod/src/v4/core/standard-schema.ts +159 -0
- package/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
- package/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
- package/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
- package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +215 -0
- package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
- package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +181 -0
- package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +72 -0
- package/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
- package/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +163 -0
- package/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
- package/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
- package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
- package/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +105 -0
- package/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +125 -0
- package/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
- package/node_modules/zod/src/v4/core/to-json-schema.ts +622 -0
- package/node_modules/zod/src/v4/core/util.ts +983 -0
- package/node_modules/zod/src/v4/core/versions.ts +5 -0
- package/node_modules/zod/src/v4/core/zsf.ts +323 -0
- package/node_modules/zod/src/v4/index.ts +4 -0
- package/node_modules/zod/src/v4/locales/ar.ts +115 -0
- package/node_modules/zod/src/v4/locales/az.ts +111 -0
- package/node_modules/zod/src/v4/locales/be.ts +176 -0
- package/node_modules/zod/src/v4/locales/bg.ts +128 -0
- package/node_modules/zod/src/v4/locales/ca.ts +116 -0
- package/node_modules/zod/src/v4/locales/cs.ts +118 -0
- package/node_modules/zod/src/v4/locales/da.ts +123 -0
- package/node_modules/zod/src/v4/locales/de.ts +116 -0
- package/node_modules/zod/src/v4/locales/el.ts +121 -0
- package/node_modules/zod/src/v4/locales/en.ts +123 -0
- package/node_modules/zod/src/v4/locales/eo.ts +118 -0
- package/node_modules/zod/src/v4/locales/es.ts +141 -0
- package/node_modules/zod/src/v4/locales/fa.ts +126 -0
- package/node_modules/zod/src/v4/locales/fi.ts +121 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +116 -0
- package/node_modules/zod/src/v4/locales/fr.ts +132 -0
- package/node_modules/zod/src/v4/locales/he.ts +246 -0
- package/node_modules/zod/src/v4/locales/hr.ts +131 -0
- package/node_modules/zod/src/v4/locales/hu.ts +117 -0
- package/node_modules/zod/src/v4/locales/hy.ts +164 -0
- package/node_modules/zod/src/v4/locales/id.ts +115 -0
- package/node_modules/zod/src/v4/locales/index.ts +52 -0
- package/node_modules/zod/src/v4/locales/is.ts +119 -0
- package/node_modules/zod/src/v4/locales/it.ts +116 -0
- package/node_modules/zod/src/v4/locales/ja.ts +114 -0
- package/node_modules/zod/src/v4/locales/ka.ts +123 -0
- package/node_modules/zod/src/v4/locales/kh.ts +7 -0
- package/node_modules/zod/src/v4/locales/km.ts +119 -0
- package/node_modules/zod/src/v4/locales/ko.ts +121 -0
- package/node_modules/zod/src/v4/locales/lt.ts +239 -0
- package/node_modules/zod/src/v4/locales/mk.ts +118 -0
- package/node_modules/zod/src/v4/locales/ms.ts +115 -0
- package/node_modules/zod/src/v4/locales/nl.ts +121 -0
- package/node_modules/zod/src/v4/locales/no.ts +116 -0
- package/node_modules/zod/src/v4/locales/ota.ts +117 -0
- package/node_modules/zod/src/v4/locales/pl.ts +118 -0
- package/node_modules/zod/src/v4/locales/ps.ts +126 -0
- package/node_modules/zod/src/v4/locales/pt.ts +116 -0
- package/node_modules/zod/src/v4/locales/ro.ts +129 -0
- package/node_modules/zod/src/v4/locales/ru.ts +176 -0
- package/node_modules/zod/src/v4/locales/sl.ts +118 -0
- package/node_modules/zod/src/v4/locales/sv.ts +119 -0
- package/node_modules/zod/src/v4/locales/ta.ts +118 -0
- package/node_modules/zod/src/v4/locales/th.ts +119 -0
- package/node_modules/zod/src/v4/locales/tr.ts +111 -0
- package/node_modules/zod/src/v4/locales/ua.ts +7 -0
- package/node_modules/zod/src/v4/locales/uk.ts +117 -0
- package/node_modules/zod/src/v4/locales/ur.ts +119 -0
- package/node_modules/zod/src/v4/locales/uz.ts +117 -0
- package/node_modules/zod/src/v4/locales/vi.ts +117 -0
- package/node_modules/zod/src/v4/locales/yo.ts +124 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +116 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +115 -0
- package/node_modules/zod/src/v4/mini/checks.ts +32 -0
- package/node_modules/zod/src/v4/mini/coerce.ts +27 -0
- package/node_modules/zod/src/v4/mini/external.ts +41 -0
- package/node_modules/zod/src/v4/mini/index.ts +3 -0
- package/node_modules/zod/src/v4/mini/iso.ts +66 -0
- package/node_modules/zod/src/v4/mini/parse.ts +14 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +1947 -0
- package/node_modules/zod/src/v4/mini/tests/apply.test.ts +24 -0
- package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
- package/node_modules/zod/src/v4/mini/tests/brand.test.ts +94 -0
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
- package/node_modules/zod/src/v4/mini/tests/codec.test.ts +548 -0
- package/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
- package/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
- package/node_modules/zod/src/v4/mini/tests/functions.test.ts +5 -0
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +993 -0
- package/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
- package/node_modules/zod/src/v4/mini/tests/object.test.ts +227 -0
- package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
- package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +325 -0
- package/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +352 -0
- package/node_modules/zod/src/v4-mini/index.ts +3 -0
- package/node_modules/zod/v3/ZodError.cjs +138 -0
- package/node_modules/zod/v3/ZodError.d.cts +164 -0
- package/node_modules/zod/v3/ZodError.d.ts +164 -0
- package/node_modules/zod/v3/ZodError.js +133 -0
- package/node_modules/zod/v3/errors.cjs +17 -0
- package/node_modules/zod/v3/errors.d.cts +5 -0
- package/node_modules/zod/v3/errors.d.ts +5 -0
- package/node_modules/zod/v3/errors.js +9 -0
- package/node_modules/zod/v3/external.cjs +22 -0
- package/node_modules/zod/v3/external.d.cts +6 -0
- package/node_modules/zod/v3/external.d.ts +6 -0
- package/node_modules/zod/v3/external.js +6 -0
- package/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
- package/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
- package/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
- package/node_modules/zod/v3/helpers/enumUtil.js +1 -0
- package/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
- package/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
- package/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
- package/node_modules/zod/v3/helpers/errorUtil.js +6 -0
- package/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
- package/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
- package/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
- package/node_modules/zod/v3/helpers/parseUtil.js +109 -0
- package/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
- package/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
- package/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
- package/node_modules/zod/v3/helpers/partialUtil.js +1 -0
- package/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
- package/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
- package/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
- package/node_modules/zod/v3/helpers/typeAliases.js +1 -0
- package/node_modules/zod/v3/helpers/util.cjs +137 -0
- package/node_modules/zod/v3/helpers/util.d.cts +85 -0
- package/node_modules/zod/v3/helpers/util.d.ts +85 -0
- package/node_modules/zod/v3/helpers/util.js +133 -0
- package/node_modules/zod/v3/index.cjs +33 -0
- package/node_modules/zod/v3/index.d.cts +4 -0
- package/node_modules/zod/v3/index.d.ts +4 -0
- package/node_modules/zod/v3/index.js +4 -0
- package/node_modules/zod/v3/locales/en.cjs +112 -0
- package/node_modules/zod/v3/locales/en.d.cts +3 -0
- package/node_modules/zod/v3/locales/en.d.ts +3 -0
- package/node_modules/zod/v3/locales/en.js +109 -0
- package/node_modules/zod/v3/package.json +7 -0
- package/node_modules/zod/v3/standard-schema.cjs +2 -0
- package/node_modules/zod/v3/standard-schema.d.cts +102 -0
- package/node_modules/zod/v3/standard-schema.d.ts +102 -0
- package/node_modules/zod/v3/standard-schema.js +1 -0
- package/node_modules/zod/v3/types.cjs +3777 -0
- package/node_modules/zod/v3/types.d.cts +1034 -0
- package/node_modules/zod/v3/types.d.ts +1034 -0
- package/node_modules/zod/v3/types.js +3695 -0
- package/node_modules/zod/v4/classic/checks.cjs +33 -0
- package/node_modules/zod/v4/classic/checks.d.cts +1 -0
- package/node_modules/zod/v4/classic/checks.d.ts +1 -0
- package/node_modules/zod/v4/classic/checks.js +1 -0
- package/node_modules/zod/v4/classic/coerce.cjs +47 -0
- package/node_modules/zod/v4/classic/coerce.d.cts +17 -0
- package/node_modules/zod/v4/classic/coerce.d.ts +17 -0
- package/node_modules/zod/v4/classic/coerce.js +17 -0
- package/node_modules/zod/v4/classic/compat.cjs +61 -0
- package/node_modules/zod/v4/classic/compat.d.cts +50 -0
- package/node_modules/zod/v4/classic/compat.d.ts +50 -0
- package/node_modules/zod/v4/classic/compat.js +31 -0
- package/node_modules/zod/v4/classic/errors.cjs +74 -0
- package/node_modules/zod/v4/classic/errors.d.cts +30 -0
- package/node_modules/zod/v4/classic/errors.d.ts +30 -0
- package/node_modules/zod/v4/classic/errors.js +48 -0
- package/node_modules/zod/v4/classic/external.cjs +73 -0
- package/node_modules/zod/v4/classic/external.d.cts +16 -0
- package/node_modules/zod/v4/classic/external.d.ts +16 -0
- package/node_modules/zod/v4/classic/external.js +20 -0
- package/node_modules/zod/v4/classic/from-json-schema.cjs +625 -0
- package/node_modules/zod/v4/classic/from-json-schema.d.cts +12 -0
- package/node_modules/zod/v4/classic/from-json-schema.d.ts +12 -0
- package/node_modules/zod/v4/classic/from-json-schema.js +599 -0
- package/node_modules/zod/v4/classic/index.cjs +33 -0
- package/node_modules/zod/v4/classic/index.d.cts +4 -0
- package/node_modules/zod/v4/classic/index.d.ts +4 -0
- package/node_modules/zod/v4/classic/index.js +4 -0
- package/node_modules/zod/v4/classic/iso.cjs +60 -0
- package/node_modules/zod/v4/classic/iso.d.cts +22 -0
- package/node_modules/zod/v4/classic/iso.d.ts +22 -0
- package/node_modules/zod/v4/classic/iso.js +30 -0
- package/node_modules/zod/v4/classic/package.json +7 -0
- package/node_modules/zod/v4/classic/parse.cjs +41 -0
- package/node_modules/zod/v4/classic/parse.d.cts +31 -0
- package/node_modules/zod/v4/classic/parse.d.ts +31 -0
- package/node_modules/zod/v4/classic/parse.js +15 -0
- package/node_modules/zod/v4/classic/schemas.cjs +1511 -0
- package/node_modules/zod/v4/classic/schemas.d.cts +767 -0
- package/node_modules/zod/v4/classic/schemas.d.ts +767 -0
- package/node_modules/zod/v4/classic/schemas.js +1395 -0
- package/node_modules/zod/v4/core/api.cjs +1227 -0
- package/node_modules/zod/v4/core/api.d.cts +325 -0
- package/node_modules/zod/v4/core/api.d.ts +325 -0
- package/node_modules/zod/v4/core/api.js +1087 -0
- package/node_modules/zod/v4/core/checks.cjs +601 -0
- package/node_modules/zod/v4/core/checks.d.cts +278 -0
- package/node_modules/zod/v4/core/checks.d.ts +278 -0
- package/node_modules/zod/v4/core/checks.js +575 -0
- package/node_modules/zod/v4/core/core.cjs +85 -0
- package/node_modules/zod/v4/core/core.d.cts +70 -0
- package/node_modules/zod/v4/core/core.d.ts +70 -0
- package/node_modules/zod/v4/core/core.js +78 -0
- package/node_modules/zod/v4/core/doc.cjs +39 -0
- package/node_modules/zod/v4/core/doc.d.cts +14 -0
- package/node_modules/zod/v4/core/doc.d.ts +14 -0
- package/node_modules/zod/v4/core/doc.js +35 -0
- package/node_modules/zod/v4/core/errors.cjs +216 -0
- package/node_modules/zod/v4/core/errors.d.cts +221 -0
- package/node_modules/zod/v4/core/errors.d.ts +221 -0
- package/node_modules/zod/v4/core/errors.js +185 -0
- package/node_modules/zod/v4/core/index.cjs +47 -0
- package/node_modules/zod/v4/core/index.d.cts +16 -0
- package/node_modules/zod/v4/core/index.d.ts +16 -0
- package/node_modules/zod/v4/core/index.js +16 -0
- package/node_modules/zod/v4/core/json-schema-generator.cjs +99 -0
- package/node_modules/zod/v4/core/json-schema-generator.d.cts +65 -0
- package/node_modules/zod/v4/core/json-schema-generator.d.ts +65 -0
- package/node_modules/zod/v4/core/json-schema-generator.js +95 -0
- package/node_modules/zod/v4/core/json-schema-processors.cjs +644 -0
- package/node_modules/zod/v4/core/json-schema-processors.d.cts +49 -0
- package/node_modules/zod/v4/core/json-schema-processors.d.ts +49 -0
- package/node_modules/zod/v4/core/json-schema-processors.js +601 -0
- package/node_modules/zod/v4/core/json-schema.cjs +2 -0
- package/node_modules/zod/v4/core/json-schema.d.cts +88 -0
- package/node_modules/zod/v4/core/json-schema.d.ts +88 -0
- package/node_modules/zod/v4/core/json-schema.js +1 -0
- package/node_modules/zod/v4/core/package.json +7 -0
- package/node_modules/zod/v4/core/parse.cjs +131 -0
- package/node_modules/zod/v4/core/parse.d.cts +49 -0
- package/node_modules/zod/v4/core/parse.d.ts +49 -0
- package/node_modules/zod/v4/core/parse.js +93 -0
- package/node_modules/zod/v4/core/regexes.cjs +172 -0
- package/node_modules/zod/v4/core/regexes.d.cts +85 -0
- package/node_modules/zod/v4/core/regexes.d.ts +85 -0
- package/node_modules/zod/v4/core/regexes.js +139 -0
- package/node_modules/zod/v4/core/registries.cjs +56 -0
- package/node_modules/zod/v4/core/registries.d.cts +35 -0
- package/node_modules/zod/v4/core/registries.d.ts +35 -0
- package/node_modules/zod/v4/core/registries.js +51 -0
- package/node_modules/zod/v4/core/schemas.cjs +2270 -0
- package/node_modules/zod/v4/core/schemas.d.cts +1184 -0
- package/node_modules/zod/v4/core/schemas.d.ts +1184 -0
- package/node_modules/zod/v4/core/schemas.js +2239 -0
- package/node_modules/zod/v4/core/standard-schema.cjs +2 -0
- package/node_modules/zod/v4/core/standard-schema.d.cts +126 -0
- package/node_modules/zod/v4/core/standard-schema.d.ts +126 -0
- package/node_modules/zod/v4/core/standard-schema.js +1 -0
- package/node_modules/zod/v4/core/to-json-schema.cjs +457 -0
- package/node_modules/zod/v4/core/to-json-schema.d.cts +114 -0
- package/node_modules/zod/v4/core/to-json-schema.d.ts +114 -0
- package/node_modules/zod/v4/core/to-json-schema.js +448 -0
- package/node_modules/zod/v4/core/util.cjs +734 -0
- package/node_modules/zod/v4/core/util.d.cts +200 -0
- package/node_modules/zod/v4/core/util.d.ts +200 -0
- package/node_modules/zod/v4/core/util.js +674 -0
- package/node_modules/zod/v4/core/versions.cjs +8 -0
- package/node_modules/zod/v4/core/versions.d.cts +5 -0
- package/node_modules/zod/v4/core/versions.d.ts +5 -0
- package/node_modules/zod/v4/core/versions.js +5 -0
- package/node_modules/zod/v4/index.cjs +22 -0
- package/node_modules/zod/v4/index.d.cts +3 -0
- package/node_modules/zod/v4/index.d.ts +3 -0
- package/node_modules/zod/v4/index.js +3 -0
- package/node_modules/zod/v4/locales/ar.cjs +133 -0
- package/node_modules/zod/v4/locales/ar.d.cts +5 -0
- package/node_modules/zod/v4/locales/ar.d.ts +4 -0
- package/node_modules/zod/v4/locales/ar.js +106 -0
- package/node_modules/zod/v4/locales/az.cjs +132 -0
- package/node_modules/zod/v4/locales/az.d.cts +5 -0
- package/node_modules/zod/v4/locales/az.d.ts +4 -0
- package/node_modules/zod/v4/locales/az.js +105 -0
- package/node_modules/zod/v4/locales/be.cjs +183 -0
- package/node_modules/zod/v4/locales/be.d.cts +5 -0
- package/node_modules/zod/v4/locales/be.d.ts +4 -0
- package/node_modules/zod/v4/locales/be.js +156 -0
- package/node_modules/zod/v4/locales/bg.cjs +147 -0
- package/node_modules/zod/v4/locales/bg.d.cts +5 -0
- package/node_modules/zod/v4/locales/bg.d.ts +4 -0
- package/node_modules/zod/v4/locales/bg.js +120 -0
- package/node_modules/zod/v4/locales/ca.cjs +134 -0
- package/node_modules/zod/v4/locales/ca.d.cts +5 -0
- package/node_modules/zod/v4/locales/ca.d.ts +4 -0
- package/node_modules/zod/v4/locales/ca.js +107 -0
- package/node_modules/zod/v4/locales/cs.cjs +138 -0
- package/node_modules/zod/v4/locales/cs.d.cts +5 -0
- package/node_modules/zod/v4/locales/cs.d.ts +4 -0
- package/node_modules/zod/v4/locales/cs.js +111 -0
- package/node_modules/zod/v4/locales/da.cjs +142 -0
- package/node_modules/zod/v4/locales/da.d.cts +5 -0
- package/node_modules/zod/v4/locales/da.d.ts +4 -0
- package/node_modules/zod/v4/locales/da.js +115 -0
- package/node_modules/zod/v4/locales/de.cjs +135 -0
- package/node_modules/zod/v4/locales/de.d.cts +5 -0
- package/node_modules/zod/v4/locales/de.d.ts +4 -0
- package/node_modules/zod/v4/locales/de.js +108 -0
- package/node_modules/zod/v4/locales/el.cjs +136 -0
- package/node_modules/zod/v4/locales/el.d.cts +5 -0
- package/node_modules/zod/v4/locales/el.d.ts +4 -0
- package/node_modules/zod/v4/locales/el.js +109 -0
- package/node_modules/zod/v4/locales/en.cjs +140 -0
- package/node_modules/zod/v4/locales/en.d.cts +5 -0
- package/node_modules/zod/v4/locales/en.d.ts +4 -0
- package/node_modules/zod/v4/locales/en.js +113 -0
- package/node_modules/zod/v4/locales/eo.cjs +136 -0
- package/node_modules/zod/v4/locales/eo.d.cts +5 -0
- package/node_modules/zod/v4/locales/eo.d.ts +4 -0
- package/node_modules/zod/v4/locales/eo.js +109 -0
- package/node_modules/zod/v4/locales/es.cjs +159 -0
- package/node_modules/zod/v4/locales/es.d.cts +5 -0
- package/node_modules/zod/v4/locales/es.d.ts +4 -0
- package/node_modules/zod/v4/locales/es.js +132 -0
- package/node_modules/zod/v4/locales/fa.cjs +141 -0
- package/node_modules/zod/v4/locales/fa.d.cts +5 -0
- package/node_modules/zod/v4/locales/fa.d.ts +4 -0
- package/node_modules/zod/v4/locales/fa.js +114 -0
- package/node_modules/zod/v4/locales/fi.cjs +139 -0
- package/node_modules/zod/v4/locales/fi.d.cts +5 -0
- package/node_modules/zod/v4/locales/fi.d.ts +4 -0
- package/node_modules/zod/v4/locales/fi.js +112 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +134 -0
- package/node_modules/zod/v4/locales/fr-CA.d.cts +5 -0
- package/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
- package/node_modules/zod/v4/locales/fr-CA.js +107 -0
- package/node_modules/zod/v4/locales/fr.cjs +152 -0
- package/node_modules/zod/v4/locales/fr.d.cts +5 -0
- package/node_modules/zod/v4/locales/fr.d.ts +4 -0
- package/node_modules/zod/v4/locales/fr.js +125 -0
- package/node_modules/zod/v4/locales/he.cjs +241 -0
- package/node_modules/zod/v4/locales/he.d.cts +5 -0
- package/node_modules/zod/v4/locales/he.d.ts +4 -0
- package/node_modules/zod/v4/locales/he.js +214 -0
- package/node_modules/zod/v4/locales/hr.cjs +149 -0
- package/node_modules/zod/v4/locales/hr.d.cts +5 -0
- package/node_modules/zod/v4/locales/hr.d.ts +4 -0
- package/node_modules/zod/v4/locales/hr.js +122 -0
- package/node_modules/zod/v4/locales/hu.cjs +135 -0
- package/node_modules/zod/v4/locales/hu.d.cts +5 -0
- package/node_modules/zod/v4/locales/hu.d.ts +4 -0
- package/node_modules/zod/v4/locales/hu.js +108 -0
- package/node_modules/zod/v4/locales/hy.cjs +174 -0
- package/node_modules/zod/v4/locales/hy.d.cts +5 -0
- package/node_modules/zod/v4/locales/hy.d.ts +4 -0
- package/node_modules/zod/v4/locales/hy.js +147 -0
- package/node_modules/zod/v4/locales/id.cjs +133 -0
- package/node_modules/zod/v4/locales/id.d.cts +5 -0
- package/node_modules/zod/v4/locales/id.d.ts +4 -0
- package/node_modules/zod/v4/locales/id.js +106 -0
- package/node_modules/zod/v4/locales/index.cjs +111 -0
- package/node_modules/zod/v4/locales/index.d.cts +52 -0
- package/node_modules/zod/v4/locales/index.d.ts +52 -0
- package/node_modules/zod/v4/locales/index.js +52 -0
- package/node_modules/zod/v4/locales/is.cjs +136 -0
- package/node_modules/zod/v4/locales/is.d.cts +5 -0
- package/node_modules/zod/v4/locales/is.d.ts +4 -0
- package/node_modules/zod/v4/locales/is.js +109 -0
- package/node_modules/zod/v4/locales/it.cjs +135 -0
- package/node_modules/zod/v4/locales/it.d.cts +5 -0
- package/node_modules/zod/v4/locales/it.d.ts +4 -0
- package/node_modules/zod/v4/locales/it.js +108 -0
- package/node_modules/zod/v4/locales/ja.cjs +134 -0
- package/node_modules/zod/v4/locales/ja.d.cts +5 -0
- package/node_modules/zod/v4/locales/ja.d.ts +4 -0
- package/node_modules/zod/v4/locales/ja.js +107 -0
- package/node_modules/zod/v4/locales/ka.cjs +139 -0
- package/node_modules/zod/v4/locales/ka.d.cts +5 -0
- package/node_modules/zod/v4/locales/ka.d.ts +4 -0
- package/node_modules/zod/v4/locales/ka.js +112 -0
- package/node_modules/zod/v4/locales/kh.cjs +12 -0
- package/node_modules/zod/v4/locales/kh.d.cts +5 -0
- package/node_modules/zod/v4/locales/kh.d.ts +5 -0
- package/node_modules/zod/v4/locales/kh.js +5 -0
- package/node_modules/zod/v4/locales/km.cjs +137 -0
- package/node_modules/zod/v4/locales/km.d.cts +5 -0
- package/node_modules/zod/v4/locales/km.d.ts +4 -0
- package/node_modules/zod/v4/locales/km.js +110 -0
- package/node_modules/zod/v4/locales/ko.cjs +138 -0
- package/node_modules/zod/v4/locales/ko.d.cts +5 -0
- package/node_modules/zod/v4/locales/ko.d.ts +4 -0
- package/node_modules/zod/v4/locales/ko.js +111 -0
- package/node_modules/zod/v4/locales/lt.cjs +230 -0
- package/node_modules/zod/v4/locales/lt.d.cts +5 -0
- package/node_modules/zod/v4/locales/lt.d.ts +4 -0
- package/node_modules/zod/v4/locales/lt.js +203 -0
- package/node_modules/zod/v4/locales/mk.cjs +136 -0
- package/node_modules/zod/v4/locales/mk.d.cts +5 -0
- package/node_modules/zod/v4/locales/mk.d.ts +4 -0
- package/node_modules/zod/v4/locales/mk.js +109 -0
- package/node_modules/zod/v4/locales/ms.cjs +134 -0
- package/node_modules/zod/v4/locales/ms.d.cts +5 -0
- package/node_modules/zod/v4/locales/ms.d.ts +4 -0
- package/node_modules/zod/v4/locales/ms.js +107 -0
- package/node_modules/zod/v4/locales/nl.cjs +137 -0
- package/node_modules/zod/v4/locales/nl.d.cts +5 -0
- package/node_modules/zod/v4/locales/nl.d.ts +4 -0
- package/node_modules/zod/v4/locales/nl.js +110 -0
- package/node_modules/zod/v4/locales/no.cjs +135 -0
- package/node_modules/zod/v4/locales/no.d.cts +5 -0
- package/node_modules/zod/v4/locales/no.d.ts +4 -0
- package/node_modules/zod/v4/locales/no.js +108 -0
- package/node_modules/zod/v4/locales/ota.cjs +136 -0
- package/node_modules/zod/v4/locales/ota.d.cts +5 -0
- package/node_modules/zod/v4/locales/ota.d.ts +4 -0
- package/node_modules/zod/v4/locales/ota.js +109 -0
- package/node_modules/zod/v4/locales/package.json +7 -0
- package/node_modules/zod/v4/locales/pl.cjs +136 -0
- package/node_modules/zod/v4/locales/pl.d.cts +5 -0
- package/node_modules/zod/v4/locales/pl.d.ts +4 -0
- package/node_modules/zod/v4/locales/pl.js +109 -0
- package/node_modules/zod/v4/locales/ps.cjs +141 -0
- package/node_modules/zod/v4/locales/ps.d.cts +5 -0
- package/node_modules/zod/v4/locales/ps.d.ts +4 -0
- package/node_modules/zod/v4/locales/ps.js +114 -0
- package/node_modules/zod/v4/locales/pt.cjs +135 -0
- package/node_modules/zod/v4/locales/pt.d.cts +5 -0
- package/node_modules/zod/v4/locales/pt.d.ts +4 -0
- package/node_modules/zod/v4/locales/pt.js +108 -0
- package/node_modules/zod/v4/locales/ro.cjs +146 -0
- package/node_modules/zod/v4/locales/ro.d.cts +5 -0
- package/node_modules/zod/v4/locales/ro.d.ts +4 -0
- package/node_modules/zod/v4/locales/ro.js +119 -0
- package/node_modules/zod/v4/locales/ru.cjs +183 -0
- package/node_modules/zod/v4/locales/ru.d.cts +5 -0
- package/node_modules/zod/v4/locales/ru.d.ts +4 -0
- package/node_modules/zod/v4/locales/ru.js +156 -0
- package/node_modules/zod/v4/locales/sl.cjs +136 -0
- package/node_modules/zod/v4/locales/sl.d.cts +5 -0
- package/node_modules/zod/v4/locales/sl.d.ts +4 -0
- package/node_modules/zod/v4/locales/sl.js +109 -0
- package/node_modules/zod/v4/locales/sv.cjs +137 -0
- package/node_modules/zod/v4/locales/sv.d.cts +5 -0
- package/node_modules/zod/v4/locales/sv.d.ts +4 -0
- package/node_modules/zod/v4/locales/sv.js +110 -0
- package/node_modules/zod/v4/locales/ta.cjs +137 -0
- package/node_modules/zod/v4/locales/ta.d.cts +5 -0
- package/node_modules/zod/v4/locales/ta.d.ts +4 -0
- package/node_modules/zod/v4/locales/ta.js +110 -0
- package/node_modules/zod/v4/locales/th.cjs +137 -0
- package/node_modules/zod/v4/locales/th.d.cts +5 -0
- package/node_modules/zod/v4/locales/th.d.ts +4 -0
- package/node_modules/zod/v4/locales/th.js +110 -0
- package/node_modules/zod/v4/locales/tr.cjs +132 -0
- package/node_modules/zod/v4/locales/tr.d.cts +5 -0
- package/node_modules/zod/v4/locales/tr.d.ts +4 -0
- package/node_modules/zod/v4/locales/tr.js +105 -0
- package/node_modules/zod/v4/locales/ua.cjs +12 -0
- package/node_modules/zod/v4/locales/ua.d.cts +5 -0
- package/node_modules/zod/v4/locales/ua.d.ts +5 -0
- package/node_modules/zod/v4/locales/ua.js +5 -0
- package/node_modules/zod/v4/locales/uk.cjs +135 -0
- package/node_modules/zod/v4/locales/uk.d.cts +5 -0
- package/node_modules/zod/v4/locales/uk.d.ts +4 -0
- package/node_modules/zod/v4/locales/uk.js +108 -0
- package/node_modules/zod/v4/locales/ur.cjs +137 -0
- package/node_modules/zod/v4/locales/ur.d.cts +5 -0
- package/node_modules/zod/v4/locales/ur.d.ts +4 -0
- package/node_modules/zod/v4/locales/ur.js +110 -0
- package/node_modules/zod/v4/locales/uz.cjs +137 -0
- package/node_modules/zod/v4/locales/uz.d.cts +5 -0
- package/node_modules/zod/v4/locales/uz.d.ts +4 -0
- package/node_modules/zod/v4/locales/uz.js +110 -0
- package/node_modules/zod/v4/locales/vi.cjs +135 -0
- package/node_modules/zod/v4/locales/vi.d.cts +5 -0
- package/node_modules/zod/v4/locales/vi.d.ts +4 -0
- package/node_modules/zod/v4/locales/vi.js +108 -0
- package/node_modules/zod/v4/locales/yo.cjs +134 -0
- package/node_modules/zod/v4/locales/yo.d.cts +5 -0
- package/node_modules/zod/v4/locales/yo.d.ts +4 -0
- package/node_modules/zod/v4/locales/yo.js +107 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +136 -0
- package/node_modules/zod/v4/locales/zh-CN.d.cts +5 -0
- package/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
- package/node_modules/zod/v4/locales/zh-CN.js +109 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +134 -0
- package/node_modules/zod/v4/locales/zh-TW.d.cts +5 -0
- package/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
- package/node_modules/zod/v4/locales/zh-TW.js +107 -0
- package/node_modules/zod/v4/mini/checks.cjs +34 -0
- package/node_modules/zod/v4/mini/checks.d.cts +1 -0
- package/node_modules/zod/v4/mini/checks.d.ts +1 -0
- package/node_modules/zod/v4/mini/checks.js +1 -0
- package/node_modules/zod/v4/mini/coerce.cjs +52 -0
- package/node_modules/zod/v4/mini/coerce.d.cts +7 -0
- package/node_modules/zod/v4/mini/coerce.d.ts +7 -0
- package/node_modules/zod/v4/mini/coerce.js +22 -0
- package/node_modules/zod/v4/mini/external.cjs +63 -0
- package/node_modules/zod/v4/mini/external.d.cts +13 -0
- package/node_modules/zod/v4/mini/external.d.ts +13 -0
- package/node_modules/zod/v4/mini/external.js +14 -0
- package/node_modules/zod/v4/mini/index.cjs +32 -0
- package/node_modules/zod/v4/mini/index.d.cts +3 -0
- package/node_modules/zod/v4/mini/index.d.ts +3 -0
- package/node_modules/zod/v4/mini/index.js +3 -0
- package/node_modules/zod/v4/mini/iso.cjs +64 -0
- package/node_modules/zod/v4/mini/iso.d.cts +22 -0
- package/node_modules/zod/v4/mini/iso.d.ts +22 -0
- package/node_modules/zod/v4/mini/iso.js +34 -0
- package/node_modules/zod/v4/mini/package.json +7 -0
- package/node_modules/zod/v4/mini/parse.cjs +16 -0
- package/node_modules/zod/v4/mini/parse.d.cts +1 -0
- package/node_modules/zod/v4/mini/parse.d.ts +1 -0
- package/node_modules/zod/v4/mini/parse.js +1 -0
- package/node_modules/zod/v4/mini/schemas.cjs +1083 -0
- package/node_modules/zod/v4/mini/schemas.d.cts +445 -0
- package/node_modules/zod/v4/mini/schemas.d.ts +445 -0
- package/node_modules/zod/v4/mini/schemas.js +961 -0
- package/node_modules/zod/v4/package.json +7 -0
- package/node_modules/zod/v4-mini/index.cjs +32 -0
- package/node_modules/zod/v4-mini/index.d.cts +3 -0
- package/node_modules/zod/v4-mini/index.d.ts +3 -0
- package/node_modules/zod/v4-mini/index.js +3 -0
- package/node_modules/zod/v4-mini/package.json +7 -0
- package/package.json +68 -0
- package/proof/CONTAINMENT-BUILD.txt +163 -0
- package/proof/MCP-SMOKE-STATUS.txt +9 -0
- package/proof/NODE-SYNTAX.txt +4 -0
- package/proof/PROOF.txt +6 -0
- package/proof/SECRET-SCAN.txt +4 -0
- package/proof/SOURCE-GATES.txt +16 -0
- package/proof/STATUS.txt +11 -0
- package/proof/TARGET-V0313-CONTAINMENT-PASS.sha256 +1 -0
- package/proof/TARGET-V0313-CONTAINMENT-PASS.txt +215 -0
- package/proof/TARGET-V040-CONTAINED-IPC-FAIL.sha256 +1 -0
- package/proof/TARGET-V040-CONTAINED-IPC-FAIL.txt +299 -0
- package/proof/TARGET-V041-CONTAINED-CREATEPROCESS-203.sha256 +1 -0
- package/proof/TARGET-V041-CONTAINED-CREATEPROCESS-203.txt +311 -0
- package/proof/TARGET-V042-CONTAINED-CREATEPROCESS-203.sha256 +1 -0
- package/proof/TARGET-V042-CONTAINED-CREATEPROCESS-203.txt +313 -0
- package/proof/TARGET-V043-CONTAINED-CREATEPROCESS-203.sha256 +1 -0
- package/proof/TARGET-V043-CONTAINED-CREATEPROCESS-203.txt +308 -0
- package/proof/TARGET-V044-CONTAINED-PASS.sha256 +1 -0
- package/proof/TARGET-V044-CONTAINED-PASS.txt +432 -0
- package/proof/TARGET-V045-DUAL-OPERATION-PASS.sha256 +1 -0
- package/proof/TARGET-V045-DUAL-OPERATION-PASS.txt +481 -0
- package/proof/TARGET-V046-FIXED-EXECUTABLE-REGISTRY-PASS.sha256 +1 -0
- package/proof/TARGET-V046-FIXED-EXECUTABLE-REGISTRY-PASS.txt +610 -0
- package/proof/TARGET-V047-RUNTIME-MANIFEST-PASS.sha256 +1 -0
- package/proof/TARGET-V047-RUNTIME-MANIFEST-PASS.txt +642 -0
- package/proof/TARGET-V050-BATCH-GATE-PASS.sha256 +1 -0
- package/proof/TARGET-V050-BATCH-GATE-PASS.txt +713 -0
- package/proof/TESTS.txt +686 -0
- package/proof/TRUST-EPHEMERAL.txt +4 -0
- package/proof/V03-FREEZE.txt +27 -0
- package/proof/V041-IPC-HOTFIX.txt +16 -0
- package/proof/V042-ENV-HOTFIX.txt +15 -0
- package/proof/V043-DRIVE-CWD-HOTFIX.txt +14 -0
- package/proof/V044-LOCALAPPDATA-HOTFIX.txt +18 -0
- package/proof/V045-OPERATION-REGISTRY.txt +7 -0
- package/proof/V046-WORKER-REGISTRY.txt +12 -0
- package/proof/V047-WORKER-MANIFEST.txt +18 -0
- package/proof/V050-BATCH-TRUST-CLOSURE.txt +21 -0
- package/proof/V060-ACTIVE-NETWORK-AUTHORITY.txt +29 -0
- package/proof/V070-NODE-SYNTAX.txt +36 -0
- package/proof/V070-NODE-TESTS.txt +752 -0
- package/proof/V070-PACK-DRY-RUN.txt +126 -0
- package/proof/V070-SOURCE-GATE.txt +30 -0
- package/proof/V070-STATIC-SCAN.txt +4 -0
- package/proof/V070-WINDOWS-GATE-PENDING.txt +25 -0
- package/proof/V071-NODE-SYNTAX.txt +1 -0
- package/proof/V071-NODE-TESTS.txt +796 -0
- package/proof/V071-PACK-DRY-RUN.json +656 -0
- package/proof/V071-SOURCE-GATE.txt +16 -0
- package/proof/V071-WINDOWS-GATE-PENDING.txt +24 -0
- package/proof/V073-NODE-SYNTAX.txt +4 -0
- package/proof/V073-SOURCE-GATE.txt +21 -0
- package/proof/V073-STATIC-SCAN.txt +10 -0
- package/proof/V073-WINDOWS-GATE-PENDING.txt +5 -0
- package/proof/VERIFY.txt +7 -0
- package/proof/WINDOWS-CONTAINED-STATUS.txt +5 -0
- package/proof/WINDOWS-CONTAINMENT-STATUS.txt +3 -0
- package/scripts/autonomous-benchmark.mjs +12 -0
- package/scripts/autonomous-build.ps1 +20 -0
- package/scripts/autonomous-tests.ps1 +9 -0
- package/scripts/build-containment.ps1 +279 -0
- package/scripts/coding-live-smoke.mjs +5 -0
- package/scripts/deferred-slot-operation.mjs +84 -0
- package/scripts/final-closure-verify.mjs +159 -0
- package/scripts/final-closure.mjs +106 -0
- package/scripts/gate-windows.ps1 +42 -0
- package/scripts/init-host-policy.ps1 +121 -0
- package/scripts/refresh-process-policy.mjs +68 -0
- package/scripts/release-manifest.mjs +187 -0
- package/scripts/release-parity.mjs +190 -0
- package/scripts/runtime-self-update.mjs +15 -0
- package/scripts/windows-gate-evidence.mjs +52 -0
- package/src/agent-mcp-tools.mjs +158 -0
- package/src/agent-runtime.mjs +874 -0
- package/src/audit-context.mjs +73 -0
- package/src/audit-verify.mjs +93 -0
- package/src/authority-smoke.mjs +117 -0
- package/src/autonomous-mcp-tools.mjs +118 -0
- package/src/autonomous-output-contracts.mjs +125 -0
- package/src/autonomous-planner-contracts.mjs +73 -0
- package/src/autonomous-planner.mjs +290 -0
- package/src/autonomous-policy.mjs +146 -0
- package/src/autonomous-runtime.mjs +993 -0
- package/src/autonomous-supervisor.mjs +86 -0
- package/src/canonical-json.mjs +17 -0
- package/src/coding-mcp-tools.mjs +143 -0
- package/src/coding-output-contracts.mjs +189 -0
- package/src/coding-plane.mjs +657 -0
- package/src/coding-search.mjs +55 -0
- package/src/coding-task-runtime.mjs +725 -0
- package/src/contained-cli.mjs +30 -0
- package/src/contained-executor.mjs +276 -0
- package/src/contained-result.mjs +149 -0
- package/src/contained-smoke.mjs +101 -0
- package/src/containment-bootstrap.mjs +94 -0
- package/src/containment-child-control.mjs +109 -0
- package/src/containment-construction.mjs +107 -0
- package/src/containment-result.mjs +87 -0
- package/src/containment-smoke.mjs +71 -0
- package/src/deadbyte-cli.mjs +55 -0
- package/src/executor.mjs +158 -0
- package/src/hash.mjs +17 -0
- package/src/host-plane.mjs +423 -0
- package/src/ingress-mode.mjs +22 -0
- package/src/invocation.mjs +34 -0
- package/src/machine-fs-mcp-tools.mjs +80 -0
- package/src/machine-fs-output-contracts.mjs +67 -0
- package/src/machine-fs-smoke-client.mjs +134 -0
- package/src/machine-fs.mjs +475 -0
- package/src/machine-identity.mjs +275 -0
- package/src/machine-mcp-tools.mjs +43 -0
- package/src/machine-output-contracts.mjs +58 -0
- package/src/mcp-contained-smoke-client.mjs +139 -0
- package/src/mcp-host-smoke-client.mjs +136 -0
- package/src/mcp-server.mjs +419 -0
- package/src/mcp-smoke-client.mjs +136 -0
- package/src/native-diff.mjs +403 -0
- package/src/observation-mcp-tools.mjs +44 -0
- package/src/observation-output-contracts.mjs +50 -0
- package/src/observation-runtime.mjs +257 -0
- package/src/observation-smoke-client.mjs +97 -0
- package/src/operation-policy.mjs +19 -0
- package/src/output-contracts.mjs +252 -0
- package/src/path-policy.mjs +91 -0
- package/src/process-mcp-tools.mjs +72 -0
- package/src/process-output-contracts.mjs +79 -0
- package/src/process-policy.mjs +150 -0
- package/src/process-runtime.mjs +297 -0
- package/src/process-smoke-client.mjs +124 -0
- package/src/proof-cli.mjs +23 -0
- package/src/proof-worker.mjs +11 -0
- package/src/receipt.mjs +111 -0
- package/src/release-generation.mjs +233 -0
- package/src/release-slot.mjs +293 -0
- package/src/remote-mcp-autonomous-smoke-client.mjs +138 -0
- package/src/remote-mcp-coding-smoke-client.mjs +111 -0
- package/src/remote-mcp-host-smoke-client.mjs +84 -0
- package/src/remote-mcp-machine-smoke-client.mjs +66 -0
- package/src/remote-mcp-r24-disarmed-smoke-client.mjs +38 -0
- package/src/remote-mcp-r33-parity-client.mjs +177 -0
- package/src/remote-mcp-smoke-client.mjs +162 -0
- package/src/request-identity.mjs +63 -0
- package/src/runtime-identity.mjs +33 -0
- package/src/runtime-update.mjs +961 -0
- package/src/text-policy.mjs +9 -0
- package/src/tool-audit.mjs +261 -0
- package/src/trust-init.mjs +21 -0
- package/src/trust.mjs +82 -0
- package/src/tunnel-stdio-compat-smoke.mjs +142 -0
- package/src/tunnel-stdio-compat.mjs +126 -0
- package/src/verifier-cli.mjs +13 -0
- package/src/verifier.mjs +333 -0
- package/src/version.mjs +6 -0
- package/src/worker-registry.mjs +108 -0
- package/test/DEADBYTE-MCP-WRITE-PROBE.txt +5 -0
- package/test/agent-crash-child.mjs +25 -0
- package/test/agent-crash-worker.mjs +19 -0
- package/test/agent-runtime-adversarial.test.mjs +228 -0
- package/test/agent-runtime-crash.test.mjs +76 -0
- package/test/agent-runtime.test.mjs +124 -0
- package/test/agent-task-receipt.test.mjs +73 -0
- package/test/audit-context.test.mjs +50 -0
- package/test/audit-server-integration.test.mjs +30 -0
- package/test/audit-verify.test.mjs +32 -0
- package/test/autonomous-adversarial.test.mjs +329 -0
- package/test/autonomous-live-fixture.test.mjs +10 -0
- package/test/autonomous-loop.test.mjs +188 -0
- package/test/autonomous-output-contract.test.mjs +24 -0
- package/test/autonomous-runtime.test.mjs +93 -0
- package/test/autonomous-supervisor-integration.test.mjs +106 -0
- package/test/cli-entrypoint.test.mjs +34 -0
- package/test/coding-crash.test.mjs +74 -0
- package/test/coding-observation.test.mjs +62 -0
- package/test/coding-plane-adversarial.test.mjs +130 -0
- package/test/coding-plane.test.mjs +93 -0
- package/test/coding-runtime.test.mjs +165 -0
- package/test/contained.test.mjs +931 -0
- package/test/containment.test.mjs +557 -0
- package/test/controller-r21.test.mjs +28 -0
- package/test/controller-r211.test.mjs +21 -0
- package/test/controller-r212.test.mjs +31 -0
- package/test/controller-r24-dns.test.mjs +14 -0
- package/test/controller-r24.test.mjs +32 -0
- package/test/controller-r27.test.mjs +56 -0
- package/test/controller-r29.test.mjs +25 -0
- package/test/controller-r30.test.mjs +30 -0
- package/test/controller.test.mjs +165 -0
- package/test/core.test.mjs +305 -0
- package/test/deferred-slot-operation-behavior.test.mjs +29 -0
- package/test/deferred-slot-operation.test.mjs +18 -0
- package/test/helpers/coding-crash-child.mjs +22 -0
- package/test/host-plane.test.mjs +129 -0
- package/test/machine-fs-mcp-tools.test.mjs +46 -0
- package/test/machine-fs-runtime.test.mjs +105 -0
- package/test/machine-identity.test.mjs +131 -0
- package/test/machine-mcp-integration.test.mjs +88 -0
- package/test/machine-mcp-tools.test.mjs +77 -0
- package/test/mcp-contained-smoke-isolation.test.mjs +14 -0
- package/test/named-tunnel-host.test.mjs +27 -0
- package/test/native-diff.test.mjs +102 -0
- package/test/observation-integration.test.mjs +56 -0
- package/test/observation-mcp-tools.test.mjs +40 -0
- package/test/observation-runtime.test.mjs +123 -0
- package/test/output-schema.test.mjs +86 -0
- package/test/package-boundary.test.mjs +38 -0
- package/test/process-mcp-tools.test.mjs +71 -0
- package/test/process-native.test.mjs +78 -0
- package/test/process-policy-refresh.test.mjs +64 -0
- package/test/process-policy.test.mjs +118 -0
- package/test/process-release-gate.test.mjs +41 -0
- package/test/process-runtime.test.mjs +184 -0
- package/test/process-supervision.test.mjs +24 -0
- package/test/r33-closeout-regression.test.mjs +109 -0
- package/test/r33-finalization.test.mjs +67 -0
- package/test/release-generation.test.mjs +116 -0
- package/test/release-manifest-windows.test.mjs +89 -0
- package/test/release-slot.test.mjs +122 -0
- package/test/release-smoke-isolation.test.mjs +22 -0
- package/test/release-version.test.mjs +35 -0
- package/test/remote-r24-catalog.test.mjs +75 -0
- package/test/runtime-self-update.test.mjs +280 -0
- package/test/standing-grants.test.mjs +77 -0
- package/test/tool-audit.test.mjs +134 -0
- package/test/tunnel-stdio-compat.test.mjs +163 -0
- package/workspaces/autonomous-live/fixture.txt +1 -0
- package/workspaces/demo/input.txt +1 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { readFile } from 'node:fs/promises';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
6
|
+
|
|
7
|
+
const root=path.resolve(path.dirname(fileURLToPath(import.meta.url)),'..');
|
|
8
|
+
test('R33 deferred slot operation exposes only exact activation or signed-receipt rollback',async()=>{
|
|
9
|
+
const source=await readFile(path.join(root,'scripts','deferred-slot-operation.mjs'),'utf8');
|
|
10
|
+
assert.match(source,/mode==='activate'/);
|
|
11
|
+
assert.match(source,/mode==='rollback'/);
|
|
12
|
+
assert.match(source,/verifySlotUpdateEnvelope/);
|
|
13
|
+
assert.match(source,/runSlotUpdateCli\(args,\{stateRoot\}\)/);
|
|
14
|
+
assert.match(source,/detached:true/);
|
|
15
|
+
assert.match(source,/rdc_operation_count:0/);
|
|
16
|
+
assert.doesNotMatch(source,/shell:\s*true/);
|
|
17
|
+
assert.doesNotMatch(source,/exec\(|execFile\(/);
|
|
18
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { loadCodingPolicy, createCodingRuntime } from '../../src/coding-plane.mjs';
|
|
2
|
+
import { createCodingTaskRuntime } from '../../src/coding-task-runtime.mjs';
|
|
3
|
+
|
|
4
|
+
const [policyPath, privateKeyPath, publicKeyPath, taskId] = process.argv.slice(2);
|
|
5
|
+
if (!policyPath || !privateKeyPath || !publicKeyPath || !taskId) process.exit(64);
|
|
6
|
+
const policy = await loadCodingPolicy(policyPath);
|
|
7
|
+
const real = createCodingRuntime({ policy, signingKeyPath: privateKeyPath, verifyKeyPath: publicKeyPath });
|
|
8
|
+
let keepAlive = null;
|
|
9
|
+
const proxy = {
|
|
10
|
+
...real,
|
|
11
|
+
policy: real.policy,
|
|
12
|
+
async fileWrite(args) {
|
|
13
|
+
const result = await real.fileWrite(args);
|
|
14
|
+
process.stdout.write('SIDE_EFFECT_RECEIPTED\n');
|
|
15
|
+
keepAlive = setInterval(() => {}, 1000);
|
|
16
|
+
await new Promise(() => {});
|
|
17
|
+
return result;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
const tasks = createCodingTaskRuntime({ codingRuntime: proxy, signingKeyPath: privateKeyPath, verifyKeyPath: publicKeyPath });
|
|
21
|
+
await tasks.run({ taskId, maxSteps: 1 });
|
|
22
|
+
if (keepAlive) clearInterval(keepAlive);
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { createHash, randomBytes } from 'node:crypto';
|
|
4
|
+
import { mkdir, mkdtemp, readFile, symlink, writeFile } from 'node:fs/promises';
|
|
5
|
+
import os from 'node:os';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import {
|
|
8
|
+
HOST_ARM_SCHEMA,
|
|
9
|
+
HOST_POLICY_SCHEMA,
|
|
10
|
+
assertHostArmed,
|
|
11
|
+
hostExec,
|
|
12
|
+
hostFileRead,
|
|
13
|
+
hostFileWrite,
|
|
14
|
+
loadHostPolicy
|
|
15
|
+
} from '../src/host-plane.mjs';
|
|
16
|
+
|
|
17
|
+
const sha = bytes => createHash('sha256').update(bytes).digest('hex');
|
|
18
|
+
|
|
19
|
+
async function fixture({ expiresMs = 60_000 } = {}) {
|
|
20
|
+
const dir = await mkdtemp(path.join(os.tmpdir(), 'deadbyte-host-plane-'));
|
|
21
|
+
const root = path.join(dir, 'root');
|
|
22
|
+
await mkdir(root);
|
|
23
|
+
const arm = path.join(dir, 'arm.json');
|
|
24
|
+
const policyPath = path.join(dir, 'policy.json');
|
|
25
|
+
const executableSha = sha(await readFile(process.execPath));
|
|
26
|
+
const policyRaw = {
|
|
27
|
+
schema: HOST_POLICY_SCHEMA,
|
|
28
|
+
enabled: true,
|
|
29
|
+
arm_file: arm,
|
|
30
|
+
max_read_bytes: 262144,
|
|
31
|
+
max_write_bytes: 1048576,
|
|
32
|
+
roots: {
|
|
33
|
+
core: { path: root, read: true, write: true, exec: true }
|
|
34
|
+
},
|
|
35
|
+
commands: {
|
|
36
|
+
node_script: {
|
|
37
|
+
kind: 'script',
|
|
38
|
+
executable: process.execPath,
|
|
39
|
+
executable_sha256: executableSha,
|
|
40
|
+
root_ids: ['core'],
|
|
41
|
+
prefix_args: [],
|
|
42
|
+
extensions: ['.mjs'],
|
|
43
|
+
timeout_ms: 5000,
|
|
44
|
+
max_output_bytes: 65536
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const policyBytes = Buffer.from(JSON.stringify(policyRaw, null, 2) + '\n');
|
|
49
|
+
await writeFile(policyPath, policyBytes);
|
|
50
|
+
const policy = await loadHostPolicy(policyPath);
|
|
51
|
+
await writeFile(arm, JSON.stringify({
|
|
52
|
+
schema: HOST_ARM_SCHEMA,
|
|
53
|
+
policy_sha256: policy.policy_sha256,
|
|
54
|
+
instance_nonce: randomBytes(32).toString('hex'),
|
|
55
|
+
armed_at_utc: new Date().toISOString(),
|
|
56
|
+
expires_at_utc: new Date(Date.now() + expiresMs).toISOString()
|
|
57
|
+
}, null, 2));
|
|
58
|
+
return { dir, root, arm, policy };
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
test('privileged host plane requires a live policy-bound arm lease', async () => {
|
|
62
|
+
const f = await fixture();
|
|
63
|
+
const armed = await assertHostArmed(f.policy);
|
|
64
|
+
assert.ok(armed.remaining_ms > 0);
|
|
65
|
+
const expired = await fixture({ expiresMs: -1 });
|
|
66
|
+
await assert.rejects(() => assertHostArmed(expired.policy), /arm expired/);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
test('host_file_write is root-scoped hash-precondition and host_file_read returns a verified digest', async () => {
|
|
70
|
+
const f = await fixture();
|
|
71
|
+
const first = await hostFileWrite(f.policy, {
|
|
72
|
+
rootId: 'core', relativePath: 'src/new.mjs', content: 'export const n = 1;\n', encoding: 'utf8', expectedSha256: 'absent'
|
|
73
|
+
});
|
|
74
|
+
assert.equal(first.created, true);
|
|
75
|
+
const read = await hostFileRead(f.policy, { rootId: 'core', relativePath: 'src/new.mjs', encoding: 'utf8' });
|
|
76
|
+
assert.equal(read.sha256, first.sha256);
|
|
77
|
+
assert.equal(read.content, 'export const n = 1;\n');
|
|
78
|
+
|
|
79
|
+
await assert.rejects(() => hostFileWrite(f.policy, {
|
|
80
|
+
rootId: 'core', relativePath: 'src/new.mjs', content: 'bad\n', encoding: 'utf8', expectedSha256: '0'.repeat(64)
|
|
81
|
+
}), /hash precondition mismatch/);
|
|
82
|
+
|
|
83
|
+
const second = await hostFileWrite(f.policy, {
|
|
84
|
+
rootId: 'core', relativePath: 'src/new.mjs', content: 'export const n = 2;\n', encoding: 'utf8', expectedSha256: first.sha256
|
|
85
|
+
});
|
|
86
|
+
assert.equal(second.created, false);
|
|
87
|
+
assert.notEqual(second.sha256, first.sha256);
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
test('host file plane denies path traversal and symlink escape', async t => {
|
|
91
|
+
const f = await fixture();
|
|
92
|
+
await assert.rejects(() => hostFileRead(f.policy, { rootId: 'core', relativePath: '../outside.txt' }), /escapes|path/);
|
|
93
|
+
const outside = path.join(f.dir, 'outside');
|
|
94
|
+
await mkdir(outside);
|
|
95
|
+
await writeFile(path.join(outside, 'x.txt'), 'x\n');
|
|
96
|
+
const link = path.join(f.root, 'link');
|
|
97
|
+
try {
|
|
98
|
+
await symlink(outside, link, process.platform === 'win32' ? 'junction' : 'dir');
|
|
99
|
+
} catch (error) {
|
|
100
|
+
if (['EPERM', 'EACCES'].includes(error?.code)) {
|
|
101
|
+
t.skip('symlink creation is not permitted in this environment');
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
await assert.rejects(() => hostFileRead(f.policy, { rootId: 'core', relativePath: 'link/x.txt' }), /symlink escapes|outside/);
|
|
107
|
+
await assert.rejects(() => hostFileWrite(f.policy, {
|
|
108
|
+
rootId: 'core', relativePath: 'link/y.txt', content: 'y\n', encoding: 'utf8', expectedSha256: 'absent'
|
|
109
|
+
}), /symlink escapes|outside/);
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
test('host_exec runs only a hash-pinned script through a hash-pinned executable with no shell string', async () => {
|
|
113
|
+
const f = await fixture();
|
|
114
|
+
const script = 'console.log(JSON.stringify({ok:true,args:process.argv.slice(2)}));\n';
|
|
115
|
+
await writeFile(path.join(f.root, 'run.mjs'), script);
|
|
116
|
+
const scriptSha = sha(Buffer.from(script));
|
|
117
|
+
const result = await hostExec(f.policy, {
|
|
118
|
+
commandId: 'node_script', rootId: 'core', scriptPath: 'run.mjs', scriptSha256: scriptSha, args: ['A', 'B'], timeoutMs: 2000
|
|
119
|
+
});
|
|
120
|
+
assert.equal(result.exit_code, 0);
|
|
121
|
+
assert.equal(result.timed_out, false);
|
|
122
|
+
assert.deepEqual(JSON.parse(result.stdout.trim()), { ok: true, args: ['A', 'B'] });
|
|
123
|
+
await assert.rejects(() => hostExec(f.policy, {
|
|
124
|
+
commandId: 'node_script', rootId: 'core', scriptPath: 'run.mjs', scriptSha256: 'f'.repeat(64), args: []
|
|
125
|
+
}), /script hash mismatch/);
|
|
126
|
+
await assert.rejects(() => hostExec(f.policy, {
|
|
127
|
+
commandId: 'cmd', rootId: 'core', scriptPath: 'run.mjs', scriptSha256: scriptSha, args: []
|
|
128
|
+
}), /not allowed/);
|
|
129
|
+
});
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { registerMachineFsTools } from '../src/machine-fs-mcp-tools.mjs';
|
|
4
|
+
|
|
5
|
+
class FakeServer {
|
|
6
|
+
constructor() { this.tools = new Map(); }
|
|
7
|
+
registerTool(name, spec, handler) { this.tools.set(name, { spec, handler }); }
|
|
8
|
+
}
|
|
9
|
+
const hex = ch => ch.repeat(64);
|
|
10
|
+
function runtime() {
|
|
11
|
+
return {
|
|
12
|
+
stat: async () => ({ status:'ok', root_id:'core', path:'a.txt', kind:'file', bytes:1, mtime_utc:new Date(0).toISOString(), sha256:hex('a'), identity_sha256:hex('b') }),
|
|
13
|
+
list: async () => ({ status:'ok', root_id:'core', path:'.', entries:[], next_cursor:null }),
|
|
14
|
+
read: async () => ({ status:'ok', root_id:'core', path:'a.txt', offset:0, next_offset:1, file_size:1, eof:true, data_base64:'YQ==', data_sha256:hex('a'), file_sha256:hex('a') }),
|
|
15
|
+
write: async () => ({ status:'committed', root_id:'core', path:'a.txt', previous_sha256:null, sha256:hex('a'), bytes:1, created:true, receipt_id:'a'.repeat(24), receipt_sha256:hex('b'), request_sha256:hex('c') }),
|
|
16
|
+
editExact: async () => ({ status:'committed', root_id:'core', path:'a.txt', previous_sha256:hex('a'), sha256:hex('b'), bytes:1, replacements:1, receipt_id:'a'.repeat(24), receipt_sha256:hex('b'), request_sha256:hex('c') }),
|
|
17
|
+
mkdir: async () => ({ status:'committed', root_id:'core', path:'d', identity_sha256:hex('a'), receipt_id:'a'.repeat(24), receipt_sha256:hex('b'), request_sha256:hex('c') }),
|
|
18
|
+
move: async () => ({ status:'committed', root_id:'core', source_path:'a', destination_path:'b', identity_sha256:hex('a'), receipt_id:'a'.repeat(24), receipt_sha256:hex('b'), request_sha256:hex('c') }),
|
|
19
|
+
delete: async () => ({ status:'committed', root_id:'core', path:'a', identity_sha256:hex('a'), recovery_key:hex('b'), receipt_id:'a'.repeat(24), receipt_sha256:hex('c'), request_sha256:hex('d') })
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
test('R31 registers exactly eight bounded machine filesystem tools', () => {
|
|
23
|
+
const server = new FakeServer();
|
|
24
|
+
registerMachineFsTools(server, { runtime: runtime() });
|
|
25
|
+
assert.deepEqual([...server.tools.keys()].sort(), [
|
|
26
|
+
'machine_fs_delete','machine_fs_edit_exact','machine_fs_list','machine_fs_mkdir',
|
|
27
|
+
'machine_fs_move','machine_fs_read','machine_fs_stat','machine_fs_write'
|
|
28
|
+
]);
|
|
29
|
+
for (const [name, tool] of server.tools) {
|
|
30
|
+
assert.ok(tool.spec.inputSchema, `${name} input schema missing`);
|
|
31
|
+
assert.ok(tool.spec.outputSchema, `${name} output schema missing`);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
test('R31 machine filesystem schemas expose root-relative IDs/preconditions only', () => {
|
|
36
|
+
const server = new FakeServer();
|
|
37
|
+
registerMachineFsTools(server, { runtime: runtime() });
|
|
38
|
+
const write = server.tools.get('machine_fs_write').spec.inputSchema;
|
|
39
|
+
const move = server.tools.get('machine_fs_move').spec.inputSchema;
|
|
40
|
+
const del = server.tools.get('machine_fs_delete').spec.inputSchema;
|
|
41
|
+
assert.equal(write.safeParse({ root_id:'core', path:'a.txt', content:'x', encoding:'utf8', expected_sha256:'absent' }).success, true);
|
|
42
|
+
assert.equal(write.safeParse({ root_id:'core', path:'C:\\Windows\\x', content:'x', executable:'cmd.exe', expected_sha256:'absent' }).success, false);
|
|
43
|
+
assert.equal(move.safeParse({ root_id:'core', source_path:'a', destination_path:'b', expected_source_identity:hex('a') }).success, true);
|
|
44
|
+
assert.equal(move.safeParse({ root_id:'core', source_path:'a', destination_path:'b', pid:1234, expected_source_identity:hex('a') }).success, false);
|
|
45
|
+
assert.equal(del.safeParse({ root_id:'core', path:'a', expected_source_identity:hex('a') }).success, true);
|
|
46
|
+
});
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { createHash } from 'node:crypto';
|
|
4
|
+
import { mkdtemp, mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
5
|
+
import os from 'node:os';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import { generateTrustKeypair } from '../src/trust.mjs';
|
|
8
|
+
import { loadCodingPolicy } from '../src/coding-plane.mjs';
|
|
9
|
+
import { createMachineFsRuntime, verifyMachineFsReceiptFile } from '../src/machine-fs.mjs';
|
|
10
|
+
|
|
11
|
+
const sha = bytes => createHash('sha256').update(bytes).digest('hex');
|
|
12
|
+
|
|
13
|
+
async function fixture() {
|
|
14
|
+
const root = await mkdtemp(path.join(os.tmpdir(), 'deadbyte-machine-fs-'));
|
|
15
|
+
const project = path.join(root, 'project');
|
|
16
|
+
await mkdir(project);
|
|
17
|
+
const policyPath = path.join(root, 'coding-policy.json');
|
|
18
|
+
const grantPath = path.join(root, 'coding-grant.json');
|
|
19
|
+
await writeFile(policyPath, JSON.stringify({
|
|
20
|
+
schema: 'deadbyte.coding-policy.v1', enabled: true,
|
|
21
|
+
lease_file: grantPath, evidence_dir: path.join(root, 'evidence'),
|
|
22
|
+
roots: { project: { path: project, read: true, write: true, exec: false, deny_paths: ['blocked'] } },
|
|
23
|
+
commands: {}, max_read_bytes: 65536, max_write_bytes: 65536
|
|
24
|
+
})); const policy = await loadCodingPolicy(policyPath);
|
|
25
|
+
await writeFile(grantPath, JSON.stringify({
|
|
26
|
+
schema: 'deadbyte.coding-grant.v2', policy_sha256: policy.policy_sha256,
|
|
27
|
+
instance_nonce: 'b'.repeat(64), root_ids: ['project'], granted_at_utc: new Date().toISOString()
|
|
28
|
+
}));
|
|
29
|
+
const keys = await generateTrustKeypair({
|
|
30
|
+
privateKeyPath: path.join(root, 'private.pem'), publicKeyPath: path.join(root, 'public.pem')
|
|
31
|
+
});
|
|
32
|
+
const runtime = createMachineFsRuntime({
|
|
33
|
+
policy, signingKeyPath: keys.privateKeyPath, verifyKeyPath: keys.publicKeyPath
|
|
34
|
+
});
|
|
35
|
+
return { root, project, policy, keys, runtime };
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
test('R31 machine fs supports exact mkdir/write/stat/list/range-read/edit/move/delete lifecycle', async () => {
|
|
39
|
+
const f = await fixture();
|
|
40
|
+
const made = await f.runtime.mkdir({ rootId: 'project', relativePath: 'dir' });
|
|
41
|
+
assert.equal(made.status, 'committed');
|
|
42
|
+
const written = await f.runtime.write({
|
|
43
|
+
rootId: 'project', relativePath: 'dir/a.txt', encoding: 'utf8', content: 'alpha beta gamma', expectedSha256: 'absent'
|
|
44
|
+
});
|
|
45
|
+
assert.equal(written.status, 'committed');
|
|
46
|
+
const stat = await f.runtime.stat({ rootId: 'project', relativePath: 'dir/a.txt', hash: true });
|
|
47
|
+
assert.equal(stat.sha256, sha(Buffer.from('alpha beta gamma')));
|
|
48
|
+
assert.match(stat.identity_sha256, /^[0-9a-f]{64}$/); const page1 = await f.runtime.list({ rootId: 'project', relativePath: 'dir', limit: 1 });
|
|
49
|
+
assert.equal(page1.entries.length, 1);
|
|
50
|
+
assert.equal(page1.entries[0].path, 'dir/a.txt');
|
|
51
|
+
assert.equal(page1.next_cursor, null);
|
|
52
|
+
const read = await f.runtime.read({ rootId: 'project', relativePath: 'dir/a.txt', offset: 6, maxBytes: 4 });
|
|
53
|
+
assert.equal(Buffer.from(read.data_base64, 'base64').toString('utf8'), 'beta');
|
|
54
|
+
assert.equal(read.next_offset, 10);
|
|
55
|
+
const edited = await f.runtime.editExact({
|
|
56
|
+
rootId: 'project', relativePath: 'dir/a.txt', expectedSha256: written.sha256,
|
|
57
|
+
oldString: 'beta', newString: 'BETA', expectedReplacements: 1
|
|
58
|
+
});
|
|
59
|
+
assert.equal(edited.replacements, 1);
|
|
60
|
+
const beforeMove = await f.runtime.stat({ rootId: 'project', relativePath: 'dir/a.txt', hash: true });
|
|
61
|
+
const moved = await f.runtime.move({
|
|
62
|
+
rootId: 'project', sourcePath: 'dir/a.txt', destinationPath: 'dir/b.txt',
|
|
63
|
+
expectedSourceIdentity: beforeMove.identity_sha256
|
|
64
|
+
});
|
|
65
|
+
assert.equal(moved.status, 'committed');
|
|
66
|
+
const beforeDelete = await f.runtime.stat({ rootId: 'project', relativePath: 'dir/b.txt', hash: true });
|
|
67
|
+
const deleted = await f.runtime.delete({ rootId: 'project', relativePath: 'dir/b.txt', expectedSourceIdentity: beforeDelete.identity_sha256 });
|
|
68
|
+
assert.equal(deleted.status, 'committed');
|
|
69
|
+
const dirStat = await f.runtime.stat({ rootId: 'project', relativePath: 'dir' });
|
|
70
|
+
const removedDir = await f.runtime.delete({ rootId: 'project', relativePath: 'dir', expectedSourceIdentity: dirStat.identity_sha256 });
|
|
71
|
+
assert.equal(removedDir.status, 'committed');
|
|
72
|
+
});test('R31 machine fs listing is deterministic and cursor-paged', async () => {
|
|
73
|
+
const f = await fixture();
|
|
74
|
+
for (const name of ['c.txt', 'a.txt', 'b.txt']) await writeFile(path.join(f.project, name), name);
|
|
75
|
+
const first = await f.runtime.list({ rootId: 'project', relativePath: '.', limit: 2 });
|
|
76
|
+
assert.deepEqual(first.entries.map(item => item.path), ['a.txt', 'b.txt']);
|
|
77
|
+
assert.equal(typeof first.next_cursor, 'string');
|
|
78
|
+
const second = await f.runtime.list({ rootId: 'project', relativePath: '.', limit: 2, cursor: first.next_cursor });
|
|
79
|
+
assert.deepEqual(second.entries.map(item => item.path), ['c.txt']);
|
|
80
|
+
assert.equal(second.next_cursor, null);
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
test('R31 machine fs fails closed on traversal, denied paths and stale source identity', async () => {
|
|
84
|
+
const f = await fixture();
|
|
85
|
+
await mkdir(path.join(f.project, 'blocked'));
|
|
86
|
+
await writeFile(path.join(f.project, 'x.txt'), 'one');
|
|
87
|
+
await assert.rejects(() => f.runtime.stat({ rootId: 'project', relativePath: '../escape' }), /relative|traversal|path/i);
|
|
88
|
+
await assert.rejects(() => f.runtime.stat({ rootId: 'project', relativePath: 'blocked' }), /denied/i);
|
|
89
|
+
const before = await f.runtime.stat({ rootId: 'project', relativePath: 'x.txt', hash: true });
|
|
90
|
+
await writeFile(path.join(f.project, 'x.txt'), 'two');
|
|
91
|
+
await assert.rejects(() => f.runtime.move({
|
|
92
|
+
rootId: 'project', sourcePath: 'x.txt', destinationPath: 'y.txt', expectedSourceIdentity: before.identity_sha256
|
|
93
|
+
}), /identity.*mismatch/i);
|
|
94
|
+
});test('R31 machine fs mutation receipt verifies independently', async () => {
|
|
95
|
+
const f = await fixture();
|
|
96
|
+
const made = await f.runtime.mkdir({ rootId: 'project', relativePath: 'proofdir' });
|
|
97
|
+
assert.match(made.receipt_id, /^[0-9a-f]{24}$/);
|
|
98
|
+
assert.match(made.receipt_sha256, /^[0-9a-f]{64}$/);
|
|
99
|
+
const verified = await verifyMachineFsReceiptFile({
|
|
100
|
+
policy: f.policy, verifyKeyPath: f.keys.publicKeyPath, receiptId: made.receipt_id
|
|
101
|
+
});
|
|
102
|
+
assert.equal(verified.ok, true);
|
|
103
|
+
assert.equal(verified.signature_valid, true);
|
|
104
|
+
assert.equal(verified.operation, 'machine_fs_mkdir');
|
|
105
|
+
});
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { createHash } from 'node:crypto';
|
|
4
|
+
import { mkdtemp, mkdir, readFile, rm, writeFile } from 'node:fs/promises';
|
|
5
|
+
import os from 'node:os';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
|
|
8
|
+
import {
|
|
9
|
+
createMachineRuntime,
|
|
10
|
+
initializeMachineIdentity,
|
|
11
|
+
verifyMachinePing
|
|
12
|
+
} from '../src/machine-identity.mjs';
|
|
13
|
+
import * as machineIdentity from '../src/machine-identity.mjs';
|
|
14
|
+
|
|
15
|
+
const sha256 = bytes => createHash('sha256').update(bytes).digest('hex');
|
|
16
|
+
|
|
17
|
+
async function writeActiveBinding(stateRoot, marker) {
|
|
18
|
+
const releaseRoot = path.join(stateRoot, 'releases', `release-${marker}`);
|
|
19
|
+
const generationRoot = path.join(stateRoot, 'generations', `generation-${marker}`);
|
|
20
|
+
await mkdir(releaseRoot, { recursive: true });
|
|
21
|
+
await mkdir(generationRoot, { recursive: true });
|
|
22
|
+
const manifestBytes = Buffer.from(`${marker}-release\n`, 'utf8');
|
|
23
|
+
const generationBytes = Buffer.from(`${marker}-generation\n`, 'utf8');
|
|
24
|
+
await writeFile(path.join(releaseRoot, 'MANIFEST.SHA256'), manifestBytes);
|
|
25
|
+
await writeFile(path.join(generationRoot, 'GENERATION.SHA256'), generationBytes);
|
|
26
|
+
const manifest = sha256(manifestBytes);
|
|
27
|
+
const generationManifest = sha256(generationBytes);
|
|
28
|
+
const pointer = {
|
|
29
|
+
schema: 'deadbyte.active-release.v1',
|
|
30
|
+
release_id: `v0.8.5-${manifest.slice(0, 16)}`,
|
|
31
|
+
version: '0.8.5',
|
|
32
|
+
manifest_sha256: manifest,
|
|
33
|
+
release_root: releaseRoot,
|
|
34
|
+
generation_root: generationRoot,
|
|
35
|
+
generation_manifest_sha256: generationManifest,
|
|
36
|
+
launcher_sha256: '1'.repeat(64),
|
|
37
|
+
config_path: path.join(generationRoot, 'controller-config.psd1')
|
|
38
|
+
};
|
|
39
|
+
const pointerPath = path.join(stateRoot, 'active-release.json');
|
|
40
|
+
await writeFile(pointerPath, `${JSON.stringify(pointer, null, 2)}\n`);
|
|
41
|
+
return { pointerPath, pointer, generationManifest };
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
test('R29 machine identity is stable across generations and signs generation-bound pings', async () => {
|
|
45
|
+
const stateRoot = await mkdtemp(path.join(os.tmpdir(), 'deadbyte-r29-machine-'));
|
|
46
|
+
try {
|
|
47
|
+
const first = await initializeMachineIdentity({ stateRoot });
|
|
48
|
+
const second = await initializeMachineIdentity({ stateRoot });
|
|
49
|
+
assert.equal(first.created, true);
|
|
50
|
+
assert.equal(second.created, false);
|
|
51
|
+
assert.equal(first.machine_id, second.machine_id);
|
|
52
|
+
assert.match(first.machine_id, /^[0-9a-f]{64}$/);
|
|
53
|
+
|
|
54
|
+
const bindingA = await writeActiveBinding(stateRoot, 'a');
|
|
55
|
+
const runtimeA = await createMachineRuntime({ stateRoot, activePointerPath: bindingA.pointerPath });
|
|
56
|
+
const statusA = await runtimeA.status();
|
|
57
|
+
assert.equal(statusA.status, 'ok');
|
|
58
|
+
assert.equal(statusA.machine_id, first.machine_id);
|
|
59
|
+
assert.equal(sha256(Buffer.from(statusA.public_key_spki_base64, 'base64')), first.machine_id);
|
|
60
|
+
assert.equal(statusA.release_id, bindingA.pointer.release_id);
|
|
61
|
+
assert.equal(statusA.generation_manifest_sha256, bindingA.generationManifest);
|
|
62
|
+
assert.ok(Array.isArray(statusA.capabilities));
|
|
63
|
+
assert.ok(statusA.capabilities.includes('machine_identity'));
|
|
64
|
+
|
|
65
|
+
const pingA = await runtimeA.ping({ nonce: 'abc123' });
|
|
66
|
+
assert.equal(pingA.status, 'ok');
|
|
67
|
+
assert.equal(pingA.machine_id, first.machine_id);
|
|
68
|
+
assert.equal(pingA.nonce, 'abc123');
|
|
69
|
+
assert.equal(pingA.generation_manifest_sha256, bindingA.generationManifest);
|
|
70
|
+
assert.equal(pingA.attestation.algorithm, 'ed25519');
|
|
71
|
+
assert.equal(await verifyMachinePing({ stateRoot, ping: pingA }), true);
|
|
72
|
+
assert.equal(typeof machineIdentity.verifyMachinePingPublic, 'function');
|
|
73
|
+
assert.equal(await machineIdentity.verifyMachinePingPublic({ ping: pingA, publicKeySpkiBase64: statusA.public_key_spki_base64 }), true);
|
|
74
|
+
|
|
75
|
+
const bindingB = await writeActiveBinding(stateRoot, 'b');
|
|
76
|
+
const runtimeB = await createMachineRuntime({ stateRoot, activePointerPath: bindingB.pointerPath });
|
|
77
|
+
const statusB = await runtimeB.status();
|
|
78
|
+
assert.equal(statusB.machine_id, first.machine_id);
|
|
79
|
+
assert.equal(statusB.generation_manifest_sha256, bindingB.generationManifest);
|
|
80
|
+
assert.notEqual(statusB.generation_manifest_sha256, statusA.generation_manifest_sha256);
|
|
81
|
+
|
|
82
|
+
const pingB = await runtimeB.ping({ nonce: 'xyz789' });
|
|
83
|
+
assert.equal(await verifyMachinePing({ stateRoot, ping: pingB }), true);
|
|
84
|
+
assert.equal(pingB.machine_id, pingA.machine_id);
|
|
85
|
+
assert.notEqual(pingB.generation_manifest_sha256, pingA.generation_manifest_sha256);
|
|
86
|
+
|
|
87
|
+
const tampered = structuredClone(pingB);
|
|
88
|
+
tampered.nonce = 'tampered';
|
|
89
|
+
assert.equal(await verifyMachinePing({ stateRoot, ping: tampered }), false);
|
|
90
|
+
} finally {
|
|
91
|
+
await rm(stateRoot, { recursive: true, force: true });
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
test('R29 revoke increments generation and invalidates previous machine-runtime epoch', async () => {
|
|
96
|
+
const stateRoot = await mkdtemp(path.join(os.tmpdir(), 'deadbyte-r29-revoke-'));
|
|
97
|
+
try {
|
|
98
|
+
const binding = await writeActiveBinding(stateRoot, 'revoke');
|
|
99
|
+
const runtime = await createMachineRuntime({ stateRoot, activePointerPath: binding.pointerPath });
|
|
100
|
+
const before = await runtime.status();
|
|
101
|
+
const revoked = await runtime.revoke({ reason: 'operator_test' });
|
|
102
|
+
assert.equal(revoked.status, 'revoked');
|
|
103
|
+
assert.equal(revoked.machine_id, before.machine_id);
|
|
104
|
+
assert.equal(revoked.previous_identity_generation, before.identity_generation);
|
|
105
|
+
assert.equal(revoked.identity_generation, before.identity_generation + 1);
|
|
106
|
+
const after = await runtime.status();
|
|
107
|
+
assert.equal(after.identity_generation, revoked.identity_generation);
|
|
108
|
+
assert.notEqual(after.online_epoch, before.online_epoch);
|
|
109
|
+
} finally {
|
|
110
|
+
await rm(stateRoot, { recursive: true, force: true });
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
test('R29 concurrent identity initialization converges on one key without destructive cleanup', async () => {
|
|
115
|
+
const stateRoot = await mkdtemp(path.join(os.tmpdir(), 'deadbyte-r29-race-'));
|
|
116
|
+
try {
|
|
117
|
+
const results = await Promise.allSettled([
|
|
118
|
+
initializeMachineIdentity({ stateRoot }),
|
|
119
|
+
initializeMachineIdentity({ stateRoot }),
|
|
120
|
+
initializeMachineIdentity({ stateRoot })
|
|
121
|
+
]);
|
|
122
|
+
assert.equal(results.filter(item => item.status === 'rejected').length, 0);
|
|
123
|
+
const ids = new Set(results.map(item => item.value.machine_id));
|
|
124
|
+
assert.equal(ids.size, 1);
|
|
125
|
+
const observed = await initializeMachineIdentity({ stateRoot });
|
|
126
|
+
assert.equal(observed.created, false);
|
|
127
|
+
assert.equal(observed.machine_id, [...ids][0]);
|
|
128
|
+
} finally {
|
|
129
|
+
await rm(stateRoot, { recursive: true, force: true });
|
|
130
|
+
}
|
|
131
|
+
});
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { createHash } from 'node:crypto';
|
|
4
|
+
import { mkdtemp, mkdir, rm, writeFile } from 'node:fs/promises';
|
|
5
|
+
import os from 'node:os';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import { fileURLToPath } from 'node:url';
|
|
8
|
+
import { Client } from '@modelcontextprotocol/client';
|
|
9
|
+
import { StdioClientTransport, getDefaultEnvironment } from '@modelcontextprotocol/client/stdio';
|
|
10
|
+
import { generateTrustKeypair } from '../src/trust.mjs';
|
|
11
|
+
import { releaseId } from '../src/release-slot.mjs';
|
|
12
|
+
|
|
13
|
+
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
14
|
+
const repoRoot = path.resolve(here, '..');
|
|
15
|
+
const serverPath = path.join(repoRoot, 'src', 'mcp-server.mjs');
|
|
16
|
+
const sha = bytes => createHash('sha256').update(bytes).digest('hex');
|
|
17
|
+
|
|
18
|
+
async function activeState(root) {
|
|
19
|
+
const releaseRoot = path.join(root, 'releases', 'fixture');
|
|
20
|
+
const generationRoot = path.join(root, 'generations', 'fixture');
|
|
21
|
+
await mkdir(releaseRoot, { recursive: true });
|
|
22
|
+
await mkdir(generationRoot, { recursive: true });
|
|
23
|
+
const releaseBytes = Buffer.from('release fixture\n');
|
|
24
|
+
const generationBytes = Buffer.from('generation fixture\n');
|
|
25
|
+
await writeFile(path.join(releaseRoot, 'MANIFEST.SHA256'), releaseBytes);
|
|
26
|
+
await writeFile(path.join(generationRoot, 'GENERATION.SHA256'), generationBytes);
|
|
27
|
+
const manifest = sha(releaseBytes);
|
|
28
|
+
const pointer = {
|
|
29
|
+
schema: 'deadbyte.active-release.v1', release_id: releaseId('0.8.5', manifest), version: '0.8.5',
|
|
30
|
+
manifest_sha256: manifest, release_root: releaseRoot, generation_root: generationRoot,
|
|
31
|
+
generation_manifest_sha256: sha(generationBytes), launcher_sha256: '1'.repeat(64),
|
|
32
|
+
config_path: path.join(generationRoot, 'controller-config.psd1')
|
|
33
|
+
};
|
|
34
|
+
await writeFile(path.join(root, 'active-release.json'), `${JSON.stringify(pointer, null, 2)}\n`);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
async function fixture() {
|
|
38
|
+
const root = await mkdtemp(path.join(os.tmpdir(), 'deadbyte-r29-mcp-'));
|
|
39
|
+
const trust = path.join(root, 'trust');
|
|
40
|
+
await mkdir(trust, { recursive: true });
|
|
41
|
+
const keys = await generateTrustKeypair({
|
|
42
|
+
privateKeyPath: path.join(trust, 'private.pem'), publicKeyPath: path.join(trust, 'public.pem')
|
|
43
|
+
});
|
|
44
|
+
await activeState(root);
|
|
45
|
+
const client = new Client(
|
|
46
|
+
{ name: 'deadbyte-r29-machine-test', version: '0.8.5' },
|
|
47
|
+
{ versionNegotiation: { mode: { pin: '2026-07-28' } } }
|
|
48
|
+
);
|
|
49
|
+
const transport = new StdioClientTransport({
|
|
50
|
+
command: process.execPath, args: [serverPath], cwd: repoRoot,
|
|
51
|
+
env: {
|
|
52
|
+
...getDefaultEnvironment(), DEADBYTE_STATE_ROOT: root, DEADBYTE_MACHINE_RUNTIME: '1',
|
|
53
|
+
DEADBYTE_SIGNING_KEY: keys.privateKeyPath, DEADBYTE_VERIFY_KEY: keys.publicKeyPath,
|
|
54
|
+
DEADBYTE_AGENT_RUNTIME: '0', DEADBYTE_CODING_RUNTIME: '0', DEADBYTE_AUTONOMOUS_RUNTIME: '0'
|
|
55
|
+
}, stderr: 'pipe'
|
|
56
|
+
});
|
|
57
|
+
return { root, client, transport };
|
|
58
|
+
}
|
|
59
|
+
test('R29 stdio catalog exposes strict machine identity tools and signed generation-bound ping', async () => {
|
|
60
|
+
const f = await fixture();
|
|
61
|
+
try {
|
|
62
|
+
await f.client.connect(f.transport);
|
|
63
|
+
const listed = await f.client.listTools();
|
|
64
|
+
const machineNames = listed.tools.map(tool => tool.name).filter(name => name.startsWith('machine_')).sort();
|
|
65
|
+
assert.deepEqual(machineNames, ['machine_list', 'machine_ping', 'machine_revoke', 'machine_status']);
|
|
66
|
+
for (const name of machineNames) {
|
|
67
|
+
const tool = listed.tools.find(item => item.name === name);
|
|
68
|
+
assert.equal(tool.outputSchema?.type, 'object');
|
|
69
|
+
assert.equal(tool.outputSchema?.additionalProperties, false);
|
|
70
|
+
}
|
|
71
|
+
const status = await f.client.callTool({ name: 'machine_status', arguments: {} });
|
|
72
|
+
assert.equal(status.structuredContent.status, 'ok');
|
|
73
|
+
assert.match(status.structuredContent.machine_id, /^[0-9a-f]{64}$/);
|
|
74
|
+
assert.equal(status.structuredContent.release_id.startsWith('v0.8.5-'), true);
|
|
75
|
+
const ping = await f.client.callTool({ name: 'machine_ping', arguments: { nonce: 'live-proof' } });
|
|
76
|
+
assert.equal(ping.structuredContent.status, 'ok');
|
|
77
|
+
assert.equal(ping.structuredContent.nonce, 'live-proof');
|
|
78
|
+
assert.equal(ping.structuredContent.machine_id, status.structuredContent.machine_id);
|
|
79
|
+
assert.equal(ping.structuredContent.attestation.algorithm, 'ed25519');
|
|
80
|
+
const denied = await f.client.callTool({ name: 'machine_revoke', arguments: { reason: 'remote-denied' } });
|
|
81
|
+
assert.equal(denied.isError, true);
|
|
82
|
+
assert.equal(denied.structuredContent.status, 'denied');
|
|
83
|
+
assert.match(denied.structuredContent.error, /host plane is not configured/);
|
|
84
|
+
} finally {
|
|
85
|
+
await f.client.close().catch(() => {});
|
|
86
|
+
await rm(f.root, { recursive: true, force: true }).catch(() => {});
|
|
87
|
+
}
|
|
88
|
+
});
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
|
|
4
|
+
import { registerMachineTools } from '../src/machine-mcp-tools.mjs';
|
|
5
|
+
|
|
6
|
+
function fakeServer() {
|
|
7
|
+
const tools = new Map();
|
|
8
|
+
return {
|
|
9
|
+
tools,
|
|
10
|
+
registerTool(name, spec, handler) { tools.set(name, { spec, handler }); }
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const MACHINE_ID = 'a'.repeat(64);
|
|
15
|
+
const GEN = 'b'.repeat(64);
|
|
16
|
+
const REL = 'c'.repeat(64);
|
|
17
|
+
const EPOCH = 'd'.repeat(64);
|
|
18
|
+
|
|
19
|
+
function status() {
|
|
20
|
+
return {
|
|
21
|
+
status: 'ok', machine_id: MACHINE_ID, public_key_spki_base64: Buffer.from('spki').toString('base64'),
|
|
22
|
+
identity_generation: 3, online_epoch: EPOCH, hostname: 'TESTBOX', platform: 'win32', architecture: 'x64', release_id: 'v0.8.5-aaaaaaaaaaaaaaaa',
|
|
23
|
+
release_manifest_sha256: REL, generation_manifest_sha256: GEN,
|
|
24
|
+
capabilities: ['machine_identity', 'machine_ping', 'machine_revoke']
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function pingValue(nonce, fill) {
|
|
29
|
+
return {
|
|
30
|
+
status: 'ok', schema: 'deadbyte.machine-ping.v1', machine_id: MACHINE_ID,
|
|
31
|
+
identity_generation: 3, online_epoch: EPOCH, release_id: 'v0.8.5-aaaaaaaaaaaaaaaa',
|
|
32
|
+
release_manifest_sha256: REL, generation_manifest_sha256: GEN, nonce,
|
|
33
|
+
observed_at_utc: new Date().toISOString(),
|
|
34
|
+
attestation: { algorithm: 'ed25519', key_id: MACHINE_ID, signature_base64: Buffer.alloc(64, fill).toString('base64') }
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
test('R29 machine MCP catalog registers four strict tools and protects revoke with local host authority', async () => {
|
|
38
|
+
const server = fakeServer();
|
|
39
|
+
let revokeCalls = 0;
|
|
40
|
+
let authorityChecks = 0;
|
|
41
|
+
const runtime = {
|
|
42
|
+
async list() { return { status: 'ok', machines: [status()] }; },
|
|
43
|
+
async status() { return status(); },
|
|
44
|
+
async ping({ nonce }) { return pingValue(nonce, 7); },
|
|
45
|
+
async revoke() { revokeCalls += 1; return { status: 'revoked', machine_id: MACHINE_ID, previous_identity_generation: 3, identity_generation: 4, online_epoch: 'e'.repeat(64) }; }
|
|
46
|
+
};
|
|
47
|
+
registerMachineTools(server, { runtime, assertRevokeAuthority: async () => { authorityChecks += 1; } });
|
|
48
|
+
assert.deepEqual([...server.tools.keys()].sort(), ['machine_list', 'machine_ping', 'machine_revoke', 'machine_status']);
|
|
49
|
+
for (const { spec } of server.tools.values()) {
|
|
50
|
+
assert.equal(spec.outputSchema.type, 'object');
|
|
51
|
+
}
|
|
52
|
+
const machineStatus = await server.tools.get('machine_status').handler({});
|
|
53
|
+
assert.equal(machineStatus.structuredContent.public_key_spki_base64, Buffer.from('spki').toString('base64'));
|
|
54
|
+
const ping = await server.tools.get('machine_ping').handler({ nonce: 'proof-1' });
|
|
55
|
+
assert.equal(ping.structuredContent.status, 'ok');
|
|
56
|
+
assert.equal(ping.structuredContent.nonce, 'proof-1');
|
|
57
|
+
const revoked = await server.tools.get('machine_revoke').handler({ reason: 'operator' });
|
|
58
|
+
assert.equal(revoked.structuredContent.status, 'revoked');
|
|
59
|
+
assert.equal(authorityChecks, 1);
|
|
60
|
+
assert.equal(revokeCalls, 1);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
test('R29 machine revoke fails closed before runtime mutation when host authority denies', async () => {
|
|
64
|
+
const server = fakeServer();
|
|
65
|
+
let revokeCalls = 0;
|
|
66
|
+
registerMachineTools(server, {
|
|
67
|
+
runtime: { async list() { return { status: 'ok', machines: [status()] }; }, async status() { return status(); },
|
|
68
|
+
async ping({ nonce }) { return pingValue(nonce, 1); },
|
|
69
|
+
async revoke() { revokeCalls += 1; throw new Error('should not run'); } },
|
|
70
|
+
assertRevokeAuthority: async () => { throw new Error('host plane disarmed'); }
|
|
71
|
+
});
|
|
72
|
+
const denied = await server.tools.get('machine_revoke').handler({ reason: 'remote' });
|
|
73
|
+
assert.equal(denied.isError, true);
|
|
74
|
+
assert.equal(denied.structuredContent.status, 'denied');
|
|
75
|
+
assert.match(denied.structuredContent.error, /host plane disarmed/);
|
|
76
|
+
assert.equal(revokeCalls, 0);
|
|
77
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import test from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { readFile } from 'node:fs/promises';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
|
|
6
|
+
const smoke = fileURLToPath(new URL('../src/mcp-contained-smoke-client.mjs', import.meta.url));
|
|
7
|
+
|
|
8
|
+
test('contained smoke uses an isolated temporary workspace and cleans it', async () => {
|
|
9
|
+
const source = await readFile(smoke, 'utf8');
|
|
10
|
+
assert.doesNotMatch(source, /const workspaceRoot = path\.join\(repoRoot, 'workspaces'\)/);
|
|
11
|
+
assert.match(source, /deadbyte-mcp-contained-workspaces-/);
|
|
12
|
+
assert.match(source, /copyFile\(/);
|
|
13
|
+
assert.match(source, /await rm\(workspaceRoot, \{ recursive: true, force: true \}\)/);
|
|
14
|
+
});
|