@abot-ai/runtime 1.0.0 → 1.1.0
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/README.md +17 -3
- package/dist/scripts/add-runtime-model.js +4 -0
- package/dist/scripts/configure-long-term-memory.d.ts +6 -0
- package/dist/scripts/configure-long-term-memory.js +139 -0
- package/dist/scripts/init-runtime.js +11 -1
- package/dist/scripts/runtime-setup-files.d.ts +1 -0
- package/dist/scripts/runtime-setup-files.js +4 -0
- package/dist/src/capabilities/normal-invocation/contracts.d.ts +1 -0
- package/dist/src/capabilities/normal-invocation/validator.d.ts +5 -0
- package/dist/src/capabilities/normal-invocation/validator.js +35 -2
- package/dist/src/capabilities/tool-definition-validator/definition-fields.d.ts +7 -0
- package/dist/src/capabilities/tool-definition-validator/definition-fields.js +156 -0
- package/dist/src/capabilities/tool-definition-validator/definition-parser.d.ts +2 -0
- package/dist/src/capabilities/tool-definition-validator/definition-parser.js +76 -0
- package/dist/src/capabilities/tool-definition-validator/definition-shape.d.ts +7 -0
- package/dist/src/capabilities/tool-definition-validator/definition-shape.js +34 -0
- package/dist/src/capabilities/tool-definition-validator/event-presentation.d.ts +2 -0
- package/dist/src/capabilities/tool-definition-validator/event-presentation.js +97 -0
- package/dist/src/capabilities/tool-definition-validator/module-registry.d.ts +3 -0
- package/dist/src/capabilities/tool-definition-validator/module-registry.js +99 -0
- package/dist/src/capabilities/tool-definition-validator/payload-channel-spec.d.ts +2 -0
- package/dist/src/capabilities/tool-definition-validator/payload-channel-spec.js +190 -0
- package/dist/src/capabilities/tool-definition-validator/payload-channel-stage.d.ts +11 -0
- package/dist/src/capabilities/tool-definition-validator/payload-channel-stage.js +155 -0
- package/dist/src/capabilities/tool-definition-validator/payload-stage-conditions.d.ts +24 -0
- package/dist/src/capabilities/tool-definition-validator/payload-stage-conditions.js +193 -0
- package/dist/src/capabilities/tool-definition-validator.d.ts +2 -4
- package/dist/src/capabilities/tool-definition-validator.js +2 -776
- package/dist/src/cli/abot.js +11 -2
- package/dist/src/model-gateway/client/embeddings.d.ts +3 -0
- package/dist/src/model-gateway/client/embeddings.js +48 -0
- package/dist/src/model-gateway/client.d.ts +3 -1
- package/dist/src/model-gateway/client.js +5 -0
- package/dist/src/model-gateway/embeddings/constants.d.ts +1 -0
- package/dist/src/model-gateway/embeddings/constants.js +1 -0
- package/dist/src/model-gateway/embeddings/discovery.d.ts +10 -0
- package/dist/src/model-gateway/embeddings/discovery.js +39 -0
- package/dist/src/model-gateway/embeddings/execution.d.ts +16 -0
- package/dist/src/model-gateway/embeddings/execution.js +64 -0
- package/dist/src/model-gateway/embeddings/fingerprint.d.ts +3 -0
- package/dist/src/model-gateway/embeddings/fingerprint.js +36 -0
- package/dist/src/model-gateway/embeddings/profile.d.ts +11 -0
- package/dist/src/model-gateway/embeddings/profile.js +37 -0
- package/dist/src/model-gateway/embeddings/server-handler.d.ts +3 -0
- package/dist/src/model-gateway/embeddings/server-handler.js +89 -0
- package/dist/src/model-gateway/embeddings/validation.d.ts +7 -0
- package/dist/src/model-gateway/embeddings/validation.js +69 -0
- package/dist/src/model-gateway/index.d.ts +5 -3
- package/dist/src/model-gateway/index.js +3 -1
- package/dist/src/model-gateway/providers/contracts.d.ts +27 -1
- package/dist/src/model-gateway/providers/ollama/adapter.js +4 -0
- package/dist/src/model-gateway/providers/ollama/base-url.d.ts +1 -0
- package/dist/src/model-gateway/providers/ollama/base-url.js +4 -0
- package/dist/src/model-gateway/providers/ollama/embedding-models.d.ts +2 -0
- package/dist/src/model-gateway/providers/ollama/embedding-models.js +31 -0
- package/dist/src/model-gateway/providers/ollama/embeddings.d.ts +2 -0
- package/dist/src/model-gateway/providers/ollama/embeddings.js +43 -0
- package/dist/src/model-gateway/providers/ollama/request-diagnostics.js +2 -1
- package/dist/src/model-gateway/providers/openai/adapter.js +2 -0
- package/dist/src/model-gateway/providers/openai/embeddings.d.ts +2 -0
- package/dist/src/model-gateway/providers/openai/embeddings.js +87 -0
- package/dist/src/model-gateway/providers/openai/payload.js +5 -8
- package/dist/src/model-gateway/server/contracts.d.ts +5 -3
- package/dist/src/model-gateway/server/create-server.js +9 -0
- package/dist/src/model-gateway/server/errors.js +34 -0
- package/dist/src/model-gateway/server/index.d.ts +2 -0
- package/dist/src/model-gateway/server/index.js +2 -0
- package/dist/src/model-gateway/server/provider-fetch.d.ts +5 -3
- package/dist/src/model-gateway/server/provider-fetch.js +3 -1
- package/dist/src/model-gateway/server/request-body.d.ts +1 -1
- package/dist/src/model-gateway/types.d.ts +39 -0
- package/dist/src/plugin-contract/manifest.d.ts +1 -0
- package/dist/src/runtime/adapters/index.d.ts +4 -0
- package/dist/src/runtime/adapters/index.js +4 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.d.ts +2 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.js +77 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/cleanup.d.ts +4 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/cleanup.js +52 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/contracts.d.ts +31 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/contracts.js +17 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/install.d.ts +1 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/install.js +36 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-record.d.ts +2 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-record.js +114 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/snapshot.d.ts +2 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/snapshot.js +103 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock.d.ts +2 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock.js +10 -0
- package/dist/src/runtime/adapters/long-term-memory/file-repository.d.ts +2 -0
- package/dist/src/runtime/adapters/long-term-memory/file-repository.js +57 -0
- package/dist/src/runtime/adapters/long-term-memory/in-memory-repository.d.ts +2 -0
- package/dist/src/runtime/adapters/long-term-memory/in-memory-repository.js +21 -0
- package/dist/src/runtime/adapters/long-term-memory/onboarding-config-repository.d.ts +5 -0
- package/dist/src/runtime/adapters/long-term-memory/onboarding-config-repository.js +60 -0
- package/dist/src/runtime/adapters/long-term-memory/onboarding-service.d.ts +8 -0
- package/dist/src/runtime/adapters/long-term-memory/onboarding-service.js +34 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/run.d.ts +7 -1
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/run.js +54 -25
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/executor.js +18 -4
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/payload/lifecycle.d.ts +6 -1
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/payload/lifecycle.js +25 -12
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/action-fingerprint.d.ts +22 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/action-fingerprint.js +65 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/contracts.d.ts +44 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations.d.ts +1 -1
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/catalog.js +14 -4
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/execution.js +218 -87
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/failure-outcome-fingerprint.d.ts +7 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/failure-outcome-fingerprint.js +84 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-lifecycle.d.ts +5 -4
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-lifecycle.js +7 -1
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-observability.d.ts +35 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-observability.js +32 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-rejection.d.ts +3 -3
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-rejection.js +13 -8
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-stages.d.ts +5 -4
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-stages.js +4 -2
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-observer.js +12 -4
- package/dist/src/runtime/composition.d.ts +3 -0
- package/dist/src/runtime/composition.js +5 -2
- package/dist/src/runtime/config/builders.js +34 -1
- package/dist/src/runtime/config/effective-model-config-validation.js +9 -0
- package/dist/src/runtime/config/embedding-profiles.d.ts +5 -0
- package/dist/src/runtime/config/embedding-profiles.js +66 -0
- package/dist/src/runtime/config/fields.js +22 -0
- package/dist/src/runtime/config/long-term-memory.d.ts +9 -0
- package/dist/src/runtime/config/long-term-memory.js +71 -0
- package/dist/src/runtime/config/runner/config-normalization.d.ts +16 -0
- package/dist/src/runtime/config/runner/config-normalization.js +109 -0
- package/dist/src/runtime/config/runner/loader.d.ts +1 -1
- package/dist/src/runtime/config/runner/loader.js +2 -69
- package/dist/src/runtime/config/runner/model-policy.js +3 -0
- package/dist/src/runtime/config/runner/schema-version.d.ts +14 -0
- package/dist/src/runtime/config/runner/schema-version.js +35 -0
- package/dist/src/runtime/config/runner/versioned-config.d.ts +2 -0
- package/dist/src/runtime/config/runner/versioned-config.js +51 -0
- package/dist/src/runtime/config/schema.js +36 -0
- package/dist/src/runtime/config/types.d.ts +1 -0
- package/dist/src/runtime/config/validation/environment-config-validation.d.ts +1 -0
- package/dist/src/runtime/config/validation/environment-config-validation.js +41 -0
- package/dist/src/runtime/config/validation/model-invocation-config-validation.d.ts +2 -0
- package/dist/src/runtime/config/validation/model-invocation-config-validation.js +64 -0
- package/dist/src/runtime/config/validation/model-invocation-override-validation.d.ts +2 -0
- package/dist/src/runtime/config/validation/model-invocation-override-validation.js +72 -0
- package/dist/src/runtime/config/validation/model-profile-validation.d.ts +4 -0
- package/dist/src/runtime/config/validation/model-profile-validation.js +87 -0
- package/dist/src/runtime/config/validation/model-registry-validation.d.ts +2 -0
- package/dist/src/runtime/config/validation/model-registry-validation.js +118 -0
- package/dist/src/runtime/config/validation/path-config-validation.d.ts +1 -0
- package/dist/src/runtime/config/validation/path-config-validation.js +7 -0
- package/dist/src/runtime/config/validation/runtime-config-field-validation.d.ts +12 -0
- package/dist/src/runtime/config/validation/runtime-config-field-validation.js +158 -0
- package/dist/src/runtime/config/validation/runtime-config-validation-contract.d.ts +9 -0
- package/dist/src/runtime/config/validation/runtime-config-validation-contract.js +13 -0
- package/dist/src/runtime/config/validation/runtime-root-section-validation.d.ts +6 -0
- package/dist/src/runtime/config/validation/runtime-root-section-validation.js +82 -0
- package/dist/src/runtime/config/validation/web-ui-config-validation.d.ts +3 -0
- package/dist/src/runtime/config/validation/web-ui-config-validation.js +26 -0
- package/dist/src/runtime/config/validation.d.ts +4 -15
- package/dist/src/runtime/config/validation.js +27 -499
- package/dist/src/runtime/config.js +3 -0
- package/dist/src/runtime/context/accepted-capability-action.d.ts +11 -0
- package/dist/src/runtime/context/accepted-capability-action.js +29 -0
- package/dist/src/runtime/context/model-step-compaction.js +6 -0
- package/dist/src/runtime/context/operation-supervision-evidence.d.ts +37 -0
- package/dist/src/runtime/context/operation-supervision-evidence.js +90 -0
- package/dist/src/runtime/context/request-tool-results.d.ts +3 -0
- package/dist/src/runtime/context/request-tool-results.js +11 -2
- package/dist/src/runtime/default-adapters.d.ts +3 -0
- package/dist/src/runtime/default-adapters.js +64 -3
- package/dist/src/runtime/index.d.ts +1 -0
- package/dist/src/runtime/index.js +1 -0
- package/dist/src/runtime/lifecycle/request-finalizer.d.ts +3 -0
- package/dist/src/runtime/lifecycle/request-finalizer.js +8 -0
- package/dist/src/runtime/long-term-memory/background-save-queue.d.ts +17 -0
- package/dist/src/runtime/long-term-memory/background-save-queue.js +66 -0
- package/dist/src/runtime/long-term-memory/candidate-persistence.d.ts +16 -0
- package/dist/src/runtime/long-term-memory/candidate-persistence.js +109 -0
- package/dist/src/runtime/long-term-memory/candidate-preparation.d.ts +8 -0
- package/dist/src/runtime/long-term-memory/candidate-preparation.js +36 -0
- package/dist/src/runtime/long-term-memory/candidate-processing.d.ts +9 -0
- package/dist/src/runtime/long-term-memory/candidate-processing.js +79 -0
- package/dist/src/runtime/long-term-memory/contracts.d.ts +108 -0
- package/dist/src/runtime/long-term-memory/contracts.js +1 -0
- package/dist/src/runtime/long-term-memory/diagnostics.d.ts +9 -0
- package/dist/src/runtime/long-term-memory/diagnostics.js +42 -0
- package/dist/src/runtime/long-term-memory/embedding-batches.d.ts +13 -0
- package/dist/src/runtime/long-term-memory/embedding-batches.js +87 -0
- package/dist/src/runtime/long-term-memory/events.d.ts +13 -0
- package/dist/src/runtime/long-term-memory/events.js +15 -0
- package/dist/src/runtime/long-term-memory/finalization.d.ts +8 -0
- package/dist/src/runtime/long-term-memory/finalization.js +24 -0
- package/dist/src/runtime/long-term-memory/index.d.ts +6 -0
- package/dist/src/runtime/long-term-memory/index.js +6 -0
- package/dist/src/runtime/long-term-memory/management/contracts.d.ts +54 -0
- package/dist/src/runtime/long-term-memory/management/contracts.js +1 -0
- package/dist/src/runtime/long-term-memory/management/errors.d.ts +10 -0
- package/dist/src/runtime/long-term-memory/management/errors.js +13 -0
- package/dist/src/runtime/long-term-memory/management/mutations.d.ts +17 -0
- package/dist/src/runtime/long-term-memory/management/mutations.js +178 -0
- package/dist/src/runtime/long-term-memory/management/queries.d.ts +8 -0
- package/dist/src/runtime/long-term-memory/management/queries.js +46 -0
- package/dist/src/runtime/long-term-memory/management/search.d.ts +7 -0
- package/dist/src/runtime/long-term-memory/management/search.js +18 -0
- package/dist/src/runtime/long-term-memory/management/service.d.ts +13 -0
- package/dist/src/runtime/long-term-memory/management/service.js +61 -0
- package/dist/src/runtime/long-term-memory/management/validation.d.ts +24 -0
- package/dist/src/runtime/long-term-memory/management/validation.js +77 -0
- package/dist/src/runtime/long-term-memory/onboarding/configuration.d.ts +14 -0
- package/dist/src/runtime/long-term-memory/onboarding/configuration.js +92 -0
- package/dist/src/runtime/long-term-memory/onboarding/contracts.d.ts +52 -0
- package/dist/src/runtime/long-term-memory/onboarding/contracts.js +1 -0
- package/dist/src/runtime/long-term-memory/onboarding/service.d.ts +21 -0
- package/dist/src/runtime/long-term-memory/onboarding/service.js +88 -0
- package/dist/src/runtime/long-term-memory/policies/normalization.d.ts +10 -0
- package/dist/src/runtime/long-term-memory/policies/normalization.js +45 -0
- package/dist/src/runtime/long-term-memory/policies/reconciliation.d.ts +20 -0
- package/dist/src/runtime/long-term-memory/policies/reconciliation.js +21 -0
- package/dist/src/runtime/long-term-memory/policies/scoring.d.ts +13 -0
- package/dist/src/runtime/long-term-memory/policies/scoring.js +55 -0
- package/dist/src/runtime/long-term-memory/policies/sensitive-data.d.ts +5 -0
- package/dist/src/runtime/long-term-memory/policies/sensitive-data.js +12 -0
- package/dist/src/runtime/long-term-memory/projection.d.ts +4 -0
- package/dist/src/runtime/long-term-memory/projection.js +39 -0
- package/dist/src/runtime/long-term-memory/ranked-search.d.ts +11 -0
- package/dist/src/runtime/long-term-memory/ranked-search.js +111 -0
- package/dist/src/runtime/long-term-memory/repository-state.d.ts +4 -0
- package/dist/src/runtime/long-term-memory/repository-state.js +131 -0
- package/dist/src/runtime/long-term-memory/response-context.d.ts +5 -0
- package/dist/src/runtime/long-term-memory/response-context.js +21 -0
- package/dist/src/runtime/long-term-memory/retrieval.d.ts +8 -0
- package/dist/src/runtime/long-term-memory/retrieval.js +73 -0
- package/dist/src/runtime/long-term-memory/service.d.ts +10 -0
- package/dist/src/runtime/long-term-memory/service.js +83 -0
- package/dist/src/runtime/orchestration/capability-adapters/index.d.ts +2 -0
- package/dist/src/runtime/orchestration/capability-adapters/index.js +2 -0
- package/dist/src/runtime/orchestration/final-response/authoring-contract.d.ts +10 -0
- package/dist/src/runtime/orchestration/final-response/authoring-contract.js +94 -0
- package/dist/src/runtime/orchestration/final-response/finalization.d.ts +1 -0
- package/dist/src/runtime/orchestration/final-response/finalization.js +1 -0
- package/dist/src/runtime/orchestration/final-response/format.d.ts +2 -0
- package/dist/src/runtime/orchestration/final-response/format.js +49 -0
- package/dist/src/runtime/orchestration/final-response/invoke.d.ts +16 -0
- package/dist/src/runtime/orchestration/final-response/invoke.js +24 -0
- package/dist/src/runtime/orchestration/role-calls/activation-budget.d.ts +14 -0
- package/dist/src/runtime/orchestration/role-calls/activation-budget.js +52 -0
- package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +154 -0
- package/dist/src/runtime/orchestration/role-calls/capability-selection-reconsideration.js +1 -8
- package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision-issuance.d.ts +17 -0
- package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision-issuance.js +155 -0
- package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision.d.ts +78 -0
- package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision.js +339 -0
- package/dist/src/runtime/orchestration/role-calls/command-decoder.js +35 -10
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/active-capability-caller.d.ts +6 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/active-capability-caller.js +15 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/call-frame-state.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/call-frame-state.js +6 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/call-scope-transitions.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/call-scope-transitions.js +86 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-batch-transitions.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-batch-transitions.js +172 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-execution-state.d.ts +9 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-execution-state.js +28 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-execution-transitions.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-execution-transitions.js +117 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-invocation.d.ts +4 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-invocation.js +16 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-selection-transition.d.ts +2 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-selection-transition.js +114 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-settlement.d.ts +6 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-settlement.js +54 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/child-transitions.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/child-transitions.js +206 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/operation-supervision-intervention.d.ts +13 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/operation-supervision-intervention.js +25 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/root-transitions.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/root-transitions.js +70 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch.d.ts +1 -1
- package/dist/src/runtime/orchestration/role-calls/command-dispatch.js +6 -580
- package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +45 -5
- package/dist/src/runtime/orchestration/role-calls/contracts.js +2 -2
- package/dist/src/runtime/orchestration/role-calls/diagnostics.d.ts +4 -0
- package/dist/src/runtime/orchestration/role-calls/diagnostics.js +152 -1
- package/dist/src/runtime/orchestration/role-calls/index.d.ts +6 -0
- package/dist/src/runtime/orchestration/role-calls/index.js +6 -0
- package/dist/src/runtime/orchestration/role-calls/ledger.js +131 -7
- package/dist/src/runtime/orchestration/role-calls/operation-supervision-issuance.d.ts +11 -0
- package/dist/src/runtime/orchestration/role-calls/operation-supervision-issuance.js +66 -0
- package/dist/src/runtime/orchestration/role-calls/operation-supervision-projection.d.ts +16 -0
- package/dist/src/runtime/orchestration/role-calls/operation-supervision-projection.js +52 -0
- package/dist/src/runtime/orchestration/role-calls/operation-supervision-state-validation.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/operation-supervision-state-validation.js +151 -0
- package/dist/src/runtime/orchestration/role-calls/operation-supervision.d.ts +112 -0
- package/dist/src/runtime/orchestration/role-calls/operation-supervision.js +197 -0
- package/dist/src/runtime/orchestration/role-calls/reconsideration-cause.d.ts +26 -0
- package/dist/src/runtime/orchestration/role-calls/reconsideration-cause.js +127 -0
- package/dist/src/runtime/orchestration/role-calls/reducer-primitives.d.ts +1 -2
- package/dist/src/runtime/orchestration/role-calls/reducer-primitives.js +2 -12
- package/dist/src/runtime/orchestration/role-calls/reducer.js +19 -2
- package/dist/src/runtime/orchestration/role-calls/transactions.js +62 -5
- package/dist/src/runtime/orchestration/role-executors/activation/capability-continuation.d.ts +15 -0
- package/dist/src/runtime/orchestration/role-executors/activation/capability-continuation.js +73 -0
- package/dist/src/runtime/orchestration/role-executors/activation/loop.d.ts +0 -1
- package/dist/src/runtime/orchestration/role-executors/activation/loop.js +16 -54
- package/dist/src/runtime/orchestration/role-executors/activation/result-normalization.js +14 -0
- package/dist/src/runtime/orchestration/role-executors/activation/state-validation.d.ts +13 -1
- package/dist/src/runtime/orchestration/role-executors/activation/state-validation.js +137 -1
- package/dist/src/runtime/orchestration/role-executors/contracts.d.ts +7 -3
- package/dist/src/runtime/orchestration/role-executors/diagnostics.d.ts +2 -0
- package/dist/src/runtime/orchestration/role-executors/diagnostics.js +1 -6
- package/dist/src/runtime/orchestration/worker-capabilities/batch-selection.d.ts +10 -0
- package/dist/src/runtime/orchestration/worker-capabilities/batch-selection.js +8 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/adapter-catalog.d.ts +14 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/adapter-catalog.js +76 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/adapter-normalization.d.ts +10 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/adapter-normalization.js +160 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/binding-rejection.d.ts +2 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/binding-rejection.js +8 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/bound-capability-session.d.ts +24 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/bound-capability-session.js +100 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/call-authority.d.ts +29 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/call-authority.js +193 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/create-binding.d.ts +11 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/create-binding.js +109 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/dependency-results.d.ts +2 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/dependency-results.js +34 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/invocation-preparation.d.ts +21 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/invocation-preparation.js +167 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding.d.ts +1 -13
- package/dist/src/runtime/orchestration/worker-capabilities/binding.js +1 -625
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +57 -14
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +3 -1
- package/dist/src/runtime/orchestration/worker-capabilities/controls.d.ts +7 -0
- package/dist/src/runtime/orchestration/worker-capabilities/controls.js +50 -0
- package/dist/src/runtime/orchestration/worker-capabilities/error-fingerprint.d.ts +5 -0
- package/dist/src/runtime/orchestration/worker-capabilities/error-fingerprint.js +119 -0
- package/dist/src/runtime/orchestration/worker-capabilities/errors.d.ts +6 -0
- package/dist/src/runtime/orchestration/worker-capabilities/errors.js +11 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-exact-result.d.ts +7 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-exact-result.js +35 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-execution.d.ts +9 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-execution.js +28 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-normalization.d.ts +18 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-normalization.js +197 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-references.d.ts +2 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-references.js +44 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/context-projection.d.ts +12 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/context-projection.js +51 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/invocation-preparation.d.ts +25 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/invocation-preparation.js +111 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/ledger-transaction.d.ts +20 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/ledger-transaction.js +142 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution.d.ts +10 -14
- package/dist/src/runtime/orchestration/worker-capabilities/execution.js +84 -357
- package/dist/src/runtime/orchestration/worker-capabilities/index.d.ts +3 -0
- package/dist/src/runtime/orchestration/worker-capabilities/index.js +3 -0
- package/dist/src/runtime/orchestration/worker-capabilities/outcome-fingerprint.d.ts +8 -0
- package/dist/src/runtime/orchestration/worker-capabilities/outcome-fingerprint.js +21 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-author.js +31 -9
- package/dist/src/runtime/orchestration/worker-capabilities/payload-contracts.d.ts +15 -6
- package/dist/src/runtime/orchestration/worker-capabilities/payload-contracts.js +2 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-instructions.js +4 -4
- package/dist/src/runtime/orchestration/worker-capabilities/preparation-fingerprint.d.ts +23 -0
- package/dist/src/runtime/orchestration/worker-capabilities/preparation-fingerprint.js +109 -0
- package/dist/src/runtime/plugins/manifest-projection.js +3 -0
- package/dist/src/runtime/plugins/manifest-validator.js +20 -0
- package/dist/src/runtime/ports.d.ts +10 -1
- package/dist/src/runtime/request/contracts.d.ts +7 -0
- package/dist/src/runtime/request/dependencies.d.ts +1 -0
- package/dist/src/runtime/request/dependencies.js +10 -1
- package/dist/src/runtime/request/execution-agent-root-execution.js +5 -4
- package/dist/src/runtime/request/execution-facets.d.ts +2 -1
- package/dist/src/runtime/request/execution-facets.js +6 -0
- package/dist/src/runtime/request/execution-scope-surfaces.js +6 -0
- package/dist/src/runtime/request/execution-scope.d.ts +3 -2
- package/dist/src/runtime/request/handler.js +4 -1
- package/dist/src/runtime/request/result.d.ts +2 -0
- package/dist/src/runtime/request/root-contract.d.ts +4 -2
- package/dist/src/runtime/request/root-execution-kernel.js +100 -31
- package/dist/src/runtime/request/supervisor-root-execution.js +4 -2
- package/dist/src/runtime/request/worker-capability-payload-prompts.js +1 -1
- package/dist/src/runtime/steps/execution-agent/capability-invocation-contract.d.ts +24 -0
- package/dist/src/runtime/steps/execution-agent/capability-invocation-contract.js +52 -0
- package/dist/src/runtime/steps/execution-agent/contracts.d.ts +5 -2
- package/dist/src/runtime/steps/execution-agent/format.js +19 -6
- package/dist/src/runtime/steps/execution-agent/input.js +8 -12
- package/dist/src/runtime/steps/execution-agent/parser.js +25 -19
- package/dist/src/runtime/steps/execution-agent/prompt.js +3 -2
- package/dist/src/runtime/steps/execution-agent/reconsideration-context.d.ts +3 -0
- package/dist/src/runtime/steps/execution-agent/reconsideration-context.js +76 -0
- package/dist/src/runtime/steps/execution-agent/refinement-prompt.js +4 -4
- package/dist/src/runtime/steps/execution-agent/refinement-reconsideration.d.ts +3 -0
- package/dist/src/runtime/steps/execution-agent/refinement-reconsideration.js +25 -0
- package/dist/src/runtime/steps/execution-agent/refinement.d.ts +4 -7
- package/dist/src/runtime/steps/execution-agent/refinement.js +24 -35
- package/dist/src/runtime/steps/execution-agent/response-input.d.ts +2 -0
- package/dist/src/runtime/steps/execution-agent/response-input.js +22 -6
- package/dist/src/runtime/steps/execution-agent/response-prompt.d.ts +1 -1
- package/dist/src/runtime/steps/execution-agent/response-prompt.js +8 -3
- package/dist/src/runtime/steps/execution-agent/response-run.d.ts +6 -0
- package/dist/src/runtime/steps/execution-agent/response-run.js +40 -10
- package/dist/src/runtime/steps/execution-agent/run.js +6 -6
- package/dist/src/runtime/steps/execution-agent/state-context.d.ts +4 -1
- package/dist/src/runtime/steps/execution-agent/state-context.js +40 -23
- package/dist/src/runtime/steps/supervisor-response/index.d.ts +1 -1
- package/dist/src/runtime/steps/supervisor-response/index.js +1 -1
- package/dist/src/runtime/steps/supervisor-response/input.d.ts +13 -5
- package/dist/src/runtime/steps/supervisor-response/input.js +27 -8
- package/dist/src/runtime/steps/supervisor-response/memory-authoring.d.ts +10 -0
- package/dist/src/runtime/steps/supervisor-response/memory-authoring.js +125 -0
- package/dist/src/runtime/steps/supervisor-response/prompt.d.ts +4 -0
- package/dist/src/runtime/steps/supervisor-response/prompt.js +19 -0
- package/dist/src/runtime/steps/supervisor-response/run.d.ts +8 -0
- package/dist/src/runtime/steps/supervisor-response/run.js +46 -17
- package/dist/src/runtime/steps/worker-decision/contracts.d.ts +8 -1
- package/dist/src/runtime/steps/worker-decision/contracts.js +3 -0
- package/dist/src/runtime/steps/worker-decision/format.d.ts +4 -0
- package/dist/src/runtime/steps/worker-decision/format.js +97 -22
- package/dist/src/runtime/steps/worker-decision/input/action-policy.d.ts +9 -0
- package/dist/src/runtime/steps/worker-decision/input/action-policy.js +15 -0
- package/dist/src/runtime/steps/worker-decision/input/canonical-state.d.ts +2 -2
- package/dist/src/runtime/steps/worker-decision/input/canonical-state.js +19 -7
- package/dist/src/runtime/steps/worker-decision/input/capability-selection.js +44 -3
- package/dist/src/runtime/steps/worker-decision/input/contract.d.ts +1 -0
- package/dist/src/runtime/steps/worker-decision/input/contract.js +12 -6
- package/dist/src/runtime/steps/worker-decision/input/diagnostic-projection.js +14 -5
- package/dist/src/runtime/steps/worker-decision/input/prompt-context.js +9 -6
- package/dist/src/runtime/steps/worker-decision/input/reference-context.js +21 -3
- package/dist/src/runtime/steps/worker-decision/input/session.js +2 -1
- package/dist/src/runtime/steps/worker-decision/input/types.d.ts +6 -1
- package/dist/src/runtime/steps/worker-decision/input.d.ts +2 -2
- package/dist/src/runtime/steps/worker-decision/input.js +1 -2
- package/dist/src/runtime/steps/worker-decision/parser/accepted-decision.d.ts +3 -0
- package/dist/src/runtime/steps/worker-decision/parser/accepted-decision.js +70 -0
- package/dist/src/runtime/steps/worker-decision/parser/action-validation.d.ts +4 -0
- package/dist/src/runtime/steps/worker-decision/parser/action-validation.js +55 -0
- package/dist/src/runtime/steps/worker-decision/parser/capability-batch-validation.d.ts +3 -0
- package/dist/src/runtime/steps/worker-decision/parser/capability-batch-validation.js +135 -0
- package/dist/src/runtime/steps/worker-decision/parser/capability-controls-validation.d.ts +6 -0
- package/dist/src/runtime/steps/worker-decision/parser/capability-controls-validation.js +132 -0
- package/dist/src/runtime/steps/worker-decision/parser/capability-invocation-validation.d.ts +4 -0
- package/dist/src/runtime/steps/worker-decision/parser/capability-invocation-validation.js +104 -0
- package/dist/src/runtime/steps/worker-decision/parser/decision-shape-validation.d.ts +4 -0
- package/dist/src/runtime/steps/worker-decision/parser/decision-shape-validation.js +28 -0
- package/dist/src/runtime/steps/worker-decision/parser/pending-capability-selection-validation.d.ts +4 -0
- package/dist/src/runtime/steps/worker-decision/parser/pending-capability-selection-validation.js +105 -0
- package/dist/src/runtime/steps/worker-decision/parser/validation-contract.d.ts +50 -0
- package/dist/src/runtime/steps/worker-decision/parser/validation-contract.js +19 -0
- package/dist/src/runtime/steps/worker-decision/parser.d.ts +5 -1
- package/dist/src/runtime/steps/worker-decision/parser.js +32 -426
- package/dist/src/runtime/steps/worker-decision/prompt.d.ts +3 -0
- package/dist/src/runtime/steps/worker-decision/prompt.js +57 -20
- package/dist/src/runtime/steps/worker-decision/result-author.js +11 -1
- package/dist/src/runtime/steps/worker-decision/run.js +97 -19
- package/dist/src/runtime/validation/strict-record.d.ts +2 -0
- package/dist/src/runtime/validation/strict-record.js +12 -0
- package/dist/src/shared/model-step-registry-data.json +9 -0
- package/dist/src/shared/model-step-registry.d.ts +9 -0
- package/dist/src/shared/model-step-registry.generated.d.ts +9 -0
- package/dist/src/shared/model-step-registry.generated.js +9 -0
- package/dist/src/web-ui/app/ARCHITECTURE.md +1 -1
- package/dist/src/web-ui/app/app.js +56 -11
- package/dist/src/web-ui/app/components/config-workspace/config-model.js +320 -0
- package/dist/src/web-ui/app/components/config-workspace/dashboard-rendering.js +155 -0
- package/dist/src/web-ui/app/components/config-workspace/field-rendering.js +278 -0
- package/dist/src/web-ui/app/components/config-workspace/model-rendering.js +251 -0
- package/dist/src/web-ui/app/components/config-workspace/step-rendering.js +145 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-events.js +271 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-mutations.js +195 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-persistence.js +247 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-view.js +299 -0
- package/dist/src/web-ui/app/components/config-workspace.js +179 -866
- package/dist/src/web-ui/app/components/conversation-activity.d.ts +7 -1
- package/dist/src/web-ui/app/components/long-term-memory/icons.js +16 -0
- package/dist/src/web-ui/app/components/long-term-memory/manager.js +192 -0
- package/dist/src/web-ui/app/components/long-term-memory/record-editor.d.ts +9 -0
- package/dist/src/web-ui/app/components/long-term-memory/record-editor.js +62 -0
- package/dist/src/web-ui/app/components/long-term-memory/record-list.d.ts +5 -0
- package/dist/src/web-ui/app/components/long-term-memory/record-list.js +97 -0
- package/dist/src/web-ui/app/components/long-term-memory/view-model.d.ts +29 -0
- package/dist/src/web-ui/app/components/long-term-memory/view-model.js +69 -0
- package/dist/src/web-ui/app/components/long-term-memory-setup.js +334 -0
- package/dist/src/web-ui/app/components/runtime-setup-guide.d.ts +39 -0
- package/dist/src/web-ui/app/components/tool-approval-card.d.ts +18 -0
- package/dist/src/web-ui/app/components/workspace-shell.js +48 -7
- package/dist/src/web-ui/app/controllers/app-event-bindings.js +43 -6
- package/dist/src/web-ui/app/controllers/composer-attachments-controller.d.ts +92 -0
- package/dist/src/web-ui/app/controllers/composer-queue-controller.d.ts +109 -0
- package/dist/src/web-ui/app/controllers/composer-submit-controller.d.ts +77 -0
- package/dist/src/web-ui/app/controllers/conversation-session-controller.d.ts +149 -0
- package/dist/src/web-ui/app/controllers/conversation-session-controller.js +43 -3
- package/dist/src/web-ui/app/controllers/long-term-memory/controller.d.ts +87 -0
- package/dist/src/web-ui/app/controllers/long-term-memory/controller.js +302 -0
- package/dist/src/web-ui/app/controllers/long-term-memory/policy.d.ts +14 -0
- package/dist/src/web-ui/app/controllers/long-term-memory/policy.js +61 -0
- package/dist/src/web-ui/app/controllers/long-term-memory/state.js +85 -0
- package/dist/src/web-ui/app/controllers/operations-controller.d.ts +25 -0
- package/dist/src/web-ui/app/controllers/realtime-event-controller.d.ts +57 -0
- package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.d.ts +32 -0
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.d.ts +177 -0
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +78 -11
- package/dist/src/web-ui/app/controllers/tool-approval-controller.d.ts +28 -0
- package/dist/src/web-ui/app/index.html +13 -15
- package/dist/src/web-ui/app/services/runtime-web-client/memory.js +127 -0
- package/dist/src/web-ui/app/services/runtime-web-client.d.ts +84 -0
- package/dist/src/web-ui/app/services/runtime-web-client.js +27 -1
- package/dist/src/web-ui/app/styles/30-inspector-config.css +151 -1423
- package/dist/src/web-ui/app/styles/35-memory-onboarding.css +153 -0
- package/dist/src/web-ui/app/styles/36-memory-management.css +419 -0
- package/dist/src/web-ui/app/styles/40-config-workspace.css +992 -0
- package/dist/src/web-ui/app/styles/90-responsive.css +187 -26
- package/dist/src/web-ui/app/styles.css +3 -0
- package/dist/src/web-ui/config-dashboard-backend.js +9 -1
- package/dist/src/web-ui/local-runtime/api-router.d.ts +4 -2
- package/dist/src/web-ui/local-runtime/api-router.js +33 -0
- package/dist/src/web-ui/local-runtime/contracts.d.ts +5 -0
- package/dist/src/web-ui/local-runtime/memory-management-input.d.ts +12 -0
- package/dist/src/web-ui/local-runtime/memory-management-input.js +68 -0
- package/dist/src/web-ui/local-runtime/memory-management-response.d.ts +17 -0
- package/dist/src/web-ui/local-runtime/memory-management-response.js +47 -0
- package/dist/src/web-ui/local-runtime/memory-management-routes.d.ts +24 -0
- package/dist/src/web-ui/local-runtime/memory-management-routes.js +128 -0
- package/dist/src/web-ui/local-runtime/memory-onboarding-routes.d.ts +17 -0
- package/dist/src/web-ui/local-runtime/memory-onboarding-routes.js +81 -0
- package/dist/src/web-ui/local-runtime/request-abort.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/request-abort.js +19 -0
- package/dist/src/web-ui/local-runtime-backend.js +10 -3
- package/dist/src/web-ui/server.d.ts +2 -0
- package/dist/src/web-ui/server.js +3 -0
- package/docs/configuration.md +128 -45
- package/docs/installation.md +21 -0
- package/docs/known-limitations.md +11 -0
- package/docs/long-term-memory.md +181 -0
- package/docs/publishing.md +52 -25
- package/docs/runtime-invariant-coverage.md +1 -1
- package/docs/runtime-library.md +16 -1
- package/docs/runtime-prompt-policy-contracts.md +12 -2
- package/docs/troubleshooting.md +21 -0
- package/examples/models/default.config.json +1 -0
- package/examples/request-runner.config.example.json +16 -22
- package/examples/runtime.config.example.json +4 -0
- package/methodologies/memory-informed-response.md +15 -0
- package/methodologies/response-ux.md +17 -0
- package/package.json +8 -2
- package/plugins/exec/source/handlers.ts +65 -5
- package/plugins/exec/src/index.cjs +39 -3
- package/plugins/filesystem/plugin.json +1 -0
- package/runtime.config.schema.json +30 -0
- package/src/runtime/README.md +77 -38
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { type RoleCallFrame, type RoleCallDependencyResult, type RoleCallLedger, type RoleCapabilityEffect, type RoleCapabilityDeclaredEffect, type RoleCapabilityExecutionOutcome, type RoleCapabilityObservedEffect, type RoleCapabilityResultReference } from "../role-calls/index.js";
|
|
1
|
+
import { type RoleCallFrame, type RoleCallDependencyResult, type RoleCallLedger, type RoleCallOperationSupervisionInterventionCommit, type RoleCapabilityEffect, type RoleCapabilityDeclaredEffect, type RoleCapabilityExecutionOutcome, type RoleCapabilityObservedEffect, type RoleCapabilityResultReference } from "../role-calls/index.js";
|
|
2
2
|
import type { ToolCatalogGroup } from "../../../capabilities/tool-types.js";
|
|
3
3
|
import type { CapabilityAdapterResult } from "../capability-adapters/result.js";
|
|
4
4
|
export declare const WORKER_CAPABILITY_ID_MAX_LENGTH = 128;
|
|
5
5
|
/** Client-facing capability narration; never an execution objective or payload. */
|
|
6
6
|
export declare const WORKER_CAPABILITY_INTENT_MAX_LENGTH = 500;
|
|
7
|
+
/** Immutable Worker-only assignment for authoring one capability payload. */
|
|
8
|
+
export declare const WORKER_CAPABILITY_AUTHORING_OBJECTIVE_MAX_LENGTH = 8192;
|
|
7
9
|
export declare const WORKER_CAPABILITY_SUMMARY_MAX_LENGTH = 512;
|
|
8
10
|
export declare const WORKER_CAPABILITY_COUNT_MAX = 64;
|
|
9
11
|
export declare const WORKER_CAPABILITY_CONTROL_COUNT_MAX = 16;
|
|
@@ -63,6 +65,8 @@ export type WorkerCapabilityDescriptor = Readonly<{
|
|
|
63
65
|
controlsRefinement?: "mechanical_when_complete";
|
|
64
66
|
/** Manifest-owned routing metadata projected only in capability selection. */
|
|
65
67
|
catalogGroups?: readonly ToolCatalogGroup[];
|
|
68
|
+
/** Canonical payload contract requires a Worker authoring receipt. */
|
|
69
|
+
requiresPayloadAuthoringObjective?: true;
|
|
66
70
|
}>;
|
|
67
71
|
export type WorkerCapabilityControls = Readonly<Record<string, unknown>>;
|
|
68
72
|
/**
|
|
@@ -97,17 +101,57 @@ export type WorkerCapabilityAdapterResult = Readonly<{
|
|
|
97
101
|
references?: readonly RoleCapabilityResultReference[];
|
|
98
102
|
/** Canonical adapter-owned result persisted for every settled execution. */
|
|
99
103
|
exactResult?: CapabilityAdapterResult;
|
|
104
|
+
/**
|
|
105
|
+
* Opaque adapter-owned stable failure identity. `null` explicitly opts
|
|
106
|
+
* this one failure out of supervision; omission is a contract violation.
|
|
107
|
+
*/
|
|
108
|
+
failureOutcomeFingerprint: string | null;
|
|
109
|
+
}>;
|
|
110
|
+
export type WorkerCapabilityAdapterExecutionInput<TContext> = Readonly<{
|
|
111
|
+
context: TContext;
|
|
112
|
+
call: RoleCallFrame;
|
|
113
|
+
executionId: string;
|
|
114
|
+
/** Client-facing presentation metadata for lifecycle events only. */
|
|
115
|
+
intent: string;
|
|
116
|
+
/** Worker-only payload assignment; forbidden for root and non-payload calls. */
|
|
117
|
+
authoringObjective?: string;
|
|
118
|
+
controls: WorkerCapabilityControls;
|
|
119
|
+
settledCapabilityResults: readonly WorkerSettledCapabilityResult[];
|
|
120
|
+
dependencyResults?: readonly RoleCallDependencyResult[];
|
|
121
|
+
executionFreshness?: WorkerCapabilityExecutionFreshness;
|
|
122
|
+
}>;
|
|
123
|
+
export type WorkerCapabilityPreparedExecution = Readonly<{
|
|
124
|
+
/** Opaque exact-action identity required from every preparing adapter. */
|
|
125
|
+
actionFingerprint?: string;
|
|
126
|
+
/**
|
|
127
|
+
* Canonical non-payload controls accepted by the preparing adapter,
|
|
128
|
+
* including any adapter-validated staged controls hidden from selection.
|
|
129
|
+
*/
|
|
130
|
+
acceptedControls: WorkerCapabilityControls;
|
|
131
|
+
execute(executionId: string): Promise<WorkerCapabilityAdapterResult>;
|
|
132
|
+
}>;
|
|
133
|
+
export type WorkerCapabilityAdapterPreparationInput<TContext> = Readonly<Omit<WorkerCapabilityAdapterExecutionInput<TContext>, "executionId"> & {
|
|
134
|
+
/** Non-canonical correlation for payload preparation and diagnostics only. */
|
|
135
|
+
preparationId: string;
|
|
100
136
|
}>;
|
|
101
137
|
export type WorkerCapabilityExecutionReference = Readonly<{
|
|
102
138
|
executionId: string;
|
|
103
139
|
}>;
|
|
140
|
+
export type WorkerCapabilityOperationInterventionReference = Readonly<{
|
|
141
|
+
kind: "operation_supervision_intervened";
|
|
142
|
+
commit: RoleCallOperationSupervisionInterventionCommit;
|
|
143
|
+
}>;
|
|
144
|
+
export type WorkerCapabilityAttemptReference = WorkerCapabilityExecutionReference | WorkerCapabilityOperationInterventionReference;
|
|
104
145
|
export type WorkerCapabilityBatchExecutionReference = Readonly<{
|
|
105
146
|
executionIds: readonly string[];
|
|
106
147
|
}>;
|
|
148
|
+
export type WorkerCapabilityBatchAttemptReference = WorkerCapabilityBatchExecutionReference | WorkerCapabilityOperationInterventionReference;
|
|
107
149
|
export type WorkerCapabilityInvocation = Readonly<{
|
|
108
150
|
capabilityId: string;
|
|
109
151
|
/** Client-facing presentation metadata; execution must not infer from it. */
|
|
110
152
|
intent: string;
|
|
153
|
+
/** Present only when the selected descriptor requires payload authoring. */
|
|
154
|
+
authoringObjective?: string;
|
|
111
155
|
controls: WorkerCapabilityControls;
|
|
112
156
|
}>;
|
|
113
157
|
export type WorkerSettledCapabilityResult = Readonly<{
|
|
@@ -126,17 +170,14 @@ export type WorkerSettledCapabilityResult = Readonly<{
|
|
|
126
170
|
}>;
|
|
127
171
|
export type WorkerCapabilityAdapter<TContext> = Readonly<{
|
|
128
172
|
descriptor: WorkerCapabilityDescriptor;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
dependencyResults?: readonly RoleCallDependencyResult[];
|
|
138
|
-
executionFreshness?: WorkerCapabilityExecutionFreshness;
|
|
139
|
-
}>): Promise<WorkerCapabilityAdapterResult>;
|
|
173
|
+
/**
|
|
174
|
+
* Optional exact-action preparation seam. Production tool adapters use this
|
|
175
|
+
* to materialize and normalize the complete invocation before admission.
|
|
176
|
+
* It must not perform the capability's externally observable effect; only
|
|
177
|
+
* the returned execute closure may do that after canonical admission.
|
|
178
|
+
*/
|
|
179
|
+
prepare?(input: WorkerCapabilityAdapterPreparationInput<TContext>): Promise<WorkerCapabilityPreparedExecution>;
|
|
180
|
+
execute(input: WorkerCapabilityAdapterExecutionInput<TContext>): Promise<WorkerCapabilityAdapterResult>;
|
|
140
181
|
}>;
|
|
141
182
|
/**
|
|
142
183
|
* Lazy request-scoped source of neutral Worker capabilities. Implementations
|
|
@@ -166,13 +207,15 @@ export type WorkerCapabilityBinding<TContext> = Readonly<{
|
|
|
166
207
|
execute(input: Readonly<{
|
|
167
208
|
capabilityId: string;
|
|
168
209
|
intent: unknown;
|
|
210
|
+
authoringObjective?: unknown;
|
|
169
211
|
controls: unknown;
|
|
170
|
-
}>): Promise<
|
|
212
|
+
}>): Promise<WorkerCapabilityAttemptReference>;
|
|
171
213
|
executeBatch(input: Readonly<{
|
|
172
214
|
invocations: readonly Readonly<{
|
|
173
215
|
capabilityId: string;
|
|
174
216
|
intent: unknown;
|
|
217
|
+
authoringObjective?: unknown;
|
|
175
218
|
controls: unknown;
|
|
176
219
|
}>[];
|
|
177
|
-
}>): Promise<
|
|
220
|
+
}>): Promise<WorkerCapabilityBatchAttemptReference>;
|
|
178
221
|
}>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { ROLE_CAPABILITY_ID_MAX_LENGTH, } from "../role-calls/index.js";
|
|
1
|
+
import { ROLE_CAPABILITY_ID_MAX_LENGTH, ROLE_CALL_OBJECTIVE_MAX_LENGTH, } from "../role-calls/index.js";
|
|
2
2
|
export const WORKER_CAPABILITY_ID_MAX_LENGTH = ROLE_CAPABILITY_ID_MAX_LENGTH;
|
|
3
3
|
/** Client-facing capability narration; never an execution objective or payload. */
|
|
4
4
|
export const WORKER_CAPABILITY_INTENT_MAX_LENGTH = 500;
|
|
5
|
+
/** Immutable Worker-only assignment for authoring one capability payload. */
|
|
6
|
+
export const WORKER_CAPABILITY_AUTHORING_OBJECTIVE_MAX_LENGTH = ROLE_CALL_OBJECTIVE_MAX_LENGTH;
|
|
5
7
|
export const WORKER_CAPABILITY_SUMMARY_MAX_LENGTH = 512;
|
|
6
8
|
export const WORKER_CAPABILITY_COUNT_MAX = 64;
|
|
7
9
|
export const WORKER_CAPABILITY_CONTROL_COUNT_MAX = 16;
|
|
@@ -16,3 +16,10 @@ export type WorkerCapabilityControlsValidation = Readonly<{
|
|
|
16
16
|
}>;
|
|
17
17
|
export declare function normalizeWorkerCapabilityControlsSchema(input: unknown): WorkerCapabilityControlsSchemaNormalization;
|
|
18
18
|
export declare function validateWorkerCapabilityControls(schema: WorkerCapabilityControlsSchema, input: unknown): WorkerCapabilityControlsValidation;
|
|
19
|
+
/**
|
|
20
|
+
* Captures the complete non-payload action already accepted by a preparing
|
|
21
|
+
* adapter. These controls may include staged values that are deliberately
|
|
22
|
+
* absent from the model-facing descriptor, so only the shared flat controls
|
|
23
|
+
* envelope is enforced here.
|
|
24
|
+
*/
|
|
25
|
+
export declare function validateWorkerCapabilityAcceptedControls(input: unknown): WorkerCapabilityControlsValidation;
|
|
@@ -65,6 +65,33 @@ export function validateWorkerCapabilityControls(schema, input) {
|
|
|
65
65
|
}
|
|
66
66
|
return { ok: true, value: Object.freeze(controls) };
|
|
67
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Captures the complete non-payload action already accepted by a preparing
|
|
70
|
+
* adapter. These controls may include staged values that are deliberately
|
|
71
|
+
* absent from the model-facing descriptor, so only the shared flat controls
|
|
72
|
+
* envelope is enforced here.
|
|
73
|
+
*/
|
|
74
|
+
export function validateWorkerCapabilityAcceptedControls(input) {
|
|
75
|
+
if (!isPlainRecord(input)) {
|
|
76
|
+
return failure("accepted_controls_not_object");
|
|
77
|
+
}
|
|
78
|
+
const entries = Object.entries(input);
|
|
79
|
+
if (entries.length > WORKER_CAPABILITY_CONTROL_COUNT_MAX) {
|
|
80
|
+
return failure("accepted_controls_count_invalid");
|
|
81
|
+
}
|
|
82
|
+
const controls = {};
|
|
83
|
+
for (const [controlId, inputValue] of entries) {
|
|
84
|
+
if (!isControlId(controlId)) {
|
|
85
|
+
return failure("accepted_controls_id_invalid", controlId);
|
|
86
|
+
}
|
|
87
|
+
const value = normalizeAcceptedControlValue(inputValue);
|
|
88
|
+
if (!value.ok) {
|
|
89
|
+
return failure(value.issueCode, controlId);
|
|
90
|
+
}
|
|
91
|
+
controls[controlId] = value.value;
|
|
92
|
+
}
|
|
93
|
+
return { ok: true, value: Object.freeze(controls) };
|
|
94
|
+
}
|
|
68
95
|
function normalizeControl(input) {
|
|
69
96
|
if (!isPlainRecord(input) || typeof input.type !== "string") {
|
|
70
97
|
return failure("controls_schema_property_invalid");
|
|
@@ -190,6 +217,29 @@ function normalizeControlValue(control, input) {
|
|
|
190
217
|
}
|
|
191
218
|
return normalizeScalarValue(control, input);
|
|
192
219
|
}
|
|
220
|
+
function normalizeAcceptedControlValue(input) {
|
|
221
|
+
if (!Array.isArray(input))
|
|
222
|
+
return normalizeAcceptedScalarValue(input);
|
|
223
|
+
if (input.length > WORKER_CAPABILITY_CONTROL_ARRAY_MAX_ITEMS) {
|
|
224
|
+
return failure("accepted_controls_array_invalid");
|
|
225
|
+
}
|
|
226
|
+
const values = [];
|
|
227
|
+
for (const item of input) {
|
|
228
|
+
const value = normalizeAcceptedScalarValue(item);
|
|
229
|
+
if (!value.ok)
|
|
230
|
+
return value;
|
|
231
|
+
values.push(value.value);
|
|
232
|
+
}
|
|
233
|
+
return { ok: true, value: Object.freeze(values) };
|
|
234
|
+
}
|
|
235
|
+
function normalizeAcceptedScalarValue(input) {
|
|
236
|
+
if (typeof input === "string" ||
|
|
237
|
+
typeof input === "boolean" ||
|
|
238
|
+
(typeof input === "number" && Number.isFinite(input))) {
|
|
239
|
+
return { ok: true, value: input };
|
|
240
|
+
}
|
|
241
|
+
return failure("accepted_controls_value_invalid");
|
|
242
|
+
}
|
|
193
243
|
function normalizeScalarValue(control, input) {
|
|
194
244
|
if (control.type === "string") {
|
|
195
245
|
if (typeof input !== "string") {
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
const ERROR_NAME_MAX_LENGTH = 128;
|
|
3
|
+
const ERROR_MESSAGE_MAX_LENGTH = 4_096;
|
|
4
|
+
const ERROR_FIELD_MAX_LENGTH = 512;
|
|
5
|
+
const STABLE_ERROR_FIELD_IDS = Object.freeze([
|
|
6
|
+
"stage",
|
|
7
|
+
"code",
|
|
8
|
+
"errorCode",
|
|
9
|
+
"issueCode",
|
|
10
|
+
"status",
|
|
11
|
+
"exitCode",
|
|
12
|
+
]);
|
|
13
|
+
/** Returns only an opaque digest; raw thrown values never cross this boundary. */
|
|
14
|
+
export function createStableWorkerCapabilityErrorFingerprint(input) {
|
|
15
|
+
try {
|
|
16
|
+
const identity = stableErrorIdentity(input.error);
|
|
17
|
+
if (identity === undefined)
|
|
18
|
+
return undefined;
|
|
19
|
+
const canonical = JSON.stringify([
|
|
20
|
+
"worker_capability_error_v1",
|
|
21
|
+
input.domain,
|
|
22
|
+
identity,
|
|
23
|
+
]);
|
|
24
|
+
return `sha256:${createHash("sha256").update(canonical).digest("hex")}`;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function stableErrorIdentity(error) {
|
|
31
|
+
if (error instanceof Error) {
|
|
32
|
+
const name = canonicalErrorName(error.name);
|
|
33
|
+
if (name === undefined)
|
|
34
|
+
return undefined;
|
|
35
|
+
const fields = stableErrorFields(error);
|
|
36
|
+
if (!fields.ok)
|
|
37
|
+
return undefined;
|
|
38
|
+
if (fields.value.length > 0) {
|
|
39
|
+
return Object.freeze(["error_fields_v1", name, fields.value]);
|
|
40
|
+
}
|
|
41
|
+
if (error.cause !== undefined)
|
|
42
|
+
return undefined;
|
|
43
|
+
const message = canonicalErrorMessage(error.message);
|
|
44
|
+
return message === undefined
|
|
45
|
+
? undefined
|
|
46
|
+
: Object.freeze(["error_message_v1", name, message]);
|
|
47
|
+
}
|
|
48
|
+
if (!isPlainRecord(error))
|
|
49
|
+
return undefined;
|
|
50
|
+
const fields = stableErrorFields(error);
|
|
51
|
+
if (!fields.ok)
|
|
52
|
+
return undefined;
|
|
53
|
+
const name = optionalCanonicalErrorName(error.name);
|
|
54
|
+
if (!name.ok)
|
|
55
|
+
return undefined;
|
|
56
|
+
if (fields.value.length > 0) {
|
|
57
|
+
return Object.freeze(["thrown_fields_v1", name.value, fields.value]);
|
|
58
|
+
}
|
|
59
|
+
if (Object.keys(error).some((key) => key !== "name" && key !== "message")) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
const message = canonicalErrorMessage(error.message);
|
|
63
|
+
return name.value === null || message === undefined
|
|
64
|
+
? undefined
|
|
65
|
+
: Object.freeze(["thrown_message_v1", name.value, message]);
|
|
66
|
+
}
|
|
67
|
+
function stableErrorFields(error) {
|
|
68
|
+
const record = error;
|
|
69
|
+
const fields = [];
|
|
70
|
+
for (const key of STABLE_ERROR_FIELD_IDS) {
|
|
71
|
+
const value = record[key];
|
|
72
|
+
if (value === undefined || value === null || value === "")
|
|
73
|
+
continue;
|
|
74
|
+
if (typeof value === "string" &&
|
|
75
|
+
value.length <= ERROR_FIELD_MAX_LENGTH &&
|
|
76
|
+
value === value.trim()) {
|
|
77
|
+
fields.push(Object.freeze([key, value]));
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (typeof value === "number" && Number.isFinite(value)) {
|
|
81
|
+
fields.push(Object.freeze([key, value]));
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
return Object.freeze({ ok: false });
|
|
85
|
+
}
|
|
86
|
+
return Object.freeze({ ok: true, value: Object.freeze(fields) });
|
|
87
|
+
}
|
|
88
|
+
function optionalCanonicalErrorName(value) {
|
|
89
|
+
if (value === undefined || value === null) {
|
|
90
|
+
return Object.freeze({ ok: true, value: null });
|
|
91
|
+
}
|
|
92
|
+
const name = canonicalErrorName(value);
|
|
93
|
+
return name === undefined
|
|
94
|
+
? Object.freeze({ ok: false })
|
|
95
|
+
: Object.freeze({ ok: true, value: name });
|
|
96
|
+
}
|
|
97
|
+
function canonicalErrorName(value) {
|
|
98
|
+
return typeof value === "string" &&
|
|
99
|
+
value.length > 0 &&
|
|
100
|
+
value.length <= ERROR_NAME_MAX_LENGTH &&
|
|
101
|
+
/^[A-Za-z][A-Za-z0-9_.:-]*$/.test(value)
|
|
102
|
+
? value
|
|
103
|
+
: undefined;
|
|
104
|
+
}
|
|
105
|
+
function canonicalErrorMessage(value) {
|
|
106
|
+
return typeof value === "string" &&
|
|
107
|
+
value.length > 0 &&
|
|
108
|
+
value.length <= ERROR_MESSAGE_MAX_LENGTH &&
|
|
109
|
+
value === value.trim()
|
|
110
|
+
? value
|
|
111
|
+
: undefined;
|
|
112
|
+
}
|
|
113
|
+
function isPlainRecord(value) {
|
|
114
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
const prototype = Object.getPrototypeOf(value);
|
|
118
|
+
return prototype === Object.prototype || prototype === null;
|
|
119
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const WORKER_CAPABILITY_OPERATION_SUPERVISION_LIMIT_ERROR: "worker_capability_begin_rejected:operation_supervision_limit_exceeded";
|
|
2
|
+
export declare class WorkerCapabilityOperationSupervisionLimitError extends Error {
|
|
3
|
+
readonly issueCode: "operation_supervision_limit_exceeded";
|
|
4
|
+
constructor();
|
|
5
|
+
}
|
|
6
|
+
export declare function isWorkerCapabilityOperationSupervisionLimitError(error: unknown): error is WorkerCapabilityOperationSupervisionLimitError;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const WORKER_CAPABILITY_OPERATION_SUPERVISION_LIMIT_ERROR = "worker_capability_begin_rejected:operation_supervision_limit_exceeded";
|
|
2
|
+
export class WorkerCapabilityOperationSupervisionLimitError extends Error {
|
|
3
|
+
issueCode = "operation_supervision_limit_exceeded";
|
|
4
|
+
constructor() {
|
|
5
|
+
super(WORKER_CAPABILITY_OPERATION_SUPERVISION_LIMIT_ERROR);
|
|
6
|
+
this.name = "WorkerCapabilityOperationSupervisionLimitError";
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export function isWorkerCapabilityOperationSupervisionLimitError(error) {
|
|
10
|
+
return error instanceof WorkerCapabilityOperationSupervisionLimitError;
|
|
11
|
+
}
|
package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-exact-result.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type CapabilityAdapterResult } from "../../capability-adapters/result.js";
|
|
2
|
+
import type { WorkerCapabilityAdapterResult } from "../contracts.js";
|
|
3
|
+
export type CanonicalWorkerCapabilityAdapterResult = WorkerCapabilityAdapterResult & Readonly<{
|
|
4
|
+
exactResult: CapabilityAdapterResult;
|
|
5
|
+
}>;
|
|
6
|
+
export declare function exactResultNormalizationIssueCode(error: unknown): string;
|
|
7
|
+
export declare function attachCanonicalExactResult(normalized: WorkerCapabilityAdapterResult, raw?: WorkerCapabilityAdapterResult): CanonicalWorkerCapabilityAdapterResult;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { captureLegacyCapabilityAdapterResult, normalizeCapabilityAdapterResult, } from "../../capability-adapters/result.js";
|
|
2
|
+
export function exactResultNormalizationIssueCode(error) {
|
|
3
|
+
if (!(error instanceof Error))
|
|
4
|
+
return "adapter_result_unreadable";
|
|
5
|
+
const prefix = "capability_exact_result_invalid:";
|
|
6
|
+
if (!error.message.startsWith(prefix))
|
|
7
|
+
return "adapter_result_unreadable";
|
|
8
|
+
const code = error.message.slice(prefix.length);
|
|
9
|
+
if (!isKnownExactResultIssueCode(code))
|
|
10
|
+
return "adapter_result_unreadable";
|
|
11
|
+
return `adapter_${code}`;
|
|
12
|
+
}
|
|
13
|
+
export function attachCanonicalExactResult(normalized, raw = normalized) {
|
|
14
|
+
const exact = raw.exactResult === undefined
|
|
15
|
+
? captureLegacyCapabilityAdapterResult(omitAdapterBoundaryMetadata(raw))
|
|
16
|
+
: normalizeCapabilityAdapterResult(raw.exactResult);
|
|
17
|
+
if (!exact.ok) {
|
|
18
|
+
throw new Error(`capability_exact_result_invalid:${exact.code}`);
|
|
19
|
+
}
|
|
20
|
+
return Object.freeze({
|
|
21
|
+
...normalized,
|
|
22
|
+
exactResult: exact.value,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function isKnownExactResultIssueCode(code) {
|
|
26
|
+
return (code === "result_invalid" ||
|
|
27
|
+
code === "result_not_json_safe" ||
|
|
28
|
+
code === "result_too_large");
|
|
29
|
+
}
|
|
30
|
+
function omitAdapterBoundaryMetadata(result) {
|
|
31
|
+
if (result.outcome === "succeeded")
|
|
32
|
+
return result;
|
|
33
|
+
const { failureOutcomeFingerprint: _failureOutcomeFingerprint, ...evidence } = result;
|
|
34
|
+
return evidence;
|
|
35
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { WorkerCapabilityDescriptor, WorkerCapabilityPreparedExecution } from "../contracts.js";
|
|
2
|
+
import { type WorkerCapabilityDiagnosticContext } from "../diagnostics.js";
|
|
3
|
+
import { type CanonicalWorkerCapabilityExecution } from "./adapter-result-normalization.js";
|
|
4
|
+
export declare function executePreparedAndNormalizeAdapter(params: {
|
|
5
|
+
prepared: WorkerCapabilityPreparedExecution;
|
|
6
|
+
descriptor: WorkerCapabilityDescriptor;
|
|
7
|
+
diagnostic: WorkerCapabilityDiagnosticContext;
|
|
8
|
+
executionId: string;
|
|
9
|
+
}): Promise<CanonicalWorkerCapabilityExecution>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { createWorkerCapabilityExecutionErrorOutcomeFingerprint, createWorkerCapabilityResultRejectionOutcomeFingerprint, } from "../outcome-fingerprint.js";
|
|
2
|
+
import { traceWorkerCapabilityExecutionFailed, traceWorkerCapabilityResultRejected, } from "../diagnostics.js";
|
|
3
|
+
import { createTechnicalExecutionFailureResult, normalizeCompletedAdapterExecution, } from "./adapter-result-normalization.js";
|
|
4
|
+
export async function executePreparedAndNormalizeAdapter(params) {
|
|
5
|
+
let rawResult;
|
|
6
|
+
try {
|
|
7
|
+
rawResult = await params.prepared.execute(params.executionId);
|
|
8
|
+
}
|
|
9
|
+
catch (error) {
|
|
10
|
+
if (error instanceof Error && error.name === "AbortError")
|
|
11
|
+
throw error;
|
|
12
|
+
traceWorkerCapabilityExecutionFailed(params.diagnostic, params.descriptor, error, params.executionId);
|
|
13
|
+
const result = createTechnicalExecutionFailureResult(error);
|
|
14
|
+
const outcomeFingerprint = createWorkerCapabilityExecutionErrorOutcomeFingerprint(error);
|
|
15
|
+
return Object.freeze({
|
|
16
|
+
result,
|
|
17
|
+
...(outcomeFingerprint ? { outcomeFingerprint } : {}),
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
const normalized = normalizeCompletedAdapterExecution(rawResult, params.descriptor.effect);
|
|
21
|
+
if (normalized.ok)
|
|
22
|
+
return normalized.execution;
|
|
23
|
+
traceWorkerCapabilityResultRejected(params.diagnostic, params.descriptor, normalized.issueCode, params.executionId);
|
|
24
|
+
return Object.freeze({
|
|
25
|
+
result: normalized.result,
|
|
26
|
+
outcomeFingerprint: createWorkerCapabilityResultRejectionOutcomeFingerprint(normalized.issueCode),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type RoleOperationOutcomeFingerprint } from "../../role-calls/index.js";
|
|
2
|
+
import type { WorkerCapabilityAdapterResult, WorkerCapabilityEffect } from "../contracts.js";
|
|
3
|
+
import { type CanonicalWorkerCapabilityAdapterResult } from "./adapter-exact-result.js";
|
|
4
|
+
export type { CanonicalWorkerCapabilityAdapterResult } from "./adapter-exact-result.js";
|
|
5
|
+
export type CanonicalWorkerCapabilityExecution = Readonly<{
|
|
6
|
+
result: CanonicalWorkerCapabilityAdapterResult;
|
|
7
|
+
outcomeFingerprint?: RoleOperationOutcomeFingerprint;
|
|
8
|
+
}>;
|
|
9
|
+
export type CompletedAdapterNormalization = Readonly<{
|
|
10
|
+
ok: true;
|
|
11
|
+
execution: CanonicalWorkerCapabilityExecution;
|
|
12
|
+
}> | Readonly<{
|
|
13
|
+
ok: false;
|
|
14
|
+
issueCode: string;
|
|
15
|
+
result: CanonicalWorkerCapabilityAdapterResult;
|
|
16
|
+
}>;
|
|
17
|
+
export declare function createTechnicalExecutionFailureResult(error: unknown): CanonicalWorkerCapabilityAdapterResult;
|
|
18
|
+
export declare function normalizeCompletedAdapterExecution(input: WorkerCapabilityAdapterResult, declaredEffect: WorkerCapabilityEffect): CompletedAdapterNormalization;
|
package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-normalization.js
ADDED
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { ROLE_CAPABILITY_REFERENCE_DATA_MAX_LENGTH, ROLE_CALL_RESULT_MAX_LENGTH, isRoleOperationOutcomeFingerprintForOutcome, } from "../../role-calls/index.js";
|
|
2
|
+
import { attachCanonicalExactResult, exactResultNormalizationIssueCode, } from "./adapter-exact-result.js";
|
|
3
|
+
import { normalizeResultReferences } from "./adapter-result-references.js";
|
|
4
|
+
const TECHNICAL_EXECUTION_FAILURE_SUMMARY = "The capability failed before returning a valid result.";
|
|
5
|
+
const INVALID_EXECUTION_RESULT_SUMMARY = "The capability returned an invalid result.";
|
|
6
|
+
const OVERSIZED_EXECUTION_RESULT_SUMMARY = "The capability result exceeded the Runtime evidence size limit.";
|
|
7
|
+
export function createTechnicalExecutionFailureResult(error) {
|
|
8
|
+
return attachCanonicalExactResult(technicalFailure(adapterExecutionFailureSummary(error)));
|
|
9
|
+
}
|
|
10
|
+
export function normalizeCompletedAdapterExecution(input, declaredEffect) {
|
|
11
|
+
let normalized;
|
|
12
|
+
try {
|
|
13
|
+
normalized = normalizeAdapterResult(input, declaredEffect);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
normalized = {
|
|
17
|
+
ok: false,
|
|
18
|
+
issueCode: exactResultNormalizationIssueCode(error),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
if (normalized.ok) {
|
|
22
|
+
return {
|
|
23
|
+
ok: true,
|
|
24
|
+
execution: canonicalExecution(normalized.value),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
ok: false,
|
|
29
|
+
issueCode: normalized.issueCode,
|
|
30
|
+
result: attachCanonicalExactResult(technicalFailure(normalized.issueCode === "adapter_result_too_large"
|
|
31
|
+
? OVERSIZED_EXECUTION_RESULT_SUMMARY
|
|
32
|
+
: INVALID_EXECUTION_RESULT_SUMMARY)),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function normalizeAdapterResult(input, declaredEffect) {
|
|
36
|
+
if (!isAdapterResultRecord(input)) {
|
|
37
|
+
return { ok: false, issueCode: "adapter_result_not_object" };
|
|
38
|
+
}
|
|
39
|
+
if (!hasSupportedAdapterResultShape(input)) {
|
|
40
|
+
return { ok: false, issueCode: "adapter_result_shape_invalid" };
|
|
41
|
+
}
|
|
42
|
+
if (!hasValidAdapterResultSummary(input.summary)) {
|
|
43
|
+
return { ok: false, issueCode: "adapter_result_summary_invalid" };
|
|
44
|
+
}
|
|
45
|
+
if (!hasValidAdapterReferenceData(input.referenceData)) {
|
|
46
|
+
return { ok: false, issueCode: "adapter_result_reference_data_invalid" };
|
|
47
|
+
}
|
|
48
|
+
const references = normalizeResultReferences(input.references);
|
|
49
|
+
if (references === null) {
|
|
50
|
+
return { ok: false, issueCode: "adapter_result_references_invalid" };
|
|
51
|
+
}
|
|
52
|
+
if (input.outcome === "succeeded") {
|
|
53
|
+
return normalizeSucceededAdapterResult(input, declaredEffect, references);
|
|
54
|
+
}
|
|
55
|
+
if (input.outcome === "failed") {
|
|
56
|
+
return normalizeFailedAdapterResult(input, declaredEffect, references);
|
|
57
|
+
}
|
|
58
|
+
return { ok: false, issueCode: "adapter_result_outcome_invalid" };
|
|
59
|
+
}
|
|
60
|
+
function normalizeSucceededAdapterResult(input, declaredEffect, references) {
|
|
61
|
+
if (Object.hasOwn(input, "failureOutcomeFingerprint")) {
|
|
62
|
+
return {
|
|
63
|
+
ok: false,
|
|
64
|
+
issueCode: "adapter_result_failure_outcome_fingerprint_unexpected",
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (!isSuccessfulObservedEffectCompatible(input.observedEffect, declaredEffect)) {
|
|
68
|
+
return { ok: false, issueCode: "observed_effect_mismatch" };
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
ok: true,
|
|
72
|
+
value: attachCanonicalExactResult(Object.freeze({
|
|
73
|
+
outcome: "succeeded",
|
|
74
|
+
observedEffect: input.observedEffect,
|
|
75
|
+
summary: input.summary.trim(),
|
|
76
|
+
...(input.referenceData
|
|
77
|
+
? { referenceData: input.referenceData.trim() }
|
|
78
|
+
: {}),
|
|
79
|
+
...(references ? { references } : {}),
|
|
80
|
+
}), input),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function normalizeFailedAdapterResult(input, declaredEffect, references) {
|
|
84
|
+
if (!Object.hasOwn(input, "failureOutcomeFingerprint")) {
|
|
85
|
+
return {
|
|
86
|
+
ok: false,
|
|
87
|
+
issueCode: "adapter_result_failure_outcome_fingerprint_missing",
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
if (input.failureOutcomeFingerprint !== null &&
|
|
91
|
+
!isRoleOperationOutcomeFingerprintForOutcome(input.failureOutcomeFingerprint, "failed")) {
|
|
92
|
+
return {
|
|
93
|
+
ok: false,
|
|
94
|
+
issueCode: "adapter_result_failure_outcome_fingerprint_invalid",
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
if (!isFailedObservedEffectCompatible(input.observedEffect, declaredEffect)) {
|
|
98
|
+
return { ok: false, issueCode: "failed_effect_invalid" };
|
|
99
|
+
}
|
|
100
|
+
return {
|
|
101
|
+
ok: true,
|
|
102
|
+
value: attachCanonicalExactResult(Object.freeze({
|
|
103
|
+
outcome: "failed",
|
|
104
|
+
observedEffect: input.observedEffect,
|
|
105
|
+
summary: input.summary.trim(),
|
|
106
|
+
...(input.referenceData
|
|
107
|
+
? { referenceData: input.referenceData.trim() }
|
|
108
|
+
: {}),
|
|
109
|
+
...(references ? { references } : {}),
|
|
110
|
+
failureOutcomeFingerprint: input.failureOutcomeFingerprint,
|
|
111
|
+
}), input),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function isAdapterResultRecord(input) {
|
|
115
|
+
return typeof input === "object" && input !== null && !Array.isArray(input);
|
|
116
|
+
}
|
|
117
|
+
function hasSupportedAdapterResultShape(input) {
|
|
118
|
+
const keys = Object.keys(input);
|
|
119
|
+
if (keys.length < 3 || keys.length > 7)
|
|
120
|
+
return false;
|
|
121
|
+
if (!keys.includes("outcome"))
|
|
122
|
+
return false;
|
|
123
|
+
if (!keys.includes("observedEffect"))
|
|
124
|
+
return false;
|
|
125
|
+
if (!keys.includes("summary"))
|
|
126
|
+
return false;
|
|
127
|
+
return keys.every((key) => [
|
|
128
|
+
"outcome",
|
|
129
|
+
"observedEffect",
|
|
130
|
+
"summary",
|
|
131
|
+
"referenceData",
|
|
132
|
+
"references",
|
|
133
|
+
"exactResult",
|
|
134
|
+
"failureOutcomeFingerprint",
|
|
135
|
+
].includes(key));
|
|
136
|
+
}
|
|
137
|
+
function hasValidAdapterResultSummary(input) {
|
|
138
|
+
return (typeof input === "string" &&
|
|
139
|
+
input.trim().length > 0 &&
|
|
140
|
+
input.length <= ROLE_CALL_RESULT_MAX_LENGTH);
|
|
141
|
+
}
|
|
142
|
+
function hasValidAdapterReferenceData(input) {
|
|
143
|
+
if (input === undefined)
|
|
144
|
+
return true;
|
|
145
|
+
return (typeof input === "string" &&
|
|
146
|
+
input.trim().length > 0 &&
|
|
147
|
+
input.length <= ROLE_CAPABILITY_REFERENCE_DATA_MAX_LENGTH);
|
|
148
|
+
}
|
|
149
|
+
function canonicalExecution(result) {
|
|
150
|
+
if (result.outcome === "succeeded") {
|
|
151
|
+
return Object.freeze({ result, outcomeFingerprint: "succeeded" });
|
|
152
|
+
}
|
|
153
|
+
const outcomeFingerprint = result.failureOutcomeFingerprint ?? undefined;
|
|
154
|
+
return Object.freeze({
|
|
155
|
+
result,
|
|
156
|
+
...(outcomeFingerprint ? { outcomeFingerprint } : {}),
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
function adapterExecutionFailureSummary(error) {
|
|
160
|
+
if (!(error instanceof Error))
|
|
161
|
+
return TECHNICAL_EXECUTION_FAILURE_SUMMARY;
|
|
162
|
+
if (error.message.endsWith("canonical_result_result_too_large")) {
|
|
163
|
+
return OVERSIZED_EXECUTION_RESULT_SUMMARY;
|
|
164
|
+
}
|
|
165
|
+
if (error.message.endsWith("canonical_result_result_invalid")) {
|
|
166
|
+
return INVALID_EXECUTION_RESULT_SUMMARY;
|
|
167
|
+
}
|
|
168
|
+
if (error.message.endsWith("canonical_result_result_not_json_safe")) {
|
|
169
|
+
return INVALID_EXECUTION_RESULT_SUMMARY;
|
|
170
|
+
}
|
|
171
|
+
return TECHNICAL_EXECUTION_FAILURE_SUMMARY;
|
|
172
|
+
}
|
|
173
|
+
function isSuccessfulObservedEffectCompatible(observedEffect, declaredEffect) {
|
|
174
|
+
if (declaredEffect === "mixed") {
|
|
175
|
+
return observedEffect === "observation" || observedEffect === "mutation";
|
|
176
|
+
}
|
|
177
|
+
return observedEffect === declaredEffect;
|
|
178
|
+
}
|
|
179
|
+
function isFailedObservedEffectCompatible(observedEffect, declaredEffect) {
|
|
180
|
+
if (observedEffect === "none")
|
|
181
|
+
return true;
|
|
182
|
+
if (observedEffect === "indeterminate")
|
|
183
|
+
return true;
|
|
184
|
+
if (observedEffect === "observation")
|
|
185
|
+
return true;
|
|
186
|
+
if (observedEffect !== "mutation")
|
|
187
|
+
return false;
|
|
188
|
+
return declaredEffect === "mutation" || declaredEffect === "mixed";
|
|
189
|
+
}
|
|
190
|
+
function technicalFailure(summary) {
|
|
191
|
+
return Object.freeze({
|
|
192
|
+
outcome: "failed",
|
|
193
|
+
observedEffect: "indeterminate",
|
|
194
|
+
summary,
|
|
195
|
+
failureOutcomeFingerprint: null,
|
|
196
|
+
});
|
|
197
|
+
}
|