@kya-os/mcp 1.11.0 → 1.12.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.
Files changed (103) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/CONFORMANCE.md +10 -8
  3. package/README.md +2 -2
  4. package/SPEC.md +23 -30
  5. package/dist/audit/index.d.ts +3 -0
  6. package/dist/audit/index.d.ts.map +1 -1
  7. package/dist/audit/index.js +3 -0
  8. package/dist/audit/index.js.map +1 -1
  9. package/dist/audit/read-contract.d.ts +445 -0
  10. package/dist/audit/read-contract.d.ts.map +1 -0
  11. package/dist/audit/read-contract.js +126 -0
  12. package/dist/audit/read-contract.js.map +1 -0
  13. package/dist/audit/read-service.d.ts +99 -0
  14. package/dist/audit/read-service.d.ts.map +1 -0
  15. package/dist/audit/read-service.js +124 -0
  16. package/dist/audit/read-service.js.map +1 -0
  17. package/dist/audit/reference-recorder.d.ts +43 -0
  18. package/dist/audit/reference-recorder.d.ts.map +1 -0
  19. package/dist/audit/reference-recorder.js +131 -0
  20. package/dist/audit/reference-recorder.js.map +1 -0
  21. package/dist/audit/schemas.d.ts +1 -0
  22. package/dist/audit/schemas.d.ts.map +1 -1
  23. package/dist/audit/schemas.js +1 -1
  24. package/dist/audit/schemas.js.map +1 -1
  25. package/dist/card/builder.d.ts +1 -1
  26. package/dist/card/builder.js +1 -1
  27. package/dist/card/emit.d.ts +3 -3
  28. package/dist/card/emit.d.ts.map +1 -1
  29. package/dist/card/emit.js.map +1 -1
  30. package/dist/card/index.d.ts +1 -1
  31. package/dist/card/index.js +1 -1
  32. package/dist/card/middleware.d.ts +6 -4
  33. package/dist/card/middleware.d.ts.map +1 -1
  34. package/dist/card/middleware.js +11 -7
  35. package/dist/card/middleware.js.map +1 -1
  36. package/dist/card/proof/build.d.ts +3 -3
  37. package/dist/card/proof/build.js +3 -3
  38. package/dist/card/proof/http-sig.d.ts +1 -1
  39. package/dist/card/proof/http-sig.js +1 -1
  40. package/dist/card/proof/index.d.ts +2 -2
  41. package/dist/card/proof/index.js +2 -2
  42. package/dist/card/proof/nonce-cache.d.ts +1 -1
  43. package/dist/card/proof/nonce-cache.js +1 -1
  44. package/dist/card/proof/types.d.ts +16 -7
  45. package/dist/card/proof/types.d.ts.map +1 -1
  46. package/dist/card/proof/types.js +16 -7
  47. package/dist/card/proof/types.js.map +1 -1
  48. package/dist/card/proof/verify.d.ts +2 -2
  49. package/dist/card/proof/verify.js +2 -2
  50. package/dist/card/schema.d.ts +14 -6
  51. package/dist/card/schema.d.ts.map +1 -1
  52. package/dist/card/schema.js +14 -3
  53. package/dist/card/schema.js.map +1 -1
  54. package/dist/card/verify.d.ts +1 -1
  55. package/dist/card/verify.d.ts.map +1 -1
  56. package/dist/delegation/vc-verification-checks.d.ts.map +1 -1
  57. package/dist/delegation/vc-verification-checks.js +16 -1
  58. package/dist/delegation/vc-verification-checks.js.map +1 -1
  59. package/dist/extension/declaration.d.ts +60 -0
  60. package/dist/extension/declaration.d.ts.map +1 -0
  61. package/dist/extension/declaration.js +75 -0
  62. package/dist/extension/declaration.js.map +1 -0
  63. package/dist/extension/gate.d.ts +110 -0
  64. package/dist/extension/gate.d.ts.map +1 -0
  65. package/dist/extension/gate.js +133 -0
  66. package/dist/extension/gate.js.map +1 -0
  67. package/dist/extension/index.d.ts +14 -0
  68. package/dist/extension/index.d.ts.map +1 -0
  69. package/dist/extension/index.js +14 -0
  70. package/dist/extension/index.js.map +1 -0
  71. package/dist/extension/settings.d.ts +70 -0
  72. package/dist/extension/settings.d.ts.map +1 -0
  73. package/dist/extension/settings.js +96 -0
  74. package/dist/extension/settings.js.map +1 -0
  75. package/dist/index.d.ts +2 -1
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +3 -1
  78. package/dist/index.js.map +1 -1
  79. package/dist/middleware/kya-os-transport.d.ts +1 -1
  80. package/dist/middleware/kya-os-transport.js +1 -1
  81. package/dist/middleware/with-kya-os.delegation-verify.d.ts.map +1 -1
  82. package/dist/middleware/with-kya-os.delegation-verify.js +2 -2
  83. package/dist/middleware/with-kya-os.delegation-verify.js.map +1 -1
  84. package/dist/proof/generator.d.ts +14 -2
  85. package/dist/proof/generator.d.ts.map +1 -1
  86. package/dist/proof/generator.js +14 -2
  87. package/dist/proof/generator.js.map +1 -1
  88. package/dist/proof/index.d.ts +1 -1
  89. package/dist/proof/index.d.ts.map +1 -1
  90. package/dist/proof/index.js +1 -1
  91. package/dist/proof/index.js.map +1 -1
  92. package/dist/proof/verifier.d.ts +3 -2
  93. package/dist/proof/verifier.d.ts.map +1 -1
  94. package/dist/proof/verifier.js +13 -8
  95. package/dist/proof/verifier.js.map +1 -1
  96. package/dist/types/protocol.d.ts +22 -0
  97. package/dist/types/protocol.d.ts.map +1 -1
  98. package/dist/types/protocol.js +31 -5
  99. package/dist/types/protocol.js.map +1 -1
  100. package/package.json +1 -1
  101. package/schemas/README.md +1 -0
  102. package/schemas/kya-os-card.schema.json +6 -6
  103. package/schemas/mcp-extension-settings.json +37 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,26 @@ Versioning: https://semver.org/spec/v2.0.0.html
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.12.0] - 2026-08-04
11
+
12
+ ### Added
13
+
14
+ - **MCP `2026-07-28` extension binding: `org.kya-os/decentralized-authority`.**
15
+ Per-request admission via `requireExtension`, capability declaration via
16
+ `buildExtensionsEntry`, and a hand-rolled `server/discover` advertisement
17
+ (SEP-2133). Required mode rejects a non-declaring client with the core
18
+ `-32021` error carrying the `requiredCapabilities` member; discovery and ping
19
+ are exempt from the gate.
20
+ - **Audit operator read/replay contract and a reference recorder.**
21
+
22
+ ### Changed
23
+
24
+ - **Terminal proof-key naming.** Role-named `_meta` carriers
25
+ `org.kya-os/request-proof` and `org.kya-os/response-proof`, with the profile
26
+ version carried in the `org.kya-os/proof.v1` profile id. The legacy keys and
27
+ `prf` value (`org.kya-os/proof@1`, `org.kya-os/proof`) are read-accepted for
28
+ one major version, so existing producers and verifiers keep working.
29
+
10
30
  ## [1.11.0] - 2026-07-22
