@opendatalabs/personal-server-ts-core 0.0.1-canary.00328bf
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/dist/api/index.d.ts +408 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +1257 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/raw-envelope.d.ts +3 -0
- package/dist/api/raw-envelope.d.ts.map +1 -0
- package/dist/api/raw-envelope.js +215 -0
- package/dist/api/raw-envelope.js.map +1 -0
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +2 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/request.d.ts +28 -0
- package/dist/auth/request.d.ts.map +1 -0
- package/dist/auth/request.js +106 -0
- package/dist/auth/request.js.map +1 -0
- package/dist/client.d.ts +233 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +243 -0
- package/dist/client.js.map +1 -0
- package/dist/config/defaults.d.ts +12 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +12 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +3 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/paths.d.ts +9 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +14 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/contracts/access-logs.d.ts +8 -0
- package/dist/contracts/access-logs.d.ts.map +1 -0
- package/dist/contracts/access-logs.js +7 -0
- package/dist/contracts/access-logs.js.map +1 -0
- package/dist/contracts/auth-device.d.ts +70 -0
- package/dist/contracts/auth-device.d.ts.map +1 -0
- package/dist/contracts/auth-device.js +163 -0
- package/dist/contracts/auth-device.js.map +1 -0
- package/dist/contracts/binary.d.ts +66 -0
- package/dist/contracts/binary.d.ts.map +1 -0
- package/dist/contracts/binary.js +123 -0
- package/dist/contracts/binary.js.map +1 -0
- package/dist/contracts/config.d.ts +5 -0
- package/dist/contracts/config.d.ts.map +1 -0
- package/dist/contracts/config.js +30 -0
- package/dist/contracts/config.js.map +1 -0
- package/dist/contracts/data.d.ts +165 -0
- package/dist/contracts/data.d.ts.map +1 -0
- package/dist/contracts/data.js +371 -0
- package/dist/contracts/data.js.map +1 -0
- package/dist/contracts/grants.d.ts +45 -0
- package/dist/contracts/grants.d.ts.map +1 -0
- package/dist/contracts/grants.js +177 -0
- package/dist/contracts/grants.js.map +1 -0
- package/dist/contracts/http.d.ts +21 -0
- package/dist/contracts/http.d.ts.map +1 -0
- package/dist/contracts/http.js +49 -0
- package/dist/contracts/http.js.map +1 -0
- package/dist/contracts/index.d.ts +16 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +10 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/oauth.d.ts +38 -0
- package/dist/contracts/oauth.d.ts.map +1 -0
- package/dist/contracts/oauth.js +130 -0
- package/dist/contracts/oauth.js.map +1 -0
- package/dist/contracts/sync.d.ts +10 -0
- package/dist/contracts/sync.d.ts.map +1 -0
- package/dist/contracts/sync.js +35 -0
- package/dist/contracts/sync.js.map +1 -0
- package/dist/derivatives/answer-shape.d.ts +83 -0
- package/dist/derivatives/answer-shape.d.ts.map +1 -0
- package/dist/derivatives/answer-shape.js +320 -0
- package/dist/derivatives/answer-shape.js.map +1 -0
- package/dist/derivatives/api.d.ts +48 -0
- package/dist/derivatives/api.d.ts.map +1 -0
- package/dist/derivatives/api.js +374 -0
- package/dist/derivatives/api.js.map +1 -0
- package/dist/derivatives/compute.d.ts +112 -0
- package/dist/derivatives/compute.d.ts.map +1 -0
- package/dist/derivatives/compute.js +476 -0
- package/dist/derivatives/compute.js.map +1 -0
- package/dist/derivatives/e2ee/aad.d.ts +22 -0
- package/dist/derivatives/e2ee/aad.d.ts.map +1 -0
- package/dist/derivatives/e2ee/aad.js +32 -0
- package/dist/derivatives/e2ee/aad.js.map +1 -0
- package/dist/derivatives/e2ee/attestation.d.ts +134 -0
- package/dist/derivatives/e2ee/attestation.d.ts.map +1 -0
- package/dist/derivatives/e2ee/attestation.js +248 -0
- package/dist/derivatives/e2ee/attestation.js.map +1 -0
- package/dist/derivatives/e2ee/index.d.ts +6 -0
- package/dist/derivatives/e2ee/index.d.ts.map +1 -0
- package/dist/derivatives/e2ee/index.js +6 -0
- package/dist/derivatives/e2ee/index.js.map +1 -0
- package/dist/derivatives/e2ee/jcs.d.ts +17 -0
- package/dist/derivatives/e2ee/jcs.d.ts.map +1 -0
- package/dist/derivatives/e2ee/jcs.js +55 -0
- package/dist/derivatives/e2ee/jcs.js.map +1 -0
- package/dist/derivatives/e2ee/phala.d.ts +62 -0
- package/dist/derivatives/e2ee/phala.d.ts.map +1 -0
- package/dist/derivatives/e2ee/phala.js +168 -0
- package/dist/derivatives/e2ee/phala.js.map +1 -0
- package/dist/derivatives/e2ee/suite.d.ts +56 -0
- package/dist/derivatives/e2ee/suite.d.ts.map +1 -0
- package/dist/derivatives/e2ee/suite.js +164 -0
- package/dist/derivatives/e2ee/suite.js.map +1 -0
- package/dist/derivatives/index.d.ts +11 -0
- package/dist/derivatives/index.d.ts.map +1 -0
- package/dist/derivatives/index.js +11 -0
- package/dist/derivatives/index.js.map +1 -0
- package/dist/derivatives/inference.d.ts +151 -0
- package/dist/derivatives/inference.d.ts.map +1 -0
- package/dist/derivatives/inference.js +262 -0
- package/dist/derivatives/inference.js.map +1 -0
- package/dist/derivatives/prompt.d.ts +99 -0
- package/dist/derivatives/prompt.d.ts.map +1 -0
- package/dist/derivatives/prompt.js +281 -0
- package/dist/derivatives/prompt.js.map +1 -0
- package/dist/derivatives/registration.d.ts +56 -0
- package/dist/derivatives/registration.d.ts.map +1 -0
- package/dist/derivatives/registration.js +187 -0
- package/dist/derivatives/registration.js.map +1 -0
- package/dist/derivatives/scheduler.d.ts +114 -0
- package/dist/derivatives/scheduler.d.ts.map +1 -0
- package/dist/derivatives/scheduler.js +331 -0
- package/dist/derivatives/scheduler.js.map +1 -0
- package/dist/derivatives/store.d.ts +14 -0
- package/dist/derivatives/store.d.ts.map +1 -0
- package/dist/derivatives/store.js +79 -0
- package/dist/derivatives/store.js.map +1 -0
- package/dist/derivatives/types.d.ts +102 -0
- package/dist/derivatives/types.d.ts.map +1 -0
- package/dist/derivatives/types.js +29 -0
- package/dist/derivatives/types.js.map +1 -0
- package/dist/errors/catalog.d.ts +125 -0
- package/dist/errors/catalog.d.ts.map +1 -0
- package/dist/errors/catalog.js +198 -0
- package/dist/errors/catalog.js.map +1 -0
- package/dist/errors/pdpp-catalog.d.ts +36 -0
- package/dist/errors/pdpp-catalog.d.ts.map +1 -0
- package/dist/errors/pdpp-catalog.js +82 -0
- package/dist/errors/pdpp-catalog.js.map +1 -0
- package/dist/grants/index.d.ts +5 -0
- package/dist/grants/index.d.ts.map +1 -0
- package/dist/grants/index.js +6 -0
- package/dist/grants/index.js.map +1 -0
- package/dist/grants/pdpp-binding-store.d.ts +58 -0
- package/dist/grants/pdpp-binding-store.d.ts.map +1 -0
- package/dist/grants/pdpp-binding-store.js +97 -0
- package/dist/grants/pdpp-binding-store.js.map +1 -0
- package/dist/grants/pdpp-binding.d.ts +179 -0
- package/dist/grants/pdpp-binding.d.ts.map +1 -0
- package/dist/grants/pdpp-binding.js +214 -0
- package/dist/grants/pdpp-binding.js.map +1 -0
- package/dist/keys/index.d.ts +3 -0
- package/dist/keys/index.d.ts.map +1 -0
- package/dist/keys/index.js +2 -0
- package/dist/keys/index.js.map +1 -0
- package/dist/keys/public-only-account.d.ts +8 -0
- package/dist/keys/public-only-account.d.ts.map +1 -0
- package/dist/keys/public-only-account.js +21 -0
- package/dist/keys/public-only-account.js.map +1 -0
- package/dist/keys/server-account.d.ts +24 -0
- package/dist/keys/server-account.d.ts.map +1 -0
- package/dist/keys/server-account.js +2 -0
- package/dist/keys/server-account.js.map +1 -0
- package/dist/lineage/attestation.d.ts +42 -0
- package/dist/lineage/attestation.d.ts.map +1 -0
- package/dist/lineage/attestation.js +25 -0
- package/dist/lineage/attestation.js.map +1 -0
- package/dist/lineage/gateway.d.ts +105 -0
- package/dist/lineage/gateway.d.ts.map +1 -0
- package/dist/lineage/gateway.js +242 -0
- package/dist/lineage/gateway.js.map +1 -0
- package/dist/lineage/index.d.ts +5 -0
- package/dist/lineage/index.d.ts.map +1 -0
- package/dist/lineage/index.js +5 -0
- package/dist/lineage/index.js.map +1 -0
- package/dist/lineage/lineage.d.ts +141 -0
- package/dist/lineage/lineage.d.ts.map +1 -0
- package/dist/lineage/lineage.js +255 -0
- package/dist/lineage/lineage.js.map +1 -0
- package/dist/logger/index.d.ts +9 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +5 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logging/access-log.d.ts +23 -0
- package/dist/logging/access-log.d.ts.map +1 -0
- package/dist/logging/access-log.js +2 -0
- package/dist/logging/access-log.js.map +1 -0
- package/dist/logging/access-reader.d.ts +14 -0
- package/dist/logging/access-reader.d.ts.map +1 -0
- package/dist/logging/access-reader.js +2 -0
- package/dist/logging/access-reader.js.map +1 -0
- package/dist/mcp/activity.d.ts +68 -0
- package/dist/mcp/activity.d.ts.map +1 -0
- package/dist/mcp/activity.js +111 -0
- package/dist/mcp/activity.js.map +1 -0
- package/dist/mcp/builder-registration.d.ts +24 -0
- package/dist/mcp/builder-registration.d.ts.map +1 -0
- package/dist/mcp/builder-registration.js +89 -0
- package/dist/mcp/builder-registration.js.map +1 -0
- package/dist/mcp/connection-api.d.ts +201 -0
- package/dist/mcp/connection-api.d.ts.map +1 -0
- package/dist/mcp/connection-api.js +506 -0
- package/dist/mcp/connection-api.js.map +1 -0
- package/dist/mcp/grantee.d.ts +52 -0
- package/dist/mcp/grantee.d.ts.map +1 -0
- package/dist/mcp/grantee.js +91 -0
- package/dist/mcp/grantee.js.map +1 -0
- package/dist/mcp/index.d.ts +12 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +12 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/read-client.d.ts +176 -0
- package/dist/mcp/read-client.d.ts.map +1 -0
- package/dist/mcp/read-client.js +579 -0
- package/dist/mcp/read-client.js.map +1 -0
- package/dist/mcp/resources.d.ts +37 -0
- package/dist/mcp/resources.d.ts.map +1 -0
- package/dist/mcp/resources.js +114 -0
- package/dist/mcp/resources.js.map +1 -0
- package/dist/mcp/search/index.d.ts +34 -0
- package/dist/mcp/search/index.d.ts.map +1 -0
- package/dist/mcp/search/index.js +156 -0
- package/dist/mcp/search/index.js.map +1 -0
- package/dist/mcp/server.d.ts +72 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +447 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/session.d.ts +160 -0
- package/dist/mcp/session.d.ts.map +1 -0
- package/dist/mcp/session.js +243 -0
- package/dist/mcp/session.js.map +1 -0
- package/dist/mcp/store.d.ts +13 -0
- package/dist/mcp/store.d.ts.map +1 -0
- package/dist/mcp/store.js +119 -0
- package/dist/mcp/store.js.map +1 -0
- package/dist/mcp/token-expiry.d.ts +38 -0
- package/dist/mcp/token-expiry.d.ts.map +1 -0
- package/dist/mcp/token-expiry.js +55 -0
- package/dist/mcp/token-expiry.js.map +1 -0
- package/dist/mcp/tools.d.ts +95 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +1381 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/mcp/types.d.ts +135 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +24 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/payment/index.d.ts +2 -0
- package/dist/payment/index.d.ts.map +1 -0
- package/dist/payment/index.js +2 -0
- package/dist/payment/index.js.map +1 -0
- package/dist/payment/x402.d.ts +155 -0
- package/dist/payment/x402.d.ts.map +1 -0
- package/dist/payment/x402.js +402 -0
- package/dist/payment/x402.js.map +1 -0
- package/dist/pdpp/approval.d.ts +182 -0
- package/dist/pdpp/approval.d.ts.map +1 -0
- package/dist/pdpp/approval.js +337 -0
- package/dist/pdpp/approval.js.map +1 -0
- package/dist/pdpp/client-identity.d.ts +88 -0
- package/dist/pdpp/client-identity.d.ts.map +1 -0
- package/dist/pdpp/client-identity.js +183 -0
- package/dist/pdpp/client-identity.js.map +1 -0
- package/dist/pdpp/client-metadata.d.ts +95 -0
- package/dist/pdpp/client-metadata.d.ts.map +1 -0
- package/dist/pdpp/client-metadata.js +96 -0
- package/dist/pdpp/client-metadata.js.map +1 -0
- package/dist/pdpp/declaration.d.ts +118 -0
- package/dist/pdpp/declaration.d.ts.map +1 -0
- package/dist/pdpp/declaration.js +549 -0
- package/dist/pdpp/declaration.js.map +1 -0
- package/dist/pdpp/index.d.ts +35 -0
- package/dist/pdpp/index.d.ts.map +1 -0
- package/dist/pdpp/index.js +22 -0
- package/dist/pdpp/index.js.map +1 -0
- package/dist/pdpp/issuance.d.ts +91 -0
- package/dist/pdpp/issuance.d.ts.map +1 -0
- package/dist/pdpp/issuance.js +124 -0
- package/dist/pdpp/issuance.js.map +1 -0
- package/dist/pdpp/pkce.d.ts +53 -0
- package/dist/pdpp/pkce.d.ts.map +1 -0
- package/dist/pdpp/pkce.js +109 -0
- package/dist/pdpp/pkce.js.map +1 -0
- package/dist/pdpp/redirect.d.ts +60 -0
- package/dist/pdpp/redirect.d.ts.map +1 -0
- package/dist/pdpp/redirect.js +125 -0
- package/dist/pdpp/redirect.js.map +1 -0
- package/dist/pdpp/resolve.d.ts +53 -0
- package/dist/pdpp/resolve.d.ts.map +1 -0
- package/dist/pdpp/resolve.js +218 -0
- package/dist/pdpp/resolve.js.map +1 -0
- package/dist/pdpp/review.d.ts +155 -0
- package/dist/pdpp/review.d.ts.map +1 -0
- package/dist/pdpp/review.js +142 -0
- package/dist/pdpp/review.js.map +1 -0
- package/dist/pdpp/selection.d.ts +43 -0
- package/dist/pdpp/selection.d.ts.map +1 -0
- package/dist/pdpp/selection.js +211 -0
- package/dist/pdpp/selection.js.map +1 -0
- package/dist/pdpp/store.d.ts +204 -0
- package/dist/pdpp/store.d.ts.map +1 -0
- package/dist/pdpp/store.js +501 -0
- package/dist/pdpp/store.js.map +1 -0
- package/dist/pdpp/tokens.d.ts +149 -0
- package/dist/pdpp/tokens.d.ts.map +1 -0
- package/dist/pdpp/tokens.js +387 -0
- package/dist/pdpp/tokens.js.map +1 -0
- package/dist/pdpp/types.d.ts +258 -0
- package/dist/pdpp/types.d.ts.map +1 -0
- package/dist/pdpp/types.js +40 -0
- package/dist/pdpp/types.js.map +1 -0
- package/dist/pdpp-version.d.ts +28 -0
- package/dist/pdpp-version.d.ts.map +1 -0
- package/dist/pdpp-version.js +28 -0
- package/dist/pdpp-version.js.map +1 -0
- package/dist/policy/data-read.d.ts +56 -0
- package/dist/policy/data-read.d.ts.map +1 -0
- package/dist/policy/data-read.js +176 -0
- package/dist/policy/data-read.js.map +1 -0
- package/dist/policy/data-write.d.ts +69 -0
- package/dist/policy/data-write.d.ts.map +1 -0
- package/dist/policy/data-write.js +131 -0
- package/dist/policy/data-write.js.map +1 -0
- package/dist/policy/index.d.ts +4 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/policy/index.js +4 -0
- package/dist/policy/index.js.map +1 -0
- package/dist/policy/signed-artifacts.d.ts +17 -0
- package/dist/policy/signed-artifacts.d.ts.map +1 -0
- package/dist/policy/signed-artifacts.js +110 -0
- package/dist/policy/signed-artifacts.js.map +1 -0
- package/dist/ports/index.d.ts +243 -0
- package/dist/ports/index.d.ts.map +1 -0
- package/dist/ports/index.js +7 -0
- package/dist/ports/index.js.map +1 -0
- package/dist/ports/pdpp-auth.d.ts +103 -0
- package/dist/ports/pdpp-auth.d.ts.map +1 -0
- package/dist/ports/pdpp-auth.js +37 -0
- package/dist/ports/pdpp-auth.js.map +1 -0
- package/dist/ports/pdpp-auth.test-utils.d.ts +9 -0
- package/dist/ports/pdpp-auth.test-utils.d.ts.map +1 -0
- package/dist/ports/pdpp-auth.test-utils.js +18 -0
- package/dist/ports/pdpp-auth.test-utils.js.map +1 -0
- package/dist/schemas/server-config.d.ts +190 -0
- package/dist/schemas/server-config.d.ts.map +1 -0
- package/dist/schemas/server-config.js +282 -0
- package/dist/schemas/server-config.js.map +1 -0
- package/dist/signing/index.d.ts +3 -0
- package/dist/signing/index.d.ts.map +1 -0
- package/dist/signing/index.js +3 -0
- package/dist/signing/index.js.map +1 -0
- package/dist/signing/request-signer.d.ts +20 -0
- package/dist/signing/request-signer.d.ts.map +1 -0
- package/dist/signing/request-signer.js +23 -0
- package/dist/signing/request-signer.js.map +1 -0
- package/dist/signing/signer.d.ts +40 -0
- package/dist/signing/signer.d.ts.map +1 -0
- package/dist/signing/signer.js +56 -0
- package/dist/signing/signer.js.map +1 -0
- package/dist/storage/adapters/index.d.ts +4 -0
- package/dist/storage/adapters/index.d.ts.map +1 -0
- package/dist/storage/adapters/index.js +3 -0
- package/dist/storage/adapters/index.js.map +1 -0
- package/dist/storage/adapters/interface.d.ts +57 -0
- package/dist/storage/adapters/interface.d.ts.map +1 -0
- package/dist/storage/adapters/interface.js +2 -0
- package/dist/storage/adapters/interface.js.map +1 -0
- package/dist/storage/adapters/sdk.d.ts +23 -0
- package/dist/storage/adapters/sdk.d.ts.map +1 -0
- package/dist/storage/adapters/sdk.js +73 -0
- package/dist/storage/adapters/sdk.js.map +1 -0
- package/dist/storage/adapters/vana.d.ts +12 -0
- package/dist/storage/adapters/vana.d.ts.map +1 -0
- package/dist/storage/adapters/vana.js +111 -0
- package/dist/storage/adapters/vana.js.map +1 -0
- package/dist/storage/blocks/build.d.ts +20 -0
- package/dist/storage/blocks/build.d.ts.map +1 -0
- package/dist/storage/blocks/build.js +378 -0
- package/dist/storage/blocks/build.js.map +1 -0
- package/dist/storage/blocks/cursor.d.ts +33 -0
- package/dist/storage/blocks/cursor.d.ts.map +1 -0
- package/dist/storage/blocks/cursor.js +142 -0
- package/dist/storage/blocks/cursor.js.map +1 -0
- package/dist/storage/blocks/errors.d.ts +6 -0
- package/dist/storage/blocks/errors.d.ts.map +1 -0
- package/dist/storage/blocks/errors.js +9 -0
- package/dist/storage/blocks/errors.js.map +1 -0
- package/dist/storage/blocks/index.d.ts +6 -0
- package/dist/storage/blocks/index.d.ts.map +1 -0
- package/dist/storage/blocks/index.js +5 -0
- package/dist/storage/blocks/index.js.map +1 -0
- package/dist/storage/blocks/select.d.ts +29 -0
- package/dist/storage/blocks/select.d.ts.map +1 -0
- package/dist/storage/blocks/select.js +120 -0
- package/dist/storage/blocks/select.js.map +1 -0
- package/dist/storage/blocks/types.d.ts +56 -0
- package/dist/storage/blocks/types.d.ts.map +1 -0
- package/dist/storage/blocks/types.js +2 -0
- package/dist/storage/blocks/types.js.map +1 -0
- package/dist/storage/hierarchy/index.d.ts +3 -0
- package/dist/storage/hierarchy/index.d.ts.map +1 -0
- package/dist/storage/hierarchy/index.js +2 -0
- package/dist/storage/hierarchy/index.js.map +1 -0
- package/dist/storage/hierarchy/manager.d.ts +9 -0
- package/dist/storage/hierarchy/manager.d.ts.map +1 -0
- package/dist/storage/hierarchy/manager.js +2 -0
- package/dist/storage/hierarchy/manager.js.map +1 -0
- package/dist/storage/hierarchy/paths.d.ts +11 -0
- package/dist/storage/hierarchy/paths.d.ts.map +1 -0
- package/dist/storage/hierarchy/paths.js +43 -0
- package/dist/storage/hierarchy/paths.js.map +1 -0
- package/dist/storage/index/index.d.ts +3 -0
- package/dist/storage/index/index.d.ts.map +1 -0
- package/dist/storage/index/index.js +2 -0
- package/dist/storage/index/index.js.map +1 -0
- package/dist/storage/index/manager.d.ts +63 -0
- package/dist/storage/index/manager.d.ts.map +1 -0
- package/dist/storage/index/manager.js +2 -0
- package/dist/storage/index/manager.js.map +1 -0
- package/dist/storage/index/schema.d.ts +2 -0
- package/dist/storage/index/schema.d.ts.map +1 -0
- package/dist/storage/index/schema.js +2 -0
- package/dist/storage/index/schema.js.map +1 -0
- package/dist/storage/index/types.d.ts +37 -0
- package/dist/storage/index/types.d.ts.map +1 -0
- package/dist/storage/index/types.js +2 -0
- package/dist/storage/index/types.js.map +1 -0
- package/dist/storage/pdpp-records/cursor.d.ts +27 -0
- package/dist/storage/pdpp-records/cursor.d.ts.map +1 -0
- package/dist/storage/pdpp-records/cursor.js +49 -0
- package/dist/storage/pdpp-records/cursor.js.map +1 -0
- package/dist/storage/pdpp-records/enforcement.d.ts +37 -0
- package/dist/storage/pdpp-records/enforcement.d.ts.map +1 -0
- package/dist/storage/pdpp-records/enforcement.js +79 -0
- package/dist/storage/pdpp-records/enforcement.js.map +1 -0
- package/dist/storage/pdpp-records/index.d.ts +8 -0
- package/dist/storage/pdpp-records/index.d.ts.map +1 -0
- package/dist/storage/pdpp-records/index.js +8 -0
- package/dist/storage/pdpp-records/index.js.map +1 -0
- package/dist/storage/pdpp-records/interface.d.ts +49 -0
- package/dist/storage/pdpp-records/interface.d.ts.map +1 -0
- package/dist/storage/pdpp-records/interface.js +2 -0
- package/dist/storage/pdpp-records/interface.js.map +1 -0
- package/dist/storage/pdpp-records/memory-store.d.ts +9 -0
- package/dist/storage/pdpp-records/memory-store.d.ts.map +1 -0
- package/dist/storage/pdpp-records/memory-store.js +0 -0
- package/dist/storage/pdpp-records/memory-store.js.map +1 -0
- package/dist/storage/pdpp-records/record-key.d.ts +52 -0
- package/dist/storage/pdpp-records/record-key.d.ts.map +1 -0
- package/dist/storage/pdpp-records/record-key.js +97 -0
- package/dist/storage/pdpp-records/record-key.js.map +1 -0
- package/dist/storage/pdpp-records/stream-declaration.d.ts +43 -0
- package/dist/storage/pdpp-records/stream-declaration.d.ts.map +1 -0
- package/dist/storage/pdpp-records/stream-declaration.js +17 -0
- package/dist/storage/pdpp-records/stream-declaration.js.map +1 -0
- package/dist/storage/pdpp-records/types.d.ts +93 -0
- package/dist/storage/pdpp-records/types.d.ts.map +1 -0
- package/dist/storage/pdpp-records/types.js +17 -0
- package/dist/storage/pdpp-records/types.js.map +1 -0
- package/dist/storage/preview.d.ts +12 -0
- package/dist/storage/preview.d.ts.map +1 -0
- package/dist/storage/preview.js +239 -0
- package/dist/storage/preview.js.map +1 -0
- package/dist/sync/cursor.d.ts +10 -0
- package/dist/sync/cursor.d.ts.map +1 -0
- package/dist/sync/cursor.js +2 -0
- package/dist/sync/cursor.js.map +1 -0
- package/dist/sync/data-point-feed.d.ts +35 -0
- package/dist/sync/data-point-feed.d.ts.map +1 -0
- package/dist/sync/data-point-feed.js +122 -0
- package/dist/sync/data-point-feed.js.map +1 -0
- package/dist/sync/data-point-id.d.ts +7 -0
- package/dist/sync/data-point-id.d.ts.map +1 -0
- package/dist/sync/data-point-id.js +16 -0
- package/dist/sync/data-point-id.js.map +1 -0
- package/dist/sync/delete-data-port.d.ts +50 -0
- package/dist/sync/delete-data-port.d.ts.map +1 -0
- package/dist/sync/delete-data-port.js +244 -0
- package/dist/sync/delete-data-port.js.map +1 -0
- package/dist/sync/engine/sync-manager.d.ts +58 -0
- package/dist/sync/engine/sync-manager.d.ts.map +1 -0
- package/dist/sync/engine/sync-manager.js +285 -0
- package/dist/sync/engine/sync-manager.js.map +1 -0
- package/dist/sync/index.d.ts +15 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +14 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/issues.d.ts +55 -0
- package/dist/sync/issues.d.ts.map +1 -0
- package/dist/sync/issues.js +168 -0
- package/dist/sync/issues.js.map +1 -0
- package/dist/sync/pdpp-import.d.ts +192 -0
- package/dist/sync/pdpp-import.d.ts.map +1 -0
- package/dist/sync/pdpp-import.js +422 -0
- package/dist/sync/pdpp-import.js.map +1 -0
- package/dist/sync/pending-blob-deletions.d.ts +29 -0
- package/dist/sync/pending-blob-deletions.d.ts.map +1 -0
- package/dist/sync/pending-blob-deletions.js +116 -0
- package/dist/sync/pending-blob-deletions.js.map +1 -0
- package/dist/sync/retry-memory.d.ts +33 -0
- package/dist/sync/retry-memory.d.ts.map +1 -0
- package/dist/sync/retry-memory.js +68 -0
- package/dist/sync/retry-memory.js.map +1 -0
- package/dist/sync/scope-deletions.d.ts +155 -0
- package/dist/sync/scope-deletions.d.ts.map +1 -0
- package/dist/sync/scope-deletions.js +225 -0
- package/dist/sync/scope-deletions.js.map +1 -0
- package/dist/sync/tombstone.d.ts +27 -0
- package/dist/sync/tombstone.d.ts.map +1 -0
- package/dist/sync/tombstone.js +28 -0
- package/dist/sync/tombstone.js.map +1 -0
- package/dist/sync/types.d.ts +27 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/sync/types.js +2 -0
- package/dist/sync/types.js.map +1 -0
- package/dist/sync/workers/delete.d.ts +163 -0
- package/dist/sync/workers/delete.d.ts.map +1 -0
- package/dist/sync/workers/delete.js +474 -0
- package/dist/sync/workers/delete.js.map +1 -0
- package/dist/sync/workers/download.d.ts +159 -0
- package/dist/sync/workers/download.d.ts.map +1 -0
- package/dist/sync/workers/download.js +731 -0
- package/dist/sync/workers/download.js.map +1 -0
- package/dist/sync/workers/upload.d.ts +98 -0
- package/dist/sync/workers/upload.d.ts.map +1 -0
- package/dist/sync/workers/upload.js +412 -0
- package/dist/sync/workers/upload.js.map +1 -0
- package/dist/test-utils/e2ee-fixtures.d.ts +94 -0
- package/dist/test-utils/e2ee-fixtures.d.ts.map +1 -0
- package/dist/test-utils/e2ee-fixtures.js +116 -0
- package/dist/test-utils/e2ee-fixtures.js.map +1 -0
- package/dist/test-utils/e2ee-gateway.d.ts +61 -0
- package/dist/test-utils/e2ee-gateway.d.ts.map +1 -0
- package/dist/test-utils/e2ee-gateway.js +248 -0
- package/dist/test-utils/e2ee-gateway.js.map +1 -0
- package/dist/test-utils/index.d.ts +5 -0
- package/dist/test-utils/index.d.ts.map +1 -0
- package/dist/test-utils/index.js +5 -0
- package/dist/test-utils/index.js.map +1 -0
- package/dist/test-utils/memory-storage.d.ts +12 -0
- package/dist/test-utils/memory-storage.d.ts.map +1 -0
- package/dist/test-utils/memory-storage.js +146 -0
- package/dist/test-utils/memory-storage.js.map +1 -0
- package/dist/test-utils/wallet.d.ts +47 -0
- package/dist/test-utils/wallet.d.ts.map +1 -0
- package/dist/test-utils/wallet.js +98 -0
- package/dist/test-utils/wallet.js.map +1 -0
- package/dist/write/attribution.d.ts +185 -0
- package/dist/write/attribution.d.ts.map +1 -0
- package/dist/write/attribution.js +450 -0
- package/dist/write/attribution.js.map +1 -0
- package/dist/write/authorize.d.ts +77 -0
- package/dist/write/authorize.d.ts.map +1 -0
- package/dist/write/authorize.js +109 -0
- package/dist/write/authorize.js.map +1 -0
- package/dist/write/index.d.ts +5 -0
- package/dist/write/index.d.ts.map +1 -0
- package/dist/write/index.js +5 -0
- package/dist/write/index.js.map +1 -0
- package/dist/write/route.d.ts +61 -0
- package/dist/write/route.d.ts.map +1 -0
- package/dist/write/route.js +132 -0
- package/dist/write/route.js.map +1 -0
- package/dist/write/session.d.ts +96 -0
- package/dist/write/session.d.ts.map +1 -0
- package/dist/write/session.js +136 -0
- package/dist/write/session.js.map +1 -0
- package/package.json +175 -0
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Self-signing MCP session (Option A / chatbot-first).
|
|
3
|
+
*
|
|
4
|
+
* A third-party app that holds its OWN key and a DCR grant proves control of
|
|
5
|
+
* that key ONCE — a Web3Signed handshake to `POST /mcp/session` — and the PS
|
|
6
|
+
* mints a short-lived bearer session token bound to `{ builderAddress, grantId }`.
|
|
7
|
+
* MCP tool calls then present that token as `Authorization: Bearer …`; each read
|
|
8
|
+
* authorizes as the builder via `verifyDataReadPolicy` (signer == grantee) with
|
|
9
|
+
* NO per-read signature and NO PS-held key.
|
|
10
|
+
*
|
|
11
|
+
* Contrast with the owner's-Claude flow, where the PS generates and holds a
|
|
12
|
+
* per-connection grantee key and signs reads itself. Here the app is
|
|
13
|
+
* self-custody; the PS only ever recovered its address (at handshake).
|
|
14
|
+
*/
|
|
15
|
+
import { generateMcpGrantee } from "./grantee.js";
|
|
16
|
+
import { hashConnectionToken } from "./connection-api.js";
|
|
17
|
+
import { verifyDataReadPolicy } from "../policy/data-read.js";
|
|
18
|
+
import { assertScopeNotDeleted, handleX402Cycle } from "../api/index.js";
|
|
19
|
+
import { GrantOwnerMismatchError, GrantRequiredError, GrantRevokedError, InvalidSignatureError, ProtocolError, UnregisteredBuilderError, } from "../errors/catalog.js";
|
|
20
|
+
/**
|
|
21
|
+
* KNOWN LIMITATION: in-memory only. A process restart (or a second instance)
|
|
22
|
+
* starts with an empty store, so live session tokens die with the process and
|
|
23
|
+
* the client must re-handshake. Acceptable for today's single-instance
|
|
24
|
+
* Personal Server; persist via the host's state store before multi-instance.
|
|
25
|
+
*/
|
|
26
|
+
export function createInMemoryMcpSessionStore() {
|
|
27
|
+
const byHash = new Map();
|
|
28
|
+
return {
|
|
29
|
+
async create(record) {
|
|
30
|
+
byHash.set(record.tokenHash, record);
|
|
31
|
+
},
|
|
32
|
+
async getByTokenHash(tokenHash) {
|
|
33
|
+
const record = byHash.get(tokenHash);
|
|
34
|
+
if (!record)
|
|
35
|
+
return null;
|
|
36
|
+
if (record.expiresAtMs <= Date.now()) {
|
|
37
|
+
byHash.delete(tokenHash);
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
return record;
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* KNOWN LIMITATION: in-memory only. A process restart (or a second instance)
|
|
46
|
+
* forgets consumed proof ids, so a still-valid handshake proof could be
|
|
47
|
+
* replayed once against the fresh process. The blast radius is bounded by the
|
|
48
|
+
* proof's own expiry, and today's Personal Server runs single-instance, so we
|
|
49
|
+
* document rather than persist. Persist via the host's state store (do not
|
|
50
|
+
* invent a new storage layer) before running multiple instances.
|
|
51
|
+
*/
|
|
52
|
+
export function createInMemoryMcpProofReplayStore() {
|
|
53
|
+
const seen = new Map();
|
|
54
|
+
return {
|
|
55
|
+
async consume(proofId, expiresAtMs) {
|
|
56
|
+
const now = Date.now();
|
|
57
|
+
for (const [id, exp] of seen) {
|
|
58
|
+
if (exp <= now)
|
|
59
|
+
seen.delete(id);
|
|
60
|
+
}
|
|
61
|
+
const existing = seen.get(proofId);
|
|
62
|
+
if (existing !== undefined && existing > now)
|
|
63
|
+
return true;
|
|
64
|
+
seen.set(proofId, expiresAtMs);
|
|
65
|
+
return false;
|
|
66
|
+
},
|
|
67
|
+
async release(proofId) {
|
|
68
|
+
seen.delete(proofId);
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
const DEFAULT_SESSION_TTL_MS = 60 * 60 * 1000;
|
|
73
|
+
/**
|
|
74
|
+
* Validate the handshake identity and mint a session token. Per-scope / expiry
|
|
75
|
+
* enforcement is authoritative at read time (`verifyDataReadPolicy`), so this
|
|
76
|
+
* does the minimal checks that give a clear handshake error: builder registered,
|
|
77
|
+
* grant exists + not revoked, and grantee == builder.
|
|
78
|
+
*/
|
|
79
|
+
export async function createMcpSession(input, options) {
|
|
80
|
+
const builder = await options.authSessionVerifier.getBuilder(input.builderAddress);
|
|
81
|
+
if (!builder)
|
|
82
|
+
throw new UnregisteredBuilderError();
|
|
83
|
+
const grant = await options.grantVerifier.getGrant(input.grantId);
|
|
84
|
+
if (!grant) {
|
|
85
|
+
throw new GrantRequiredError({
|
|
86
|
+
reason: "Grant not found",
|
|
87
|
+
grantId: input.grantId,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
if (grant.revokedAt !== null) {
|
|
91
|
+
throw new GrantRevokedError({ grantId: grant.id });
|
|
92
|
+
}
|
|
93
|
+
if (builder.id.toLowerCase() !== grant.granteeId.toLowerCase()) {
|
|
94
|
+
throw new InvalidSignatureError({
|
|
95
|
+
reason: "Handshake signer is not the grant builder",
|
|
96
|
+
expected: grant.granteeId,
|
|
97
|
+
actual: input.builderAddress,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
// Ownership binding — the grant MUST have been issued by THIS server's
|
|
101
|
+
// owner (same check as `verifyDataReadPolicy`, which stays authoritative at
|
|
102
|
+
// read time). A wrong-owner grant can never become valid for this server,
|
|
103
|
+
// so reject at handshake with a clear error instead of minting a token
|
|
104
|
+
// whose every read would 403. Fail closed on a grantor-less grant: gateway
|
|
105
|
+
// responses are untrusted runtime data, despite their type.
|
|
106
|
+
if (!grant.grantorAddress ||
|
|
107
|
+
grant.grantorAddress.toLowerCase() !== options.serverOwner.toLowerCase()) {
|
|
108
|
+
throw new GrantOwnerMismatchError({
|
|
109
|
+
grantId: grant.id,
|
|
110
|
+
expected: options.serverOwner,
|
|
111
|
+
actual: grant.grantorAddress ?? null,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
// Prepare the token first (deterministic, can't meaningfully fail) so the
|
|
115
|
+
// only fallible step after consuming the proof is persistence.
|
|
116
|
+
const token = options.randomToken();
|
|
117
|
+
const tokenHash = await hashConnectionToken(token);
|
|
118
|
+
const ttlMs = options.ttlMs ?? DEFAULT_SESSION_TTL_MS;
|
|
119
|
+
const nowMs = options.now?.() ?? Date.now();
|
|
120
|
+
// Replay guard: a still-valid handshake proof must mint at most one token.
|
|
121
|
+
// Consume ONLY after identity validation, and roll the reservation back if
|
|
122
|
+
// persistence fails — so a transient failure never burns a valid proof.
|
|
123
|
+
// consume() is an atomic check-and-set, so concurrent duplicates still
|
|
124
|
+
// resolve to exactly one winner.
|
|
125
|
+
const usingReplayGuard = Boolean(input.proof && options.replayStore);
|
|
126
|
+
if (input.proof && options.replayStore) {
|
|
127
|
+
const replayed = await options.replayStore.consume(input.proof.id, input.proof.expiresAtMs);
|
|
128
|
+
if (replayed) {
|
|
129
|
+
throw new ProtocolError(401, "MCP_SESSION_PROOF_REPLAY", "Handshake proof already used; sign a fresh proof");
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
try {
|
|
133
|
+
await options.store.create({
|
|
134
|
+
tokenHash,
|
|
135
|
+
builderAddress: input.builderAddress,
|
|
136
|
+
grantId: grant.id,
|
|
137
|
+
scopes: grant.scopes ?? [],
|
|
138
|
+
createdAt: new Date(nowMs).toISOString(),
|
|
139
|
+
expiresAtMs: nowMs + ttlMs,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
// Persistence failed — release the reservation so a legitimate retry with
|
|
144
|
+
// the same still-valid proof isn't rejected as a replay.
|
|
145
|
+
if (usingReplayGuard && input.proof && options.replayStore?.release) {
|
|
146
|
+
await options.replayStore.release(input.proof.id);
|
|
147
|
+
}
|
|
148
|
+
throw err;
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
accessToken: token,
|
|
152
|
+
expiresInSeconds: Math.floor(ttlMs / 1000),
|
|
153
|
+
grantId: grant.id,
|
|
154
|
+
scopes: grant.scopes ?? [],
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
export function createMcpSessionAuthPort(params) {
|
|
158
|
+
return {
|
|
159
|
+
async authorizeOwner() {
|
|
160
|
+
throw new InvalidSignatureError({
|
|
161
|
+
reason: "MCP session cannot perform owner operations",
|
|
162
|
+
});
|
|
163
|
+
},
|
|
164
|
+
async authorizeBuilderList() {
|
|
165
|
+
// Allowed: the session builder may list its own granted scopes.
|
|
166
|
+
},
|
|
167
|
+
async authorizeBuilderRead(input) {
|
|
168
|
+
const grant = await verifyDataReadPolicy({
|
|
169
|
+
signer: params.builderAddress,
|
|
170
|
+
grantId: params.grantId,
|
|
171
|
+
requestedScope: input.scope,
|
|
172
|
+
fileId: input.fileId,
|
|
173
|
+
serverOwner: params.serverOwner,
|
|
174
|
+
}, {
|
|
175
|
+
authSessionVerifier: params.authSessionVerifier,
|
|
176
|
+
grantVerifier: params.grantVerifier,
|
|
177
|
+
runtimeAvailability: params.runtimeAvailability,
|
|
178
|
+
});
|
|
179
|
+
// Paid session: enforce x402 per read (reuses the exact HTTP cycle). The
|
|
180
|
+
// read client forwards the app's `X-PAYMENT` proof on `input.request`.
|
|
181
|
+
if (params.payment) {
|
|
182
|
+
// Settlement happens here, ahead of the HTTP handler's own deletion
|
|
183
|
+
// gate, so the gate must run here too: never challenge or settle a
|
|
184
|
+
// read of a scope the owner deleted.
|
|
185
|
+
const deps = params.payment.dataApiDeps;
|
|
186
|
+
await assertScopeNotDeleted(deps, input.scope, deps.storage.findEntry({
|
|
187
|
+
scope: input.scope,
|
|
188
|
+
fileId: input.fileId,
|
|
189
|
+
at: input.at,
|
|
190
|
+
}));
|
|
191
|
+
const cycle = await handleX402Cycle({
|
|
192
|
+
deps: params.payment.dataApiDeps,
|
|
193
|
+
request: input.request,
|
|
194
|
+
scope: input.scope,
|
|
195
|
+
fileIdParam: input.fileId,
|
|
196
|
+
// Bind the payment to the exact data version being served (a
|
|
197
|
+
// cursor-pinned or `at=`-pinned read may serve an older version
|
|
198
|
+
// than the latest entry) — otherwise the challenge/accessRecord
|
|
199
|
+
// would settle against different bytes than were returned.
|
|
200
|
+
atParam: input.at,
|
|
201
|
+
grantId: params.grantId,
|
|
202
|
+
builder: params.builderAddress,
|
|
203
|
+
gateway: params.payment.gateway,
|
|
204
|
+
gatewayConfig: params.payment.gatewayConfig,
|
|
205
|
+
gatewayUrl: params.payment.gatewayUrl,
|
|
206
|
+
});
|
|
207
|
+
if (cycle.kind === "challenge") {
|
|
208
|
+
throw new ProtocolError(402, "PAYMENT_REQUIRED", "Payment required for this read", { challenge: cycle.body });
|
|
209
|
+
}
|
|
210
|
+
if (cycle.kind === "gateway-error") {
|
|
211
|
+
throw new ProtocolError(cycle.status, "PAYMENT_GATEWAY_ERROR", "Payment gateway rejected the payment", { body: cycle.body });
|
|
212
|
+
}
|
|
213
|
+
// cycle.kind === "ok" — payment settled; proceed to read.
|
|
214
|
+
}
|
|
215
|
+
return { builder: params.builderAddress, grantId: grant.id };
|
|
216
|
+
},
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Build a synthetic connection record + a throwaway signing account for the
|
|
221
|
+
* streamable `/mcp` handler. The MCP read client still signs its in-process
|
|
222
|
+
* request (the read path requires an account), but the session auth port
|
|
223
|
+
* ignores that signature and authorizes as the real builder — so this key is
|
|
224
|
+
* disposable and never leaves the process.
|
|
225
|
+
*/
|
|
226
|
+
export function buildMcpSessionConnection(session, options = {}) {
|
|
227
|
+
const ephemeral = generateMcpGrantee();
|
|
228
|
+
const nowIso = new Date(options.now?.() ?? Date.now()).toISOString();
|
|
229
|
+
const connection = {
|
|
230
|
+
id: options.id ?? `mcp-session-${session.grantId}`,
|
|
231
|
+
displayName: "MCP session",
|
|
232
|
+
granteeAddress: session.builderAddress,
|
|
233
|
+
granteePublicKey: ephemeral.key.publicKey,
|
|
234
|
+
encryptedGranteePrivateKey: ephemeral.key.encryptedPrivateKey,
|
|
235
|
+
tokenHash: "",
|
|
236
|
+
status: "approved",
|
|
237
|
+
grants: [{ grantId: session.grantId, scopes: session.scopes }],
|
|
238
|
+
createdAt: nowIso,
|
|
239
|
+
approvedAt: nowIso,
|
|
240
|
+
};
|
|
241
|
+
return { connection, account: ephemeral.account };
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory `McpConnectionStore` — Phase 1 default for tests and as a fallback
|
|
3
|
+
* runtime store. Production Web PS Lite is expected to back this with the same
|
|
4
|
+
* IndexedDB state mechanism used for server-identity and token storage.
|
|
5
|
+
*
|
|
6
|
+
* The PS-Lite browser adapter for this port lives in
|
|
7
|
+
* `packages/lite/src/mcp-store.ts` (not part of this change set yet) — that
|
|
8
|
+
* adapter mirrors `createIndexedDbPsLiteTokenStore()`.
|
|
9
|
+
*/
|
|
10
|
+
import type { McpConnectionStore, McpOAuthAuthorizationStore } from "./types.js";
|
|
11
|
+
export declare function createInMemoryMcpConnectionStore(): McpConnectionStore;
|
|
12
|
+
export declare function createInMemoryMcpOAuthAuthorizationStore(): McpOAuthAuthorizationStore;
|
|
13
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/mcp/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAEV,kBAAkB,EAElB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAGpB,wBAAgB,gCAAgC,IAAI,kBAAkB,CAiErE;AAED,wBAAgB,wCAAwC,IAAI,0BAA0B,CAiDrF"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory `McpConnectionStore` — Phase 1 default for tests and as a fallback
|
|
3
|
+
* runtime store. Production Web PS Lite is expected to back this with the same
|
|
4
|
+
* IndexedDB state mechanism used for server-identity and token storage.
|
|
5
|
+
*
|
|
6
|
+
* The PS-Lite browser adapter for this port lives in
|
|
7
|
+
* `packages/lite/src/mcp-store.ts` (not part of this change set yet) — that
|
|
8
|
+
* adapter mirrors `createIndexedDbPsLiteTokenStore()`.
|
|
9
|
+
*/
|
|
10
|
+
import { isMcpTokenExpired, matchesMcpRefreshHash } from "./token-expiry.js";
|
|
11
|
+
export function createInMemoryMcpConnectionStore() {
|
|
12
|
+
const byId = new Map();
|
|
13
|
+
const byTokenHash = new Map(); // tokenHash → id
|
|
14
|
+
return {
|
|
15
|
+
async create(record) {
|
|
16
|
+
if (byId.has(record.id)) {
|
|
17
|
+
throw new Error(`mcp connection ${record.id} already exists`);
|
|
18
|
+
}
|
|
19
|
+
byId.set(record.id, { ...record });
|
|
20
|
+
byTokenHash.set(record.tokenHash, record.id);
|
|
21
|
+
},
|
|
22
|
+
async list() {
|
|
23
|
+
return Array.from(byId.values()).map((r) => ({ ...r }));
|
|
24
|
+
},
|
|
25
|
+
async getById(id) {
|
|
26
|
+
const record = byId.get(id);
|
|
27
|
+
return record ? { ...record } : null;
|
|
28
|
+
},
|
|
29
|
+
async getByTokenHash(tokenHash) {
|
|
30
|
+
const id = byTokenHash.get(tokenHash);
|
|
31
|
+
if (!id)
|
|
32
|
+
return null;
|
|
33
|
+
const record = byId.get(id);
|
|
34
|
+
if (!record)
|
|
35
|
+
return null;
|
|
36
|
+
if (record.status !== "approved")
|
|
37
|
+
return null;
|
|
38
|
+
if (isMcpTokenExpired(record))
|
|
39
|
+
return null;
|
|
40
|
+
return { ...record };
|
|
41
|
+
},
|
|
42
|
+
async getByRefreshTokenHash(refreshTokenHash) {
|
|
43
|
+
// Scanned, not indexed: a presented token may match either the current
|
|
44
|
+
// or the rotated-out hash, and a store holds a handful of connections.
|
|
45
|
+
const record = Array.from(byId.values()).find((candidate) => matchesMcpRefreshHash(candidate, refreshTokenHash));
|
|
46
|
+
return record ? { ...record } : null;
|
|
47
|
+
},
|
|
48
|
+
async mutate(id, update) {
|
|
49
|
+
const record = byId.get(id);
|
|
50
|
+
if (!record)
|
|
51
|
+
return null;
|
|
52
|
+
const updated = update(structuredClone(record));
|
|
53
|
+
if (updated.tokenHash !== record.tokenHash) {
|
|
54
|
+
byTokenHash.delete(record.tokenHash);
|
|
55
|
+
byTokenHash.set(updated.tokenHash, id);
|
|
56
|
+
}
|
|
57
|
+
byId.set(id, structuredClone(updated));
|
|
58
|
+
return structuredClone(updated);
|
|
59
|
+
},
|
|
60
|
+
async update(id, patch) {
|
|
61
|
+
const record = byId.get(id);
|
|
62
|
+
if (!record)
|
|
63
|
+
return null;
|
|
64
|
+
if (patch.tokenHash && patch.tokenHash !== record.tokenHash) {
|
|
65
|
+
byTokenHash.delete(record.tokenHash);
|
|
66
|
+
byTokenHash.set(patch.tokenHash, id);
|
|
67
|
+
}
|
|
68
|
+
const updated = { ...record, ...patch };
|
|
69
|
+
byId.set(id, updated);
|
|
70
|
+
return { ...updated };
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export function createInMemoryMcpOAuthAuthorizationStore() {
|
|
75
|
+
const byId = new Map();
|
|
76
|
+
const byCodeHash = new Map(); // authorizationCodeHash -> id
|
|
77
|
+
return {
|
|
78
|
+
async create(record) {
|
|
79
|
+
if (byId.has(record.id)) {
|
|
80
|
+
throw new Error(`mcp oauth authorization ${record.id} already exists`);
|
|
81
|
+
}
|
|
82
|
+
byId.set(record.id, { ...record });
|
|
83
|
+
if (record.authorizationCodeHash) {
|
|
84
|
+
byCodeHash.set(record.authorizationCodeHash, record.id);
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
async getById(id) {
|
|
88
|
+
const record = byId.get(id);
|
|
89
|
+
return record ? { ...record } : null;
|
|
90
|
+
},
|
|
91
|
+
async getByCodeHash(authorizationCodeHash) {
|
|
92
|
+
const id = byCodeHash.get(authorizationCodeHash);
|
|
93
|
+
if (!id)
|
|
94
|
+
return null;
|
|
95
|
+
const record = byId.get(id);
|
|
96
|
+
return record ? { ...record } : null;
|
|
97
|
+
},
|
|
98
|
+
async update(id, patch) {
|
|
99
|
+
const record = byId.get(id);
|
|
100
|
+
if (!record)
|
|
101
|
+
return null;
|
|
102
|
+
if (patch.authorizationCodeHash &&
|
|
103
|
+
patch.authorizationCodeHash !== record.authorizationCodeHash) {
|
|
104
|
+
byCodeHash.set(patch.authorizationCodeHash, id);
|
|
105
|
+
}
|
|
106
|
+
const updated = { ...record, ...patch };
|
|
107
|
+
byId.set(id, updated);
|
|
108
|
+
return { ...updated };
|
|
109
|
+
},
|
|
110
|
+
async delete(id) {
|
|
111
|
+
const record = byId.get(id);
|
|
112
|
+
if (record?.authorizationCodeHash) {
|
|
113
|
+
byCodeHash.delete(record.authorizationCodeHash);
|
|
114
|
+
}
|
|
115
|
+
byId.delete(id);
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/mcp/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lifetime and lookup policy for the two MCP OAuth credentials — one policy,
|
|
3
|
+
* shared by every store that resolves a token, so the fleet and local paths
|
|
4
|
+
* cannot diverge.
|
|
5
|
+
*/
|
|
6
|
+
import type { McpConnectionRecord } from "./types.js";
|
|
7
|
+
/**
|
|
8
|
+
* 1 h. Short because the bearer is replayable and the store cannot revoke an
|
|
9
|
+
* already-issued one; the refresh grant below is what keeps the owner from
|
|
10
|
+
* re-consenting hourly.
|
|
11
|
+
*/
|
|
12
|
+
export declare const MCP_TOKEN_TTL_MS: number;
|
|
13
|
+
/**
|
|
14
|
+
* 7 d. The refresh token is single-use and rotates on every exchange, so its
|
|
15
|
+
* lifetime bounds how long a connection survives without the owner touching
|
|
16
|
+
* it — not how long a leaked credential is usable. A week keeps an abandoned
|
|
17
|
+
* connection from lingering a month; an owner who uses the connection weekly
|
|
18
|
+
* never re-consents.
|
|
19
|
+
*/
|
|
20
|
+
export declare const MCP_REFRESH_TTL_MS: number;
|
|
21
|
+
/** ISO expiry for an access token minted at `nowMs`. */
|
|
22
|
+
export declare function mcpTokenExpiry(nowMs: number): string;
|
|
23
|
+
/** ISO expiry for a refresh token minted at `nowMs`. */
|
|
24
|
+
export declare function mcpRefreshExpiry(nowMs: number): string;
|
|
25
|
+
/**
|
|
26
|
+
* Fail closed. A record written before `tokenExpiresAt` existed carries no
|
|
27
|
+
* proven lifetime, so it reads as expired: connections issued before this
|
|
28
|
+
* change need one re-consent rather than living forever.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isMcpTokenExpired(record: Pick<McpConnectionRecord, "tokenExpiresAt">, nowMs?: number): boolean;
|
|
31
|
+
/** Fail closed, same rule: no proven lifetime means no refresh. */
|
|
32
|
+
export declare function isMcpRefreshExpired(record: Pick<McpConnectionRecord, "refreshExpiresAt">, nowMs?: number): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* True when `hash` is this record's current or rotated-out refresh hash. Every
|
|
35
|
+
* store resolves a refresh token through this one predicate.
|
|
36
|
+
*/
|
|
37
|
+
export declare function matchesMcpRefreshHash(record: Pick<McpConnectionRecord, "refreshTokenHash" | "previousRefreshTokenHash">, hash: string): boolean;
|
|
38
|
+
//# sourceMappingURL=token-expiry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-expiry.d.ts","sourceRoot":"","sources":["../../src/mcp/token-expiry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAiB,CAAC;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,QAA0B,CAAC;AAE1D,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,EACnD,KAAK,GAAE,MAAmB,GACzB,OAAO,CAET;AAED,mEAAmE;AACnE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,EACrD,KAAK,GAAE,MAAmB,GACzB,OAAO,CAET;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,IAAI,CACV,mBAAmB,EACnB,kBAAkB,GAAG,0BAA0B,CAChD,EACD,IAAI,EAAE,MAAM,GACX,OAAO,CAMT"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lifetime and lookup policy for the two MCP OAuth credentials — one policy,
|
|
3
|
+
* shared by every store that resolves a token, so the fleet and local paths
|
|
4
|
+
* cannot diverge.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 1 h. Short because the bearer is replayable and the store cannot revoke an
|
|
8
|
+
* already-issued one; the refresh grant below is what keeps the owner from
|
|
9
|
+
* re-consenting hourly.
|
|
10
|
+
*/
|
|
11
|
+
export const MCP_TOKEN_TTL_MS = 60 * 60 * 1000;
|
|
12
|
+
/**
|
|
13
|
+
* 7 d. The refresh token is single-use and rotates on every exchange, so its
|
|
14
|
+
* lifetime bounds how long a connection survives without the owner touching
|
|
15
|
+
* it — not how long a leaked credential is usable. A week keeps an abandoned
|
|
16
|
+
* connection from lingering a month; an owner who uses the connection weekly
|
|
17
|
+
* never re-consents.
|
|
18
|
+
*/
|
|
19
|
+
export const MCP_REFRESH_TTL_MS = 7 * 24 * 60 * 60 * 1000;
|
|
20
|
+
/** ISO expiry for an access token minted at `nowMs`. */
|
|
21
|
+
export function mcpTokenExpiry(nowMs) {
|
|
22
|
+
return new Date(nowMs + MCP_TOKEN_TTL_MS).toISOString();
|
|
23
|
+
}
|
|
24
|
+
/** ISO expiry for a refresh token minted at `nowMs`. */
|
|
25
|
+
export function mcpRefreshExpiry(nowMs) {
|
|
26
|
+
return new Date(nowMs + MCP_REFRESH_TTL_MS).toISOString();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Fail closed. A record written before `tokenExpiresAt` existed carries no
|
|
30
|
+
* proven lifetime, so it reads as expired: connections issued before this
|
|
31
|
+
* change need one re-consent rather than living forever.
|
|
32
|
+
*/
|
|
33
|
+
export function isMcpTokenExpired(record, nowMs = Date.now()) {
|
|
34
|
+
return isExpired(record.tokenExpiresAt, nowMs);
|
|
35
|
+
}
|
|
36
|
+
/** Fail closed, same rule: no proven lifetime means no refresh. */
|
|
37
|
+
export function isMcpRefreshExpired(record, nowMs = Date.now()) {
|
|
38
|
+
return isExpired(record.refreshExpiresAt, nowMs);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* True when `hash` is this record's current or rotated-out refresh hash. Every
|
|
42
|
+
* store resolves a refresh token through this one predicate.
|
|
43
|
+
*/
|
|
44
|
+
export function matchesMcpRefreshHash(record, hash) {
|
|
45
|
+
if (!hash)
|
|
46
|
+
return false;
|
|
47
|
+
return (record.refreshTokenHash === hash || record.previousRefreshTokenHash === hash);
|
|
48
|
+
}
|
|
49
|
+
function isExpired(expiresAt, nowMs) {
|
|
50
|
+
if (!expiresAt)
|
|
51
|
+
return true;
|
|
52
|
+
const expiry = Date.parse(expiresAt);
|
|
53
|
+
return !Number.isFinite(expiry) || expiry <= nowMs;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=token-expiry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-expiry.js","sourceRoot":"","sources":["../../src/mcp/token-expiry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE1D,wDAAwD;AACxD,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAO,IAAI,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1D,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,IAAI,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAmD,EACnD,QAAgB,IAAI,CAAC,GAAG,EAAE;IAE1B,OAAO,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,mBAAmB,CACjC,MAAqD,EACrD,QAAgB,IAAI,CAAC,GAAG,EAAE;IAE1B,OAAO,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAGC,EACD,IAAY;IAEZ,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,OAAO,CACL,MAAM,CAAC,gBAAgB,KAAK,IAAI,IAAI,MAAM,CAAC,wBAAwB,KAAK,IAAI,CAC7E,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,SAA6B,EAAE,KAAa;IAC7D,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,KAAK,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tool surface. Phase 1 / §4 of 260604-PLAN-vana-mcp-personal-server.md.
|
|
3
|
+
*
|
|
4
|
+
* Read-only, small, and only over scopes that the connection's grants cover.
|
|
5
|
+
* No write tools. No grant-approval tools. No raw owner/admin status tools.
|
|
6
|
+
*
|
|
7
|
+
* Every tool that returns data first picks a covering grant from the
|
|
8
|
+
* connection's grant list, signs a Web3Signed request as the per-connection
|
|
9
|
+
* grantee, and uses the bounded sidecar read path — so reads are grant-gated,
|
|
10
|
+
* access-logged, and safe for large scopes.
|
|
11
|
+
*/
|
|
12
|
+
import { z } from "zod";
|
|
13
|
+
import { type McpConnectionRecord } from "./types.js";
|
|
14
|
+
import type { McpDataReadClient } from "./read-client.js";
|
|
15
|
+
import type { McpActivityRecorder } from "./activity.js";
|
|
16
|
+
export interface McpToolContext {
|
|
17
|
+
connection: McpConnectionRecord;
|
|
18
|
+
readClient: McpDataReadClient;
|
|
19
|
+
activityRecorder?: McpActivityRecorder;
|
|
20
|
+
requestScopeAccess?(input: {
|
|
21
|
+
scopes: string[];
|
|
22
|
+
reason?: string;
|
|
23
|
+
}): Promise<{
|
|
24
|
+
connection: McpConnectionRecord;
|
|
25
|
+
requestRecorded: boolean;
|
|
26
|
+
}>;
|
|
27
|
+
}
|
|
28
|
+
export type McpToolResultContent = {
|
|
29
|
+
type: "text";
|
|
30
|
+
text: string;
|
|
31
|
+
} | {
|
|
32
|
+
type: "resource_link";
|
|
33
|
+
uri: string;
|
|
34
|
+
name: string;
|
|
35
|
+
title?: string;
|
|
36
|
+
description?: string;
|
|
37
|
+
mimeType?: string;
|
|
38
|
+
size?: number;
|
|
39
|
+
} | {
|
|
40
|
+
type: "resource";
|
|
41
|
+
resource: {
|
|
42
|
+
uri: string;
|
|
43
|
+
mimeType?: string;
|
|
44
|
+
blob: string;
|
|
45
|
+
_meta?: Record<string, unknown>;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
export interface McpToolResult {
|
|
49
|
+
content: McpToolResultContent[];
|
|
50
|
+
isError?: boolean;
|
|
51
|
+
structuredContent?: Record<string, unknown>;
|
|
52
|
+
[key: string]: unknown;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Zod raw-shape input schema. The SDK's `registerTool` accepts this and
|
|
56
|
+
* derives a JSON schema for clients.
|
|
57
|
+
*/
|
|
58
|
+
export type McpToolInputShape = Record<string, z.ZodTypeAny>;
|
|
59
|
+
export interface McpToolDefinition {
|
|
60
|
+
name: string;
|
|
61
|
+
title: string;
|
|
62
|
+
description: string;
|
|
63
|
+
inputSchema: McpToolInputShape;
|
|
64
|
+
handler(args: Record<string, unknown>, ctx: McpToolContext): Promise<McpToolResult>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Hard ceiling the MCP dispatcher enforces on any tool call (see
|
|
68
|
+
* `clampToolTimeout` in `server.ts`, which imports this).
|
|
69
|
+
*
|
|
70
|
+
* Tools must never advertise a larger `timeoutMs` than the dispatcher allows: a
|
|
71
|
+
* client that trusts the advertised maximum gets killed with a hard
|
|
72
|
+
* `tool_timeout` instead of the graceful "budget exhausted, here are partial
|
|
73
|
+
* results plus nextSearchCursor" path the tools implement.
|
|
74
|
+
*/
|
|
75
|
+
export declare const MAX_MCP_TOOL_TIMEOUT_MS = 90000;
|
|
76
|
+
export declare function parseScopeAccessRequestArguments(value: unknown): {
|
|
77
|
+
scopes: string[];
|
|
78
|
+
reason?: string;
|
|
79
|
+
} | null;
|
|
80
|
+
/**
|
|
81
|
+
* Resolve a concrete requested scope to a covering grant id from the
|
|
82
|
+
* connection's approved grants. A scope is "covered" when an approved grant's
|
|
83
|
+
* scopes either contains the exact scope or contains a wildcard like
|
|
84
|
+
* `instagram.*` that matches a concrete child scope like `instagram.profile`.
|
|
85
|
+
*
|
|
86
|
+
* Mirrors `scopeCoveredByGrant` semantics from `policy/data-read.ts` so the
|
|
87
|
+
* tool surface never offers Claude a scope its grant won't actually pass
|
|
88
|
+
* server-side.
|
|
89
|
+
*/
|
|
90
|
+
export declare function resolveGrantForScope(connection: McpConnectionRecord, scope: string): {
|
|
91
|
+
grantId: string;
|
|
92
|
+
scopes: string[];
|
|
93
|
+
} | null;
|
|
94
|
+
export declare const MCP_TOOLS: readonly McpToolDefinition[];
|
|
95
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AASzD,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,mBAAmB,CAAC;IAChC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;IACvC,kBAAkB,CAAC,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QACzE,UAAU,EAAE,mBAAmB,CAAC;QAChC,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC,CAAC;CACJ;AAED,MAAM,MAAM,oBAAoB,GAC5B;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC;CACH,CAAC;AAEN,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAG5C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,OAAO,CACL,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,aAAa,CAAC,CAAC;CAC3B;AAqGD;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAmD9C,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,OAAO,GACb;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAO9C;AAkBD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,mBAAmB,EAC/B,KAAK,EAAE,MAAM,GACZ;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAkB9C;AAs+CD,eAAO,MAAM,SAAS,EAAE,SAAS,iBAAiB,EAQxC,CAAC"}
|