{"_id":"@12-apps/wiring","_rev":"20-2137d65d195b2ec60fb4dc96e129fb44","name":"@12-apps/wiring","dist-tags":{"latest":"1.17.0"},"versions":{"1.0.0":{"name":"@12-apps/wiring","version":"1.0.0","license":"MIT","_id":"@12-apps/wiring@1.0.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"cc4c3f3b003d4b507eb0fdd19ad691c1f6e77489","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.0.0.tgz","fileCount":21,"integrity":"sha512-NiCcqeo5r9CztvvH9672CpWsu1pWzbCF32HAlLSMBO9XmNUNEKbzhIXlZrtPEZrpdoWgqvttaQvnjzL4SBx0mg==","signatures":[{"sig":"MEUCIQCwR3DcRLVEmwpuJqaFoJNIOa1l9RXEUrwKQcoYkiip0gIgHZfTji4sjuGxZgSFAHsH8jr142nyS055ucgwpECs66E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77658},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"563bd018c993249961badc705d31268385389bf4","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"tigredonorte","email":"tigredonorte3@gmail.com"},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/jobs":"^4.2.0","@12-apps/eslint-config":"^1.20.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.0.0_1787241075413_0.39198943263787345","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@12-apps/wiring","version":"1.1.0","license":"MIT","_id":"@12-apps/wiring@1.1.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"25b25ac1e9a74d73183fa89fda2eda715a538db3","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.1.0.tgz","fileCount":21,"integrity":"sha512-k16HLnraO2/OuFYoBNVHTD25kluTtMwBW7i578t2yb8DJv4qLUzBax8mKKZf23E2sS/oZuhtURamuJQ0CJx5/w==","signatures":[{"sig":"MEQCIHquuKakPn6CmSRbtAJLtva+KKw5FyctbDF2XNiKE4UkAiAJllUdUELbrrbc0x7wGIhNSS9yLNKlmlKFr3UEYaPxtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":80863},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"e1d6ff2391d38ad6960410a3d2decccab95596ac","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:32a533b6-8d75-4407-bb31-be3feea87126"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/jobs":"^4.2.0","@12-apps/eslint-config":"^1.20.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.1.0_1787246346607_0.5869350268837568","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@12-apps/wiring","version":"1.2.0","license":"MIT","_id":"@12-apps/wiring@1.2.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"5843c6ba82c7827e24e15c48963a2705ff7fe935","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.2.0.tgz","fileCount":21,"integrity":"sha512-sSvJuJ9saqfNfBBYlr7/vTVGEitxG/6CCJ8ADp+2vy2Zcvm4qRHqeOTD+4iWqr+XWvFjEZLSs9/7oxyXpvbqpQ==","signatures":[{"sig":"MEUCIQCGhMjF6+fW0jg8W9QJ9auD5JJ1n32J4LH39xyTvrRqBgIgRSAGeqr0F85W5sW9BmYUxZJ/eKOu9sAQhqqMruGRW7k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86547},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"bc213557e759dcae38fe1ff6b16e609c383a35fc","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:32a533b6-8d75-4407-bb31-be3feea87126"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/jobs":"^4.2.0","@12-apps/eslint-config":"^1.20.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.2.0_1787251965578_0.408305837868963","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@12-apps/wiring","version":"1.3.0","license":"MIT","_id":"@12-apps/wiring@1.3.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"3a1d5db7cd12709615d33a8e783e24fc27b4caaf","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.3.0.tgz","fileCount":24,"integrity":"sha512-rg5IKrRBMoaOGG9TakuWLsxfHK1nVOYvyZR3kFOOqGMqzVt/NCa7GRrbFC2xCsd3bOxM0oHyNns6oZ6XAq2gQw==","signatures":[{"sig":"MEQCICmdL5B2oCG86v/LUbZSL06K1gzEPBCN5VOHRIQMThcdAiAaGE2WpjjpgUtJ8+Jr1Imvriem9vdLEjFpaTd8jmgYjA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111619},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"550f51fc44113132343e015b1dac4dd3343eb3bc","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:32a533b6-8d75-4407-bb31-be3feea87126"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/jobs":"^4.2.0","@12-apps/eslint-config":"^1.21.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.3.0_1787263662680_0.18375813875633318","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@12-apps/wiring","version":"1.4.0","license":"MIT","_id":"@12-apps/wiring@1.4.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"d6041d3a0d489eb53598bf171caa2511fd290ea5","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.4.0.tgz","fileCount":25,"integrity":"sha512-MYI2xREJS48ZtI0UrvuTp8zzZ7G4JjMr6rcvvgagJlhVAPQNtwIC3s14z2DWf2C4km1PffpCYh0U+D0KsS6YTA==","signatures":[{"sig":"MEUCIFbxdc9tt6N2dBp3HVRzHkF9q55pFyI09FDwRU7ciTWiAiEAvO7o4FVfhr84H2xEQC05+FWwnzaWFL3eGXPKxpU7GNY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":115395},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"9b1d9be6a3932a24aeaf538b9bd3d01aa1ff9b89","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:32a533b6-8d75-4407-bb31-be3feea87126"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/jobs":"^4.3.0","@12-apps/eslint-config":"^1.21.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.4.0_1787285112821_0.9116191575608497","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@12-apps/wiring","version":"1.5.0","license":"MIT","_id":"@12-apps/wiring@1.5.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"f4741c9ad1ee059bbe86371d71a55e6b4ab86f65","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.5.0.tgz","fileCount":26,"integrity":"sha512-v25zzt4wmdNsgjNZVUMXMRJayYGfrd9tJ78o6cr1+8jg1RQi+NSDGDhAep4y/BTdFXF13jYFTOC8IvgttDViXg==","signatures":[{"sig":"MEUCIQDK+M/NKoAWFWGJszOVgYqIlUbXmnsJ1ipYaiZFzVb6cwIgfXMnnyxBXNqjio8Cr/GjI8MpFlgD5SttoydHEaxQZE0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116894},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"601ab4f191186007ec65a2caf9f4e7f040045db0","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:32a533b6-8d75-4407-bb31-be3feea87126"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/jobs":"^4.3.0","@12-apps/eslint-config":"^1.21.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.5.0_1787287801785_0.4400541634660642","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@12-apps/wiring","version":"1.6.0","license":"MIT","_id":"@12-apps/wiring@1.6.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"32ca0235e6c1a2412d9ed4ae8cd33dcd2260374f","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.6.0.tgz","fileCount":26,"integrity":"sha512-kZfKDiMD+M8DkLmsXBOT9WIzUQ9+SXPV+7fyQahCDPmeqF0dauNJMY9vmPYbjgapt0tXo96dm6Xx1ItITzQIuw==","signatures":[{"sig":"MEQCIE9RUgmgqhVArzSkwb/PvS+jPrKF9+tBmlmtNGktuty9AiArzmdcEn7F8ehkMS2xhQ9Q4AbIULfKfyGbH0xBXZ81tw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116938},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"c2948670ec740f1cdfeb3c9e36d4a06b0df1816a","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:32a533b6-8d75-4407-bb31-be3feea87126"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/jobs":"^4.3.0","@12-apps/eslint-config":"^1.21.0","@12-apps/payments-backend":"^4.14.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.6.0_1787324841427_0.9666505123952593","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@12-apps/wiring","version":"1.6.1","license":"MIT","_id":"@12-apps/wiring@1.6.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"939196e1fa9d88daebd71ad36ccbe5a7d01cef14","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.6.1.tgz","fileCount":26,"integrity":"sha512-i4P9+YZrJ94zS+zBdVfVNIGpAUmTGzFYQJ5uwm6iCQuKvlF7yg1pP0swCCz1DQCdbRbHjGdf3wsKK3BAfKIyEw==","signatures":[{"sig":"MEUCIBTnA7+k9NNlScvomp7Qu4siPx3IKynnGPIb1f8T98GgAiEA17CtvdFc092cO6fFDGEjgWdFlpUkgcU0PLeDh0TsBhw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116938},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"3c4711049bf8351685612372531c3cae1370bbbb","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:32a533b6-8d75-4407-bb31-be3feea87126"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/jobs":"^4.3.1","@12-apps/eslint-config":"^1.21.1","@12-apps/payments-backend":"^4.15.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.6.1_1787327169760_0.6952061701575978","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@12-apps/wiring","version":"1.7.0","license":"MIT","_id":"@12-apps/wiring@1.7.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"cab1e6f9295bb4f37ed68a592f254fa77ecc6b57","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.7.0.tgz","fileCount":27,"integrity":"sha512-+lgf8MaUxNGcKq6mTZ/5l2A4EVFeCQZZwpR1A+64M9K+y+0pRzshGEQHKjXO2+CwErQ9+3ThqbqiFt3I3Lznxw==","signatures":[{"sig":"MEUCIQDQt13CA0jOqCNEKTvgu5ALU4N9ZYgFK11P8EUb3VkXtgIgECWJ8GKkWgRpNdZNDTyWPxjM3AskWEcnr6brGaMrgcQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":121918},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"de659a638f33522965aa1c453764359c01d45397","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:32a533b6-8d75-4407-bb31-be3feea87126"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/jobs":"^4.3.1","@12-apps/eslint-config":"^1.21.1","@12-apps/payments-backend":"^4.15.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.7.0_1787329322979_0.2674502198277826","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@12-apps/wiring","version":"1.8.0","license":"MIT","_id":"@12-apps/wiring@1.8.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"e1a2d23d0a0e62ccf13f7f64e4c0b8940384e625","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.8.0.tgz","fileCount":27,"integrity":"sha512-JWb0EeTiZ4xQ1YTRF7fTfa9hY+X0vT4AupWRiKyMAAGNrXhnh3rmgkLjMAjvXQ90lqMtd/9LPRQb2X/gFn1jog==","signatures":[{"sig":"MEQCICSorbx25gPTsiMLKzN59ChcgabAMpSops1e8Qpts6iiAiBbPR6EbL/96SsoTBqNYeybfTFE5/raHUmSgOZmuYmVVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":121918},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"bb484cd7dec9e17822ecdf07ea9e762a62d0bcc2","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6f08fd56-ae8d-4fc2-b63d-fd12d6685f4b"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/jobs":"^4.4.0","@12-apps/eslint-config":"^1.21.1","@12-apps/payments-backend":"^4.15.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.8.0_1787339677552_0.04070773239665537","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@12-apps/wiring","version":"1.9.0","license":"MIT","_id":"@12-apps/wiring@1.9.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"8a36ded66a5f121baa488bf2d76b0c869840d4d4","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.9.0.tgz","fileCount":27,"integrity":"sha512-D2YyU54J0FquzTT0tiwZrgixvCTZeVqLHSU0qiGpX7HNyUxRiqwa+Lc/m/r8tuH1uDVGCsQ2Hj1ByfdXJCLc+A==","signatures":[{"sig":"MEUCIGQ/1uaInoUbAkn3l6Np/5Ehm94+Jz7f+CNAOeoiQBVkAiEA6xRuZF5G7TqsJsYW/2j0nnKgAtXZ9x2E5WQ1XbX5ES4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125197},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"c43289d021aa38f2b54f19fc23c9f09f4dacf204","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6f08fd56-ae8d-4fc2-b63d-fd12d6685f4b"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/jobs":"^4.4.0","@12-apps/eslint-config":"^1.21.1","@12-apps/payments-backend":"^4.15.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.9.0_1787343438302_0.27680749008344696","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@12-apps/wiring","version":"1.10.0","license":"MIT","_id":"@12-apps/wiring@1.10.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"ac3cb73232dd8ee4e818fdb6576734f3ae25c768","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.10.0.tgz","fileCount":27,"integrity":"sha512-a89py4U6LmLnzFhzU5kBV347m82xjVvh6XuuOwt8kRlNfYjwgQJvk51dYNfd02TD4fPsA1k65sXWe3xt1Sl9TA==","signatures":[{"sig":"MEYCIQDUJh3Ofk3yRhvQPeIeK0N03gtsU6+tW7Q0/XvS/NlEEgIhAN0YxQgWlJ9J+f26KBZMxkcaNY/EZbqmdWKsULdZVum/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125198},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"ce7e914fd85d1bb84c3456372a19a731b71186a6","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6f08fd56-ae8d-4fc2-b63d-fd12d6685f4b"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/jobs":"^4.4.0","@12-apps/eslint-config":"^1.21.1","@12-apps/payments-backend":"^4.16.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.10.0_1787345278646_0.05578512488938969","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@12-apps/wiring","version":"1.11.0","license":"MIT","_id":"@12-apps/wiring@1.11.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"9292931a0cc47867f7c62a1e84bc93b5587e7dad","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.11.0.tgz","fileCount":27,"integrity":"sha512-xo1GCW7X+9GJlX9qQYXUq8qNAJcpY0q33pQqMgzvaqVFU0bGnrmh2Z+kLWXMouEQam06Y2+B+bFeTzrz2hRV3w==","signatures":[{"sig":"MEUCICwcbLd4INIw2bdY8pUs1vDqiDAjXqmHT7Do88uCaw7UAiEAx75Nt+MXsprv4bkyfsu6yBI0+YlJXmxk0B1ucCibczE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":126497},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"7919b5bfd73132d3a8a78a6de99b0eb22575f35f","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6f08fd56-ae8d-4fc2-b63d-fd12d6685f4b"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.1","vitest":"^3.2.4","typescript":"^5.9.2","@12-apps/jobs":"^4.4.0","@12-apps/eslint-config":"^1.21.1","@12-apps/payments-backend":"^4.19.1","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.11.0_1787584223222_0.8915088698956386","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@12-apps/wiring","version":"1.12.0","license":"MIT","_id":"@12-apps/wiring@1.12.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"fd3602f41344d06f482f243846f767aaa7caa70d","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.12.0.tgz","fileCount":27,"integrity":"sha512-8BJB56nO8x5LL3AFU0oymge6yhtnsI8iU51eWeJgD8aSBm99X95wkDosbeEjTmF2+jh8vyqBf7Tnbds/xNvv/Q==","signatures":[{"sig":"MEUCIG5+YW/pdm7mQuCy9RP54o632MpZKBgVDnud8aP/D/w6AiEAm/jv6u6b8YtnMKXDY5qnHJrRuk7GXyA00hPn2vWxlgY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":126724},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"7214db3f0537b1f81937a8c40470c589325ed661","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6f08fd56-ae8d-4fc2-b63d-fd12d6685f4b"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/jobs":"^4.4.0","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.0","@12-apps/eslint-config":"^1.21.1","@12-apps/payments-backend":"^4.19.1","@12-apps/payments-frontend":"^3.15.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.12.0_1787587393213_0.010389552520608802","host":"s3://npm-registry-packages-npm-production"}},"1.12.1":{"name":"@12-apps/wiring","version":"1.12.1","license":"MIT","_id":"@12-apps/wiring@1.12.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"f9457e06e91ee887d2d28d43468121c44a48f75c","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.12.1.tgz","fileCount":27,"integrity":"sha512-FG85eKWFCNnhZ5tPvGqnYFKsyLuc8ih9/PGuidCx7hGs9pg3zOHsy+kREd+Ew9dcitWkxi4ZLtQNYcXKMr9NqA==","signatures":[{"sig":"MEQCIHQTGQTOl7bX5L9y20+8DlaqLCrQQnaX5fpi2UbI3aGiAiBKIo/txDrb2eAB75QGRA5RUkwE0YmT9+fWVHvaZECqbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":127951},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"7236c5b586f42f0ee17b408105e832eb3e570dc6","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6f08fd56-ae8d-4fc2-b63d-fd12d6685f4b"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/jobs":"^4.4.0","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.0","@12-apps/eslint-config":"^1.21.1","@12-apps/payments-backend":"^4.19.1","@12-apps/payments-frontend":"^3.15.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.12.1_1787591599045_0.3315796245796674","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@12-apps/wiring","version":"1.13.0","license":"MIT","_id":"@12-apps/wiring@1.13.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"d73ed6caf62f4570fcb4f7c9849975370fe428b8","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.13.0.tgz","fileCount":27,"integrity":"sha512-iiBBXxukfrS4I4fvD4qD964DwRdj4+2/RH+QwMqDrAgzF2eUmJslThMwVC3IpB5RLghNv6y1rQkWSBzvjIuisQ==","signatures":[{"sig":"MEYCIQCD7GhK6w2r3HUMVsgAx38MHVtnHvXulJYzBxJA4rgfOAIhAIITQy1FalhVsv00EIwaandVSMnLBhu6L7eBO/+rFo3W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":128781},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"142fe64617cadbd2f852a257eafd0aaf95b73fbc","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6f08fd56-ae8d-4fc2-b63d-fd12d6685f4b"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/jobs":"^4.4.0","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.0","@12-apps/payments-e2e":"^2.5.0","@12-apps/eslint-config":"^1.21.1","@12-apps/payments-backend":"^4.20.0","@12-apps/payments-frontend":"^3.15.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.13.0_1787597335965_0.8281176181881069","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@12-apps/wiring","version":"1.14.0","license":"MIT","_id":"@12-apps/wiring@1.14.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"b5543569278a70ff9d7f6a790f0425aa97aa0f8d","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.14.0.tgz","fileCount":27,"integrity":"sha512-82FSk18copaP7OZGHGbqmlr/UXXHC6qpohXpQNjuLJSq1ePPpz4E2vydQ0ZI4RfaoTOKV7lzfwcLVSjdrwZe7w==","signatures":[{"sig":"MEQCIFAWi05kqrDAZdtZZtkQRBM7gN6AdA+sK1ymgeAcU2lkAiAMi5dvnXVBEzKUVQtRFTfNudQ2bwqjqb17r5YGbUuJ6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":128805},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"4714bd10c901bcc51544843d5d6091cc1509e649","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6f08fd56-ae8d-4fc2-b63d-fd12d6685f4b"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/jobs":"^4.5.0","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.0","@12-apps/payments-e2e":"^2.6.0","@12-apps/eslint-config":"^1.22.0","@12-apps/payments-backend":"^4.21.0","@12-apps/payments-frontend":"^3.16.0","@12-apps/typescript-config":"^1.21.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.14.0_1787617743480_0.33153952939112097","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@12-apps/wiring","version":"1.15.0","license":"MIT","_id":"@12-apps/wiring@1.15.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"8f1ab94ef0a5a4588edee2c5edd99a9723ca9f46","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.15.0.tgz","fileCount":27,"integrity":"sha512-MEXB5f/Cw+G48KlhBdYFLpdzBg7QmNMzI72zqxGot2/M06dFh7RioZBKMvBe3OcmnXZKdV8s5FtzPkGLHm772g==","signatures":[{"sig":"MEUCIQD6+j83pqI9F9P9IgP9QlddVWUOfqBe1JijC7OeiVLwWwIgUp7p+SBG+DwB3r43tlsYx+v7tmAnafuLrlWs+6R2bTs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":129896},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"2c692b90ed09938c60b847aecff462546b425339","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6f08fd56-ae8d-4fc2-b63d-fd12d6685f4b"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/jobs":"^4.5.0","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.0","@12-apps/payments-e2e":"^2.6.0","@12-apps/eslint-config":"^1.22.0","@12-apps/payments-backend":"^4.24.0","@12-apps/payments-frontend":"^3.17.0","@12-apps/typescript-config":"^1.21.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.15.0_1787715266264_0.0023437958464533892","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@12-apps/wiring","version":"1.16.0","license":"MIT","_id":"@12-apps/wiring@1.16.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"01342495c4c4de94dbf2ab7998e2b641e84e1282","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.16.0.tgz","fileCount":27,"integrity":"sha512-EDtjHlxlI346tXoAooJ37AjzCVKPribw2VKANnsiXyirBaddLhsN4IbCPVOEybbpcz8EUwYdhoEyFtKPpOT06Q==","signatures":[{"sig":"MEUCIGF+vVDXVMU2MHiEJ376KhpLP8tVRcAoUcn1qQpL+SjzAiEAmTkFcjlSxLSTRM4gs0KGRQRkapt80sc5yQOPplqYUfY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":131341},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"f20bcf2ed49c404ade9f624c06f57333bcca4beb","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6f08fd56-ae8d-4fc2-b63d-fd12d6685f4b"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.0.2","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/jobs":"^4.5.0","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.0","@12-apps/payments-e2e":"^2.6.0","@12-apps/eslint-config":"^1.22.0","@12-apps/payments-backend":"^4.24.0","@12-apps/payments-frontend":"^3.17.0","@12-apps/typescript-config":"^1.21.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"tmp":"tmp/wiring_1.16.0_1787746777590_0.8127739936119176","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"_id":"@12-apps/wiring@1.17.0","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"c5fe7b86e68da37fca2f27ef41b1b4516ea4783d","tarball":"https://registry.npmjs.org/@12-apps/wiring/-/wiring-1.17.0.tgz","fileCount":29,"integrity":"sha512-WJpkc3VEo3GbIpmX6VIhEJNMIic3JFzL2PWl4rZxZ4u/Hhl/YNLLMRnPx98YZprsBCjHUskm6hDYBViw1wRXUQ==","signatures":[{"sig":"MEUCID2wPRs9ss5bQXRtGnIGM+fWpkUbuFXzI7Q5DloPOZvwAiEAg3YTf/Q4AVh42mHz9FxlMhK4D/tANnfBllzRipU3Fpw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDItkkVUPxBEvmlzU0UeSZI0wjUk4LNi42X3J9VyyO9zgIhANE+OrAhrHl9WnAdSgmOaok+8F8dweQFYGs7AWDg8xRN"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2fwiring@1.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":141515},"name":"@12-apps/wiring","type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./ports":"./src/ports/index.ts","./consumer":"./src/consumer/index.ts","./producer":"./src/producer/index.ts","./package.json":"./package.json"},"gitHead":"fb693b90509d0264a5bcfc000feeadba3b14120e","license":"MIT","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"version":"1.17.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"6f08fd56-ae8d-4fc2-b63d-fd12d6685f4b"}},"homepage":"https://github.com/12-apps/shared-packages#readme","repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"_npmVersion":"12.2.0","description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","directories":{},"maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.21.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/jobs":"^4.6.0","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.0","@12-apps/payments-e2e":"^2.6.0","@12-apps/eslint-config":"^1.22.0","@12-apps/payments-backend":"^4.29.0","@12-apps/payments-frontend":"^3.29.0","@12-apps/typescript-config":"^1.21.0","eslint-plugin-test-flakiness":"^1.4.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wiring_1.17.0_1790923379101_0.2821141079584175"}}},"time":{"created":"2026-08-20T15:51:15.195Z","modified":"2026-10-02T06:42:59.577Z","1.0.0":"2026-08-20T15:51:15.534Z","1.1.0":"2026-08-20T17:19:06.759Z","1.2.0":"2026-08-20T18:52:45.740Z","1.3.0":"2026-08-20T22:07:42.821Z","1.4.0":"2026-08-21T04:05:12.979Z","1.5.0":"2026-08-21T04:50:01.932Z","1.6.0":"2026-08-21T15:07:21.605Z","1.6.1":"2026-08-21T15:46:09.920Z","1.7.0":"2026-08-21T16:22:03.122Z","1.8.0":"2026-08-21T19:14:37.693Z","1.9.0":"2026-08-21T20:17:18.455Z","1.10.0":"2026-08-21T20:47:58.787Z","1.11.0":"2026-08-24T15:10:23.359Z","1.12.0":"2026-08-24T16:03:13.372Z","1.12.1":"2026-08-24T17:13:19.197Z","1.13.0":"2026-08-24T18:48:56.116Z","1.14.0":"2026-08-25T00:29:03.667Z","1.15.0":"2026-08-26T03:34:26.425Z","1.16.0":"2026-08-26T12:19:37.735Z","1.17.0":"2026-10-02T06:42:59.186Z"},"bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"license":"MIT","homepage":"https://github.com/12-apps/shared-packages#readme","repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/wiring"},"description":"The package-to-host wiring contract: a producer half for packages (capability manifests — HTTP routes, job blueprints, MCP tools with annotations, permissions, notification blueprints, mailers, Prisma partials, web surfaces) and a consumer half for hosts ","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"readme":"# @12-apps/wiring\n\nThe package-to-host wiring contract. A **producer** half for packages — declare\nwhat you provide and what you require, per capability — and a **consumer** half\nfor hosts — adopt the declarations, bind each one against shared ports, and get\none ordered, conflict-checked, reported aggregate back.\n\nZero dependencies. Every capability shape is a **structural twin** of a seam a\npackage in this repo already ships, so adopting the contract is declaring what\nalready exists, not rewriting it.\n\n## The problem\n\nEvery `@12-apps/*` package already follows the same implicit plugin shape —\n`createApi*(config) → { routes }`, `createWeb*(config) → { page, … }`, a\n`./hono` adapter, a Prisma partial, sometimes `./mcp` or job blueprints. But\nthe shape lives in TypeScript conventions and per-package ADOPTING.md files,\nso:\n\n- every host rediscovers each package's contract by reading it;\n- the origin host wires ~24 packages through hand-written surface files, route\n  files, nav files, icon files, badge files and policy tables;\n- shapes that must stay identical across packages (`JobBlueprint` vs\n  `PaymentsJobBlueprint`) are kept identical by convention, with no compile\n  check anywhere;\n- a version bump that adds a capability arrives silently: report-builder 5.x\n  shipped three working-copy endpoints its own client calls, and the origin\n  host never mounted them — the editor's autosave 404s and nothing is red;\n- packages that should notify or mail cannot say so: there is no notify port\n  at all, and the only email port lives inside another package's server entry.\n\n## The model\n\n```\n        PRODUCER (the package)                CONSUMER (the host)\n  ┌──────────────────────────────┐      ┌────────────────────────────────┐\n  │ <pkg>/manifest               │      │ createWiringHost({name, kind,  │\n  │   defineManifest({           │      │                   ports})      │\n  │     name, contract: 1,       │      │                                │\n  │     permissions, mcp,        │──────▶ .adoptServer({manifest,        │\n  │     notifications, db, e2e,  │      │    server, bindings})          │\n  │     server: ['http','jobs'], │      │ .adoptWeb({manifest, web,      │\n  │     web: ['surface','areas'] │      │    bindings})                  │\n  │   })                         │      │                                │\n  │ <pkg>/manifest/server        │      │ .assemble() ──▶ routes, jobs,  │\n  │   defineServerManifest(...)  │      │    mailers, surfaces,          │\n  │ <pkg>/manifest/web           │      │    permissions, notifications, │\n  │   defineWebManifest(...)     │      │    mcpEndpoints, db, areas,    │\n  └──────────────────────────────┘      │    report                      │\n                                        └────────────────────────────────┘\n```\n\nSeparate manifests per runtime because bundles are physics: the shared\nmanifest is data every runtime can hold; the server manifest carries the\n`createApi*` factory and job blueprints; the web manifest carries the\n`createWeb*` factory; a package with React Native screens adds a native\nmanifest (see [React Native hosts](#react-native-hosts)). The shared manifest\n**inventories** the runtime manifests, and that inventory is the\nintegrity mechanism: the producer refuses a runtime manifest that drifts from\nit, and a host that adopts a manifest without answering an inventoried\ncapability gets a red `assemble()` naming the package and the capability.\n\nEvery declared capability must be **bound** or **declined with a written\nreason**. Declining is legitimate — a harness with no worker declines `jobs` —\nbut silence is not: `assemble()` throws while anything is unanswered. That is\nwhat turns \"the bump shipped a capability the host never wired\" from a silent\n404 into a build failure.\n\n## Capabilities\n\n| kind | producer declares | consumer binds with | aggregate |\n|---|---|---|---|\n| `http` | `create(config) → { routes }` — the existing `createApi*` factory | `{ mountPath, config }` | `routes`, specificity-ordered, conflict-checked |\n| `jobs` | namespace + dep-free blueprints (twin of `@12-apps/jobs`' `JobBlueprint`) | `{ deps }` | `jobs` — `JobDefinition` twins; `jobs.map(defineJob)` and done |\n| `email` | `createMailer(port) → mailer` (the `createAuthMailer` pattern) | `{ port? }` (defaults to the host port) | `mailers[pkg]` |\n| `mcp` | `WireMcpTool[]` — `McpEndpoint` plus **annotations** | collected; host-built vocabulary tools join via `mcpEndpoints` | `mcpEndpoints`, uniqueness-checked |\n| `permissions` | an rbac-shaped contribution (`source`, `ids`, `permissions`, `labels`) | collected | `permissions` — feed `composePermissions` |\n| `notifications` | blueprints: `type`, suggested `category`, `generate` | collected | `notifications` — feed the notifications mount |\n| `db` | the Prisma partial + migrations paths | collected | `db` — feed the sync tooling |\n| `surface` | `create(config) → surface` — the existing `createWeb*` factory | `{ config }` | `surfaces[pkg]`, built once (the memoisation rule, held in one place) |\n| `surface` (native) | the same `create(config) → surface`, returning React Native component types, in `<pkg>/manifest/native` | `{ config }` on a `native` host | `surfaces[pkg]`, built once |\n| `areas` | route/nav/gate suggestions per host area | collected | `areas` — project nav from data |\n| `e2e` | the journeys' entry subpath | collected | in the report |\n\n## React Native hosts\n\nA React Native app is a third host kind. A package that ships screens for\none adds a fourth manifest, `<pkg>/manifest/native`, declared with\n`defineNativeManifest` and inventoried as `native: [\"surface\"]` in the shared\nmanifest. Its surface has the web surface's shape — one config object in,\ncomponent types out — but returns React Native components, because a native\nbundle can import neither `react-dom` nor a web component library, and a web\nbundle must never import React Native.\n\n```ts\n// package: <pkg>/manifest/native — a plain value; wiring stays a type-only edge\nimport type { AnyNativeManifest } from \"@12-apps/wiring\";\nexport const threadsNativeManifest = {\n  name: \"@12-apps/threads\",\n  surface: { create: createNativeThreads },\n} as const satisfies AnyNativeManifest;\n\n// package: its own test suite runs the producer's assertions\nexpect(defineNativeManifest(threadsManifest, threadsNativeManifest)).toBe(threadsNativeManifest);\n\n// host: the React Native app\nconst host = createWiringHost({ name: \"field-app\", kind: \"native\", ports: { loggerFor } });\nconst { surface } = host.adoptNative({\n  manifest: threadsManifest,\n  native: threadsNativeManifest,\n  bindings: { surface: { config: { fetch, copy } } },\n});\nhost.assemble();\n```\n\n`surface` is ONE capability with two possible runtimes, so the vocabulary\nevery package answers for does not grow: the conformance gate checks only\nthat a `native:` inventory has its `./manifest/native` subpath, and that the\nsubpath does not outlive the inventory (`assertExportsMirror` checks the same\nin the package's own suite). A native host has no `areas` (its navigation is\nits own; a native manifest carrying `areas` is refused), reports the server\nand web halves out-of-scope with the runtime named on each entry, and answers\nenv vars declared with `scope: \"native\"`. Like a web host, it still collects\nthe shared data capabilities (permissions, notifications, MCP, db) into its\naggregate; it simply has nothing to feed them to.\n\n## Ports (`@12-apps/wiring/ports`)\n\nWhat a host provides once, for every package to require: `EmailPort` (the\n`EmailDriver` shape, verbatim), `NotifyPort` (new — emit a typed notification\nevent; never throws), `LoggerPort`, `JobsEnqueuePort` (never throws),\n`ClockPort`. Memory reference implementations ship for tests.\n\n## What stays host-owned\n\nThe contract deliberately moves **no** decision that is host vocabulary today:\nevery user-facing sentence (pt-BR copy arrives as config, exactly as\nreport-builder 4.0 inverted it), guards and actor resolution, plan gates, nav\nplacement/labels/icons, MCP operation ids and summaries for vocabulary-driven\ntools, the RBAC catalog assembly, and the database itself. The contract makes\neach of those a **named, typed, refusable** argument instead of a convention.\n\n## Example\n\nSee `src/__tests__/fixture-package.ts` for a complete producer, and\n`src/__tests__/consumer.test.ts` for both host kinds. The short version:\n\n```ts\n// host (API server)\nimport { createWiringHost } from \"@12-apps/wiring/consumer\";\nimport { defineJob } from \"@12-apps/jobs\";\n\nconst host = createWiringHost({ name: \"web\", kind: \"server\", ports: { email } });\nhost.adoptServer({\n  manifest: notesManifest,\n  server: notesServerManifest,\n  bindings: {\n    http: { mountPath: \"/api/admin/:tenantSlug\", config: { store } },\n    jobs: { deps: { store, ran } },\n    email: {},\n  },\n});\nconst wired = host.assemble();          // throws while anything is unanswered\nwired.jobs.map((job) => defineJob(job)); // every adopted package's jobs, one line\nconsole.log(renderWiringReport(wired.report));\n```\n\nHosts that must keep one route file per endpoint (coverage gates read guards\nout of route files) still adopt: they mount by hand and pin\n`unclaimedRoutes(wired.routes, claimedKeys)` to `[]` in a unit test, which is\nthe test that would have caught the working-copy 404.\n\n## Status\n\nReleased: the package is in `release-packages.txt` (first — it has no\ndependencies) and `@12-apps/report-builder` is the first producer, adopted by\nthe consumer harness. The RFC and the per-package adaptation report live in\n`docs/wiring/`.\n","readmeFilename":"README.md"}