@emilia-protocol/gate 0.11.0 → 0.14.0
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/CHANGELOG.md +80 -0
- package/README.md +310 -0
- package/action-control-manifest.js +3 -268
- package/action-escrow-custodian.js +3 -394
- package/action-escrow-evidence.js +3 -858
- package/action-escrow-package.js +3 -1668
- package/action-escrow-postgres.js +3 -337
- package/action-escrow-state.js +3 -396
- package/action-escrow-verifiers.js +3 -331
- package/action-escrow.js +3 -2447
- package/action-packs.js +3 -140
- package/adapters/_kit.js +3 -104
- package/adapters/aws.js +3 -108
- package/adapters/cloudflare.js +3 -54
- package/adapters/gcp.js +3 -70
- package/adapters/github.js +3 -109
- package/adapters/jira.js +3 -55
- package/adapters/k8s.js +3 -70
- package/adapters/linear.js +3 -55
- package/adapters/salesforce.js +3 -55
- package/adapters/stripe.js +3 -81
- package/adapters/supabase.js +3 -121
- package/adapters/terraform.js +3 -59
- package/adapters/vercel.js +3 -84
- package/aec-execution.js +3 -312
- package/breakglass.js +3 -582
- package/capability-receipt.js +4 -0
- package/cf1-conformance.js +3 -106
- package/challenge-store.js +3 -69
- package/control-plane.js +3 -340
- package/coverage.js +3 -721
- package/demo.mjs +1 -1
- package/deployment-attestation.js +3 -247
- package/dist/action-control-manifest.d.ts +82 -0
- package/dist/action-control-manifest.d.ts.map +1 -0
- package/dist/action-control-manifest.js +422 -0
- package/dist/action-control-manifest.js.map +1 -0
- package/dist/action-escrow-custodian.d.ts +74 -0
- package/dist/action-escrow-custodian.d.ts.map +1 -0
- package/dist/action-escrow-custodian.js +363 -0
- package/dist/action-escrow-custodian.js.map +1 -0
- package/dist/action-escrow-evidence.d.ts +130 -0
- package/dist/action-escrow-evidence.d.ts.map +1 -0
- package/dist/action-escrow-evidence.js +1012 -0
- package/dist/action-escrow-evidence.js.map +1 -0
- package/dist/action-escrow-package.d.ts +10 -0
- package/dist/action-escrow-package.d.ts.map +1 -0
- package/dist/action-escrow-package.js +1583 -0
- package/dist/action-escrow-package.js.map +1 -0
- package/dist/action-escrow-postgres.d.ts +62 -0
- package/dist/action-escrow-postgres.d.ts.map +1 -0
- package/dist/action-escrow-postgres.js +339 -0
- package/dist/action-escrow-postgres.js.map +1 -0
- package/dist/action-escrow-state.d.ts +141 -0
- package/dist/action-escrow-state.d.ts.map +1 -0
- package/dist/action-escrow-state.js +413 -0
- package/dist/action-escrow-state.js.map +1 -0
- package/dist/action-escrow-verifiers.d.ts +65 -0
- package/dist/action-escrow-verifiers.d.ts.map +1 -0
- package/dist/action-escrow-verifiers.js +421 -0
- package/dist/action-escrow-verifiers.js.map +1 -0
- package/dist/action-escrow.d.ts +112 -0
- package/dist/action-escrow.d.ts.map +1 -0
- package/dist/action-escrow.js +2661 -0
- package/dist/action-escrow.js.map +1 -0
- package/dist/action-packs.d.ts +54 -0
- package/dist/action-packs.d.ts.map +1 -0
- package/dist/action-packs.js +143 -0
- package/dist/action-packs.js.map +1 -0
- package/dist/adapters/_kit.d.ts +50 -0
- package/dist/adapters/_kit.d.ts.map +1 -0
- package/dist/adapters/_kit.js +98 -0
- package/dist/adapters/_kit.js.map +1 -0
- package/dist/adapters/aws.d.ts +158 -0
- package/dist/adapters/aws.d.ts.map +1 -0
- package/dist/adapters/aws.js +136 -0
- package/dist/adapters/aws.js.map +1 -0
- package/dist/adapters/cloudflare.d.ts +116 -0
- package/dist/adapters/cloudflare.d.ts.map +1 -0
- package/dist/adapters/cloudflare.js +75 -0
- package/dist/adapters/cloudflare.js.map +1 -0
- package/dist/adapters/gcp.d.ts +139 -0
- package/dist/adapters/gcp.d.ts.map +1 -0
- package/dist/adapters/gcp.js +69 -0
- package/dist/adapters/gcp.js.map +1 -0
- package/dist/adapters/github.d.ts +123 -0
- package/dist/adapters/github.d.ts.map +1 -0
- package/dist/adapters/github.js +105 -0
- package/dist/adapters/github.js.map +1 -0
- package/dist/adapters/jira.d.ts +109 -0
- package/dist/adapters/jira.d.ts.map +1 -0
- package/dist/adapters/jira.js +54 -0
- package/dist/adapters/jira.js.map +1 -0
- package/dist/adapters/k8s.d.ts +139 -0
- package/dist/adapters/k8s.d.ts.map +1 -0
- package/dist/adapters/k8s.js +69 -0
- package/dist/adapters/k8s.js.map +1 -0
- package/dist/adapters/linear.d.ts +109 -0
- package/dist/adapters/linear.d.ts.map +1 -0
- package/dist/adapters/linear.js +54 -0
- package/dist/adapters/linear.js.map +1 -0
- package/dist/adapters/salesforce.d.ts +109 -0
- package/dist/adapters/salesforce.d.ts.map +1 -0
- package/dist/adapters/salesforce.js +54 -0
- package/dist/adapters/salesforce.js.map +1 -0
- package/dist/adapters/stripe.d.ts +116 -0
- package/dist/adapters/stripe.d.ts.map +1 -0
- package/dist/adapters/stripe.js +77 -0
- package/dist/adapters/stripe.js.map +1 -0
- package/dist/adapters/supabase.d.ts +127 -0
- package/dist/adapters/supabase.d.ts.map +1 -0
- package/dist/adapters/supabase.js +112 -0
- package/dist/adapters/supabase.js.map +1 -0
- package/dist/adapters/terraform.d.ts +109 -0
- package/dist/adapters/terraform.d.ts.map +1 -0
- package/dist/adapters/terraform.js +58 -0
- package/dist/adapters/terraform.js.map +1 -0
- package/dist/adapters/vercel.d.ts +114 -0
- package/dist/adapters/vercel.d.ts.map +1 -0
- package/dist/adapters/vercel.js +81 -0
- package/dist/adapters/vercel.js.map +1 -0
- package/dist/aec-execution.d.ts +107 -0
- package/dist/aec-execution.d.ts.map +1 -0
- package/dist/aec-execution.js +334 -0
- package/dist/aec-execution.js.map +1 -0
- package/dist/breakglass.d.ts +205 -0
- package/dist/breakglass.d.ts.map +1 -0
- package/dist/breakglass.js +627 -0
- package/dist/breakglass.js.map +1 -0
- package/dist/capability-receipt.d.ts +601 -0
- package/dist/capability-receipt.d.ts.map +1 -0
- package/dist/capability-receipt.js +1177 -0
- package/dist/capability-receipt.js.map +1 -0
- package/dist/cf1-conformance.d.ts +83 -0
- package/dist/cf1-conformance.d.ts.map +1 -0
- package/dist/cf1-conformance.js +94 -0
- package/dist/cf1-conformance.js.map +1 -0
- package/dist/challenge-store.d.ts +20 -0
- package/dist/challenge-store.d.ts.map +1 -0
- package/dist/challenge-store.js +62 -0
- package/dist/challenge-store.js.map +1 -0
- package/dist/control-plane.d.ts +136 -0
- package/dist/control-plane.d.ts.map +1 -0
- package/dist/control-plane.js +349 -0
- package/dist/control-plane.js.map +1 -0
- package/dist/coverage.d.ts +156 -0
- package/dist/coverage.d.ts.map +1 -0
- package/dist/coverage.js +768 -0
- package/dist/coverage.js.map +1 -0
- package/dist/deployment-attestation.d.ts +93 -0
- package/dist/deployment-attestation.d.ts.map +1 -0
- package/dist/deployment-attestation.js +262 -0
- package/dist/deployment-attestation.js.map +1 -0
- package/dist/eg1-conformance.d.ts +286 -0
- package/dist/eg1-conformance.d.ts.map +1 -0
- package/dist/eg1-conformance.js +379 -0
- package/dist/eg1-conformance.js.map +1 -0
- package/dist/enterprise.d.ts +88 -0
- package/dist/enterprise.d.ts.map +1 -0
- package/dist/enterprise.js +194 -0
- package/dist/enterprise.js.map +1 -0
- package/dist/evidence-postgres.d.ts +123 -0
- package/dist/evidence-postgres.d.ts.map +1 -0
- package/dist/evidence-postgres.js +343 -0
- package/dist/evidence-postgres.js.map +1 -0
- package/dist/evidence.d.ts +113 -0
- package/dist/evidence.d.ts.map +1 -0
- package/dist/evidence.js +369 -0
- package/dist/evidence.js.map +1 -0
- package/dist/execution-binding.d.ts +49 -0
- package/dist/execution-binding.d.ts.map +1 -0
- package/dist/execution-binding.js +243 -0
- package/dist/execution-binding.js.map +1 -0
- package/dist/formal-runtime-map.d.ts +42 -0
- package/dist/formal-runtime-map.d.ts.map +1 -0
- package/dist/formal-runtime-map.js +23 -0
- package/dist/formal-runtime-map.js.map +1 -0
- package/dist/index.d.ts +1003 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1737 -0
- package/dist/index.js.map +1 -0
- package/dist/key-registry.d.ts +60 -0
- package/dist/key-registry.d.ts.map +1 -0
- package/dist/key-registry.js +144 -0
- package/dist/key-registry.js.map +1 -0
- package/dist/mcp.d.ts +53 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +112 -0
- package/dist/mcp.js.map +1 -0
- package/dist/metering.d.ts +80 -0
- package/dist/metering.d.ts.map +1 -0
- package/dist/metering.js +227 -0
- package/dist/metering.js.map +1 -0
- package/dist/metrics.d.ts +68 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +242 -0
- package/dist/metrics.js.map +1 -0
- package/dist/network-witness.d.ts +167 -0
- package/dist/network-witness.d.ts.map +1 -0
- package/dist/network-witness.js +520 -0
- package/dist/network-witness.js.map +1 -0
- package/dist/proposal-to-effect.d.ts +146 -0
- package/dist/proposal-to-effect.d.ts.map +1 -0
- package/dist/proposal-to-effect.js +427 -0
- package/dist/proposal-to-effect.js.map +1 -0
- package/dist/protocol-state.d.ts +141 -0
- package/dist/protocol-state.d.ts.map +1 -0
- package/dist/protocol-state.js +106 -0
- package/dist/protocol-state.js.map +1 -0
- package/dist/receipt-program.d.ts +59 -0
- package/dist/receipt-program.d.ts.map +1 -0
- package/dist/receipt-program.js +1053 -0
- package/dist/receipt-program.js.map +1 -0
- package/dist/reliance-kernel.d.ts +66 -0
- package/dist/reliance-kernel.d.ts.map +1 -0
- package/dist/reliance-kernel.js +103 -0
- package/dist/reliance-kernel.js.map +1 -0
- package/dist/reliance-packet.d.ts +67 -0
- package/dist/reliance-packet.d.ts.map +1 -0
- package/dist/reliance-packet.js +176 -0
- package/dist/reliance-packet.js.map +1 -0
- package/dist/remedy-program-postgres.d.ts +37 -0
- package/dist/remedy-program-postgres.d.ts.map +1 -0
- package/dist/remedy-program-postgres.js +291 -0
- package/dist/remedy-program-postgres.js.map +1 -0
- package/dist/remedy-program-receipt.d.ts +97 -0
- package/dist/remedy-program-receipt.d.ts.map +1 -0
- package/dist/remedy-program-receipt.js +817 -0
- package/dist/remedy-program-receipt.js.map +1 -0
- package/dist/remedy-program.d.ts +76 -0
- package/dist/remedy-program.d.ts.map +1 -0
- package/dist/remedy-program.js +1346 -0
- package/dist/remedy-program.js.map +1 -0
- package/dist/reports/art14.d.ts +101 -0
- package/dist/reports/art14.d.ts.map +1 -0
- package/dist/reports/art14.js +340 -0
- package/dist/reports/art14.js.map +1 -0
- package/dist/reports/assurance-package.d.ts +197 -0
- package/dist/reports/assurance-package.d.ts.map +1 -0
- package/dist/reports/assurance-package.js +313 -0
- package/dist/reports/assurance-package.js.map +1 -0
- package/dist/reports/auditor-workpaper.d.ts +194 -0
- package/dist/reports/auditor-workpaper.d.ts.map +1 -0
- package/dist/reports/auditor-workpaper.js +545 -0
- package/dist/reports/auditor-workpaper.js.map +1 -0
- package/dist/reports/external-verification.d.ts +76 -0
- package/dist/reports/external-verification.d.ts.map +1 -0
- package/dist/reports/external-verification.js +209 -0
- package/dist/reports/external-verification.js.map +1 -0
- package/dist/reports/reperform.d.ts +122 -0
- package/dist/reports/reperform.d.ts.map +1 -0
- package/dist/reports/reperform.js +432 -0
- package/dist/reports/reperform.js.map +1 -0
- package/dist/reports/underwriter.d.ts +127 -0
- package/dist/reports/underwriter.d.ts.map +1 -0
- package/dist/reports/underwriter.js +348 -0
- package/dist/reports/underwriter.js.map +1 -0
- package/dist/retention.d.ts +88 -0
- package/dist/retention.d.ts.map +1 -0
- package/dist/retention.js +90 -0
- package/dist/retention.js.map +1 -0
- package/dist/roster.d.ts +113 -0
- package/dist/roster.d.ts.map +1 -0
- package/dist/roster.js +261 -0
- package/dist/roster.js.map +1 -0
- package/dist/runtime-monitor.d.ts +132 -0
- package/dist/runtime-monitor.d.ts.map +1 -0
- package/dist/runtime-monitor.js +197 -0
- package/dist/runtime-monitor.js.map +1 -0
- package/dist/settlement.d.ts +68 -0
- package/dist/settlement.d.ts.map +1 -0
- package/dist/settlement.js +306 -0
- package/dist/settlement.js.map +1 -0
- package/dist/siem.d.ts +261 -0
- package/dist/siem.d.ts.map +1 -0
- package/dist/siem.js +247 -0
- package/dist/siem.js.map +1 -0
- package/dist/store-postgres.d.ts +107 -0
- package/dist/store-postgres.d.ts.map +1 -0
- package/dist/store-postgres.js +152 -0
- package/dist/store-postgres.js.map +1 -0
- package/dist/store.d.ts +95 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +202 -0
- package/dist/store.js.map +1 -0
- package/dist/strict-json.d.ts +14 -0
- package/dist/strict-json.d.ts.map +1 -0
- package/dist/strict-json.js +132 -0
- package/dist/strict-json.js.map +1 -0
- package/dist/trust-program-adapters.d.ts +122 -0
- package/dist/trust-program-adapters.d.ts.map +1 -0
- package/dist/trust-program-adapters.js +802 -0
- package/dist/trust-program-adapters.js.map +1 -0
- package/dist/trust-program-postgres.d.ts +41 -0
- package/dist/trust-program-postgres.d.ts.map +1 -0
- package/dist/trust-program-postgres.js +346 -0
- package/dist/trust-program-postgres.js.map +1 -0
- package/dist/trust-program-revocation.d.ts +206 -0
- package/dist/trust-program-revocation.d.ts.map +1 -0
- package/dist/trust-program-revocation.js +600 -0
- package/dist/trust-program-revocation.js.map +1 -0
- package/dist/trust-program.d.ts +197 -0
- package/dist/trust-program.d.ts.map +1 -0
- package/dist/trust-program.js +1351 -0
- package/dist/trust-program.js.map +1 -0
- package/dist/witness-postgres.d.ts +43 -0
- package/dist/witness-postgres.d.ts.map +1 -0
- package/dist/witness-postgres.js +92 -0
- package/dist/witness-postgres.js.map +1 -0
- package/dist/zk-range-proof.d.ts +78 -0
- package/dist/zk-range-proof.d.ts.map +1 -0
- package/dist/zk-range-proof.js +228 -0
- package/dist/zk-range-proof.js.map +1 -0
- package/eg1-conformance.js +3 -404
- package/enterprise.js +3 -180
- package/ep-assure.mjs +1 -0
- package/evidence-postgres.js +3 -356
- package/evidence.js +4 -360
- package/execution-binding.js +3 -212
- package/formal-runtime-map.js +4 -0
- package/index.js +4 -1249
- package/key-registry.js +3 -134
- package/mcp.js +3 -109
- package/metering.js +3 -226
- package/metrics.js +3 -231
- package/network-witness.js +3 -499
- package/package.json +35 -4
- package/proposal-to-effect.js +4 -0
- package/receipt-program.js +4 -0
- package/reliance-kernel.js +3 -112
- package/reliance-packet.js +3 -175
- package/remedy-program-postgres.js +4 -0
- package/remedy-program-receipt.js +4 -0
- package/remedy-program.js +4 -0
- package/reports/art14.js +0 -0
- package/reports/assurance-package.js +2 -312
- package/reports/auditor-workpaper.js +3 -537
- package/reports/external-verification.js +3 -222
- package/reports/reperform.js +3 -424
- package/reports/underwriter.js +3 -339
- package/retention.js +3 -84
- package/roster.js +3 -264
- package/runtime-monitor.js +4 -0
- package/settlement.js +3 -299
- package/siem.js +3 -235
- package/src/action-control-manifest.ts +424 -0
- package/src/action-escrow-custodian.ts +427 -0
- package/src/action-escrow-evidence.ts +1178 -0
- package/src/action-escrow-package.ts +1821 -0
- package/src/action-escrow-postgres.ts +366 -0
- package/src/action-escrow-state.ts +498 -0
- package/src/action-escrow-verifiers.ts +484 -0
- package/src/action-escrow.ts +3039 -0
- package/src/action-packs.ts +170 -0
- package/src/adapters/_kit.ts +117 -0
- package/src/adapters/aws.ts +142 -0
- package/src/adapters/cloudflare.ts +78 -0
- package/src/adapters/gcp.ts +71 -0
- package/src/adapters/github.ts +110 -0
- package/src/adapters/jira.ts +56 -0
- package/src/adapters/k8s.ts +71 -0
- package/src/adapters/linear.ts +56 -0
- package/src/adapters/salesforce.ts +56 -0
- package/src/adapters/stripe.ts +82 -0
- package/src/adapters/supabase.ts +122 -0
- package/src/adapters/terraform.ts +60 -0
- package/src/adapters/vercel.ts +85 -0
- package/src/aec-execution.ts +354 -0
- package/src/breakglass.ts +647 -0
- package/src/capability-receipt.ts +1258 -0
- package/src/cf1-conformance.ts +120 -0
- package/src/challenge-store.ts +70 -0
- package/src/control-plane.ts +374 -0
- package/src/coverage.ts +832 -0
- package/src/deployment-attestation.ts +259 -0
- package/src/eg1-conformance.ts +471 -0
- package/src/enterprise.ts +195 -0
- package/src/evidence-postgres.ts +374 -0
- package/src/evidence.ts +367 -0
- package/src/execution-binding.ts +236 -0
- package/src/formal-runtime-map.ts +24 -0
- package/src/index.ts +2127 -0
- package/src/key-registry.ts +150 -0
- package/src/mcp.ts +120 -0
- package/src/metering.ts +237 -0
- package/src/metrics.ts +232 -0
- package/src/network-witness.ts +585 -0
- package/src/proposal-to-effect.ts +571 -0
- package/src/protocol-state.ts +143 -0
- package/src/protocol-state.typecheck.ts +94 -0
- package/src/receipt-program.ts +1105 -0
- package/src/reliance-kernel.ts +119 -0
- package/src/reliance-packet.ts +206 -0
- package/src/remedy-program-postgres.ts +367 -0
- package/src/remedy-program-receipt.ts +891 -0
- package/src/remedy-program.ts +1388 -0
- package/src/reports/art14.ts +361 -0
- package/src/reports/assurance-package.ts +330 -0
- package/src/reports/auditor-workpaper.ts +558 -0
- package/src/reports/external-verification.ts +232 -0
- package/src/reports/reperform.ts +441 -0
- package/src/reports/underwriter.ts +356 -0
- package/src/retention.ts +100 -0
- package/src/roster.ts +273 -0
- package/src/runtime-monitor.ts +217 -0
- package/src/settlement.ts +313 -0
- package/src/siem.ts +247 -0
- package/src/store-postgres.ts +167 -0
- package/src/store.ts +214 -0
- package/src/strict-json.ts +115 -0
- package/src/trust-program-adapters.ts +847 -0
- package/src/trust-program-postgres.ts +429 -0
- package/src/trust-program-revocation.ts +751 -0
- package/src/trust-program.ts +1460 -0
- package/src/witness-postgres.ts +106 -0
- package/src/zk-range-proof.ts +250 -0
- package/store-postgres.js +3 -161
- package/store.js +4 -198
- package/strict-json.js +3 -102
- package/trust-program-adapters.js +4 -0
- package/trust-program-postgres.js +4 -0
- package/trust-program-revocation.js +4 -0
- package/trust-program.js +4 -0
- package/witness-postgres.js +3 -96
- package/zk-range-proof.js +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EMILIA Gate — issuer key registry (production key custody for the VERIFIER).
|
|
3
|
+
*
|
|
4
|
+
* A flat `trustedKeys: string[]` cannot express the two things a production
|
|
5
|
+
* deployment needs:
|
|
6
|
+
* 1. ROTATION — an issuer key is valid only for a window; a new key overlaps
|
|
7
|
+
* the old one, then the old one retires, without rejecting receipts that
|
|
8
|
+
* were legitimately issued while it was current.
|
|
9
|
+
* 2. REVOCATION — a COMPROMISED issuer key must be rejected immediately, for
|
|
10
|
+
* every receipt, regardless of the issuance time the (now-untrusted) key
|
|
11
|
+
* claims. Fail closed: once revoked, the key signs nothing the gate accepts.
|
|
12
|
+
*
|
|
13
|
+
* The registry resolves, for a given receipt issuance time, the set of public
|
|
14
|
+
* keys the gate should verify against — excluding revoked keys entirely and
|
|
15
|
+
* windowed keys whose [not_before, not_after] does not contain that time. The
|
|
16
|
+
* gate passes that resolved set to the receipt verifier, so an excluded key's
|
|
17
|
+
* signature simply does not verify and the action is refused.
|
|
18
|
+
*
|
|
19
|
+
* A key with no window and no revocation behaves exactly like a flat trustedKeys
|
|
20
|
+
* entry (back-compatible).
|
|
21
|
+
*/
|
|
22
|
+
type RawKeyEntry = {
|
|
23
|
+
kid?: string;
|
|
24
|
+
key: string;
|
|
25
|
+
not_before?: string;
|
|
26
|
+
not_after?: string;
|
|
27
|
+
revoked_at?: string;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* @param {Array<object>} entries each: {
|
|
31
|
+
* kid?: string, key: string (base64url SPKI-DER public key),
|
|
32
|
+
* not_before?: string, not_after?: string, revoked_at?: string (strict RFC3339)
|
|
33
|
+
* }
|
|
34
|
+
*/
|
|
35
|
+
export declare function createKeyRegistry(entries?: RawKeyEntry[]): {
|
|
36
|
+
/** The base64url public keys to verify a receipt issued at strict RFC3339 `at`. */
|
|
37
|
+
keysValidAt(at: any): string[];
|
|
38
|
+
/** Mark a kid revoked as of `at` (default: now-as-supplied). Fail-closed thereafter. */
|
|
39
|
+
revoke(kid: string, at?: string): number;
|
|
40
|
+
/** Add/rotate in a new key. */
|
|
41
|
+
add(entry: any): /*elided*/ any;
|
|
42
|
+
/** Operational snapshot (no private material; keys are public). */
|
|
43
|
+
status(at: any): {
|
|
44
|
+
kid: string;
|
|
45
|
+
revoked: boolean;
|
|
46
|
+
active: boolean;
|
|
47
|
+
not_before: number | null;
|
|
48
|
+
not_after: number | null;
|
|
49
|
+
revoked_at: number | null;
|
|
50
|
+
}[];
|
|
51
|
+
readonly size: number;
|
|
52
|
+
};
|
|
53
|
+
/** Coerce a flat trustedKeys[] OR a registry into a registry (back-compat). */
|
|
54
|
+
export declare function asKeyRegistry(trustedKeysOrRegistry: any): any;
|
|
55
|
+
declare const _default: {
|
|
56
|
+
createKeyRegistry: typeof createKeyRegistry;
|
|
57
|
+
asKeyRegistry: typeof asKeyRegistry;
|
|
58
|
+
};
|
|
59
|
+
export default _default;
|
|
60
|
+
//# sourceMappingURL=key-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-registry.d.ts","sourceRoot":"","sources":["../src/key-registry.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,KAAK,WAAW,GAAG;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAgCF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,WAAW,EAAO;IA6BzD,mFAAmF;;IAKnF,wFAAwF;gBAC5E,MAAM,OAAO,MAAM;IAe/B,+BAA+B;;IAE/B,mEAAmE;;;;;;;;;;EAiBtE;AAED,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,qBAAqB,KAAA,OAMlD;;;;;AAED,wBAAoD"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
/**
|
|
4
|
+
* EMILIA Gate — issuer key registry (production key custody for the VERIFIER).
|
|
5
|
+
*
|
|
6
|
+
* A flat `trustedKeys: string[]` cannot express the two things a production
|
|
7
|
+
* deployment needs:
|
|
8
|
+
* 1. ROTATION — an issuer key is valid only for a window; a new key overlaps
|
|
9
|
+
* the old one, then the old one retires, without rejecting receipts that
|
|
10
|
+
* were legitimately issued while it was current.
|
|
11
|
+
* 2. REVOCATION — a COMPROMISED issuer key must be rejected immediately, for
|
|
12
|
+
* every receipt, regardless of the issuance time the (now-untrusted) key
|
|
13
|
+
* claims. Fail closed: once revoked, the key signs nothing the gate accepts.
|
|
14
|
+
*
|
|
15
|
+
* The registry resolves, for a given receipt issuance time, the set of public
|
|
16
|
+
* keys the gate should verify against — excluding revoked keys entirely and
|
|
17
|
+
* windowed keys whose [not_before, not_after] does not contain that time. The
|
|
18
|
+
* gate passes that resolved set to the receipt verifier, so an excluded key's
|
|
19
|
+
* signature simply does not verify and the action is refused.
|
|
20
|
+
*
|
|
21
|
+
* A key with no window and no revocation behaves exactly like a flat trustedKeys
|
|
22
|
+
* entry (back-compatible).
|
|
23
|
+
*/
|
|
24
|
+
const RFC3339_INSTANT = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.\d{1,9})?(?:Z|([+-])(\d{2}):(\d{2}))$/;
|
|
25
|
+
function strictInstantMs(value) {
|
|
26
|
+
if (typeof value !== 'string')
|
|
27
|
+
return NaN;
|
|
28
|
+
const match = value.match(RFC3339_INSTANT);
|
|
29
|
+
if (!match)
|
|
30
|
+
return NaN;
|
|
31
|
+
const [, y, mo, d, h, mi, s, , oh, om] = match;
|
|
32
|
+
const calendar = new Date(0);
|
|
33
|
+
calendar.setUTCFullYear(Number(y), Number(mo) - 1, Number(d));
|
|
34
|
+
calendar.setUTCHours(Number(h), Number(mi), Number(s), 0);
|
|
35
|
+
if (calendar.toISOString().slice(0, 19) !== `${y}-${mo}-${d}T${h}:${mi}:${s}`)
|
|
36
|
+
return NaN;
|
|
37
|
+
if (oh !== undefined && (Number(oh) > 23 || Number(om) > 59))
|
|
38
|
+
return NaN;
|
|
39
|
+
const ms = Date.parse(value);
|
|
40
|
+
return Number.isFinite(ms) ? ms : NaN;
|
|
41
|
+
}
|
|
42
|
+
function optionalInstant(entry, field) {
|
|
43
|
+
if (!Object.hasOwn(entry, field))
|
|
44
|
+
return null;
|
|
45
|
+
const ms = strictInstantMs(entry[field]);
|
|
46
|
+
if (!Number.isFinite(ms)) {
|
|
47
|
+
throw new Error(`key registry: ${field} must be a valid RFC3339 instant when supplied`);
|
|
48
|
+
}
|
|
49
|
+
return ms;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @param {Array<object>} entries each: {
|
|
53
|
+
* kid?: string, key: string (base64url SPKI-DER public key),
|
|
54
|
+
* not_before?: string, not_after?: string, revoked_at?: string (strict RFC3339)
|
|
55
|
+
* }
|
|
56
|
+
*/
|
|
57
|
+
export function createKeyRegistry(entries = []) {
|
|
58
|
+
const list = [];
|
|
59
|
+
function normalize(e) {
|
|
60
|
+
if (!e || !e.key || typeof e.key !== 'string')
|
|
61
|
+
throw new Error('key registry entry requires a base64url SPKI key');
|
|
62
|
+
const normalized = {
|
|
63
|
+
kid: e.kid || e.key.slice(0, 16),
|
|
64
|
+
key: e.key,
|
|
65
|
+
not_before: optionalInstant(e, 'not_before'),
|
|
66
|
+
not_after: optionalInstant(e, 'not_after'),
|
|
67
|
+
revoked_at: optionalInstant(e, 'revoked_at'),
|
|
68
|
+
};
|
|
69
|
+
if (normalized.not_before != null && normalized.not_after != null
|
|
70
|
+
&& normalized.not_after < normalized.not_before) {
|
|
71
|
+
throw new Error('key registry: not_after must not precede not_before');
|
|
72
|
+
}
|
|
73
|
+
return normalized;
|
|
74
|
+
}
|
|
75
|
+
for (const e of entries)
|
|
76
|
+
list.push(normalize(e));
|
|
77
|
+
/** Is this entry usable to verify a receipt issued at `atMs`? */
|
|
78
|
+
function entryActiveAt(entry, atMs) {
|
|
79
|
+
if (entry.revoked_at != null)
|
|
80
|
+
return false; // HARD revocation: never trust a revoked key
|
|
81
|
+
if (!Number.isFinite(atMs))
|
|
82
|
+
return false;
|
|
83
|
+
if (entry.not_before != null && atMs < entry.not_before)
|
|
84
|
+
return false;
|
|
85
|
+
if (entry.not_after != null && atMs > entry.not_after)
|
|
86
|
+
return false;
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
/** The base64url public keys to verify a receipt issued at strict RFC3339 `at`. */
|
|
91
|
+
keysValidAt(at) {
|
|
92
|
+
const atMs = strictInstantMs(at);
|
|
93
|
+
return list.filter((e) => entryActiveAt(e, atMs)).map((e) => e.key);
|
|
94
|
+
},
|
|
95
|
+
/** Mark a kid revoked as of `at` (default: now-as-supplied). Fail-closed thereafter. */
|
|
96
|
+
revoke(kid, at) {
|
|
97
|
+
let revokedAt = 0;
|
|
98
|
+
if (arguments.length > 1) {
|
|
99
|
+
revokedAt = strictInstantMs(at);
|
|
100
|
+
if (!Number.isFinite(revokedAt)) {
|
|
101
|
+
throw new Error('key registry: revoked_at must be a valid RFC3339 instant when supplied');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
let n = 0;
|
|
105
|
+
for (const e of list) {
|
|
106
|
+
if (e.kid === kid && e.revoked_at == null) {
|
|
107
|
+
e.revoked_at = revokedAt;
|
|
108
|
+
n += 1;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (n === 0)
|
|
112
|
+
throw new Error(`key registry: no active key with kid "${kid}" to revoke`);
|
|
113
|
+
return n;
|
|
114
|
+
},
|
|
115
|
+
/** Add/rotate in a new key. */
|
|
116
|
+
add(entry) { list.push(normalize(entry)); return this; },
|
|
117
|
+
/** Operational snapshot (no private material; keys are public). */
|
|
118
|
+
status(at) {
|
|
119
|
+
const supplied = arguments.length > 0;
|
|
120
|
+
const atMs = supplied ? strictInstantMs(at) : NaN;
|
|
121
|
+
return list.map((e) => ({
|
|
122
|
+
kid: e.kid,
|
|
123
|
+
revoked: e.revoked_at != null,
|
|
124
|
+
active: supplied
|
|
125
|
+
? entryActiveAt(e, atMs)
|
|
126
|
+
: e.revoked_at == null && e.not_before == null && e.not_after == null,
|
|
127
|
+
not_before: e.not_before,
|
|
128
|
+
not_after: e.not_after,
|
|
129
|
+
revoked_at: e.revoked_at,
|
|
130
|
+
}));
|
|
131
|
+
},
|
|
132
|
+
get size() { return list.length; },
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/** Coerce a flat trustedKeys[] OR a registry into a registry (back-compat). */
|
|
136
|
+
export function asKeyRegistry(trustedKeysOrRegistry) {
|
|
137
|
+
if (trustedKeysOrRegistry && typeof trustedKeysOrRegistry.keysValidAt === 'function') {
|
|
138
|
+
return trustedKeysOrRegistry;
|
|
139
|
+
}
|
|
140
|
+
const keys = Array.isArray(trustedKeysOrRegistry) ? trustedKeysOrRegistry : [];
|
|
141
|
+
return createKeyRegistry(keys.map((key) => ({ key })));
|
|
142
|
+
}
|
|
143
|
+
export default { createKeyRegistry, asKeyRegistry };
|
|
144
|
+
//# sourceMappingURL=key-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-registry.js","sourceRoot":"","sources":["../src/key-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp.d.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EMILIA Gate — MCP drop-in. The lowest-friction place to put the firewall:
|
|
3
|
+
* agents already live at the MCP tool-call boundary, and a single wrapper turns
|
|
4
|
+
* a dangerous MCP tool into a receipt-required one.
|
|
5
|
+
*
|
|
6
|
+
* import { createTrustedActionFirewall } from '@emilia-protocol/gate';
|
|
7
|
+
* import { gateMcpTool } from '@emilia-protocol/gate/mcp';
|
|
8
|
+
* const gate = createTrustedActionFirewall({ trustedKeys: [ISSUER], store: sharedConsumptionStore });
|
|
9
|
+
*
|
|
10
|
+
* server.tool('release_payment',
|
|
11
|
+
* gateMcpTool(gate, { tool: 'release_payment' }, async (args) => actuallyPay(args)));
|
|
12
|
+
*
|
|
13
|
+
* A guarded call with no valid, sufficiently-assured, non-replayed receipt
|
|
14
|
+
* returns a structured MCP error (isError) carrying the Receipt-Required
|
|
15
|
+
* challenge, so the agent knows to go get a human/quorum to authorize THIS exact
|
|
16
|
+
* action. On success the tool runs and an execution proof + reliance packet are
|
|
17
|
+
* attached under `_emilia`.
|
|
18
|
+
*
|
|
19
|
+
* Receipt resolution order (override with opts.receipt): args._emilia_receipt,
|
|
20
|
+
* args.emilia_receipt, then a base64 string in args._emilia_receipt_b64.
|
|
21
|
+
*/
|
|
22
|
+
type Obj = Record<string, any>;
|
|
23
|
+
type GateMcpToolOptions = {
|
|
24
|
+
tool?: string;
|
|
25
|
+
protocol?: string;
|
|
26
|
+
action?: string;
|
|
27
|
+
observedAction?: Obj | ((args: Obj, extra: any) => any);
|
|
28
|
+
receipt?: Obj | ((args: Obj) => any);
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Wrap a single MCP tool handler so it runs only behind a passing gate check.
|
|
32
|
+
* @param {object} gate an EMILIA Gate (createGate/createTrustedActionFirewall)
|
|
33
|
+
* @param {object} o
|
|
34
|
+
* @param {string} [o.tool] the MCP tool name (matched against the manifest)
|
|
35
|
+
* @param {string} [o.protocol='mcp']
|
|
36
|
+
* @param {string} [o.action] explicit action_type (else resolved by the manifest from {protocol,tool})
|
|
37
|
+
* @param {object|function} [o.observedAction] the system-of-record facts to bind (default: the tool args)
|
|
38
|
+
* @param {object|function} [o.receipt] override receipt resolution
|
|
39
|
+
* @param {function} handler the real tool implementation (args, extra) => result
|
|
40
|
+
* @returns {function} a gated MCP tool handler
|
|
41
|
+
*/
|
|
42
|
+
export declare function gateMcpTool(gate: any, o: GateMcpToolOptions | undefined, handler: any): (args: {} | undefined, extra: any) => Promise<any>;
|
|
43
|
+
/**
|
|
44
|
+
* Convenience: wrap a map of { toolName: handler } in one call. Tools not named
|
|
45
|
+
* in the manifest still pass through the gate (which lets non-guarded tools run).
|
|
46
|
+
*/
|
|
47
|
+
export declare function gateMcpTools(gate: any, handlers?: {}, opts?: {}): {};
|
|
48
|
+
declare const _default: {
|
|
49
|
+
gateMcpTool: typeof gateMcpTool;
|
|
50
|
+
gateMcpTools: typeof gateMcpTools;
|
|
51
|
+
};
|
|
52
|
+
export default _default;
|
|
53
|
+
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE/B,KAAK,kBAAkB,GAAG;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;IACxD,OAAO,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;CACtC,CAAC;AAeF;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,IAAI,KAAA,EAAE,CAAC,EAAE,kBAAkB,YAAK,EAAE,OAAO,KAAA,IAqBnC,oBAAS,EAAE,UAAK,kBAwBjD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,KAAA,EAAE,QAAQ,KAAK,EAAE,IAAI,KAAK,MAM1D;;;;;AAED,wBAA6C"}
|
package/dist/mcp.js
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
/**
|
|
4
|
+
* EMILIA Gate — MCP drop-in. The lowest-friction place to put the firewall:
|
|
5
|
+
* agents already live at the MCP tool-call boundary, and a single wrapper turns
|
|
6
|
+
* a dangerous MCP tool into a receipt-required one.
|
|
7
|
+
*
|
|
8
|
+
* import { createTrustedActionFirewall } from '@emilia-protocol/gate';
|
|
9
|
+
* import { gateMcpTool } from '@emilia-protocol/gate/mcp';
|
|
10
|
+
* const gate = createTrustedActionFirewall({ trustedKeys: [ISSUER], store: sharedConsumptionStore });
|
|
11
|
+
*
|
|
12
|
+
* server.tool('release_payment',
|
|
13
|
+
* gateMcpTool(gate, { tool: 'release_payment' }, async (args) => actuallyPay(args)));
|
|
14
|
+
*
|
|
15
|
+
* A guarded call with no valid, sufficiently-assured, non-replayed receipt
|
|
16
|
+
* returns a structured MCP error (isError) carrying the Receipt-Required
|
|
17
|
+
* challenge, so the agent knows to go get a human/quorum to authorize THIS exact
|
|
18
|
+
* action. On success the tool runs and an execution proof + reliance packet are
|
|
19
|
+
* attached under `_emilia`.
|
|
20
|
+
*
|
|
21
|
+
* Receipt resolution order (override with opts.receipt): args._emilia_receipt,
|
|
22
|
+
* args.emilia_receipt, then a base64 string in args._emilia_receipt_b64.
|
|
23
|
+
*/
|
|
24
|
+
import { parseReceiptCarrier } from '@emilia-protocol/require-receipt';
|
|
25
|
+
function resolveReceipt(args, opts) {
|
|
26
|
+
if (typeof opts.receipt === 'function')
|
|
27
|
+
return opts.receipt(args);
|
|
28
|
+
if (opts.receipt)
|
|
29
|
+
return opts.receipt;
|
|
30
|
+
if (args && typeof args === 'object') {
|
|
31
|
+
if (args._emilia_receipt)
|
|
32
|
+
return args._emilia_receipt;
|
|
33
|
+
if (args.emilia_receipt)
|
|
34
|
+
return args.emilia_receipt;
|
|
35
|
+
if (typeof args._emilia_receipt_b64 === 'string') {
|
|
36
|
+
return parseReceiptCarrier(args._emilia_receipt_b64);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Wrap a single MCP tool handler so it runs only behind a passing gate check.
|
|
43
|
+
* @param {object} gate an EMILIA Gate (createGate/createTrustedActionFirewall)
|
|
44
|
+
* @param {object} o
|
|
45
|
+
* @param {string} [o.tool] the MCP tool name (matched against the manifest)
|
|
46
|
+
* @param {string} [o.protocol='mcp']
|
|
47
|
+
* @param {string} [o.action] explicit action_type (else resolved by the manifest from {protocol,tool})
|
|
48
|
+
* @param {object|function} [o.observedAction] the system-of-record facts to bind (default: the tool args)
|
|
49
|
+
* @param {object|function} [o.receipt] override receipt resolution
|
|
50
|
+
* @param {function} handler the real tool implementation (args, extra) => result
|
|
51
|
+
* @returns {function} a gated MCP tool handler
|
|
52
|
+
*/
|
|
53
|
+
export function gateMcpTool(gate, o = {}, handler) {
|
|
54
|
+
if (!gate || typeof gate.run !== 'function')
|
|
55
|
+
throw new Error('gateMcpTool requires an EMILIA Gate (with .run)');
|
|
56
|
+
if (typeof handler !== 'function')
|
|
57
|
+
throw new Error('gateMcpTool requires a tool handler function');
|
|
58
|
+
const { tool, protocol = 'mcp', action } = o;
|
|
59
|
+
if (!tool)
|
|
60
|
+
throw new Error('gateMcpTool requires { tool }');
|
|
61
|
+
const refused = (reason, body = null) => ({
|
|
62
|
+
isError: true,
|
|
63
|
+
content: [{
|
|
64
|
+
type: 'text',
|
|
65
|
+
text: `EMILIA Gate refused "${tool}": ${reason}. `
|
|
66
|
+
+ 'This is a high-risk action; present a valid, sufficiently-assured, unused human/quorum receipt.',
|
|
67
|
+
}],
|
|
68
|
+
_emilia: {
|
|
69
|
+
gate: 'refused',
|
|
70
|
+
status: 428,
|
|
71
|
+
reason,
|
|
72
|
+
challenge: body,
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
return async function gatedTool(args = {}, extra) {
|
|
76
|
+
const selector = { protocol, tool, ...(action ? { action_type: action } : {}) };
|
|
77
|
+
let receipt;
|
|
78
|
+
let observedAction;
|
|
79
|
+
try {
|
|
80
|
+
receipt = resolveReceipt(args, o);
|
|
81
|
+
observedAction = typeof o.observedAction === 'function'
|
|
82
|
+
? o.observedAction(args, extra)
|
|
83
|
+
: (o.observedAction ?? args);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return refused('receipt_boundary_failed');
|
|
87
|
+
}
|
|
88
|
+
const out = await gate.run({ selector, receipt, observedAction }, () => handler(args, extra));
|
|
89
|
+
if (!out.ok) {
|
|
90
|
+
return refused(out.authorization.reason, out.body);
|
|
91
|
+
}
|
|
92
|
+
const result = out.result;
|
|
93
|
+
// Attach the proof without clobbering a structured tool result.
|
|
94
|
+
if (result && typeof result === 'object' && !Array.isArray(result)) {
|
|
95
|
+
return { ...result, _emilia: { gate: 'allowed', execution: out.execution, reliance: out.packet } };
|
|
96
|
+
}
|
|
97
|
+
return { result, _emilia: { gate: 'allowed', execution: out.execution, reliance: out.packet } };
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Convenience: wrap a map of { toolName: handler } in one call. Tools not named
|
|
102
|
+
* in the manifest still pass through the gate (which lets non-guarded tools run).
|
|
103
|
+
*/
|
|
104
|
+
export function gateMcpTools(gate, handlers = {}, opts = {}) {
|
|
105
|
+
const wrapped = {};
|
|
106
|
+
for (const [tool, handler] of Object.entries(handlers)) {
|
|
107
|
+
wrapped[tool] = gateMcpTool(gate, { ...opts, tool }, handler);
|
|
108
|
+
}
|
|
109
|
+
return wrapped;
|
|
110
|
+
}
|
|
111
|
+
export default { gateMcpTool, gateMcpTools };
|
|
112
|
+
//# sourceMappingURL=mcp.js.map
|
package/dist/mcp.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAYvE,SAAS,cAAc,CAAC,IAAI,EAAE,IAAI;IAChC,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,IAAI,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC;IACtC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC;QACtD,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC,cAAc,CAAC;QACpD,IAAI,OAAO,IAAI,CAAC,mBAAmB,KAAK,QAAQ,EAAE,CAAC;YACjD,OAAO,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,IAAI,EAAE,IAAwB,EAAE,EAAE,OAAO;IACnE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAChH,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACnG,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC;QACxC,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC;gBACR,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,wBAAwB,IAAI,MAAM,MAAM,IAAI;sBAC9C,iGAAiG;aACtG,CAAC;QACF,OAAO,EAAE;YACP,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,GAAG;YACX,MAAM;YACN,SAAS,EAAE,IAAI;SAChB;KACF,CAAC,CAAC;IAEH,OAAO,KAAK,UAAU,SAAS,CAAC,IAAI,GAAG,EAAE,EAAE,KAAK;QAC9C,MAAM,QAAQ,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAChF,IAAI,OAAO,CAAC;QACZ,IAAI,cAAc,CAAC;QACnB,IAAI,CAAC;YACH,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAClC,cAAc,GAAG,OAAO,CAAC,CAAC,cAAc,KAAK,UAAU;gBACrD,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;gBAC/B,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,gEAAgE;QAChE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QACrG,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;IAClG,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE;IACzD,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export declare const USAGE_VERSION = "EP-GATE-USAGE-v1";
|
|
2
|
+
/**
|
|
3
|
+
* Meter a billing period over evidence entries.
|
|
4
|
+
*
|
|
5
|
+
* Billable = `kind: 'decision'` entries on GUARDED actions (`not_guarded`
|
|
6
|
+
* pass-throughs are free; execution records are provenance, not enforcement).
|
|
7
|
+
* Window is [periodStart, periodEnd): inclusive start, exclusive end.
|
|
8
|
+
*
|
|
9
|
+
* @param {Array<object>} entries evidence.all()
|
|
10
|
+
* @param {object} [o]
|
|
11
|
+
* @param {string|number} [o.periodStart] ISO or ms — required
|
|
12
|
+
* @param {string|number} [o.periodEnd] ISO or ms — required, >= periodStart
|
|
13
|
+
* @param {number} [o.retentionYearsDefault=6] applied when an entry states no retention
|
|
14
|
+
* @returns {{'@version':string, protected_actions:number, allows:number, denies:number,
|
|
15
|
+
* replays_blocked:number, by_action_type:object, by_tier:object,
|
|
16
|
+
* receipt_years:number, retention_years_default:number, period:object, integrity_warnings:object[]}}
|
|
17
|
+
*/
|
|
18
|
+
export declare function meterUsage(entries?: any[], { periodStart, periodEnd, retentionYearsDefault, }?: {
|
|
19
|
+
periodStart?: string | number;
|
|
20
|
+
periodEnd?: string | number;
|
|
21
|
+
retentionYearsDefault?: number;
|
|
22
|
+
}): {
|
|
23
|
+
'@version': string;
|
|
24
|
+
period: {
|
|
25
|
+
start: string;
|
|
26
|
+
end: string;
|
|
27
|
+
bounds: string;
|
|
28
|
+
};
|
|
29
|
+
protected_actions: number;
|
|
30
|
+
allows: number;
|
|
31
|
+
denies: number;
|
|
32
|
+
replays_blocked: number;
|
|
33
|
+
by_action_type: {};
|
|
34
|
+
by_tier: {};
|
|
35
|
+
receipt_years: number;
|
|
36
|
+
retention_years_default: number;
|
|
37
|
+
integrity_warnings: {
|
|
38
|
+
index: number;
|
|
39
|
+
reason: string;
|
|
40
|
+
}[];
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Build the signed-ready usage statement handed to billing reconciliation.
|
|
44
|
+
* UNSIGNED — the deployer signs it; `content_hash` (sha256 over the canonical
|
|
45
|
+
* JSON of everything else) binds that signature to exactly these numbers.
|
|
46
|
+
* Deterministic: same usage + org → byte-identical statement, regardless of
|
|
47
|
+
* the entry order the usage was metered from.
|
|
48
|
+
* @param {object} usage a USAGE_VERSION object from meterUsage
|
|
49
|
+
* @param {{ org?: string }} [o]
|
|
50
|
+
*/
|
|
51
|
+
export declare function buildUsageStatement(usage: any, { org }?: {
|
|
52
|
+
org?: string;
|
|
53
|
+
}): {
|
|
54
|
+
content_hash: string;
|
|
55
|
+
'@version': string;
|
|
56
|
+
kind: string;
|
|
57
|
+
org: string;
|
|
58
|
+
period: {
|
|
59
|
+
start: any;
|
|
60
|
+
end: any;
|
|
61
|
+
bounds: string;
|
|
62
|
+
};
|
|
63
|
+
protected_actions: any;
|
|
64
|
+
allows: any;
|
|
65
|
+
denies: any;
|
|
66
|
+
replays_blocked: any;
|
|
67
|
+
by_action_type: {};
|
|
68
|
+
by_tier: {};
|
|
69
|
+
receipt_years: any;
|
|
70
|
+
retention_years_default: any;
|
|
71
|
+
integrity_warning_count: any;
|
|
72
|
+
complete: boolean;
|
|
73
|
+
};
|
|
74
|
+
declare const _default: {
|
|
75
|
+
meterUsage: typeof meterUsage;
|
|
76
|
+
buildUsageStatement: typeof buildUsageStatement;
|
|
77
|
+
USAGE_VERSION: string;
|
|
78
|
+
};
|
|
79
|
+
export default _default;
|
|
80
|
+
//# sourceMappingURL=metering.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metering.d.ts","sourceRoot":"","sources":["../src/metering.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,aAAa,qBAAqB,CAAC;AAyDhD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,GAAG,EAAO,EAAE,EAC9C,WAAW,EACX,SAAS,EACT,qBAA+C,GAChD,GAAE;IACD,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAC3B;;;;;;;;;;;;;;;;eAaqB,MAAM;gBAAU,MAAM;;EAgEhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,KAAA,EAAE,EAAE,GAAG,EAAE,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO;;;;;;;;;;;;;;;;;;;;EAyCxE;;;;;;AAED,wBAAkE"}
|