@noodleseed/one 0.152.0 → 0.153.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/agent-product-skill-state.d.ts +2 -2
- package/dist/agent-product-skill-state.d.ts.map +1 -1
- package/dist/agent-product-skill-state.js.map +1 -1
- package/dist/agent-skills-state.d.ts +2 -2
- package/dist/agent-skills-state.d.ts.map +1 -1
- package/dist/agent-skills-state.js +1 -1
- package/dist/agent-skills-state.js.map +1 -1
- package/dist/agents.d.ts +2 -3
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js.map +1 -1
- package/dist/checklist.d.ts +2 -1
- package/dist/checklist.d.ts.map +1 -1
- package/dist/commands/apps-ops.d.ts +0 -4
- package/dist/commands/apps-ops.d.ts.map +1 -1
- package/dist/commands/apps-ops.js +3 -3
- package/dist/commands/apps-ops.js.map +1 -1
- package/dist/commands/auth-ops.d.ts +0 -14
- package/dist/commands/auth-ops.d.ts.map +1 -1
- package/dist/commands/auth-ops.js +1 -1
- package/dist/commands/auth-ops.js.map +1 -1
- package/dist/commands/author-loop.d.ts +0 -2
- package/dist/commands/author-loop.d.ts.map +1 -1
- package/dist/commands/author-loop.js +2 -2
- package/dist/commands/author-loop.js.map +1 -1
- package/dist/commands/catalog.d.ts +1 -7
- package/dist/commands/catalog.d.ts.map +1 -1
- package/dist/commands/catalog.js +3 -3
- package/dist/commands/catalog.js.map +1 -1
- package/dist/commands/config-values.d.ts +1 -47
- package/dist/commands/config-values.d.ts.map +1 -1
- package/dist/commands/config-values.js +11 -11
- package/dist/commands/config-values.js.map +1 -1
- package/dist/commands/connect-oauth.d.ts +0 -1
- package/dist/commands/connect-oauth.d.ts.map +1 -1
- package/dist/commands/connect-oauth.js +1 -1
- package/dist/commands/connect-oauth.js.map +1 -1
- package/dist/commands/connect.d.ts +0 -1
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +1 -1
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/customer-auth-smoke.d.ts +2 -1
- package/dist/commands/customer-auth-smoke.d.ts.map +1 -1
- package/dist/commands/customer-auth-smoke.js +3 -2
- package/dist/commands/customer-auth-smoke.js.map +1 -1
- package/dist/commands/deploy-ops.d.ts +0 -9
- package/dist/commands/deploy-ops.d.ts.map +1 -1
- package/dist/commands/deploy-ops.js +3 -4
- package/dist/commands/deploy-ops.js.map +1 -1
- package/dist/commands/deploy-resume.d.ts +0 -1
- package/dist/commands/deploy-resume.d.ts.map +1 -1
- package/dist/commands/deploy-resume.js +1 -1
- package/dist/commands/deploy-resume.js.map +1 -1
- package/dist/commands/deploy-version-resolution.d.ts +0 -2
- package/dist/commands/deploy-version-resolution.d.ts.map +1 -1
- package/dist/commands/deploy-version-resolution.js +1 -1
- package/dist/commands/deploy-version-resolution.js.map +1 -1
- package/dist/commands/deployments-ops.d.ts +0 -2
- package/dist/commands/deployments-ops.d.ts.map +1 -1
- package/dist/commands/deployments-ops.js +2 -2
- package/dist/commands/deployments-ops.js.map +1 -1
- package/dist/commands/envs-ops.d.ts +0 -3
- package/dist/commands/envs-ops.d.ts.map +1 -1
- package/dist/commands/envs-ops.js +3 -3
- package/dist/commands/envs-ops.js.map +1 -1
- package/dist/commands/feedback-ops.d.ts +0 -8
- package/dist/commands/feedback-ops.d.ts.map +1 -1
- package/dist/commands/feedback-ops.js +1 -1
- package/dist/commands/feedback-ops.js.map +1 -1
- package/dist/commands/github-ops.d.ts +0 -2
- package/dist/commands/github-ops.d.ts.map +1 -1
- package/dist/commands/github-ops.js +2 -2
- package/dist/commands/github-ops.js.map +1 -1
- package/dist/commands/mcp-apps.d.ts +0 -1
- package/dist/commands/mcp-apps.d.ts.map +1 -1
- package/dist/commands/org-admin.d.ts +0 -17
- package/dist/commands/org-admin.d.ts.map +1 -1
- package/dist/commands/org-admin.js +1 -2
- package/dist/commands/org-admin.js.map +1 -1
- package/dist/commands/output.d.ts +3 -12
- package/dist/commands/output.d.ts.map +1 -1
- package/dist/commands/output.js.map +1 -1
- package/dist/commands/platform-account-reset-files.d.ts +0 -3
- package/dist/commands/platform-account-reset-files.d.ts.map +1 -1
- package/dist/commands/platform-account-reset-files.js +1 -1
- package/dist/commands/platform-account-reset-files.js.map +1 -1
- package/dist/commands/platform-auth-rollout-acceleration-files.d.ts +0 -3
- package/dist/commands/platform-auth-rollout-acceleration-files.d.ts.map +1 -1
- package/dist/commands/platform-auth-rollout-acceleration-files.js +1 -1
- package/dist/commands/platform-auth-rollout-acceleration-files.js.map +1 -1
- package/dist/commands/project-setup.d.ts +0 -1
- package/dist/commands/project-setup.d.ts.map +1 -1
- package/dist/commands/project-setup.js +1 -1
- package/dist/commands/project-setup.js.map +1 -1
- package/dist/commands/resource-shared.d.ts +0 -6
- package/dist/commands/resource-shared.d.ts.map +1 -1
- package/dist/commands/resource-shared.js +1 -1
- package/dist/commands/resource-shared.js.map +1 -1
- package/dist/commands/session.d.ts +3 -13
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +2 -2
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/target-picker.d.ts +0 -2
- package/dist/commands/target-picker.d.ts.map +1 -1
- package/dist/commands/target-picker.js +1 -1
- package/dist/commands/target-picker.js.map +1 -1
- package/dist/commands/update-ops.d.ts +0 -8
- package/dist/commands/update-ops.d.ts.map +1 -1
- package/dist/commands/update-ops.js +1 -1
- package/dist/commands/update-ops.js.map +1 -1
- package/dist/control-plane.d.ts +1 -1
- package/dist/control-plane.d.ts.map +1 -1
- package/dist/control-plane.js.map +1 -1
- package/dist/deploy.d.ts +0 -12
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +2 -2
- package/dist/deploy.js.map +1 -1
- package/dist/dev.d.ts.map +1 -1
- package/dist/dev.js +2 -3
- package/dist/dev.js.map +1 -1
- package/dist/devtools-auth-session.d.ts +0 -1
- package/dist/devtools-auth-session.d.ts.map +1 -1
- package/dist/devtools-auth-session.js.map +1 -1
- package/dist/devtools-chat.d.ts +1 -1
- package/dist/devtools-chat.d.ts.map +1 -1
- package/dist/devtools-chat.js.map +1 -1
- package/dist/devtools-delegated-exchange-state.d.ts +1 -1
- package/dist/devtools-delegated-exchange-state.d.ts.map +1 -1
- package/dist/devtools-design-contract.d.ts +3 -3
- package/dist/devtools-design-contract.d.ts.map +1 -1
- package/dist/devtools-design-contract.js +1 -1
- package/dist/devtools-design-contract.js.map +1 -1
- package/dist/devtools-preview.d.ts +1 -1
- package/dist/devtools-preview.d.ts.map +1 -1
- package/dist/devtools-rpc-forwarder.d.ts +2 -1
- package/dist/devtools-rpc-forwarder.d.ts.map +1 -1
- package/dist/devtools-rpc-forwarder.js +11 -12
- package/dist/devtools-rpc-forwarder.js.map +1 -1
- package/dist/gradient.d.ts +0 -3
- package/dist/gradient.d.ts.map +1 -1
- package/dist/gradient.js +1 -3
- package/dist/gradient.js.map +1 -1
- package/dist/local-compile.d.ts +2 -1
- package/dist/local-compile.d.ts.map +1 -1
- package/dist/local-target.d.ts +2 -1
- package/dist/local-target.d.ts.map +1 -1
- package/dist/node-version.d.ts +0 -2
- package/dist/node-version.d.ts.map +1 -1
- package/dist/node-version.js +2 -2
- package/dist/node-version.js.map +1 -1
- package/dist/plugin-mode/build-readiness-tools.d.ts +5 -4
- package/dist/plugin-mode/build-readiness-tools.d.ts.map +1 -1
- package/dist/plugin-mode/plugin-operation-contract.d.ts +0 -35
- package/dist/plugin-mode/plugin-operation-contract.d.ts.map +1 -1
- package/dist/plugin-mode/plugin-operation-contract.js +1 -1
- package/dist/plugin-mode/plugin-operation-contract.js.map +1 -1
- package/dist/project-entrypoint.d.ts +2 -1
- package/dist/project-entrypoint.d.ts.map +1 -1
- package/dist/project.d.ts +3 -3
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js.map +1 -1
- package/dist/skills-update.d.ts +0 -1
- package/dist/skills-update.d.ts.map +1 -1
- package/dist/skills-update.js +1 -1
- package/dist/skills-update.js.map +1 -1
- package/dist/status.d.ts +0 -9
- package/dist/status.d.ts.map +1 -1
- package/dist/status.js +0 -16
- package/dist/status.js.map +1 -1
- package/dist/update-binary.d.ts +3 -2
- package/dist/update-binary.d.ts.map +1 -1
- package/dist/update-check.d.ts +0 -3
- package/dist/update-check.d.ts.map +1 -1
- package/dist/update-check.js +1 -1
- package/dist/update-check.js.map +1 -1
- package/dist/validate.d.ts +2 -1
- package/dist/validate.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +5 -3
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-bootstrap-skill.d.ts +0 -2
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-bootstrap-skill.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/plugin-bundle.d.ts +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +5 -5
- package/node_modules/@noodle-borg/agent-kit/dist/skill-router.d.ts +2 -3
- package/node_modules/@noodle-borg/agent-kit/dist/skill-router.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/agent-packaging/dist/host-package-assets.js +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-configuration.js +2 -1
- package/node_modules/@noodle-borg/assistant-gateway/package.json +1 -1
- package/node_modules/@noodle-borg/authoring/dist/assistant.d.ts +2 -1
- package/node_modules/@noodle-borg/authoring/dist/connections.d.ts +0 -2
- package/node_modules/@noodle-borg/authoring/dist/connections.js +1 -1
- package/node_modules/@noodle-borg/authoring/dist/load-authored.js +2 -2
- package/node_modules/@noodle-borg/authoring/dist/react/bridge.d.ts +3 -2
- package/node_modules/@noodle-borg/authoring/dist/react/form-components.d.ts +0 -8
- package/node_modules/@noodle-borg/authoring/dist/react/form-components.js +2 -4
- package/node_modules/@noodle-borg/authoring/dist/react/hooks.d.ts +2 -2
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +11 -11
- package/node_modules/@noodle-borg/compiler/dist/compile.d.ts +0 -1
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-structural.d.ts +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/expression.d.ts +14 -14
- package/node_modules/@noodle-borg/compiler/dist/manifest/naming.d.ts +0 -2
- package/node_modules/@noodle-borg/compiler/dist/manifest/naming.js +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/website-projection.d.ts +2 -1
- package/node_modules/@noodle-borg/compiler/package.json +1 -4
- package/node_modules/@noodle-borg/connector-defs/dist/credential-profiles.js +1 -1
- package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts +0 -6
- package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts +2 -2
- package/node_modules/@noodle-borg/connector-http/dist/http-response.d.ts +2 -1
- package/node_modules/@noodle-borg/connector-http/dist/mcp/config.js +1 -1
- package/node_modules/@noodle-borg/control-plane/dist/deploy-auth.d.ts +0 -1
- package/node_modules/@noodle-borg/developer-mcp/dist/widgets/shared.js +1 -1
- package/node_modules/@noodle-borg/knowledge-operations/dist/crawl-lifecycle.d.ts +2 -1
- package/node_modules/@noodle-borg/knowledge-operations/package.json +1 -2
- package/node_modules/@noodle-borg/observability/dist/request-events-postgres.js +3 -1
- package/node_modules/@noodle-borg/plugin-distribution/dist/openai-submission-render.js +1 -1
- package/node_modules/@noodle-borg/protocol/dist/index.d.ts +1 -1
- package/node_modules/@noodle-borg/protocol/dist/index.js +1 -1
- package/node_modules/@noodle-borg/protocol/dist/interaction-envelope.js +2 -2
- package/node_modules/@noodle-borg/protocol/dist/jsonrpc.d.ts +1 -1
- package/node_modules/@noodle-borg/protocol/dist/jsonrpc.js +1 -1
- package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts +4 -6
- package/node_modules/@noodle-borg/protocol/dist/mapping.js +1 -1
- package/node_modules/@noodle-borg/protocol/dist/observation.d.ts +0 -9
- package/node_modules/@noodle-borg/protocol/dist/observation.js +1 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/handler.d.ts +2 -1
- package/node_modules/@noodle-borg/protocol/dist/v2/versions.d.ts +4 -0
- package/node_modules/@noodle-borg/protocol/dist/v2/versions.js +2 -0
- package/node_modules/@noodle-borg/protocol/dist/widget/domain-projection.d.ts +2 -1
- package/node_modules/@noodle-borg/protocol/package.json +0 -1
- package/node_modules/@noodle-borg/runtime/dist/broker/types.d.ts +2 -2
- package/node_modules/@noodle-borg/service/dist/app-package-snapshot.d.ts +1 -2
- package/node_modules/@noodle-borg/service/dist/app-package-snapshot.js +1 -2
- package/node_modules/@noodle-borg/service/dist/archive-preflight.js +1 -1
- package/node_modules/@noodle-borg/service/dist/assets.js +1 -1
- package/node_modules/@noodle-borg/service/dist/assistant-bindings.js +2 -2
- package/node_modules/@noodle-borg/service/dist/client-compatibility.js +1 -2
- package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.js +2 -2
- package/node_modules/@noodle-borg/service/dist/external-credential-exchange.d.ts +0 -1
- package/node_modules/@noodle-borg/service/dist/external-credential-exchange.js +1 -1
- package/node_modules/@noodle-borg/service/dist/http-util.js +1 -72
- package/node_modules/@noodle-borg/service/dist/managed-config-expressions.d.ts +0 -1
- package/node_modules/@noodle-borg/service/dist/managed-config-expressions.js +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/customer-bridge.js +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.js +2 -2
- package/node_modules/@noodle-borg/service/dist/observability-runtime.js +2 -3
- package/node_modules/@noodle-borg/service/dist/registry-targets.js +3 -3
- package/node_modules/@noodle-borg/service/dist/routes/access-mode.js +0 -4
- package/node_modules/@noodle-borg/service/dist/routes/access.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/alerts.js +3 -2
- package/node_modules/@noodle-borg/service/dist/routes/analytics.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/apps.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/archive.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/asset-control-plane.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-appearance.js +2 -1
- 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-elevation.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-embeds.js +2 -1
- 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 +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-public-configuration.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-public-session.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-route-http.js +4 -3
- package/node_modules/@noodle-borg/service/dist/routes/assistant-sandbox.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-suggestions.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-usage.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/auth-discovery.js +2 -2
- package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/config-values-paths.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/config-values.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +2 -3
- package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployment-activation-response.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployment-lock.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployment-package.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/deployments.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/environment-production.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/envs.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/google-workload-identity.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/intent-capture.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/logs.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/openai-apps-challenge.js +1 -2
- package/node_modules/@noodle-borg/service/dist/routes/org-admin.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/org-domains.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/org-mcp-subdomain.js +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/paths.js +0 -39
- package/node_modules/@noodle-borg/service/dist/routes/protected-resource-metadata.js +3 -3
- package/node_modules/@noodle-borg/service/dist/routes/rollback.js +2 -1
- package/node_modules/@noodle-borg/service/dist/routes/service-principals-dispatch.js +2 -3
- package/node_modules/@noodle-borg/service/dist/routes/service-principals.js +1 -1
- package/node_modules/@noodle-borg/service/dist/service-config.d.ts +3 -2
- package/node_modules/@noodle-borg/service/dist/service-config.js +1 -1
- package/node_modules/@noodle-borg/service/dist/service.js +2 -2
- package/node_modules/@noodle-borg/service/dist/store/alert-rules.js +1 -1
- package/node_modules/@noodle-borg/service/dist/store/audit.js +1 -1
- package/node_modules/@noodle-borg/service/dist/store/records.js +1 -1
- package/node_modules/@noodle-borg/service/dist/store/validate.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/store/validate.js +1 -1
- package/node_modules/@noodle-borg/service/dist/store.d.ts +2 -2
- package/node_modules/@noodle-borg/service/dist/store.js +1 -1
- package/node_modules/@noodle-borg/service/package.json +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/client-identity.js +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +1 -2
- package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.d.ts +51 -0
- package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.js +7 -7
- package/node_modules/@noodle-borg/transport-http/dist/index.d.ts +4 -2
- package/node_modules/@noodle-borg/transport-http/dist/index.js +3 -1
- package/node_modules/@noodle-borg/transport-http/dist/request-body.d.ts +29 -0
- package/node_modules/@noodle-borg/transport-http/dist/request-body.js +64 -0
- package/node_modules/@noodle-borg/transport-http/dist/responses.d.ts +28 -0
- package/node_modules/@noodle-borg/transport-http/dist/routing.d.ts +2 -4
- package/node_modules/@noodle-borg/transport-http/dist/routing.js +3 -3
- package/node_modules/@noodle-borg/transport-http/dist/serve-request.js +2 -13
- package/node_modules/@noodle-borg/transport-http/package.json +0 -1
- package/node_modules/@noodleseed/assistant/package.json +2 -1
- package/package.json +2 -2
- package/dist/commands/catalog-data-billing.d.ts +0 -3
- package/dist/commands/catalog-data-billing.d.ts.map +0 -1
- package/dist/commands/catalog-data-billing.js +0 -3
- package/dist/commands/catalog-data-billing.js.map +0 -1
- package/dist/commands/catalog-data-policy.d.ts +0 -3
- package/dist/commands/catalog-data-policy.d.ts.map +0 -1
- package/dist/commands/catalog-data-policy.js +0 -3
- package/dist/commands/catalog-data-policy.js.map +0 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/catalog-emission.d.ts +0 -50
- package/node_modules/@noodle-borg/compiler/dist/context-compile.d.ts +0 -17
- package/node_modules/@noodle-borg/transport-http/dist/module-http.d.ts +0 -13
- package/node_modules/@noodle-borg/transport-http/dist/module-http.js +0 -28
|
@@ -207,7 +207,9 @@ function rowToEvent(row) {
|
|
|
207
207
|
...(row.deployment_id !== null ? { deploymentId: row.deployment_id } : {}),
|
|
208
208
|
...(row.server_version !== null ? { serverVersion: row.server_version } : {}),
|
|
209
209
|
...(row.sdk_protocol_version !== null ? { sdkProtocolVersion: row.sdk_protocol_version } : {}),
|
|
210
|
-
...(row.protocol_era !== null
|
|
210
|
+
...(row.protocol_era !== null
|
|
211
|
+
? { protocolEra: row.protocol_era }
|
|
212
|
+
: {}),
|
|
211
213
|
...(row.session_id !== null ? { sessionId: row.session_id } : {}),
|
|
212
214
|
...(row.client_name !== null ? { clientName: row.client_name } : {}),
|
|
213
215
|
...(row.client_version !== null ? { clientVersion: row.client_version } : {}),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
2
|
import { deterministicZip, skillSlug, } from '@noodle-borg/agent-packaging';
|
|
3
|
-
|
|
3
|
+
const OPENAI_SUBMISSION_SCHEMA = 'https://developers.openai.com/apps-sdk/schemas/chatgpt-app-submission.v1.json';
|
|
4
4
|
export function renderOpenAiSubmissionArtifacts(input, options, markdown) {
|
|
5
5
|
const slug = skillSlug(input.appPackage.app.name);
|
|
6
6
|
const skillArchivePath = `submission/${slug}-skill.zip`;
|
|
@@ -9,6 +9,6 @@ export { handleStatelessHttp } from './stateless.js';
|
|
|
9
9
|
export { evaluateToolAuthorization, filterAuthorizedTools, TOOL_AUTHORIZATION_DENIED, type ToolAuthorizationCaller, type ToolAuthorizationDecision, type ToolAuthorizationRuleClass, toolAuthorizationRuleClass, toolAuthorizationRuleFingerprint, } from './tool-authorization.js';
|
|
10
10
|
export { toolRequiresConfirmation } from './tool-confirmation.js';
|
|
11
11
|
export { createDualEraMcpHandler, createPlatformDualEraMcpHandler, } from './v2/handler.js';
|
|
12
|
-
export { type McpProtocolEra, MODERN_MCP_PROTOCOL_VERSION, SERVED_MCP_PROTOCOL_VERSIONS, type ServedMcpProtocolVersion, } from './v2/versions.js';
|
|
12
|
+
export { LEGACY_MCP_PROTOCOL_VERSION, type McpProtocolEra, type McpProtocolMode, MODERN_MCP_PROTOCOL_VERSION, SERVED_MCP_PROTOCOL_VERSIONS, type ServedMcpProtocolVersion, } from './v2/versions.js';
|
|
13
13
|
export { injectWidgetBridge } from './widget/inject.js';
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -8,6 +8,6 @@ export { handleStatelessHttp } from './stateless.js';
|
|
|
8
8
|
export { evaluateToolAuthorization, filterAuthorizedTools, TOOL_AUTHORIZATION_DENIED, toolAuthorizationRuleClass, toolAuthorizationRuleFingerprint, } from './tool-authorization.js';
|
|
9
9
|
export { toolRequiresConfirmation } from './tool-confirmation.js';
|
|
10
10
|
export { createDualEraMcpHandler, createPlatformDualEraMcpHandler, } from './v2/handler.js';
|
|
11
|
-
export { MODERN_MCP_PROTOCOL_VERSION, SERVED_MCP_PROTOCOL_VERSIONS, } from './v2/versions.js';
|
|
11
|
+
export { LEGACY_MCP_PROTOCOL_VERSION, MODERN_MCP_PROTOCOL_VERSION, SERVED_MCP_PROTOCOL_VERSIONS, } from './v2/versions.js';
|
|
12
12
|
export { injectWidgetBridge } from './widget/inject.js';
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -32,7 +32,7 @@ export function toolUsesPortableInteractionArgument(tool) {
|
|
|
32
32
|
typeof properties === 'object' &&
|
|
33
33
|
Object.hasOwn(properties, '__noodleInteraction'));
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
function interactionResponsesFromMeta(value) {
|
|
36
36
|
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
37
37
|
return {};
|
|
38
38
|
const noodle = value.noodle;
|
|
@@ -43,7 +43,7 @@ export function interactionResponsesFromMeta(value) {
|
|
|
43
43
|
return {};
|
|
44
44
|
return parseElicitationResponses(interaction.responses);
|
|
45
45
|
}
|
|
46
|
-
|
|
46
|
+
function parseElicitationResponses(value) {
|
|
47
47
|
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
48
48
|
return {};
|
|
49
49
|
const responses = {};
|
|
@@ -16,5 +16,5 @@ export interface JsonRpcErrorObject {
|
|
|
16
16
|
readonly message: string;
|
|
17
17
|
readonly data?: unknown;
|
|
18
18
|
}
|
|
19
|
-
export { LEGACY_MCP_ERROR, RESOURCE_NOT_FOUND,
|
|
19
|
+
export { LEGACY_MCP_ERROR, RESOURCE_NOT_FOUND, } from './error-codes.js';
|
|
20
20
|
//# sourceMappingURL=jsonrpc.d.ts.map
|
|
@@ -11,5 +11,5 @@ export const JSON_RPC = {
|
|
|
11
11
|
INVALID_PARAMS: -32602,
|
|
12
12
|
INTERNAL_ERROR: -32603,
|
|
13
13
|
};
|
|
14
|
-
export { LEGACY_MCP_ERROR, RESOURCE_NOT_FOUND,
|
|
14
|
+
export { LEGACY_MCP_ERROR, RESOURCE_NOT_FOUND, } from './error-codes.js';
|
|
15
15
|
//# sourceMappingURL=jsonrpc.js.map
|
|
@@ -54,8 +54,6 @@ export declare function mapToolsList(artifact: RuntimeArtifact, caller?: ToolAut
|
|
|
54
54
|
readonly knowledgeTools?: boolean;
|
|
55
55
|
readonly intentCapture?: boolean;
|
|
56
56
|
}): ToolsListResult;
|
|
57
|
-
/** Generated `search_<name>` descriptors (ADR 0202 D4); listed only when the port is live. */
|
|
58
|
-
export declare function knowledgeToolDescriptors(artifact: RuntimeArtifact, intentCapture?: boolean): ToolsListResult['tools'];
|
|
59
57
|
/**
|
|
60
58
|
* Map a successful tool output to a `tools/call` result. Structured (object) output is returned as
|
|
61
59
|
* `structuredContent` and also serialized into a text block (the spec asks for both, for clients
|
|
@@ -63,7 +61,7 @@ export declare function knowledgeToolDescriptors(artifact: RuntimeArtifact, inte
|
|
|
63
61
|
*/
|
|
64
62
|
export declare function mapToolOutput(output: unknown): ToolsCallResult;
|
|
65
63
|
export declare function redactWidgetLinkedOutput(output: unknown): unknown;
|
|
66
|
-
|
|
64
|
+
interface ResourceDescriptor {
|
|
67
65
|
readonly uri: string;
|
|
68
66
|
readonly name: string;
|
|
69
67
|
readonly title?: string;
|
|
@@ -75,7 +73,7 @@ export interface ResourceDescriptor {
|
|
|
75
73
|
export interface ResourcesListResult {
|
|
76
74
|
readonly resources: readonly ResourceDescriptor[];
|
|
77
75
|
}
|
|
78
|
-
|
|
76
|
+
interface ResourceTemplateDescriptor {
|
|
79
77
|
readonly uriTemplate: string;
|
|
80
78
|
readonly name: string;
|
|
81
79
|
readonly title?: string;
|
|
@@ -108,12 +106,12 @@ export declare function mapResourceTemplatesList(artifact: RuntimeArtifact): Res
|
|
|
108
106
|
* anything else → a JSON-serialized text content.
|
|
109
107
|
*/
|
|
110
108
|
export declare function mapResourceContents(uri: string, mimeType: string | undefined, output: unknown, meta?: Readonly<Record<string, unknown>>, widgetDomain?: WidgetDomainProjection): ReadResourceResult;
|
|
111
|
-
|
|
109
|
+
interface PromptArgumentDescriptor {
|
|
112
110
|
readonly name: string;
|
|
113
111
|
readonly description?: string;
|
|
114
112
|
readonly required?: boolean;
|
|
115
113
|
}
|
|
116
|
-
|
|
114
|
+
interface PromptDescriptor {
|
|
117
115
|
readonly name: string;
|
|
118
116
|
readonly title?: string;
|
|
119
117
|
readonly description?: string;
|
|
@@ -74,7 +74,7 @@ export function mapToolsList(artifact, caller, options) {
|
|
|
74
74
|
};
|
|
75
75
|
}
|
|
76
76
|
/** Generated `search_<name>` descriptors (ADR 0202 D4); listed only when the port is live. */
|
|
77
|
-
|
|
77
|
+
function knowledgeToolDescriptors(artifact, intentCapture = false) {
|
|
78
78
|
return (artifact.server.knowledge ?? []).map((component) => ({
|
|
79
79
|
name: component.generatedTool.name,
|
|
80
80
|
description: component.generatedTool.description,
|
|
@@ -19,15 +19,6 @@ export interface ProtocolObservation {
|
|
|
19
19
|
/** Safe connector failure attribution projected from the execution error (#1309); scalars only. */
|
|
20
20
|
readonly connector?: ConnectorFailureAttribution;
|
|
21
21
|
}
|
|
22
|
-
/**
|
|
23
|
-
* The analytics `errorKind` for an execution error: the stable code, refined with the allowlisted
|
|
24
|
-
* `reason` when one exists (`connector_error.timeout`). Analytics-only — the wire's structured
|
|
25
|
-
* reasons are gated separately (and more narrowly) in `execution-error-mapping.ts`.
|
|
26
|
-
*/
|
|
27
|
-
export declare function executionErrorKind(error: {
|
|
28
|
-
readonly code: string;
|
|
29
|
-
readonly reason?: string;
|
|
30
|
-
}): string;
|
|
31
22
|
/** The observation slice carried by an execution error, ready to spread into an observe call. */
|
|
32
23
|
export declare function executionErrorObservation(error: {
|
|
33
24
|
readonly code: string;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* `reason` when one exists (`connector_error.timeout`). Analytics-only — the wire's structured
|
|
4
4
|
* reasons are gated separately (and more narrowly) in `execution-error-mapping.ts`.
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
function executionErrorKind(error) {
|
|
7
7
|
return error.reason === undefined ? error.code : `${error.code}.${error.reason}`;
|
|
8
8
|
}
|
|
9
9
|
/** The observation slice carried by an execution error, ready to spread into an observe call. */
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { type McpHttpHandler, type McpServerFactory } from '@modelcontextprotocol/server';
|
|
2
2
|
import type { ProtocolRequestContext, ServedArtifact } from '../sdk-server.js';
|
|
3
|
+
import { type McpProtocolMode } from './versions.js';
|
|
3
4
|
/**
|
|
4
5
|
* The single Noodle MCP entry: SDK-owned era classification/dispatch with a narrow Noodle response seam.
|
|
5
6
|
*/
|
|
6
7
|
export declare function createDualEraMcpHandler(target: ServedArtifact, context?: ProtocolRequestContext): McpHttpHandler;
|
|
7
8
|
/** Platform-wide SDK v2 handler used by artifact and first-party MCP surfaces alike. */
|
|
8
9
|
export declare function createPlatformDualEraMcpHandler(factory: McpServerFactory, platformOptions?: {
|
|
9
|
-
readonly protocolMode?:
|
|
10
|
+
readonly protocolMode?: McpProtocolMode;
|
|
10
11
|
}): McpHttpHandler;
|
|
11
12
|
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -3,4 +3,8 @@ export declare const SERVED_MCP_PROTOCOL_VERSIONS: readonly ["2026-07-28", "2025
|
|
|
3
3
|
export type ServedMcpProtocolVersion = (typeof SERVED_MCP_PROTOCOL_VERSIONS)[number];
|
|
4
4
|
export type McpProtocolEra = 'legacy' | 'modern';
|
|
5
5
|
export declare const MODERN_MCP_PROTOCOL_VERSION: "2026-07-28";
|
|
6
|
+
/** The newest revision served through the legacy (v1 SDK) path. */
|
|
7
|
+
export declare const LEGACY_MCP_PROTOCOL_VERSION: "2025-11-25";
|
|
8
|
+
/** Origin-wide rollout gate: serve both eras, or answer modern requests with method-not-found. */
|
|
9
|
+
export type McpProtocolMode = 'dual' | 'legacy-only';
|
|
6
10
|
//# sourceMappingURL=versions.d.ts.map
|
|
@@ -8,4 +8,6 @@ export const SERVED_MCP_PROTOCOL_VERSIONS = [
|
|
|
8
8
|
'2024-10-07',
|
|
9
9
|
];
|
|
10
10
|
export const MODERN_MCP_PROTOCOL_VERSION = SERVED_MCP_PROTOCOL_VERSIONS[0];
|
|
11
|
+
/** The newest revision served through the legacy (v1 SDK) path. */
|
|
12
|
+
export const LEGACY_MCP_PROTOCOL_VERSION = SERVED_MCP_PROTOCOL_VERSIONS[1];
|
|
11
13
|
//# sourceMappingURL=versions.js.map
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
type WidgetHostKind = 'claude' | 'generic';
|
|
2
2
|
export interface WidgetDomainProjection {
|
|
3
3
|
readonly host: WidgetHostKind;
|
|
4
4
|
readonly mcpServerUrl?: string;
|
|
5
5
|
}
|
|
6
6
|
export declare function claudeWidgetDomain(mcpServerUrl: string): string | undefined;
|
|
7
7
|
export declare function projectWidgetResourceMeta(meta: Readonly<Record<string, unknown>>, projection?: WidgetDomainProjection): Readonly<Record<string, unknown>>;
|
|
8
|
+
export {};
|
|
8
9
|
//# sourceMappingURL=domain-projection.d.ts.map
|
|
@@ -24,7 +24,6 @@
|
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@noodle-borg/app-package": "0.0.0",
|
|
26
26
|
"@noodle-borg/uri-template": "0.0.0",
|
|
27
|
-
"@modelcontextprotocol/core": "2.0.0",
|
|
28
27
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
29
28
|
"@modelcontextprotocol/server": "2.0.0",
|
|
30
29
|
"@noodle-borg/compiler": "0.0.0",
|
|
@@ -34,14 +34,14 @@ export declare function credentialUnavailableErrorSnapshot(value: unknown): Cred
|
|
|
34
34
|
* to business backends (docs/SPEC.md "Auth And Identity").
|
|
35
35
|
*/
|
|
36
36
|
export type DownstreamCredential = BearerDownstreamCredential | CookieDownstreamCredential;
|
|
37
|
-
|
|
37
|
+
interface BearerDownstreamCredential {
|
|
38
38
|
readonly kind?: 'bearer';
|
|
39
39
|
/** Opaque secret material the connector presents to its backing system. */
|
|
40
40
|
readonly token: string;
|
|
41
41
|
/** Optional scope marker, for the broker's own bookkeeping. */
|
|
42
42
|
readonly scope?: string;
|
|
43
43
|
}
|
|
44
|
-
|
|
44
|
+
interface CookieDownstreamCredential {
|
|
45
45
|
readonly kind: 'cookie';
|
|
46
46
|
/** Cookie header value scoped by the broker to the connector's allowed downstream origin. */
|
|
47
47
|
readonly cookie: string;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { type ProductSkillPackageInput, type RenderedProductSkillBundleV1 } from '@noodle-borg/agent-kit';
|
|
2
|
-
import { type AppPackageArtifactV1, type AppPackageSnapshotV1
|
|
2
|
+
import { type AppPackageArtifactV1, type AppPackageSnapshotV1 } from '@noodle-borg/app-package';
|
|
3
3
|
import type { DeployError } from './registry-types.js';
|
|
4
4
|
import type { DeployRecord } from './store.js';
|
|
5
5
|
export type { AppPackageSnapshotV1 };
|
|
6
|
-
export { appPackageSnapshotV1Schema };
|
|
7
6
|
export type AppPackageRenderer = (input: ProductSkillPackageInput) => RenderedProductSkillBundleV1;
|
|
8
7
|
export declare class AppPackageSnapshotError extends Error {
|
|
9
8
|
readonly deployError: DeployError;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ProductSkillRenderError, renderProductSkillBundle, validateRenderedProductSkillFiles, } from '@noodle-borg/agent-kit';
|
|
2
|
-
import {
|
|
3
|
-
export { appPackageSnapshotV1Schema };
|
|
2
|
+
import { createAppPackageSnapshotV1, parseAppPackageSnapshotV1, } from '@noodle-borg/app-package';
|
|
4
3
|
export class AppPackageSnapshotError extends Error {
|
|
5
4
|
deployError;
|
|
6
5
|
constructor(deployError) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createHash, randomBytes } from 'node:crypto';
|
|
2
2
|
import { readFile } from 'node:fs/promises';
|
|
3
|
-
import { sendJson } from '
|
|
3
|
+
import { sendJson } from '@noodle-borg/transport-http';
|
|
4
4
|
export { AssetPlanError, } from '@noodle-borg/module';
|
|
5
5
|
export class InMemoryAssetStore {
|
|
6
6
|
#objects = new Map();
|
|
@@ -2,7 +2,7 @@ import { serverAuthVariableBindings } from './managed-config-expressions.js';
|
|
|
2
2
|
import { missingSecretErrors, missingVariableErrors } from './registry-helpers.js';
|
|
3
3
|
import { serverAuthSecretBindings } from './server-auth-bindings.js';
|
|
4
4
|
const VARIABLE = /\$\{env\.([A-Za-z0-9_]+)\}/g;
|
|
5
|
-
|
|
5
|
+
function assistantSecretBindings(assistant) {
|
|
6
6
|
return assistant?.model.kind === 'openai-compatible'
|
|
7
7
|
? [
|
|
8
8
|
{
|
|
@@ -14,7 +14,7 @@ export function assistantSecretBindings(assistant) {
|
|
|
14
14
|
]
|
|
15
15
|
: [];
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
function assistantVariableBindings(assistant) {
|
|
18
18
|
if (!assistant)
|
|
19
19
|
return [];
|
|
20
20
|
if (assistant.model.kind !== 'openai-compatible')
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { applySecurityHeaders } from '@noodle-borg/transport-http';
|
|
1
|
+
import { applySecurityHeaders, sendJson } from '@noodle-borg/transport-http';
|
|
2
2
|
import { cliCompatibilityError } from './build-info.js';
|
|
3
|
-
import { sendJson } from './http-util.js';
|
|
4
3
|
export function rejectIncompatibleCli(req, res, buildInfo, tls) {
|
|
5
4
|
const error = cliCompatibilityError(buildInfo, req.headers['x-noodle-cli-version']);
|
|
6
5
|
if (!error)
|
|
@@ -2,9 +2,9 @@ import { createHash, randomUUID } from 'node:crypto';
|
|
|
2
2
|
import { bearerToken } from '@noodle-borg/control-plane/portable';
|
|
3
3
|
import { createDeveloperMcpServer, DEVELOPER_MCP_PATH, developerMcpContextSchema, environmentNameSchema, tenantSlugSchema, } from '@noodle-borg/developer-mcp';
|
|
4
4
|
import { createPlatformDualEraMcpHandler } from '@noodle-borg/protocol';
|
|
5
|
-
import { applySecurityHeaders, enforceHttps, toWebRequest, writeWebResponse, } from '@noodle-borg/transport-http';
|
|
5
|
+
import { applySecurityHeaders, enforceHttps, readJsonBody, sendJson, toWebRequest, writeWebResponse, } from '@noodle-borg/transport-http';
|
|
6
6
|
import { activeDeveloperGrantForIdentity } from '../auth/developer-grant-guard.js';
|
|
7
|
-
import { baseFromRequest, normalizeServiceBase
|
|
7
|
+
import { baseFromRequest, normalizeServiceBase } from '../http-util.js';
|
|
8
8
|
import { ServiceDeveloperControlPlane } from './control-plane-adapter.js';
|
|
9
9
|
export { DEVELOPER_MCP_PATH };
|
|
10
10
|
const DEVELOPER_MCP_SCOPES = ['cloud:read'];
|
|
@@ -77,6 +77,5 @@ export declare function exchangeExternalCredential(input: {
|
|
|
77
77
|
readonly config: ExternalCredentialProviderConfig;
|
|
78
78
|
readonly nowMs: number;
|
|
79
79
|
}): Promise<ExternalCredentialExchangeResponse>;
|
|
80
|
-
export declare function validateExternalCredentialProviderEndpoint(config: ExternalCredentialProviderConfig): URL;
|
|
81
80
|
export {};
|
|
82
81
|
//# sourceMappingURL=external-credential-exchange.d.ts.map
|
|
@@ -111,7 +111,7 @@ export async function exchangeExternalCredential(input) {
|
|
|
111
111
|
}
|
|
112
112
|
return externalCredentialExchangeResponseSchema.parse(await readBoundedJson(response, EXTERNAL_CREDENTIAL_EXCHANGE_MAX_RESPONSE_BYTES));
|
|
113
113
|
}
|
|
114
|
-
|
|
114
|
+
function validateExternalCredentialProviderEndpoint(config) {
|
|
115
115
|
if (!isVisibleBoundedUrlText(config.endpoint) || !isVisibleBoundedUrlText(config.allowedOrigin)) {
|
|
116
116
|
throw new Error('external credential provider endpoint is not allowed');
|
|
117
117
|
}
|
|
@@ -1,75 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { effectiveProto } from '@noodle-borg/transport-http';
|
|
3
|
-
export async function readBody(req, max) {
|
|
4
|
-
const body = await readBodyBuffer(req, max);
|
|
5
|
-
return body.ok ? { ok: true, text: body.buffer.toString('utf8') } : body;
|
|
6
|
-
}
|
|
7
|
-
async function readBodyBuffer(req, max) {
|
|
8
|
-
const chunks = [];
|
|
9
|
-
let size = 0;
|
|
10
|
-
for await (const chunk of req) {
|
|
11
|
-
const buf = chunk;
|
|
12
|
-
size += buf.length;
|
|
13
|
-
if (size > max)
|
|
14
|
-
return { ok: false, receivedBytes: size, maxBytes: max };
|
|
15
|
-
chunks.push(buf);
|
|
16
|
-
}
|
|
17
|
-
return { ok: true, buffer: Buffer.concat(chunks) };
|
|
18
|
-
}
|
|
19
|
-
/** Read exact request bytes for signature-verified provider webhooks. */
|
|
20
|
-
export function readRawBody(req, max) {
|
|
21
|
-
return readBodyBuffer(req, max);
|
|
22
|
-
}
|
|
23
|
-
export async function readDeployBody(req, max) {
|
|
24
|
-
const encoding = (req.headers['content-encoding'] ?? 'identity').trim().toLowerCase();
|
|
25
|
-
if (encoding !== 'identity' && encoding !== 'gzip') {
|
|
26
|
-
return { ok: false, status: 415, error: `unsupported content encoding "${encoding}"` };
|
|
27
|
-
}
|
|
28
|
-
const body = await readBodyBuffer(req, max);
|
|
29
|
-
if (!body.ok) {
|
|
30
|
-
return {
|
|
31
|
-
ok: false,
|
|
32
|
-
status: 413,
|
|
33
|
-
error: `${encoding === 'gzip' ? 'compressed deploy' : 'deploy'} request exceeds the ${body.maxBytes} byte limit (received at least ${body.receivedBytes} bytes)`,
|
|
34
|
-
receivedBytes: body.receivedBytes,
|
|
35
|
-
maxBytes: body.maxBytes,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
if (encoding === 'identity') {
|
|
39
|
-
return { ok: true, text: body.buffer.toString('utf8'), encoding };
|
|
40
|
-
}
|
|
41
|
-
try {
|
|
42
|
-
const expanded = gunzipSync(body.buffer, { maxOutputLength: max });
|
|
43
|
-
return { ok: true, text: expanded.toString('utf8'), encoding };
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
const code = error instanceof Error && 'code' in error ? String(error.code) : '';
|
|
47
|
-
if (code === 'ERR_BUFFER_TOO_LARGE') {
|
|
48
|
-
return {
|
|
49
|
-
ok: false,
|
|
50
|
-
status: 413,
|
|
51
|
-
error: `expanded deploy request exceeds the ${max} byte limit`,
|
|
52
|
-
maxBytes: max,
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
return { ok: false, status: 400, error: 'invalid gzip deploy request' };
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
export async function readJsonBody(req, max) {
|
|
59
|
-
const body = await readBody(req, max);
|
|
60
|
-
if (!body.ok)
|
|
61
|
-
return { ok: false, status: 413, error: 'request body too large' };
|
|
62
|
-
try {
|
|
63
|
-
return { ok: true, value: JSON.parse(body.text) };
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
return { ok: false, status: 400, error: `invalid JSON: ${error.message}` };
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
export function sendJson(res, status, body) {
|
|
70
|
-
res.writeHead(status, { 'content-type': 'application/json; charset=utf-8' });
|
|
71
|
-
res.end(JSON.stringify(body));
|
|
72
|
-
}
|
|
1
|
+
import { effectiveProto, sendJson, } from '@noodle-borg/transport-http';
|
|
73
2
|
/**
|
|
74
3
|
* Log a thrown route error (redacted to name/message/short-stack — never a body, key, or secret) and
|
|
75
4
|
* answer 500 if the response hasn't already started. The shared catch tail for async route handlers so
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { TenantAuthConfig, TenantBridgeAuthConfig } from './store.js';
|
|
2
|
-
export declare function managedVariableNamesInString(value: string): readonly string[];
|
|
3
2
|
export declare function resolveManagedVariablesInString(value: string, variables: Readonly<Record<string, string>>): string;
|
|
4
3
|
export declare function serverAuthVariableBindings(auth: TenantAuthConfig | undefined): readonly string[];
|
|
5
4
|
export declare function resolveTenantBridgeAuthVariables(auth: TenantBridgeAuthConfig, variables: Readonly<Record<string, string>>): TenantBridgeAuthConfig;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const MANAGED_VARIABLE_RE = /\$\{env\.([A-Za-z0-9_]+)\}/g;
|
|
2
|
-
|
|
2
|
+
function managedVariableNamesInString(value) {
|
|
3
3
|
const names = new Set();
|
|
4
4
|
for (const match of value.matchAll(MANAGED_VARIABLE_RE)) {
|
|
5
5
|
if (match[1] !== undefined)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { renderOAuthPage } from './branding.js';
|
|
2
2
|
const FIREBASE_AUTHORIZE_PATH = '/oauth/customer/firebase/authorize';
|
|
3
3
|
const FIREBASE_CALLBACK_PATH = '/oauth/customer/firebase/callback';
|
|
4
|
-
|
|
4
|
+
const MICROSOFT_CALLBACK_PATH = '/oauth/customer/microsoft/callback';
|
|
5
5
|
const MICROSOFT_REQUIRED_SCOPES = ['openid', 'profile', 'email', 'offline_access'];
|
|
6
6
|
export function bridgeAuthorizeUrl(auth, input) {
|
|
7
7
|
const issuer = trimTrailingSlash(input.issuer);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { capabilitiesForDeveloperResource, isDeveloperCapability, isDeveloperResource, } from '@noodle-borg/developer-mcp';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
const DEVELOPER_GRANT_VERSION = 2;
|
|
4
|
+
const DEVELOPER_GRANT_ACCESS_MODEL = 'live_user';
|
|
5
5
|
export class InMemoryDeveloperGrantStore {
|
|
6
6
|
#records = new Map();
|
|
7
7
|
#now;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { InMemoryIntentCaptureSettingsStore, InMemoryIntentEventStore, InMemoryRequestEventStore, } from '@noodle-borg/observability';
|
|
2
|
-
import { applySecurityHeaders, enforceHttps, } from '@noodle-borg/transport-http';
|
|
3
|
-
import { sendJson } from './http-util.js';
|
|
2
|
+
import { applySecurityHeaders, enforceHttps, sendJson, } from '@noodle-borg/transport-http';
|
|
4
3
|
import { dispatchAnalyticsReads } from './routes/analytics-dispatch.js';
|
|
5
4
|
import { dispatchIntentCaptureRoutes } from './routes/intent-capture-dispatch.js';
|
|
6
5
|
export function createObservabilityStores(options) {
|
|
@@ -11,7 +10,7 @@ export function createObservabilityStores(options) {
|
|
|
11
10
|
new Set(options.intentCapturePreviewOrgs ?? []),
|
|
12
11
|
];
|
|
13
12
|
}
|
|
14
|
-
|
|
13
|
+
async function resolveIntentMode(target, ref, previewOrgs, settings) {
|
|
15
14
|
if (target === undefined)
|
|
16
15
|
return undefined;
|
|
17
16
|
const resolved = ref ??
|
|
@@ -36,7 +36,7 @@ export function servedTargetFor(record, served, customerVerifierFactory) {
|
|
|
36
36
|
: {}),
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
-
|
|
39
|
+
class MissingCustomerAuthError extends Error {
|
|
40
40
|
deploymentId;
|
|
41
41
|
constructor(deploymentId) {
|
|
42
42
|
super('customers access mode requires server.auth');
|
|
@@ -54,7 +54,7 @@ export function tryServedTargetFor(record, served, customerVerifierFactory) {
|
|
|
54
54
|
throw error;
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
|
|
57
|
+
function servedTargetMatchesRecord(target, record) {
|
|
58
58
|
const expectedOwner = record.accessMode === 'owner-only' ? deploymentOwnerSubject(record) : undefined;
|
|
59
59
|
const expectedMembership = record.accessMode === 'org-members' ? record.orgMembershipSources : undefined;
|
|
60
60
|
return (target.deploymentId === record.deploymentId &&
|
|
@@ -98,7 +98,7 @@ function sameStrings(left, right) {
|
|
|
98
98
|
left.length === right.length &&
|
|
99
99
|
left.every((value, index) => value === right[index])));
|
|
100
100
|
}
|
|
101
|
-
|
|
101
|
+
function customerTargetFields(auth, customerVerifierFactory) {
|
|
102
102
|
if (auth.kind === 'bridge') {
|
|
103
103
|
return {
|
|
104
104
|
verifyToken: customerVerifierFactory?.(auth) ?? denyAllCustomerToken,
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import { accessModeSchema } from '@noodle-borg/wire-contracts';
|
|
2
|
-
export function isAccessMode(value) {
|
|
3
|
-
return accessModeSchema.safeParse(value).success;
|
|
4
|
-
}
|
|
5
1
|
export function isIdentityAccessMode(accessMode) {
|
|
6
2
|
return (accessMode === 'owner-only' ||
|
|
7
3
|
accessMode === 'org-members' ||
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { normalizeServerVersion } from '@noodle-borg/module';
|
|
2
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
2
3
|
import { accessUpdateRequestSchema } from '@noodle-borg/wire-contracts';
|
|
3
|
-
import { readJsonBody, sendJson } from '../http-util.js';
|
|
4
4
|
import { deploymentOwnerSubject } from '../registry-helpers.js';
|
|
5
5
|
import { authorizeControlPlane } from './control-plane.js';
|
|
6
6
|
import { canManageMembers } from './org-admin.js';
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
1
2
|
import { AlertRuleResponseSchema, AlertRulesListResponseSchema } from '@noodle-borg/wire-contracts';
|
|
2
3
|
import { buildAlertWebhookPayload, deliverAlertWebhook, validateAlertWebhookUrl, } from '../alert-webhook.js';
|
|
3
|
-
import {
|
|
4
|
+
import { sendForbidden } from '../http-util.js';
|
|
4
5
|
import { ALERT_METRICS, ALERT_WINDOWS_MINUTES, MAX_ALERT_RULES_PER_ENV, } from '../store/alert-rules.js';
|
|
5
6
|
import { sendContract } from './apps.js';
|
|
6
7
|
import { authorizeControlPlane, authorizeTenantControl } from './control-plane.js';
|
|
7
8
|
import { canManageMembers } from './org-admin.js';
|
|
8
9
|
/** Redact a webhook URL to its origin — path/query (where tokens live) never leave the service. */
|
|
9
|
-
|
|
10
|
+
function redactWebhookUrl(url) {
|
|
10
11
|
try {
|
|
11
12
|
return `${new URL(url).origin}/…`;
|
|
12
13
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { aggregateRequestEvents, parseRequestEventQuery } from '@noodle-borg/observability';
|
|
2
|
-
import {
|
|
2
|
+
import { sendJson } from '@noodle-borg/transport-http';
|
|
3
|
+
import { normalizedTimestamps } from '../http-util.js';
|
|
3
4
|
import { authorizeTenantControl, developerGrantRouteAccess } from './control-plane.js';
|
|
4
5
|
/**
|
|
5
6
|
* Tenant analytics read routes (ADR 0121 Stage B): `metrics` (aggregated), `events` (the stream), and
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { sendJson } from '@noodle-borg/transport-http';
|
|
1
2
|
import { AppResponseSchema, AppsListResponseSchema } from '@noodle-borg/wire-contracts';
|
|
2
|
-
import { sendJson } from '../http-util.js';
|
|
3
3
|
import { authorizeTenantControl, developerGrantRouteAccess } from './control-plane.js';
|
|
4
4
|
import { appWithEndpointUrl } from './endpoint-enrichment.js';
|
|
5
5
|
const MAX_APPS_LIMIT = 500;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { sendJson } from '@noodle-borg/transport-http';
|
|
1
2
|
import { CustomerAuthAudienceConflictError } from '../customer-auth-audience-binding.js';
|
|
2
|
-
import { sendForbidden
|
|
3
|
+
import { sendForbidden } from '../http-util.js';
|
|
3
4
|
import { authorizeControlPlane } from './control-plane.js';
|
|
4
5
|
import { respondDeploymentActivationError } from './deployment-activation-response.js';
|
|
5
6
|
import { canManageMembers } from './org-admin.js';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
1
2
|
import { AssetPlanError } from '../assets.js';
|
|
2
|
-
import { baseFromRequest,
|
|
3
|
+
import { baseFromRequest, sendForbidden } from '../http-util.js';
|
|
3
4
|
import { parsePreparedAssets } from './assets.js';
|
|
4
5
|
import { authorizeControlPlane } from './control-plane.js';
|
|
5
6
|
export async function handleAssetPreflight(req, res, options, maxBody, tenant, gate, controlPlane, audit) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { assistantAppearanceOverrideSchema, assistantBrowserConfiguration, resolveAssistantAppearanceConfiguration, } from '@noodle-borg/assistant-gateway/portable';
|
|
2
|
-
import { readJsonBody,
|
|
2
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
3
|
+
import { sendForbidden } from '../http-util.js';
|
|
3
4
|
import { now } from './assistant-route-http.js';
|
|
4
5
|
import { authorizeControlPlane } from './control-plane.js';
|
|
5
6
|
export async function handleAssistantAppearance(req, res, tenant, deps) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { readJsonBody,
|
|
1
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
2
|
+
import { sendForbidden } from '../http-util.js';
|
|
2
3
|
import { now } from './assistant-route-http.js';
|
|
3
4
|
import { authorizeControlPlane } from './control-plane.js';
|
|
4
5
|
export async function handleAssistantClients(req, res, tenant, id, action, deps) {
|
|
@@ -3,7 +3,8 @@ import { probeAssistantModelBoundary } from '@noodle-borg/assistant-gateway/mode
|
|
|
3
3
|
import { assistantCustomerIssuer, completeElevation, publicSurfaceOf, } from '@noodle-borg/assistant-gateway/portable';
|
|
4
4
|
import { guardedFetch } from '@noodle-borg/connector-http';
|
|
5
5
|
import { tenantMcpUrl } from '@noodle-borg/module';
|
|
6
|
-
import { readJsonBody,
|
|
6
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
7
|
+
import { sendForbidden } from '../http-util.js';
|
|
7
8
|
import { resolveAssistantModelBinding } from './assistant-model-binding.js';
|
|
8
9
|
import { now } from './assistant-route-http.js';
|
|
9
10
|
import { authorizeControlPlane } from './control-plane.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { completeElevation, publicSurfaceOf } from '@noodle-borg/assistant-gateway/portable';
|
|
2
2
|
import { anonymousBehavior } from '@noodle-borg/compiler';
|
|
3
3
|
import { claimableStateHandleNames } from '@noodle-borg/runtime';
|
|
4
|
+
import { sendJson } from '@noodle-borg/transport-http';
|
|
4
5
|
import { assistantSessionResponseSchema } from '@noodle-borg/wire-contracts';
|
|
5
|
-
import { sendJson } from '../http-util.js';
|
|
6
6
|
function isMixed(surface) {
|
|
7
7
|
return surface?.mode === 'mixed';
|
|
8
8
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ADMISSION_DEFAULTS, clamp } from '@noodle-borg/admission-limits/portable';
|
|
2
2
|
import { assistantEmbedOperatorView, parsePublicEmbedBudget, publicSurfaceOf, surfaceEnvelope, } from '@noodle-borg/assistant-gateway/portable';
|
|
3
|
-
import { readJsonBody,
|
|
3
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
4
|
+
import { sendForbidden } from '../http-util.js';
|
|
4
5
|
import { now } from './assistant-route-http.js';
|
|
5
6
|
import { authorizeControlPlane } from './control-plane.js';
|
|
6
7
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { assistantInteractionTool, assistantViewAvailableData, auditAssistantInteraction, recoverableAssistantView, } from '@noodle-borg/assistant-gateway/portable';
|
|
2
|
-
import { sendJson } from '
|
|
2
|
+
import { sendJson } from '@noodle-borg/transport-http';
|
|
3
3
|
import { now } from './assistant.js';
|
|
4
4
|
import { assistantInteractionScope } from './assistant-interaction-resolution.js';
|
|
5
5
|
import { endInteractionSse, writeInputRequested, writeInteractionError, writeInteractionResolved, writeInteractionSseHeaders, writeToolCompleted, writeToolProposed, writeViewAvailable, } from './assistant-interaction-stream.js';
|