@appport/sdk 1.1.19 → 1.1.20
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/LICENSE +126 -0
- package/README.md +86 -9
- package/dist/application-onboarding.d.ts +52 -0
- package/dist/application-onboarding.d.ts.map +1 -0
- package/dist/application-onboarding.js +50 -0
- package/dist/application-onboarding.js.map +1 -0
- package/dist/external-compatibility.d.ts +142 -0
- package/dist/external-compatibility.d.ts.map +1 -0
- package/dist/external-compatibility.js +132 -0
- package/dist/external-compatibility.js.map +1 -0
- package/dist/index.d.ts +18 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -13
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +1 -1
- package/dist/node.js +1 -1
- package/dist/provider-lifecycle.d.ts +247 -0
- package/dist/provider-lifecycle.d.ts.map +1 -0
- package/dist/provider-lifecycle.js +314 -0
- package/dist/provider-lifecycle.js.map +1 -0
- package/dist/resolution-policy.d.ts +81 -0
- package/dist/resolution-policy.d.ts.map +1 -0
- package/dist/resolution-policy.js +131 -0
- package/dist/resolution-policy.js.map +1 -0
- package/package.json +32 -22
- package/vendor/@appport/authorization/README.md +28 -0
- package/vendor/@appport/authorization/dist/index.d.ts +94 -0
- package/vendor/@appport/authorization/dist/index.d.ts.map +1 -0
- package/vendor/@appport/authorization/dist/index.js +131 -0
- package/vendor/@appport/authorization/dist/index.js.map +1 -0
- package/vendor/@appport/authorization/package.json +28 -0
- package/vendor/@appport/client/README.md +35 -0
- package/vendor/@appport/client/dist/channel.d.ts +14 -0
- package/vendor/@appport/client/dist/channel.d.ts.map +1 -0
- package/vendor/@appport/client/dist/channel.js +58 -0
- package/vendor/@appport/client/dist/channel.js.map +1 -0
- package/vendor/@appport/client/dist/client.d.ts +61 -0
- package/vendor/@appport/client/dist/client.d.ts.map +1 -0
- package/vendor/@appport/client/dist/client.js +214 -0
- package/vendor/@appport/client/dist/client.js.map +1 -0
- package/vendor/@appport/client/dist/contract.d.ts +55 -0
- package/vendor/@appport/client/dist/contract.d.ts.map +1 -0
- package/vendor/@appport/client/dist/contract.js +12 -0
- package/vendor/@appport/client/dist/contract.js.map +1 -0
- package/vendor/@appport/client/dist/discovery.d.ts +17 -0
- package/vendor/@appport/client/dist/discovery.d.ts.map +1 -0
- package/vendor/@appport/client/dist/discovery.js +56 -0
- package/vendor/@appport/client/dist/discovery.js.map +1 -0
- package/vendor/@appport/client/dist/duplex.d.ts +25 -0
- package/vendor/@appport/client/dist/duplex.d.ts.map +1 -0
- package/vendor/@appport/client/dist/duplex.js +194 -0
- package/vendor/@appport/client/dist/duplex.js.map +1 -0
- package/vendor/@appport/client/dist/host.d.ts +62 -0
- package/vendor/@appport/client/dist/host.d.ts.map +1 -0
- package/vendor/@appport/client/dist/host.js +139 -0
- package/vendor/@appport/client/dist/host.js.map +1 -0
- package/vendor/@appport/client/dist/index.d.ts +14 -0
- package/vendor/@appport/client/dist/index.d.ts.map +1 -0
- package/vendor/@appport/client/dist/index.js +14 -0
- package/vendor/@appport/client/dist/index.js.map +1 -0
- package/vendor/@appport/client/dist/transport.d.ts +42 -0
- package/vendor/@appport/client/dist/transport.d.ts.map +1 -0
- package/vendor/@appport/client/dist/transport.js +2 -0
- package/vendor/@appport/client/dist/transport.js.map +1 -0
- package/vendor/@appport/client/package.json +32 -0
- package/vendor/@appport/core/README.md +91 -0
- package/vendor/@appport/core/dist/appboundry-capability-catalog.d.ts +930 -0
- package/vendor/@appport/core/dist/appboundry-capability-catalog.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-capability-catalog.js +352 -0
- package/vendor/@appport/core/dist/appboundry-capability-catalog.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-composition.d.ts +93 -0
- package/vendor/@appport/core/dist/appboundry-composition.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-composition.js +184 -0
- package/vendor/@appport/core/dist/appboundry-composition.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-contract.d.ts +80 -0
- package/vendor/@appport/core/dist/appboundry-contract.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-contract.js +160 -0
- package/vendor/@appport/core/dist/appboundry-contract.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-diagnostics.d.ts +107 -0
- package/vendor/@appport/core/dist/appboundry-diagnostics.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-diagnostics.js +358 -0
- package/vendor/@appport/core/dist/appboundry-diagnostics.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-discovery.d.ts +110 -0
- package/vendor/@appport/core/dist/appboundry-discovery.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-discovery.js +141 -0
- package/vendor/@appport/core/dist/appboundry-discovery.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-entitlements.d.ts +128 -0
- package/vendor/@appport/core/dist/appboundry-entitlements.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-entitlements.js +312 -0
- package/vendor/@appport/core/dist/appboundry-entitlements.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-execution.d.ts +84 -0
- package/vendor/@appport/core/dist/appboundry-execution.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-execution.js +150 -0
- package/vendor/@appport/core/dist/appboundry-execution.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-exercise.d.ts +152 -0
- package/vendor/@appport/core/dist/appboundry-exercise.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-exercise.js +416 -0
- package/vendor/@appport/core/dist/appboundry-exercise.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-materialization.d.ts +222 -0
- package/vendor/@appport/core/dist/appboundry-materialization.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-materialization.js +494 -0
- package/vendor/@appport/core/dist/appboundry-materialization.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-migration.d.ts +195 -0
- package/vendor/@appport/core/dist/appboundry-migration.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-migration.js +227 -0
- package/vendor/@appport/core/dist/appboundry-migration.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-onboarding.d.ts +70 -0
- package/vendor/@appport/core/dist/appboundry-onboarding.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-onboarding.js +232 -0
- package/vendor/@appport/core/dist/appboundry-onboarding.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-operation-discovery.d.ts +93 -0
- package/vendor/@appport/core/dist/appboundry-operation-discovery.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-operation-discovery.js +89 -0
- package/vendor/@appport/core/dist/appboundry-operation-discovery.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-resolution.d.ts +160 -0
- package/vendor/@appport/core/dist/appboundry-resolution.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-resolution.js +218 -0
- package/vendor/@appport/core/dist/appboundry-resolution.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-surface.d.ts +96 -0
- package/vendor/@appport/core/dist/appboundry-surface.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-surface.js +223 -0
- package/vendor/@appport/core/dist/appboundry-surface.js.map +1 -0
- package/vendor/@appport/core/dist/appboundry-usage.d.ts +94 -0
- package/vendor/@appport/core/dist/appboundry-usage.d.ts.map +1 -0
- package/vendor/@appport/core/dist/appboundry-usage.js +80 -0
- package/vendor/@appport/core/dist/appboundry-usage.js.map +1 -0
- package/vendor/@appport/core/dist/application-conformance.d.ts +68 -0
- package/vendor/@appport/core/dist/application-conformance.d.ts.map +1 -0
- package/vendor/@appport/core/dist/application-conformance.js +108 -0
- package/vendor/@appport/core/dist/application-conformance.js.map +1 -0
- package/vendor/@appport/core/dist/application-implementation.d.ts +125 -0
- package/vendor/@appport/core/dist/application-implementation.d.ts.map +1 -0
- package/vendor/@appport/core/dist/application-implementation.js +220 -0
- package/vendor/@appport/core/dist/application-implementation.js.map +1 -0
- package/vendor/@appport/core/dist/application-lifecycle.d.ts +150 -0
- package/vendor/@appport/core/dist/application-lifecycle.d.ts.map +1 -0
- package/vendor/@appport/core/dist/application-lifecycle.js +70 -0
- package/vendor/@appport/core/dist/application-lifecycle.js.map +1 -0
- package/vendor/@appport/core/dist/application-package.d.ts +105 -0
- package/vendor/@appport/core/dist/application-package.d.ts.map +1 -0
- package/vendor/@appport/core/dist/application-package.js +349 -0
- package/vendor/@appport/core/dist/application-package.js.map +1 -0
- package/vendor/@appport/core/dist/application-source.d.ts +109 -0
- package/vendor/@appport/core/dist/application-source.d.ts.map +1 -0
- package/vendor/@appport/core/dist/application-source.js +186 -0
- package/vendor/@appport/core/dist/application-source.js.map +1 -0
- package/vendor/@appport/core/dist/application.d.ts +124 -0
- package/vendor/@appport/core/dist/application.d.ts.map +1 -0
- package/vendor/@appport/core/dist/application.js +518 -0
- package/vendor/@appport/core/dist/application.js.map +1 -0
- package/vendor/@appport/core/dist/artifact.d.ts +395 -0
- package/vendor/@appport/core/dist/artifact.d.ts.map +1 -0
- package/vendor/@appport/core/dist/artifact.js +392 -0
- package/vendor/@appport/core/dist/artifact.js.map +1 -0
- package/vendor/@appport/core/dist/assembly.d.ts +237 -0
- package/vendor/@appport/core/dist/assembly.d.ts.map +1 -0
- package/vendor/@appport/core/dist/assembly.js +458 -0
- package/vendor/@appport/core/dist/assembly.js.map +1 -0
- package/vendor/@appport/core/dist/authority-attestation.d.ts +34 -0
- package/vendor/@appport/core/dist/authority-attestation.d.ts.map +1 -0
- package/vendor/@appport/core/dist/authority-attestation.js +72 -0
- package/vendor/@appport/core/dist/authority-attestation.js.map +1 -0
- package/vendor/@appport/core/dist/authorization-grant.d.ts +107 -0
- package/vendor/@appport/core/dist/authorization-grant.d.ts.map +1 -0
- package/vendor/@appport/core/dist/authorization-grant.js +131 -0
- package/vendor/@appport/core/dist/authorization-grant.js.map +1 -0
- package/vendor/@appport/core/dist/binding.d.ts +294 -0
- package/vendor/@appport/core/dist/binding.d.ts.map +1 -0
- package/vendor/@appport/core/dist/binding.js +263 -0
- package/vendor/@appport/core/dist/binding.js.map +1 -0
- package/vendor/@appport/core/dist/builtins.d.ts +18 -0
- package/vendor/@appport/core/dist/builtins.d.ts.map +1 -0
- package/vendor/@appport/core/dist/builtins.js +38 -0
- package/vendor/@appport/core/dist/builtins.js.map +1 -0
- package/vendor/@appport/core/dist/capability.d.ts +94 -0
- package/vendor/@appport/core/dist/capability.d.ts.map +1 -0
- package/vendor/@appport/core/dist/capability.js +85 -0
- package/vendor/@appport/core/dist/capability.js.map +1 -0
- package/vendor/@appport/core/dist/concurrency.d.ts +16 -0
- package/vendor/@appport/core/dist/concurrency.d.ts.map +1 -0
- package/vendor/@appport/core/dist/concurrency.js +46 -0
- package/vendor/@appport/core/dist/concurrency.js.map +1 -0
- package/vendor/@appport/core/dist/context.d.ts +59 -0
- package/vendor/@appport/core/dist/context.d.ts.map +1 -0
- package/vendor/@appport/core/dist/context.js +14 -0
- package/vendor/@appport/core/dist/context.js.map +1 -0
- package/vendor/@appport/core/dist/contract-artifact.d.ts +15 -0
- package/vendor/@appport/core/dist/contract-artifact.d.ts.map +1 -0
- package/vendor/@appport/core/dist/contract-artifact.js +161 -0
- package/vendor/@appport/core/dist/contract-artifact.js.map +1 -0
- package/vendor/@appport/core/dist/contract-attestation.d.ts +68 -0
- package/vendor/@appport/core/dist/contract-attestation.d.ts.map +1 -0
- package/vendor/@appport/core/dist/contract-attestation.js +76 -0
- package/vendor/@appport/core/dist/contract-attestation.js.map +1 -0
- package/vendor/@appport/core/dist/crash-injection.d.ts +3 -0
- package/vendor/@appport/core/dist/crash-injection.d.ts.map +1 -0
- package/vendor/@appport/core/dist/crash-injection.js +8 -0
- package/vendor/@appport/core/dist/crash-injection.js.map +1 -0
- package/vendor/@appport/core/dist/events.d.ts +33 -0
- package/vendor/@appport/core/dist/events.d.ts.map +1 -0
- package/vendor/@appport/core/dist/events.js +79 -0
- package/vendor/@appport/core/dist/events.js.map +1 -0
- package/vendor/@appport/core/dist/execution-barrier.d.ts +13 -0
- package/vendor/@appport/core/dist/execution-barrier.d.ts.map +1 -0
- package/vendor/@appport/core/dist/execution-barrier.js +33 -0
- package/vendor/@appport/core/dist/execution-barrier.js.map +1 -0
- package/vendor/@appport/core/dist/execution-ledger.d.ts +81 -0
- package/vendor/@appport/core/dist/execution-ledger.d.ts.map +1 -0
- package/vendor/@appport/core/dist/execution-ledger.js +173 -0
- package/vendor/@appport/core/dist/execution-ledger.js.map +1 -0
- package/vendor/@appport/core/dist/execution.d.ts +387 -0
- package/vendor/@appport/core/dist/execution.d.ts.map +1 -0
- package/vendor/@appport/core/dist/execution.js +165 -0
- package/vendor/@appport/core/dist/execution.js.map +1 -0
- package/vendor/@appport/core/dist/idempotency.d.ts +36 -0
- package/vendor/@appport/core/dist/idempotency.d.ts.map +1 -0
- package/vendor/@appport/core/dist/idempotency.js +36 -0
- package/vendor/@appport/core/dist/idempotency.js.map +1 -0
- package/vendor/@appport/core/dist/implementation.d.ts +110 -0
- package/vendor/@appport/core/dist/implementation.d.ts.map +1 -0
- package/vendor/@appport/core/dist/implementation.js +65 -0
- package/vendor/@appport/core/dist/implementation.js.map +1 -0
- package/vendor/@appport/core/dist/index.d.ts +62 -0
- package/vendor/@appport/core/dist/index.d.ts.map +1 -0
- package/vendor/@appport/core/dist/index.js +61 -0
- package/vendor/@appport/core/dist/index.js.map +1 -0
- package/vendor/@appport/core/dist/invocation.d.ts +253 -0
- package/vendor/@appport/core/dist/invocation.d.ts.map +1 -0
- package/vendor/@appport/core/dist/invocation.js +258 -0
- package/vendor/@appport/core/dist/invocation.js.map +1 -0
- package/vendor/@appport/core/dist/manifest.d.ts +157 -0
- package/vendor/@appport/core/dist/manifest.d.ts.map +1 -0
- package/vendor/@appport/core/dist/manifest.js +255 -0
- package/vendor/@appport/core/dist/manifest.js.map +1 -0
- package/vendor/@appport/core/dist/memory-application-data-store.d.ts +19 -0
- package/vendor/@appport/core/dist/memory-application-data-store.d.ts.map +1 -0
- package/vendor/@appport/core/dist/memory-application-data-store.js +161 -0
- package/vendor/@appport/core/dist/memory-application-data-store.js.map +1 -0
- package/vendor/@appport/core/dist/operations.d.ts +61 -0
- package/vendor/@appport/core/dist/operations.d.ts.map +1 -0
- package/vendor/@appport/core/dist/operations.js +210 -0
- package/vendor/@appport/core/dist/operations.js.map +1 -0
- package/vendor/@appport/core/dist/provider-contract.d.ts +89 -0
- package/vendor/@appport/core/dist/provider-contract.d.ts.map +1 -0
- package/vendor/@appport/core/dist/provider-contract.js +40 -0
- package/vendor/@appport/core/dist/provider-contract.js.map +1 -0
- package/vendor/@appport/core/dist/public.d.ts +23 -0
- package/vendor/@appport/core/dist/public.d.ts.map +1 -0
- package/vendor/@appport/core/dist/public.js +22 -0
- package/vendor/@appport/core/dist/public.js.map +1 -0
- package/vendor/@appport/core/dist/registration.d.ts +165 -0
- package/vendor/@appport/core/dist/registration.d.ts.map +1 -0
- package/vendor/@appport/core/dist/registration.js +253 -0
- package/vendor/@appport/core/dist/registration.js.map +1 -0
- package/vendor/@appport/core/dist/registry.d.ts +30 -0
- package/vendor/@appport/core/dist/registry.d.ts.map +1 -0
- package/vendor/@appport/core/dist/registry.js +149 -0
- package/vendor/@appport/core/dist/registry.js.map +1 -0
- package/vendor/@appport/core/dist/resolver.d.ts +130 -0
- package/vendor/@appport/core/dist/resolver.d.ts.map +1 -0
- package/vendor/@appport/core/dist/resolver.js +252 -0
- package/vendor/@appport/core/dist/resolver.js.map +1 -0
- package/vendor/@appport/core/dist/runtime-manifest.d.ts +68 -0
- package/vendor/@appport/core/dist/runtime-manifest.d.ts.map +1 -0
- package/vendor/@appport/core/dist/runtime-manifest.js +84 -0
- package/vendor/@appport/core/dist/runtime-manifest.js.map +1 -0
- package/vendor/@appport/core/dist/sanitize.d.ts +14 -0
- package/vendor/@appport/core/dist/sanitize.d.ts.map +1 -0
- package/vendor/@appport/core/dist/sanitize.js +49 -0
- package/vendor/@appport/core/dist/sanitize.js.map +1 -0
- package/vendor/@appport/core/dist/server-internal.d.ts +5 -0
- package/vendor/@appport/core/dist/server-internal.d.ts.map +1 -0
- package/vendor/@appport/core/dist/server-internal.js +4 -0
- package/vendor/@appport/core/dist/server-internal.js.map +1 -0
- package/vendor/@appport/core/dist/sessions.d.ts +29 -0
- package/vendor/@appport/core/dist/sessions.d.ts.map +1 -0
- package/vendor/@appport/core/dist/sessions.js +39 -0
- package/vendor/@appport/core/dist/sessions.js.map +1 -0
- package/vendor/@appport/core/dist/sha256.d.ts +3 -0
- package/vendor/@appport/core/dist/sha256.d.ts.map +1 -0
- package/vendor/@appport/core/dist/sha256.js +46 -0
- package/vendor/@appport/core/dist/sha256.js.map +1 -0
- package/vendor/@appport/core/dist/source-verification.d.ts +53 -0
- package/vendor/@appport/core/dist/source-verification.d.ts.map +1 -0
- package/vendor/@appport/core/dist/source-verification.js +92 -0
- package/vendor/@appport/core/dist/source-verification.js.map +1 -0
- package/vendor/@appport/core/dist/state-context.d.ts +312 -0
- package/vendor/@appport/core/dist/state-context.d.ts.map +1 -0
- package/vendor/@appport/core/dist/state-context.js +100 -0
- package/vendor/@appport/core/dist/state-context.js.map +1 -0
- package/vendor/@appport/core/dist/state.d.ts +96 -0
- package/vendor/@appport/core/dist/state.d.ts.map +1 -0
- package/vendor/@appport/core/dist/state.js +89 -0
- package/vendor/@appport/core/dist/state.js.map +1 -0
- package/vendor/@appport/core/dist/streams.d.ts +38 -0
- package/vendor/@appport/core/dist/streams.d.ts.map +1 -0
- package/vendor/@appport/core/dist/streams.js +123 -0
- package/vendor/@appport/core/dist/streams.js.map +1 -0
- package/vendor/@appport/core/dist/telemetry.d.ts +42 -0
- package/vendor/@appport/core/dist/telemetry.d.ts.map +1 -0
- package/vendor/@appport/core/dist/telemetry.js +32 -0
- package/vendor/@appport/core/dist/telemetry.js.map +1 -0
- package/vendor/@appport/core/dist/wasm-engine.d.ts +24 -0
- package/vendor/@appport/core/dist/wasm-engine.d.ts.map +1 -0
- package/vendor/@appport/core/dist/wasm-engine.js +376 -0
- package/vendor/@appport/core/dist/wasm-engine.js.map +1 -0
- package/vendor/@appport/core/package.json +58 -0
- package/vendor/@appport/mcp/README.md +29 -0
- package/vendor/@appport/mcp/dist/index.d.ts +59 -0
- package/vendor/@appport/mcp/dist/index.d.ts.map +1 -0
- package/vendor/@appport/mcp/dist/index.js +70 -0
- package/vendor/@appport/mcp/dist/index.js.map +1 -0
- package/vendor/@appport/mcp/package.json +29 -0
- package/vendor/@appport/mobile/README.md +10 -0
- package/vendor/@appport/mobile/dist/index.d.ts +66 -0
- package/vendor/@appport/mobile/dist/index.d.ts.map +1 -0
- package/vendor/@appport/mobile/dist/index.js +182 -0
- package/vendor/@appport/mobile/dist/index.js.map +1 -0
- package/vendor/@appport/mobile/package.json +33 -0
- package/vendor/@appport/protocol/README.md +41 -0
- package/vendor/@appport/protocol/dist/blob.d.ts +46 -0
- package/vendor/@appport/protocol/dist/blob.d.ts.map +1 -0
- package/vendor/@appport/protocol/dist/blob.js +23 -0
- package/vendor/@appport/protocol/dist/blob.js.map +1 -0
- package/vendor/@appport/protocol/dist/compatibility.d.ts +25 -0
- package/vendor/@appport/protocol/dist/compatibility.d.ts.map +1 -0
- package/vendor/@appport/protocol/dist/compatibility.js +189 -0
- package/vendor/@appport/protocol/dist/compatibility.js.map +1 -0
- package/vendor/@appport/protocol/dist/envelopes.d.ts +175 -0
- package/vendor/@appport/protocol/dist/envelopes.d.ts.map +1 -0
- package/vendor/@appport/protocol/dist/envelopes.js +97 -0
- package/vendor/@appport/protocol/dist/envelopes.js.map +1 -0
- package/vendor/@appport/protocol/dist/errors.d.ts +74 -0
- package/vendor/@appport/protocol/dist/errors.d.ts.map +1 -0
- package/vendor/@appport/protocol/dist/errors.js +92 -0
- package/vendor/@appport/protocol/dist/errors.js.map +1 -0
- package/vendor/@appport/protocol/dist/ids.d.ts +12 -0
- package/vendor/@appport/protocol/dist/ids.d.ts.map +1 -0
- package/vendor/@appport/protocol/dist/ids.js +50 -0
- package/vendor/@appport/protocol/dist/ids.js.map +1 -0
- package/vendor/@appport/protocol/dist/index.d.ts +21 -0
- package/vendor/@appport/protocol/dist/index.d.ts.map +1 -0
- package/vendor/@appport/protocol/dist/index.js +21 -0
- package/vendor/@appport/protocol/dist/index.js.map +1 -0
- package/vendor/@appport/protocol/dist/jsonschema.d.ts +50 -0
- package/vendor/@appport/protocol/dist/jsonschema.d.ts.map +1 -0
- package/vendor/@appport/protocol/dist/jsonschema.js +6 -0
- package/vendor/@appport/protocol/dist/jsonschema.js.map +1 -0
- package/vendor/@appport/protocol/dist/manifest.d.ts +134 -0
- package/vendor/@appport/protocol/dist/manifest.d.ts.map +1 -0
- package/vendor/@appport/protocol/dist/manifest.js +20 -0
- package/vendor/@appport/protocol/dist/manifest.js.map +1 -0
- package/vendor/@appport/protocol/dist/materialization.d.ts +59 -0
- package/vendor/@appport/protocol/dist/materialization.d.ts.map +1 -0
- package/vendor/@appport/protocol/dist/materialization.js +2 -0
- package/vendor/@appport/protocol/dist/materialization.js.map +1 -0
- package/vendor/@appport/protocol/dist/names.d.ts +26 -0
- package/vendor/@appport/protocol/dist/names.d.ts.map +1 -0
- package/vendor/@appport/protocol/dist/names.js +85 -0
- package/vendor/@appport/protocol/dist/names.js.map +1 -0
- package/vendor/@appport/protocol/dist/operations.d.ts +34 -0
- package/vendor/@appport/protocol/dist/operations.d.ts.map +1 -0
- package/vendor/@appport/protocol/dist/operations.js +9 -0
- package/vendor/@appport/protocol/dist/operations.js.map +1 -0
- package/vendor/@appport/protocol/dist/session.d.ts +27 -0
- package/vendor/@appport/protocol/dist/session.d.ts.map +1 -0
- package/vendor/@appport/protocol/dist/session.js +7 -0
- package/vendor/@appport/protocol/dist/session.js.map +1 -0
- package/vendor/@appport/protocol/dist/validate.d.ts +37 -0
- package/vendor/@appport/protocol/dist/validate.d.ts.map +1 -0
- package/vendor/@appport/protocol/dist/validate.js +321 -0
- package/vendor/@appport/protocol/dist/validate.js.map +1 -0
- package/vendor/@appport/protocol/dist/version.d.ts +27 -0
- package/vendor/@appport/protocol/dist/version.d.ts.map +1 -0
- package/vendor/@appport/protocol/dist/version.js +26 -0
- package/vendor/@appport/protocol/dist/version.js.map +1 -0
- package/vendor/@appport/protocol/package.json +25 -0
- package/vendor/@appport/schema/README.md +32 -0
- package/vendor/@appport/schema/dist/builder.d.ts +85 -0
- package/vendor/@appport/schema/dist/builder.d.ts.map +1 -0
- package/vendor/@appport/schema/dist/builder.js +278 -0
- package/vendor/@appport/schema/dist/builder.js.map +1 -0
- package/vendor/@appport/schema/dist/from-json-schema.d.ts +12 -0
- package/vendor/@appport/schema/dist/from-json-schema.d.ts.map +1 -0
- package/vendor/@appport/schema/dist/from-json-schema.js +186 -0
- package/vendor/@appport/schema/dist/from-json-schema.js.map +1 -0
- package/vendor/@appport/schema/dist/index.d.ts +23 -0
- package/vendor/@appport/schema/dist/index.d.ts.map +1 -0
- package/vendor/@appport/schema/dist/index.js +22 -0
- package/vendor/@appport/schema/dist/index.js.map +1 -0
- package/vendor/@appport/schema/dist/standard.d.ts +46 -0
- package/vendor/@appport/schema/dist/standard.d.ts.map +1 -0
- package/vendor/@appport/schema/dist/standard.js +42 -0
- package/vendor/@appport/schema/dist/standard.js.map +1 -0
- package/vendor/@appport/schema/dist/types.d.ts +40 -0
- package/vendor/@appport/schema/dist/types.d.ts.map +1 -0
- package/vendor/@appport/schema/dist/types.js +19 -0
- package/vendor/@appport/schema/dist/types.js.map +1 -0
- package/vendor/@appport/schema/package.json +28 -0
- package/vendor/@appport/server/README.md +39 -0
- package/vendor/@appport/server/dist/connection.d.ts +45 -0
- package/vendor/@appport/server/dist/connection.d.ts.map +1 -0
- package/vendor/@appport/server/dist/connection.js +217 -0
- package/vendor/@appport/server/dist/connection.js.map +1 -0
- package/vendor/@appport/server/dist/fetch.d.ts +10 -0
- package/vendor/@appport/server/dist/fetch.d.ts.map +1 -0
- package/vendor/@appport/server/dist/fetch.js +50 -0
- package/vendor/@appport/server/dist/fetch.js.map +1 -0
- package/vendor/@appport/server/dist/http.d.ts +80 -0
- package/vendor/@appport/server/dist/http.d.ts.map +1 -0
- package/vendor/@appport/server/dist/http.js +307 -0
- package/vendor/@appport/server/dist/http.js.map +1 -0
- package/vendor/@appport/server/dist/index.d.ts +11 -0
- package/vendor/@appport/server/dist/index.d.ts.map +1 -0
- package/vendor/@appport/server/dist/index.js +11 -0
- package/vendor/@appport/server/dist/index.js.map +1 -0
- package/vendor/@appport/server/dist/node-entry.d.ts +4 -0
- package/vendor/@appport/server/dist/node-entry.d.ts.map +1 -0
- package/vendor/@appport/server/dist/node-entry.js +4 -0
- package/vendor/@appport/server/dist/node-entry.js.map +1 -0
- package/vendor/@appport/server/dist/node.d.ts +45 -0
- package/vendor/@appport/server/dist/node.d.ts.map +1 -0
- package/vendor/@appport/server/dist/node.js +190 -0
- package/vendor/@appport/server/dist/node.js.map +1 -0
- package/vendor/@appport/server/dist/server.d.ts +83 -0
- package/vendor/@appport/server/dist/server.d.ts.map +1 -0
- package/vendor/@appport/server/dist/server.js +114 -0
- package/vendor/@appport/server/dist/server.js.map +1 -0
- package/vendor/@appport/server/dist/websocket.d.ts +25 -0
- package/vendor/@appport/server/dist/websocket.d.ts.map +1 -0
- package/vendor/@appport/server/dist/websocket.js +221 -0
- package/vendor/@appport/server/dist/websocket.js.map +1 -0
- package/vendor/@appport/server/package.json +34 -0
- package/vendor/@appport/transport-electron/README.md +56 -0
- package/vendor/@appport/transport-electron/dist/index.d.ts +11 -0
- package/vendor/@appport/transport-electron/dist/index.d.ts.map +1 -0
- package/vendor/@appport/transport-electron/dist/index.js +11 -0
- package/vendor/@appport/transport-electron/dist/index.js.map +1 -0
- package/vendor/@appport/transport-electron/dist/main.d.ts +31 -0
- package/vendor/@appport/transport-electron/dist/main.d.ts.map +1 -0
- package/vendor/@appport/transport-electron/dist/main.js +61 -0
- package/vendor/@appport/transport-electron/dist/main.js.map +1 -0
- package/vendor/@appport/transport-electron/dist/preload.d.ts +22 -0
- package/vendor/@appport/transport-electron/dist/preload.d.ts.map +1 -0
- package/vendor/@appport/transport-electron/dist/preload.js +29 -0
- package/vendor/@appport/transport-electron/dist/preload.js.map +1 -0
- package/vendor/@appport/transport-electron/dist/renderer.d.ts +16 -0
- package/vendor/@appport/transport-electron/dist/renderer.d.ts.map +1 -0
- package/vendor/@appport/transport-electron/dist/renderer.js +36 -0
- package/vendor/@appport/transport-electron/dist/renderer.js.map +1 -0
- package/vendor/@appport/transport-electron/dist/types.d.ts +49 -0
- package/vendor/@appport/transport-electron/dist/types.d.ts.map +1 -0
- package/vendor/@appport/transport-electron/dist/types.js +5 -0
- package/vendor/@appport/transport-electron/dist/types.js.map +1 -0
- package/vendor/@appport/transport-electron/package.json +46 -0
- package/vendor/@appport/transport-http/README.md +24 -0
- package/vendor/@appport/transport-http/dist/index.d.ts +18 -0
- package/vendor/@appport/transport-http/dist/index.d.ts.map +1 -0
- package/vendor/@appport/transport-http/dist/index.js +223 -0
- package/vendor/@appport/transport-http/dist/index.js.map +1 -0
- package/vendor/@appport/transport-http/package.json +29 -0
- package/vendor/@appport/transport-inprocess/README.md +24 -0
- package/vendor/@appport/transport-inprocess/dist/index.d.ts +16 -0
- package/vendor/@appport/transport-inprocess/dist/index.d.ts.map +1 -0
- package/vendor/@appport/transport-inprocess/dist/index.js +30 -0
- package/vendor/@appport/transport-inprocess/dist/index.js.map +1 -0
- package/vendor/@appport/transport-inprocess/package.json +30 -0
- package/vendor/@appport/transport-tauri/README.md +45 -0
- package/vendor/@appport/transport-tauri/dist/index.d.ts +23 -0
- package/vendor/@appport/transport-tauri/dist/index.d.ts.map +1 -0
- package/vendor/@appport/transport-tauri/dist/index.js +44 -0
- package/vendor/@appport/transport-tauri/dist/index.js.map +1 -0
- package/vendor/@appport/transport-tauri/package.json +29 -0
- package/vendor/@appport/transport-websocket/README.md +22 -0
- package/vendor/@appport/transport-websocket/dist/index.d.ts +26 -0
- package/vendor/@appport/transport-websocket/dist/index.d.ts.map +1 -0
- package/vendor/@appport/transport-websocket/dist/index.js +72 -0
- package/vendor/@appport/transport-websocket/dist/index.js.map +1 -0
- package/vendor/@appport/transport-websocket/package.json +29 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { JsonValue, MaterializationRequest } from "../../protocol/dist/index.d.ts";
|
|
2
|
+
import type { CapabilityContext } from "./context.js";
|
|
3
|
+
import type { AppBoundryExecutionEvidence } from "./appboundry-materialization.js";
|
|
4
|
+
export type UsageOutcome = "success" | "failure";
|
|
5
|
+
export interface AppBoundryUsageRecord {
|
|
6
|
+
readonly applicationId: string;
|
|
7
|
+
readonly executionId: string;
|
|
8
|
+
readonly executionMode: "managed";
|
|
9
|
+
readonly capability: string;
|
|
10
|
+
readonly startedAt: string;
|
|
11
|
+
readonly durationMs: number;
|
|
12
|
+
readonly requests: 1;
|
|
13
|
+
readonly memoryMb: number;
|
|
14
|
+
readonly stateOperations: number;
|
|
15
|
+
readonly status: "success" | "failure";
|
|
16
|
+
}
|
|
17
|
+
export interface AppBoundryUsageSummary {
|
|
18
|
+
readonly applicationId: string;
|
|
19
|
+
readonly managedExecutions: number;
|
|
20
|
+
readonly requests: number;
|
|
21
|
+
readonly computeTimeMs: number;
|
|
22
|
+
readonly stateOperations: number;
|
|
23
|
+
readonly successful: number;
|
|
24
|
+
readonly failed: number;
|
|
25
|
+
}
|
|
26
|
+
export interface UsageEvent {
|
|
27
|
+
readonly id: string;
|
|
28
|
+
readonly organizationId: string;
|
|
29
|
+
readonly consumerId: string;
|
|
30
|
+
readonly consumerApplicationId?: string;
|
|
31
|
+
readonly providerId: string;
|
|
32
|
+
readonly providerOrganizationId: string;
|
|
33
|
+
readonly providerApplicationId?: string;
|
|
34
|
+
readonly capability: string;
|
|
35
|
+
readonly capabilityVersion: string;
|
|
36
|
+
readonly environment: string;
|
|
37
|
+
readonly invocationId: string;
|
|
38
|
+
readonly evidenceId?: string;
|
|
39
|
+
readonly timestamp: string;
|
|
40
|
+
readonly outcome: UsageOutcome;
|
|
41
|
+
readonly quantity: number;
|
|
42
|
+
readonly unit: string;
|
|
43
|
+
readonly metadata?: Readonly<Record<string, JsonValue>>;
|
|
44
|
+
}
|
|
45
|
+
export interface UsageMeasurement {
|
|
46
|
+
readonly quantity: number;
|
|
47
|
+
readonly unit: string;
|
|
48
|
+
readonly metadata?: Readonly<Record<string, JsonValue>>;
|
|
49
|
+
}
|
|
50
|
+
export interface UsageMeterInput {
|
|
51
|
+
readonly outcome: UsageOutcome;
|
|
52
|
+
readonly requestId: string;
|
|
53
|
+
readonly executionId: string;
|
|
54
|
+
readonly context: CapabilityContext;
|
|
55
|
+
readonly materializationRequest: MaterializationRequest;
|
|
56
|
+
readonly evidence: AppBoundryExecutionEvidence;
|
|
57
|
+
}
|
|
58
|
+
export type UsageMeter = (input: UsageMeterInput) => UsageMeasurement | Promise<UsageMeasurement>;
|
|
59
|
+
export interface UsageCaptureOverrides {
|
|
60
|
+
readonly id?: string;
|
|
61
|
+
readonly organizationId?: string;
|
|
62
|
+
readonly consumerId?: string;
|
|
63
|
+
readonly consumerApplicationId?: string;
|
|
64
|
+
readonly providerId?: string;
|
|
65
|
+
readonly providerOrganizationId?: string;
|
|
66
|
+
readonly providerApplicationId?: string;
|
|
67
|
+
readonly environment?: string;
|
|
68
|
+
readonly evidenceId?: string;
|
|
69
|
+
readonly timestamp?: string;
|
|
70
|
+
readonly quantity?: number;
|
|
71
|
+
readonly unit?: string;
|
|
72
|
+
readonly metadata?: Readonly<Record<string, JsonValue>>;
|
|
73
|
+
}
|
|
74
|
+
export interface UsageEventSink {
|
|
75
|
+
record(event: UsageEvent): Promise<void> | void;
|
|
76
|
+
}
|
|
77
|
+
export declare class InMemoryUsageEventSink implements UsageEventSink {
|
|
78
|
+
#private;
|
|
79
|
+
record(event: UsageEvent): void;
|
|
80
|
+
list(): readonly UsageEvent[];
|
|
81
|
+
}
|
|
82
|
+
export declare function defaultUsageMeter(): UsageMeasurement;
|
|
83
|
+
export declare function createUsageEvent(input: {
|
|
84
|
+
readonly outcome: UsageOutcome;
|
|
85
|
+
readonly requestId: string;
|
|
86
|
+
readonly executionId: string;
|
|
87
|
+
readonly context: CapabilityContext;
|
|
88
|
+
readonly materializationRequest: MaterializationRequest;
|
|
89
|
+
readonly evidence: AppBoundryExecutionEvidence;
|
|
90
|
+
readonly measurement?: UsageMeasurement;
|
|
91
|
+
readonly overrides?: UsageCaptureOverrides;
|
|
92
|
+
readonly timestamp?: string;
|
|
93
|
+
}): UsageEvent;
|
|
94
|
+
//# sourceMappingURL=appboundry-usage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appboundry-usage.d.ts","sourceRoot":"","sources":["../src/appboundry-usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
export class InMemoryUsageEventSink {
|
|
3
|
+
#events = [];
|
|
4
|
+
record(event) {
|
|
5
|
+
this.#events.push(event);
|
|
6
|
+
}
|
|
7
|
+
list() {
|
|
8
|
+
return [...this.#events];
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function defaultUsageMeter() {
|
|
12
|
+
return { quantity: 1, unit: "invocation" };
|
|
13
|
+
}
|
|
14
|
+
export function createUsageEvent(input) {
|
|
15
|
+
const materializationContext = input.materializationRequest.context ?? {};
|
|
16
|
+
const measurement = input.measurement ?? defaultUsageMeter();
|
|
17
|
+
const quantity = input.overrides?.quantity ?? measurement.quantity;
|
|
18
|
+
const unit = input.overrides?.unit ?? measurement.unit;
|
|
19
|
+
if (!Number.isFinite(quantity) || quantity < 0)
|
|
20
|
+
throw new Error("usage quantity must be a finite non-negative number");
|
|
21
|
+
if (!unit)
|
|
22
|
+
throw new Error("usage unit must be non-empty");
|
|
23
|
+
const metadata = mergeMetadata(measurement.metadata, input.overrides?.metadata);
|
|
24
|
+
const event = {
|
|
25
|
+
id: input.overrides?.id ?? `use_${randomUUID()}`,
|
|
26
|
+
organizationId: input.overrides?.organizationId ??
|
|
27
|
+
stringField(materializationContext, "organizationId") ??
|
|
28
|
+
stringField(materializationContext, "consumerOrganizationId") ??
|
|
29
|
+
input.evidence.consumerApplicationId,
|
|
30
|
+
consumerId: input.overrides?.consumerId ??
|
|
31
|
+
stringField(materializationContext, "consumerId") ??
|
|
32
|
+
input.context.principal?.id ??
|
|
33
|
+
input.context.authorization.principal?.id ??
|
|
34
|
+
input.evidence.consumerApplicationId,
|
|
35
|
+
...(input.overrides?.consumerApplicationId ?? input.evidence.consumerApplicationId
|
|
36
|
+
? { consumerApplicationId: input.overrides?.consumerApplicationId ?? input.evidence.consumerApplicationId }
|
|
37
|
+
: {}),
|
|
38
|
+
providerId: input.overrides?.providerId ??
|
|
39
|
+
stringField(materializationContext, "providerId") ??
|
|
40
|
+
input.evidence.providerApplicationId,
|
|
41
|
+
providerOrganizationId: input.overrides?.providerOrganizationId ??
|
|
42
|
+
stringField(materializationContext, "providerOrganizationId") ??
|
|
43
|
+
input.evidence.providerApplicationId,
|
|
44
|
+
...(input.overrides?.providerApplicationId ?? input.evidence.providerApplicationId
|
|
45
|
+
? { providerApplicationId: input.overrides?.providerApplicationId ?? input.evidence.providerApplicationId }
|
|
46
|
+
: {}),
|
|
47
|
+
capability: input.evidence.capability.name,
|
|
48
|
+
capabilityVersion: String(input.evidence.capability.version),
|
|
49
|
+
environment: input.overrides?.environment ??
|
|
50
|
+
input.evidence.resolvedEnvironment ??
|
|
51
|
+
input.evidence.resolvedTarget ??
|
|
52
|
+
input.evidence.requestedTarget,
|
|
53
|
+
invocationId: input.executionId,
|
|
54
|
+
evidenceId: input.overrides?.evidenceId ?? input.evidence.executionId,
|
|
55
|
+
timestamp: input.overrides?.timestamp ?? input.timestamp ?? new Date().toISOString(),
|
|
56
|
+
outcome: input.outcome,
|
|
57
|
+
quantity,
|
|
58
|
+
unit,
|
|
59
|
+
...(metadata ? { metadata } : {})
|
|
60
|
+
};
|
|
61
|
+
return deepFreeze(event);
|
|
62
|
+
}
|
|
63
|
+
function stringField(record, key) {
|
|
64
|
+
const value = record[key];
|
|
65
|
+
return typeof value === "string" && value.length > 0 ? value : undefined;
|
|
66
|
+
}
|
|
67
|
+
function mergeMetadata(base, override) {
|
|
68
|
+
if (!base && !override)
|
|
69
|
+
return undefined;
|
|
70
|
+
return deepFreeze({ ...(base ?? {}), ...(override ?? {}) });
|
|
71
|
+
}
|
|
72
|
+
function deepFreeze(value) {
|
|
73
|
+
if (value && typeof value === "object" && !Object.isFrozen(value)) {
|
|
74
|
+
for (const item of Object.values(value))
|
|
75
|
+
deepFreeze(item);
|
|
76
|
+
Object.freeze(value);
|
|
77
|
+
}
|
|
78
|
+
return value;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=appboundry-usage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appboundry-usage.js","sourceRoot":"","sources":["../src/appboundry-usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AppBoundry Application Conformance
|
|
3
|
+
*
|
|
4
|
+
* Answers one question deterministically, from the artifact alone:
|
|
5
|
+
*
|
|
6
|
+
* Is this an AppBoundry application?
|
|
7
|
+
*
|
|
8
|
+
* The check never inspects a source repository, implementation language,
|
|
9
|
+
* compiler, framework, build system, package manager, README, SDK, or protocol
|
|
10
|
+
* surface. It reads the packaged manifest and the artifact bytes, and nothing
|
|
11
|
+
* else.
|
|
12
|
+
*
|
|
13
|
+
* This is not a second validator. Every membership dimension delegates to the
|
|
14
|
+
* existing authoritative check:
|
|
15
|
+
*
|
|
16
|
+
* identity + manifest shape → parseApplicationPackageManifest
|
|
17
|
+
* artifact hash consistency → resolveApplicationPackageMetadata
|
|
18
|
+
* contract + fingerprint → parseAppBoundryContract
|
|
19
|
+
*
|
|
20
|
+
* One dimension had no existing check and is added here: whether the declared
|
|
21
|
+
* bytes are actually an executable module. Publication, resolution and
|
|
22
|
+
* deployment all verify the artifact's *hash* without ever compiling it, which
|
|
23
|
+
* is how a well-formed manifest can accompany bytes that no runtime can
|
|
24
|
+
* instantiate.
|
|
25
|
+
*/
|
|
26
|
+
export declare const APPLICATION_CONFORMANCE_PROTOCOL: "AppBoundry/application-conformance/1";
|
|
27
|
+
/**
|
|
28
|
+
* Membership failures, one per independently testable boundary.
|
|
29
|
+
*
|
|
30
|
+
* Codes are deliberately not a superset of every internal error: a failure is
|
|
31
|
+
* classified by the contract it violates, so a caller can act on it.
|
|
32
|
+
*/
|
|
33
|
+
export type ConformanceFailureCode = "MANIFEST_INVALID" | "ARTIFACT_HASH_MISMATCH" | "ARTIFACT_NOT_EXECUTABLE" | "CAPABILITY_INVALID";
|
|
34
|
+
export interface ConformanceCheck {
|
|
35
|
+
readonly name: string;
|
|
36
|
+
readonly status: "PASS" | "FAIL";
|
|
37
|
+
readonly code?: ConformanceFailureCode;
|
|
38
|
+
readonly evidence?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface ConformanceReport {
|
|
41
|
+
readonly protocol: typeof APPLICATION_CONFORMANCE_PROTOCOL;
|
|
42
|
+
readonly status: "CONFORMING" | "NON_CONFORMING";
|
|
43
|
+
readonly applicationId?: string;
|
|
44
|
+
readonly packageIdentity?: string;
|
|
45
|
+
readonly artifactHash?: string;
|
|
46
|
+
readonly checks: readonly ConformanceCheck[];
|
|
47
|
+
/** Codes of every violated contract, in check order. */
|
|
48
|
+
readonly failures: readonly ConformanceFailureCode[];
|
|
49
|
+
}
|
|
50
|
+
export interface ConformanceInput {
|
|
51
|
+
/** The packaged `.app` manifest, as parsed JSON or as its text. */
|
|
52
|
+
readonly manifest: unknown;
|
|
53
|
+
/** The bytes the manifest declares as its artifact. */
|
|
54
|
+
readonly artifact: Uint8Array;
|
|
55
|
+
}
|
|
56
|
+
/** The artifact format the runtime admits. Not a language or a toolchain. */
|
|
57
|
+
export declare const CONFORMING_ARTIFACT_FORMAT: "wasm/1";
|
|
58
|
+
/**
|
|
59
|
+
* Decide membership from the artifact and its declared contract.
|
|
60
|
+
*
|
|
61
|
+
* Checks run in dependency order and later checks are skipped once their input
|
|
62
|
+
* is known invalid, so a report never contains failures that are merely
|
|
63
|
+
* consequences of an earlier one.
|
|
64
|
+
*/
|
|
65
|
+
export declare function assessApplicationConformance(input: ConformanceInput): Promise<ConformanceReport>;
|
|
66
|
+
/** True when the artifact satisfies every membership contract. */
|
|
67
|
+
export declare function isConforming(report: ConformanceReport): boolean;
|
|
68
|
+
//# sourceMappingURL=application-conformance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-conformance.d.ts","sourceRoot":"","sources":["../src/application-conformance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AASH,eAAO,MAAM,gCAAgC,EAAG,sCAA+C,CAAC;AAEhG;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAC9B,kBAAkB,GAClB,wBAAwB,GACxB,yBAAyB,GACzB,oBAAoB,CAAC;AAEzB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,sBAAsB,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,OAAO,gCAAgC,CAAC;IAC3D,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAAC;IACjD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;CAC/B;AAED,6EAA6E;AAC7E,eAAO,MAAM,0BAA0B,EAAG,QAAiB,CAAC;AAI5D;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA8DtG;AAED,kEAAkE;AAClE,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAE/D"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AppBoundry Application Conformance
|
|
3
|
+
*
|
|
4
|
+
* Answers one question deterministically, from the artifact alone:
|
|
5
|
+
*
|
|
6
|
+
* Is this an AppBoundry application?
|
|
7
|
+
*
|
|
8
|
+
* The check never inspects a source repository, implementation language,
|
|
9
|
+
* compiler, framework, build system, package manager, README, SDK, or protocol
|
|
10
|
+
* surface. It reads the packaged manifest and the artifact bytes, and nothing
|
|
11
|
+
* else.
|
|
12
|
+
*
|
|
13
|
+
* This is not a second validator. Every membership dimension delegates to the
|
|
14
|
+
* existing authoritative check:
|
|
15
|
+
*
|
|
16
|
+
* identity + manifest shape → parseApplicationPackageManifest
|
|
17
|
+
* artifact hash consistency → resolveApplicationPackageMetadata
|
|
18
|
+
* contract + fingerprint → parseAppBoundryContract
|
|
19
|
+
*
|
|
20
|
+
* One dimension had no existing check and is added here: whether the declared
|
|
21
|
+
* bytes are actually an executable module. Publication, resolution and
|
|
22
|
+
* deployment all verify the artifact's *hash* without ever compiling it, which
|
|
23
|
+
* is how a well-formed manifest can accompany bytes that no runtime can
|
|
24
|
+
* instantiate.
|
|
25
|
+
*/
|
|
26
|
+
import { parseApplicationPackageManifest, resolveApplicationPackageMetadata, APPPORT_APPLICATION_PACKAGE_ARTIFACT_FILE } from "./application-package.js";
|
|
27
|
+
export const APPLICATION_CONFORMANCE_PROTOCOL = "AppBoundry/application-conformance/1";
|
|
28
|
+
/** The artifact format the runtime admits. Not a language or a toolchain. */
|
|
29
|
+
export const CONFORMING_ARTIFACT_FORMAT = "wasm/1";
|
|
30
|
+
const describe = (error) => error instanceof Error ? error.message : String(error);
|
|
31
|
+
/**
|
|
32
|
+
* Decide membership from the artifact and its declared contract.
|
|
33
|
+
*
|
|
34
|
+
* Checks run in dependency order and later checks are skipped once their input
|
|
35
|
+
* is known invalid, so a report never contains failures that are merely
|
|
36
|
+
* consequences of an earlier one.
|
|
37
|
+
*/
|
|
38
|
+
export async function assessApplicationConformance(input) {
|
|
39
|
+
const checks = [];
|
|
40
|
+
const pass = (name, evidence) => { checks.push({ name, status: "PASS", ...(evidence ? { evidence } : {}) }); };
|
|
41
|
+
const fail = (name, code, evidence) => { checks.push({ name, status: "FAIL", code, evidence }); };
|
|
42
|
+
const report = (manifest, artifactHash) => ({
|
|
43
|
+
protocol: APPLICATION_CONFORMANCE_PROTOCOL,
|
|
44
|
+
status: checks.some(check => check.status === "FAIL") ? "NON_CONFORMING" : "CONFORMING",
|
|
45
|
+
...(manifest ? { applicationId: manifest.application.id, packageIdentity: manifest.packageIdentity.contentAddress } : {}),
|
|
46
|
+
...(artifactHash ? { artifactHash } : {}),
|
|
47
|
+
checks,
|
|
48
|
+
failures: checks.flatMap(check => check.code ? [check.code] : [])
|
|
49
|
+
});
|
|
50
|
+
// 1. Manifest shape and self-addressing identity. The existing parser
|
|
51
|
+
// recomputes the package identity, so a tampered manifest fails here.
|
|
52
|
+
let manifest;
|
|
53
|
+
try {
|
|
54
|
+
manifest = parseApplicationPackageManifest(input.manifest);
|
|
55
|
+
pass("application package manifest", manifest.packageIdentity.contentAddress);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
fail("application package manifest", "MANIFEST_INVALID", describe(error));
|
|
59
|
+
return report();
|
|
60
|
+
}
|
|
61
|
+
// 2. Manifest/artifact consistency, through the existing resolver.
|
|
62
|
+
let artifactHash;
|
|
63
|
+
try {
|
|
64
|
+
artifactHash = resolveApplicationPackageMetadata({ manifest: input.manifest, artifact: input.artifact }).artifactHash;
|
|
65
|
+
pass("artifact matches its declared hash", artifactHash);
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
fail("artifact matches its declared hash", "ARTIFACT_HASH_MISMATCH", describe(error));
|
|
69
|
+
}
|
|
70
|
+
// 3. The bytes are actually an executable module. No other layer checks this:
|
|
71
|
+
// publication, resolution and deployment verify the hash and stop there.
|
|
72
|
+
try {
|
|
73
|
+
await WebAssembly.compile(Uint8Array.from(input.artifact));
|
|
74
|
+
pass("artifact is an executable module");
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
fail("artifact is an executable module", "ARTIFACT_NOT_EXECUTABLE", describe(error));
|
|
78
|
+
}
|
|
79
|
+
// 4. Every declared capability is operable: a caller must be able to learn
|
|
80
|
+
// what to send, what comes back, and what authority it needs.
|
|
81
|
+
const capabilityFailures = [];
|
|
82
|
+
for (const capability of manifest.contract.provides) {
|
|
83
|
+
const reference = `${capability.name}@${capability.version}`;
|
|
84
|
+
if (capability.kind !== "request" && capability.kind !== "stream")
|
|
85
|
+
capabilityFailures.push(`${reference}: kind must be request or stream`);
|
|
86
|
+
for (const schema of ["inputSchema", "outputSchema"]) {
|
|
87
|
+
const value = capability[schema];
|
|
88
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
89
|
+
capabilityFailures.push(`${reference}: ${schema} must be a schema object`);
|
|
90
|
+
}
|
|
91
|
+
const authorization = capability["authorization"];
|
|
92
|
+
if (!Array.isArray(authorization) || authorization.some(scope => typeof scope !== "string" || !scope.length)) {
|
|
93
|
+
capabilityFailures.push(`${reference}: authorization must be an array of non-empty scopes`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (manifest.contract.provides.length === 0)
|
|
97
|
+
capabilityFailures.push("the contract declares no capabilities");
|
|
98
|
+
if (capabilityFailures.length === 0)
|
|
99
|
+
pass("capabilities are operable", `${manifest.contract.provides.length} declared`);
|
|
100
|
+
else
|
|
101
|
+
fail("capabilities are operable", "CAPABILITY_INVALID", capabilityFailures.join("; "));
|
|
102
|
+
return report(manifest, artifactHash);
|
|
103
|
+
}
|
|
104
|
+
/** True when the artifact satisfies every membership contract. */
|
|
105
|
+
export function isConforming(report) {
|
|
106
|
+
return report.status === "CONFORMING";
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=application-conformance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-conformance.js","sourceRoot":"","sources":["../src/application-conformance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application Implementations (F6)
|
|
3
|
+
*
|
|
4
|
+
* An implementation is the executable association between an application
|
|
5
|
+
* capability, a verified source connection, and an artifact. It carries no
|
|
6
|
+
* application identity and no authorization of its own.
|
|
7
|
+
*
|
|
8
|
+
* Runtime order is unchanged by F6:
|
|
9
|
+
*
|
|
10
|
+
* discovery → compatibility → authorization → binding
|
|
11
|
+
* → implementation selection → materialization → execution
|
|
12
|
+
*
|
|
13
|
+
* Implementation selection therefore requires an authorized binding, and the
|
|
14
|
+
* selection is revalidated against durable authority before materialization so
|
|
15
|
+
* a serialized binding can never turn eligibility into an in-memory assumption.
|
|
16
|
+
*/
|
|
17
|
+
import type { AuthoritativeApplicationContract } from "./contract-attestation.js";
|
|
18
|
+
import { type ApplicationSourceStore } from "./application-source.js";
|
|
19
|
+
import { type AuthorizedCapabilityBinding } from "./binding.js";
|
|
20
|
+
import type { ExecutableArtifact } from "./artifact.js";
|
|
21
|
+
export type ApplicationImplementationStatus = "verified" | "stale" | "revoked" | "failed";
|
|
22
|
+
/** Durable record of one executable implementation of one capability. */
|
|
23
|
+
export interface ApplicationImplementation {
|
|
24
|
+
readonly id: string;
|
|
25
|
+
readonly applicationId: string;
|
|
26
|
+
readonly sourceConnectionId: string;
|
|
27
|
+
readonly capability: {
|
|
28
|
+
readonly name: string;
|
|
29
|
+
readonly version: number;
|
|
30
|
+
};
|
|
31
|
+
readonly contractFingerprint: string;
|
|
32
|
+
readonly artifactHash: string;
|
|
33
|
+
readonly status: ApplicationImplementationStatus;
|
|
34
|
+
readonly sequence: number;
|
|
35
|
+
readonly createdAt: string;
|
|
36
|
+
readonly verifiedAt?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface ApplicationImplementationStore {
|
|
39
|
+
get(applicationId: string, implementationId: string): Promise<ApplicationImplementation | undefined>;
|
|
40
|
+
put(record: ApplicationImplementation, expectedSequence?: number): Promise<void>;
|
|
41
|
+
list(applicationId?: string): Promise<ApplicationImplementation[]>;
|
|
42
|
+
}
|
|
43
|
+
export declare class ApplicationImplementationConflictError extends Error {
|
|
44
|
+
constructor(id: string);
|
|
45
|
+
}
|
|
46
|
+
export declare class MemoryApplicationImplementationStore implements ApplicationImplementationStore {
|
|
47
|
+
#private;
|
|
48
|
+
get(applicationId: string, implementationId: string): Promise<ApplicationImplementation | undefined>;
|
|
49
|
+
put(record: ApplicationImplementation, expectedSequence?: number): Promise<void>;
|
|
50
|
+
list(applicationId?: string): Promise<ApplicationImplementation[]>;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The implementation chosen for one authorized execution.
|
|
54
|
+
*
|
|
55
|
+
* Structural data only: the durable proof that selected it is module-private,
|
|
56
|
+
* exactly as binding issuance is.
|
|
57
|
+
*/
|
|
58
|
+
export interface SelectedImplementation {
|
|
59
|
+
readonly implementationId: string;
|
|
60
|
+
readonly sourceConnectionId: string;
|
|
61
|
+
readonly applicationId: string;
|
|
62
|
+
readonly capability: {
|
|
63
|
+
readonly name: string;
|
|
64
|
+
readonly version: number;
|
|
65
|
+
};
|
|
66
|
+
readonly contractFingerprint: string;
|
|
67
|
+
readonly artifactHash: string;
|
|
68
|
+
}
|
|
69
|
+
/** Throws unless the selection was issued by ApplicationImplementationOperations. */
|
|
70
|
+
export declare function assertIssuedImplementationSelection(selection: SelectedImplementation): void;
|
|
71
|
+
/** Revalidate the selection against durable source/implementation authority. */
|
|
72
|
+
export declare function assertImplementationSelectionEligible(selection: SelectedImplementation): Promise<void>;
|
|
73
|
+
/** The artifact must be the exact artifact the selected implementation names. */
|
|
74
|
+
export declare function assertArtifactMatchesSelection(selection: SelectedImplementation, artifact: ExecutableArtifact): void;
|
|
75
|
+
/** Registers, revalidates and selects implementations from verified sources. */
|
|
76
|
+
export declare class ApplicationImplementationOperations {
|
|
77
|
+
#private;
|
|
78
|
+
private readonly store;
|
|
79
|
+
private readonly sources;
|
|
80
|
+
private readonly authority;
|
|
81
|
+
private readonly now;
|
|
82
|
+
constructor(store: ApplicationImplementationStore, sources: ApplicationSourceStore, authority: AuthoritativeApplicationContract, now?: () => string);
|
|
83
|
+
/**
|
|
84
|
+
* Register an executable implementation for a verified source.
|
|
85
|
+
*
|
|
86
|
+
* The contract fingerprint is derived from authority, never accepted from the
|
|
87
|
+
* caller, and the capability must be covered by the source connection.
|
|
88
|
+
*/
|
|
89
|
+
register(input: {
|
|
90
|
+
applicationId: string;
|
|
91
|
+
sourceConnectionId: string;
|
|
92
|
+
capability: {
|
|
93
|
+
name: string;
|
|
94
|
+
version: number;
|
|
95
|
+
};
|
|
96
|
+
artifactHash: string;
|
|
97
|
+
}): Promise<ApplicationImplementation>;
|
|
98
|
+
/** Revoke an implementation without touching the application or its history. */
|
|
99
|
+
revoke(applicationId: string, implementationId: string): Promise<ApplicationImplementation>;
|
|
100
|
+
/** Mark implementations of superseded contract revisions stale. */
|
|
101
|
+
refresh(applicationId: string): Promise<ApplicationImplementation[]>;
|
|
102
|
+
/**
|
|
103
|
+
* Implementations that may currently execute a capability, in deterministic
|
|
104
|
+
* order: source identity first, then implementation identity. Selection is
|
|
105
|
+
* never timing-dependent.
|
|
106
|
+
*/
|
|
107
|
+
eligible(applicationId: string, capability: {
|
|
108
|
+
name: string;
|
|
109
|
+
version: number;
|
|
110
|
+
}): Promise<ApplicationImplementation[]>;
|
|
111
|
+
/**
|
|
112
|
+
* Select an implementation for an authorized binding.
|
|
113
|
+
*
|
|
114
|
+
* Provider resolution has already chosen the *application*; this chooses an
|
|
115
|
+
* eligible source/artifact for it. Without an authorized, still-authoritative
|
|
116
|
+
* binding there is no selection and therefore no materialization.
|
|
117
|
+
*/
|
|
118
|
+
selectForBinding(binding: AuthorizedCapabilityBinding, capability: {
|
|
119
|
+
name: string;
|
|
120
|
+
version: number;
|
|
121
|
+
}): Promise<SelectedImplementation>;
|
|
122
|
+
get: (applicationId: string, implementationId: string) => Promise<ApplicationImplementation | undefined>;
|
|
123
|
+
list: (applicationId?: string) => Promise<ApplicationImplementation[]>;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=application-implementation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application-implementation.d.ts","sourceRoot":"","sources":["../src/application-implementation.ts"],"names":[],"mappings":"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"}
|