11
31
 
12
32
  ### Added
package/CONFORMANCE.md CHANGED
@@ -416,14 +416,16 @@ so it is reproducible against any implementation without re-signing.
416
416
  | `vectors/status-list.json` | StatusList2021 revocation | active (bit unset) | revoked (bit set) |
417
417
  | `vectors/did-key-resolution.json` | did:key resolution | valid Ed25519 | malformed multibase, wrong method |
418
418
  | `vectors/did-web-resolution.json` | did:web resolution | well-formed id-matched document | document id mismatch, not found |
419
- | `vectors/card-proof.json` | `org.kya-os/proof@1` holder-of-key proof | valid signed proof, in-window, audience-bound | tampered body, tampered signature, wrong audience, expired, kid⇄did forgery |
419
+ | `vectors/card-proof.json` | `org.kya-os/proof.v1` holder-of-key proof | valid signed proof, in-window, audience-bound | tampered body, tampered signature, wrong audience, expired, kid⇄did forgery |
420
420
  | `vectors/entity-card.json` | Entity Card `parseCard` + `verifyCard` | golden card per `entityType`, accountable agent | malformed (unknown field), broken accountability JOIN |
421
421
  | `vectors/audit-integrity.json` | Audit JCS + domain-separated hashing + RFC 9162 | fixed Unicode event, leaf/root, inclusion and consistency paths | mutated event/proof relationships are exercised by the audit unit suites |
