@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
|
@@ -163,7 +163,7 @@ export function resolveHostPackageAssets(distribution, inputs, target) {
|
|
|
163
163
|
issues,
|
|
164
164
|
};
|
|
165
165
|
}
|
|
166
|
-
|
|
166
|
+
function normalizeHostAssetPath(value) {
|
|
167
167
|
const normalized = value.replace(/\\/g, '/').replace(/^\.\/+/, '');
|
|
168
168
|
return safeRelativePath(normalized) ? normalized : undefined;
|
|
169
169
|
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** Positive allowlist of `server.assistant` fields that may reach the browser. */
|
|
2
|
+
export declare const ASSISTANT_BROWSER_UI_FIELDS: readonly ["theme", "layout", "behavior", "labels", "presentation", "suggestedPrompts", "privacyUrl", "termsUrl", "locale", "direction", "webmcp"];
|
|
3
|
+
//# sourceMappingURL=assistant-browser-fields.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Positive allowlist of `server.assistant` fields that may reach the browser. */
|
|
2
|
+
export const ASSISTANT_BROWSER_UI_FIELDS = [
|
|
3
|
+
'theme',
|
|
4
|
+
'layout',
|
|
5
|
+
'behavior',
|
|
6
|
+
'labels',
|
|
7
|
+
'presentation',
|
|
8
|
+
'suggestedPrompts',
|
|
9
|
+
'privacyUrl',
|
|
10
|
+
'termsUrl',
|
|
11
|
+
'locale',
|
|
12
|
+
'direction',
|
|
13
|
+
'webmcp',
|
|
14
|
+
];
|
|
15
|
+
//# sourceMappingURL=assistant-browser-fields.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ArtifactServer } from '@noodle-borg/compiler';
|
|
2
2
|
import { type AssistantAppearanceOverride } from './assistant-appearance.js';
|
|
3
3
|
import type { AssistantAppearanceSettingsStore } from './assistant-appearance-store.js';
|
|
4
|
-
import { ASSISTANT_BROWSER_UI_FIELDS } from './assistant-
|
|
4
|
+
import { ASSISTANT_BROWSER_UI_FIELDS } from './assistant-browser-fields.js';
|
|
5
5
|
import type { TenantRef } from './tenant-ref.js';
|
|
6
6
|
/**
|
|
7
7
|
* What the browser is allowed to see.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolveAssistantAppearanceConfiguration, } from './assistant-appearance.js';
|
|
2
|
-
import { ASSISTANT_BROWSER_UI_FIELDS } from './assistant-
|
|
2
|
+
import { ASSISTANT_BROWSER_UI_FIELDS } from './assistant-browser-fields.js';
|
|
3
3
|
/**
|
|
4
4
|
* What the browser is allowed to see.
|
|
5
5
|
*
|
|
@@ -41,7 +41,8 @@ export function assistantBrowserConfiguration(server, boundSurface) {
|
|
|
41
41
|
function surfaceOfMode(assistant, mode) {
|
|
42
42
|
if (mode === undefined || !Array.isArray(assistant?.surfaces))
|
|
43
43
|
return undefined;
|
|
44
|
-
|
|
44
|
+
// A `mixed` surface mints `public` sessions (ADR 0220): it is the public binding's surface.
|
|
45
|
+
return assistant.surfaces.find((surface) => surface.mode === mode || (mode === 'public' && surface.mode === 'mixed'));
|
|
45
46
|
}
|
|
46
47
|
/** Resolve environment operator state above the immutable deployment projection. */
|
|
47
48
|
export async function effectiveAssistantBrowserConfiguration(server, tenant, store, boundSurface) {
|
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
import type { ArtifactServer } from '@noodle-borg/compiler';
|
|
2
2
|
import type { CallerIdentity } from '@noodle-borg/runtime';
|
|
3
|
+
import type { ASSISTANT_BROWSER_UI_FIELDS } from './assistant-browser-fields.js';
|
|
3
4
|
import type { AssistantContextPreferences } from './assistant-context.js';
|
|
4
5
|
import type { AssistantCustomerRouting } from './assistant-customer-routing.js';
|
|
5
|
-
import { type AssistantInteractionClaimResult, type AssistantInteractionCompletionResult, type AssistantInteractionCreateInput, type AssistantInteractionRecord, type AssistantInteractionScope, type AssistantInteractionTransitionInput, type AssistantInteractionTransitionResult, type AssistantPendingConfirmationInteractionRecord, type AssistantPendingInputInteractionRecord } from './assistant-interaction-state.js';
|
|
6
|
+
import { type AssistantInteractionClaimResult, type AssistantInteractionCompletionResult, type AssistantInteractionCreateInput, type AssistantInteractionRecord, type AssistantInteractionScope, type AssistantInteractionTransitionInput, type AssistantInteractionTransitionResult, type AssistantPendingConfirmationInteractionRecord, type AssistantPendingInputInteractionRecord, type AssistantPendingInteractionRecord } from './assistant-interaction-state.js';
|
|
7
|
+
import type { AssistantRecoverableView } from './assistant-view-availability.js';
|
|
6
8
|
import type { TenantRef } from './tenant-ref.js';
|
|
7
|
-
export { ASSISTANT_INTERACTION_EXECUTING_GRACE_MS, ASSISTANT_INTERACTION_OUTCOME_RETENTION_MS, type AssistantConfirmationInteractionRecord, AssistantInteractionCapacityError, type AssistantInteractionClaimResult, type AssistantInteractionCompletion, type AssistantInteractionCompletionResult, type AssistantInteractionCreateInput, type AssistantInteractionKind, type AssistantInteractionPublicArray, type AssistantInteractionPublicObject, type AssistantInteractionPublicOutcome, type AssistantInteractionPublicValue, type AssistantInteractionRecord, type AssistantInteractionScope, type AssistantInteractionStatus, type AssistantInteractionTransitionInput, type AssistantInteractionTransitionNext, type AssistantInteractionTransitionResult, type AssistantPendingConfirmationInteractionRecord, type AssistantPendingInputInteractionRecord, DEFAULT_MAX_PENDING_INTERACTIONS_PER_SESSION, } from './assistant-interaction-state.js';
|
|
9
|
+
export { ASSISTANT_INTERACTION_EXECUTING_GRACE_MS, ASSISTANT_INTERACTION_OUTCOME_RETENTION_MS, type AssistantConfirmationInteractionRecord, AssistantInteractionCapacityError, type AssistantInteractionClaimResult, type AssistantInteractionCompletion, type AssistantInteractionCompletionResult, type AssistantInteractionCreateInput, type AssistantInteractionKind, type AssistantInteractionPublicArray, type AssistantInteractionPublicObject, type AssistantInteractionPublicOutcome, type AssistantInteractionPublicValue, type AssistantInteractionRecord, type AssistantInteractionScope, type AssistantInteractionStatus, type AssistantInteractionTransitionInput, type AssistantInteractionTransitionNext, type AssistantInteractionTransitionResult, type AssistantPendingConfirmationInteractionRecord, type AssistantPendingInputInteractionRecord, type AssistantPendingInteractionRecord, DEFAULT_MAX_PENDING_INTERACTIONS_PER_SESSION, } from './assistant-interaction-state.js';
|
|
8
10
|
export declare const ASSISTANT_SESSION_IDLE_MS: number;
|
|
9
|
-
|
|
10
|
-
* The only `server.assistant` fields that may reach a browser.
|
|
11
|
-
*
|
|
12
|
-
* It lives here, beside the record it types, so the allowlist and the shape it produces cannot drift
|
|
13
|
-
* apart: the projection in `packages/service` iterates this same list. A denylist here would be a type
|
|
14
|
-
* that lies — it once admitted `sessionClaims` key names, and would now admit the public surface's
|
|
15
|
-
* capability allowlist — so growth in the manifest must not be able to grow the browser payload.
|
|
16
|
-
*/
|
|
17
|
-
export declare const ASSISTANT_BROWSER_UI_FIELDS: readonly ["theme", "layout", "behavior", "labels", "presentation", "suggestedPrompts", "privacyUrl", "termsUrl", "locale", "direction", "webmcp"];
|
|
11
|
+
export { ASSISTANT_BROWSER_UI_FIELDS } from './assistant-browser-fields.js';
|
|
18
12
|
export interface AssistantClientRecord {
|
|
19
13
|
readonly id: string;
|
|
20
14
|
readonly name: string;
|
|
@@ -79,6 +73,8 @@ export interface AssistantSessionRecord {
|
|
|
79
73
|
readonly initialSuggestions?: AssistantInitialSuggestionsState;
|
|
80
74
|
/** Latest validated follow-up suggestions, replayed with the visible transcript. */
|
|
81
75
|
readonly latestSuggestions?: AssistantSuggestedPrompts;
|
|
76
|
+
/** Latest renderer descriptor; HTML is re-resolved from the current surface artifact on recovery. */
|
|
77
|
+
readonly latestView?: AssistantRecoverableView;
|
|
82
78
|
}
|
|
83
79
|
export interface AssistantSuggestedPrompts {
|
|
84
80
|
readonly phase: 'initial' | 'follow_up';
|
|
@@ -165,6 +161,7 @@ export interface AssistantStore {
|
|
|
165
161
|
completeInitialSuggestions(id: string, prompts: readonly string[]): Promise<boolean>;
|
|
166
162
|
failInitialSuggestions(id: string): Promise<boolean>;
|
|
167
163
|
replaceLatestSuggestions(id: string, suggestions: AssistantSuggestedPrompts | undefined): Promise<boolean>;
|
|
164
|
+
replaceLatestView(id: string, view: AssistantRecoverableView | undefined): Promise<boolean>;
|
|
168
165
|
/** Atomically reserve one once-per-session model tool use. */
|
|
169
166
|
claimModelToolUse(id: string, tool: string): Promise<boolean>;
|
|
170
167
|
/** Release a reservation only when execution failed before a usable result or interaction existed. */
|
|
@@ -221,6 +218,11 @@ export interface AssistantStore {
|
|
|
221
218
|
}): Promise<AssistantInteractionCompletionResult>;
|
|
222
219
|
transitionInteraction(input: AssistantInteractionTransitionInput): Promise<AssistantInteractionTransitionResult>;
|
|
223
220
|
getInteraction(input: AssistantInteractionScope): Promise<AssistantInteractionRecord | undefined>;
|
|
221
|
+
findPendingInteraction(input: {
|
|
222
|
+
readonly sessionId: string;
|
|
223
|
+
readonly deploymentId: string;
|
|
224
|
+
readonly now: Date;
|
|
225
|
+
}): Promise<AssistantPendingInteractionRecord | undefined>;
|
|
224
226
|
/** @deprecated Temporary compatibility for the accept-only route while it moves to claim/complete. */
|
|
225
227
|
consumeInteraction(id: string, sessionId: string, deploymentId: string, now: Date): Promise<(import('./assistant-interaction-state.js').AssistantConfirmationInteractionRecord & {
|
|
226
228
|
readonly status: 'executing';
|
|
@@ -269,6 +271,7 @@ export declare class InMemoryAssistantStore implements AssistantStore {
|
|
|
269
271
|
completeInitialSuggestions(id: string, prompts: readonly string[]): Promise<boolean>;
|
|
270
272
|
failInitialSuggestions(id: string): Promise<boolean>;
|
|
271
273
|
replaceLatestSuggestions(id: string, suggestions: AssistantSuggestedPrompts | undefined): Promise<boolean>;
|
|
274
|
+
replaceLatestView(id: string, view: AssistantRecoverableView | undefined): Promise<boolean>;
|
|
272
275
|
claimModelToolUse(id: string, tool: string): Promise<boolean>;
|
|
273
276
|
releaseModelToolUse(id: string, tool: string): Promise<boolean>;
|
|
274
277
|
getSession(token: string, now: Date): Promise<AssistantSessionRecord | undefined>;
|
|
@@ -285,6 +288,11 @@ export declare class InMemoryAssistantStore implements AssistantStore {
|
|
|
285
288
|
}): Promise<AssistantInteractionCompletionResult>;
|
|
286
289
|
transitionInteraction(input: AssistantInteractionTransitionInput): Promise<AssistantInteractionTransitionResult>;
|
|
287
290
|
getInteraction(input: AssistantInteractionScope): Promise<AssistantInteractionRecord | undefined>;
|
|
291
|
+
findPendingInteraction(input: {
|
|
292
|
+
readonly sessionId: string;
|
|
293
|
+
readonly deploymentId: string;
|
|
294
|
+
readonly now: Date;
|
|
295
|
+
}): Promise<AssistantPendingInteractionRecord | undefined>;
|
|
288
296
|
consumeInteraction(id: string, sessionId: string, deploymentId: string, now: Date): Promise<(import('./assistant-interaction-state.js').AssistantConfirmationInteractionRecord & {
|
|
289
297
|
readonly status: 'executing';
|
|
290
298
|
}) | undefined>;
|
|
@@ -3,29 +3,7 @@ import { ADMISSION_DEFAULTS } from '@noodle-borg/admission-limits/portable';
|
|
|
3
3
|
import { AssistantInteractionCapacityError, cloneInteraction, completedInteraction, createPendingInteraction, DEFAULT_MAX_PENDING_INTERACTIONS_PER_SESSION, executingInteraction, expireStrandedExecutingInteraction, isPrunableInteraction, isTerminalInteraction, shouldExpireStrandedExecutingInteraction, transitionedInteractions, } from './assistant-interaction-state.js';
|
|
4
4
|
export { ASSISTANT_INTERACTION_EXECUTING_GRACE_MS, ASSISTANT_INTERACTION_OUTCOME_RETENTION_MS, AssistantInteractionCapacityError, DEFAULT_MAX_PENDING_INTERACTIONS_PER_SESSION, } from './assistant-interaction-state.js';
|
|
5
5
|
export const ASSISTANT_SESSION_IDLE_MS = 30 * 60 * 1000;
|
|
6
|
-
|
|
7
|
-
* The only `server.assistant` fields that may reach a browser.
|
|
8
|
-
*
|
|
9
|
-
* It lives here, beside the record it types, so the allowlist and the shape it produces cannot drift
|
|
10
|
-
* apart: the projection in `packages/service` iterates this same list. A denylist here would be a type
|
|
11
|
-
* that lies — it once admitted `sessionClaims` key names, and would now admit the public surface's
|
|
12
|
-
* capability allowlist — so growth in the manifest must not be able to grow the browser payload.
|
|
13
|
-
*/
|
|
14
|
-
export const ASSISTANT_BROWSER_UI_FIELDS = [
|
|
15
|
-
'theme',
|
|
16
|
-
'layout',
|
|
17
|
-
'behavior',
|
|
18
|
-
'labels',
|
|
19
|
-
'presentation',
|
|
20
|
-
'suggestedPrompts',
|
|
21
|
-
'privacyUrl',
|
|
22
|
-
'termsUrl',
|
|
23
|
-
'locale',
|
|
24
|
-
'direction',
|
|
25
|
-
// Not appearance: the browser must know whether this deployment opted into projecting its tools to
|
|
26
|
-
// a page agent (ADR 0220). It travels the allowlist like everything else the page may see.
|
|
27
|
-
'webmcp',
|
|
28
|
-
];
|
|
6
|
+
export { ASSISTANT_BROWSER_UI_FIELDS } from './assistant-browser-fields.js';
|
|
29
7
|
/** Latest prompt messages retained for model continuity; turn admission is tracked separately. */
|
|
30
8
|
export const ASSISTANT_HISTORY_MAX_MESSAGES = 40;
|
|
31
9
|
export class InMemoryAssistantStore {
|
|
@@ -199,6 +177,19 @@ export class InMemoryAssistantStore {
|
|
|
199
177
|
}
|
|
200
178
|
return true;
|
|
201
179
|
}
|
|
180
|
+
async replaceLatestView(id, view) {
|
|
181
|
+
const session = this.#sessions.get(id);
|
|
182
|
+
if (!session)
|
|
183
|
+
return false;
|
|
184
|
+
const next = {
|
|
185
|
+
...session,
|
|
186
|
+
...(view === undefined ? {} : { latestView: structuredClone(view) }),
|
|
187
|
+
};
|
|
188
|
+
if (view === undefined)
|
|
189
|
+
delete next.latestView;
|
|
190
|
+
this.#sessions.set(id, next);
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
202
193
|
async claimModelToolUse(id, tool) {
|
|
203
194
|
const session = this.#sessions.get(id);
|
|
204
195
|
if (!session || session.modelToolUses.includes(tool))
|
|
@@ -319,6 +310,16 @@ export class InMemoryAssistantStore {
|
|
|
319
310
|
const interaction = this.#scopedInteraction(input);
|
|
320
311
|
return interaction ? cloneInteraction(interaction) : undefined;
|
|
321
312
|
}
|
|
313
|
+
async findPendingInteraction(input) {
|
|
314
|
+
this.#pruneInteractions(input.now);
|
|
315
|
+
const interaction = [...this.#interactions.values()]
|
|
316
|
+
.filter((candidate) => candidate.sessionId === input.sessionId &&
|
|
317
|
+
candidate.deploymentId === input.deploymentId &&
|
|
318
|
+
candidate.status === 'pending' &&
|
|
319
|
+
Date.parse(candidate.expiresAt) > input.now.getTime())
|
|
320
|
+
.sort((left, right) => Date.parse(right.createdAt) - Date.parse(left.createdAt))[0];
|
|
321
|
+
return interaction ? cloneInteraction(interaction) : undefined;
|
|
322
|
+
}
|
|
322
323
|
async consumeInteraction(id, sessionId, deploymentId, now) {
|
|
323
324
|
const result = this.#claimInteraction({ id, sessionId, deploymentId, now }, 'confirmation');
|
|
324
325
|
return result.disposition === 'claimed' && result.interaction.kind === 'confirmation'
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AssistantTranscriptEntry } from './assistant-transcript.js';
|
|
2
|
+
import type { AssistantViewAvailableData } from './assistant-view-availability.js';
|
|
3
|
+
export interface AssistantTranscriptEvent {
|
|
4
|
+
readonly event: string;
|
|
5
|
+
readonly data: Readonly<Record<string, unknown>>;
|
|
6
|
+
}
|
|
7
|
+
export interface AssistantRecoveredInteraction {
|
|
8
|
+
readonly event: 'tool_proposed' | 'input_requested';
|
|
9
|
+
readonly data: Readonly<Record<string, unknown>>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Project retained visual state through the ordinary assistant event protocol. The browser therefore
|
|
13
|
+
* has one parser and one rendering path for live and recovered turns; this function owns only ordering.
|
|
14
|
+
*/
|
|
15
|
+
export declare function assistantTranscriptEvents(input: {
|
|
16
|
+
readonly entries: readonly AssistantTranscriptEntry[];
|
|
17
|
+
readonly latestView?: AssistantViewAvailableData;
|
|
18
|
+
readonly pendingInteraction?: AssistantRecoveredInteraction;
|
|
19
|
+
readonly suggestions?: {
|
|
20
|
+
readonly phase: 'initial' | 'follow_up';
|
|
21
|
+
readonly prompts: readonly string[];
|
|
22
|
+
};
|
|
23
|
+
}): readonly AssistantTranscriptEvent[];
|
|
24
|
+
//# sourceMappingURL=assistant-transcript-events.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project retained visual state through the ordinary assistant event protocol. The browser therefore
|
|
3
|
+
* has one parser and one rendering path for live and recovered turns; this function owns only ordering.
|
|
4
|
+
*/
|
|
5
|
+
export function assistantTranscriptEvents(input) {
|
|
6
|
+
const events = [];
|
|
7
|
+
let open = false;
|
|
8
|
+
let awaitingAssistant = false;
|
|
9
|
+
for (const entry of input.entries) {
|
|
10
|
+
if (entry.role === 'user') {
|
|
11
|
+
if (open)
|
|
12
|
+
events.push({ event: 'message_completed', data: {} });
|
|
13
|
+
events.push({ event: 'message_started', data: { message: entry.text } });
|
|
14
|
+
open = true;
|
|
15
|
+
awaitingAssistant = true;
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
if (!open || !awaitingAssistant) {
|
|
19
|
+
if (open)
|
|
20
|
+
events.push({ event: 'message_completed', data: {} });
|
|
21
|
+
events.push({ event: 'resume_started', data: { tool: '' } });
|
|
22
|
+
open = true;
|
|
23
|
+
}
|
|
24
|
+
events.push({ event: 'content', data: { delta: entry.text } });
|
|
25
|
+
awaitingAssistant = false;
|
|
26
|
+
}
|
|
27
|
+
if (open)
|
|
28
|
+
events.push({ event: 'message_completed', data: {} });
|
|
29
|
+
if (input.latestView)
|
|
30
|
+
events.push({ event: 'view_available', data: { ...input.latestView } });
|
|
31
|
+
if (input.pendingInteraction)
|
|
32
|
+
events.push(input.pendingInteraction);
|
|
33
|
+
if (input.suggestions?.phase === 'follow_up') {
|
|
34
|
+
events.push({ event: 'suggested_prompts', data: { ...input.suggestions } });
|
|
35
|
+
}
|
|
36
|
+
events.push({ event: 'done', data: {} });
|
|
37
|
+
return events;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=assistant-transcript-events.js.map
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { AssistantHistoryMessage } from './assistant-store.js';
|
|
2
1
|
/**
|
|
3
2
|
* The bounded visible-transcript projection (ADR 0141/0201 amendments 2026-08-26): what a widget may
|
|
4
3
|
* repaint after a full-page navigation — the sign-in redirect above all — from the session's own
|
|
@@ -14,5 +13,10 @@ export interface AssistantTranscriptEntry {
|
|
|
14
13
|
readonly role: 'user' | 'assistant';
|
|
15
14
|
readonly text: string;
|
|
16
15
|
}
|
|
17
|
-
export
|
|
16
|
+
export interface AssistantTranscriptHistoryEntry {
|
|
17
|
+
readonly role: 'user' | 'assistant';
|
|
18
|
+
readonly content: string;
|
|
19
|
+
readonly kind?: 'visible' | 'narration';
|
|
20
|
+
}
|
|
21
|
+
export declare function visibleTranscript(history: readonly AssistantTranscriptHistoryEntry[]): readonly AssistantTranscriptEntry[];
|
|
18
22
|
//# sourceMappingURL=assistant-transcript.d.ts.map
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The bounded visible-transcript projection (ADR 0141/0201 amendments 2026-08-26): what a widget may
|
|
3
|
+
* repaint after a full-page navigation — the sign-in redirect above all — from the session's own
|
|
4
|
+
* short-lived history. Transport-free like every gateway decision; `packages/service` adapts.
|
|
5
|
+
*
|
|
6
|
+
* Only rows explicitly tagged `visible` project. Everything else fails closed out of the transcript:
|
|
7
|
+
* `narration` rows are model-facing scaffolding (resolution summaries carrying tool output,
|
|
8
|
+
* `[platform]` resume prompts the visitor never saw), and an untagged legacy row cannot prove which
|
|
9
|
+
* it was. This is a read-only projection over state that already exists and already expires with the
|
|
10
|
+
* session — it is not a durable transcript, and nothing here may extend a retention window.
|
|
11
|
+
*/
|
|
1
12
|
export function visibleTranscript(history) {
|
|
2
13
|
return history
|
|
3
14
|
.filter((entry) => entry.kind === 'visible')
|
|
@@ -14,6 +14,14 @@ export interface AssistantViewAvailableData {
|
|
|
14
14
|
readonly allowedOpenDomains?: readonly string[];
|
|
15
15
|
readonly replayed?: true;
|
|
16
16
|
}
|
|
17
|
+
/** Persisted renderer descriptor: bounded public data only, never HTML or a resource body. */
|
|
18
|
+
export interface AssistantRecoverableView {
|
|
19
|
+
readonly id: string;
|
|
20
|
+
readonly tool: string;
|
|
21
|
+
readonly result: unknown;
|
|
22
|
+
readonly arguments?: unknown;
|
|
23
|
+
}
|
|
24
|
+
export declare function recoverableAssistantView(view: Pick<AssistantViewAvailableData, 'id' | 'tool' | 'result' | 'arguments'>): AssistantRecoverableView;
|
|
17
25
|
/** A declared widget the completed tool could not surface — reported so the drop is never silent. */
|
|
18
26
|
export interface AssistantViewUnresolved {
|
|
19
27
|
readonly tool: string;
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { injectWidgetBridge } from '@noodle-borg/protocol';
|
|
2
2
|
const MCP_APP_MIME_TYPE = 'text/html;profile=mcp-app';
|
|
3
|
+
export function recoverableAssistantView(view) {
|
|
4
|
+
return {
|
|
5
|
+
id: view.id,
|
|
6
|
+
tool: view.tool,
|
|
7
|
+
result: structuredClone(view.result),
|
|
8
|
+
...(view.arguments === undefined ? {} : { arguments: structuredClone(view.arguments) }),
|
|
9
|
+
};
|
|
10
|
+
}
|
|
3
11
|
/**
|
|
4
12
|
* Resolve a self-contained, statically compiled MCP App document for the embedded host. The linked
|
|
5
13
|
* resource must be present in the same compiled artifact and carry the MCP App MIME type; arbitrary
|
|
@@ -19,6 +19,8 @@ export interface AssistantElevationRecord {
|
|
|
19
19
|
readonly tenant: TenantRef;
|
|
20
20
|
/** The capability the visitor was refused, carried so the audit says what they signed in for. */
|
|
21
21
|
readonly tool: string;
|
|
22
|
+
/** Canonical server-side snapshot of handles eligible when this ticket was issued. */
|
|
23
|
+
readonly claimableStateHandles: readonly string[];
|
|
22
24
|
readonly continuationHash: string;
|
|
23
25
|
readonly createdAt: string;
|
|
24
26
|
readonly expiresAt: string;
|
|
@@ -48,6 +50,7 @@ export interface AssistantElevationStore {
|
|
|
48
50
|
readonly sessionId: string;
|
|
49
51
|
readonly tenant: TenantRef;
|
|
50
52
|
readonly tool: string;
|
|
53
|
+
readonly claimableStateHandles?: readonly string[];
|
|
51
54
|
readonly now: Date;
|
|
52
55
|
}): Promise<{
|
|
53
56
|
readonly elevation: AssistantElevationRecord;
|
|
@@ -66,10 +66,16 @@ export type ElevationResult = {
|
|
|
66
66
|
readonly token: string;
|
|
67
67
|
/** What the visitor was refused before signing in, for the audit trail. */
|
|
68
68
|
readonly tool: string;
|
|
69
|
+
/** Whether one-shot auto-resume was actually armed after pending-interaction suppression. */
|
|
70
|
+
readonly resumeArmed: boolean;
|
|
69
71
|
} | {
|
|
70
72
|
readonly ok: false;
|
|
71
73
|
readonly status: 403 | 409;
|
|
72
|
-
readonly code: 'elevation_ticket_invalid' | 'elevation_ticket_expired' | 'elevation_tenant_mismatch' | 'elevation_session_unavailable' | 'elevation_already_signed_in';
|
|
74
|
+
readonly code: 'elevation_ticket_invalid' | 'elevation_ticket_expired' | 'elevation_tenant_mismatch' | 'elevation_session_unavailable' | 'elevation_already_signed_in' | 'elevation_state_conflict';
|
|
73
75
|
};
|
|
76
|
+
/** One commit boundary for ticket spend, state adoption, session rebind, and audit. */
|
|
77
|
+
export interface AssistantElevationCoordinator {
|
|
78
|
+
complete(request: ElevationRequest): Promise<ElevationResult>;
|
|
79
|
+
}
|
|
74
80
|
export declare function completeElevation(request: ElevationRequest, ports: ElevationPorts): Promise<ElevationResult>;
|
|
75
81
|
//# sourceMappingURL=elevation.d.ts.map
|
|
@@ -7,6 +7,7 @@ export declare class InMemoryAssistantElevationStore implements AssistantElevati
|
|
|
7
7
|
readonly sessionId: string;
|
|
8
8
|
readonly tenant: TenantRef;
|
|
9
9
|
readonly tool: string;
|
|
10
|
+
readonly claimableStateHandles?: readonly string[];
|
|
10
11
|
readonly now: Date;
|
|
11
12
|
}): Promise<{
|
|
12
13
|
readonly elevation: AssistantElevationRecord;
|
|
@@ -15,6 +15,7 @@ export class InMemoryAssistantElevationStore {
|
|
|
15
15
|
sessionId: input.sessionId,
|
|
16
16
|
tenant: input.tenant,
|
|
17
17
|
tool: input.tool,
|
|
18
|
+
claimableStateHandles: [...(input.claimableStateHandles ?? [])].sort(),
|
|
18
19
|
continuationHash: elevationDigest(continuation),
|
|
19
20
|
createdAt: input.now.toISOString(),
|
|
20
21
|
expiresAt: new Date(input.now.getTime() + ASSISTANT_ELEVATION_TTL_MS).toISOString(),
|
|
@@ -15,6 +15,7 @@ export * from './assistant-presentation.js';
|
|
|
15
15
|
export * from './assistant-sensitive-values.js';
|
|
16
16
|
export * from './assistant-store.js';
|
|
17
17
|
export * from './assistant-transcript.js';
|
|
18
|
+
export * from './assistant-transcript-events.js';
|
|
18
19
|
export * from './assistant-view-availability.js';
|
|
19
20
|
export * from './elevation.js';
|
|
20
21
|
export * from './elevation-store.js';
|
|
@@ -15,6 +15,7 @@ export * from './assistant-presentation.js';
|
|
|
15
15
|
export * from './assistant-sensitive-values.js';
|
|
16
16
|
export * from './assistant-store.js';
|
|
17
17
|
export * from './assistant-transcript.js';
|
|
18
|
+
export * from './assistant-transcript-events.js';
|
|
18
19
|
export * from './assistant-view-availability.js';
|
|
19
20
|
export * from './elevation.js';
|
|
20
21
|
export * from './elevation-store.js';
|
|
@@ -39,9 +39,10 @@
|
|
|
39
39
|
"@noodle-borg/compiler": "0.0.0",
|
|
40
40
|
"@noodle-borg/connector-defs": "0.0.0",
|
|
41
41
|
"@noodle-borg/module": "0.0.0",
|
|
42
|
+
"@noodle-borg/module-audit": "0.0.0",
|
|
42
43
|
"@noodle-borg/protocol": "0.0.0",
|
|
43
44
|
"@noodle-borg/runtime": "0.0.0",
|
|
44
|
-
"@noodleseed/assistant": "1.
|
|
45
|
+
"@noodleseed/assistant": "1.32.0",
|
|
45
46
|
"zod": "^4.4.3"
|
|
46
47
|
},
|
|
47
48
|
"devDependencies": {
|
|
@@ -134,7 +134,7 @@ export type AssistantModel = OpenAICompatibleModel | NoodleManagedModel;
|
|
|
134
134
|
* `${user.claims.<key>}` in tool fulfilment; `exposeToModel: true` additionally places the value
|
|
135
135
|
* in the assistant's identity system line so the model can use it directly.
|
|
136
136
|
*/
|
|
137
|
-
|
|
137
|
+
interface SessionClaimDeclaration {
|
|
138
138
|
readonly exposeToModel?: boolean;
|
|
139
139
|
}
|
|
140
140
|
/**
|
|
@@ -275,4 +275,5 @@ export declare function openAICompatible(input: OpenAICompatibleModelInput): Ope
|
|
|
275
275
|
/** Use Noodle Seed Cloud's operator-selected model. Provider details never enter authored source. */
|
|
276
276
|
export declare function noodleManaged(): NoodleManagedModel;
|
|
277
277
|
export declare function embeddedAssistant(input: EmbeddedAssistantOptions): EmbeddedAssistantConfig;
|
|
278
|
+
export {};
|
|
278
279
|
//# sourceMappingURL=assistant.d.ts.map
|
|
@@ -15,8 +15,6 @@ export type { ConnectionBinding, ConnectionRef, ConnectionSource, GoogleWorkload
|
|
|
15
15
|
type ManifestV2ConnectorBinding = NonNullable<NonNullable<Extract<Manifest, {
|
|
16
16
|
manifestVersion: '2';
|
|
17
17
|
}>['connectors']>[string]['binding']>;
|
|
18
|
-
/** Internal manifest projection: clone readonly author inputs to the mutable generated schema shape. */
|
|
19
|
-
export declare function toManifestConnectionBinding(binding: ConnectionBinding): ManifestV2ConnectorBinding;
|
|
20
18
|
export declare function toManifestConnectorRef(connector: ConnectorRef): {
|
|
21
19
|
readonly id: string;
|
|
22
20
|
readonly version: string;
|
|
@@ -25,7 +25,7 @@ export function bind(connector, options) {
|
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
/** Internal manifest projection: clone readonly author inputs to the mutable generated schema shape. */
|
|
28
|
-
|
|
28
|
+
function toManifestConnectionBinding(binding) {
|
|
29
29
|
const source = binding.connection.source;
|
|
30
30
|
return {
|
|
31
31
|
profile: binding.profile,
|
|
@@ -33,9 +33,9 @@ export function prepareAuthoringRuntimeDir(dir, options) {
|
|
|
33
33
|
'./react': './react.mjs',
|
|
34
34
|
},
|
|
35
35
|
}));
|
|
36
|
-
writeFileSync(join(self, 'index.mjs'), "export { annotations, asset, authenticatedWebsite, bind, clientCredentials, connector, connection, customerAuth, customerEndpoint, embeddedAssistant, externalExchange, file, gmailConnector, googleWorkloadIdentity, handoffSession, knowledge, managedSecret, noodleManaged, openAICompatible, prompt, publicWebsite, resource, secret, server, site, tool, variable, when, z } from '@noodle-borg/authoring';\n");
|
|
36
|
+
writeFileSync(join(self, 'index.mjs'), "export { algolia, annotations, asset, authenticatedWebsite, bind, clientCredentials, connector, connection, customerAuth, customerEndpoint, embeddedAssistant, externalExchange, file, firecrawl, gmailConnector, googleWorkloadIdentity, handoffSession, knowledge, managedSecret, meilisearch, noodleManaged, openAICompatible, prompt, publicWebsite, resource, secret, server, site, tavily, tool, variable, when, z } from '@noodle-borg/authoring';\n");
|
|
37
37
|
writeFileSync(join(self, 'platform.mjs'), "export { noodlePlatform, noodlePlatformCatalog } from '@noodle-borg/authoring';\n");
|
|
38
|
-
writeFileSync(join(self, 'react.mjs'), "export
|
|
38
|
+
writeFileSync(join(self, 'react.mjs'), "export * from '@noodle-borg/authoring/react';\n");
|
|
39
39
|
}
|
|
40
40
|
function pathExists(path) {
|
|
41
41
|
try {
|
|
@@ -44,12 +44,12 @@ export type ModelContextUpdate = {
|
|
|
44
44
|
}[];
|
|
45
45
|
readonly structuredContent?: Readonly<Record<string, unknown>>;
|
|
46
46
|
};
|
|
47
|
-
|
|
47
|
+
type RuntimeBrandAsset = {
|
|
48
48
|
readonly uri: string;
|
|
49
49
|
readonly darkUri?: string;
|
|
50
50
|
readonly alt: string;
|
|
51
51
|
};
|
|
52
|
-
|
|
52
|
+
type RuntimeBrandTheme = {
|
|
53
53
|
readonly surface?: string;
|
|
54
54
|
readonly surfaceRaised?: string;
|
|
55
55
|
readonly surfaceMuted?: string;
|
|
@@ -108,4 +108,5 @@ export declare function globalViewState(): Record<string, unknown>;
|
|
|
108
108
|
export declare function setGlobalViewState(value: Record<string, unknown>): void;
|
|
109
109
|
export declare function globalLayout(): LayoutState;
|
|
110
110
|
export declare function globalBranding(): RuntimeBranding;
|
|
111
|
+
export {};
|
|
111
112
|
//# sourceMappingURL=bridge.d.ts.map
|
|
@@ -58,8 +58,6 @@ export type RadioGroupProps = Omit<HTMLAttributes<HTMLDivElement>, 'defaultValue
|
|
|
58
58
|
readonly options: readonly RadioOption[];
|
|
59
59
|
readonly value?: string;
|
|
60
60
|
readonly defaultValue?: string;
|
|
61
|
-
/** @deprecated Use `onValueChange`; retained for source compatibility. */
|
|
62
|
-
readonly onChange?: (value: string) => void;
|
|
63
61
|
readonly onValueChange?: (value: string) => void;
|
|
64
62
|
/** Shared radio `name`; defaults to a stable generated id. */
|
|
65
63
|
readonly name?: string;
|
|
@@ -71,8 +69,6 @@ export declare const RadioGroup: import("react").ForwardRefExoticComponent<Omit<
|
|
|
71
69
|
readonly options: readonly RadioOption[];
|
|
72
70
|
readonly value?: string;
|
|
73
71
|
readonly defaultValue?: string;
|
|
74
|
-
/** @deprecated Use `onValueChange`; retained for source compatibility. */
|
|
75
|
-
readonly onChange?: (value: string) => void;
|
|
76
72
|
readonly onValueChange?: (value: string) => void;
|
|
77
73
|
/** Shared radio `name`; defaults to a stable generated id. */
|
|
78
74
|
readonly name?: string;
|
|
@@ -101,8 +97,6 @@ export type SegmentedControlProps = Omit<HTMLAttributes<HTMLDivElement>, 'defaul
|
|
|
101
97
|
readonly options: readonly SegmentedOption[];
|
|
102
98
|
readonly value?: string;
|
|
103
99
|
readonly defaultValue?: string;
|
|
104
|
-
/** @deprecated Use `onValueChange`; retained for source compatibility. */
|
|
105
|
-
readonly onChange?: (value: string) => void;
|
|
106
100
|
readonly onValueChange?: (value: string) => void;
|
|
107
101
|
readonly name?: string;
|
|
108
102
|
readonly disabled?: boolean;
|
|
@@ -113,8 +107,6 @@ export declare const SegmentedControl: import("react").ForwardRefExoticComponent
|
|
|
113
107
|
readonly options: readonly SegmentedOption[];
|
|
114
108
|
readonly value?: string;
|
|
115
109
|
readonly defaultValue?: string;
|
|
116
|
-
/** @deprecated Use `onValueChange`; retained for source compatibility. */
|
|
117
|
-
readonly onChange?: (value: string) => void;
|
|
118
110
|
readonly onValueChange?: (value: string) => void;
|
|
119
111
|
readonly name?: string;
|
|
120
112
|
readonly disabled?: boolean;
|
|
@@ -152,7 +152,7 @@ export const Checkbox = forwardRef(function Checkbox({ label, className, onChang
|
|
|
152
152
|
? box
|
|
153
153
|
: createElement('label', { className: 'nsr-check' }, box, createElement('span', null, label));
|
|
154
154
|
});
|
|
155
|
-
export const RadioGroup = forwardRef(function RadioGroup({ options, value, defaultValue,
|
|
155
|
+
export const RadioGroup = forwardRef(function RadioGroup({ options, value, defaultValue, onValueChange, name, direction = 'column', disabled, required, className, ...props }, ref) {
|
|
156
156
|
const fallbackName = useId();
|
|
157
157
|
const groupName = name ?? fallbackName;
|
|
158
158
|
const field = useFieldControlProps({ ...props, required }, 'group');
|
|
@@ -174,7 +174,6 @@ export const RadioGroup = forwardRef(function RadioGroup({ options, value, defau
|
|
|
174
174
|
required: field.required,
|
|
175
175
|
disabled: disabled || option.disabled,
|
|
176
176
|
onChange: () => {
|
|
177
|
-
onChange?.(option.value);
|
|
178
177
|
onValueChange?.(option.value);
|
|
179
178
|
},
|
|
180
179
|
}), createElement('span', null, option.label))));
|
|
@@ -208,7 +207,7 @@ export const Slider = forwardRef(function Slider({ className, ...props }, ref) {
|
|
|
208
207
|
});
|
|
209
208
|
});
|
|
210
209
|
/** Single-select value picker implemented with native radios for keyboard and form behavior. */
|
|
211
|
-
export const SegmentedControl = forwardRef(function SegmentedControl({ options, value, defaultValue,
|
|
210
|
+
export const SegmentedControl = forwardRef(function SegmentedControl({ options, value, defaultValue, onValueChange, name, disabled, required, className, ...props }, ref) {
|
|
212
211
|
const fallbackName = useId();
|
|
213
212
|
const groupName = name ?? fallbackName;
|
|
214
213
|
const field = useFieldControlProps({ ...props, required }, 'group');
|
|
@@ -234,7 +233,6 @@ export const SegmentedControl = forwardRef(function SegmentedControl({ options,
|
|
|
234
233
|
required: field.required,
|
|
235
234
|
disabled: disabled || option.disabled,
|
|
236
235
|
onChange: () => {
|
|
237
|
-
onChange?.(option.value);
|
|
238
236
|
onValueChange?.(option.value);
|
|
239
237
|
},
|
|
240
238
|
}), createElement('span', { className: 'nsr-segmented-label' }, option.label))));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type AppFlow, type AppFlowConfig } from './app-flow.js';
|
|
2
2
|
import { type DisplayMode, type LayoutState, type ModelContextUpdate, type NoodleReactBridge, type RuntimeBranding, type ToolResult } from './bridge.js';
|
|
3
3
|
import { type HandoffController } from './handoff.js';
|
|
4
|
-
import { createViewStore
|
|
4
|
+
import { createViewStore } from './store.js';
|
|
5
5
|
export type ToolStatus = 'idle' | 'pending' | 'success' | 'error';
|
|
6
6
|
export type CallToolState = {
|
|
7
7
|
readonly status: ToolStatus;
|
|
@@ -54,5 +54,5 @@ export declare function useSendFollowUpMessage(): (message: {
|
|
|
54
54
|
export declare function useUpdateModelContext(): (update: ModelContextUpdate) => Promise<void>;
|
|
55
55
|
/** Publish a portable, structured widget lifecycle summary through the standard model-context path. */
|
|
56
56
|
export declare function useWidgetLifecycle(widgetName: string): (lifecycle: 'mounted' | 'submitted' | 'cancelled' | 'dismissed', summary?: Readonly<Record<string, unknown>>) => Promise<void>;
|
|
57
|
-
export type { DisplayMode, LayoutState, ModelContextUpdate, NoodleReactBridge, RuntimeBranding,
|
|
57
|
+
export type { DisplayMode, LayoutState, ModelContextUpdate, NoodleReactBridge, RuntimeBranding, ToolResult, };
|
|
58
58
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -19,6 +19,8 @@ export interface StateHandleOptions {
|
|
|
19
19
|
readonly version: string;
|
|
20
20
|
readonly scope?: StateHandleScope;
|
|
21
21
|
readonly ttlSeconds?: number;
|
|
22
|
+
/** Move this caller-scoped, finite-lived state to the authenticated caller during ticket elevation. */
|
|
23
|
+
readonly claimOnAuthentication?: true;
|
|
22
24
|
}
|
|
23
25
|
export interface ServerOptions {
|
|
24
26
|
readonly title: string;
|
|
@@ -231,6 +231,9 @@ class ServerBuilder {
|
|
|
231
231
|
version: handle.version,
|
|
232
232
|
...(handle.scope !== undefined ? { scope: handle.scope } : {}),
|
|
233
233
|
...(handle.ttlSeconds !== undefined ? { ttlSeconds: handle.ttlSeconds } : {}),
|
|
234
|
+
...(handle.claimOnAuthentication === true
|
|
235
|
+
? { claimOnAuthentication: true }
|
|
236
|
+
: {}),
|
|
234
237
|
},
|
|
235
238
|
])),
|
|
236
239
|
},
|