@noodleseed/one 0.151.1 → 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/assistant-embed-scaffold-template.d.ts +1 -0
- package/dist/assistant-embed-scaffold-template.d.ts.map +1 -1
- package/dist/assistant-embed-scaffold-template.js +80 -12
- package/dist/assistant-embed-scaffold-template.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/assistant-embed-ops.d.ts.map +1 -1
- package/dist/commands/assistant-embed-ops.js +141 -4
- package/dist/commands/assistant-embed-ops.js.map +1 -1
- package/dist/commands/assistant-ops.js +1 -1
- package/dist/commands/assistant-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/behavior-skills.js +10 -10
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +11 -8
- package/node_modules/@noodle-borg/agent-kit/dist/index.js +13 -1
- 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-authoring-refs.js +8 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +6 -6
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-operations-ref.js +78 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +156 -135
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-renderer-ref.js +109 -0
- 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-browser-fields.d.ts +3 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-browser-fields.js +15 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-configuration.d.ts +1 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-configuration.js +3 -2
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-store.d.ts +19 -11
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-store.js +24 -23
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-transcript-events.d.ts +24 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-transcript-events.js +39 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-transcript.d.ts +6 -2
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-transcript.js +11 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-view-availability.d.ts +8 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-view-availability.js +8 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/elevation-store.d.ts +3 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/elevation.d.ts +7 -1
- package/node_modules/@noodle-borg/assistant-gateway/dist/elevation.js +1 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/in-memory-elevation-store.d.ts +1 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/in-memory-elevation-store.js +1 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/portable.d.ts +1 -0
- package/node_modules/@noodle-borg/assistant-gateway/dist/portable.js +1 -0
- package/node_modules/@noodle-borg/assistant-gateway/package.json +2 -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/authoring/dist/server.d.ts +2 -0
- package/node_modules/@noodle-borg/authoring/dist/server.js +3 -0
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +12 -11
- package/node_modules/@noodle-borg/compiler/dist/artifact/version.d.ts +4 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/version.js +4 -1
- 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/schema.d.ts +4 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +20 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/website-projection.d.ts +2 -1
- package/node_modules/@noodle-borg/compiler/dist/state-handles.js +1 -0
- 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/runtime/dist/index.d.ts +1 -0
- package/node_modules/@noodle-borg/runtime/dist/index.js +1 -0
- package/node_modules/@noodle-borg/runtime/dist/state-handle-ownership.d.ts +21 -0
- package/node_modules/@noodle-borg/runtime/dist/state-handle-ownership.js +10 -0
- package/node_modules/@noodle-borg/runtime/package.json +6 -1
- 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-agent.js +7 -2
- 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 +15 -8
- 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 +5 -3
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.js +5 -3
- 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-transcript.js +48 -9
- 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 +5 -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/@noodle-borg/wire-contracts/dist/assistant.d.ts +19 -25
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js +20 -34
- package/node_modules/@noodleseed/assistant/README.md +1 -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
|
-
import { AssistantInteractionCapacityError, assistantConfirmationReview, assistantConfirmationTransition, assistantInputTransition, assistantInteractionTool, assistantPreparedArgumentReview, assistantPreparedToolContinuation, assistantSafeOutput, assistantToolContinuation, assistantViewAvailableData, auditAssistantInteraction, withAssistantSessionExecutionAuthority, } from '@noodle-borg/assistant-gateway/portable';
|
|
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';
|
|
@@ -364,8 +364,10 @@ async function finishExecution(res, deps, session, interaction, context, result,
|
|
|
364
364
|
tool: toolName,
|
|
365
365
|
result: safeOutput,
|
|
366
366
|
}, (failure) => deps.logger?.warn('assistant.view.unresolved', { ...failure }));
|
|
367
|
-
if (view)
|
|
367
|
+
if (view) {
|
|
368
|
+
await deps.store.replaceLatestView(session.id, recoverableAssistantView(view));
|
|
368
369
|
writeViewAvailable(res, view);
|
|
370
|
+
}
|
|
369
371
|
await narrateResolvedInteraction(res, deps, target, session, toolName, 'accept', safeOutput, context, suggestions);
|
|
370
372
|
return endInteractionSse(res);
|
|
371
373
|
}
|
|
@@ -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,7 +1,7 @@
|
|
|
1
|
-
import { visibleTranscript } from '@noodle-borg/assistant-gateway/portable';
|
|
2
|
-
import {
|
|
3
|
-
import { sendJson } from '../http-util.js';
|
|
1
|
+
import { assistantConfirmationProposal, assistantTranscriptEvents, assistantViewAvailableData, visibleTranscript, } from '@noodle-borg/assistant-gateway/portable';
|
|
2
|
+
import { assistantWireEventSchema } from '@noodle-borg/wire-contracts';
|
|
4
3
|
import { applyBrowserCors, authenticateSession } from './assistant-route-http.js';
|
|
4
|
+
import { sessionScopedTarget } from './assistant-session-target.js';
|
|
5
5
|
/**
|
|
6
6
|
* The bounded visible-transcript read (ADR 0141/0201 amendments 2026-08-26), in its own module for
|
|
7
7
|
* the same reason `assistant-elevation.ts` is: `assistant.ts` is at its size limit, and this is a
|
|
@@ -18,15 +18,54 @@ export async function handleAssistantTranscript(req, res, deps) {
|
|
|
18
18
|
if (!session)
|
|
19
19
|
return;
|
|
20
20
|
applyBrowserCors(req, res, session.origin);
|
|
21
|
-
const
|
|
21
|
+
const target = await sessionScopedTarget(deps.registry, session);
|
|
22
|
+
const latestView = target && session.latestView
|
|
23
|
+
? assistantViewAvailableData(target.served.artifact, { ...session.latestView, replayed: true }, (failure) => deps.logger?.warn('assistant.view.unresolved', { ...failure }))
|
|
24
|
+
: undefined;
|
|
25
|
+
const pending = await deps.store.findPendingInteraction({
|
|
26
|
+
sessionId: session.id,
|
|
27
|
+
deploymentId: session.deploymentId,
|
|
28
|
+
now: deps.clock?.() ?? new Date(),
|
|
29
|
+
});
|
|
30
|
+
const pendingInteraction = target && pending && target.served.artifact.tools.some((tool) => tool.name === pending.tool)
|
|
31
|
+
? pending.kind === 'confirmation'
|
|
32
|
+
? {
|
|
33
|
+
event: 'tool_proposed',
|
|
34
|
+
data: {
|
|
35
|
+
id: pending.id,
|
|
36
|
+
tool: pending.tool,
|
|
37
|
+
...assistantConfirmationProposal(pending.review),
|
|
38
|
+
expiresAt: pending.expiresAt,
|
|
39
|
+
requiresConfirmation: true,
|
|
40
|
+
},
|
|
41
|
+
}
|
|
42
|
+
: {
|
|
43
|
+
event: 'input_requested',
|
|
44
|
+
data: {
|
|
45
|
+
id: pending.id,
|
|
46
|
+
message: pending.message,
|
|
47
|
+
requestedSchema: pending.requestedSchema,
|
|
48
|
+
expiresAt: pending.expiresAt,
|
|
49
|
+
},
|
|
50
|
+
}
|
|
51
|
+
: undefined;
|
|
52
|
+
const events = assistantTranscriptEvents({
|
|
22
53
|
entries: visibleTranscript(session.history),
|
|
23
54
|
...(session.latestSuggestions?.phase === 'follow_up'
|
|
24
55
|
? { suggestions: session.latestSuggestions }
|
|
25
56
|
: {}),
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
57
|
+
...(latestView === undefined ? {} : { latestView }),
|
|
58
|
+
...(pendingInteraction === undefined ? {} : { pendingInteraction }),
|
|
59
|
+
});
|
|
60
|
+
res.writeHead(200, {
|
|
61
|
+
'content-type': 'text/event-stream; charset=utf-8',
|
|
62
|
+
'cache-control': 'no-store',
|
|
63
|
+
});
|
|
64
|
+
for (const event of events) {
|
|
65
|
+
// Parse before sending, like every assistant stream: contract drift fails at the service seam.
|
|
66
|
+
assistantWireEventSchema.parse(event);
|
|
67
|
+
res.write(`event: ${event.event}\ndata: ${JSON.stringify(event.data)}\n\n`);
|
|
68
|
+
}
|
|
69
|
+
res.end();
|
|
31
70
|
}
|
|
32
71
|
//# sourceMappingURL=assistant-transcript.js.map
|
|
@@ -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';
|
|
@@ -241,6 +241,9 @@ export function createServiceHandler(registry, options = {}) {
|
|
|
241
241
|
appearance: assistantAppearance,
|
|
242
242
|
...(options.publicEmbeds !== undefined ? { publicEmbeds: options.publicEmbeds } : {}),
|
|
243
243
|
...(options.elevations !== undefined ? { elevations: options.elevations } : {}),
|
|
244
|
+
...(options.elevationCoordinator !== undefined
|
|
245
|
+
? { elevationCoordinator: options.elevationCoordinator }
|
|
246
|
+
: {}),
|
|
244
247
|
...(options.admissionCounters !== undefined
|
|
245
248
|
? { admissionCounters: options.admissionCounters }
|
|
246
249
|
: {}),
|
|
@@ -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_]+$/;
|