@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,358 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AppBoundry diagnostics and guided resolution boundary.
|
|
3
|
+
*
|
|
4
|
+
* Diagnostics explain already-observed AppBoundry exercise state. They do not
|
|
5
|
+
* rediscover applications, execute providers, or infer application-specific
|
|
6
|
+
* behavior.
|
|
7
|
+
*/
|
|
8
|
+
import { randomUUID } from "node:crypto";
|
|
9
|
+
export class InMemoryAppBoundryDiagnosticStore {
|
|
10
|
+
#reports = [];
|
|
11
|
+
record(report) {
|
|
12
|
+
this.#reports.push(report);
|
|
13
|
+
}
|
|
14
|
+
list(input = {}) {
|
|
15
|
+
return this.#reports.filter((report) => {
|
|
16
|
+
if (input.applicationId && report.applicationId !== input.applicationId)
|
|
17
|
+
return false;
|
|
18
|
+
if (input.capability?.name && report.capability?.name !== input.capability.name)
|
|
19
|
+
return false;
|
|
20
|
+
if (input.capability?.version !== undefined && report.capability?.version !== input.capability.version)
|
|
21
|
+
return false;
|
|
22
|
+
return true;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export class AppBoundryDiagnosticEngine {
|
|
27
|
+
#clock;
|
|
28
|
+
constructor(options = {}) {
|
|
29
|
+
this.#clock = options.clock ?? (() => new Date().toISOString());
|
|
30
|
+
}
|
|
31
|
+
diagnose(input) {
|
|
32
|
+
const timestamp = input.timestamp ?? input.exercise?.timestamp ?? this.#clock();
|
|
33
|
+
const applicationId = input.applicationId ?? input.exercise?.applicationId;
|
|
34
|
+
const capability = input.capability ?? input.exercise?.capability;
|
|
35
|
+
const evidence = diagnosticEvidence(input);
|
|
36
|
+
const diagnostics = informationalDiagnostics(input, timestamp);
|
|
37
|
+
const primary = primaryDiagnostic(input, evidence, timestamp);
|
|
38
|
+
if (primary)
|
|
39
|
+
diagnostics.unshift(primary);
|
|
40
|
+
const primaryDiagnosticId = primary?.id;
|
|
41
|
+
const resolvedExercise = input.exercise?.outcome === "VERIFIED" ? input.exercise.id : undefined;
|
|
42
|
+
return {
|
|
43
|
+
id: `diag_report_${randomUUID()}`,
|
|
44
|
+
...(applicationId ? { applicationId } : {}),
|
|
45
|
+
...(capability ? { capability } : {}),
|
|
46
|
+
...(primaryDiagnosticId ? { primaryDiagnosticId } : {}),
|
|
47
|
+
diagnostics,
|
|
48
|
+
resolution: {
|
|
49
|
+
status: primary ? (primary.blocking ? "ACTION_REQUIRED" : "INVESTIGATING") : resolvedExercise ? "RESOLVED" : "NOT_STARTED",
|
|
50
|
+
...(primaryDiagnosticId ? { diagnosticId: primaryDiagnosticId } : {}),
|
|
51
|
+
readyToRetry: false,
|
|
52
|
+
...(resolvedExercise ? { verifiedByExerciseId: resolvedExercise } : {})
|
|
53
|
+
},
|
|
54
|
+
timestamp
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function primaryDiagnostic(input, evidence, timestamp) {
|
|
59
|
+
const failure = input.exercise?.failure;
|
|
60
|
+
if (!failure)
|
|
61
|
+
return undefined;
|
|
62
|
+
const mapped = diagnosticForFailure(failure, evidence);
|
|
63
|
+
return {
|
|
64
|
+
id: `diag_${randomUUID()}`,
|
|
65
|
+
severity: "ERROR",
|
|
66
|
+
domain: mapped.domain,
|
|
67
|
+
code: mapped.code,
|
|
68
|
+
title: mapped.title,
|
|
69
|
+
summary: mapped.summary,
|
|
70
|
+
...(input.exercise?.applicationId ? { applicationId: input.exercise.applicationId } : input.applicationId ? { applicationId: input.applicationId } : {}),
|
|
71
|
+
...(input.exercise?.capability ?? input.capability ? { capability: input.exercise?.capability ?? input.capability } : {}),
|
|
72
|
+
cause: mapped.cause,
|
|
73
|
+
evidence,
|
|
74
|
+
recommendations: [recommendationFor(mapped.code)],
|
|
75
|
+
blocking: true,
|
|
76
|
+
timestamp
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function informationalDiagnostics(input, timestamp) {
|
|
80
|
+
return (input.facts ?? [])
|
|
81
|
+
.filter((fact) => isPositiveObservation(fact))
|
|
82
|
+
.map((fact) => {
|
|
83
|
+
const domain = domainForFact(fact.type);
|
|
84
|
+
return {
|
|
85
|
+
id: `diag_${randomUUID()}`,
|
|
86
|
+
severity: "INFO",
|
|
87
|
+
domain,
|
|
88
|
+
code: `${domain}_OBSERVED`,
|
|
89
|
+
title: positiveTitle(fact),
|
|
90
|
+
summary: "AppBoundry retained this fact as supporting diagnostic context.",
|
|
91
|
+
...(input.applicationId ?? input.exercise?.applicationId ? { applicationId: input.applicationId ?? input.exercise?.applicationId } : {}),
|
|
92
|
+
...(input.capability ?? input.exercise?.capability ? { capability: input.capability ?? input.exercise?.capability } : {}),
|
|
93
|
+
evidence: [{
|
|
94
|
+
type: fact.type,
|
|
95
|
+
...(fact.reference ? { reference: fact.reference } : {}),
|
|
96
|
+
value: fact.value,
|
|
97
|
+
source: fact.source
|
|
98
|
+
}],
|
|
99
|
+
recommendations: [{ id: "none", title: "No action required", description: "This observation is not blocking the exercise.", action: "NONE" }],
|
|
100
|
+
blocking: false,
|
|
101
|
+
timestamp
|
|
102
|
+
};
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
function diagnosticEvidence(input) {
|
|
106
|
+
const evidence = [];
|
|
107
|
+
if (input.exercise) {
|
|
108
|
+
evidence.push({
|
|
109
|
+
type: "exercise",
|
|
110
|
+
reference: input.exercise.id,
|
|
111
|
+
value: {
|
|
112
|
+
outcome: input.exercise.outcome,
|
|
113
|
+
...(input.exercise.failure ? { failure: input.exercise.failure } : {}),
|
|
114
|
+
evidence: input.exercise.evidence
|
|
115
|
+
},
|
|
116
|
+
source: input.exercise.outcome === "VERIFIED" ? "VERIFIED" : "OBSERVED"
|
|
117
|
+
});
|
|
118
|
+
if (input.exercise.provider) {
|
|
119
|
+
evidence.push({
|
|
120
|
+
type: "provider",
|
|
121
|
+
reference: `provider:${input.exercise.provider.id}`,
|
|
122
|
+
value: input.exercise.provider,
|
|
123
|
+
source: "OBSERVED"
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
if (input.exercise.invocationSurface) {
|
|
127
|
+
evidence.push({
|
|
128
|
+
type: "surface",
|
|
129
|
+
value: input.exercise.invocationSurface,
|
|
130
|
+
source: "OBSERVED"
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
for (const fact of input.facts ?? []) {
|
|
135
|
+
evidence.push({
|
|
136
|
+
type: fact.type,
|
|
137
|
+
...(fact.reference ? { reference: fact.reference } : {}),
|
|
138
|
+
value: fact.value,
|
|
139
|
+
source: fact.source
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
return evidence;
|
|
143
|
+
}
|
|
144
|
+
function diagnosticForFailure(failure, evidence) {
|
|
145
|
+
switch (failure) {
|
|
146
|
+
case "INVALID_INPUT":
|
|
147
|
+
return {
|
|
148
|
+
domain: "INVOCATION",
|
|
149
|
+
code: "INVALID_INPUT",
|
|
150
|
+
title: "Input does not satisfy the invocation schema",
|
|
151
|
+
summary: "The exercise stopped before invocation because the provided input did not match the available schema.",
|
|
152
|
+
cause: "The request payload failed deterministic input validation."
|
|
153
|
+
};
|
|
154
|
+
case "AUTHORIZATION_FAILED":
|
|
155
|
+
return {
|
|
156
|
+
domain: "AUTHORIZATION",
|
|
157
|
+
code: "AUTHORIZATION_FAILED",
|
|
158
|
+
title: "Invocation rejected at the authorization boundary",
|
|
159
|
+
summary: "The invocation surface was reachable far enough to evaluate authorization, but the request was rejected.",
|
|
160
|
+
cause: "The subject, scopes, policy, or provider authorization decision did not allow the invocation."
|
|
161
|
+
};
|
|
162
|
+
case "PROVIDER_NOT_ELIGIBLE":
|
|
163
|
+
return {
|
|
164
|
+
domain: "PROVIDER",
|
|
165
|
+
code: "PROVIDER_NOT_ELIGIBLE",
|
|
166
|
+
title: "No eligible provider satisfies the capability requirement",
|
|
167
|
+
summary: "AppBoundry could not resolve an eligible provider for the requested capability.",
|
|
168
|
+
cause: "Provider discovery, compatibility, or eligibility facts excluded all candidates."
|
|
169
|
+
};
|
|
170
|
+
case "PROVIDER_UNAVAILABLE":
|
|
171
|
+
return {
|
|
172
|
+
domain: "PROVIDER",
|
|
173
|
+
code: "PROVIDER_UNAVAILABLE",
|
|
174
|
+
title: "Provider cannot currently serve the request",
|
|
175
|
+
summary: "A provider was selected or expected, but current evidence shows it cannot serve this invocation.",
|
|
176
|
+
cause: "The selected provider is unavailable, missing an executable artifact, or unable to materialize."
|
|
177
|
+
};
|
|
178
|
+
case "SURFACE_NOT_REACHABLE":
|
|
179
|
+
return {
|
|
180
|
+
domain: "SURFACE",
|
|
181
|
+
code: "SURFACE_NOT_REACHABLE",
|
|
182
|
+
title: "Invocation surface is unreachable",
|
|
183
|
+
summary: "The capability cannot currently be exercised because the application boundary is not reachable.",
|
|
184
|
+
cause: surfaceCause(evidence)
|
|
185
|
+
};
|
|
186
|
+
case "TIMEOUT":
|
|
187
|
+
return {
|
|
188
|
+
domain: "INVOCATION",
|
|
189
|
+
code: "TIMEOUT",
|
|
190
|
+
title: "Invocation exceeded its execution deadline",
|
|
191
|
+
summary: "The invocation did not complete before the configured deadline.",
|
|
192
|
+
cause: "A process, dependency, provider, bridge, or application response exceeded the allowed duration."
|
|
193
|
+
};
|
|
194
|
+
case "APPLICATION_ERROR":
|
|
195
|
+
return {
|
|
196
|
+
domain: "APPLICATION",
|
|
197
|
+
code: "APPLICATION_ERROR",
|
|
198
|
+
title: "Application returned an execution error",
|
|
199
|
+
summary: "The invocation reached application code and the application returned or produced an error.",
|
|
200
|
+
cause: "Application response or execution evidence reported an application-level failure."
|
|
201
|
+
};
|
|
202
|
+
case "APPLICATION_NOT_RUNNING":
|
|
203
|
+
return {
|
|
204
|
+
domain: "PROCESS",
|
|
205
|
+
code: "PROCESS_FAILED",
|
|
206
|
+
title: "Application process is not running",
|
|
207
|
+
summary: "The process boundary is the first known broken boundary for this exercise.",
|
|
208
|
+
cause: "Observed process state indicates the application was stopped, failed to start, or exited."
|
|
209
|
+
};
|
|
210
|
+
case "INVOCATION_FAILED":
|
|
211
|
+
return {
|
|
212
|
+
domain: "INVOCATION",
|
|
213
|
+
code: invocationCode(evidence),
|
|
214
|
+
title: "Invocation failed",
|
|
215
|
+
summary: "The exercise reached the invocation boundary but did not produce a verified response.",
|
|
216
|
+
cause: "Available invocation evidence did not classify the failure more specifically."
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
function recommendationFor(code) {
|
|
221
|
+
switch (code) {
|
|
222
|
+
case "INVALID_INPUT":
|
|
223
|
+
return {
|
|
224
|
+
id: "configure-input",
|
|
225
|
+
title: "Provide schema-compatible input",
|
|
226
|
+
description: "Inspect the available invocation schema and configure the request payload to satisfy it.",
|
|
227
|
+
action: "CONFIGURE"
|
|
228
|
+
};
|
|
229
|
+
case "AUTHORIZATION_FAILED":
|
|
230
|
+
return {
|
|
231
|
+
id: "review-authorization",
|
|
232
|
+
title: "Review authorization configuration",
|
|
233
|
+
description: "Inspect the subject, scopes, policies, and provider authorization decision for this capability.",
|
|
234
|
+
action: "AUTHORIZE"
|
|
235
|
+
};
|
|
236
|
+
case "PROVIDER_NOT_ELIGIBLE":
|
|
237
|
+
return {
|
|
238
|
+
id: "select-eligible-provider",
|
|
239
|
+
title: "Select or register an eligible provider",
|
|
240
|
+
description: "Inspect provider compatibility and eligibility facts, then select or register a provider that satisfies the requirement.",
|
|
241
|
+
action: "SELECT_PROVIDER"
|
|
242
|
+
};
|
|
243
|
+
case "PROVIDER_UNAVAILABLE":
|
|
244
|
+
return {
|
|
245
|
+
id: "retry-or-select-provider",
|
|
246
|
+
title: "Retry or select another provider",
|
|
247
|
+
description: "Inspect provider availability and materialization evidence, then retry or select a provider that can currently serve the request.",
|
|
248
|
+
action: "SELECT_PROVIDER"
|
|
249
|
+
};
|
|
250
|
+
case "SURFACE_NOT_REACHABLE":
|
|
251
|
+
return {
|
|
252
|
+
id: "inspect-surface",
|
|
253
|
+
title: "Inspect invocation surface",
|
|
254
|
+
description: "Inspect the process startup output and verify the application is listening on the discovered invocation surface.",
|
|
255
|
+
action: "INSPECT"
|
|
256
|
+
};
|
|
257
|
+
case "TIMEOUT":
|
|
258
|
+
return {
|
|
259
|
+
id: "inspect-timeout",
|
|
260
|
+
title: "Inspect dependency readiness and duration",
|
|
261
|
+
description: "Inspect dependency readiness, provider responsiveness, and execution duration before retrying.",
|
|
262
|
+
action: "INSPECT"
|
|
263
|
+
};
|
|
264
|
+
case "APPLICATION_ERROR":
|
|
265
|
+
return {
|
|
266
|
+
id: "inspect-application-error",
|
|
267
|
+
title: "Inspect application response and logs",
|
|
268
|
+
description: "Inspect the application response and runtime logs linked from the exercise evidence.",
|
|
269
|
+
action: "INSPECT"
|
|
270
|
+
};
|
|
271
|
+
case "PROCESS_FAILED":
|
|
272
|
+
return {
|
|
273
|
+
id: "inspect-process",
|
|
274
|
+
title: "Inspect startup output",
|
|
275
|
+
description: "Inspect the process startup output and restart the process only after the cause is understood.",
|
|
276
|
+
action: "INSPECT"
|
|
277
|
+
};
|
|
278
|
+
case "BRIDGE_FAILED":
|
|
279
|
+
return {
|
|
280
|
+
id: "inspect-bridge",
|
|
281
|
+
title: "Inspect invocation bridge",
|
|
282
|
+
description: "Inspect the bridge or adapter evidence before retrying the capability exercise.",
|
|
283
|
+
action: "INSPECT"
|
|
284
|
+
};
|
|
285
|
+
default:
|
|
286
|
+
return {
|
|
287
|
+
id: "inspect-invocation",
|
|
288
|
+
title: "Inspect invocation evidence",
|
|
289
|
+
description: "Inspect the linked exercise, execution, surface, provider, and response evidence before retrying.",
|
|
290
|
+
action: "INSPECT"
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
function surfaceCause(evidence) {
|
|
295
|
+
const hasRunningProcess = evidence.some((entry) => entry.type === "process" && String(entry.value?.state ?? "").toUpperCase() === "RUNNING");
|
|
296
|
+
if (hasRunningProcess) {
|
|
297
|
+
return "The process is observed as running, but the discovered invocation surface is not accepting requests.";
|
|
298
|
+
}
|
|
299
|
+
return "The discovered invocation surface could not be reached by the exercise.";
|
|
300
|
+
}
|
|
301
|
+
function invocationCode(evidence) {
|
|
302
|
+
return evidence.some((entry) => entry.type === "bridge") ? "BRIDGE_FAILED" : "INVOCATION_FAILED";
|
|
303
|
+
}
|
|
304
|
+
function isPositiveObservation(fact) {
|
|
305
|
+
if (!fact.value || typeof fact.value !== "object")
|
|
306
|
+
return false;
|
|
307
|
+
const value = fact.value;
|
|
308
|
+
if (fact.type === "process")
|
|
309
|
+
return String(value["state"]).toUpperCase() === "RUNNING";
|
|
310
|
+
if (fact.type === "provider")
|
|
311
|
+
return value["eligible"] === true || value["available"] === true || String(value["state"]).toUpperCase() === "AVAILABLE";
|
|
312
|
+
if (fact.type === "capability")
|
|
313
|
+
return value["promoted"] === true || String(value["state"]).toUpperCase() === "PROMOTED";
|
|
314
|
+
if (fact.type === "surface")
|
|
315
|
+
return value["reachable"] === true;
|
|
316
|
+
if (fact.type === "authorization")
|
|
317
|
+
return value["allowed"] === true;
|
|
318
|
+
return false;
|
|
319
|
+
}
|
|
320
|
+
function domainForFact(type) {
|
|
321
|
+
switch (type) {
|
|
322
|
+
case "application":
|
|
323
|
+
return "APPLICATION";
|
|
324
|
+
case "process":
|
|
325
|
+
return "PROCESS";
|
|
326
|
+
case "dependency":
|
|
327
|
+
return "PROCESS";
|
|
328
|
+
case "surface":
|
|
329
|
+
return "SURFACE";
|
|
330
|
+
case "bridge":
|
|
331
|
+
return "BRIDGE";
|
|
332
|
+
case "capability":
|
|
333
|
+
return "CAPABILITY";
|
|
334
|
+
case "authorization":
|
|
335
|
+
return "AUTHORIZATION";
|
|
336
|
+
case "provider":
|
|
337
|
+
return "PROVIDER";
|
|
338
|
+
case "invocation":
|
|
339
|
+
return "INVOCATION";
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
function positiveTitle(fact) {
|
|
343
|
+
switch (fact.type) {
|
|
344
|
+
case "process":
|
|
345
|
+
return "Process is running";
|
|
346
|
+
case "provider":
|
|
347
|
+
return "Provider remains eligible";
|
|
348
|
+
case "capability":
|
|
349
|
+
return "Capability is promoted";
|
|
350
|
+
case "surface":
|
|
351
|
+
return "Invocation surface is reachable";
|
|
352
|
+
case "authorization":
|
|
353
|
+
return "Authorization boundary allowed the request";
|
|
354
|
+
default:
|
|
355
|
+
return "Supporting observation retained";
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=appboundry-diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appboundry-diagnostics.js","sourceRoot":"","sources":["../src/appboundry-diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AppBoundry dynamic capability discovery boundary.
|
|
3
|
+
*
|
|
4
|
+
* Discovery answers "what capabilities are available?" without deciding who is
|
|
5
|
+
* allowed to use them, which compatible candidate should satisfy the request,
|
|
6
|
+
* how the capability is materialized, or how it executes.
|
|
7
|
+
*/
|
|
8
|
+
import type { JsonValue, MaterializationDeclaration } from "../../protocol/dist/index.d.ts";
|
|
9
|
+
import type { AppBoundryCapabilityRequest, AppBoundryRequestContext, OfferedCapability } from "./appboundry-resolution.js";
|
|
10
|
+
import { AppBoundryCapabilityResolver, type AppBoundryResolutionRecord } from "./appboundry-resolution.js";
|
|
11
|
+
import type { ApplicationState } from "./state.js";
|
|
12
|
+
import type { CapabilityManifestEntry } from "./manifest.js";
|
|
13
|
+
export declare const NO_CAPABILITY_FOUND: "appboundry.NO_CAPABILITY_FOUND";
|
|
14
|
+
export declare const NO_ELIGIBLE_PROVIDER: "appboundry.NO_ELIGIBLE_PROVIDER";
|
|
15
|
+
export declare const DISCOVERY_FAILED: "appboundry.DISCOVERY_FAILED";
|
|
16
|
+
export interface CapabilityAdvertisement {
|
|
17
|
+
readonly provider: ApplicationState;
|
|
18
|
+
readonly capability: CapabilityManifestEntry;
|
|
19
|
+
readonly materialization?: MaterializationDeclaration;
|
|
20
|
+
readonly metadata?: Readonly<Record<string, JsonValue>>;
|
|
21
|
+
}
|
|
22
|
+
export interface CapabilityDiscoveryRequest {
|
|
23
|
+
readonly request: AppBoundryCapabilityRequest;
|
|
24
|
+
readonly context: AppBoundryRequestContext;
|
|
25
|
+
}
|
|
26
|
+
export interface CapabilityProvider {
|
|
27
|
+
readonly id: string;
|
|
28
|
+
advertise(input: CapabilityDiscoveryRequest): CapabilityAdvertisement[] | Promise<CapabilityAdvertisement[]>;
|
|
29
|
+
}
|
|
30
|
+
export interface CapabilityDiscoveryCandidate {
|
|
31
|
+
readonly providerId: string;
|
|
32
|
+
readonly capabilityName: string;
|
|
33
|
+
readonly capabilityVersion: number;
|
|
34
|
+
readonly contractFingerprint: string;
|
|
35
|
+
readonly offer: OfferedCapability;
|
|
36
|
+
readonly metadata?: Readonly<Record<string, JsonValue>>;
|
|
37
|
+
}
|
|
38
|
+
export interface CapabilityDiscoveryIneligibleProvider {
|
|
39
|
+
readonly providerId: string;
|
|
40
|
+
readonly capabilityName: string;
|
|
41
|
+
readonly capabilityVersion: number;
|
|
42
|
+
readonly reason: string;
|
|
43
|
+
readonly eligibilitySource?: string;
|
|
44
|
+
readonly relationshipId?: string;
|
|
45
|
+
readonly relationshipStatus?: string;
|
|
46
|
+
readonly offerId?: string;
|
|
47
|
+
readonly offerStatus?: string;
|
|
48
|
+
}
|
|
49
|
+
export type CapabilityDiscoveryResult = {
|
|
50
|
+
readonly kind: "discovered";
|
|
51
|
+
readonly discoveryId: string;
|
|
52
|
+
readonly requestId: string;
|
|
53
|
+
readonly candidates: readonly CapabilityDiscoveryCandidate[];
|
|
54
|
+
readonly providerIds: readonly string[];
|
|
55
|
+
readonly ineligibleProviders?: readonly CapabilityDiscoveryIneligibleProvider[];
|
|
56
|
+
} | {
|
|
57
|
+
readonly kind: "none";
|
|
58
|
+
readonly discoveryId: string;
|
|
59
|
+
readonly requestId: string;
|
|
60
|
+
readonly code: typeof NO_CAPABILITY_FOUND | typeof NO_ELIGIBLE_PROVIDER;
|
|
61
|
+
readonly candidates: readonly [];
|
|
62
|
+
readonly providerIds: readonly string[];
|
|
63
|
+
readonly message: string;
|
|
64
|
+
readonly ineligibleProviders?: readonly CapabilityDiscoveryIneligibleProvider[];
|
|
65
|
+
} | {
|
|
66
|
+
readonly kind: "failed";
|
|
67
|
+
readonly discoveryId: string;
|
|
68
|
+
readonly requestId: string;
|
|
69
|
+
readonly code: typeof DISCOVERY_FAILED;
|
|
70
|
+
readonly candidates: readonly [];
|
|
71
|
+
readonly providerIds: readonly string[];
|
|
72
|
+
readonly message: string;
|
|
73
|
+
};
|
|
74
|
+
export interface CapabilityDiscovery {
|
|
75
|
+
discover(input: CapabilityDiscoveryRequest): Promise<CapabilityDiscoveryResult>;
|
|
76
|
+
}
|
|
77
|
+
export declare class InMemoryCapabilityProviderRegistry implements CapabilityDiscovery {
|
|
78
|
+
#private;
|
|
79
|
+
register(provider: CapabilityProvider): this;
|
|
80
|
+
unregister(providerId: string): boolean;
|
|
81
|
+
list(): readonly CapabilityProvider[];
|
|
82
|
+
discover(input: CapabilityDiscoveryRequest): Promise<CapabilityDiscoveryResult>;
|
|
83
|
+
}
|
|
84
|
+
export declare function capabilityProvider(input: {
|
|
85
|
+
readonly id: string;
|
|
86
|
+
readonly advertisements: readonly CapabilityAdvertisement[];
|
|
87
|
+
}): CapabilityProvider;
|
|
88
|
+
export declare function resolveDiscoveredCapability(input: {
|
|
89
|
+
readonly discovery: CapabilityDiscovery;
|
|
90
|
+
readonly resolver: AppBoundryCapabilityResolver;
|
|
91
|
+
readonly request: AppBoundryCapabilityRequest;
|
|
92
|
+
}): Promise<{
|
|
93
|
+
readonly kind: "resolved";
|
|
94
|
+
readonly discovery: Extract<CapabilityDiscoveryResult, {
|
|
95
|
+
kind: "discovered";
|
|
96
|
+
}>;
|
|
97
|
+
readonly resolution: AppBoundryResolutionRecord;
|
|
98
|
+
} | {
|
|
99
|
+
readonly kind: "discovery_none";
|
|
100
|
+
readonly discovery: Extract<CapabilityDiscoveryResult, {
|
|
101
|
+
kind: "none";
|
|
102
|
+
}>;
|
|
103
|
+
} | {
|
|
104
|
+
readonly kind: "discovery_failed";
|
|
105
|
+
readonly discovery: Extract<CapabilityDiscoveryResult, {
|
|
106
|
+
kind: "failed";
|
|
107
|
+
}>;
|
|
108
|
+
}>;
|
|
109
|
+
export declare function candidateId(candidate: CapabilityDiscoveryCandidate): string;
|
|
110
|
+
//# sourceMappingURL=appboundry-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appboundry-discovery.d.ts","sourceRoot":"","sources":["../src/appboundry-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AppBoundry dynamic capability discovery boundary.
|
|
3
|
+
*
|
|
4
|
+
* Discovery answers "what capabilities are available?" without deciding who is
|
|
5
|
+
* allowed to use them, which compatible candidate should satisfy the request,
|
|
6
|
+
* how the capability is materialized, or how it executes.
|
|
7
|
+
*/
|
|
8
|
+
import { randomUUID } from "node:crypto";
|
|
9
|
+
import { AppBoundryCapabilityResolver } from "./appboundry-resolution.js";
|
|
10
|
+
export const NO_CAPABILITY_FOUND = "appboundry.NO_CAPABILITY_FOUND";
|
|
11
|
+
export const NO_ELIGIBLE_PROVIDER = "appboundry.NO_ELIGIBLE_PROVIDER";
|
|
12
|
+
export const DISCOVERY_FAILED = "appboundry.DISCOVERY_FAILED";
|
|
13
|
+
export class InMemoryCapabilityProviderRegistry {
|
|
14
|
+
#providers = new Map();
|
|
15
|
+
register(provider) {
|
|
16
|
+
if (!provider.id)
|
|
17
|
+
throw new Error("provider id must be non-empty");
|
|
18
|
+
if (this.#providers.has(provider.id))
|
|
19
|
+
throw new Error(`provider "${provider.id}" is already registered`);
|
|
20
|
+
this.#providers.set(provider.id, provider);
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
unregister(providerId) {
|
|
24
|
+
return this.#providers.delete(providerId);
|
|
25
|
+
}
|
|
26
|
+
list() {
|
|
27
|
+
return [...this.#providers.values()].sort((left, right) => left.id.localeCompare(right.id));
|
|
28
|
+
}
|
|
29
|
+
async discover(input) {
|
|
30
|
+
const discoveryId = `disc_${randomUUID()}`;
|
|
31
|
+
const providers = this.list();
|
|
32
|
+
const providerIds = providers.map((provider) => provider.id);
|
|
33
|
+
const candidates = new Map();
|
|
34
|
+
try {
|
|
35
|
+
for (const provider of providers) {
|
|
36
|
+
for (const advertisement of await provider.advertise(input)) {
|
|
37
|
+
if (!advertisementMatchesRequest(input.request, advertisement))
|
|
38
|
+
continue;
|
|
39
|
+
const key = advertisementKey(advertisement);
|
|
40
|
+
if (!candidates.has(key)) {
|
|
41
|
+
candidates.set(key, {
|
|
42
|
+
providerId: advertisement.provider.id,
|
|
43
|
+
capabilityName: advertisement.capability.name,
|
|
44
|
+
capabilityVersion: advertisement.capability.version,
|
|
45
|
+
contractFingerprint: advertisement.provider.fingerprint,
|
|
46
|
+
offer: {
|
|
47
|
+
provider: advertisement.provider,
|
|
48
|
+
capability: advertisement.capability,
|
|
49
|
+
...(advertisement.materialization ? { materialization: advertisement.materialization } : {}),
|
|
50
|
+
...(advertisement.metadata ? { metadata: advertisement.metadata } : {})
|
|
51
|
+
},
|
|
52
|
+
...(advertisement.metadata ? { metadata: advertisement.metadata } : {})
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
return {
|
|
60
|
+
kind: "failed",
|
|
61
|
+
discoveryId,
|
|
62
|
+
requestId: input.request.requestId,
|
|
63
|
+
code: DISCOVERY_FAILED,
|
|
64
|
+
candidates: [],
|
|
65
|
+
providerIds,
|
|
66
|
+
message: error instanceof Error ? error.message : String(error)
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
const ordered = [...candidates.values()].sort(compareCandidates);
|
|
70
|
+
if (ordered.length === 0) {
|
|
71
|
+
return {
|
|
72
|
+
kind: "none",
|
|
73
|
+
discoveryId,
|
|
74
|
+
requestId: input.request.requestId,
|
|
75
|
+
code: NO_CAPABILITY_FOUND,
|
|
76
|
+
candidates: [],
|
|
77
|
+
providerIds,
|
|
78
|
+
message: `No capability found for "${input.request.requirement.name}"`
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
kind: "discovered",
|
|
83
|
+
discoveryId,
|
|
84
|
+
requestId: input.request.requestId,
|
|
85
|
+
candidates: ordered,
|
|
86
|
+
providerIds
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export function capabilityProvider(input) {
|
|
91
|
+
return {
|
|
92
|
+
id: input.id,
|
|
93
|
+
advertise() {
|
|
94
|
+
return [...input.advertisements];
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export async function resolveDiscoveredCapability(input) {
|
|
99
|
+
const discovery = await input.discovery.discover({ request: input.request, context: input.request.context });
|
|
100
|
+
if (discovery.kind === "none")
|
|
101
|
+
return { kind: "discovery_none", discovery };
|
|
102
|
+
if (discovery.kind === "failed")
|
|
103
|
+
return { kind: "discovery_failed", discovery };
|
|
104
|
+
const resolution = await input.resolver.resolve({
|
|
105
|
+
...input.request,
|
|
106
|
+
availableCapabilities: discovery.candidates.map((candidate) => candidate.offer),
|
|
107
|
+
discovery: {
|
|
108
|
+
discoveryId: discovery.discoveryId,
|
|
109
|
+
providerIds: discovery.providerIds,
|
|
110
|
+
candidateIds: discovery.candidates.map(candidateId)
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
return { kind: "resolved", discovery, resolution };
|
|
114
|
+
}
|
|
115
|
+
export function candidateId(candidate) {
|
|
116
|
+
return `${candidate.providerId}::${candidate.capabilityName}@${candidate.capabilityVersion}::${candidate.contractFingerprint}`;
|
|
117
|
+
}
|
|
118
|
+
function advertisementMatchesRequest(request, advertisement) {
|
|
119
|
+
if (advertisement.capability.name !== request.requirement.name)
|
|
120
|
+
return false;
|
|
121
|
+
if (request.requirement.provider?.applicationId && advertisement.provider.id !== request.requirement.provider.applicationId) {
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
return advertisement.provider.manifest.provides.some((capability) => capability.name === advertisement.capability.name &&
|
|
125
|
+
capability.version === advertisement.capability.version);
|
|
126
|
+
}
|
|
127
|
+
function advertisementKey(advertisement) {
|
|
128
|
+
return [
|
|
129
|
+
advertisement.provider.id,
|
|
130
|
+
advertisement.capability.name,
|
|
131
|
+
advertisement.capability.version,
|
|
132
|
+
advertisement.provider.fingerprint
|
|
133
|
+
].join("::");
|
|
134
|
+
}
|
|
135
|
+
function compareCandidates(left, right) {
|
|
136
|
+
return (left.capabilityName.localeCompare(right.capabilityName) ||
|
|
137
|
+
right.capabilityVersion - left.capabilityVersion ||
|
|
138
|
+
left.providerId.localeCompare(right.providerId) ||
|
|
139
|
+
left.contractFingerprint.localeCompare(right.contractFingerprint));
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=appboundry-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appboundry-discovery.js","sourceRoot":"","sources":["../src/appboundry-discovery.ts"],"names":[],"mappings":"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"}
|