@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,331 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recompute scheduler: marks registrations stale when one of their source
|
|
3
|
+
* scopes changes and runs the compute when someone actually asks for the
|
|
4
|
+
* answer, one in flight per question. Timers and the clock are injectable
|
|
5
|
+
* so tests drive it deterministically.
|
|
6
|
+
*
|
|
7
|
+
* Compute is just-in-time, not preemptive. A source refresh only marks the
|
|
8
|
+
* answer stale; the recompute happens on the next authorized demand (a read
|
|
9
|
+
* of the derived scope, the reader-facing status route, or an explicit
|
|
10
|
+
* `POST /questions/:id/recompute`). Otherwise the inference bill would
|
|
11
|
+
* scale with how often the owner's sources refresh rather than with how
|
|
12
|
+
* often anyone reads the answer.
|
|
13
|
+
*/
|
|
14
|
+
import { computeDataPointId } from "../sync/data-point-id.js";
|
|
15
|
+
const DEFAULT_RETRY_DELAYS_MS = [60_000, 300_000, 1_800_000];
|
|
16
|
+
/**
|
|
17
|
+
* Structural check on the compute callback's resolved value: retry is only
|
|
18
|
+
* for a failed outcome whose stored class is the one transient kind. A
|
|
19
|
+
* callback that resolves anything else (older wiring, tests) never retries.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* A compute skipped because the runtime is unavailable (PS-Lite with the
|
|
23
|
+
* hosting tab inactive). During a retry chain this must not end the chain:
|
|
24
|
+
* nothing else would ever reschedule a failed question.
|
|
25
|
+
*/
|
|
26
|
+
function isRuntimeSkipOutcome(outcome) {
|
|
27
|
+
if (typeof outcome !== "object" || outcome === null)
|
|
28
|
+
return false;
|
|
29
|
+
const shaped = outcome;
|
|
30
|
+
return shaped.status === "skipped" && shaped.reason === "runtime-unavailable";
|
|
31
|
+
}
|
|
32
|
+
function isTransientFailureOutcome(outcome) {
|
|
33
|
+
if (typeof outcome !== "object" || outcome === null)
|
|
34
|
+
return false;
|
|
35
|
+
const shaped = outcome;
|
|
36
|
+
return (shaped.status === "failed" &&
|
|
37
|
+
shaped.registration?.errorCode === "inference_unavailable");
|
|
38
|
+
}
|
|
39
|
+
const defaultTimers = {
|
|
40
|
+
setTimeout: (callback, ms) => setTimeout(callback, ms),
|
|
41
|
+
clearTimeout: (handle) => clearTimeout(handle),
|
|
42
|
+
};
|
|
43
|
+
export function createRecomputeScheduler(options) {
|
|
44
|
+
const debounceMs = options.debounceMs ?? 5_000;
|
|
45
|
+
const retryDelaysMs = options.retryDelaysMs ?? DEFAULT_RETRY_DELAYS_MS;
|
|
46
|
+
const timers = options.timers ?? defaultTimers;
|
|
47
|
+
const now = options.now ?? (() => new Date());
|
|
48
|
+
const states = new Map();
|
|
49
|
+
const pending = new Set();
|
|
50
|
+
let stopped = false;
|
|
51
|
+
// Distinguishes the first start() (which must reschedule) from a
|
|
52
|
+
// redundant one while already running (which must not).
|
|
53
|
+
let started = false;
|
|
54
|
+
function track(promise) {
|
|
55
|
+
pending.add(promise);
|
|
56
|
+
const done = () => pending.delete(promise);
|
|
57
|
+
promise.then(done, done);
|
|
58
|
+
return promise;
|
|
59
|
+
}
|
|
60
|
+
function warn(payload, message) {
|
|
61
|
+
options.logger?.warn?.(payload, message);
|
|
62
|
+
}
|
|
63
|
+
function stateFor(questionId) {
|
|
64
|
+
let state = states.get(questionId);
|
|
65
|
+
if (!state) {
|
|
66
|
+
state = {
|
|
67
|
+
timer: null,
|
|
68
|
+
running: null,
|
|
69
|
+
rerun: false,
|
|
70
|
+
retryAttempts: 0,
|
|
71
|
+
retryAtMs: null,
|
|
72
|
+
retryScheduled: false,
|
|
73
|
+
retryRunning: false,
|
|
74
|
+
sourceChangedDuringRun: false,
|
|
75
|
+
};
|
|
76
|
+
states.set(questionId, state);
|
|
77
|
+
}
|
|
78
|
+
return state;
|
|
79
|
+
}
|
|
80
|
+
function run(questionId) {
|
|
81
|
+
if (stopped)
|
|
82
|
+
return;
|
|
83
|
+
const state = stateFor(questionId);
|
|
84
|
+
if (state.running) {
|
|
85
|
+
// One in flight per question; a change during the run means the
|
|
86
|
+
// result is already stale, so run once more when it finishes.
|
|
87
|
+
state.rerun = true;
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
state.running = track(Promise.resolve()
|
|
91
|
+
.then(() => options.compute(questionId))
|
|
92
|
+
.then((outcome) => outcome, (err) => {
|
|
93
|
+
warn({
|
|
94
|
+
questionId,
|
|
95
|
+
error: err instanceof Error ? err.name : String(err),
|
|
96
|
+
}, "Derivative compute threw");
|
|
97
|
+
return undefined;
|
|
98
|
+
})
|
|
99
|
+
.then(async (outcome) => {
|
|
100
|
+
state.running = null;
|
|
101
|
+
state.retryAtMs = null;
|
|
102
|
+
state.retryRunning = false;
|
|
103
|
+
// Consumed here whichever branch wins: a rerun and a retry both
|
|
104
|
+
// recompute from current data, so only the branch that schedules
|
|
105
|
+
// nothing has to put the question back to `stale`.
|
|
106
|
+
const sourceChangedDuringRun = state.sourceChangedDuringRun;
|
|
107
|
+
state.sourceChangedDuringRun = false;
|
|
108
|
+
const retryable = isTransientFailureOutcome(outcome) ||
|
|
109
|
+
// A runtime-unavailable skip DURING a chain consumes an attempt
|
|
110
|
+
// instead of ending the chain; on a fresh compute it keeps the
|
|
111
|
+
// pre-retry behavior (pending/stale, reswept by start()).
|
|
112
|
+
(isRuntimeSkipOutcome(outcome) && state.retryAttempts > 0);
|
|
113
|
+
if (state.rerun) {
|
|
114
|
+
// A source changed during the run: that supersedes any retry.
|
|
115
|
+
state.rerun = false;
|
|
116
|
+
state.retryAttempts = 0;
|
|
117
|
+
await markStale(questionId);
|
|
118
|
+
schedule(questionId, 0);
|
|
119
|
+
}
|
|
120
|
+
else if (retryable &&
|
|
121
|
+
// A pending timer means a source change or explicit recompute
|
|
122
|
+
// arrived during the run and already scheduled a fresher run;
|
|
123
|
+
// replacing its 5s debounce with a 60s retry would delay the
|
|
124
|
+
// recompute of data this compute never saw.
|
|
125
|
+
state.timer === null &&
|
|
126
|
+
// After stop() nothing may be scheduled; without this a compute
|
|
127
|
+
// that settles late would record a retryAtMs no timer backs.
|
|
128
|
+
!stopped &&
|
|
129
|
+
state.retryAttempts < retryDelaysMs.length) {
|
|
130
|
+
const delayMs = retryDelaysMs[state.retryAttempts];
|
|
131
|
+
state.retryAttempts += 1;
|
|
132
|
+
state.retryAtMs = now().getTime() + delayMs;
|
|
133
|
+
schedule(questionId, delayMs);
|
|
134
|
+
state.retryScheduled = true;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
state.retryAttempts = 0;
|
|
138
|
+
if (sourceChangedDuringRun) {
|
|
139
|
+
// Fresh data landed while this compute was reading, so the
|
|
140
|
+
// answer it just wrote is already behind. Say so — and
|
|
141
|
+
// schedule nothing: the next reader triggers the recompute.
|
|
142
|
+
await markStale(questionId);
|
|
143
|
+
}
|
|
144
|
+
if (!states.get(questionId)?.timer) {
|
|
145
|
+
states.delete(questionId);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}));
|
|
149
|
+
}
|
|
150
|
+
function schedule(questionId, delayMs) {
|
|
151
|
+
if (stopped)
|
|
152
|
+
return;
|
|
153
|
+
const state = stateFor(questionId);
|
|
154
|
+
if (state.timer !== null)
|
|
155
|
+
timers.clearTimeout(state.timer);
|
|
156
|
+
state.timer = timers.setTimeout(() => {
|
|
157
|
+
state.timer = null;
|
|
158
|
+
// Whatever this timer was (debounce or retry), any promised retry is
|
|
159
|
+
// now being consumed: a past retryAtMs would pin the status route's
|
|
160
|
+
// retryAfterSeconds at 0 for the whole in-flight compute. A firing
|
|
161
|
+
// RETRY timer hands over to retryRunning so the in-flight window is
|
|
162
|
+
// still distinguishable from a terminal failure.
|
|
163
|
+
state.retryAtMs = null;
|
|
164
|
+
state.retryRunning = state.retryScheduled;
|
|
165
|
+
state.retryScheduled = false;
|
|
166
|
+
run(questionId);
|
|
167
|
+
}, delayMs);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Run this question because someone asked for its answer. Idempotent by
|
|
171
|
+
* design: a compute already in flight or already timed is the compute the
|
|
172
|
+
* demand wants, so concurrent readers collapse into one run. A pending
|
|
173
|
+
* RETRY timer is the exception — its backoff is a fallback for nobody
|
|
174
|
+
* asking, and a reader is asking now — so demand pulls it forward,
|
|
175
|
+
* keeping the attempt count (an exhausting chain stays bounded).
|
|
176
|
+
*/
|
|
177
|
+
function scheduleDemand(questionId) {
|
|
178
|
+
const state = stateFor(questionId);
|
|
179
|
+
if (state.running !== null)
|
|
180
|
+
return;
|
|
181
|
+
if (state.timer !== null && !state.retryScheduled)
|
|
182
|
+
return;
|
|
183
|
+
schedule(questionId, 0);
|
|
184
|
+
state.retryScheduled = false;
|
|
185
|
+
}
|
|
186
|
+
async function markStale(questionId) {
|
|
187
|
+
const registration = await options.store.get(questionId);
|
|
188
|
+
if (!registration)
|
|
189
|
+
return;
|
|
190
|
+
if (registration.status === "ready" || registration.status === "failed") {
|
|
191
|
+
await options.store.update(questionId, {
|
|
192
|
+
status: "stale",
|
|
193
|
+
// The reader contract says errorCode is null unless failed; a stale
|
|
194
|
+
// question is a recompute in progress, not a terminal failure.
|
|
195
|
+
errorCode: null,
|
|
196
|
+
updatedAt: now().toISOString(),
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
function resetRetry(questionId) {
|
|
201
|
+
const state = states.get(questionId);
|
|
202
|
+
if (!state)
|
|
203
|
+
return;
|
|
204
|
+
state.retryAttempts = 0;
|
|
205
|
+
state.retryAtMs = null;
|
|
206
|
+
state.retryScheduled = false;
|
|
207
|
+
}
|
|
208
|
+
return {
|
|
209
|
+
nextRetryAt(questionId) {
|
|
210
|
+
const retryAtMs = states.get(questionId)?.retryAtMs;
|
|
211
|
+
return retryAtMs == null ? null : new Date(retryAtMs).toISOString();
|
|
212
|
+
},
|
|
213
|
+
retryInFlight(questionId) {
|
|
214
|
+
return states.get(questionId)?.retryRunning ?? false;
|
|
215
|
+
},
|
|
216
|
+
markSourceChanged(scope, opts) {
|
|
217
|
+
if (stopped)
|
|
218
|
+
return;
|
|
219
|
+
const lineage = new Set((opts?.lineageSources ?? []).map((id) => id.toLowerCase()));
|
|
220
|
+
void track((async () => {
|
|
221
|
+
const affected = await options.store.list({ sourceScope: scope });
|
|
222
|
+
for (const registration of affected) {
|
|
223
|
+
if (registration.recompute === "snapshot") {
|
|
224
|
+
// A snapshot question computes at registration and on an
|
|
225
|
+
// explicit recompute only; source changes never touch it.
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
if (options.serverOwner &&
|
|
229
|
+
lineage.has(computeDataPointId(options.serverOwner, registration.derivedScope))) {
|
|
230
|
+
// The new version descends from this question's own output.
|
|
231
|
+
continue;
|
|
232
|
+
}
|
|
233
|
+
// A change lands on a question whose compute is in flight: that
|
|
234
|
+
// compute never saw the new data, so its result must not settle
|
|
235
|
+
// as `ready`. Read the flag before and after the store write —
|
|
236
|
+
// the run can finish inside that await.
|
|
237
|
+
const state = states.get(registration.questionId);
|
|
238
|
+
const runningBefore = state?.running != null;
|
|
239
|
+
await markStale(registration.questionId);
|
|
240
|
+
if (state && (runningBefore || state.running !== null)) {
|
|
241
|
+
state.sourceChangedDuringRun = true;
|
|
242
|
+
}
|
|
243
|
+
// Nothing is scheduled: the recompute is owed, not started. Any
|
|
244
|
+
// retry timer the question already carries stays as it is; the
|
|
245
|
+
// retry recomputes from current data anyway.
|
|
246
|
+
}
|
|
247
|
+
})().catch((err) => warn({ scope, error: err instanceof Error ? err.name : String(err) }, "Could not mark derivative questions stale")));
|
|
248
|
+
},
|
|
249
|
+
markDemand(derivedScope) {
|
|
250
|
+
if (stopped)
|
|
251
|
+
return;
|
|
252
|
+
void track((async () => {
|
|
253
|
+
const affected = await options.store.list({ derivedScope });
|
|
254
|
+
for (const registration of affected) {
|
|
255
|
+
if (registration.recompute === "snapshot") {
|
|
256
|
+
// A snapshot answers from the version it computed at
|
|
257
|
+
// registration; only an explicit recompute replaces it.
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
if (registration.status !== "stale" &&
|
|
261
|
+
registration.status !== "pending") {
|
|
262
|
+
// `ready` has nothing to compute, and `failed` belongs to its
|
|
263
|
+
// backoff chain or to an explicit recompute: a reader polling
|
|
264
|
+
// a question that keeps failing must not spend an inference
|
|
265
|
+
// call per poll.
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
scheduleDemand(registration.questionId);
|
|
269
|
+
}
|
|
270
|
+
})().catch((err) => warn({
|
|
271
|
+
derivedScope,
|
|
272
|
+
error: err instanceof Error ? err.name : String(err),
|
|
273
|
+
}, "Could not schedule derivative questions on demand")));
|
|
274
|
+
},
|
|
275
|
+
requestRecompute(questionId, opts) {
|
|
276
|
+
if (stopped)
|
|
277
|
+
return;
|
|
278
|
+
void track(markStale(questionId)
|
|
279
|
+
.catch((err) => warn({
|
|
280
|
+
questionId,
|
|
281
|
+
error: err instanceof Error ? err.name : String(err),
|
|
282
|
+
}, "Could not mark derivative question stale"))
|
|
283
|
+
.then(() => {
|
|
284
|
+
resetRetry(questionId);
|
|
285
|
+
schedule(questionId, opts?.immediate ? 0 : debounceMs);
|
|
286
|
+
}));
|
|
287
|
+
},
|
|
288
|
+
async whenIdle() {
|
|
289
|
+
// Waits for store lookups and in-flight computes. Real timers are
|
|
290
|
+
// polled too; injected timers are the caller's to fire.
|
|
291
|
+
const waitForTimers = !options.timers;
|
|
292
|
+
for (;;) {
|
|
293
|
+
while (pending.size > 0) {
|
|
294
|
+
await Promise.allSettled([...pending]);
|
|
295
|
+
}
|
|
296
|
+
const busy = [...states.values()].some((state) => state.running !== null || (waitForTimers && state.timer !== null));
|
|
297
|
+
if (!busy)
|
|
298
|
+
return;
|
|
299
|
+
await new Promise((resolve) => setTimeout(resolve, 5));
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
stop() {
|
|
303
|
+
stopped = true;
|
|
304
|
+
for (const state of states.values()) {
|
|
305
|
+
if (state.timer !== null)
|
|
306
|
+
timers.clearTimeout(state.timer);
|
|
307
|
+
state.timer = null;
|
|
308
|
+
state.retryAttempts = 0;
|
|
309
|
+
state.retryAtMs = null;
|
|
310
|
+
state.retryScheduled = false;
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
start() {
|
|
314
|
+
if (started && !stopped)
|
|
315
|
+
return;
|
|
316
|
+
started = true;
|
|
317
|
+
stopped = false;
|
|
318
|
+
void track((async () => {
|
|
319
|
+
for (const registration of await options.store.list()) {
|
|
320
|
+
// Only never-answered questions. A `stale` one has a previous
|
|
321
|
+
// version to serve and is recomputed on demand, so a restart
|
|
322
|
+
// costs nothing.
|
|
323
|
+
if (registration.status === "pending") {
|
|
324
|
+
schedule(registration.questionId, 0);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
})().catch((err) => warn({ error: err instanceof Error ? err.name : String(err) }, "Could not reschedule derivative questions")));
|
|
328
|
+
},
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
//# sourceMappingURL=scheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/derivatives/scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { QuestionRegistration, QuestionStore, QuestionStoreListFilter } from "./types.js";
|
|
2
|
+
export declare function matchesQuestionFilter(registration: QuestionRegistration, filter: QuestionStoreListFilter | undefined): boolean;
|
|
3
|
+
/** Oldest first, the order every store lists in. */
|
|
4
|
+
export declare function sortQuestions(registrations: QuestionRegistration[]): QuestionRegistration[];
|
|
5
|
+
/**
|
|
6
|
+
* Map-backed store. The PS-Lite store wraps it with persistence; tests use
|
|
7
|
+
* it as is.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createInMemoryQuestionStore(options?: {
|
|
10
|
+
/** Called after every mutation with the full current list. */
|
|
11
|
+
onChange?: (registrations: QuestionRegistration[]) => Promise<void>;
|
|
12
|
+
initial?: QuestionRegistration[];
|
|
13
|
+
}): QuestionStore;
|
|
14
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/derivatives/store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EAEpB,aAAa,EACb,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAapB,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,oBAAoB,EAClC,MAAM,EAAE,uBAAuB,GAAG,SAAS,GAC1C,OAAO,CAkBT;AAED,oDAAoD;AACpD,wBAAgB,aAAa,CAC3B,aAAa,EAAE,oBAAoB,EAAE,GACpC,oBAAoB,EAAE,CAMxB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,GAAE;IACP,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAC7B,GACL,aAAa,CA4Cf"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { cloneAnswerShape } from "./answer-shape.js";
|
|
2
|
+
function clone(registration) {
|
|
3
|
+
return {
|
|
4
|
+
...registration,
|
|
5
|
+
// Registrations persisted before the field existed load as null.
|
|
6
|
+
errorCode: registration.errorCode ?? null,
|
|
7
|
+
answerShape: cloneAnswerShape(registration.answerShape ?? null),
|
|
8
|
+
sourceScopes: [...registration.sourceScopes],
|
|
9
|
+
registeredBy: { ...registration.registeredBy },
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export function matchesQuestionFilter(registration, filter) {
|
|
13
|
+
if (!filter)
|
|
14
|
+
return true;
|
|
15
|
+
if (filter.derivedScope && registration.derivedScope !== filter.derivedScope)
|
|
16
|
+
return false;
|
|
17
|
+
if (filter.sourceScope &&
|
|
18
|
+
!registration.sourceScopes.includes(filter.sourceScope))
|
|
19
|
+
return false;
|
|
20
|
+
if (filter.builder) {
|
|
21
|
+
const by = registration.registeredBy;
|
|
22
|
+
if (by.kind !== "builder" ||
|
|
23
|
+
by.builder.toLowerCase() !== filter.builder.toLowerCase())
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
/** Oldest first, the order every store lists in. */
|
|
29
|
+
export function sortQuestions(registrations) {
|
|
30
|
+
return [...registrations].sort((a, b) => a.createdAt.localeCompare(b.createdAt) ||
|
|
31
|
+
a.questionId.localeCompare(b.questionId));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Map-backed store. The PS-Lite store wraps it with persistence; tests use
|
|
35
|
+
* it as is.
|
|
36
|
+
*/
|
|
37
|
+
export function createInMemoryQuestionStore(options = {}) {
|
|
38
|
+
const byId = new Map();
|
|
39
|
+
for (const registration of options.initial ?? []) {
|
|
40
|
+
byId.set(registration.questionId, clone(registration));
|
|
41
|
+
}
|
|
42
|
+
async function changed() {
|
|
43
|
+
if (!options.onChange)
|
|
44
|
+
return;
|
|
45
|
+
await options.onChange(sortQuestions([...byId.values()]).map(clone));
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
async list(filter) {
|
|
49
|
+
return sortQuestions([...byId.values()].filter((registration) => matchesQuestionFilter(registration, filter))).map(clone);
|
|
50
|
+
},
|
|
51
|
+
async get(questionId) {
|
|
52
|
+
const registration = byId.get(questionId);
|
|
53
|
+
return registration ? clone(registration) : null;
|
|
54
|
+
},
|
|
55
|
+
async insert(registration) {
|
|
56
|
+
if (byId.has(registration.questionId)) {
|
|
57
|
+
throw new Error(`Question ${registration.questionId} is already registered`);
|
|
58
|
+
}
|
|
59
|
+
byId.set(registration.questionId, clone(registration));
|
|
60
|
+
await changed();
|
|
61
|
+
},
|
|
62
|
+
async update(questionId, patch) {
|
|
63
|
+
const current = byId.get(questionId);
|
|
64
|
+
if (!current)
|
|
65
|
+
return null;
|
|
66
|
+
const next = { ...current, ...patch };
|
|
67
|
+
byId.set(questionId, next);
|
|
68
|
+
await changed();
|
|
69
|
+
return clone(next);
|
|
70
|
+
},
|
|
71
|
+
async delete(questionId) {
|
|
72
|
+
const existed = byId.delete(questionId);
|
|
73
|
+
if (existed)
|
|
74
|
+
await changed();
|
|
75
|
+
return existed;
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/derivatives/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derivative compute layer: a builder registers a QUESTION over the owner's
|
|
3
|
+
* source scopes; the Personal Server answers it locally with an inference
|
|
4
|
+
* provider and writes the answer as an ordinary derivative record (lineage
|
|
5
|
+
* = the source data points) into the derived scope. See
|
|
6
|
+
* docs/derivative-data-api.md, "Compute (question to derivative)".
|
|
7
|
+
*/
|
|
8
|
+
import { type AnswerShape } from "./answer-shape.js";
|
|
9
|
+
export type QuestionStatus = "pending" | "ready" | "failed" | "stale";
|
|
10
|
+
/**
|
|
11
|
+
* When the answer recomputes: "on-change" (the default) goes stale on every
|
|
12
|
+
* source change and recomputes on the next authorized demand for the answer;
|
|
13
|
+
* "snapshot" computes at registration and afterwards only on an explicit
|
|
14
|
+
* POST /questions/:id/recompute. Two values, and only these two: the SDK
|
|
15
|
+
* validates the field against them, so the meaning of "on-change" moves
|
|
16
|
+
* rather than the vocabulary.
|
|
17
|
+
*/
|
|
18
|
+
export type QuestionRecompute = "snapshot" | "on-change";
|
|
19
|
+
/**
|
|
20
|
+
* Closed vocabulary for the machine-readable failure class. Deliberately
|
|
21
|
+
* coarse: it is served to readers of the derived scope through the status
|
|
22
|
+
* route, so it must never carry a scope name, the question or provider
|
|
23
|
+
* detail. `inference_unavailable` is the one transient class (the scheduler
|
|
24
|
+
* retries it); everything else stays failed until a source change or an
|
|
25
|
+
* explicit recompute.
|
|
26
|
+
*/
|
|
27
|
+
export type QuestionErrorCode = "inference_unavailable" | "source_missing" | "grant_invalid" | "internal";
|
|
28
|
+
/** Who registered the question; a builder is bound to the write grant. */
|
|
29
|
+
export type QuestionRegisteredBy = {
|
|
30
|
+
kind: "owner";
|
|
31
|
+
} | {
|
|
32
|
+
kind: "builder";
|
|
33
|
+
builder: `0x${string}`;
|
|
34
|
+
grantId: string;
|
|
35
|
+
};
|
|
36
|
+
export interface QuestionRegistration {
|
|
37
|
+
questionId: string;
|
|
38
|
+
derivedScope: string;
|
|
39
|
+
sourceScopes: string[];
|
|
40
|
+
/** The prompt template text (the builder's question). */
|
|
41
|
+
question: string;
|
|
42
|
+
/** Model override; null = the provider's default. */
|
|
43
|
+
model: string | null;
|
|
44
|
+
/**
|
|
45
|
+
* The declared shape of the answer, enforced at compute time; null = the
|
|
46
|
+
* free-text answer (the original behavior).
|
|
47
|
+
*/
|
|
48
|
+
answerShape: AnswerShape | null;
|
|
49
|
+
recompute: QuestionRecompute;
|
|
50
|
+
registeredBy: QuestionRegisteredBy;
|
|
51
|
+
status: QuestionStatus;
|
|
52
|
+
/** Short failure reason (never the prompt or the data). Null unless failed. */
|
|
53
|
+
error: string | null;
|
|
54
|
+
/** Machine-readable failure class; null unless failed. */
|
|
55
|
+
errorCode: QuestionErrorCode | null;
|
|
56
|
+
createdAt: string;
|
|
57
|
+
updatedAt: string;
|
|
58
|
+
lastComputedAt: string | null;
|
|
59
|
+
/** Local index version of the derived record the last compute wrote. */
|
|
60
|
+
derivedVersion: number | null;
|
|
61
|
+
derivedCollectedAt: string | null;
|
|
62
|
+
}
|
|
63
|
+
export type QuestionRegistrationPatch = Partial<Pick<QuestionRegistration, "status" | "error" | "errorCode" | "updatedAt" | "lastComputedAt" | "derivedVersion" | "derivedCollectedAt">>;
|
|
64
|
+
export interface QuestionStoreListFilter {
|
|
65
|
+
derivedScope?: string;
|
|
66
|
+
sourceScope?: string;
|
|
67
|
+
builder?: `0x${string}`;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Persistence for question registrations. Small and local: registrations
|
|
71
|
+
* never sync (the replica that holds them computes them). Implementations:
|
|
72
|
+
* sqlite (server), a state-store backed map (PS-Lite), in-memory (tests).
|
|
73
|
+
*/
|
|
74
|
+
export interface QuestionStore {
|
|
75
|
+
list(filter?: QuestionStoreListFilter): Promise<QuestionRegistration[]>;
|
|
76
|
+
get(questionId: string): Promise<QuestionRegistration | null>;
|
|
77
|
+
insert(registration: QuestionRegistration): Promise<void>;
|
|
78
|
+
/** Returns the updated row, or null when the id is unknown. */
|
|
79
|
+
update(questionId: string, patch: QuestionRegistrationPatch): Promise<QuestionRegistration | null>;
|
|
80
|
+
delete(questionId: string): Promise<boolean>;
|
|
81
|
+
}
|
|
82
|
+
/** Public JSON shape of a registration (GET / list / POST responses). */
|
|
83
|
+
export interface QuestionRegistrationView {
|
|
84
|
+
questionId: string;
|
|
85
|
+
derivedScope: string;
|
|
86
|
+
sourceScopes: string[];
|
|
87
|
+
question: string;
|
|
88
|
+
model: string | null;
|
|
89
|
+
answerShape: AnswerShape | null;
|
|
90
|
+
recompute: QuestionRecompute;
|
|
91
|
+
registeredBy: QuestionRegisteredBy;
|
|
92
|
+
status: QuestionStatus;
|
|
93
|
+
error: string | null;
|
|
94
|
+
errorCode: QuestionErrorCode | null;
|
|
95
|
+
createdAt: string;
|
|
96
|
+
updatedAt: string;
|
|
97
|
+
lastComputedAt: string | null;
|
|
98
|
+
derivedVersion: number | null;
|
|
99
|
+
derivedCollectedAt: string | null;
|
|
100
|
+
}
|
|
101
|
+
export declare function questionRegistrationView(registration: QuestionRegistration): QuestionRegistrationView;
|
|
102
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/derivatives/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derivative compute layer: a builder registers a QUESTION over the owner's
|
|
3
|
+
* source scopes; the Personal Server answers it locally with an inference
|
|
4
|
+
* provider and writes the answer as an ordinary derivative record (lineage
|
|
5
|
+
* = the source data points) into the derived scope. See
|
|
6
|
+
* docs/derivative-data-api.md, "Compute (question to derivative)".
|
|
7
|
+
*/
|
|
8
|
+
import { cloneAnswerShape } from "./answer-shape.js";
|
|
9
|
+
export function questionRegistrationView(registration) {
|
|
10
|
+
return {
|
|
11
|
+
questionId: registration.questionId,
|
|
12
|
+
derivedScope: registration.derivedScope,
|
|
13
|
+
sourceScopes: [...registration.sourceScopes],
|
|
14
|
+
question: registration.question,
|
|
15
|
+
model: registration.model,
|
|
16
|
+
answerShape: cloneAnswerShape(registration.answerShape),
|
|
17
|
+
recompute: registration.recompute,
|
|
18
|
+
registeredBy: registration.registeredBy,
|
|
19
|
+
status: registration.status,
|
|
20
|
+
error: registration.error,
|
|
21
|
+
errorCode: registration.errorCode,
|
|
22
|
+
createdAt: registration.createdAt,
|
|
23
|
+
updatedAt: registration.updatedAt,
|
|
24
|
+
lastComputedAt: registration.lastComputedAt,
|
|
25
|
+
derivedVersion: registration.derivedVersion,
|
|
26
|
+
derivedCollectedAt: registration.derivedCollectedAt,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/derivatives/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAoB,MAAM,mBAAmB,CAAC;AAkHvE,MAAM,UAAU,wBAAwB,CACtC,YAAkC;IAElC,OAAO;QACL,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,YAAY,EAAE,YAAY,CAAC,YAAY;QACvC,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC;QAC5C,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,WAAW,EAAE,gBAAgB,CAAC,YAAY,CAAC,WAAW,CAAC;QACvD,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,YAAY,EAAE,YAAY,CAAC,YAAY;QACvC,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,cAAc,EAAE,YAAY,CAAC,cAAc;QAC3C,cAAc,EAAE,YAAY,CAAC,cAAc;QAC3C,kBAAkB,EAAE,YAAY,CAAC,kBAAkB;KACpD,CAAC;AACJ,CAAC"}
|