@noodleseed/one 0.162.0 → 0.164.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/dist/banner.d.ts +6 -0
- package/dist/banner.d.ts.map +1 -0
- package/dist/banner.js +29 -0
- package/dist/banner.js.map +1 -0
- package/dist/commands/billing-catalog-ops.d.ts +4 -0
- package/dist/commands/billing-catalog-ops.d.ts.map +1 -0
- package/dist/commands/billing-catalog-ops.js +58 -0
- package/dist/commands/billing-catalog-ops.js.map +1 -0
- package/dist/commands/billing-ops.d.ts.map +1 -1
- package/dist/commands/billing-ops.js +3 -0
- package/dist/commands/billing-ops.js.map +1 -1
- package/dist/commands/catalog.d.ts.map +1 -1
- package/dist/commands/catalog.js +2 -0
- package/dist/commands/catalog.js.map +1 -1
- package/dist/commands/config-values.d.ts.map +1 -1
- package/dist/commands/config-values.js +16 -0
- package/dist/commands/config-values.js.map +1 -1
- package/dist/commands/installation-variables.d.ts +26 -0
- package/dist/commands/installation-variables.d.ts.map +1 -0
- package/dist/commands/installation-variables.js +171 -0
- package/dist/commands/installation-variables.js.map +1 -0
- package/dist/commands/project-setup.d.ts.map +1 -1
- package/dist/commands/project-setup.js +2 -0
- package/dist/commands/project-setup.js.map +1 -1
- package/dist/commands/solutions-activity.d.ts +5 -0
- package/dist/commands/solutions-activity.d.ts.map +1 -0
- package/dist/commands/solutions-activity.js +116 -0
- package/dist/commands/solutions-activity.js.map +1 -0
- package/dist/commands/solutions-connections.d.ts +7 -0
- package/dist/commands/solutions-connections.d.ts.map +1 -0
- package/dist/commands/solutions-connections.js +88 -0
- package/dist/commands/solutions-connections.js.map +1 -0
- package/dist/commands/solutions-installation-options.d.ts +5 -0
- package/dist/commands/solutions-installation-options.d.ts.map +1 -0
- package/dist/commands/solutions-installation-options.js +52 -0
- package/dist/commands/solutions-installation-options.js.map +1 -0
- package/dist/commands/solutions-onboarding.d.ts +5 -0
- package/dist/commands/solutions-onboarding.d.ts.map +1 -0
- package/dist/commands/solutions-onboarding.js +113 -0
- package/dist/commands/solutions-onboarding.js.map +1 -0
- package/dist/commands/solutions-ops.d.ts.map +1 -1
- package/dist/commands/solutions-ops.js +278 -17
- package/dist/commands/solutions-ops.js.map +1 -1
- package/dist/first-run.d.ts.map +1 -1
- package/dist/first-run.js +2 -0
- package/dist/first-run.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/admission-limits/dist/counter-store.d.ts +21 -2
- package/node_modules/@noodle-borg/admission-limits/dist/counter-store.js +10 -1
- package/node_modules/@noodle-borg/admission-limits/dist/in-memory-counter-store.d.ts +5 -1
- package/node_modules/@noodle-borg/admission-limits/dist/in-memory-counter-store.js +31 -2
- package/node_modules/@noodle-borg/admission-limits/dist/portable.d.ts +3 -0
- package/node_modules/@noodle-borg/admission-limits/dist/portable.js +3 -0
- package/node_modules/@noodle-borg/admission-limits/dist/public-admission-assertion.d.ts +28 -0
- package/node_modules/@noodle-borg/admission-limits/dist/public-admission-assertion.js +124 -0
- package/node_modules/@noodle-borg/admission-limits/dist/public-record-admission.d.ts +54 -0
- package/node_modules/@noodle-borg/admission-limits/dist/public-record-admission.js +74 -0
- package/node_modules/@noodle-borg/admission-limits/dist/request-attribution.d.ts +11 -0
- package/node_modules/@noodle-borg/admission-limits/dist/request-attribution.js +19 -0
- package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js +2 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +5 -5
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +3 -0
- package/node_modules/@noodle-borg/agent-kit/dist/index.d.ts +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/index.js +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-bootstrap-skill.js +10 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +15 -3
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/welcome-wordmark.d.ts +3 -0
- package/node_modules/@noodle-borg/agent-kit/dist/welcome-wordmark.js +10 -0
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-configuration.d.ts +9 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-configuration.js +33 -2
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-execution-bound.d.ts +3 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-execution-bound.js +29 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-interaction-state.d.ts +5 -3
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-interaction-state.js +21 -10
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-store.d.ts +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-store.js +3 -3
- package/node_modules/@noodle-borg/assistant-gateway/dist/portable.d.ts +1 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/portable.js +1 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/session-target.js +5 -4
- package/node_modules/@noodle-borg/assistant-gateway/package.json +1 -1
- package/node_modules/@noodle-borg/authoring/dist/config.d.ts +20 -0
- package/node_modules/@noodle-borg/authoring/dist/config.js +29 -2
- package/node_modules/@noodle-borg/authoring/dist/connectors.d.ts +6 -1
- package/node_modules/@noodle-borg/authoring/dist/connectors.js +5 -0
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts +2 -2
- package/node_modules/@noodle-borg/authoring/dist/json-schema.d.ts +1 -1
- package/node_modules/@noodle-borg/authoring/dist/json-schema.js +15 -2
- package/node_modules/@noodle-borg/authoring/dist/load-authored.js +1 -1
- package/node_modules/@noodle-borg/authoring/dist/managed-collection.d.ts +18 -4
- package/node_modules/@noodle-borg/authoring/dist/managed-collection.js +22 -3
- package/node_modules/@noodle-borg/authoring/dist/platform.d.ts +3 -0
- package/node_modules/@noodle-borg/authoring/dist/platform.js +4 -0
- package/node_modules/@noodle-borg/authoring/dist/server-presentation.js +43 -0
- package/node_modules/@noodle-borg/authoring/dist/server.d.ts +3 -1
- package/node_modules/@noodle-borg/authoring/dist/server.js +4 -44
- package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-billing.js +18 -0
- package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-config.js +31 -4
- package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-solutions.js +778 -0
- package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-tenant-resources.js +0 -241
- package/node_modules/@noodle-borg/cli-catalog/dist/catalog-types.js +7 -0
- package/node_modules/@noodle-borg/cli-catalog/dist/index.js +20 -0
- package/node_modules/@noodle-borg/compiler/dist/artifact/assemble.js +2 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/catalog-emission.js +3 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/config.js +3 -0
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +17 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/version.d.ts +6 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/version.js +6 -1
- package/node_modules/@noodle-borg/compiler/dist/business-variables.d.ts +27 -0
- package/node_modules/@noodle-borg/compiler/dist/business-variables.js +230 -0
- package/node_modules/@noodle-borg/compiler/dist/compile.js +7 -1
- package/node_modules/@noodle-borg/compiler/dist/errors.d.ts +1 -1
- package/node_modules/@noodle-borg/compiler/dist/index.d.ts +3 -0
- package/node_modules/@noodle-borg/compiler/dist/index.js +3 -0
- package/node_modules/@noodle-borg/compiler/dist/managed-collection-controls.d.ts +52 -0
- package/node_modules/@noodle-borg/compiler/dist/managed-collection-controls.js +92 -0
- package/node_modules/@noodle-borg/compiler/dist/managed-collections.d.ts +26 -1
- package/node_modules/@noodle-borg/compiler/dist/managed-collections.js +190 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +100 -36
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +2 -0
- package/node_modules/@noodle-borg/compiler/dist/native-record-operations.d.ts +7 -0
- package/node_modules/@noodle-borg/compiler/dist/native-record-operations.js +59 -0
- package/node_modules/@noodle-borg/connector-defs/dist/compile-http.js +83 -8
- package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts +31 -1
- package/node_modules/@noodle-borg/connector-defs/dist/schema.js +16 -0
- package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts +12 -3
- package/node_modules/@noodle-borg/connector-http/dist/http-connector.js +41 -2
- package/node_modules/@noodle-borg/connector-http/dist/http-response.js +3 -2
- package/node_modules/@noodle-borg/connector-http/dist/mcp/config.js +1 -1
- package/node_modules/@noodle-borg/connector-http/dist/url-resolution.js +1 -1
- package/node_modules/@noodle-borg/control-plane/dist/contracts.d.ts +4 -1
- package/node_modules/@noodle-borg/control-plane/dist/deploy-gates.js +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/in-memory-organization-store.d.ts +3 -0
- package/node_modules/@noodle-borg/control-plane/dist/in-memory-organization-store.js +11 -0
- package/node_modules/@noodle-borg/control-plane/dist/organization-agreements.d.ts +45 -0
- package/node_modules/@noodle-borg/control-plane/dist/organization-agreements.js +74 -0
- package/node_modules/@noodle-borg/control-plane/dist/portable.d.ts +1 -0
- package/node_modules/@noodle-borg/control-plane/dist/portable.js +1 -0
- package/node_modules/@noodle-borg/module/dist/contract.d.ts +22 -0
- package/node_modules/@noodle-borg/module/dist/platform-human-identity.d.ts +2 -0
- package/node_modules/@noodle-borg/protocol/dist/request-deps.js +1 -0
- package/node_modules/@noodle-borg/protocol/dist/request-state.d.ts +1 -0
- package/node_modules/@noodle-borg/protocol/dist/request-state.js +11 -2
- package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts +2 -0
- package/node_modules/@noodle-borg/protocol/dist/v2/input-required.js +2 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/server.js +2 -1
- package/node_modules/@noodle-borg/runtime/dist/ambient-context.js +6 -1
- package/node_modules/@noodle-borg/runtime/dist/broker/types.d.ts +2 -0
- package/node_modules/@noodle-borg/runtime/dist/business-variables.d.ts +15 -0
- package/node_modules/@noodle-borg/runtime/dist/business-variables.js +75 -0
- package/node_modules/@noodle-borg/runtime/dist/confirmation-continuation.js +2 -1
- package/node_modules/@noodle-borg/runtime/dist/confirmation.js +23 -3
- package/node_modules/@noodle-borg/runtime/dist/connector/types.d.ts +17 -1
- package/node_modules/@noodle-borg/runtime/dist/connector-snapshot.js +6 -0
- package/node_modules/@noodle-borg/runtime/dist/execute.d.ts +18 -3
- package/node_modules/@noodle-borg/runtime/dist/execute.js +13 -3
- package/node_modules/@noodle-borg/runtime/dist/index.d.ts +2 -0
- package/node_modules/@noodle-borg/runtime/dist/index.js +1 -0
- package/node_modules/@noodle-borg/runtime/dist/interactive.js +11 -0
- package/node_modules/@noodle-borg/runtime/dist/managed-origins.d.ts +3 -1
- package/node_modules/@noodle-borg/runtime/dist/managed-origins.js +32 -7
- package/node_modules/@noodle-borg/runtime/dist/operation-credential.js +6 -0
- package/node_modules/@noodle-borg/runtime/dist/operation-evidence.d.ts +30 -0
- package/node_modules/@noodle-borg/runtime/dist/operation-evidence.js +68 -0
- package/node_modules/@noodle-borg/runtime/dist/operation-execution.d.ts +2 -2
- package/node_modules/@noodle-borg/runtime/dist/operation-execution.js +142 -71
- package/node_modules/@noodle-borg/runtime/dist/result.d.ts +6 -4
- package/node_modules/@noodle-borg/runtime/dist/tool-dispatch.d.ts +7 -0
- package/node_modules/@noodle-borg/runtime/dist/tool-dispatch.js +48 -4
- package/node_modules/@noodle-borg/service/dist/admission.js +2 -1
- package/node_modules/@noodle-borg/service/dist/application-activity.js +236 -0
- package/node_modules/@noodle-borg/service/dist/application-business-notice.js +28 -0
- package/node_modules/@noodle-borg/service/dist/application-runtime-target.js +141 -0
- package/node_modules/@noodle-borg/service/dist/application-settings-targets.js +72 -0
- package/node_modules/@noodle-borg/service/dist/application-settings.js +210 -0
- package/node_modules/@noodle-borg/service/dist/business-api-admission.js +121 -0
- package/node_modules/@noodle-borg/service/dist/business-information/activity-pagination.js +73 -0
- package/node_modules/@noodle-borg/service/dist/business-information/business-notice.d.ts +24 -0
- package/node_modules/@noodle-borg/service/dist/business-information/business-notice.js +18 -0
- package/node_modules/@noodle-borg/service/dist/business-information/collection-controls.js +51 -0
- package/node_modules/@noodle-borg/service/dist/business-information/contracts.d.ts +439 -0
- package/node_modules/@noodle-borg/service/dist/business-information/definition-resolver.js +94 -0
- package/node_modules/@noodle-borg/service/dist/business-information/in-memory-installation-lifecycle.js +136 -0
- package/node_modules/@noodle-borg/service/dist/business-information/in-memory-invitations.js +160 -0
- package/node_modules/@noodle-borg/service/dist/business-information/in-memory-locks.js +23 -0
- package/node_modules/@noodle-borg/service/dist/business-information/in-memory-store.js +287 -132
- package/node_modules/@noodle-borg/service/dist/business-information/installation-capacity.js +10 -0
- package/node_modules/@noodle-borg/service/dist/business-information/invitations.js +68 -0
- package/node_modules/@noodle-borg/service/dist/business-information/legacy-request-migration.js +60 -0
- package/node_modules/@noodle-borg/service/dist/business-information/managed-releases.js +245 -0
- package/node_modules/@noodle-borg/service/dist/business-information/managed-solution-blueprints.js +51 -0
- package/node_modules/@noodle-borg/service/dist/business-information/managed-solution-executable.js +76 -0
- package/node_modules/@noodle-borg/service/dist/business-information/model.js +124 -23
- package/node_modules/@noodle-borg/service/dist/business-information/native-query.js +162 -0
- package/node_modules/@noodle-borg/service/dist/business-information/native-storage-budget.js +60 -0
- package/node_modules/@noodle-borg/service/dist/business-information/pagination.js +28 -0
- package/node_modules/@noodle-borg/service/dist/business-information/portable.js +9 -0
- package/node_modules/@noodle-borg/service/dist/business-information/principal-authority.d.ts +11 -0
- package/node_modules/@noodle-borg/service/dist/business-information/principal-authority.js +42 -0
- package/node_modules/@noodle-borg/service/dist/business-information/profiles.js +137 -6
- package/node_modules/@noodle-borg/service/dist/business-information/reader-floor.js +26 -0
- package/node_modules/@noodle-borg/service/dist/business-information/source-credential-fence.js +79 -0
- package/node_modules/@noodle-borg/service/dist/business-information/source-custody-budget.js +30 -0
- package/node_modules/@noodle-borg/service/dist/business-information/source-custody-memory.js +122 -0
- package/node_modules/@noodle-borg/service/dist/business-information/source-executor.js +191 -0
- package/node_modules/@noodle-borg/service/dist/business-information/source-ingestion-contracts.js +2 -0
- package/node_modules/@noodle-borg/service/dist/business-information/source-ingestion-coordinator.js +136 -0
- package/node_modules/@noodle-borg/service/dist/business-information/source-ingestion-failures.js +32 -0
- package/node_modules/@noodle-borg/service/dist/business-information/source-ingestion-memory-state.js +154 -0
- package/node_modules/@noodle-borg/service/dist/business-information/source-ingestion-memory-store.js +568 -0
- package/node_modules/@noodle-borg/service/dist/business-information/source-ingestion-memory-types.js +26 -0
- package/node_modules/@noodle-borg/service/dist/business-information/source-ingestion-memory-values.js +59 -0
- package/node_modules/@noodle-borg/service/dist/business-information/source-ingestion-pagination.js +54 -0
- package/node_modules/@noodle-borg/service/dist/business-information/source-ingestion-validation.js +163 -0
- package/node_modules/@noodle-borg/service/dist/business-information/source-refresh-retention.js +29 -0
- package/node_modules/@noodle-borg/service/dist/business-information-runtime.js +80 -0
- package/node_modules/@noodle-borg/service/dist/business-onboarding.js +73 -0
- package/node_modules/@noodle-borg/service/dist/connections/types.js +8 -0
- package/node_modules/@noodle-borg/service/dist/credential-binding-index.js +38 -33
- package/node_modules/@noodle-borg/service/dist/deployment-execution.js +275 -0
- package/node_modules/@noodle-borg/service/dist/external-credential-binding-broker.js +19 -1
- package/node_modules/@noodle-borg/service/dist/external-credential-exchange.d.ts +16 -1
- package/node_modules/@noodle-borg/service/dist/modules/host.js +4 -1
- package/node_modules/@noodle-borg/service/dist/native-record-connector.d.ts +20 -0
- package/node_modules/@noodle-borg/service/dist/native-record-connector.js +206 -0
- package/node_modules/@noodle-borg/service/dist/oauth/store.d.ts +3 -0
- package/node_modules/@noodle-borg/service/dist/operation-evidence.js +89 -0
- package/node_modules/@noodle-borg/service/dist/recovery-quarantine.js +49 -0
- package/node_modules/@noodle-borg/service/dist/registry-compile.js +60 -11
- package/node_modules/@noodle-borg/service/dist/registry-deploy-transaction.js +18 -0
- package/node_modules/@noodle-borg/service/dist/registry-rollback.js +2 -1
- package/node_modules/@noodle-borg/service/dist/registry-state.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-state.js +6 -3
- package/node_modules/@noodle-borg/service/dist/registry-targets.js +49 -0
- package/node_modules/@noodle-borg/service/dist/registry-types.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/registry.d.ts +15 -3
- package/node_modules/@noodle-borg/service/dist/registry.js +177 -137
- package/node_modules/@noodle-borg/service/dist/routes/assistant-appearance.js +3 -2
- package/node_modules/@noodle-borg/service/dist/routes/assistant-clients.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-doctor.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-embeds.js +8 -3
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-replay.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.js +48 -36
- package/node_modules/@noodle-borg/service/dist/routes/assistant-public-configuration.js +3 -2
- package/node_modules/@noodle-borg/service/dist/routes/assistant-public-session.js +10 -10
- package/node_modules/@noodle-borg/service/dist/routes/assistant-session-target.js +32 -3
- package/node_modules/@noodle-borg/service/dist/routes/assistant-suggestions.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-transcript.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant.js +10 -10
- package/node_modules/@noodle-borg/service/dist/routes/business-information-activity.js +83 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-admission.js +26 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-channels.js +153 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-connections.js +107 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-dispatch.js +87 -4
- package/node_modules/@noodle-borg/service/dist/routes/business-information-external.js +79 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-installation.js +24 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-notice.js +69 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-onboarding.js +58 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-paths.js +76 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-public.js +151 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-reader-floor.js +15 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-record-create.js +29 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-record-reads.js +36 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-request.js +64 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-settings.js +64 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-source.js +249 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-staff.js +258 -0
- package/node_modules/@noodle-borg/service/dist/routes/business-information-wire.js +226 -26
- package/node_modules/@noodle-borg/service/dist/routes/business-information.js +238 -197
- package/node_modules/@noodle-borg/service/dist/routes/config-values-dispatch.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/config-values.js +26 -4
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +33 -234
- package/node_modules/@noodle-borg/service/dist/routes/deployment-activation-response.js +13 -4
- package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.js +4 -0
- package/node_modules/@noodle-borg/service/dist/service.js +57 -11
- package/node_modules/@noodle-borg/service/dist/solution-installation-activation.js +149 -0
- package/node_modules/@noodle-borg/service/dist/source-configuration-authority.js +94 -0
- package/node_modules/@noodle-borg/service/dist/state-catalog.js +6 -5
- package/node_modules/@noodle-borg/service/dist/store/config-values.d.ts +42 -17
- package/node_modules/@noodle-borg/service/dist/store/config-values.js +123 -24
- package/node_modules/@noodle-borg/service/dist/store/in-memory.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/store/in-memory.js +3 -0
- package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/store/json-file.js +3 -0
- package/node_modules/@noodle-borg/service/dist/store.d.ts +3 -1
- package/node_modules/@noodle-borg/service/package.json +2 -2
- package/node_modules/@noodle-borg/transport-http/dist/serve-request.js +9 -0
- package/node_modules/@noodle-borg/transport-http/package.json +1 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/application-activity.d.ts +143 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/application-activity.js +90 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/application-channels.d.ts +130 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/application-channels.js +77 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/application-connections.d.ts +105 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/application-connections.js +67 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/application-onboarding.d.ts +27 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/application-onboarding.js +28 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/application-settings.d.ts +112 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/application-settings.js +88 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts +1 -1
- package/node_modules/@noodle-borg/wire-contracts/dist/billing-catalog.d.ts +62 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/billing-catalog.js +57 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/billing-enforcement.d.ts +12 -12
- package/node_modules/@noodle-borg/wire-contracts/dist/billing-metering.d.ts +4 -4
- package/node_modules/@noodle-borg/wire-contracts/dist/billing-org-transfer.d.ts +3 -3
- package/node_modules/@noodle-borg/wire-contracts/dist/business-information-query.d.ts +25 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/business-information-query.js +37 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/business-information.d.ts +1816 -158
- package/node_modules/@noodle-borg/wire-contracts/dist/business-information.js +416 -41
- package/node_modules/@noodle-borg/wire-contracts/dist/control-plane.d.ts +2 -2
- package/node_modules/@noodle-borg/wire-contracts/dist/distribution.d.ts +5 -5
- package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts +8 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/index.js +8 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/knowledge.d.ts +3 -3
- package/node_modules/@noodle-borg/wire-contracts/dist/managed-assistant-sponsorship.d.ts +7 -7
- package/node_modules/@noodle-borg/wire-contracts/dist/platform-account-reset.d.ts +5 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/platform-account-reset.js +1 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/platform-auth.d.ts +66 -66
- package/node_modules/@noodle-borg/wire-contracts/dist/solution-onboarding.d.ts +143 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/solution-onboarding.js +94 -0
- package/node_modules/@noodleseed/assistant/README.md +5 -0
- package/node_modules/@noodleseed/assistant/package.json +1 -1
- package/package.json +2 -2
package/node_modules/@noodle-borg/service/dist/business-information/legacy-request-migration.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { canonicalJson, validateJsonSchema } from '@noodle-borg/compiler';
|
|
2
|
+
import { validateManagedPayload, validateScalar } from './validation.js';
|
|
3
|
+
/** Exact, bounded historical request-bundle conversion; not a generic workflow/status alias. */
|
|
4
|
+
export function isLegacyRequestUpgrade(previous, next) {
|
|
5
|
+
const properties = next.recordSchema.properties;
|
|
6
|
+
if (properties === null || typeof properties !== 'object' || Array.isArray(properties))
|
|
7
|
+
return false;
|
|
8
|
+
const status = properties.status;
|
|
9
|
+
if (status === null || typeof status !== 'object' || Array.isArray(status))
|
|
10
|
+
return false;
|
|
11
|
+
const oldProperties = previous.recordSchema.properties;
|
|
12
|
+
return (previous.behavior?.kind === 'request' &&
|
|
13
|
+
next.behavior === undefined &&
|
|
14
|
+
next.management?.assignment === true &&
|
|
15
|
+
next.management.notes === true &&
|
|
16
|
+
oldProperties !== null &&
|
|
17
|
+
typeof oldProperties === 'object' &&
|
|
18
|
+
!Array.isArray(oldProperties) &&
|
|
19
|
+
!Object.hasOwn(oldProperties, 'status') &&
|
|
20
|
+
status.type === 'string' &&
|
|
21
|
+
status.default === 'new' &&
|
|
22
|
+
canonicalJson(status.enum) ===
|
|
23
|
+
canonicalJson(['new', 'in_progress', 'resolved', 'closed']) &&
|
|
24
|
+
!next.publicFields?.includes('status') &&
|
|
25
|
+
Object.keys(oldProperties).every((field) => next.publicFields?.includes(field)));
|
|
26
|
+
}
|
|
27
|
+
export function migrateLegacyRequestRecord(current, previous, installation, actorSubject, now) {
|
|
28
|
+
if (current.deletedAt !== undefined || current.content === undefined)
|
|
29
|
+
return undefined;
|
|
30
|
+
const next = installation.definition.collections.find((collection) => collection.key === current.collectionKey);
|
|
31
|
+
if (next === undefined ||
|
|
32
|
+
next.authority.authority !== 'native' ||
|
|
33
|
+
previous.authority.authority !== 'native')
|
|
34
|
+
return undefined;
|
|
35
|
+
if (current.status === undefined)
|
|
36
|
+
return current;
|
|
37
|
+
if (!isLegacyRequestUpgrade(previous, next))
|
|
38
|
+
return undefined;
|
|
39
|
+
const payload = validateManagedPayload({ ...current.content.payload, status: current.status });
|
|
40
|
+
if (validateJsonSchema(next.recordSchema, payload).length > 0)
|
|
41
|
+
return undefined;
|
|
42
|
+
const { status: ignoredStatus, ...record } = current;
|
|
43
|
+
void ignoredStatus;
|
|
44
|
+
return {
|
|
45
|
+
...record,
|
|
46
|
+
profileVersion: installation.profileVersion,
|
|
47
|
+
schemaVersion: next.schemaVersion,
|
|
48
|
+
schemaDigest: next.schemaDigest,
|
|
49
|
+
originalSchema: current.originalSchema ?? {
|
|
50
|
+
profileVersion: current.profileVersion,
|
|
51
|
+
schemaVersion: current.schemaVersion,
|
|
52
|
+
schemaDigest: current.schemaDigest,
|
|
53
|
+
},
|
|
54
|
+
revision: current.revision + 1,
|
|
55
|
+
updatedAt: now.toISOString(),
|
|
56
|
+
updatedBySubject: validateScalar('migration actor', actorSubject, 256),
|
|
57
|
+
content: { payload, notes: structuredClone(current.content.notes) },
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=legacy-request-migration.js.map
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { isLegacyRequestUpgrade } from './legacy-request-migration.js';
|
|
2
|
+
import { managedSolutionBlueprint } from './managed-solution-blueprints.js';
|
|
3
|
+
import { BUILT_IN_SOLUTION_PROFILE_RELEASES, builtInDefinition, builtInDefinitionAtRelease, isBuiltInProfileKey, } from './profiles.js';
|
|
4
|
+
/** Resolves the one service-wide stable release while preserving installation-owned configuration. */
|
|
5
|
+
export function resolveManagedInstallation(installation, resolveCurrent = builtInDefinition) {
|
|
6
|
+
if (installation.definition.reference.kind !== 'managed')
|
|
7
|
+
return cloneInstallation(installation);
|
|
8
|
+
const key = installation.definition.reference.definitionId;
|
|
9
|
+
const installed = registeredDefinition(key, installation.profileVersion);
|
|
10
|
+
assertSameDefinition(installed, installation.definition, 'stored installation');
|
|
11
|
+
const current = resolveCurrent(key);
|
|
12
|
+
if (current.reference.kind !== 'managed' || current.reference.definitionId !== key) {
|
|
13
|
+
throw new Error(`managed definition resolver returned the wrong definition for "${key}"`);
|
|
14
|
+
}
|
|
15
|
+
const registeredCurrent = registeredDefinition(key, current.reference.release);
|
|
16
|
+
assertSameDefinition(registeredCurrent, current, 'managed definition resolver');
|
|
17
|
+
if (current.reference.release < installed.reference.release) {
|
|
18
|
+
throw new Error(`managed definition rollback "${key}@${current.reference.release}" requires accepted-record compatibility proof`);
|
|
19
|
+
}
|
|
20
|
+
for (let release = installed.reference.release + 1; release <= current.reference.release; release += 1) {
|
|
21
|
+
const previous = registeredDefinition(key, release - 1);
|
|
22
|
+
const next = registeredDefinition(key, release);
|
|
23
|
+
assertCompatibleManagedRelease(previous, next);
|
|
24
|
+
}
|
|
25
|
+
for (const collection of installation.managedCollections) {
|
|
26
|
+
if (!current.collections.some((candidate) => candidate.key === collection)) {
|
|
27
|
+
throw new Error(`managed release removed enabled collection "${collection}"`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return cloneInstallation({
|
|
31
|
+
...installation,
|
|
32
|
+
profileVersion: current.reference.release,
|
|
33
|
+
managedCollections: [...installation.managedCollections],
|
|
34
|
+
definition: current,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/** Resolves the exact validator that accepted a stored row, independently of current presentation. */
|
|
38
|
+
export function collectionForStoredRecord(installation, record) {
|
|
39
|
+
if (record.scope.org !== installation.scope.org ||
|
|
40
|
+
record.scope.app !== installation.scope.app ||
|
|
41
|
+
record.scope.env !== installation.scope.env ||
|
|
42
|
+
record.scope.installationId !== installation.scope.installationId ||
|
|
43
|
+
record.profileKey !== installation.profileKey) {
|
|
44
|
+
throw new Error('stored record does not belong to its solution installation');
|
|
45
|
+
}
|
|
46
|
+
let definition;
|
|
47
|
+
if (installation.definition.reference.kind === 'private') {
|
|
48
|
+
definition = installation.definition;
|
|
49
|
+
if (record.profileVersion !== installation.profileVersion) {
|
|
50
|
+
throw new Error('stored private record uses an unsupported definition version');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
if (!isBuiltInProfileKey(record.profileKey)) {
|
|
55
|
+
throw new Error(`stored record uses unknown profile "${record.profileKey}"`);
|
|
56
|
+
}
|
|
57
|
+
definition = builtInDefinitionAtRelease(record.profileKey, record.profileVersion);
|
|
58
|
+
}
|
|
59
|
+
const collection = definition.collections.find((candidate) => candidate.key === record.collectionKey);
|
|
60
|
+
if (collection === undefined ||
|
|
61
|
+
collection.schemaVersion !== record.schemaVersion ||
|
|
62
|
+
normalizeDigest(collection.schemaDigest) !== normalizeDigest(record.schemaDigest)) {
|
|
63
|
+
throw new Error(`stored record uses unsupported schema identity "${record.profileKey}@${record.profileVersion}/${record.collectionKey}@${record.schemaVersion}:${record.schemaDigest}"`);
|
|
64
|
+
}
|
|
65
|
+
return structuredClone(collection);
|
|
66
|
+
}
|
|
67
|
+
/** Release-gate proof: a rollback target must retain a validator for every accepted record identity. */
|
|
68
|
+
export function assertManagedRollbackReaders(key, targetRelease, records) {
|
|
69
|
+
const target = registeredDefinition(key, targetRelease);
|
|
70
|
+
for (const record of records) {
|
|
71
|
+
if (record.profileKey !== key)
|
|
72
|
+
continue;
|
|
73
|
+
if (record.profileVersion > target.reference.release) {
|
|
74
|
+
throw new Error(`rollback target "${key}@${targetRelease}" cannot read accepted profile release ${record.profileVersion}`);
|
|
75
|
+
}
|
|
76
|
+
const historical = registeredDefinition(key, record.profileVersion).collections.find((collection) => collection.key === record.collectionKey);
|
|
77
|
+
if (historical === undefined ||
|
|
78
|
+
historical.schemaVersion !== record.schemaVersion ||
|
|
79
|
+
normalizeDigest(historical.schemaDigest) !== normalizeDigest(record.schemaDigest)) {
|
|
80
|
+
throw new Error(`rollback target cannot read accepted schema for "${record.collectionKey}"`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export function assertCompatibleManagedRelease(previous, next) {
|
|
85
|
+
const previousReference = previous.reference;
|
|
86
|
+
const nextReference = next.reference;
|
|
87
|
+
if (previousReference.kind !== 'managed' ||
|
|
88
|
+
nextReference.kind !== 'managed' ||
|
|
89
|
+
previousReference.definitionId !== nextReference.definitionId ||
|
|
90
|
+
nextReference.release !== previousReference.release + 1) {
|
|
91
|
+
throw new Error('managed releases must be consecutive revisions of one definition');
|
|
92
|
+
}
|
|
93
|
+
const previousTools = new Set((previous.variables ?? []).flatMap((entry) => entry.requiredFor));
|
|
94
|
+
const blueprint = managedSolutionBlueprint(previousReference.definitionId, previousReference.release);
|
|
95
|
+
if (blueprint)
|
|
96
|
+
previousTools.add(blueprint.tool);
|
|
97
|
+
for (const setting of previous.variables ?? []) {
|
|
98
|
+
const updated = next.variables?.find((entry) => entry.name === setting.name);
|
|
99
|
+
if (!updated ||
|
|
100
|
+
!compatibleProperty(setting.valueSchema, updated.valueSchema) ||
|
|
101
|
+
(setting.portal !== undefined && updated.portal === undefined))
|
|
102
|
+
throw new Error(`managed release changed setting compatibility for "${setting.name}"`);
|
|
103
|
+
}
|
|
104
|
+
for (const setting of next.variables ?? []) {
|
|
105
|
+
const old = previous.variables?.find((entry) => entry.name === setting.name);
|
|
106
|
+
if (!Object.hasOwn(setting, 'default') &&
|
|
107
|
+
setting.requiredFor.some((tool) => previousTools.has(tool) && !old?.requiredFor.includes(tool)))
|
|
108
|
+
throw new Error(`managed release added an unresolved requirement for "${setting.name}"`);
|
|
109
|
+
}
|
|
110
|
+
for (const oldCollection of previous.collections) {
|
|
111
|
+
const newCollection = next.collections.find((candidate) => candidate.key === oldCollection.key);
|
|
112
|
+
if (newCollection === undefined) {
|
|
113
|
+
throw new Error(`managed release removed collection "${oldCollection.key}"`);
|
|
114
|
+
}
|
|
115
|
+
if (stableJson(oldCollection.authority) !== stableJson(newCollection.authority)) {
|
|
116
|
+
throw new Error(`managed release changed authority for "${oldCollection.key}"`);
|
|
117
|
+
}
|
|
118
|
+
if (stableJson(oldCollection.behavior) !== stableJson(newCollection.behavior) &&
|
|
119
|
+
!isLegacyRequestUpgrade(oldCollection, newCollection)) {
|
|
120
|
+
throw new Error(`managed release changed behavior for "${oldCollection.key}"`);
|
|
121
|
+
}
|
|
122
|
+
if (!isLegacyRequestUpgrade(oldCollection, newCollection) &&
|
|
123
|
+
stableJson(oldCollection.management) !== stableJson(newCollection.management)) {
|
|
124
|
+
throw new Error(`managed release changed native controls for "${oldCollection.key}"`);
|
|
125
|
+
}
|
|
126
|
+
assertCompatibleSchema(oldCollection, newCollection);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
function assertCompatibleSchema(previous, next) {
|
|
130
|
+
const oldSchema = objectSchema(previous.recordSchema, previous.key);
|
|
131
|
+
const newSchema = objectSchema(next.recordSchema, next.key);
|
|
132
|
+
if (oldSchema.type !== newSchema.type ||
|
|
133
|
+
oldSchema.additionalProperties !== newSchema.additionalProperties ||
|
|
134
|
+
stableJson(oldSchema.required) !== stableJson(newSchema.required)) {
|
|
135
|
+
throw new Error(`managed release changed required fields for "${previous.key}"`);
|
|
136
|
+
}
|
|
137
|
+
for (const [name, oldProperty] of Object.entries(oldSchema.properties)) {
|
|
138
|
+
const newProperty = newSchema.properties[name];
|
|
139
|
+
if (newProperty === undefined) {
|
|
140
|
+
throw new Error(`managed release removed field "${previous.key}.${name}"`);
|
|
141
|
+
}
|
|
142
|
+
if (!compatibleProperty(oldProperty, newProperty)) {
|
|
143
|
+
throw new Error(`managed release changed field semantics for "${previous.key}.${name}"`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
const changed = stableJson(previous.recordSchema) !== stableJson(next.recordSchema);
|
|
147
|
+
if (changed && next.schemaVersion <= previous.schemaVersion) {
|
|
148
|
+
throw new Error(`managed release changed schema without advancing "${previous.key}" version`);
|
|
149
|
+
}
|
|
150
|
+
if (!changed && next.schemaVersion !== previous.schemaVersion) {
|
|
151
|
+
throw new Error(`managed release advanced unchanged schema "${previous.key}"`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
function compatibleProperty(previous, next) {
|
|
155
|
+
if (!isObject(previous) || !isObject(next))
|
|
156
|
+
return stableJson(previous) === stableJson(next);
|
|
157
|
+
const oldEnum = stringArray(previous.enum);
|
|
158
|
+
const newEnum = stringArray(next.enum);
|
|
159
|
+
const withoutEnum = (value) => {
|
|
160
|
+
const { enum: ignored, ...rest } = value;
|
|
161
|
+
void ignored;
|
|
162
|
+
return rest;
|
|
163
|
+
};
|
|
164
|
+
if (stableJson(withoutEnum(previous)) !== stableJson(withoutEnum(next)))
|
|
165
|
+
return false;
|
|
166
|
+
if (oldEnum === undefined)
|
|
167
|
+
return newEnum === undefined;
|
|
168
|
+
return newEnum !== undefined && oldEnum.every((value) => newEnum.includes(value));
|
|
169
|
+
}
|
|
170
|
+
function objectSchema(schema, collection) {
|
|
171
|
+
if (!isObject(schema) || !isObject(schema.properties)) {
|
|
172
|
+
throw new Error(`managed collection "${collection}" does not use a supported object schema`);
|
|
173
|
+
}
|
|
174
|
+
return {
|
|
175
|
+
type: schema.type,
|
|
176
|
+
additionalProperties: schema.additionalProperties,
|
|
177
|
+
required: schema.required,
|
|
178
|
+
properties: schema.properties,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
function registeredDefinition(key, release) {
|
|
182
|
+
const definition = builtInDefinitionAtRelease(key, release);
|
|
183
|
+
if (definition.reference.kind !== 'managed') {
|
|
184
|
+
throw new Error(`profile "${key}" is not a managed solution definition`);
|
|
185
|
+
}
|
|
186
|
+
return definition;
|
|
187
|
+
}
|
|
188
|
+
function assertSameDefinition(expected, actual, source) {
|
|
189
|
+
if (stableJson(expected) !== stableJson(actual)) {
|
|
190
|
+
throw new Error(`${source} does not match its immutable managed release`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
function cloneInstallation(installation) {
|
|
194
|
+
return {
|
|
195
|
+
...installation,
|
|
196
|
+
scope: { ...installation.scope },
|
|
197
|
+
managedCollections: [...installation.managedCollections],
|
|
198
|
+
definition: structuredClone(installation.definition),
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
function normalizeDigest(value) {
|
|
202
|
+
return value.replace(/^sha256:/, '');
|
|
203
|
+
}
|
|
204
|
+
function isObject(value) {
|
|
205
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
206
|
+
}
|
|
207
|
+
function stringArray(value) {
|
|
208
|
+
return Array.isArray(value) && value.every((item) => typeof item === 'string')
|
|
209
|
+
? value
|
|
210
|
+
: undefined;
|
|
211
|
+
}
|
|
212
|
+
function stableJson(value) {
|
|
213
|
+
if (Array.isArray(value))
|
|
214
|
+
return `[${value.map(stableJson).join(',')}]`;
|
|
215
|
+
if (value !== null && typeof value === 'object') {
|
|
216
|
+
return `{${Object.entries(value)
|
|
217
|
+
.filter(([, entry]) => entry !== undefined)
|
|
218
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
219
|
+
.map(([key, entry]) => `${JSON.stringify(key)}:${stableJson(entry)}`)
|
|
220
|
+
.join(',')}}`;
|
|
221
|
+
}
|
|
222
|
+
return JSON.stringify(value);
|
|
223
|
+
}
|
|
224
|
+
/** Immutable release rows used by schema backfill and release-gate inspection. */
|
|
225
|
+
export function builtInManagedReleaseDefinitions() {
|
|
226
|
+
return Object.entries(BUILT_IN_SOLUTION_PROFILE_RELEASES).flatMap(([key, releases]) => releases
|
|
227
|
+
.filter(() => key !== 'b2b_saas')
|
|
228
|
+
.map((release) => builtInDefinitionAtRelease(key, release.version)));
|
|
229
|
+
}
|
|
230
|
+
function validateBuiltInManagedReleaseRegistry() {
|
|
231
|
+
for (const [key, releases] of Object.entries(BUILT_IN_SOLUTION_PROFILE_RELEASES)) {
|
|
232
|
+
if (key === 'b2b_saas')
|
|
233
|
+
continue;
|
|
234
|
+
for (let index = 0; index < releases.length; index += 1) {
|
|
235
|
+
if (releases[index]?.version !== index + 1) {
|
|
236
|
+
throw new Error(`managed definition "${key}" release history must be contiguous`);
|
|
237
|
+
}
|
|
238
|
+
if (index > 0) {
|
|
239
|
+
assertCompatibleManagedRelease(builtInDefinitionAtRelease(key, index), builtInDefinitionAtRelease(key, index + 1));
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
validateBuiltInManagedReleaseRegistry();
|
|
245
|
+
//# sourceMappingURL=managed-releases.js.map
|
package/node_modules/@noodle-borg/service/dist/business-information/managed-solution-blueprints.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { compileVariableDeclarations } from '@noodle-borg/compiler';
|
|
2
|
+
/** Curated first-party executable intent; collection declarations never synthesize tools. */
|
|
3
|
+
const BLUEPRINTS = {
|
|
4
|
+
travel: {
|
|
5
|
+
release: 3,
|
|
6
|
+
collection: 'travel_requests',
|
|
7
|
+
tool: 'submit_travel_request',
|
|
8
|
+
title: 'Submit a travel request',
|
|
9
|
+
description: 'Send a travel service request to the business for staff review. This records a request; it does not change a reservation or issue a refund.',
|
|
10
|
+
},
|
|
11
|
+
ecommerce: {
|
|
12
|
+
release: 2,
|
|
13
|
+
collection: 'return_requests',
|
|
14
|
+
tool: 'submit_commerce_request',
|
|
15
|
+
title: 'Submit a return request',
|
|
16
|
+
description: 'Send an order or return request to the business for staff review. This records a request; it does not issue a refund or change an order.',
|
|
17
|
+
},
|
|
18
|
+
restaurant: {
|
|
19
|
+
release: 2,
|
|
20
|
+
collection: 'guest_requests',
|
|
21
|
+
tool: 'submit_restaurant_request',
|
|
22
|
+
title: 'Submit a guest request',
|
|
23
|
+
description: 'Send a guest request to the restaurant for staff review. This records a request; it does not confirm a reservation or place an order.',
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
export function managedSolutionBlueprint(key, release) {
|
|
27
|
+
if (key === 'b2b_saas')
|
|
28
|
+
return undefined;
|
|
29
|
+
const blueprint = BLUEPRINTS[key];
|
|
30
|
+
return blueprint.release === release ? blueprint : undefined;
|
|
31
|
+
}
|
|
32
|
+
export function managedSolutionVariables() {
|
|
33
|
+
const errors = [];
|
|
34
|
+
const variables = compileVariableDeclarations([
|
|
35
|
+
{
|
|
36
|
+
name: 'WEBSITE_ORIGIN',
|
|
37
|
+
schemaVersion: 1,
|
|
38
|
+
valueSchema: { type: 'string', minLength: 1, maxLength: 2048 },
|
|
39
|
+
portal: {
|
|
40
|
+
label: 'Website origin',
|
|
41
|
+
help: 'The exact HTTPS origin where your assistant will be embedded, for example https://www.example.com.',
|
|
42
|
+
group: 'Publishing',
|
|
43
|
+
},
|
|
44
|
+
requiredFor: [],
|
|
45
|
+
},
|
|
46
|
+
], [], errors);
|
|
47
|
+
if (errors.length > 0)
|
|
48
|
+
throw new Error('Invalid first-party solution settings declaration');
|
|
49
|
+
return variables;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=managed-solution-blueprints.js.map
|
package/node_modules/@noodle-borg/service/dist/business-information/managed-solution-executable.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { projectManagedCollectionControls, RECORD_OPERATION_SIGNATURES, } from '@noodle-borg/compiler';
|
|
2
|
+
import { collectionToPublicWire } from '../routes/business-information-wire.js';
|
|
3
|
+
import { managedSolutionBlueprint } from './managed-solution-blueprints.js';
|
|
4
|
+
/** System-owned manifest data for an explicitly curated solution, admitted by the ordinary compiler. */
|
|
5
|
+
export function managedSolutionManifest(definition) {
|
|
6
|
+
const ref = definition.reference;
|
|
7
|
+
const blueprint = ref.kind === 'managed' ? managedSolutionBlueprint(ref.definitionId, ref.release) : undefined;
|
|
8
|
+
if (blueprint === undefined)
|
|
9
|
+
throw new Error('Managed solution executable is unavailable for this release');
|
|
10
|
+
const collection = definition.collections.find((entry) => entry.key === blueprint.collection);
|
|
11
|
+
if (collection === undefined)
|
|
12
|
+
throw new Error('Managed solution executable collection is missing');
|
|
13
|
+
return {
|
|
14
|
+
manifestVersion: '2',
|
|
15
|
+
server: {
|
|
16
|
+
name: ref.kind === 'managed' ? ref.definitionId : 'solution',
|
|
17
|
+
version: `${ref.kind === 'managed' ? ref.release : 1}.0.0`,
|
|
18
|
+
title: definition.title,
|
|
19
|
+
interactions: { confirmationFallback: 'host' },
|
|
20
|
+
instructions: `${definition.description} Request submission creates a record for staff review. Never claim that an external booking, payment, refund, order or reservation was completed.`,
|
|
21
|
+
variables: definition.variables?.map(({ schemaDigest: _, ...declaration }) => declaration),
|
|
22
|
+
collections: definition.collections.map((entry) => ({
|
|
23
|
+
name: entry.key,
|
|
24
|
+
title: entry.title,
|
|
25
|
+
description: entry.description,
|
|
26
|
+
schemaVersion: entry.schemaVersion,
|
|
27
|
+
recordSchema: entry.recordSchema,
|
|
28
|
+
...projectManagedCollectionControls(entry),
|
|
29
|
+
summaryFields: entry.summaryFields,
|
|
30
|
+
})),
|
|
31
|
+
assistant: {
|
|
32
|
+
model: { kind: 'noodle-managed' },
|
|
33
|
+
allowedOrigins: ['${env.WEBSITE_ORIGIN}'],
|
|
34
|
+
surfaces: [
|
|
35
|
+
{
|
|
36
|
+
mode: 'public',
|
|
37
|
+
origins: ['${env.WEBSITE_ORIGIN}'],
|
|
38
|
+
capabilities: [{ kind: 'tool', name: blueprint.tool }],
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
connectors: { records: { id: 'noodle_records', version: '1.0.0' } },
|
|
44
|
+
tools: [
|
|
45
|
+
{
|
|
46
|
+
name: blueprint.tool,
|
|
47
|
+
title: blueprint.title,
|
|
48
|
+
description: blueprint.description,
|
|
49
|
+
inputSchema: collectionToPublicWire(collection).recordSchema,
|
|
50
|
+
outputSchema: RECORD_OPERATION_SIGNATURES.submit_record?.output,
|
|
51
|
+
annotations: {
|
|
52
|
+
confirm: true,
|
|
53
|
+
readOnlyHint: false,
|
|
54
|
+
destructiveHint: false,
|
|
55
|
+
idempotentHint: false,
|
|
56
|
+
openWorldHint: false,
|
|
57
|
+
},
|
|
58
|
+
fulfilment: {
|
|
59
|
+
steps: [
|
|
60
|
+
{
|
|
61
|
+
id: 'submit',
|
|
62
|
+
use: 'records.submit_record',
|
|
63
|
+
args: { collection: collection.key, payload: '${input}' },
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
output: {
|
|
67
|
+
ok: '${steps.submit.ok}',
|
|
68
|
+
recordId: '${steps.submit.recordId}',
|
|
69
|
+
revision: '${steps.submit.revision}',
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=managed-solution-executable.js.map
|