422
+ | `vectors/negotiation.json` | MCP extension admission gate (`org.kya-os/decentralized-authority`) | declared and malformed-degrades-to-core (optional server); empty-object and initialize-era declarations, `server/discover` exemption (required server) | absent against a required server (`-32021`), present-but-malformed against a required server (`-32602`, malformed_declaration) |
422
423
 
423
424
  The first five categories exercise the **legacy** session-bound primitives; the
424
425
  next two exercise the **Entity Card** layer (see the dedicated section below),
425
- and `audit-integrity` provides language-neutral bytes and hashes for the audit
426
- protocol.
426
+ `audit-integrity` provides language-neutral bytes and hashes for the audit
427
+ protocol, and `negotiation` exercises the MCP extension admission gate
428
+ (`org.kya-os/decentralized-authority`, SPEC-MCP-EXTENSION.md §3-§5).
427
429
 
428
430
  A `fail` vector passes the suite only when the implementation correctly **rejects**
429
431
  it. The runner exits non-zero on any mismatch.
@@ -468,7 +470,7 @@ const myAdapter: ConformanceAdapter = {
468
470
  async verifyStatusList(input) { /* ... */ },
469
471
  async resolveDidKey(input) { /* ... */ },
470
472
  async resolveDidWeb(input) { /* ... */ },
471
- async verifyCardProof(input) { /* org.kya-os/proof@1 holder-of-key proof */ },
473
+ async verifyCardProof(input) { /* org.kya-os/proof.v1 holder-of-key proof */ },
472
474
  async verifyEntityCard(input) { /* parseCard + verifyCard */ },
473
475
  async verifyAuditIntegrity(input) { /* JCS event digest + RFC 9162 proofs */ },
474
476
  };
@@ -514,12 +516,12 @@ The Entity Card is a **distinct, newer layer** on top of the Level 1–3 ladder
514
516
  a typed, DID-anchored card plus a stateless, sender-constrained per-request proof.
515
517
  It is orthogonal to the legacy session-bound proof — the two coexist, each under
516
518
  its OWN distinct `_meta` key (`_meta['org.kya-os/proof']` for the legacy
517
- session-bound proof, `_meta['org.kya-os/proof@1']` for the stateless card proof),
519
+ session-bound proof, `_meta['org.kya-os/proof.v1']` for the stateless card proof),
518
520
  and each verifier reads its own key and ignores the other. Its
519
521
  conformance vectors live in the SAME harness under two categories, wired to the two
520
522
  adapter methods `verifyCardProof` and `verifyEntityCard`.
521
523
 
522
- ### `card-proof` — the `org.kya-os/proof@1` holder-of-key proof
524
+ ### `card-proof` — the `org.kya-os/proof.v1` holder-of-key proof
523
525
 
524
526
  `vectors/card-proof.json` carries fully-formed, pre-signed proofs. Each vector's
525
527
  `input` is self-contained: the proof object, the `request` it binds, the DID-keyed
@@ -566,7 +568,7 @@ onto the same ladder:
566
568
 
567
569
  `conformance/verify.py` is the **second-language complement** to the adapter contract:
568
570
  a pure-Python-stdlib re-implementation that shares no code with the TypeScript
569
- reference. It verifies the positive `org.kya-os/proof@1` vector and independently
571
+ reference. It verifies the positive `org.kya-os/proof.v1` vector and independently
570
572
  re-derives the audit event's RFC 8785 bytes, domain-separated digest, RFC 9162
