@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,232 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
export const ONBOARDING_STAGES = [
|
|
3
|
+
"UNDERSTAND",
|
|
4
|
+
"START",
|
|
5
|
+
"CONNECT",
|
|
6
|
+
"DISCOVER",
|
|
7
|
+
"PROMOTE",
|
|
8
|
+
"EXERCISE",
|
|
9
|
+
"DIAGNOSE",
|
|
10
|
+
"RESOLVE",
|
|
11
|
+
"VERIFY",
|
|
12
|
+
"COMPLETE",
|
|
13
|
+
"BLOCKED"
|
|
14
|
+
];
|
|
15
|
+
export class AppBoundryOnboardingEngine {
|
|
16
|
+
#application;
|
|
17
|
+
#understand;
|
|
18
|
+
#startApplication;
|
|
19
|
+
#connectBoundary;
|
|
20
|
+
#operationDiscovery;
|
|
21
|
+
#promoteOperation;
|
|
22
|
+
#exerciseEngine;
|
|
23
|
+
#exerciseRequests;
|
|
24
|
+
#diagnosticEngine;
|
|
25
|
+
#diagnosticFacts;
|
|
26
|
+
#clock;
|
|
27
|
+
#idGenerator;
|
|
28
|
+
constructor(options = {}) {
|
|
29
|
+
this.#application = options.application;
|
|
30
|
+
this.#understand = options.understand;
|
|
31
|
+
this.#startApplication = options.startApplication;
|
|
32
|
+
this.#connectBoundary = options.connectBoundary;
|
|
33
|
+
this.#operationDiscovery = options.operationDiscovery;
|
|
34
|
+
this.#promoteOperation = options.promoteOperation;
|
|
35
|
+
this.#exerciseEngine = options.exerciseEngine;
|
|
36
|
+
this.#exerciseRequests = options.exerciseRequests;
|
|
37
|
+
this.#diagnosticEngine = options.diagnosticEngine;
|
|
38
|
+
this.#diagnosticFacts = options.diagnosticFacts;
|
|
39
|
+
this.#clock = options.clock ?? (() => new Date().toISOString());
|
|
40
|
+
this.#idGenerator = options.idGenerator ?? (() => randomUUID());
|
|
41
|
+
}
|
|
42
|
+
createSession(input) {
|
|
43
|
+
const createdAt = input.createdAt ?? this.#clock();
|
|
44
|
+
return {
|
|
45
|
+
id: input.id ?? `onboarding_${this.#idGenerator()}`,
|
|
46
|
+
applicationId: input.applicationId,
|
|
47
|
+
stage: "UNDERSTAND",
|
|
48
|
+
applicationStatus: input.applicationStatus ?? { lifecycle: "unknown", process: "UNKNOWN", boundary: "UNKNOWN", verified: false },
|
|
49
|
+
discoveredOperations: [],
|
|
50
|
+
promotedCapabilities: [],
|
|
51
|
+
blockers: [],
|
|
52
|
+
evidence: [`application:${input.applicationId}`],
|
|
53
|
+
createdAt,
|
|
54
|
+
updatedAt: createdAt
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
async start(session) {
|
|
58
|
+
let current = await this.#runStep(this.#transition(session, "UNDERSTAND"), this.#understand);
|
|
59
|
+
if (current.stage === "BLOCKED")
|
|
60
|
+
return current;
|
|
61
|
+
current = await this.#runStep(this.#transition(current, "START"), this.#startApplication);
|
|
62
|
+
if (current.stage === "BLOCKED")
|
|
63
|
+
return current;
|
|
64
|
+
current = await this.#runStep(this.#transition(current, "CONNECT"), this.#connectBoundary);
|
|
65
|
+
if (current.stage === "BLOCKED")
|
|
66
|
+
return current;
|
|
67
|
+
const discovery = await this.#discover(this.#transition(current, "DISCOVER"));
|
|
68
|
+
current = discovery.session;
|
|
69
|
+
if (current.stage === "BLOCKED")
|
|
70
|
+
return current;
|
|
71
|
+
const promoted = [];
|
|
72
|
+
current = await this.#promote(this.#transition(current, "PROMOTE"), discovery.operations, promoted);
|
|
73
|
+
if (current.stage === "BLOCKED")
|
|
74
|
+
return current;
|
|
75
|
+
const exercises = [];
|
|
76
|
+
current = await this.#exercise(this.#transition(current, "EXERCISE"), promoted, exercises);
|
|
77
|
+
if (current.stage === "BLOCKED")
|
|
78
|
+
return current;
|
|
79
|
+
const diagnostic = this.#diagnose(this.#transition(current, "DIAGNOSE"), exercises.at(-1));
|
|
80
|
+
current = diagnostic.session;
|
|
81
|
+
current = this.#resolve(this.#transition(current, "RESOLVE"), diagnostic.report);
|
|
82
|
+
if (current.stage === "BLOCKED")
|
|
83
|
+
return current;
|
|
84
|
+
current = await this.#verify(this.#transition(current, "VERIFY"), exercises);
|
|
85
|
+
if (current.stage === "BLOCKED")
|
|
86
|
+
return current;
|
|
87
|
+
return this.#transition(current, "COMPLETE", { applicationStatus: { ...current.applicationStatus, verified: true } });
|
|
88
|
+
}
|
|
89
|
+
async #runStep(session, step) {
|
|
90
|
+
if (!step)
|
|
91
|
+
return session;
|
|
92
|
+
const result = await step(session);
|
|
93
|
+
return this.#applyStepResult(session, result);
|
|
94
|
+
}
|
|
95
|
+
async #discover(session) {
|
|
96
|
+
if (!this.#operationDiscovery) {
|
|
97
|
+
return {
|
|
98
|
+
session: this.#blocked(session, "DISCOVERY_NOT_CONFIGURED", "No AppBoundry operation discovery primitive was configured."),
|
|
99
|
+
operations: []
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
const operations = await this.#operationDiscovery.discover({
|
|
103
|
+
applicationId: session.applicationId,
|
|
104
|
+
...this.#application
|
|
105
|
+
});
|
|
106
|
+
if (!operations.length) {
|
|
107
|
+
return {
|
|
108
|
+
session: this.#blocked(session, "NO_OPERATIONS_DISCOVERED", "No invokable application operations were discovered."),
|
|
109
|
+
operations
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
return {
|
|
113
|
+
session: this.#merge(session, {
|
|
114
|
+
discoveredOperations: operations.map(operation => operation.id),
|
|
115
|
+
evidence: [...session.evidence, ...operations.map(operation => `operation:${operation.id}`)]
|
|
116
|
+
}),
|
|
117
|
+
operations
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
async #promote(session, operations, promoted) {
|
|
121
|
+
if (!this.#promoteOperation) {
|
|
122
|
+
return this.#blocked(session, "PROMOTION_NOT_CONFIGURED", "No AppBoundry capability promotion primitive was configured.");
|
|
123
|
+
}
|
|
124
|
+
for (const operation of operations.filter(operation => session.discoveredOperations.includes(operation.id))) {
|
|
125
|
+
const capability = await this.#promoteOperation(operation, session);
|
|
126
|
+
if (capability)
|
|
127
|
+
promoted.push(capability);
|
|
128
|
+
}
|
|
129
|
+
if (!promoted.length) {
|
|
130
|
+
return this.#blocked(session, "NO_CAPABILITIES_PROMOTED", "No discovered operations were promoted to canonical capabilities.");
|
|
131
|
+
}
|
|
132
|
+
return this.#merge(session, {
|
|
133
|
+
promotedCapabilities: promoted.map(entry => `${entry.capability.name}@${entry.capability.version}`),
|
|
134
|
+
evidence: [...session.evidence, ...promoted.map(entry => `promotion:${entry.promotion.promotionId}`)]
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
async #exercise(session, promoted, exercises) {
|
|
138
|
+
if (!this.#exerciseEngine || !this.#exerciseRequests) {
|
|
139
|
+
return this.#blocked(session, "EXERCISE_NOT_CONFIGURED", "No AppBoundry exercise primitive was configured.");
|
|
140
|
+
}
|
|
141
|
+
const requests = await this.#exerciseRequests(session, promoted);
|
|
142
|
+
if (!requests.length) {
|
|
143
|
+
return this.#blocked(session, "NO_EXERCISE_REQUEST", "No exercise request was available for the promoted capabilities.");
|
|
144
|
+
}
|
|
145
|
+
let current = session;
|
|
146
|
+
for (const request of requests) {
|
|
147
|
+
const exercise = await this.#exerciseEngine.exercise(request);
|
|
148
|
+
exercises.push(exercise);
|
|
149
|
+
current = this.#merge(current, {
|
|
150
|
+
activeExerciseId: exercise.id,
|
|
151
|
+
evidence: [...current.evidence, `exercise:${exercise.id}`]
|
|
152
|
+
});
|
|
153
|
+
if (exercise.outcome === "VERIFIED")
|
|
154
|
+
return current;
|
|
155
|
+
}
|
|
156
|
+
return current;
|
|
157
|
+
}
|
|
158
|
+
#diagnose(session, exercise) {
|
|
159
|
+
if (!this.#diagnosticEngine)
|
|
160
|
+
return { session };
|
|
161
|
+
const report = this.#diagnosticEngine.diagnose({
|
|
162
|
+
exercise,
|
|
163
|
+
applicationId: session.applicationId,
|
|
164
|
+
facts: this.#diagnosticFacts?.(session, exercise),
|
|
165
|
+
timestamp: this.#clock()
|
|
166
|
+
});
|
|
167
|
+
return {
|
|
168
|
+
report,
|
|
169
|
+
session: this.#merge(session, {
|
|
170
|
+
activeDiagnosticId: report.id,
|
|
171
|
+
evidence: [...session.evidence, `diagnostic:${report.id}`, ...report.diagnostics.map(diagnostic => `diagnostic:${diagnostic.id}`)]
|
|
172
|
+
})
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
#resolve(session, report) {
|
|
176
|
+
const blockers = report?.diagnostics.filter(diagnostic => diagnostic.blocking) ?? [];
|
|
177
|
+
if (!blockers.length)
|
|
178
|
+
return session;
|
|
179
|
+
return this.#blocked(session, blockers[0]?.code ?? "DIAGNOSTIC_BLOCKED", blockers[0]?.summary ?? "A diagnostic is blocking onboarding.", {
|
|
180
|
+
diagnosticId: blockers[0]?.id,
|
|
181
|
+
evidence: blockers.flatMap(diagnostic => [`diagnostic:${diagnostic.id}`, ...diagnostic.evidence.map(item => item.reference ?? item.type)]),
|
|
182
|
+
recommendations: blockers.flatMap(diagnostic => diagnostic.recommendations)
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
async #verify(session, exercises) {
|
|
186
|
+
if (!this.#exerciseEngine) {
|
|
187
|
+
return this.#blocked(session, "VERIFY_NOT_CONFIGURED", "No AppBoundry exercise status primitive was configured.");
|
|
188
|
+
}
|
|
189
|
+
for (const exercise of exercises) {
|
|
190
|
+
const status = await this.#exerciseEngine.status({
|
|
191
|
+
applicationId: session.applicationId,
|
|
192
|
+
capability: exercise.capability
|
|
193
|
+
});
|
|
194
|
+
if (status === "VERIFIED")
|
|
195
|
+
return session;
|
|
196
|
+
}
|
|
197
|
+
return this.#blocked(session, "CAPABILITY_NOT_VERIFIED", "No exercised capability has authoritative VERIFIED status.");
|
|
198
|
+
}
|
|
199
|
+
#applyStepResult(session, result) {
|
|
200
|
+
let current = this.#merge(session, {
|
|
201
|
+
...(result.applicationStatus ? { applicationStatus: { ...session.applicationStatus, ...result.applicationStatus } } : {}),
|
|
202
|
+
...(result.evidence ? { evidence: [...session.evidence, ...result.evidence] } : {})
|
|
203
|
+
});
|
|
204
|
+
for (const blocker of result.blockers ?? []) {
|
|
205
|
+
current = this.#blocked(current, blocker.code, blocker.message, blocker);
|
|
206
|
+
}
|
|
207
|
+
return current;
|
|
208
|
+
}
|
|
209
|
+
#blocked(session, code, message, options = {}) {
|
|
210
|
+
const blocker = {
|
|
211
|
+
id: `blocker_${this.#idGenerator()}`,
|
|
212
|
+
stage: session.stage,
|
|
213
|
+
code,
|
|
214
|
+
message,
|
|
215
|
+
evidence: options.evidence ?? session.evidence,
|
|
216
|
+
...(options.diagnosticId ? { diagnosticId: options.diagnosticId } : {}),
|
|
217
|
+
...(options.recommendations ? { recommendations: options.recommendations } : {})
|
|
218
|
+
};
|
|
219
|
+
return this.#transition(this.#merge(session, { blockers: [...session.blockers, blocker] }), "BLOCKED");
|
|
220
|
+
}
|
|
221
|
+
#transition(session, stage, patch = {}) {
|
|
222
|
+
return this.#merge(session, { ...patch, stage });
|
|
223
|
+
}
|
|
224
|
+
#merge(session, patch) {
|
|
225
|
+
return {
|
|
226
|
+
...session,
|
|
227
|
+
...patch,
|
|
228
|
+
updatedAt: this.#clock()
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=appboundry-onboarding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appboundry-onboarding.js","sourceRoot":"","sources":["../src/appboundry-onboarding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { type ConcurrencyPolicy, type IdempotencySupport, type JsonValue } from "../../protocol/dist/index.d.ts";
|
|
2
|
+
import type { CapabilityManifestEntry } from "./manifest.js";
|
|
3
|
+
export interface ApplicationExecutionContext {
|
|
4
|
+
readonly applicationId?: string;
|
|
5
|
+
readonly name?: string;
|
|
6
|
+
readonly version?: string;
|
|
7
|
+
readonly workingDirectory?: string;
|
|
8
|
+
readonly metadata?: Readonly<Record<string, JsonValue>>;
|
|
9
|
+
}
|
|
10
|
+
export interface DiscoveredOperationSourceLocation {
|
|
11
|
+
readonly uri: string;
|
|
12
|
+
readonly startLine?: number;
|
|
13
|
+
readonly endLine?: number;
|
|
14
|
+
}
|
|
15
|
+
export interface DiscoveredInvocationSurface {
|
|
16
|
+
readonly kind: string;
|
|
17
|
+
readonly method?: string;
|
|
18
|
+
readonly path?: string;
|
|
19
|
+
readonly address?: string;
|
|
20
|
+
readonly metadata?: Readonly<Record<string, JsonValue>>;
|
|
21
|
+
}
|
|
22
|
+
export interface DiscoveredOperationEvidence {
|
|
23
|
+
readonly kind: string;
|
|
24
|
+
readonly summary: string;
|
|
25
|
+
readonly location?: DiscoveredOperationSourceLocation;
|
|
26
|
+
readonly data?: JsonValue;
|
|
27
|
+
}
|
|
28
|
+
export interface DiscoveredOperation {
|
|
29
|
+
readonly id: string;
|
|
30
|
+
readonly nativeName: string;
|
|
31
|
+
readonly source: string;
|
|
32
|
+
readonly sourceLocation?: DiscoveredOperationSourceLocation;
|
|
33
|
+
readonly invocationSurface: DiscoveredInvocationSurface;
|
|
34
|
+
readonly input: JsonValue;
|
|
35
|
+
readonly output: JsonValue;
|
|
36
|
+
readonly confidence: number;
|
|
37
|
+
readonly evidence: readonly DiscoveredOperationEvidence[];
|
|
38
|
+
}
|
|
39
|
+
export interface OperationDiscoveryProvider {
|
|
40
|
+
readonly id: string;
|
|
41
|
+
discover(application: ApplicationExecutionContext): Promise<readonly DiscoveredOperation[]> | readonly DiscoveredOperation[];
|
|
42
|
+
}
|
|
43
|
+
export interface PromotedCapabilityOptions {
|
|
44
|
+
readonly name: string;
|
|
45
|
+
readonly version: number;
|
|
46
|
+
readonly kind?: "request" | "stream";
|
|
47
|
+
readonly description?: string;
|
|
48
|
+
readonly inputSchema?: JsonValue;
|
|
49
|
+
readonly outputSchema?: JsonValue;
|
|
50
|
+
readonly authorization?: readonly string[];
|
|
51
|
+
readonly idempotency?: IdempotencySupport;
|
|
52
|
+
readonly concurrency?: ConcurrencyPolicy;
|
|
53
|
+
readonly timeoutMs?: number;
|
|
54
|
+
readonly emits?: readonly string[];
|
|
55
|
+
readonly deprecated?: boolean;
|
|
56
|
+
}
|
|
57
|
+
export interface CapabilityPromotionRecord {
|
|
58
|
+
readonly promotionId: string;
|
|
59
|
+
readonly operationId: string;
|
|
60
|
+
readonly nativeName: string;
|
|
61
|
+
readonly source: string;
|
|
62
|
+
readonly sourceLocation?: DiscoveredOperationSourceLocation;
|
|
63
|
+
readonly invocationSurface: DiscoveredInvocationSurface;
|
|
64
|
+
readonly canonicalName: string;
|
|
65
|
+
readonly canonicalVersion: number;
|
|
66
|
+
readonly promotedAt: string;
|
|
67
|
+
readonly confidence: number;
|
|
68
|
+
readonly evidence: readonly DiscoveredOperationEvidence[];
|
|
69
|
+
}
|
|
70
|
+
export interface PromotedCapability {
|
|
71
|
+
readonly capability: CapabilityManifestEntry;
|
|
72
|
+
readonly promotion: CapabilityPromotionRecord;
|
|
73
|
+
}
|
|
74
|
+
export declare class InMemoryOperationDiscoveryProviderRegistry implements OperationDiscoveryProvider {
|
|
75
|
+
#private;
|
|
76
|
+
readonly id: string;
|
|
77
|
+
constructor(id?: string);
|
|
78
|
+
register(provider: OperationDiscoveryProvider): this;
|
|
79
|
+
unregister(providerId: string): boolean;
|
|
80
|
+
list(): readonly OperationDiscoveryProvider[];
|
|
81
|
+
discover(application: ApplicationExecutionContext): Promise<readonly DiscoveredOperation[]>;
|
|
82
|
+
}
|
|
83
|
+
export declare function operationDiscoveryProvider(input: {
|
|
84
|
+
readonly id: string;
|
|
85
|
+
readonly operations: readonly DiscoveredOperation[];
|
|
86
|
+
}): OperationDiscoveryProvider;
|
|
87
|
+
export declare function promoteDiscoveredOperation(input: {
|
|
88
|
+
readonly operation: DiscoveredOperation;
|
|
89
|
+
readonly capability: PromotedCapabilityOptions;
|
|
90
|
+
readonly promotionId?: string;
|
|
91
|
+
readonly promotedAt?: string;
|
|
92
|
+
}): PromotedCapability;
|
|
93
|
+
//# sourceMappingURL=appboundry-operation-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appboundry-operation-discovery.d.ts","sourceRoot":"","sources":["../src/appboundry-operation-discovery.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE7D,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,iCAAiC,CAAC;IACtD,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,iCAAiC,CAAC;IAC5D,QAAQ,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;IACxD,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,2BAA2B,EAAE,CAAC;CAC3D;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,2BAA2B,GAAG,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC,GAAG,SAAS,mBAAmB,EAAE,CAAC;CAC9H;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,iCAAiC,CAAC;IAC5D,QAAQ,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;IACxD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,2BAA2B,EAAE,CAAC;CAC3D;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,yBAAyB,CAAC;CAC/C;AAED,qBAAa,0CAA2C,YAAW,0BAA0B;;IAG3F,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;gBAER,EAAE,SAAmC;IAIjD,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,GAAG,IAAI;IAOpD,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAIvC,IAAI,IAAI,SAAS,0BAA0B,EAAE;IAIvC,QAAQ,CAAC,WAAW,EAAE,2BAA2B,GAAG,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC;CASlG;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACrD,GAAG,0BAA0B,CAO7B;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,GAAG,kBAAkB,CAiCrB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { validateName } from "../../protocol/dist/index.js";
|
|
3
|
+
export class InMemoryOperationDiscoveryProviderRegistry {
|
|
4
|
+
#providers = new Map();
|
|
5
|
+
id;
|
|
6
|
+
constructor(id = "appboundry.operation-discovery") {
|
|
7
|
+
this.id = id;
|
|
8
|
+
}
|
|
9
|
+
register(provider) {
|
|
10
|
+
if (!provider.id)
|
|
11
|
+
throw new Error("operation discovery provider id must be non-empty");
|
|
12
|
+
if (this.#providers.has(provider.id))
|
|
13
|
+
throw new Error(`operation discovery provider "${provider.id}" is already registered`);
|
|
14
|
+
this.#providers.set(provider.id, provider);
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
unregister(providerId) {
|
|
18
|
+
return this.#providers.delete(providerId);
|
|
19
|
+
}
|
|
20
|
+
list() {
|
|
21
|
+
return [...this.#providers.values()].sort((left, right) => left.id.localeCompare(right.id));
|
|
22
|
+
}
|
|
23
|
+
async discover(application) {
|
|
24
|
+
const operations = new Map();
|
|
25
|
+
for (const provider of this.list()) {
|
|
26
|
+
for (const operation of await provider.discover(application)) {
|
|
27
|
+
if (!operations.has(operation.id))
|
|
28
|
+
operations.set(operation.id, operation);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return [...operations.values()].sort(compareDiscoveredOperations);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export function operationDiscoveryProvider(input) {
|
|
35
|
+
return {
|
|
36
|
+
id: input.id,
|
|
37
|
+
discover() {
|
|
38
|
+
return [...input.operations];
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export function promoteDiscoveredOperation(input) {
|
|
43
|
+
assertCanonicalCapability(input.capability.name, input.capability.version);
|
|
44
|
+
const capability = {
|
|
45
|
+
name: input.capability.name,
|
|
46
|
+
version: input.capability.version,
|
|
47
|
+
kind: input.capability.kind ?? "request",
|
|
48
|
+
...(input.capability.description ? { description: input.capability.description } : {}),
|
|
49
|
+
inputSchema: input.capability.inputSchema ?? input.operation.input,
|
|
50
|
+
outputSchema: input.capability.outputSchema ?? input.operation.output,
|
|
51
|
+
authorization: input.capability.authorization ?? [],
|
|
52
|
+
...(input.capability.idempotency ? { idempotency: input.capability.idempotency } : {}),
|
|
53
|
+
...(input.capability.concurrency ? { concurrency: input.capability.concurrency } : {}),
|
|
54
|
+
...(input.capability.timeoutMs !== undefined ? { timeoutMs: input.capability.timeoutMs } : {}),
|
|
55
|
+
emits: input.capability.emits ?? [],
|
|
56
|
+
deprecated: input.capability.deprecated ?? false
|
|
57
|
+
};
|
|
58
|
+
return {
|
|
59
|
+
capability,
|
|
60
|
+
promotion: {
|
|
61
|
+
promotionId: input.promotionId ?? `promo_${randomUUID()}`,
|
|
62
|
+
operationId: input.operation.id,
|
|
63
|
+
nativeName: input.operation.nativeName,
|
|
64
|
+
source: input.operation.source,
|
|
65
|
+
...(input.operation.sourceLocation ? { sourceLocation: input.operation.sourceLocation } : {}),
|
|
66
|
+
invocationSurface: input.operation.invocationSurface,
|
|
67
|
+
canonicalName: capability.name,
|
|
68
|
+
canonicalVersion: capability.version,
|
|
69
|
+
promotedAt: input.promotedAt ?? new Date().toISOString(),
|
|
70
|
+
confidence: input.operation.confidence,
|
|
71
|
+
evidence: input.operation.evidence
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function assertCanonicalCapability(name, version) {
|
|
76
|
+
const validation = validateName(name);
|
|
77
|
+
if (!validation.valid)
|
|
78
|
+
throw new Error(`Invalid canonical capability name "${name}": ${validation.reason}`);
|
|
79
|
+
if (!Number.isInteger(version) || version < 1) {
|
|
80
|
+
throw new Error(`Canonical capability ${name} must declare a positive integer version`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function compareDiscoveredOperations(left, right) {
|
|
84
|
+
return (left.nativeName.localeCompare(right.nativeName) ||
|
|
85
|
+
left.source.localeCompare(right.source) ||
|
|
86
|
+
right.confidence - left.confidence ||
|
|
87
|
+
left.id.localeCompare(right.id));
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=appboundry-operation-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appboundry-operation-discovery.js","sourceRoot":"","sources":["../src/appboundry-operation-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AppBoundry capability resolution boundary.
|
|
3
|
+
*
|
|
4
|
+
* This is the AppBoundry-owned decision layer above the AppPort protocol:
|
|
5
|
+
* request context + available capabilities → authorization → deterministic
|
|
6
|
+
* resolution record. It produces data only; it does not materialize, schedule,
|
|
7
|
+
* deploy, execute, or depend on any particular state store.
|
|
8
|
+
*/
|
|
9
|
+
import { PROTOCOL_ID, type JsonValue, type MaterializationDeclaration, type MaterializationTarget } from "../../protocol/dist/index.d.ts";
|
|
10
|
+
import type { ApplicationState } from "./state.js";
|
|
11
|
+
import type { ApplicationRegistry } from "./registration.js";
|
|
12
|
+
import type { CapabilityManifestEntry } from "./manifest.js";
|
|
13
|
+
import { type CompatibilityResult, type RequirementWithConstraints } from "./resolver.js";
|
|
14
|
+
import type { Denied } from "./binding.js";
|
|
15
|
+
/** The caller and ambient facts AppBoundry may use for authorization. */
|
|
16
|
+
export interface AppBoundryRequestContext {
|
|
17
|
+
readonly subject: {
|
|
18
|
+
readonly id: string;
|
|
19
|
+
readonly roles?: readonly string[];
|
|
20
|
+
readonly scopes?: readonly string[];
|
|
21
|
+
readonly tags?: readonly string[];
|
|
22
|
+
};
|
|
23
|
+
readonly tenantId?: string;
|
|
24
|
+
readonly environment?: string;
|
|
25
|
+
readonly attributes?: Readonly<Record<string, JsonValue>>;
|
|
26
|
+
}
|
|
27
|
+
/** A concrete capability offered by a provider application. */
|
|
28
|
+
export interface OfferedCapability {
|
|
29
|
+
readonly provider: ApplicationState;
|
|
30
|
+
readonly capability: CapabilityManifestEntry;
|
|
31
|
+
/** Deployment-neutral AppPort materialization declaration, if known. */
|
|
32
|
+
readonly materialization?: MaterializationDeclaration;
|
|
33
|
+
readonly metadata?: Readonly<Record<string, JsonValue>>;
|
|
34
|
+
}
|
|
35
|
+
/** AppBoundry request for one required capability. */
|
|
36
|
+
export interface AppBoundryCapabilityRequest {
|
|
37
|
+
readonly requestId: string;
|
|
38
|
+
readonly applicationId: string;
|
|
39
|
+
readonly context: AppBoundryRequestContext;
|
|
40
|
+
readonly requirement: RequirementWithConstraints;
|
|
41
|
+
/**
|
|
42
|
+
* Optional already-discovered offers. If omitted, the resolver discovers from
|
|
43
|
+
* the application registry. Supplying offers lets tests and callers model
|
|
44
|
+
* capability discovery without coupling discovery to a runtime.
|
|
45
|
+
*/
|
|
46
|
+
readonly availableCapabilities?: readonly OfferedCapability[];
|
|
47
|
+
readonly discovery?: {
|
|
48
|
+
readonly discoveryId: string;
|
|
49
|
+
readonly providerIds?: readonly string[];
|
|
50
|
+
readonly candidateIds?: readonly string[];
|
|
51
|
+
};
|
|
52
|
+
readonly materialization?: {
|
|
53
|
+
readonly requestedTarget?: MaterializationTarget;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export interface CapabilityMatch {
|
|
57
|
+
readonly offer: OfferedCapability;
|
|
58
|
+
readonly compatibility: CompatibilityResult;
|
|
59
|
+
}
|
|
60
|
+
export type AppBoundryAuthorizationDecision = {
|
|
61
|
+
readonly outcome: "allow";
|
|
62
|
+
readonly grantedScopes?: readonly string[];
|
|
63
|
+
} | {
|
|
64
|
+
readonly outcome: "deny";
|
|
65
|
+
readonly reason: Denied["reason"];
|
|
66
|
+
readonly message: string;
|
|
67
|
+
};
|
|
68
|
+
export interface AppBoundryAuthorizationInput {
|
|
69
|
+
readonly request: AppBoundryCapabilityRequest;
|
|
70
|
+
readonly consumer: ApplicationState;
|
|
71
|
+
readonly provider: ApplicationState;
|
|
72
|
+
readonly capability: CapabilityManifestEntry;
|
|
73
|
+
readonly requirement: RequirementWithConstraints;
|
|
74
|
+
readonly context: AppBoundryRequestContext;
|
|
75
|
+
}
|
|
76
|
+
/** Injectable, side-effect-free authorization boundary for candidate offers. */
|
|
77
|
+
export interface AppBoundryAuthorizationBoundary {
|
|
78
|
+
evaluate(input: AppBoundryAuthorizationInput): AppBoundryAuthorizationDecision | Promise<AppBoundryAuthorizationDecision>;
|
|
79
|
+
}
|
|
80
|
+
export interface CapabilityAuthorizationEvaluation {
|
|
81
|
+
readonly offer: OfferedCapability;
|
|
82
|
+
readonly compatibility: CompatibilityResult;
|
|
83
|
+
readonly authorization: AppBoundryAuthorizationDecision;
|
|
84
|
+
}
|
|
85
|
+
export interface AppBoundryMaterializationHandoff {
|
|
86
|
+
readonly protocol: typeof PROTOCOL_ID;
|
|
87
|
+
readonly application: {
|
|
88
|
+
readonly id: string;
|
|
89
|
+
readonly name: string;
|
|
90
|
+
readonly version: string;
|
|
91
|
+
};
|
|
92
|
+
readonly capability: {
|
|
93
|
+
readonly name: string;
|
|
94
|
+
readonly version: number;
|
|
95
|
+
};
|
|
96
|
+
readonly contractFingerprint: string;
|
|
97
|
+
readonly requestedTarget?: MaterializationTarget;
|
|
98
|
+
readonly declaration?: MaterializationDeclaration;
|
|
99
|
+
}
|
|
100
|
+
export interface AppBoundryEligibilityEvidence {
|
|
101
|
+
readonly source: string;
|
|
102
|
+
readonly relationshipId?: string;
|
|
103
|
+
readonly relationshipRevision?: number;
|
|
104
|
+
readonly offerId?: string;
|
|
105
|
+
readonly offerRevision?: number;
|
|
106
|
+
readonly availabilityModel?: string;
|
|
107
|
+
}
|
|
108
|
+
export type AppBoundryResolutionRecord = {
|
|
109
|
+
readonly kind: "resolved";
|
|
110
|
+
readonly resolutionId: string;
|
|
111
|
+
readonly request: AppBoundryCapabilityRequest;
|
|
112
|
+
readonly application: ApplicationState;
|
|
113
|
+
readonly provider: ApplicationState;
|
|
114
|
+
readonly capability: CapabilityManifestEntry;
|
|
115
|
+
readonly requirement: RequirementWithConstraints;
|
|
116
|
+
readonly authorization: Extract<AppBoundryAuthorizationDecision, {
|
|
117
|
+
outcome: "allow";
|
|
118
|
+
}>;
|
|
119
|
+
readonly evaluated: readonly CapabilityAuthorizationEvaluation[];
|
|
120
|
+
readonly eligibility?: AppBoundryEligibilityEvidence;
|
|
121
|
+
readonly materialization: AppBoundryMaterializationHandoff;
|
|
122
|
+
} | {
|
|
123
|
+
readonly kind: "denied";
|
|
124
|
+
readonly request: AppBoundryCapabilityRequest;
|
|
125
|
+
readonly application: ApplicationState;
|
|
126
|
+
readonly requirement: RequirementWithConstraints;
|
|
127
|
+
readonly authorization: Extract<AppBoundryAuthorizationDecision, {
|
|
128
|
+
outcome: "deny";
|
|
129
|
+
}>;
|
|
130
|
+
readonly evaluated: readonly CapabilityAuthorizationEvaluation[];
|
|
131
|
+
} | {
|
|
132
|
+
readonly kind: "unresolved";
|
|
133
|
+
readonly request: AppBoundryCapabilityRequest;
|
|
134
|
+
readonly application?: ApplicationState;
|
|
135
|
+
readonly requirement: RequirementWithConstraints;
|
|
136
|
+
readonly candidates: readonly OfferedCapability[];
|
|
137
|
+
readonly reason: string;
|
|
138
|
+
} | {
|
|
139
|
+
readonly kind: "ambiguous";
|
|
140
|
+
readonly request: AppBoundryCapabilityRequest;
|
|
141
|
+
readonly application: ApplicationState;
|
|
142
|
+
readonly requirement: RequirementWithConstraints;
|
|
143
|
+
readonly candidates: readonly CapabilityAuthorizationEvaluation[];
|
|
144
|
+
readonly reason: string;
|
|
145
|
+
};
|
|
146
|
+
export declare function allowAllAppBoundryAuthorizationBoundary(): AppBoundryAuthorizationBoundary;
|
|
147
|
+
/** Evaluate one offered capability without consulting runtime implementation state. */
|
|
148
|
+
export declare function evaluateOfferedCapability(requirement: RequirementWithConstraints, offer: OfferedCapability): CompatibilityResult;
|
|
149
|
+
/** Deterministically filter and order compatible offers for a requirement. */
|
|
150
|
+
export declare function matchCapabilityRequirement(requirement: RequirementWithConstraints, offers: readonly OfferedCapability[]): readonly CapabilityMatch[];
|
|
151
|
+
/** Discover provider offers from the AppBoundry application registry. */
|
|
152
|
+
export declare function discoverCapabilityOffers(registry: ApplicationRegistry, requirement: RequirementWithConstraints): Promise<readonly OfferedCapability[]>;
|
|
153
|
+
/** AppBoundry decision layer for one capability request. */
|
|
154
|
+
export declare class AppBoundryCapabilityResolver {
|
|
155
|
+
private readonly registry;
|
|
156
|
+
private readonly authorization;
|
|
157
|
+
constructor(registry: ApplicationRegistry, authorization?: AppBoundryAuthorizationBoundary);
|
|
158
|
+
resolve(request: AppBoundryCapabilityRequest): Promise<AppBoundryResolutionRecord>;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=appboundry-resolution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appboundry-resolution.d.ts","sourceRoot":"","sources":["../src/appboundry-resolution.ts"],"names":[],"mappings":"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"}
|