@noodleseed/one 0.68.0 → 0.69.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents.d.ts +8 -3
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +20 -14
- package/dist/agents.js.map +1 -1
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/analytics-ops.d.ts +3 -1
- package/dist/commands/analytics-ops.d.ts.map +1 -1
- package/dist/commands/analytics-ops.js +31 -5
- package/dist/commands/analytics-ops.js.map +1 -1
- package/dist/commands/catalog-data-resources.d.ts.map +1 -1
- package/dist/commands/catalog-data-resources.js +10 -0
- package/dist/commands/catalog-data-resources.js.map +1 -1
- package/dist/commands/envs-ops.d.ts +1 -0
- package/dist/commands/envs-ops.d.ts.map +1 -1
- package/dist/commands/envs-ops.js +49 -1
- package/dist/commands/envs-ops.js.map +1 -1
- package/dist/commands/project-setup.d.ts +3 -2
- package/dist/commands/project-setup.d.ts.map +1 -1
- package/dist/commands/project-setup.js +5 -5
- package/dist/commands/project-setup.js.map +1 -1
- package/dist/commands/resource-shared.d.ts +11 -0
- package/dist/commands/resource-shared.d.ts.map +1 -1
- package/dist/commands/resource-shared.js.map +1 -1
- package/dist/deploy.js +1 -1
- package/dist/deploy.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js +4 -0
- package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +8 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +10 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +7 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/authoring/dist/connection-types.d.ts +52 -0
- package/node_modules/@noodle-borg/authoring/dist/connection-types.d.ts.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/connection-types.js +35 -0
- package/node_modules/@noodle-borg/authoring/dist/connection-types.js.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/connections.d.ts +26 -0
- package/node_modules/@noodle-borg/authoring/dist/connections.d.ts.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/connections.js +63 -0
- package/node_modules/@noodle-borg/authoring/dist/connections.js.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/connectors.d.ts +18 -7
- package/node_modules/@noodle-borg/authoring/dist/connectors.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/connectors.js +26 -4
- package/node_modules/@noodle-borg/authoring/dist/connectors.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/gmail.d.ts +7 -0
- package/node_modules/@noodle-borg/authoring/dist/gmail.d.ts.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/gmail.js +257 -0
- package/node_modules/@noodle-borg/authoring/dist/gmail.js.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts +2 -0
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/index.js +2 -0
- package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/platform.d.ts +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react/components.d.ts +2 -2
- package/node_modules/@noodle-borg/authoring/dist/react/native-components.d.ts +2 -2
- package/node_modules/@noodle-borg/authoring/dist/recording.d.ts +2 -0
- package/node_modules/@noodle-borg/authoring/dist/recording.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/recording.js +6 -0
- package/node_modules/@noodle-borg/authoring/dist/recording.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/server.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/server.js +4 -1
- package/node_modules/@noodle-borg/authoring/dist/server.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/package.json +1 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +43 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.js +4 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/catalog/types.d.ts +15 -0
- package/node_modules/@noodle-borg/compiler/dist/catalog/types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.js +3 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/confirmation-flow.d.ts +3 -3
- package/node_modules/@noodle-borg/compiler/dist/confirmation-flow.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/confirmation-flow.js +16 -17
- package/node_modules/@noodle-borg/compiler/dist/confirmation-flow.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/context-compile.d.ts +2 -4
- package/node_modules/@noodle-borg/compiler/dist/context-compile.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/context-compile.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/errors.d.ts +1 -1
- package/node_modules/@noodle-borg/compiler/dist/errors.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.d.ts +17 -5
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.js +89 -0
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/index.d.ts +3 -2
- package/node_modules/@noodle-borg/compiler/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/index.js +1 -0
- package/node_modules/@noodle-borg/compiler/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +66 -16
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +47 -4
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
- package/node_modules/@noodle-borg/connector-defs/dist/compile.d.ts.map +1 -1
- package/node_modules/@noodle-borg/connector-defs/dist/compile.js +3 -0
- package/node_modules/@noodle-borg/connector-defs/dist/compile.js.map +1 -1
- package/node_modules/@noodle-borg/connector-defs/dist/credential-profiles.d.ts +6 -0
- package/node_modules/@noodle-borg/connector-defs/dist/credential-profiles.d.ts.map +1 -0
- package/node_modules/@noodle-borg/connector-defs/dist/credential-profiles.js +25 -0
- package/node_modules/@noodle-borg/connector-defs/dist/credential-profiles.js.map +1 -0
- package/node_modules/@noodle-borg/connector-defs/dist/index.d.ts +1 -1
- package/node_modules/@noodle-borg/connector-defs/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/connector-defs/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts +89 -0
- package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/connector-defs/dist/schema.js +42 -1
- package/node_modules/@noodle-borg/connector-defs/dist/schema.js.map +1 -1
- package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts.map +1 -1
- package/node_modules/@noodle-borg/connector-http/dist/http-connector.js +5 -4
- package/node_modules/@noodle-borg/connector-http/dist/http-connector.js.map +1 -1
- package/node_modules/@noodle-borg/external-credential-provider/README.md +18 -0
- package/node_modules/@noodle-borg/external-credential-provider/dist/assertion.d.ts +36 -0
- package/node_modules/@noodle-borg/external-credential-provider/dist/assertion.d.ts.map +1 -0
- package/node_modules/@noodle-borg/external-credential-provider/dist/assertion.js +72 -0
- package/node_modules/@noodle-borg/external-credential-provider/dist/assertion.js.map +1 -0
- package/node_modules/@noodle-borg/external-credential-provider/dist/contract.d.ts +82 -0
- package/node_modules/@noodle-borg/external-credential-provider/dist/contract.d.ts.map +1 -0
- package/node_modules/@noodle-borg/external-credential-provider/dist/contract.js +126 -0
- package/node_modules/@noodle-borg/external-credential-provider/dist/contract.js.map +1 -0
- package/node_modules/@noodle-borg/external-credential-provider/dist/index.d.ts +4 -0
- package/node_modules/@noodle-borg/external-credential-provider/dist/index.d.ts.map +1 -0
- package/node_modules/@noodle-borg/external-credential-provider/dist/index.js +4 -0
- package/node_modules/@noodle-borg/external-credential-provider/dist/index.js.map +1 -0
- package/node_modules/@noodle-borg/external-credential-provider/dist/provider.d.ts +15 -0
- package/node_modules/@noodle-borg/external-credential-provider/dist/provider.d.ts.map +1 -0
- package/node_modules/@noodle-borg/external-credential-provider/dist/provider.js +24 -0
- package/node_modules/@noodle-borg/external-credential-provider/dist/provider.js.map +1 -0
- package/node_modules/@noodle-borg/external-credential-provider/package.json +33 -0
- package/node_modules/@noodle-borg/module/dist/contract.d.ts +14 -0
- package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
- package/node_modules/@noodle-borg/module/dist/contract.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/tool-interaction.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/tool-interaction.js +1 -8
- package/node_modules/@noodle-borg/protocol/dist/tool-interaction.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/broker/map.d.ts +8 -4
- package/node_modules/@noodle-borg/runtime/dist/broker/map.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/broker/map.js +35 -5
- package/node_modules/@noodle-borg/runtime/dist/broker/map.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/broker/types.d.ts +34 -1
- package/node_modules/@noodle-borg/runtime/dist/broker/types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/broker/types.js +38 -0
- package/node_modules/@noodle-borg/runtime/dist/broker/types.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/confirmation-analysis.d.ts +28 -0
- package/node_modules/@noodle-borg/runtime/dist/confirmation-analysis.d.ts.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/confirmation-analysis.js +143 -0
- package/node_modules/@noodle-borg/runtime/dist/confirmation-analysis.js.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/confirmation-continuation.d.ts +6 -0
- package/node_modules/@noodle-borg/runtime/dist/confirmation-continuation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/confirmation-continuation.js +56 -0
- package/node_modules/@noodle-borg/runtime/dist/confirmation-continuation.js.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/confirmation.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/confirmation.js +71 -74
- package/node_modules/@noodle-borg/runtime/dist/confirmation.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/connector/types.d.ts +3 -1
- package/node_modules/@noodle-borg/runtime/dist/connector/types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/connector/types.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/connector-snapshot.d.ts +8 -0
- package/node_modules/@noodle-borg/runtime/dist/connector-snapshot.d.ts.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/connector-snapshot.js +89 -0
- package/node_modules/@noodle-borg/runtime/dist/connector-snapshot.js.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/execute.d.ts +2 -0
- package/node_modules/@noodle-borg/runtime/dist/execute.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/execute.js +24 -0
- package/node_modules/@noodle-borg/runtime/dist/execute.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/index.d.ts +1 -1
- package/node_modules/@noodle-borg/runtime/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/index.js +1 -1
- package/node_modules/@noodle-borg/runtime/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/result.d.ts +8 -0
- package/node_modules/@noodle-borg/runtime/dist/result.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/result.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/credential-binding-index.d.ts +15 -0
- package/node_modules/@noodle-borg/service/dist/credential-binding-index.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/credential-binding-index.js +66 -0
- package/node_modules/@noodle-borg/service/dist/credential-binding-index.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/credential-broker-options.d.ts +13 -0
- package/node_modules/@noodle-borg/service/dist/credential-broker-options.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/credential-broker-options.js +26 -0
- package/node_modules/@noodle-borg/service/dist/credential-broker-options.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/credential-broker.d.ts +5 -0
- package/node_modules/@noodle-borg/service/dist/credential-broker.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/credential-broker.js +43 -45
- package/node_modules/@noodle-borg/service/dist/credential-broker.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/credential-probes.d.ts +13 -0
- package/node_modules/@noodle-borg/service/dist/credential-probes.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/credential-probes.js +88 -0
- package/node_modules/@noodle-borg/service/dist/credential-probes.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/external-credential-binding-broker.d.ts +12 -0
- package/node_modules/@noodle-borg/service/dist/external-credential-binding-broker.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/external-credential-binding-broker.js +111 -0
- package/node_modules/@noodle-borg/service/dist/external-credential-binding-broker.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/external-credential-exchange.d.ts +82 -0
- package/node_modules/@noodle-borg/service/dist/external-credential-exchange.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/external-credential-exchange.js +184 -0
- package/node_modules/@noodle-borg/service/dist/external-credential-exchange.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/index.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.js +1 -0
- package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-state.d.ts +3 -1
- package/node_modules/@noodle-borg/service/dist/registry-state.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-state.js +27 -2
- package/node_modules/@noodle-borg/service/dist/registry-state.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-types.d.ts +7 -0
- package/node_modules/@noodle-borg/service/dist/registry-types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry.js +23 -27
- package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/contracts.d.ts +16 -0
- package/node_modules/@noodle-borg/service/dist/routes/contracts.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/contracts.js +16 -0
- package/node_modules/@noodle-borg/service/dist/routes/contracts.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/environment-mutation-dispatch.d.ts +19 -0
- package/node_modules/@noodle-borg/service/dist/routes/environment-mutation-dispatch.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/environment-mutation-dispatch.js +16 -0
- package/node_modules/@noodle-borg/service/dist/routes/environment-mutation-dispatch.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/environment-production.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/routes/environment-production.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/environment-production.js +46 -0
- package/node_modules/@noodle-borg/service/dist/routes/environment-production.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/paths.js +3 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve-options.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/serve-options.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.js +3 -0
- package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.js +13 -0
- package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/environment-production.d.ts +9 -0
- package/node_modules/@noodle-borg/service/dist/store/environment-production.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/environment-production.js +2 -0
- package/node_modules/@noodle-borg/service/dist/store/environment-production.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/in-memory.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/store/in-memory.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/in-memory.js +31 -2
- package/node_modules/@noodle-borg/service/dist/store/in-memory.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/json-file.js +64 -2
- package/node_modules/@noodle-borg/service/dist/store/json-file.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-envs.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-envs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-envs.js +53 -7
- package/node_modules/@noodle-borg/service/dist/store/postgres-envs.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +48 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres.js +8 -2
- package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/records.d.ts +5 -2
- package/node_modules/@noodle-borg/service/dist/store/records.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/records.js +18 -4
- package/node_modules/@noodle-borg/service/dist/store/records.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store.d.ts +8 -2
- package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
- package/node_modules/@noodle-borg/service/package.json +1 -0
- package/package.json +2 -1
|
@@ -1,10 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
import { CredentialUnavailableError, credentialBindingDescriptorFromRequest, } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Build the lookup key for a connector operation. With `operation`, it keys an exact
|
|
4
4
|
* `(connectorId, operation)` entry; without, it keys the connector-level default.
|
|
5
5
|
*/
|
|
6
6
|
function entryKey(connectorId, operation) {
|
|
7
|
-
return
|
|
7
|
+
return JSON.stringify(['legacy', connectorId, operation ?? null]);
|
|
8
|
+
}
|
|
9
|
+
function bindingEntryKey(input) {
|
|
10
|
+
return JSON.stringify([
|
|
11
|
+
'binding',
|
|
12
|
+
input.connectorId,
|
|
13
|
+
input.connectorVersion,
|
|
14
|
+
input.operation,
|
|
15
|
+
input.bindingId,
|
|
16
|
+
input.connectionId,
|
|
17
|
+
input.connectionConfigRevision,
|
|
18
|
+
input.profile,
|
|
19
|
+
input.presentation.kind === 'bearer' ? ['bearer'] : ['apiKey', input.presentation.header],
|
|
20
|
+
[...input.requiredScopes].sort(),
|
|
21
|
+
input.requiredAudience ?? null,
|
|
22
|
+
]);
|
|
8
23
|
}
|
|
9
24
|
/**
|
|
10
25
|
* A service-credential broker backed by a resolved map. It resolves a {@link DownstreamCredential} by
|
|
@@ -14,10 +29,11 @@ function entryKey(connectorId, operation) {
|
|
|
14
29
|
*
|
|
15
30
|
* It holds only already-resolved `{token}` values — it has no knowledge of auth schemes or secret names.
|
|
16
31
|
* Managed deployments use a tenant-aware broker instead; this map broker remains useful for tests/static
|
|
17
|
-
* embeddings.
|
|
32
|
+
* embeddings. Legacy unbound operations get the empty-token fallback. Binding-scoped requests require
|
|
33
|
+
* the complete compiled descriptor and fail closed; they never fall back to legacy connector keys.
|
|
18
34
|
*
|
|
19
|
-
* The
|
|
20
|
-
*
|
|
35
|
+
* The broker method boundary remains `getCredential(request)`, so managed config and tenant scoping layer
|
|
36
|
+
* on top through the broker implementation rather than a separate runtime credential path.
|
|
21
37
|
*/
|
|
22
38
|
export class MapServiceBroker {
|
|
23
39
|
#byKey;
|
|
@@ -27,11 +43,25 @@ export class MapServiceBroker {
|
|
|
27
43
|
this.#fallback = fallback;
|
|
28
44
|
}
|
|
29
45
|
getCredential(request) {
|
|
46
|
+
let descriptor;
|
|
47
|
+
try {
|
|
48
|
+
descriptor = credentialBindingDescriptorFromRequest(request);
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
return Promise.reject(error);
|
|
52
|
+
}
|
|
53
|
+
if (descriptor !== undefined) {
|
|
54
|
+
const exactBinding = this.#byKey.get(bindingEntryKey(descriptor));
|
|
55
|
+
return exactBinding === undefined
|
|
56
|
+
? Promise.reject(new CredentialUnavailableError('credential_not_configured'))
|
|
57
|
+
: Promise.resolve(exactBinding);
|
|
58
|
+
}
|
|
30
59
|
const exact = this.#byKey.get(entryKey(request.connectorId, request.operation));
|
|
31
60
|
const connectorDefault = this.#byKey.get(entryKey(request.connectorId));
|
|
32
61
|
return Promise.resolve(exact ?? connectorDefault ?? this.#fallback);
|
|
33
62
|
}
|
|
34
63
|
/** Build the map key for `(connectorId, operation?)`; exported so callers can populate the entries. */
|
|
35
64
|
static key = entryKey;
|
|
65
|
+
static bindingKey = bindingEntryKey;
|
|
36
66
|
}
|
|
37
67
|
//# sourceMappingURL=map.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/broker/map.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/broker/map.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,0BAA0B,EAC1B,sCAAsC,GAEvC,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,SAAS,QAAQ,CAAC,WAAmB,EAAE,SAAkB;IACvD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;AACpE,CAAC;AAID,SAAS,eAAe,CAAC,KAAsB;IAC7C,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,SAAS;QACT,KAAK,CAAC,WAAW;QACjB,KAAK,CAAC,gBAAgB;QACtB,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,wBAAwB;QAC9B,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;QACzF,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE;QAChC,KAAK,CAAC,gBAAgB,IAAI,IAAI;KAC/B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,gBAAgB;IAClB,MAAM,CAA4C;IAClD,SAAS,CAAuB;IAEzC,YACE,OAAkD,EAClD,WAAiC,EAAE,KAAK,EAAE,EAAE,EAAE;QAE9C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,aAAa,CAAC,OAA0B;QACtC,IAAI,UAAmD,CAAC;QACxD,IAAI,CAAC;YACH,UAAU,GAAG,sCAAsC,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;YAClE,OAAO,YAAY,KAAK,SAAS;gBAC/B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,0BAA0B,CAAC,2BAA2B,CAAC,CAAC;gBAC7E,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAChF,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACxE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;IAED,uGAAuG;IACvG,MAAM,CAAC,GAAG,GAAG,QAAQ,CAAC;IACtB,MAAM,CAAC,UAAU,GAAG,eAAe,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { CredentialProfile } from '@noodle-borg/compiler';
|
|
1
2
|
import type { CallerIdentity } from '../connector/types.js';
|
|
2
3
|
/** Stable, non-secret reasons a credential lookup can fail. */
|
|
3
4
|
export type CredentialUnavailableReason = 'caller_identity_not_customer' | 'caller_audience_missing' | 'caller_subject_missing' | 'credential_not_configured' | 'credential_exchange_failed';
|
|
@@ -41,13 +42,45 @@ export interface CredentialRequest {
|
|
|
41
42
|
readonly connectorId: string;
|
|
42
43
|
readonly connectorVersion: string;
|
|
43
44
|
readonly operation: string;
|
|
45
|
+
readonly bindingId?: string;
|
|
46
|
+
readonly connectionId?: string;
|
|
47
|
+
readonly connectionConfigRevision?: string;
|
|
48
|
+
readonly profile?: string;
|
|
49
|
+
readonly presentation?: CredentialProfile;
|
|
50
|
+
readonly requiredScopes?: readonly string[];
|
|
51
|
+
readonly requiredAudience?: string;
|
|
52
|
+
/** Optional hosted execution identity; local and legacy invocation paths omit it. */
|
|
53
|
+
readonly tenantId?: string;
|
|
54
|
+
readonly deploymentId?: string;
|
|
44
55
|
/** Verified end-user identity when the deployment authenticates a caller. */
|
|
45
56
|
readonly caller?: CallerIdentity;
|
|
46
57
|
}
|
|
58
|
+
/** Complete immutable authorization descriptor for a compiled connector binding operation. */
|
|
59
|
+
export interface CredentialBindingDescriptor {
|
|
60
|
+
readonly connectorId: string;
|
|
61
|
+
readonly connectorVersion: string;
|
|
62
|
+
readonly operation: string;
|
|
63
|
+
readonly bindingId: string;
|
|
64
|
+
readonly connectionId: string;
|
|
65
|
+
readonly connectionConfigRevision: string;
|
|
66
|
+
readonly profile: string;
|
|
67
|
+
readonly presentation: CredentialProfile;
|
|
68
|
+
readonly requiredScopes: readonly string[];
|
|
69
|
+
readonly requiredAudience?: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Return the complete immutable binding descriptor carried by a credential request.
|
|
73
|
+
* Requests with no binding metadata are legacy requests. If any binding metadata is present, every
|
|
74
|
+
* required field must be present so malformed binding calls can never fall through to legacy secrets.
|
|
75
|
+
*/
|
|
76
|
+
export declare function credentialBindingDescriptorFromRequest(request: CredentialRequest): CredentialBindingDescriptor | undefined;
|
|
47
77
|
export interface DelegatedCredentialProbe {
|
|
48
78
|
readonly connectorId: string;
|
|
49
79
|
readonly operation?: string;
|
|
50
|
-
readonly
|
|
80
|
+
readonly bindingId?: string;
|
|
81
|
+
readonly connectionId?: string;
|
|
82
|
+
readonly profile?: string;
|
|
83
|
+
readonly authKind: 'delegatedOAuth' | 'delegatedSessionCookie' | 'delegatedTokenExchange' | 'externalExchange';
|
|
51
84
|
readonly ok: boolean;
|
|
52
85
|
readonly reason?: CredentialUnavailableReason;
|
|
53
86
|
readonly fix?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/broker/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,+DAA+D;AAC/D,MAAM,MAAM,2BAA2B,GACnC,8BAA8B,GAC9B,yBAAyB,GACzB,wBAAwB,GACxB,2BAA2B,GAC3B,4BAA4B,CAAC;AAEjC,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC;IAC7C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;gBAGhC,MAAM,EAAE,2BAA2B,EACnC,OAAO,GAAE,iCAAsC;CAQlD;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,0BAA0B,GAAG,0BAA0B,CAAC;AAE3F,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/broker/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,4 +16,42 @@ export class CredentialUnavailableError extends Error {
|
|
|
16
16
|
this.next = [...options.next];
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Return the complete immutable binding descriptor carried by a credential request.
|
|
21
|
+
* Requests with no binding metadata are legacy requests. If any binding metadata is present, every
|
|
22
|
+
* required field must be present so malformed binding calls can never fall through to legacy secrets.
|
|
23
|
+
*/
|
|
24
|
+
export function credentialBindingDescriptorFromRequest(request) {
|
|
25
|
+
const hasBindingMetadata = request.bindingId !== undefined ||
|
|
26
|
+
request.connectionId !== undefined ||
|
|
27
|
+
request.connectionConfigRevision !== undefined ||
|
|
28
|
+
request.profile !== undefined ||
|
|
29
|
+
request.presentation !== undefined ||
|
|
30
|
+
request.requiredScopes !== undefined ||
|
|
31
|
+
request.requiredAudience !== undefined;
|
|
32
|
+
if (!hasBindingMetadata)
|
|
33
|
+
return undefined;
|
|
34
|
+
if (request.bindingId === undefined ||
|
|
35
|
+
request.connectionId === undefined ||
|
|
36
|
+
request.connectionConfigRevision === undefined ||
|
|
37
|
+
request.profile === undefined ||
|
|
38
|
+
request.presentation === undefined ||
|
|
39
|
+
request.requiredScopes === undefined) {
|
|
40
|
+
throw new CredentialUnavailableError('credential_not_configured');
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
connectorId: request.connectorId,
|
|
44
|
+
connectorVersion: request.connectorVersion,
|
|
45
|
+
operation: request.operation,
|
|
46
|
+
bindingId: request.bindingId,
|
|
47
|
+
connectionId: request.connectionId,
|
|
48
|
+
connectionConfigRevision: request.connectionConfigRevision,
|
|
49
|
+
profile: request.profile,
|
|
50
|
+
presentation: request.presentation,
|
|
51
|
+
requiredScopes: request.requiredScopes,
|
|
52
|
+
...(request.requiredAudience === undefined
|
|
53
|
+
? {}
|
|
54
|
+
: { requiredAudience: request.requiredAudience }),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
19
57
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/broker/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/broker/types.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC1C,MAAM,CAA8B;IACpC,GAAG,CAAU;IACb,IAAI,CAAqB;IAElC,YACE,MAAmC,EACnC,UAA6C,EAAE;QAE/C,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACtD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;CACF;AA2DD;;;;GAIG;AACH,MAAM,UAAU,sCAAsC,CACpD,OAA0B;IAE1B,MAAM,kBAAkB,GACtB,OAAO,CAAC,SAAS,KAAK,SAAS;QAC/B,OAAO,CAAC,YAAY,KAAK,SAAS;QAClC,OAAO,CAAC,wBAAwB,KAAK,SAAS;QAC9C,OAAO,CAAC,OAAO,KAAK,SAAS;QAC7B,OAAO,CAAC,YAAY,KAAK,SAAS;QAClC,OAAO,CAAC,cAAc,KAAK,SAAS;QACpC,OAAO,CAAC,gBAAgB,KAAK,SAAS,CAAC;IACzC,IAAI,CAAC,kBAAkB;QAAE,OAAO,SAAS,CAAC;IAC1C,IACE,OAAO,CAAC,SAAS,KAAK,SAAS;QAC/B,OAAO,CAAC,YAAY,KAAK,SAAS;QAClC,OAAO,CAAC,wBAAwB,KAAK,SAAS;QAC9C,OAAO,CAAC,OAAO,KAAK,SAAS;QAC7B,OAAO,CAAC,YAAY,KAAK,SAAS;QAClC,OAAO,CAAC,cAAc,KAAK,SAAS,EACpC,CAAC;QACD,MAAM,IAAI,0BAA0B,CAAC,2BAA2B,CAAC,CAAC;IACpE,CAAC;IACD,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,wBAAwB,EAAE,OAAO,CAAC,wBAAwB;QAC1D,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ArtifactFulfilment } from '@noodle-borg/compiler';
|
|
2
|
+
import type { EvalScope } from './eval/evaluate.js';
|
|
3
|
+
import type { ExecuteToolDeps } from './execute.js';
|
|
4
|
+
import type { ExecutionError } from './result.js';
|
|
5
|
+
type FlowFulfilment = Extract<ArtifactFulfilment, {
|
|
6
|
+
kind: 'flow';
|
|
7
|
+
}>;
|
|
8
|
+
export type EligibleActionAnalysis = {
|
|
9
|
+
readonly ok: true;
|
|
10
|
+
readonly flowHasActions: boolean;
|
|
11
|
+
readonly eligibleIndexes: readonly number[];
|
|
12
|
+
} | {
|
|
13
|
+
readonly ok: false;
|
|
14
|
+
readonly error: ExecutionError;
|
|
15
|
+
};
|
|
16
|
+
export type AdditionalOperationAnalysis = {
|
|
17
|
+
readonly ok: true;
|
|
18
|
+
readonly count: number;
|
|
19
|
+
} | {
|
|
20
|
+
readonly ok: false;
|
|
21
|
+
readonly error: ExecutionError;
|
|
22
|
+
};
|
|
23
|
+
export declare function validateConfirmationFlow(flow: FlowFulfilment, deps: ExecuteToolDeps): ExecutionError | null;
|
|
24
|
+
export declare function countTrailingEligibleOperations(flow: FlowFulfilment, selectedIndex: number, completedSteps: Readonly<Record<string, unknown>>, scope: EvalScope): AdditionalOperationAnalysis;
|
|
25
|
+
/** Prove action cardinality without connector I/O before proposing or dispatching an action. */
|
|
26
|
+
export declare function analyzeEligibleActions(flow: FlowFulfilment, startIndex: number, completedSteps: Readonly<Record<string, unknown>>, scope: EvalScope, deps: ExecuteToolDeps): EligibleActionAnalysis;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=confirmation-analysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmation-analysis.d.ts","sourceRoot":"","sources":["../src/confirmation-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAY,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,KAAK,cAAc,GAAG,OAAO,CAAC,kBAAkB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEpE,MAAM,MAAM,sBAAsB,GAC9B;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C,GACD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAE3D,MAAM,MAAM,2BAA2B,GACnC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAE3D,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,eAAe,GACpB,cAAc,GAAG,IAAI,CA+BvB;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,cAAc,EACpB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACjD,KAAK,EAAE,SAAS,GACf,2BAA2B,CAiB7B;AAED,gGAAgG;AAChG,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACjD,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,eAAe,GACpB,sBAAsB,CA6CxB"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { ExpressionEvalError, evaluateCondition } from './eval/evaluate.js';
|
|
2
|
+
export function validateConfirmationFlow(flow, deps) {
|
|
3
|
+
let operationSeen = false;
|
|
4
|
+
let unconditionalActionSeen = false;
|
|
5
|
+
for (const step of flow.steps) {
|
|
6
|
+
if (step.kind === 'operation') {
|
|
7
|
+
operationSeen = true;
|
|
8
|
+
if (step.if === undefined && step.operationRef.resolved === true) {
|
|
9
|
+
const signature = deps.connectors
|
|
10
|
+
.resolve(step.operationRef)
|
|
11
|
+
?.signature(step.operationRef.operation);
|
|
12
|
+
if (signature?.type === 'action') {
|
|
13
|
+
if (unconditionalActionSeen) {
|
|
14
|
+
return {
|
|
15
|
+
code: 'invalid_confirmation_flow',
|
|
16
|
+
message: 'confirmable flows cannot contain more than one unconditional action',
|
|
17
|
+
path: `steps.${step.id}`,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
unconditionalActionSeen = true;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (step.kind === 'elicit' && operationSeen) {
|
|
25
|
+
return {
|
|
26
|
+
code: 'invalid_elicitation_flow',
|
|
27
|
+
message: 'interactive flows must collect all elicited input before the first operation',
|
|
28
|
+
path: `steps.${step.id}`,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
export function countTrailingEligibleOperations(flow, selectedIndex, completedSteps, scope) {
|
|
35
|
+
let count = 0;
|
|
36
|
+
for (let index = selectedIndex + 1; index < flow.steps.length; index += 1) {
|
|
37
|
+
const step = flow.steps[index];
|
|
38
|
+
if (step?.kind !== 'operation')
|
|
39
|
+
continue;
|
|
40
|
+
if (step.if === undefined || conditionUsesIncompleteStep(step.if, completedSteps)) {
|
|
41
|
+
count += 1;
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
try {
|
|
45
|
+
if (evaluateCondition(step.if, scope, `steps.${step.id}.if`))
|
|
46
|
+
count += 1;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
if (error instanceof ExpressionEvalError)
|
|
50
|
+
return expressionFailure(error);
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return { ok: true, count };
|
|
55
|
+
}
|
|
56
|
+
/** Prove action cardinality without connector I/O before proposing or dispatching an action. */
|
|
57
|
+
export function analyzeEligibleActions(flow, startIndex, completedSteps, scope, deps) {
|
|
58
|
+
let flowHasActions = false;
|
|
59
|
+
const operationTypes = new Map();
|
|
60
|
+
for (const [index, step] of flow.steps.entries()) {
|
|
61
|
+
if (step.kind !== 'operation' || step.operationRef.resolved !== true)
|
|
62
|
+
continue;
|
|
63
|
+
const connector = deps.connectors.resolve(step.operationRef);
|
|
64
|
+
const signature = connector?.signature(step.operationRef.operation);
|
|
65
|
+
if (signature === undefined) {
|
|
66
|
+
return {
|
|
67
|
+
ok: false,
|
|
68
|
+
error: {
|
|
69
|
+
code: 'signature_drift',
|
|
70
|
+
message: `cannot prove confirmation safety for operation "${step.operationRef.operation}"`,
|
|
71
|
+
path: `steps.${step.id}`,
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
operationTypes.set(index, signature.type);
|
|
76
|
+
if (signature.type === 'action')
|
|
77
|
+
flowHasActions = true;
|
|
78
|
+
}
|
|
79
|
+
const eligibleIndexes = [];
|
|
80
|
+
for (let index = startIndex; index < flow.steps.length; index += 1) {
|
|
81
|
+
const step = flow.steps[index];
|
|
82
|
+
if (step?.kind !== 'operation' || operationTypes.get(index) !== 'action')
|
|
83
|
+
continue;
|
|
84
|
+
if (step.if !== undefined && conditionUsesIncompleteStep(step.if, completedSteps)) {
|
|
85
|
+
return {
|
|
86
|
+
ok: false,
|
|
87
|
+
error: {
|
|
88
|
+
code: 'invalid_confirmation_flow',
|
|
89
|
+
message: 'a later action condition depends on an unreviewed operation result',
|
|
90
|
+
path: `steps.${step.id}.if`,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
try {
|
|
95
|
+
if (step.if === undefined || evaluateCondition(step.if, scope, `steps.${step.id}.if`)) {
|
|
96
|
+
eligibleIndexes.push(index);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
if (error instanceof ExpressionEvalError)
|
|
101
|
+
return expressionFailure(error);
|
|
102
|
+
throw error;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return { ok: true, flowHasActions, eligibleIndexes };
|
|
106
|
+
}
|
|
107
|
+
function expressionFailure(error) {
|
|
108
|
+
return {
|
|
109
|
+
ok: false,
|
|
110
|
+
error: {
|
|
111
|
+
code: 'expression_error',
|
|
112
|
+
message: error.message,
|
|
113
|
+
...(error.path === undefined ? {} : { path: error.path }),
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
function conditionUsesIncompleteStep(condition, completedSteps) {
|
|
118
|
+
if (condition.kind === 'truthy') {
|
|
119
|
+
return pathUsesIncompleteStep(condition.operand, completedSteps);
|
|
120
|
+
}
|
|
121
|
+
if (condition.op === 'not') {
|
|
122
|
+
return conditionUsesIncompleteStep(condition.operand, completedSteps);
|
|
123
|
+
}
|
|
124
|
+
if (condition.op === 'and' || condition.op === 'or') {
|
|
125
|
+
return (conditionUsesIncompleteStep(condition.left, completedSteps) ||
|
|
126
|
+
conditionUsesIncompleteStep(condition.right, completedSteps));
|
|
127
|
+
}
|
|
128
|
+
return (pathUsesIncompleteStep(condition.left, completedSteps) ||
|
|
129
|
+
pathUsesIncompleteStep(condition.right, completedSteps));
|
|
130
|
+
}
|
|
131
|
+
function pathUsesIncompleteStep(node, completedSteps) {
|
|
132
|
+
if (node.kind !== 'path' || node.root !== 'steps')
|
|
133
|
+
return false;
|
|
134
|
+
const first = node.segments?.[0];
|
|
135
|
+
return (typeof first !== 'object' ||
|
|
136
|
+
first === null ||
|
|
137
|
+
!('kind' in first) ||
|
|
138
|
+
first.kind !== 'prop' ||
|
|
139
|
+
!('name' in first) ||
|
|
140
|
+
typeof first.name !== 'string' ||
|
|
141
|
+
!Object.hasOwn(completedSteps, first.name));
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=confirmation-analysis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmation-analysis.js","sourceRoot":"","sources":["../src/confirmation-analysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { RuntimeArtifact } from '@noodle-borg/compiler';
|
|
2
|
+
import type { ConfirmationActionReview, ConfirmationPreparationResult, PreparedToolContinuation, ToolPreparationContinuation } from './result.js';
|
|
3
|
+
export declare function confirmationRequired(artifact: RuntimeArtifact, toolName: string, input: unknown, nextStepIndex: number, completedSteps: Record<string, unknown>, elicited: Record<string, unknown>, env: Record<string, string>, action?: ConfirmationActionReview): ConfirmationPreparationResult;
|
|
4
|
+
export declare function sameArtifact(artifact: RuntimeArtifact, continuation: ToolPreparationContinuation | PreparedToolContinuation): boolean;
|
|
5
|
+
export declare function artifactIdentity(artifact: RuntimeArtifact): ToolPreparationContinuation['artifact'];
|
|
6
|
+
//# sourceMappingURL=confirmation-continuation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmation-continuation.d.ts","sourceRoot":"","sources":["../src/confirmation-continuation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EACV,wBAAwB,EACxB,6BAA6B,EAC7B,wBAAwB,EACxB,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AAErB,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,MAAM,CAAC,EAAE,wBAAwB,GAChC,6BAA6B,CAwC/B;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,2BAA2B,GAAG,wBAAwB,GACnE,OAAO,CAQT;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,eAAe,GACxB,2BAA2B,CAAC,UAAU,CAAC,CAOzC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export function confirmationRequired(artifact, toolName, input, nextStepIndex, completedSteps, elicited, env, action) {
|
|
2
|
+
const reviewedAction = action === undefined
|
|
3
|
+
? undefined
|
|
4
|
+
: {
|
|
5
|
+
connectorId: action.connectorId,
|
|
6
|
+
connectorVersion: action.connectorVersion,
|
|
7
|
+
operation: action.operation,
|
|
8
|
+
...(action.bindingId !== undefined ? { bindingId: action.bindingId } : {}),
|
|
9
|
+
...(action.connectionId !== undefined ? { connectionId: action.connectionId } : {}),
|
|
10
|
+
...(action.connectionConfigRevision !== undefined
|
|
11
|
+
? { connectionConfigRevision: action.connectionConfigRevision }
|
|
12
|
+
: {}),
|
|
13
|
+
...(action.profile !== undefined ? { profile: action.profile } : {}),
|
|
14
|
+
...(action.presentation !== undefined
|
|
15
|
+
? { presentation: structuredClone(action.presentation) }
|
|
16
|
+
: {}),
|
|
17
|
+
...(action.requiredScopes !== undefined
|
|
18
|
+
? { requiredScopes: [...action.requiredScopes] }
|
|
19
|
+
: {}),
|
|
20
|
+
...(action.requiredAudience !== undefined
|
|
21
|
+
? { requiredAudience: action.requiredAudience }
|
|
22
|
+
: {}),
|
|
23
|
+
arguments: action.arguments,
|
|
24
|
+
};
|
|
25
|
+
return {
|
|
26
|
+
status: 'confirmation_required',
|
|
27
|
+
review: { input, elicited: { ...elicited }, ...(action !== undefined ? { action } : {}) },
|
|
28
|
+
continuation: {
|
|
29
|
+
kind: 'prepared_confirmation',
|
|
30
|
+
version: 1,
|
|
31
|
+
artifact: artifactIdentity(artifact),
|
|
32
|
+
toolName,
|
|
33
|
+
input,
|
|
34
|
+
nextStepIndex,
|
|
35
|
+
completedSteps: { ...completedSteps },
|
|
36
|
+
env: { ...env },
|
|
37
|
+
...(reviewedAction !== undefined ? { reviewedAction } : {}),
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export function sameArtifact(artifact, continuation) {
|
|
42
|
+
const expected = artifactIdentity(artifact);
|
|
43
|
+
return (expected.manifestName === continuation.artifact.manifestName &&
|
|
44
|
+
expected.manifestVersion === continuation.artifact.manifestVersion &&
|
|
45
|
+
expected.serverName === continuation.artifact.serverName &&
|
|
46
|
+
expected.serverVersion === continuation.artifact.serverVersion);
|
|
47
|
+
}
|
|
48
|
+
export function artifactIdentity(artifact) {
|
|
49
|
+
return {
|
|
50
|
+
manifestName: artifact.source.manifestName,
|
|
51
|
+
manifestVersion: artifact.source.manifestVersion,
|
|
52
|
+
serverName: artifact.server.name,
|
|
53
|
+
serverVersion: artifact.server.version,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=confirmation-continuation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmation-continuation.js","sourceRoot":"","sources":["../src/confirmation-continuation.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,oBAAoB,CAClC,QAAyB,EACzB,QAAgB,EAChB,KAAc,EACd,aAAqB,EACrB,cAAuC,EACvC,QAAiC,EACjC,GAA2B,EAC3B,MAAiC;IAEjC,MAAM,cAAc,GAClB,MAAM,KAAK,SAAS;QAClB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC;YACE,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,GAAG,CAAC,MAAM,CAAC,wBAAwB,KAAK,SAAS;gBAC/C,CAAC,CAAC,EAAE,wBAAwB,EAAE,MAAM,CAAC,wBAAwB,EAAE;gBAC/D,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS;gBACnC,CAAC,CAAC,EAAE,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;gBACxD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS;gBACrC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE;gBAChD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS;gBACvC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE;gBAC/C,CAAC,CAAC,EAAE,CAAC;YACP,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;IACR,OAAO;QACL,MAAM,EAAE,uBAAuB;QAC/B,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QACzF,YAAY,EAAE;YACZ,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC;YACpC,QAAQ;YACR,KAAK;YACL,aAAa;YACb,cAAc,EAAE,EAAE,GAAG,cAAc,EAAE;YACrC,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE;YACf,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,QAAyB,EACzB,YAAoE;IAEpE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO,CACL,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,QAAQ,CAAC,YAAY;QAC5D,QAAQ,CAAC,eAAe,KAAK,YAAY,CAAC,QAAQ,CAAC,eAAe;QAClE,QAAQ,CAAC,UAAU,KAAK,YAAY,CAAC,QAAQ,CAAC,UAAU;QACxD,QAAQ,CAAC,aAAa,KAAK,YAAY,CAAC,QAAQ,CAAC,aAAa,CAC/D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,QAAyB;IAEzB,OAAO;QACL,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY;QAC1C,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe;QAChD,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;QAChC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO;KACvC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirmation.d.ts","sourceRoot":"","sources":["../src/confirmation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"confirmation.d.ts","sourceRoot":"","sources":["../src/confirmation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAcjF,OAAO,EAEL,KAAK,eAAe,EAOrB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EACV,6BAA6B,EAC7B,mBAAmB,EAEnB,0BAA0B,EAE1B,wBAAwB,EACxB,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AAMrB;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,6BAA6B,CAAC,CA0BxC;AAED,mGAAmG;AACnG,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,2BAA2B,EACzC,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,6BAA6B,CAAC,CAuCxC;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,wBAAwB,EACtC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,0BAA0B,CAAC,CA0GrC"}
|