@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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AssistantInteractionCapacityError, assistantConfirmationReview, assistantConfirmationTransition, assistantInputTransition, assistantInteractionTool, assistantPreparedArgumentReview, assistantPreparedToolContinuation, assistantSafeOutput, assistantToolContinuation, assistantViewAvailableData, auditAssistantInteraction, recoverableAssistantView, withAssistantSessionExecutionAuthority, } from '@noodle-borg/assistant-gateway/portable';
|
|
2
2
|
import { executePreparedTool, executeToolInteractive, resumeTool, resumeToolPreparation, } from '@noodle-borg/runtime';
|
|
3
|
-
import { readJsonBody, sendJson } from '
|
|
3
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
4
4
|
import { applyBrowserCors, authenticateSession, now, } from './assistant.js';
|
|
5
5
|
import { replayOrConflict, writeUnknownOutcome } from './assistant-interaction-replay.js';
|
|
6
6
|
import { parseInteractionResponse, validateInputContent } from './assistant-interaction-request.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { authorizePublicConfiguration, effectiveAssistantBrowserConfiguration, publicEmbedTenant, publicSurfaceOf, } from '@noodle-borg/assistant-gateway/portable';
|
|
2
|
-
import { sendJson } from '
|
|
2
|
+
import { sendJson } from '@noodle-borg/transport-http';
|
|
3
3
|
import { applyBrowserCors } from './assistant-route-http.js';
|
|
4
4
|
/** Browser-safe first paint for a public launcher; never mints a session or spends admission. */
|
|
5
5
|
export async function handlePublicAssistantConfiguration(req, res, embedId, deps) {
|
|
@@ -2,8 +2,8 @@ import { randomBytes } from 'node:crypto';
|
|
|
2
2
|
import { ADMISSION_DEFAULTS, clientAddressBucket } from '@noodle-borg/admission-limits/portable';
|
|
3
3
|
import { effectiveAssistantBrowserConfiguration, mintPublicSession, publicEmbedTenant, publicSurfaceOf, } from '@noodle-borg/assistant-gateway/portable';
|
|
4
4
|
import { assistantSessionUsageRequestEvent, captureAssistantUsage, captureRefusedAssistantSession, } from '@noodle-borg/observability';
|
|
5
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
5
6
|
import { assistantSessionResponseSchema } from '@noodle-borg/wire-contracts';
|
|
6
|
-
import { readJsonBody, sendJson } from '../http-util.js';
|
|
7
7
|
import { applyBrowserCors, assistantSessionEndpoints, now } from './assistant-route-http.js';
|
|
8
8
|
/**
|
|
9
9
|
* The transport half of anonymous session minting. Every decision — which refusal, in which order, and
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bearerToken } from '@noodle-borg/transport-http';
|
|
1
2
|
import { sendForbidden, sendUnauthorized } from '../http-util.js';
|
|
2
3
|
export function handleAssistantPreflight(req, res) {
|
|
3
4
|
const origin = typeof req.headers.origin === 'string' ? req.headers.origin : 'null';
|
|
@@ -11,13 +12,13 @@ export function handleAssistantPreflight(req, res) {
|
|
|
11
12
|
res.end();
|
|
12
13
|
}
|
|
13
14
|
export async function authenticateSession(req, res, deps) {
|
|
14
|
-
const
|
|
15
|
-
if (
|
|
15
|
+
const token = bearerToken(req.headers.authorization);
|
|
16
|
+
if (token === null) {
|
|
16
17
|
applyBrowserCors(req, res);
|
|
17
18
|
sendUnauthorized(res, 'invalid assistant session');
|
|
18
19
|
return undefined;
|
|
19
20
|
}
|
|
20
|
-
const session = await deps.store.getSession(
|
|
21
|
+
const session = await deps.store.getSession(token, now(deps));
|
|
21
22
|
if (!session) {
|
|
22
23
|
applyBrowserCors(req, res);
|
|
23
24
|
sendUnauthorized(res, 'invalid assistant session');
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* `contract/v1/assistant-sandbox-document.html` and to the published client's srcdoc fallback; any
|
|
8
8
|
* relay-protocol change is a coordinated contract event, never a local edit.
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
const ASSISTANT_SANDBOX_DOCUMENT = `<!doctype html><meta charset="utf-8"><style>html,body,iframe{border:0;margin:0;width:100%;height:100%;overflow:hidden}body{background:transparent}</style><script>
|
|
11
11
|
let inner;
|
|
12
12
|
const ready={jsonrpc:'2.0',method:'ui/notifications/sandbox-proxy-ready',params:{}};
|
|
13
13
|
// Re-announce until the host acknowledges with the resource: when this document is hosted
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ADMISSION_DEFAULTS } from '@noodle-borg/admission-limits/portable';
|
|
2
2
|
import { parseAssistantContextPreferences, resolveInvocationContextSnapshot, surfaceEnvelope, withAssistantSessionExecutionAuthority, } from '@noodle-borg/assistant-gateway/portable';
|
|
3
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
3
4
|
import { assistantSuggestionsRequestSchema } from '@noodle-borg/wire-contracts';
|
|
4
|
-
import { readJsonBody, sendJson } from '../http-util.js';
|
|
5
5
|
import { generateInitialAssistantSuggestions } from './assistant-agent.js';
|
|
6
6
|
import { applyBrowserCors, authenticateSession, now } from './assistant-route-http.js';
|
|
7
7
|
import { sessionScopedTarget } from './assistant-session-target.js';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ASSISTANT_USAGE_METHOD, aggregateAssistantUsage } 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
|
const WINDOWS_MS = new Map([
|
|
5
6
|
['24h', 24 * 60 * 60 * 1000],
|
|
@@ -6,8 +6,9 @@ import { tenantMcpUrl } from '@noodle-borg/module';
|
|
|
6
6
|
import { assistantAppToolCallRecorder, assistantRefusedTurnUsageRequestEvent, assistantSessionUsageRequestEvent, assistantTurnNumber, assistantTurnUsageRequestEvent, captureAssistantUsage, } from '@noodle-borg/observability';
|
|
7
7
|
import { mapExecutionError, mapResourceContents, mapResourcesList, mapToolOutput, mapToolsList, } from '@noodle-borg/protocol';
|
|
8
8
|
import { executeResource } from '@noodle-borg/runtime';
|
|
9
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
9
10
|
import { assistantMessageTurnRequestSchema, assistantResumeTurnRequestSchema, assistantSessionResponseSchema, } from '@noodle-borg/wire-contracts';
|
|
10
|
-
import {
|
|
11
|
+
import { sendForbidden, sendUnauthorized } from '../http-util.js';
|
|
11
12
|
import { createAssistantTurnStats, runAgentTurn } from './assistant-agent.js';
|
|
12
13
|
import { elevateAssistantSession } from './assistant-elevation.js';
|
|
13
14
|
import { executeAssistantKnowledgeSearch, findAssistantKnowledgeComponent, resolveAssistantKnowledge, } from './assistant-knowledge.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { applySecurityHeaders, enforceHttps } from '@noodle-borg/transport-http';
|
|
2
|
-
import { baseFromRequest, normalizeServiceBase
|
|
1
|
+
import { applySecurityHeaders, enforceHttps, sendJson, } from '@noodle-borg/transport-http';
|
|
2
|
+
import { baseFromRequest, normalizeServiceBase } from '../http-util.js';
|
|
3
3
|
/** Provider-neutral discovery and its shipped Google-named compatibility route share exact bytes. */
|
|
4
4
|
export function dispatchAuthDiscoveryRoute(req, res, url, options, tls) {
|
|
5
5
|
if (req.method !== 'GET' || (url.pathname !== '/v1/auth' && url.pathname !== '/v1/auth/google')) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { bearerToken } from '@noodle-borg/control-plane/portable';
|
|
2
2
|
import { normalizeServerVersion, tenantMcpUrl } from '@noodle-borg/module';
|
|
3
3
|
import { freezeCustomerRoutes, resolveCustomerRouteBinding, } from '@noodle-borg/runtime';
|
|
4
|
-
import { sendJson } from '
|
|
4
|
+
import { sendJson } from '@noodle-borg/transport-http';
|
|
5
5
|
/** Verify one real customer identity and probe delegated bindings without calling business APIs. */
|
|
6
6
|
export async function handleLiveAuthDoctor(req, res, registry, tenant, options) {
|
|
7
7
|
let serverVersion;
|
|
@@ -54,7 +54,7 @@ function encodedConfigRouteRef(kind, encodedScope, encodedName, searchParams, re
|
|
|
54
54
|
return invalidConfigRouteRef(kind, encodedName, reveal);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
|
|
57
|
+
function configRouteRef(kind, scope, encodedName, searchParams, reveal = false) {
|
|
58
58
|
let safeScope;
|
|
59
59
|
try {
|
|
60
60
|
safeScope = validateConfigScope(scope);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { DEVELOPER_CLI_PATH } from '@noodle-borg/developer-mcp';
|
|
2
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
2
3
|
import { configValueSetRequestSchema, EffectiveConfigResponseSchema, formatWireError, RevealSecretResponseSchema, } from '@noodle-borg/wire-contracts';
|
|
3
4
|
import { projectEffectiveConfig, } from '../config-value-projection.js';
|
|
4
|
-
import {
|
|
5
|
+
import { sendForbidden } from '../http-util.js';
|
|
5
6
|
import { authorizeControlPlane } from './control-plane.js';
|
|
6
7
|
export async function handleConfigValues(req, res, gate, controlPlane, configStore, registry, maxBody, ref, audit, developerGrants) {
|
|
7
8
|
const identity = await authorizeControlPlane(req, res, gate, {
|
|
@@ -2,10 +2,10 @@ import { cspFaultsInManifest } from '@noodle-borg/compiler';
|
|
|
2
2
|
import { ensurePersonalWorkspace } from '@noodle-borg/control-plane/portable';
|
|
3
3
|
import { DEVELOPER_ASSISTANT_PATH, DEVELOPER_CLI_PATH, } from '@noodle-borg/developer-mcp';
|
|
4
4
|
import { normalizeServerVersion } from '@noodle-borg/module';
|
|
5
|
-
import { noopLogger } from '@noodle-borg/transport-http';
|
|
5
|
+
import { noopLogger, readDeployBody, sendJson } from '@noodle-borg/transport-http';
|
|
6
6
|
import { deployRequestSchema, formatWireError, } from '@noodle-borg/wire-contracts';
|
|
7
7
|
import { authorizeDeveloperGrant, } from '../auth/developer-grant-guard.js';
|
|
8
|
-
import { baseFromRequest,
|
|
8
|
+
import { baseFromRequest, sendForbidden, sendUnauthorized } from '../http-util.js';
|
|
9
9
|
import { endpointUrlOptionsForOrg } from '../mcp-public-routing.js';
|
|
10
10
|
import { manifestUsesUserRoot } from '../registry-access.js';
|
|
11
11
|
import { isIdentityAccessMode } from './access-mode.js';
|
|
@@ -14,7 +14,6 @@ import { provisionPublicEmbed } from './deploy-public-embed.js';
|
|
|
14
14
|
import { respondDeploymentActivationError } from './deployment-activation-response.js';
|
|
15
15
|
import { tenantMcpUrl } from './endpoint-enrichment.js';
|
|
16
16
|
import { canManageMembers } from './org-admin.js';
|
|
17
|
-
export { handleConfigValues } from './config-values.js';
|
|
18
17
|
export async function handleDeploy(req, res, registry, options, maxBody, tenant, gate, controlPlane, audit) {
|
|
19
18
|
// GHD-3: a GitHub run deploys with a run-scoped token on x-noodle-run-token — NOT a control-plane
|
|
20
19
|
// identity. When that header is present the human control-plane auth (bearer + org membership) is
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { cspFaultsInManifest } from '@noodle-borg/compiler';
|
|
2
|
+
import { readDeployBody, sendJson } from '@noodle-borg/transport-http';
|
|
2
3
|
import { deployPreflightRequestSchema, formatWireError } from '@noodle-borg/wire-contracts';
|
|
3
|
-
import { readDeployBody, sendJson } from '../http-util.js';
|
|
4
4
|
import { manifestUsesUserRoot } from '../registry-access.js';
|
|
5
5
|
import { isIdentityAccessMode } from './access-mode.js';
|
|
6
6
|
import { authorizeDeploymentOwnerSelection, authorizeTenantControl, developerGrantRouteAccess, } from './control-plane.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DeploymentActivationError } from '@noodle-borg/module';
|
|
2
|
-
import { sendJson } from '
|
|
2
|
+
import { sendJson } from '@noodle-borg/transport-http';
|
|
3
3
|
/** Translate provider-neutral activation failures without exposing commercial account details. */
|
|
4
4
|
export async function respondDeploymentActivationError(res, error, context) {
|
|
5
5
|
if (!(error instanceof DeploymentActivationError))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { normalizeServerVersion } from '@noodle-borg/module';
|
|
2
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
2
3
|
import { deploymentLockRequestSchema } from '@noodle-borg/wire-contracts';
|
|
3
|
-
import { readJsonBody, sendJson } from '../http-util.js';
|
|
4
4
|
import { authorizeControlPlane } from './control-plane.js';
|
|
5
5
|
import { canManageMembers } from './org-admin.js';
|
|
6
6
|
export async function handleDeploymentLockUpdate(req, res, registry, gate, controlPlane, audit, maxBody, tenant) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { sha256Canonical } from '@noodle-borg/app-package';
|
|
2
|
+
import { sendJson } from '@noodle-borg/transport-http';
|
|
2
3
|
import { DeploymentPackageResponseShapeSchema } from '@noodle-borg/wire-contracts';
|
|
3
4
|
import { parseAppPackageSnapshot } from '../app-package-snapshot.js';
|
|
4
|
-
import { sendJson } from '../http-util.js';
|
|
5
5
|
import { authorizeTenantControl, developerGrantRouteAccess } from './control-plane.js';
|
|
6
6
|
const PACKAGE_UNAVAILABLE = {
|
|
7
7
|
code: 'package_unavailable',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { sendJson } from '@noodle-borg/transport-http';
|
|
1
2
|
import { DeploymentResponseSchema } from '@noodle-borg/wire-contracts';
|
|
2
|
-
import { sendJson } from '../http-util.js';
|
|
3
3
|
import { sendContract } from './apps.js';
|
|
4
4
|
import { authorizeTenantControl, developerGrantRouteAccess } from './control-plane.js';
|
|
5
5
|
import { withEndpointUrl } from './endpoint-enrichment.js';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { sendJson } from '@noodle-borg/transport-http';
|
|
1
2
|
import { inspectServiceDeployment } from '../developer-mcp/inspection.js';
|
|
2
|
-
import { baseFromRequest
|
|
3
|
+
import { baseFromRequest } from '../http-util.js';
|
|
3
4
|
import { endpointUrlOptionsForOrg } from '../mcp-public-routing.js';
|
|
4
5
|
import { authorizeTenantControl, developerGrantRouteAccess } from './control-plane.js';
|
|
5
6
|
export async function handleInspect(req, res, registry, gate, controlPlane, tenant, options) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
1
2
|
import { ProductionEnvironmentRequestSchema, ProductionEnvironmentResponseSchema, } from '@noodle-borg/wire-contracts';
|
|
2
|
-
import {
|
|
3
|
+
import { sendForbidden } from '../http-util.js';
|
|
3
4
|
import { sendContract } from './apps.js';
|
|
4
5
|
import { authorizeControlPlane } from './control-plane.js';
|
|
5
6
|
import { canManageMembers } from './org-admin.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { sendJson } from '@noodle-borg/transport-http';
|
|
1
2
|
import { EnvResponseSchema, EnvsListResponseSchema } from '@noodle-borg/wire-contracts';
|
|
2
|
-
import { sendJson } from '../http-util.js';
|
|
3
3
|
import { sendContract } from './apps.js';
|
|
4
4
|
import { authorizeTenantControl, developerGrantRouteAccess } from './control-plane.js';
|
|
5
5
|
import { envWithEndpointUrl } from './endpoint-enrichment.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { sendJson } from '
|
|
1
|
+
import { sendJson } from '@noodle-borg/transport-http';
|
|
2
2
|
import { authorizeTenantControl } from './control-plane.js';
|
|
3
3
|
export async function handleGoogleWorkloadIdentityDoctor(req, res, tenant, deps) {
|
|
4
4
|
const identity = await authorizeTenantControl(req, res, deps.gate, deps.controlPlane, tenant.org);
|
|
@@ -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 { authorizeControlPlane, authorizeTenantControl } from './control-plane.js';
|
|
3
4
|
import { canManageMembers } from './org-admin.js';
|
|
4
5
|
const RETENTION_DAYS = 14;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { sendJson } from '@noodle-borg/transport-http';
|
|
2
|
+
import { normalizedTimestamps } from '../http-util.js';
|
|
2
3
|
import { authorizeTenantControl, developerGrantRouteAccess } from './control-plane.js';
|
|
3
4
|
/**
|
|
4
5
|
* `GET /v1/orgs/{org}/apps/{app}/envs/{env}/logs` — the tenant-safe developer log surface (M3, ADR 0101).
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { OPENAI_APPS_CHALLENGE_PATH } from '@noodle-borg/module';
|
|
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 { trustedPublicOrgWellKnownFromRequest } from '../mcp-public-routing.js';
|
|
5
4
|
export function handlePublicOpenAIAppsChallenge(req, res, options, tls, controlPlane) {
|
|
6
5
|
applySecurityHeaders(res, tls);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { mcpSubdomainEndpointOptions } from '@noodle-borg/control-plane/portable';
|
|
2
2
|
import { normalizePublicBaseDomain, OPENAI_APPS_CHALLENGE_PATH } from '@noodle-borg/module';
|
|
3
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
3
4
|
import { OrgSummarySchema } from '@noodle-borg/wire-contracts';
|
|
4
|
-
import {
|
|
5
|
+
import { sendForbidden } from '../http-util.js';
|
|
5
6
|
import { hashToken, randomToken } from '../oauth/tokens.js';
|
|
6
7
|
import { validateOrgRole, } from '../store.js';
|
|
7
8
|
import { authorizeControlPlane, authorizeTenantControl } from './control-plane.js';
|
|
@@ -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 { validateOrgMembershipDomain, } from '../store.js';
|
|
3
4
|
import { authorizeControlPlane } from './control-plane.js';
|
|
4
5
|
import { canManageMembers, canViewMembers, emitOrgAudit } from './org-admin.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { McpSubdomainCooldownError, McpSubdomainIdempotencyConflictError, McpSubdomainOwnerRequiredError, McpSubdomainUnavailableError, validateMcpSubdomain, } from '@noodle-borg/control-plane/portable';
|
|
2
2
|
import { normalizePublicBaseDomain } from '@noodle-borg/module';
|
|
3
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
3
4
|
import { McpSubdomainMutationRequestSchema, McpSubdomainMutationResponseSchema, McpSubdomainSettingResponseSchema, } from '@noodle-borg/wire-contracts';
|
|
4
|
-
import { readJsonBody, sendJson } from '../http-util.js';
|
|
5
5
|
import { emitAuditMirrors } from '../store/audit.js';
|
|
6
6
|
import { authorizeControlPlane } from './control-plane.js';
|
|
7
7
|
const IDEMPOTENCY_KEY = /^[A-Za-z0-9._:-]{8,256}$/;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { isAlertRuleId } from '../store/alert-rules.js';
|
|
2
2
|
import { DEPLOYMENT_ID_PATTERN, validateDomain, validateSlug, validateTenantRef, } from '../store.js';
|
|
3
|
-
export { configRouteRef, parseConfigPath, } from './config-values-paths.js';
|
|
4
3
|
function matchPath(pathname, pattern, decode) {
|
|
5
4
|
const match = pattern.exec(pathname);
|
|
6
5
|
if (!match)
|
|
@@ -208,44 +207,6 @@ export function parseTenantSessionPath(pathname) {
|
|
|
208
207
|
export function parseTenantAssistantUsagePath(pathname) {
|
|
209
208
|
return matchPath(pathname, /^\/v1\/orgs\/([^/]+)\/apps\/([^/]+)\/envs\/([^/]+)\/assistant\/usage$/, tenantRef);
|
|
210
209
|
}
|
|
211
|
-
/** Match `/v1/orgs/{org}/apps/{app}/github/connection` (GHD-1 repository connection, GET/POST/DELETE). */
|
|
212
|
-
export function parseGithubConnectionPath(pathname) {
|
|
213
|
-
return matchPath(pathname, /^\/v1\/orgs\/([^/]+)\/apps\/([^/]+)\/github\/connection$/, appRef);
|
|
214
|
-
}
|
|
215
|
-
/** Parse `/v1/orgs/{org}/apps/{app}/github/runs` (GHD-2, the deploy-runs read surface). */
|
|
216
|
-
export function parseGithubRunsPath(pathname) {
|
|
217
|
-
return matchPath(pathname, /^\/v1\/orgs\/([^/]+)\/apps\/([^/]+)\/github\/runs$/, appRef);
|
|
218
|
-
}
|
|
219
|
-
/** Match the fixed path `/v1/github/install-url` (GHD-1). */
|
|
220
|
-
export function isGithubInstallUrlPath(pathname) {
|
|
221
|
-
return pathname === '/v1/github/install-url';
|
|
222
|
-
}
|
|
223
|
-
/** Match the fixed path `/v1/github/installations/claim` (GHD-1). */
|
|
224
|
-
export function isGithubInstallationClaimPath(pathname) {
|
|
225
|
-
return pathname === '/v1/github/installations/claim';
|
|
226
|
-
}
|
|
227
|
-
/** Parse `/v1/github/runs/{runId}/status` (GHD-C1, the trusted runner's transition report). */
|
|
228
|
-
export function parseGithubRunStatusPath(pathname) {
|
|
229
|
-
const match = /^\/v1\/github\/runs\/([A-Za-z0-9_-]+)\/status$/.exec(pathname);
|
|
230
|
-
return match ? match[1] : undefined;
|
|
231
|
-
}
|
|
232
|
-
/** Parse `/v1/github/runs/{runId}/claim` (GHD-C3, Cloud Run builder credential claim). */
|
|
233
|
-
export function parseGithubRunClaimPath(pathname) {
|
|
234
|
-
const match = /^\/v1\/github\/runs\/([A-Za-z0-9_-]+)\/claim$/.exec(pathname);
|
|
235
|
-
return match ? match[1] : undefined;
|
|
236
|
-
}
|
|
237
|
-
/** Match the fixed path `/v1/github/webhook` (GHD-2, the GitHub App's webhook receiver). */
|
|
238
|
-
export function isGithubWebhookPath(pathname) {
|
|
239
|
-
return pathname === '/v1/github/webhook';
|
|
240
|
-
}
|
|
241
|
-
/** Match the fixed path `/v1/github/setup` (GHD-1.4, the GitHub App's configured Setup URL). */
|
|
242
|
-
export function isGithubSetupPath(pathname) {
|
|
243
|
-
return pathname === '/v1/github/setup';
|
|
244
|
-
}
|
|
245
|
-
/** Match the fixed path `/v1/github/installations/pending` (GHD-1.4, the CLI's install poll target). */
|
|
246
|
-
export function isGithubInstallationPendingPath(pathname) {
|
|
247
|
-
return pathname === '/v1/github/installations/pending';
|
|
248
|
-
}
|
|
249
210
|
export function parseTenantActionPath(pathname, action) {
|
|
250
211
|
return matchPath(pathname, new RegExp(`^/v1/orgs/([^/]+)/apps/([^/]+)/envs/([^/]+)/${action}$`), tenantRef);
|
|
251
212
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { protectedResourceMetadata } from '@noodle-borg/auth';
|
|
2
2
|
import { parseLegacyTenantMcpPath } from '@noodle-borg/module';
|
|
3
|
-
import { applySecurityHeaders, enforceHttps } from '@noodle-borg/transport-http';
|
|
3
|
+
import { applySecurityHeaders, enforceHttps, sendJson, } from '@noodle-borg/transport-http';
|
|
4
4
|
import { DEVELOPER_MCP_PATH, developerMcpScopes } from '../developer-mcp/mount.js';
|
|
5
|
-
import { baseFromRequest
|
|
5
|
+
import { baseFromRequest } from '../http-util.js';
|
|
6
6
|
import { trustedMcpResourceFromRequest } from '../mcp-public-routing.js';
|
|
7
7
|
import { authorizationMetadataForTenant } from '../registry-targets.js';
|
|
8
8
|
/** Well-known prefix for OAuth 2.0 Protected Resource Metadata (RFC 9728). */
|
|
9
|
-
|
|
9
|
+
const PROTECTED_RESOURCE_METADATA_PREFIX = '/.well-known/oauth-protected-resource';
|
|
10
10
|
export function dispatchProtectedResourceMetadata(req, res, url, registry, controlPlane, options, tls) {
|
|
11
11
|
if (req.method !== 'GET' || !url.pathname.startsWith(PROTECTED_RESOURCE_METADATA_PREFIX)) {
|
|
12
12
|
return false;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { rollbackDeploymentOperation } from '@noodle-borg/control-plane/portable';
|
|
2
|
-
import {
|
|
2
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
3
|
+
import { baseFromRequest, sendForbidden } from '../http-util.js';
|
|
3
4
|
import { endpointUrlOptionsForOrg } from '../mcp-public-routing.js';
|
|
4
5
|
import { authorizeTenantControl, developerGrantRouteAccess } from './control-plane.js';
|
|
5
6
|
export async function handleRollback(req, res, registry, gate, controlPlane, audit, maxBody, tenant, options) {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { applySecurityHeaders, enforceHttps, } from '@noodle-borg/transport-http';
|
|
2
|
-
import { sendJson } from '../http-util.js';
|
|
1
|
+
import { applySecurityHeaders, enforceHttps, sendJson, } from '@noodle-borg/transport-http';
|
|
3
2
|
import { parseServicePrincipalPath } from './service-principal-paths.js';
|
|
4
3
|
import { handleServicePrincipalRequest } from './service-principals.js';
|
|
5
4
|
/** Bind the shared security front door when the optional service-principal runtime is configured. */
|
|
@@ -16,7 +15,7 @@ export function createServicePrincipalDispatcher(registry, runtime, deps) {
|
|
|
16
15
|
});
|
|
17
16
|
}
|
|
18
17
|
/** Dispatch the exact service-principal route family before generic MCP/tenant fallback. */
|
|
19
|
-
|
|
18
|
+
function dispatchServicePrincipalRoutes(req, res, url, deps) {
|
|
20
19
|
const path = parseServicePrincipalPath(url.pathname);
|
|
21
20
|
if (path === undefined)
|
|
22
21
|
return false;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { readJsonBody, sendJson } from '
|
|
1
|
+
import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
|
|
2
2
|
import { createClientSecret, digestClientSecret } from '../oauth/service-principal-credentials.js';
|
|
3
3
|
import { authorizeControlPlane } from './control-plane.js';
|
|
4
4
|
import { createServicePrincipalCredentialSchema, createServicePrincipalGrantSchema, createServicePrincipalSchema, } from './service-principal-contracts.js';
|
|
@@ -60,8 +60,8 @@ export interface ObservabilityConfig {
|
|
|
60
60
|
readonly maxEventsPerExecution?: number;
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
declare const AGENCY_ORG_TEMPLATES: readonly ["small-business", "mid-market", "enterprise"];
|
|
64
|
+
type AgencyOrgTemplate = (typeof AGENCY_ORG_TEMPLATES)[number];
|
|
65
65
|
export type ServiceConfigSource = {
|
|
66
66
|
readonly kind: 'none';
|
|
67
67
|
} | {
|
|
@@ -92,4 +92,5 @@ export declare function resolveServiceConfigSource(input: {
|
|
|
92
92
|
readonly ok: false;
|
|
93
93
|
readonly error: string;
|
|
94
94
|
};
|
|
95
|
+
export {};
|
|
95
96
|
//# sourceMappingURL=service-config.d.ts.map
|
|
@@ -2,7 +2,7 @@ import { existsSync } from 'node:fs';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { CAPABILITY_NAMES, isServiceProfileName, SERVICE_PROFILE_NAMES, } from '@noodle-borg/capabilities';
|
|
4
4
|
import { parse as parseYaml } from 'yaml';
|
|
5
|
-
|
|
5
|
+
const AGENCY_ORG_TEMPLATES = ['small-business', 'mid-market', 'enterprise'];
|
|
6
6
|
export function defineNoodleService(config) {
|
|
7
7
|
return config;
|
|
8
8
|
}
|
|
@@ -2,7 +2,7 @@ import { InMemoryAssistantAppearanceSettingsStore, InMemoryAssistantStore, } fro
|
|
|
2
2
|
import { allowAllGate, InMemoryControlPlaneStore } from '@noodle-borg/control-plane/portable';
|
|
3
3
|
import { dispatchKnowledgeRequest } from '@noodle-borg/knowledge-operations/portable';
|
|
4
4
|
import { OPENAI_APPS_CHALLENGE_PATH } from '@noodle-borg/module';
|
|
5
|
-
import { applySecurityHeaders, createMcpRouter, enforceHttps, noopLogger, } from '@noodle-borg/transport-http';
|
|
5
|
+
import { applySecurityHeaders, createMcpRouter, enforceHttps, noopLogger, sendJson, } from '@noodle-borg/transport-http';
|
|
6
6
|
import { AnonymousConsumerLimiter, createAdmissionGate } from './admission.js';
|
|
7
7
|
import { createArchivePreflight } from './archive-preflight.js';
|
|
8
8
|
import { ArchiveSweeper, resolveArchiveRetentionDays } from './archive-sweeper.js';
|
|
@@ -13,7 +13,7 @@ import { rejectIncompatibleCli } from './client-compatibility.js';
|
|
|
13
13
|
import { createDataPlaneMembershipAuthorizer } from './data-plane-membership.js';
|
|
14
14
|
import { DEVELOPER_MCP_PATH, handleDeveloperMcpRequest } from './developer-mcp/mount.js';
|
|
15
15
|
import { createDeveloperMcpMountOptions } from './developer-mcp/service-options.js';
|
|
16
|
-
import { baseFromRequest, respondRouteError
|
|
16
|
+
import { baseFromRequest, respondRouteError } from './http-util.js';
|
|
17
17
|
import { createMcpInvocationContextResolver } from './invocation-context.js';
|
|
18
18
|
import { wireServiceKnowledge } from './knowledge-wiring.js';
|
|
19
19
|
import * as mcp from './mcp-public-routing.js';
|
|
@@ -34,7 +34,7 @@ export function isAlertRuleId(id) {
|
|
|
34
34
|
* validation of the webhook URL (https-only, loopback carve-out, private-IP rejection) is the
|
|
35
35
|
* route's job (`validateAlertWebhookUrl`); the store only rejects structurally broken values.
|
|
36
36
|
*/
|
|
37
|
-
|
|
37
|
+
function validateCreateAlertRuleInput(input) {
|
|
38
38
|
const orgSlug = validateSlug('org', input.orgSlug);
|
|
39
39
|
const appSlug = validateSlug('app', input.appSlug);
|
|
40
40
|
const environment = validateSlug('env', input.environment);
|
|
@@ -10,7 +10,7 @@ export { AUDIT_SCHEMA_VERSION, redactDetails } from '@noodle-borg/module';
|
|
|
10
10
|
* to a marker, so a stray token-bearing object can never reach a stored row or a log line.
|
|
11
11
|
*/
|
|
12
12
|
/** Build the canonical stored event from an input, stamping id, schema version, and timestamp. */
|
|
13
|
-
|
|
13
|
+
function toAuditEvent(input, id, createdAt) {
|
|
14
14
|
const details = redactDetails(input.details);
|
|
15
15
|
return {
|
|
16
16
|
id,
|
|
@@ -223,7 +223,7 @@ function compareAppSummaries(a, b) {
|
|
|
223
223
|
return a.appSlug.localeCompare(b.appSlug);
|
|
224
224
|
}
|
|
225
225
|
/** Default + hard cap for a single `apps` list page (the route surfaces `truncated`, never drops silently). */
|
|
226
|
-
|
|
226
|
+
const DEFAULT_APPS_LIMIT = 200;
|
|
227
227
|
/** Cap an already-sorted {@link AppSummary} list at `limit` (default {@link DEFAULT_APPS_LIMIT}). */
|
|
228
228
|
export function paginateAppSummaries(apps, limit) {
|
|
229
229
|
const safeLimit = limit ?? DEFAULT_APPS_LIMIT;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ConfigScope, TenantRef } from '../store.js';
|
|
2
|
-
export { DOMAIN_PATTERN,
|
|
2
|
+
export { DOMAIN_PATTERN, SLUG_PATTERN, validateDomain, validateOrgMembershipDomain, validateOrgRole, validateSignupAllowlistKind, validateSlug, } from '@noodle-borg/control-plane/portable';
|
|
3
3
|
/** Minted deployment id shape (`mintDeploymentId`): a slug plus a short hex suffix; safe as a filename. */
|
|
4
4
|
export declare const DEPLOYMENT_ID_PATTERN: RegExp;
|
|
5
5
|
export declare const CONFIG_NAME_PATTERN: RegExp;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* import cycle through the store aggregate.
|
|
5
5
|
*/
|
|
6
6
|
import { validateSlug } from '@noodle-borg/control-plane/portable';
|
|
7
|
-
export { DOMAIN_PATTERN,
|
|
7
|
+
export { DOMAIN_PATTERN, SLUG_PATTERN, validateDomain, validateOrgMembershipDomain, validateOrgRole, validateSignupAllowlistKind, validateSlug, } from '@noodle-borg/control-plane/portable';
|
|
8
8
|
/** Minted deployment id shape (`mintDeploymentId`): a slug plus a short hex suffix; safe as a filename. */
|
|
9
9
|
export const DEPLOYMENT_ID_PATTERN = /^[a-z0-9-]+$/;
|
|
10
10
|
export const CONFIG_NAME_PATTERN = /^[A-Za-z0-9_]+$/;
|
|
@@ -11,7 +11,7 @@ export { type ConfigScope, type ConfigStore, type ConfigValueMetadata, InMemoryC
|
|
|
11
11
|
export type { ProductionEnvironmentChange } from './store/environment-production.js';
|
|
12
12
|
export { InMemoryArtifactStore } from './store/in-memory.js';
|
|
13
13
|
export { JsonFileArtifactStore } from './store/json-file.js';
|
|
14
|
-
export { CONFIG_NAME_PATTERN, DEPLOYMENT_ID_PATTERN, DOMAIN_PATTERN,
|
|
14
|
+
export { CONFIG_NAME_PATTERN, DEPLOYMENT_ID_PATTERN, DOMAIN_PATTERN, SLUG_PATTERN, validateConfigName, validateConfigScope, validateDomain, validateOrgMembershipDomain, validateOrgRole, validatePositiveInteger, validateSignupAllowlistKind, validateSlug, validateTenantRef, } from './store/validate.js';
|
|
15
15
|
/**
|
|
16
16
|
* Secret values at rest. The compiled runtime keeps plaintext tokens in memory (the broker), but the
|
|
17
17
|
* *persisted* form is a tagged envelope. `aes-256-gcm` (Slice 26, ADR 0028) holds an AES-256-GCM
|
|
@@ -92,7 +92,7 @@ export interface TenantOidcAuthConfig {
|
|
|
92
92
|
readonly claims?: TenantAuthClaimMap | undefined;
|
|
93
93
|
readonly routing?: ArtifactCustomerAuthRouting | undefined;
|
|
94
94
|
}
|
|
95
|
-
|
|
95
|
+
interface TenantFederatedOidcAuthConfig {
|
|
96
96
|
readonly kind: 'federatedOidc';
|
|
97
97
|
readonly issuers: readonly {
|
|
98
98
|
readonly issuer: string;
|
|
@@ -4,5 +4,5 @@ export { InMemoryConfigStore, resolveConfigScope, scopeChain, } from './store/co
|
|
|
4
4
|
// surface.
|
|
5
5
|
export { InMemoryArtifactStore } from './store/in-memory.js';
|
|
6
6
|
export { JsonFileArtifactStore } from './store/json-file.js';
|
|
7
|
-
export { CONFIG_NAME_PATTERN, DEPLOYMENT_ID_PATTERN, DOMAIN_PATTERN,
|
|
7
|
+
export { CONFIG_NAME_PATTERN, DEPLOYMENT_ID_PATTERN, DOMAIN_PATTERN, SLUG_PATTERN, validateConfigName, validateConfigScope, validateDomain, validateOrgMembershipDomain, validateOrgRole, validatePositiveInteger, validateSignupAllowlistKind, validateSlug, validateTenantRef, } from './store/validate.js';
|
|
8
8
|
//# sourceMappingURL=store.js.map
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
41
41
|
"@noodle-borg/admission-limits": "0.0.0",
|
|
42
|
-
"@noodle-borg/agent-kit": "0.
|
|
42
|
+
"@noodle-borg/agent-kit": "0.92.0",
|
|
43
43
|
"@noodle-borg/app-package": "0.0.0",
|
|
44
44
|
"@noodle-borg/assistant-gateway": "0.0.0",
|
|
45
45
|
"@noodle-borg/auth": "0.0.0",
|
|
@@ -38,7 +38,7 @@ const KNOWN_UA_FAMILIES = [
|
|
|
38
38
|
[/mozilla|chrome|safari|firefox|edg/i, 'browser'],
|
|
39
39
|
];
|
|
40
40
|
/** Bound a wire-supplied client identity scalar: printable, trimmed, and length-capped. */
|
|
41
|
-
|
|
41
|
+
function boundedClientScalar(value, max) {
|
|
42
42
|
if (value === undefined)
|
|
43
43
|
return undefined;
|
|
44
44
|
let cleaned = '';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
2
|
import type { AccessMode, AdmissionGate, DataPlaneIdentityAuthorizer, IntentCaptureMode, IntentEventInput, OrgMembershipSource, OwnerTokenVerifier, RequestEventInput, TenantRouteRef } from '@noodle-borg/module';
|
|
3
|
-
import { type ConfirmationNonceLedger, type ProtocolRequestContext, type RequestStateManager, type ServedArtifact } from '@noodle-borg/protocol';
|
|
3
|
+
import { type ConfirmationNonceLedger, type McpProtocolMode, type ProtocolRequestContext, type RequestStateManager, type ServedArtifact } from '@noodle-borg/protocol';
|
|
4
4
|
import { type TlsPosture } from './front-door.js';
|
|
5
5
|
import { type Logger } from './logging.js';
|
|
6
6
|
import { type PublicTenantRouting } from './routing.js';
|
|
@@ -10,7 +10,6 @@ export type { AccessMode, AdmissionCategory, AdmissionContext, AdmissionDecision
|
|
|
10
10
|
export type { PublicTenantRouting } from './routing.js';
|
|
11
11
|
/** Origins allowed to call the endpoint: an explicit list, a predicate, or undefined (allow any). */
|
|
12
12
|
export type OriginPolicy = readonly string[] | ((origin: string) => boolean);
|
|
13
|
-
export type McpProtocolMode = 'dual' | 'legacy-only';
|
|
14
13
|
/** Validated, bounded coordinates from one host request. Never identity or policy input. */
|
|
15
14
|
export interface InvocationClientLocationHint {
|
|
16
15
|
readonly latitude: number;
|