@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
|
@@ -76,95 +76,6 @@ const YES = {
|
|
|
76
76
|
type: 'boolean',
|
|
77
77
|
summary: 'Confirm non-interactively.',
|
|
78
78
|
};
|
|
79
|
-
const RETENTION = {
|
|
80
|
-
...OPTIONAL_FLAG,
|
|
81
|
-
name: 'retention-days',
|
|
82
|
-
type: 'integer',
|
|
83
|
-
value: '<days>',
|
|
84
|
-
summary: 'Managed-record retention in days.',
|
|
85
|
-
constraints: { choices: [7, 30, 90], default: 30 },
|
|
86
|
-
};
|
|
87
|
-
const INSTALLATION_ARGUMENT = {
|
|
88
|
-
...REQUIRED_ARGUMENT,
|
|
89
|
-
name: 'installation',
|
|
90
|
-
summary: 'Solution installation identifier.',
|
|
91
|
-
};
|
|
92
|
-
const COLLECTION_ARGUMENT = {
|
|
93
|
-
...REQUIRED_ARGUMENT,
|
|
94
|
-
name: 'collection',
|
|
95
|
-
summary: 'Managed collection key.',
|
|
96
|
-
};
|
|
97
|
-
const RECORD_ARGUMENT = {
|
|
98
|
-
...REQUIRED_ARGUMENT,
|
|
99
|
-
name: 'record',
|
|
100
|
-
summary: 'Managed record identifier.',
|
|
101
|
-
};
|
|
102
|
-
const SOLUTION_COMMON_FLAGS = [ORG, SERVICE, AUTH_TOKEN, JSON_FLAG];
|
|
103
|
-
const RECORD_FLAGS = [
|
|
104
|
-
...SOLUTION_COMMON_FLAGS,
|
|
105
|
-
{
|
|
106
|
-
...OPTIONAL_FLAG,
|
|
107
|
-
name: 'data',
|
|
108
|
-
type: 'string',
|
|
109
|
-
value: '<json>',
|
|
110
|
-
summary: 'Structured JSON record data.',
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
...OPTIONAL_FLAG,
|
|
114
|
-
name: 'idempotency-key',
|
|
115
|
-
type: 'string',
|
|
116
|
-
value: '<key>',
|
|
117
|
-
summary: 'Retry-safe create key.',
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
...OPTIONAL_FLAG,
|
|
121
|
-
name: 'expected-revision',
|
|
122
|
-
type: 'integer',
|
|
123
|
-
value: '<revision>',
|
|
124
|
-
summary: 'Expected current record revision.',
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
...OPTIONAL_FLAG,
|
|
128
|
-
name: 'status',
|
|
129
|
-
type: 'string',
|
|
130
|
-
value: '<status>',
|
|
131
|
-
summary: 'Record status or list filter.',
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
...OPTIONAL_FLAG,
|
|
135
|
-
name: 'assignee',
|
|
136
|
-
type: 'string',
|
|
137
|
-
value: '<subject>',
|
|
138
|
-
summary: 'Assignee subject or list filter.',
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
...OPTIONAL_FLAG,
|
|
142
|
-
name: 'note',
|
|
143
|
-
type: 'string',
|
|
144
|
-
value: '<text>',
|
|
145
|
-
summary: 'Operator note text.',
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
...OPTIONAL_FLAG,
|
|
149
|
-
name: 'cursor',
|
|
150
|
-
type: 'string',
|
|
151
|
-
value: '<cursor>',
|
|
152
|
-
summary: 'Opaque page cursor.',
|
|
153
|
-
},
|
|
154
|
-
{
|
|
155
|
-
...OPTIONAL_FLAG,
|
|
156
|
-
name: 'limit',
|
|
157
|
-
type: 'integer',
|
|
158
|
-
value: '<count>',
|
|
159
|
-
summary: 'Bounded page size.',
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
...OPTIONAL_FLAG,
|
|
163
|
-
name: 'include-deleted',
|
|
164
|
-
type: 'boolean',
|
|
165
|
-
summary: 'Include payload-free tombstones.',
|
|
166
|
-
},
|
|
167
|
-
];
|
|
168
79
|
const WATCH_FLAGS = [
|
|
169
80
|
{
|
|
170
81
|
...OPTIONAL_FLAG,
|
|
@@ -189,158 +100,6 @@ const DEPLOYMENT_BASE_FLAGS = [ORG, APP, ENV, SERVICE, AUTH_TOKEN];
|
|
|
189
100
|
const DEPLOYMENT_INSPECT_FLAGS = [ORG, SERVICE, AUTH_TOKEN, JSON_FLAG];
|
|
190
101
|
const _GITHUB_BASE_FLAGS = [ORG, APP, SERVICE, AUTH_TOKEN];
|
|
191
102
|
export const CATALOG_TENANT_RESOURCES = [
|
|
192
|
-
{
|
|
193
|
-
name: 'solutions',
|
|
194
|
-
section: 'resources',
|
|
195
|
-
helpRank: 1,
|
|
196
|
-
summary: 'Install and operate data-driven business solutions.',
|
|
197
|
-
arguments: [],
|
|
198
|
-
flags: [],
|
|
199
|
-
subcommands: [
|
|
200
|
-
{
|
|
201
|
-
name: 'catalog',
|
|
202
|
-
summary: 'List centrally managed solution profiles.',
|
|
203
|
-
arguments: [],
|
|
204
|
-
flags: [SERVICE, AUTH_TOKEN, JSON_FLAG],
|
|
205
|
-
jsonOutput: { mode: 'single' },
|
|
206
|
-
},
|
|
207
|
-
{
|
|
208
|
-
name: 'list',
|
|
209
|
-
summary: 'List solution installations for an organization.',
|
|
210
|
-
arguments: [],
|
|
211
|
-
flags: SOLUTION_COMMON_FLAGS,
|
|
212
|
-
jsonOutput: { mode: 'single' },
|
|
213
|
-
},
|
|
214
|
-
{
|
|
215
|
-
name: 'install',
|
|
216
|
-
summary: 'Install one managed solution profile.',
|
|
217
|
-
arguments: [{ ...REQUIRED_ARGUMENT, name: 'profile', summary: 'Solution profile key.' }],
|
|
218
|
-
flags: [...SOLUTION_COMMON_FLAGS, APP, ENV, RETENTION],
|
|
219
|
-
jsonOutput: { mode: 'single' },
|
|
220
|
-
},
|
|
221
|
-
{
|
|
222
|
-
name: 'inspect',
|
|
223
|
-
summary: 'Inspect one solution installation.',
|
|
224
|
-
arguments: [INSTALLATION_ARGUMENT],
|
|
225
|
-
flags: SOLUTION_COMMON_FLAGS,
|
|
226
|
-
jsonOutput: { mode: 'single' },
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
name: 'grants',
|
|
230
|
-
summary: 'Manage installation-scoped business grants.',
|
|
231
|
-
arguments: [],
|
|
232
|
-
flags: [],
|
|
233
|
-
subcommands: [
|
|
234
|
-
{
|
|
235
|
-
name: 'list',
|
|
236
|
-
summary: 'List live business grants.',
|
|
237
|
-
arguments: [INSTALLATION_ARGUMENT],
|
|
238
|
-
flags: SOLUTION_COMMON_FLAGS,
|
|
239
|
-
jsonOutput: { mode: 'single' },
|
|
240
|
-
},
|
|
241
|
-
{
|
|
242
|
-
name: 'set',
|
|
243
|
-
summary: 'Create or update a business grant.',
|
|
244
|
-
arguments: [INSTALLATION_ARGUMENT],
|
|
245
|
-
flags: [
|
|
246
|
-
...SOLUTION_COMMON_FLAGS,
|
|
247
|
-
{
|
|
248
|
-
...OPTIONAL_FLAG,
|
|
249
|
-
name: 'subject',
|
|
250
|
-
type: 'string',
|
|
251
|
-
value: '<subject>',
|
|
252
|
-
summary: 'Canonical business-user subject.',
|
|
253
|
-
required: true,
|
|
254
|
-
},
|
|
255
|
-
{
|
|
256
|
-
...OPTIONAL_FLAG,
|
|
257
|
-
name: 'email',
|
|
258
|
-
type: 'string',
|
|
259
|
-
value: '<email>',
|
|
260
|
-
summary: 'Business-user email address.',
|
|
261
|
-
required: true,
|
|
262
|
-
},
|
|
263
|
-
{
|
|
264
|
-
...OPTIONAL_FLAG,
|
|
265
|
-
name: 'role',
|
|
266
|
-
type: 'string',
|
|
267
|
-
value: '<role>',
|
|
268
|
-
summary: 'Business role.',
|
|
269
|
-
required: true,
|
|
270
|
-
constraints: { choices: ['administrator', 'manager', 'operator', 'viewer'] },
|
|
271
|
-
},
|
|
272
|
-
{
|
|
273
|
-
...OPTIONAL_FLAG,
|
|
274
|
-
name: 'expected-revision',
|
|
275
|
-
type: 'integer',
|
|
276
|
-
value: '<revision>',
|
|
277
|
-
summary: 'Expected current grant revision; 0 for a new grant.',
|
|
278
|
-
},
|
|
279
|
-
],
|
|
280
|
-
jsonOutput: { mode: 'single' },
|
|
281
|
-
},
|
|
282
|
-
{
|
|
283
|
-
name: 'revoke',
|
|
284
|
-
summary: 'Revoke a business grant using optimistic concurrency.',
|
|
285
|
-
arguments: [INSTALLATION_ARGUMENT],
|
|
286
|
-
flags: [
|
|
287
|
-
...SOLUTION_COMMON_FLAGS,
|
|
288
|
-
{
|
|
289
|
-
...OPTIONAL_FLAG,
|
|
290
|
-
name: 'subject',
|
|
291
|
-
type: 'string',
|
|
292
|
-
value: '<subject>',
|
|
293
|
-
summary: 'Canonical business-user subject.',
|
|
294
|
-
required: true,
|
|
295
|
-
},
|
|
296
|
-
{
|
|
297
|
-
...OPTIONAL_FLAG,
|
|
298
|
-
name: 'expected-revision',
|
|
299
|
-
type: 'integer',
|
|
300
|
-
value: '<revision>',
|
|
301
|
-
summary: 'Expected current grant revision.',
|
|
302
|
-
required: true,
|
|
303
|
-
},
|
|
304
|
-
],
|
|
305
|
-
jsonOutput: { mode: 'single' },
|
|
306
|
-
},
|
|
307
|
-
],
|
|
308
|
-
},
|
|
309
|
-
{
|
|
310
|
-
name: 'records',
|
|
311
|
-
summary: 'Operate one installed managed collection.',
|
|
312
|
-
arguments: [],
|
|
313
|
-
flags: [],
|
|
314
|
-
usage: 'solutions records <list|create|get|update|assign|status|note|activity|delete|export> <installation> <collection> [record] [options]',
|
|
315
|
-
subcommands: [
|
|
316
|
-
...[
|
|
317
|
-
'list',
|
|
318
|
-
'create',
|
|
319
|
-
'get',
|
|
320
|
-
'update',
|
|
321
|
-
'assign',
|
|
322
|
-
'status',
|
|
323
|
-
'note',
|
|
324
|
-
'activity',
|
|
325
|
-
'delete',
|
|
326
|
-
'export',
|
|
327
|
-
].map((name) => ({
|
|
328
|
-
name,
|
|
329
|
-
summary: `${name[0]?.toUpperCase()}${name.slice(1)} managed records.`,
|
|
330
|
-
arguments: [
|
|
331
|
-
INSTALLATION_ARGUMENT,
|
|
332
|
-
COLLECTION_ARGUMENT,
|
|
333
|
-
...(name === 'list' || name === 'create' || name === 'export'
|
|
334
|
-
? []
|
|
335
|
-
: [RECORD_ARGUMENT]),
|
|
336
|
-
],
|
|
337
|
-
flags: RECORD_FLAGS,
|
|
338
|
-
jsonOutput: { mode: 'single' },
|
|
339
|
-
})),
|
|
340
|
-
],
|
|
341
|
-
},
|
|
342
|
-
],
|
|
343
|
-
},
|
|
344
103
|
{
|
|
345
104
|
name: 'apps',
|
|
346
105
|
section: 'resources',
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the CLI's declarative command catalog (`catalog.ts`). Pure type definitions — no
|
|
3
|
+
* runtime code — so this module has zero import cost for anything that only needs the shapes
|
|
4
|
+
* (including the doc/skill generator scripts, which read the sibling data modules directly).
|
|
5
|
+
*/
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=catalog-types.js.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export * from './catalog-data-account.js';
|
|
2
|
+
export * from './catalog-data-assistant.js';
|
|
3
|
+
export * from './catalog-data-auth-discovery.js';
|
|
4
|
+
export * from './catalog-data-billing.js';
|
|
5
|
+
export * from './catalog-data-bootstrap-authoring.js';
|
|
6
|
+
export * from './catalog-data-bootstrap-pre-auth.js';
|
|
7
|
+
export * from './catalog-data-config.js';
|
|
8
|
+
export * from './catalog-data-core.js';
|
|
9
|
+
export * from './catalog-data-distributions.js';
|
|
10
|
+
export * from './catalog-data-hosted-deployment.js';
|
|
11
|
+
export * from './catalog-data-hosted-governance.js';
|
|
12
|
+
export * from './catalog-data-hosted-observability.js';
|
|
13
|
+
export * from './catalog-data-local-authoring.js';
|
|
14
|
+
export * from './catalog-data-platform-auth.js';
|
|
15
|
+
export * from './catalog-data-policy.js';
|
|
16
|
+
export * from './catalog-data-solutions.js';
|
|
17
|
+
export * from './catalog-data-tenant-admin.js';
|
|
18
|
+
export * from './catalog-data-tenant-resources.js';
|
|
19
|
+
export * from './catalog-types.js';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { artifactConfig } from './config.js';
|
|
2
2
|
import { ARTIFACT_SCHEMA_VERSION, } from './types.js';
|
|
3
|
-
export function assembleRuntimeArtifact({ manifest, options, runtimeBranding, runtimeShell, artifactAmbientContext, state, artifactTools, allResources, artifactPrompts, packagedAssets, requirements, declared, customerEndpoints, knowledge, managedCollections, }) {
|
|
3
|
+
export function assembleRuntimeArtifact({ manifest, options, runtimeBranding, runtimeShell, artifactAmbientContext, state, artifactTools, allResources, artifactPrompts, packagedAssets, requirements, declared, customerEndpoints, knowledge, managedCollections, variables, }) {
|
|
4
4
|
// 4. Assemble the artifact. `resources`/`prompts` and their capability lists are emitted only when
|
|
5
5
|
// present, keeping a tools-only artifact byte-identical to before this slice.
|
|
6
6
|
const capabilities = {
|
|
@@ -40,6 +40,7 @@ export function assembleRuntimeArtifact({ manifest, options, runtimeBranding, ru
|
|
|
40
40
|
: {}),
|
|
41
41
|
...(manifest.server.auth !== undefined ? { auth: manifest.server.auth } : {}),
|
|
42
42
|
...(knowledge !== undefined && knowledge.length > 0 ? { knowledge } : {}),
|
|
43
|
+
...(variables !== undefined && variables.length > 0 ? { variables } : {}),
|
|
43
44
|
...(managedCollections !== undefined && managedCollections.length > 0
|
|
44
45
|
? { managedCollections }
|
|
45
46
|
: {}),
|
|
@@ -5,7 +5,9 @@ import { requiresToolConfirmation } from './consent.js';
|
|
|
5
5
|
/** Resolve connector references and emit catalog-dependent artifact surfaces. */
|
|
6
6
|
export function emitCatalogArtifactSurfaces({ manifest, catalog, structuralAmbientContext, structuralTools, structuralResources, structuralPrompts, toolUiMetaByName, errors, }) {
|
|
7
7
|
const declared = manifest.connectors ?? {};
|
|
8
|
-
const usedAliases = new Set(
|
|
8
|
+
const usedAliases = new Set(manifest.manifestVersion === '2'
|
|
9
|
+
? (manifest.server.collections ?? []).flatMap((collection) => collection.source === undefined ? [] : [collection.source.connector])
|
|
10
|
+
: []);
|
|
9
11
|
const customerRouting = catalog === undefined ? undefined : new CustomerRoutingCollector(manifest.server.auth, errors);
|
|
10
12
|
const artifactAmbientContext = emitAmbientContext(structuralAmbientContext, catalog, declared, usedAliases, errors, customerRouting);
|
|
11
13
|
const artifactTools = structuralTools.map((s) => {
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export function artifactConfig(manifest, tools, resources, prompts, connectorBindings, ambientFulfilment) {
|
|
2
2
|
const variables = new Set();
|
|
3
|
+
if (manifest.manifestVersion === '2')
|
|
4
|
+
for (const declaration of manifest.server.variables ?? [])
|
|
5
|
+
variables.add(declaration.name);
|
|
3
6
|
collectVariablesFromManagedOrigins(manifest, variables);
|
|
4
7
|
for (const tool of tools)
|
|
5
8
|
collectVariablesFromFulfilment(tool.fulfilment, variables);
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { CapabilityRequirementName } from '@noodle-borg/capabilities';
|
|
2
2
|
import type { CompiledKnowledgeComponent } from '@noodle-borg/knowledge/portable';
|
|
3
|
+
import type { ArtifactVariableDeclaration } from '../business-variables.js';
|
|
3
4
|
import type { CustomerEndpointPolicy } from '../customer-endpoint.js';
|
|
5
|
+
import type { ManagedCollectionControls } from '../managed-collection-controls.js';
|
|
4
6
|
import type { CondNode, ExprNode } from '../manifest/expression.js';
|
|
5
7
|
import type { Manifest } from '../manifest/schema.js';
|
|
6
8
|
import type { OperationRef } from './operation-ref.js';
|
|
@@ -165,13 +167,25 @@ export interface ArtifactServerContext {
|
|
|
165
167
|
readonly fulfilment: ArtifactFulfilment;
|
|
166
168
|
};
|
|
167
169
|
}
|
|
168
|
-
export interface ArtifactManagedCollection {
|
|
170
|
+
export interface ArtifactManagedCollection extends ManagedCollectionControls {
|
|
169
171
|
readonly name: string;
|
|
170
172
|
readonly title: string;
|
|
171
173
|
readonly description: string;
|
|
172
174
|
readonly schemaVersion: number;
|
|
173
175
|
readonly schemaDigest: string;
|
|
174
176
|
readonly recordSchema: JsonSchema;
|
|
177
|
+
readonly behavior?: {
|
|
178
|
+
readonly kind: 'request';
|
|
179
|
+
};
|
|
180
|
+
readonly source: {
|
|
181
|
+
readonly authority: 'native';
|
|
182
|
+
} | {
|
|
183
|
+
readonly authority: 'external';
|
|
184
|
+
readonly connectorAlias: string;
|
|
185
|
+
readonly connectorId: string;
|
|
186
|
+
readonly connectorVersion: string;
|
|
187
|
+
readonly scan: OperationRef;
|
|
188
|
+
};
|
|
175
189
|
}
|
|
176
190
|
interface ArtifactOidcAuth {
|
|
177
191
|
readonly kind?: 'oidc' | undefined;
|
|
@@ -237,6 +251,8 @@ export interface ArtifactServer {
|
|
|
237
251
|
readonly knowledge?: readonly CompiledKnowledgeComponent[];
|
|
238
252
|
/** Compiled managed-record schema intent; lifecycle and operator state remain outside artifacts. */
|
|
239
253
|
readonly managedCollections?: readonly ArtifactManagedCollection[];
|
|
254
|
+
/** Typed reusable managed-variable declarations, never live operator values. */
|
|
255
|
+
readonly variables?: readonly ArtifactVariableDeclaration[];
|
|
240
256
|
readonly assistant?: {
|
|
241
257
|
readonly model: NonNullable<Manifest['server']['assistant']>['model'];
|
|
242
258
|
readonly allowedOrigins: readonly string[];
|
|
@@ -53,8 +53,13 @@
|
|
|
53
53
|
*
|
|
54
54
|
* `0.17.0` (Managed collection declaration): additive — Core v2 reusable managed-record schema intent
|
|
55
55
|
* may be projected under `server.managedCollections`; lifecycle and operator state remain separate.
|
|
56
|
+
*
|
|
57
|
+
* `0.18.0` (Collection authority): additive — every newly compiled managed collection identifies native
|
|
58
|
+
* authority or exact resolved read-only connector operations for an external replica.
|
|
59
|
+
*
|
|
60
|
+
* `0.19.0` (Business settings): optional typed managed-variable declarations and definition digests.
|
|
56
61
|
*/
|
|
57
|
-
export declare const ARTIFACT_SCHEMA_VERSION = "0.
|
|
62
|
+
export declare const ARTIFACT_SCHEMA_VERSION = "0.19.0";
|
|
58
63
|
/** mimeType for an MCP Apps UI resource (SEP-1865). Widgets are served under this profile. */
|
|
59
64
|
export declare const MCP_APP_MIME_TYPE = "text/html;profile=mcp-app";
|
|
60
65
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -53,8 +53,13 @@
|
|
|
53
53
|
*
|
|
54
54
|
* `0.17.0` (Managed collection declaration): additive — Core v2 reusable managed-record schema intent
|
|
55
55
|
* may be projected under `server.managedCollections`; lifecycle and operator state remain separate.
|
|
56
|
+
*
|
|
57
|
+
* `0.18.0` (Collection authority): additive — every newly compiled managed collection identifies native
|
|
58
|
+
* authority or exact resolved read-only connector operations for an external replica.
|
|
59
|
+
*
|
|
60
|
+
* `0.19.0` (Business settings): optional typed managed-variable declarations and definition digests.
|
|
56
61
|
*/
|
|
57
|
-
export const ARTIFACT_SCHEMA_VERSION = '0.
|
|
62
|
+
export const ARTIFACT_SCHEMA_VERSION = '0.19.0';
|
|
58
63
|
/** mimeType for an MCP Apps UI resource (SEP-1865). Widgets are served under this profile. */
|
|
59
64
|
export const MCP_APP_MIME_TYPE = 'text/html;profile=mcp-app';
|
|
60
65
|
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { CompileError } from './errors.js';
|
|
3
|
+
export declare const MAX_VARIABLE_DECLARATIONS = 64;
|
|
4
|
+
export declare const MAX_VARIABLE_SCHEMA_BYTES: number;
|
|
5
|
+
export declare const MAX_VARIABLE_VALUE_BYTES: number;
|
|
6
|
+
export declare const MAX_VARIABLE_SCHEMA_DEPTH = 6;
|
|
7
|
+
export declare const variableDeclarationManifestSchema: z.ZodObject<{
|
|
8
|
+
name: z.ZodString;
|
|
9
|
+
schemaVersion: z.ZodLiteral<1>;
|
|
10
|
+
valueSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
11
|
+
default: z.ZodOptional<z.ZodUnknown>;
|
|
12
|
+
portal: z.ZodOptional<z.ZodObject<{
|
|
13
|
+
label: z.ZodString;
|
|
14
|
+
help: z.ZodOptional<z.ZodString>;
|
|
15
|
+
group: z.ZodOptional<z.ZodString>;
|
|
16
|
+
}, z.core.$strict>>;
|
|
17
|
+
requiredFor: z.ZodArray<z.ZodString>;
|
|
18
|
+
}, z.core.$strict>;
|
|
19
|
+
export type VariableDeclarationManifest = z.infer<typeof variableDeclarationManifestSchema>;
|
|
20
|
+
export interface ArtifactVariableDeclaration extends VariableDeclarationManifest {
|
|
21
|
+
/** Hash of the complete declaration; metadata, default and capability changes are revision-visible. */
|
|
22
|
+
readonly schemaDigest: string;
|
|
23
|
+
}
|
|
24
|
+
/** The one declaration validator used by TypeScript authoring, compilation and activation. */
|
|
25
|
+
export declare function validateVariableDeclaration(declaration: VariableDeclarationManifest): readonly CompileError[];
|
|
26
|
+
export declare function compileVariableDeclarations(declarations: readonly VariableDeclarationManifest[], toolNames: readonly string[], errors: CompileError[]): readonly ArtifactVariableDeclaration[];
|
|
27
|
+
//# sourceMappingURL=business-variables.d.ts.map
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { canonicalJson, sensitiveContentFinding, sha256Canonical, validateJsonSchema, } from '@noodle-borg/app-package';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
export const MAX_VARIABLE_DECLARATIONS = 64;
|
|
4
|
+
export const MAX_VARIABLE_SCHEMA_BYTES = 16 * 1024;
|
|
5
|
+
export const MAX_VARIABLE_VALUE_BYTES = 16 * 1024;
|
|
6
|
+
export const MAX_VARIABLE_SCHEMA_DEPTH = 6;
|
|
7
|
+
const plainText = (max) => z
|
|
8
|
+
.string()
|
|
9
|
+
.trim()
|
|
10
|
+
.min(1)
|
|
11
|
+
.max(max)
|
|
12
|
+
.regex(/^[^<>\p{Cc}]+$/u, 'must be plain text without markup or control characters');
|
|
13
|
+
export const variableDeclarationManifestSchema = z
|
|
14
|
+
.object({
|
|
15
|
+
name: z
|
|
16
|
+
.string()
|
|
17
|
+
.min(1)
|
|
18
|
+
.max(128)
|
|
19
|
+
.regex(/^(?!(?:__proto__|prototype|constructor)$)[A-Za-z0-9_]+$/),
|
|
20
|
+
schemaVersion: z.literal(1),
|
|
21
|
+
valueSchema: z.record(z.string(), z.unknown()),
|
|
22
|
+
default: z.unknown().optional(),
|
|
23
|
+
portal: z
|
|
24
|
+
.object({
|
|
25
|
+
label: plainText(120),
|
|
26
|
+
help: plainText(1000).optional(),
|
|
27
|
+
group: plainText(80).optional(),
|
|
28
|
+
})
|
|
29
|
+
.strict()
|
|
30
|
+
.optional(),
|
|
31
|
+
requiredFor: z.array(z.string().regex(/^[a-z][a-z0-9_]*$/)).max(128),
|
|
32
|
+
})
|
|
33
|
+
.strict();
|
|
34
|
+
/** The one declaration validator used by TypeScript authoring, compilation and activation. */
|
|
35
|
+
export function validateVariableDeclaration(declaration) {
|
|
36
|
+
const errors = [];
|
|
37
|
+
const parsed = variableDeclarationManifestSchema.safeParse(declaration);
|
|
38
|
+
if (!parsed.success)
|
|
39
|
+
return [
|
|
40
|
+
{
|
|
41
|
+
code: 'invalid_variable_declaration',
|
|
42
|
+
path: '',
|
|
43
|
+
message: 'invalid variable declaration metadata or version',
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
const fail = (path, message) => errors.push({ code: 'invalid_variable_declaration', path, message });
|
|
47
|
+
if (!isBoundedJson(declaration.valueSchema, MAX_VARIABLE_SCHEMA_BYTES)) {
|
|
48
|
+
fail('valueSchema', 'value schema must be bounded JSON');
|
|
49
|
+
return errors;
|
|
50
|
+
}
|
|
51
|
+
validateValueSchema(declaration.valueSchema, 'valueSchema', 0, { fields: 0 }, fail);
|
|
52
|
+
if (errors.length > 0)
|
|
53
|
+
return errors;
|
|
54
|
+
const schemaIssues = validateJsonSchema(declaration.valueSchema, undefined);
|
|
55
|
+
if (schemaIssues.some((issue) => issue.keyword === 'schema'))
|
|
56
|
+
fail('valueSchema', 'invalid JSON Schema');
|
|
57
|
+
if (Object.hasOwn(declaration, 'default')) {
|
|
58
|
+
if (!isBoundedJson(declaration.default, MAX_VARIABLE_VALUE_BYTES))
|
|
59
|
+
fail('default', 'default must be bounded JSON');
|
|
60
|
+
else if (validateJsonSchema(declaration.valueSchema, declaration.default).length > 0)
|
|
61
|
+
fail('default', 'default does not match the declared value schema');
|
|
62
|
+
}
|
|
63
|
+
if (sensitiveContentFinding({ portal: declaration.portal, default: declaration.default }) !==
|
|
64
|
+
undefined) {
|
|
65
|
+
fail('', 'variable metadata/default must not contain credentials');
|
|
66
|
+
}
|
|
67
|
+
return errors;
|
|
68
|
+
}
|
|
69
|
+
export function compileVariableDeclarations(declarations, toolNames, errors) {
|
|
70
|
+
const seen = new Map();
|
|
71
|
+
for (const [index, declaration] of declarations.entries()) {
|
|
72
|
+
const path = `server.variables.${index}`;
|
|
73
|
+
const issues = validateVariableDeclaration(declaration);
|
|
74
|
+
if (issues.length > 0) {
|
|
75
|
+
errors.push(...issues.map((issue) => ({ ...issue, path: issue.path ? `${path}.${issue.path}` : path })));
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
const normalized = {
|
|
79
|
+
...declaration,
|
|
80
|
+
requiredFor: [...new Set(declaration.requiredFor)].sort(),
|
|
81
|
+
};
|
|
82
|
+
const schemaDigest = sha256Canonical(normalized);
|
|
83
|
+
const previous = seen.get(declaration.name);
|
|
84
|
+
if (previous !== undefined && previous.schemaDigest !== schemaDigest) {
|
|
85
|
+
errors.push({
|
|
86
|
+
code: 'invalid_variable_declaration',
|
|
87
|
+
path,
|
|
88
|
+
message: 'conflicting duplicate variable declaration',
|
|
89
|
+
});
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
for (const name of normalized.requiredFor) {
|
|
93
|
+
if (!toolNames.includes(name))
|
|
94
|
+
errors.push({
|
|
95
|
+
code: 'invalid_variable_declaration',
|
|
96
|
+
path: `${path}.requiredFor`,
|
|
97
|
+
message: `required capability "${name}" is not a declared tool`,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
seen.set(declaration.name, { ...normalized, schemaDigest });
|
|
101
|
+
}
|
|
102
|
+
return [...seen.values()].sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));
|
|
103
|
+
}
|
|
104
|
+
const commonKeys = ['$schema', 'type', 'title', 'description'];
|
|
105
|
+
const typeKeys = {
|
|
106
|
+
string: ['minLength', 'maxLength', 'enum', 'format'],
|
|
107
|
+
boolean: [],
|
|
108
|
+
number: ['minimum', 'maximum', 'exclusiveMinimum', 'exclusiveMaximum', 'multipleOf'],
|
|
109
|
+
integer: ['minimum', 'maximum', 'exclusiveMinimum', 'exclusiveMaximum', 'multipleOf'],
|
|
110
|
+
array: ['items', 'minItems', 'maxItems', 'uniqueItems'],
|
|
111
|
+
object: ['properties', 'required', 'additionalProperties'],
|
|
112
|
+
};
|
|
113
|
+
function validateValueSchema(schema, path, depth, count, fail) {
|
|
114
|
+
if (depth > MAX_VARIABLE_SCHEMA_DEPTH) {
|
|
115
|
+
fail(path, 'value schema exceeds maximum nesting depth');
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
const type = schema.type;
|
|
119
|
+
if (typeof type !== 'string' || !Object.hasOwn(typeKeys, type)) {
|
|
120
|
+
fail(path, 'unsupported setting value type');
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const allowed = new Set([...commonKeys, ...(typeKeys[type] ?? [])]);
|
|
124
|
+
for (const key of Object.keys(schema))
|
|
125
|
+
if (!allowed.has(key))
|
|
126
|
+
fail(`${path}.${key}`, 'unsupported setting schema keyword');
|
|
127
|
+
for (const key of ['title', 'description']) {
|
|
128
|
+
if (schema[key] !== undefined && !plainText(1000).safeParse(schema[key]).success)
|
|
129
|
+
fail(`${path}.${key}`, 'schema metadata must be bounded plain text');
|
|
130
|
+
}
|
|
131
|
+
if (schema.$schema !== undefined &&
|
|
132
|
+
schema.$schema !== 'https://json-schema.org/draft/2020-12/schema')
|
|
133
|
+
fail(`${path}.$schema`, 'unsupported JSON Schema dialect');
|
|
134
|
+
if (type === 'string')
|
|
135
|
+
validateStringSchema(schema, path, fail);
|
|
136
|
+
if (type === 'number' || type === 'integer') {
|
|
137
|
+
if (!finiteBound(schema.minimum ?? schema.exclusiveMinimum) ||
|
|
138
|
+
!finiteBound(schema.maximum ?? schema.exclusiveMaximum))
|
|
139
|
+
fail(path, 'numbers require finite minimum and maximum');
|
|
140
|
+
const lower = schema.minimum ?? schema.exclusiveMinimum;
|
|
141
|
+
const upper = schema.maximum ?? schema.exclusiveMaximum;
|
|
142
|
+
if (typeof lower === 'number' &&
|
|
143
|
+
typeof upper === 'number' &&
|
|
144
|
+
(lower > upper ||
|
|
145
|
+
(lower === upper &&
|
|
146
|
+
(schema.exclusiveMinimum !== undefined || schema.exclusiveMaximum !== undefined))))
|
|
147
|
+
fail(path, 'numeric bounds must permit at least one value');
|
|
148
|
+
}
|
|
149
|
+
if (type === 'array') {
|
|
150
|
+
if (!boundedCount(schema.maxItems, 100))
|
|
151
|
+
fail(`${path}.maxItems`, 'arrays require maxItems between 0 and 100');
|
|
152
|
+
if (typeof schema.minItems === 'number' &&
|
|
153
|
+
typeof schema.maxItems === 'number' &&
|
|
154
|
+
schema.minItems > schema.maxItems)
|
|
155
|
+
fail(path, 'array bounds must permit at least one value');
|
|
156
|
+
if (!isObject(schema.items))
|
|
157
|
+
fail(`${path}.items`, 'arrays require one item schema');
|
|
158
|
+
else
|
|
159
|
+
validateValueSchema(schema.items, `${path}.items`, depth + 1, count, fail);
|
|
160
|
+
}
|
|
161
|
+
if (type === 'object') {
|
|
162
|
+
if (schema.additionalProperties !== false)
|
|
163
|
+
fail(`${path}.additionalProperties`, 'objects must be closed');
|
|
164
|
+
if (!isObject(schema.properties)) {
|
|
165
|
+
fail(`${path}.properties`, 'objects require explicit properties');
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
for (const [key, child] of Object.entries(schema.properties)) {
|
|
169
|
+
count.fields++;
|
|
170
|
+
if (count.fields > 128) {
|
|
171
|
+
fail(path, 'value schema exceeds 128 total properties');
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key) ||
|
|
175
|
+
['__proto__', 'prototype', 'constructor'].includes(key))
|
|
176
|
+
fail(`${path}.properties`, 'unsafe property name');
|
|
177
|
+
if (!isObject(child))
|
|
178
|
+
fail(`${path}.properties.${key}`, 'property requires a value schema');
|
|
179
|
+
else
|
|
180
|
+
validateValueSchema(child, `${path}.properties.${key}`, depth + 1, count, fail);
|
|
181
|
+
}
|
|
182
|
+
if (schema.required !== undefined &&
|
|
183
|
+
(!Array.isArray(schema.required) ||
|
|
184
|
+
schema.required.some((key) => typeof key !== 'string' || !Object.hasOwn(schema.properties, key))))
|
|
185
|
+
fail(`${path}.required`, 'required must name declared properties');
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
function validateStringSchema(schema, path, fail) {
|
|
189
|
+
if (schema.enum !== undefined) {
|
|
190
|
+
if (!Array.isArray(schema.enum) ||
|
|
191
|
+
schema.enum.length === 0 ||
|
|
192
|
+
schema.enum.length > 100 ||
|
|
193
|
+
schema.enum.some((item) => typeof item !== 'string' || item.length > 200 || /[\p{Cc}<>]/u.test(item)))
|
|
194
|
+
fail(`${path}.enum`, 'enums require 1 to 100 bounded plain string choices');
|
|
195
|
+
}
|
|
196
|
+
else if (!boundedCount(schema.maxLength, 4096))
|
|
197
|
+
fail(`${path}.maxLength`, 'strings require maxLength between 0 and 4096');
|
|
198
|
+
if (schema.format !== undefined &&
|
|
199
|
+
!['email', 'date', 'date-time', 'time', 'uuid'].includes(String(schema.format)))
|
|
200
|
+
fail(`${path}.format`, 'unsupported setting string format');
|
|
201
|
+
}
|
|
202
|
+
function isObject(value) {
|
|
203
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
204
|
+
}
|
|
205
|
+
function boundedCount(value, max) {
|
|
206
|
+
return typeof value === 'number' && Number.isInteger(value) && value >= 0 && value <= max;
|
|
207
|
+
}
|
|
208
|
+
function finiteBound(value) {
|
|
209
|
+
return (typeof value === 'number' &&
|
|
210
|
+
Number.isFinite(value) &&
|
|
211
|
+
Math.abs(value) <= Number.MAX_SAFE_INTEGER);
|
|
212
|
+
}
|
|
213
|
+
function isBoundedJson(value, maxBytes) {
|
|
214
|
+
try {
|
|
215
|
+
const rejectUndefined = (node, depth) => {
|
|
216
|
+
if (node === undefined || depth > 16)
|
|
217
|
+
return false;
|
|
218
|
+
if (Array.isArray(node))
|
|
219
|
+
return Array.from(node).every((child) => rejectUndefined(child, depth + 1));
|
|
220
|
+
if (node !== null && typeof node === 'object')
|
|
221
|
+
return Object.values(node).every((child) => rejectUndefined(child, depth + 1));
|
|
222
|
+
return true;
|
|
223
|
+
};
|
|
224
|
+
return rejectUndefined(value, 0) && Buffer.byteLength(canonicalJson(value)) <= maxBytes;
|
|
225
|
+
}
|
|
226
|
+
catch {
|
|
227
|
+
return false;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=business-variables.js.map
|