571
573
  root, inclusion path, and consistency path. Ed25519 uses the RFC 8032 reference
572
574
  without `pip install`.
@@ -580,7 +582,7 @@ Expected output:
580
582
 
581
583
  ```
582
584
  KYA-OS cross-language verifier (Python 3.x, stdlib-only)
583
- proof: org.kya-os/proof@1 did: did:web:example.com:agents:acme-pay
585
+ proof: org.kya-os/proof.v1 did: did:web:example.com:agents:acme-pay
584
586
  [PASS] requestHash JCS+SHA-256 recompute
585
587
  [PASS] detached EdDSA JWS over JCS(coveredClaims)
586
588
  [PASS] RFC 9421 httpSig over the signature base
package/README.md CHANGED
@@ -14,7 +14,7 @@
14
14
  <p align="center">
15
15
  <a href="https://www.npmjs.com/package/@kya-os/mcp"><img src="https://img.shields.io/npm/v/@kya-os/mcp" alt="npm"></a>
16
16
  <a href="https://kya-os.org/mcp"><img src="https://img.shields.io/badge/spec-KYA--OS-blue" alt="spec"></a>
17
- <a href="https://identity.foundation/working-groups/agent-and-authorization.html"><img src="https://img.shields.io/badge/DIF-TAAWG-purple" alt="DIF TAAWG"></a>
17
+ <a href="https://identity.foundation/working-groups/trusted-agents.html"><img src="https://img.shields.io/badge/DIF-TAAWG-purple" alt="DIF TAAWG"></a>
18
18
  <a href="./LICENSE"><img src="https://img.shields.io/github/license/decentralized-identity/kya-os-mcp" alt="license"></a>
19
19
  </p>
20
20
 
@@ -432,7 +432,7 @@ publication, status-list backend hosting, and external registry changes.
432
432
 
433
433
  ## Links
434
434
 
435
- - [Spec](./SPEC.md) | [Card Profile](./SPEC-ENTITY-CARD.md) | [Changelog](./CHANGELOG.md) | [DIF TAAWG](https://identity.foundation/working-groups/agent-and-authorization.html) | [npm](https://www.npmjs.com/package/@kya-os/mcp)
435
+ - [Spec](./SPEC.md) | [Card Profile](./SPEC-ENTITY-CARD.md) | [Changelog](./CHANGELOG.md) | [DIF TAAWG](https://identity.foundation/working-groups/trusted-agents.html) | [npm](https://www.npmjs.com/package/@kya-os/mcp)
436
436
  - [CONTRIBUTING.md](./CONTRIBUTING.md) | [CONFORMANCE.md](./CONFORMANCE.md) | [SECURITY.md](./SECURITY.md) | [GOVERNANCE.md](./GOVERNANCE.md)
437
437
 
438
438
  ## License
package/SPEC.md CHANGED
@@ -23,7 +23,7 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S
23
23
 
24
24
  ## Status
25
25
 
26
- **Stable 1.0.0** — Donated to DIF TAAWG (Decentralized Identity Foundation, Trust and Authorization for AI Agents Working Group). Under review for ratification as a DIF standard. The wire format is stable: any future change that breaks compatibility with this version will require a major version bump.
26
+ **Stable 1.0.0** — Donated to DIF TAAWG (Decentralized Identity Foundation, Trusted AI Agents Working Group). Under review for ratification as a DIF standard. The wire format is stable: any future change that breaks compatibility with this version will require a major version bump.
27
27
 
28
28
  ---
29
29
 
@@ -60,7 +60,7 @@ DIDs and Verifiable Credentials are the right fit for this problem:
60
60
  | **Responsible Party** | The entity ultimately accountable for the actions of an agent operating under a delegation chain. The Responsible Party is the root issuer of the chain (`issuerDid` of the root `DelegationCredential`). In personal use, the Responsible Party equals the Principal. In organizational use, the Responsible Party is the employing organization or parent entity while the Principal is the immediate human delegator within that organization. Reputation and accountability signals are scoped primarily to the Responsible Party rather than to an agent's ephemeral identity — "can this be trusted?" is ultimately a question about the accountable party. |
61
61
  | **Delegation Chain** | An ordered sequence of Delegation Credentials from a root delegator (the Responsible Party) to the current agent, where each credential's subject is the next credential's issuer. |
62
62
  | **Delegation Credential** | A W3C Verifiable Credential that grants specific permissions from an issuer (delegator) to a subject (delegate). Contains CRISP constraints defining allowed operations. |
63
- | **Detached Proof** | A JWS (JSON Web Signature) that cryptographically binds a tool request and response together, enabling non-repudiation and audit. Attached to responses under the reverse-DNS key `org.kya-os/proof` within the MCP `_meta` field (legacy bare `proof` accepted for backward compatibility; see §7.6). |
63
+ | **Detached Proof** | A JWS (JSON Web Signature) that cryptographically binds a tool request and response together, enabling non-repudiation and audit. Attached to responses under the reverse-DNS key `org.kya-os/response-proof` within the MCP `_meta` field (prior keys `org.kya-os/proof` and bare `proof` accepted for backward compatibility; see §7.6). |
64
64
  | **CRISP Constraints** | **C**onstraints, **R**esources, **I**dentity, **S**cope, **P**olicy — a structured envelope defining what operations a delegation permits: allowed scopes, budget caps, temporal bounds, and audience restrictions. |
65
65
  | **Session** | An OPTIONAL, validated, time-bounded convenience context established via the `_kyaos_handshake` tool. Sessions aid replay prevention and provide a stable context for proof generation, but are **not** the durable authority — the per-request detached-JWS proof (§7) and DID-anchored grant (§6) are (see §5 preamble). KYA-OS sessions are independent of MCP's session, which was removed in MCP 2026-07-28 (SEP-2567/SEP-2575). |
66
66
  | **Handshake Nonce** | A cryptographically random value provided by the client during session establishment. Used once; prevents replay attacks. |
@@ -120,7 +120,7 @@ The following diagram illustrates the KYA-OS protocol flow:
120
120
  │ │ 4. TOOL CALL RESPONSE │ │
121
121
  │ │ content: [ { type: "text", ... } ] │ │
122
122
  │ │ _meta: │ │
123
- │ │ org.kya-os/proof: │ │
123
+ │ │ org.kya-os/response-proof: │ │
124
124
  │ │ jws: "eyJhbGciOiJFZERTQSI..." │ │
125
125
  │ │ meta: │ │
126
126
  │ │ did: "did:web:srv" │ │
@@ -966,7 +966,7 @@ substitution — and `outcome: "needs_authorization"`:
966
966
  ### 7.5 _meta Attachment
967
967
 
968
968
  The proof is attached to tool responses under the reverse-DNS key
969
- `org.kya-os/proof` inside the standard MCP `_meta` field. Other `_meta` keys
969
+ `org.kya-os/response-proof` inside the standard MCP `_meta` field. Other `_meta` keys
970
970
  (e.g. `io.modelcontextprotocol/*`, `traceparent`) MAY coexist and are ignored by
971
971
  the verifier (§7.6):
972
972
 
@@ -974,7 +974,7 @@ the verifier (§7.6):
974
974
  {
975
975
  "content": [{ "type": "text", "text": "File contents..." }],
976
976
  "_meta": {
977
- "org.kya-os/proof": {
977
+ "org.kya-os/response-proof": {
978
978
  "jws": "eyJhbGciOiJFZERTQSIsImtpZCI6Ii4uLiJ9.eyJhdWQiOi4uLn0.c2ln...",
979
979
  "meta": {
980
980
  "did": "did:web:server.example.com",
@@ -1007,31 +1007,29 @@ Context propagation keys (`traceparent`, `tracestate`, `baggage`). KYA-OS
1007
1007
  therefore namespaces its own payload and MUST NOT assume exclusive ownership of
1008
1008
  `_meta`.
1009
1009
 
1010
- **Canonical key.** KYA-OS attaches its detached proof under the reverse-DNS key
1011
- `org.kya-os/proof` (the `proofMetaKey`). This key SHOULD be configurable (e.g., a
1010
+ **Canonical key.** KYA-OS attaches its detached response proof under the
1011
+ reverse-DNS key `org.kya-os/response-proof` (the `proofMetaKey`). The key is
1012
+ named for its role, pairing with the request proof's `org.kya-os/request-proof`
1013
+ (SPEC-ENTITY-CARD §8); the two keys carry different objects, and neither carries
1014
+ a version - the request proof's profile version lives inside the object (`prf`). This key SHOULD be configurable (e.g., a
1012
1015
  single build-time constant rather than a value scattered through the code), so
1013
1016
  that if and when KYA-OS is registered as an MCP Extension (SEP-2133), its
1014
1017
  reverse-DNS extension id — and hence this key — can be re-pointed without a wire
1015
1018
  change.
1016
1019
 
1017
- > **Editorial note — open for discussion.** The reverse-DNS key `org.kya-os/proof`
1018
- > (and the corresponding proposed MCP Extension id `org.kya-os.identity`; see
1019
- > §15.2) are **proposed** and not yet ratified. They remain open for
1020
- > working-group discussion and MAY change before this revision is finalized.
1021
- > Because the key is configurable (above), pinning the final id later does not
1022
- > require a code change.
1023
-
1024
- **Backward compatibility.** For one major version, verifiers MUST also accept a
1025
- proof published under the legacy bare key `proof`. Producers SHOULD emit
1026
- `org.kya-os/proof`; producers targeting pre-1.1 verifiers MAY additionally
1027
- mirror the proof under bare `proof`. When both are present and disagree, the
1028
- namespaced key wins.
1020
+ **Backward compatibility.** Two prior keys carried this proof: bare `proof`
1021
+ (pre-1.1) and `org.kya-os/proof` (1.1 until the role-named rename). For one
1022
+ major version, verifiers MUST also accept a proof published under either prior
1023
+ key. Producers emit `org.kya-os/response-proof` and MAY additionally mirror the
1024
+ proof under a prior key when targeting older verifiers. When several keys are
1025
+ present, the newest canonical form wins (`org.kya-os/response-proof`, then
1026
+ `org.kya-os/proof`, then `proof`).
1029
1027
 
1030
1028
  **`metaPolicy` semantics.** The `session.metaPolicy` setting governs how a
1031
1029
  verifier treats `_meta` keys that are *not* KYA-OS's proof key:
1032
1030
 
1033
1031
  - `strict` (the default) — the verifier processes **only** the KYA-OS proof key
1034
- (`org.kya-os/proof`, or legacy `proof`). All other keys are **ignored**: never
1032
+ (`org.kya-os/response-proof`, or a prior key `org.kya-os/proof` / `proof`). All other keys are **ignored**: never
1035
1033
  hashed, never trusted, and — critically — **never a cause for rejection**. In
1036
1034
  particular a `strict` verifier MUST NOT reject a response merely because
1037
1035
  `_meta` also carries `io.modelcontextprotocol/*`, `traceparent`, `tracestate`,
@@ -1047,7 +1045,7 @@ never covers `_meta` (§7.3).
1047
1045
 
1048
1046
  > **Note.** The proof object's shape is normatively defined by
1049
1047
  > `schemas/detached-proof.json` (`$schema: draft/2020-12`). The *placement* key
1050
- > inside `_meta` is `org.kya-os/proof`; the schema describes the value
1048
+ > inside `_meta` is `org.kya-os/response-proof`; the schema describes the value
1051
1049
  > (`{ jws, meta }`), not the key.
1052
1050
 
1053
1051
  ### 7.7 Delegation Chain Audit Example
@@ -1092,7 +1090,7 @@ The `parentDelegation` field links this record back to the User → Agent A cred
1092
1090
  {
1093
1091
  "content": [{ "type": "text", "text": "file contents..." }],
1094
1092
  "_meta": {
1095
- "org.kya-os/proof": {
1093
+ "org.kya-os/response-proof": {
1096
1094
  "jws": "eyJhbGciOiJFZERTQSJ9...",
1097
1095
  "meta": {
1098
1096
  "did": "did:web:tool-server.example.com",
@@ -1592,8 +1590,8 @@ KYA-OS is designed to layer cleanly on the MCP 2026-07-28 Release Candidate.
1592
1590
  and DID-anchored grant (§6). The KYA-OS session (§5) is an optional KYA-OS-owned
1593
1591
  convenience layer delivered via the `_kyaos_handshake` tool (§14) and is
1594
1592
  independent of MCP's removed session.
1595
- - **`_meta` reserved-namespace coexistence.** KYA-OS publishes its proof under the
1596
- reverse-DNS key `org.kya-os/proof` and ignores all other `_meta` keys, including
1593
+ - **`_meta` reserved-namespace coexistence.** KYA-OS publishes its response proof
1594
+ under the reverse-DNS key `org.kya-os/response-proof` and ignores all other `_meta` keys, including
1597
1595
  the MCP-reserved `io.modelcontextprotocol/*` and W3C Trace Context keys
1598
1596
  `traceparent`/`tracestate`/`baggage` (SEP-414). See §7.6.
1599
1597
  - **Routing headers.** KYA-OS gateways MAY use `Mcp-Method`/`Mcp-Name` (SEP-2243)
@@ -1601,17 +1599,12 @@ KYA-OS is designed to layer cleanly on the MCP 2026-07-28 Release Candidate.
1601
1599
  - **JSON Schema 2020-12.** Tool `inputSchema`/`outputSchema` and KYA-OS schemas use
1602
1600
  JSON Schema 2020-12 (SEP-2106); see §6.2.
1603
1601
  - **Extensions Track intent (SEP-2133).** KYA-OS intends to register as an MCP
1604
- Extension under the proposed reverse-DNS extension id `org.kya-os.identity`,
1602
+ Extension under the proposed reverse-DNS extension id `org.kya-os/decentralized-authority`,
1605
1603
  with an `ext-*` repository, independent versioning, and negotiation via the
1606
1604
  `extensions` capability map. Once registered, the canonical proof key (§7.6
1607
1605
  `proofMetaKey`) and capability advertisement (§10) will use that extension id;
1608
1606
  the key is configurable for this reason. KYA-OS targets the SEP-2133
1609
1607
  Standards-Track path.
1610
-
1611
- > **Editorial note — open for discussion.** The extension id `org.kya-os.identity`
1612
- > and the proof key `org.kya-os/proof` (§7.6) are **proposed** and not yet
1613
- > ratified; both remain open for working-group discussion and MAY change before
1614
- > this revision is finalized.
1615
1608
  - **Deprecations are zero-impact.** SEP-2577 deprecates MCP **Roots**, **Sampling**,
1616
1609
  and **Logging** on 12-month windows. KYA-OS uses **none** of these features, so
1617
1610
  the deprecations have **no impact** on KYA-OS implementations.
@@ -14,6 +14,9 @@ export * from './replay-bundle.js';
14
14
  export * from './service.js';
15
15
  export * from './mirror-service.js';
16
16
  export * from './recorder-service.js';
17
+ export * from './read-service.js';
18
+ export * from './read-contract.js';
19
+ export * from './reference-recorder.js';
17
20
  export * from './providers/evidence.js';
18
21
  export * from './providers/journal.js';
19
22
  export * from './providers/memory-journal.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/audit/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/audit/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC"}
@@ -14,6 +14,9 @@ export * from './replay-bundle.js';
14
14
  export * from './service.js';
15
15
  export * from './mirror-service.js';
16
16
  export * from './recorder-service.js';
17
+ export * from './read-service.js';
18
+ export * from './read-contract.js';
19
+ export * from './reference-recorder.js';
17
20
  export * from './providers/evidence.js';
18
21
  export * from './providers/journal.js';
19
22
  export * from './providers/memory-journal.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/audit/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/audit/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mBAAmB,CAAC"}