@noodleseed/one 0.35.2 → 0.37.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/commands/catalog-data-resources.d.ts.map +1 -1
- package/dist/commands/catalog-data-resources.js +2 -1
- package/dist/commands/catalog-data-resources.js.map +1 -1
- package/dist/commands/mcp-apps.d.ts.map +1 -1
- package/dist/commands/mcp-apps.js +15 -8
- package/dist/commands/mcp-apps.js.map +1 -1
- package/dist/commands/policy-ops.d.ts.map +1 -1
- package/dist/commands/policy-ops.js +57 -15
- package/dist/commands/policy-ops.js.map +1 -1
- package/dist/widget-scaffold-template.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js +6 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.js +2 -0
- package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +9 -9
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +7 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +76 -8
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +2 -2
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +90 -9
- package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js.map +1 -1
- package/node_modules/@noodle-borg/auth/dist/jwt-issuer.d.ts +4 -0
- package/node_modules/@noodle-borg/auth/dist/jwt-issuer.d.ts.map +1 -1
- package/node_modules/@noodle-borg/auth/dist/jwt-issuer.js +2 -0
- package/node_modules/@noodle-borg/auth/dist/jwt-issuer.js.map +1 -1
- package/node_modules/@noodle-borg/auth/dist/verify.d.ts +4 -0
- package/node_modules/@noodle-borg/auth/dist/verify.d.ts.map +1 -1
- package/node_modules/@noodle-borg/auth/dist/verify.js +26 -0
- package/node_modules/@noodle-borg/auth/dist/verify.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/context.d.ts +25 -0
- package/node_modules/@noodle-borg/authoring/dist/context.d.ts.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/context.js +34 -0
- package/node_modules/@noodle-borg/authoring/dist/context.js.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts +2 -1
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react/bridge.d.ts +9 -0
- package/node_modules/@noodle-borg/authoring/dist/react/bridge.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react/bridge.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react/hooks.d.ts +8 -2
- package/node_modules/@noodle-borg/authoring/dist/react/hooks.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react/hooks.js +46 -1
- package/node_modules/@noodle-borg/authoring/dist/react/hooks.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react/index.d.ts +2 -2
- package/node_modules/@noodle-borg/authoring/dist/react/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react/index.js +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react/index.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react/model-context-validation.d.ts +4 -0
- package/node_modules/@noodle-borg/authoring/dist/react/model-context-validation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react/model-context-validation.js +94 -0
- package/node_modules/@noodle-borg/authoring/dist/react/model-context-validation.js.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/recording.d.ts +19 -2
- package/node_modules/@noodle-borg/authoring/dist/recording.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/recording.js +71 -8
- package/node_modules/@noodle-borg/authoring/dist/recording.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/server.d.ts +23 -0
- package/node_modules/@noodle-borg/authoring/dist/server.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/server.js +6 -0
- package/node_modules/@noodle-borg/authoring/dist/server.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/config.d.ts +2 -2
- package/node_modules/@noodle-borg/compiler/dist/artifact/config.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/config.js +4 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/config.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/consent.d.ts +4 -6
- package/node_modules/@noodle-borg/compiler/dist/artifact/consent.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/consent.js +6 -6
- package/node_modules/@noodle-borg/compiler/dist/artifact/consent.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +23 -6
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.js +7 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.js +26 -6
- package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/confirmation-flow.d.ts +9 -0
- package/node_modules/@noodle-borg/compiler/dist/confirmation-flow.d.ts.map +1 -0
- package/node_modules/@noodle-borg/compiler/dist/confirmation-flow.js +36 -0
- package/node_modules/@noodle-borg/compiler/dist/confirmation-flow.js.map +1 -0
- package/node_modules/@noodle-borg/compiler/dist/context-compile.d.ts +18 -0
- package/node_modules/@noodle-borg/compiler/dist/context-compile.d.ts.map +1 -0
- package/node_modules/@noodle-borg/compiler/dist/context-compile.js +28 -0
- package/node_modules/@noodle-borg/compiler/dist/context-compile.js.map +1 -0
- package/node_modules/@noodle-borg/compiler/dist/elicitation-schema.d.ts +5 -0
- package/node_modules/@noodle-borg/compiler/dist/elicitation-schema.d.ts.map +1 -0
- package/node_modules/@noodle-borg/compiler/dist/elicitation-schema.js +108 -0
- package/node_modules/@noodle-borg/compiler/dist/elicitation-schema.js.map +1 -0
- package/node_modules/@noodle-borg/compiler/dist/errors.d.ts +1 -1
- package/node_modules/@noodle-borg/compiler/dist/errors.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.d.ts +3 -1
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.js +22 -4
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-structural.d.ts +8 -3
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-structural.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-structural.js +16 -3
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-structural.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/index.d.ts +2 -2
- package/node_modules/@noodle-borg/compiler/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/index.js +1 -1
- package/node_modules/@noodle-borg/compiler/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/expression.d.ts +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/expression.js +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/expression.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +37 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +27 -4
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
- package/node_modules/@noodle-borg/module/dist/contract.d.ts +2 -0
- package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
- package/node_modules/@noodle-borg/module/dist/contract.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/confirmation-elicitation.d.ts +20 -0
- package/node_modules/@noodle-borg/protocol/dist/confirmation-elicitation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/protocol/dist/confirmation-elicitation.js +159 -0
- package/node_modules/@noodle-borg/protocol/dist/confirmation-elicitation.js.map +1 -0
- package/node_modules/@noodle-borg/protocol/dist/context-tool.d.ts +9 -0
- package/node_modules/@noodle-borg/protocol/dist/context-tool.d.ts.map +1 -0
- package/node_modules/@noodle-borg/protocol/dist/context-tool.js +76 -0
- package/node_modules/@noodle-borg/protocol/dist/context-tool.js.map +1 -0
- package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts +1 -1
- package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/mapping.js +10 -22
- package/node_modules/@noodle-borg/protocol/dist/mapping.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts +9 -1
- package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/sdk-server.js +54 -6
- package/node_modules/@noodle-borg/protocol/dist/sdk-server.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/stateless.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/stateless.js +8 -1
- package/node_modules/@noodle-borg/protocol/dist/stateless.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/tool-interaction.d.ts +29 -0
- package/node_modules/@noodle-borg/protocol/dist/tool-interaction.d.ts.map +1 -0
- package/node_modules/@noodle-borg/protocol/dist/tool-interaction.js +74 -0
- package/node_modules/@noodle-borg/protocol/dist/tool-interaction.js.map +1 -0
- package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.js +9 -4
- package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/widget/model-context-bootstrap.d.ts +3 -0
- package/node_modules/@noodle-borg/protocol/dist/widget/model-context-bootstrap.d.ts.map +1 -0
- package/node_modules/@noodle-borg/protocol/dist/widget/model-context-bootstrap.js +80 -0
- package/node_modules/@noodle-borg/protocol/dist/widget/model-context-bootstrap.js.map +1 -0
- package/node_modules/@noodle-borg/protocol/dist/widget/openai-bridge.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/widget/openai-bridge.js +16 -4
- package/node_modules/@noodle-borg/protocol/dist/widget/openai-bridge.js.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/widget/react-bridge-bootstrap.d.ts +1 -1
- package/node_modules/@noodle-borg/protocol/dist/widget/react-bridge-bootstrap.d.ts.map +1 -1
- package/node_modules/@noodle-borg/protocol/dist/widget/react-bridge-bootstrap.js +2 -0
- package/node_modules/@noodle-borg/protocol/dist/widget/react-bridge-bootstrap.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/ambient-context.d.ts +10 -0
- package/node_modules/@noodle-borg/runtime/dist/ambient-context.d.ts.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/ambient-context.js +51 -0
- package/node_modules/@noodle-borg/runtime/dist/ambient-context.js.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/confirmation.d.ts +18 -0
- package/node_modules/@noodle-borg/runtime/dist/confirmation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/confirmation.js +263 -0
- package/node_modules/@noodle-borg/runtime/dist/confirmation.js.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/connector/types.d.ts +4 -0
- package/node_modules/@noodle-borg/runtime/dist/connector/types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/connector/types.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/context-bounds.d.ts +15 -0
- package/node_modules/@noodle-borg/runtime/dist/context-bounds.d.ts.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/context-bounds.js +123 -0
- package/node_modules/@noodle-borg/runtime/dist/context-bounds.js.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/elicitation-response.d.ts +13 -0
- package/node_modules/@noodle-borg/runtime/dist/elicitation-response.d.ts.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/elicitation-response.js +26 -0
- package/node_modules/@noodle-borg/runtime/dist/elicitation-response.js.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/execute.d.ts +69 -7
- package/node_modules/@noodle-borg/runtime/dist/execute.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/execute.js +136 -33
- package/node_modules/@noodle-borg/runtime/dist/execute.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/index.d.ts +6 -2
- package/node_modules/@noodle-borg/runtime/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/index.js +5 -1
- package/node_modules/@noodle-borg/runtime/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/interactive.d.ts +8 -0
- package/node_modules/@noodle-borg/runtime/dist/interactive.d.ts.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/interactive.js +138 -0
- package/node_modules/@noodle-borg/runtime/dist/interactive.js.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/invocation-context.d.ts +22 -0
- package/node_modules/@noodle-borg/runtime/dist/invocation-context.d.ts.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/invocation-context.js +2 -0
- package/node_modules/@noodle-borg/runtime/dist/invocation-context.js.map +1 -0
- package/node_modules/@noodle-borg/runtime/dist/result.d.ts +135 -3
- package/node_modules/@noodle-borg/runtime/dist/result.d.ts.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/result.js +9 -1
- package/node_modules/@noodle-borg/runtime/dist/result.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/assistant-context.d.ts +25 -0
- package/node_modules/@noodle-borg/service/dist/assistant-context.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/assistant-context.js +130 -0
- package/node_modules/@noodle-borg/service/dist/assistant-context.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/assistant-interaction-state.d.ts +181 -0
- package/node_modules/@noodle-borg/service/dist/assistant-interaction-state.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/assistant-interaction-state.js +293 -0
- package/node_modules/@noodle-borg/service/dist/assistant-interaction-state.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/assistant-interactive.d.ts +92 -0
- package/node_modules/@noodle-borg/service/dist/assistant-interactive.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/assistant-interactive.js +219 -0
- package/node_modules/@noodle-borg/service/dist/assistant-interactive.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/assistant-presentation.d.ts +24 -0
- package/node_modules/@noodle-borg/service/dist/assistant-presentation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/assistant-presentation.js +151 -0
- package/node_modules/@noodle-borg/service/dist/assistant-presentation.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/assistant-sensitive-values.d.ts +3 -0
- package/node_modules/@noodle-borg/service/dist/assistant-sensitive-values.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/assistant-sensitive-values.js +6 -0
- package/node_modules/@noodle-borg/service/dist/assistant-sensitive-values.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/assistant-store.d.ts +38 -11
- package/node_modules/@noodle-borg/service/dist/assistant-store.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/assistant-store.js +111 -13
- package/node_modules/@noodle-borg/service/dist/assistant-store.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/assistant-view-availability.d.ts +23 -0
- package/node_modules/@noodle-borg/service/dist/assistant-view-availability.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/assistant-view-availability.js +24 -0
- package/node_modules/@noodle-borg/service/dist/assistant-view-availability.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/commercial-plans.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/commercial-plans.js +5 -6
- package/node_modules/@noodle-borg/service/dist/commercial-plans.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/customer-verifier.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/customer-verifier.js +6 -0
- package/node_modules/@noodle-borg/service/dist/customer-verifier.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.d.ts +1 -2
- package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.js +1 -2
- package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/invocation-context.d.ts +20 -0
- package/node_modules/@noodle-borg/service/dist/invocation-context.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/invocation-context.js +51 -0
- package/node_modules/@noodle-borg/service/dist/invocation-context.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/main.js +0 -9
- package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/mcp-public-routing.d.ts +10 -0
- package/node_modules/@noodle-borg/service/dist/mcp-public-routing.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/mcp-public-routing.js +16 -0
- package/node_modules/@noodle-borg/service/dist/mcp-public-routing.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.d.ts +17 -0
- package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.js +14 -0
- package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/google.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/oauth/google.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/google.js +11 -1
- package/node_modules/@noodle-borg/service/dist/oauth/google.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/identity-preferences.d.ts +27 -0
- package/node_modules/@noodle-borg/service/dist/oauth/identity-preferences.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/identity-preferences.js +34 -0
- package/node_modules/@noodle-borg/service/dist/oauth/identity-preferences.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/microsoft.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/microsoft.js +6 -0
- package/node_modules/@noodle-borg/service/dist/oauth/microsoft.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/provider.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/provider.js +48 -92
- package/node_modules/@noodle-borg/service/dist/oauth/provider.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.js +29 -9
- package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/store.d.ts +6 -0
- package/node_modules/@noodle-borg/service/dist/oauth/store.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/store.js +4 -0
- package/node_modules/@noodle-borg/service/dist/oauth/store.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.d.ts +45 -0
- package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.js +110 -0
- package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.d.ts +19 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.js +228 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-dispatch.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-dispatch.js +7 -2
- package/node_modules/@noodle-borg/service/dist/routes/assistant-dispatch.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-replay.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-replay.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-replay.js +126 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-replay.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-request.d.ts +23 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-request.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-request.js +29 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-request.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-resolution.d.ts +17 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-resolution.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-resolution.js +47 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-resolution.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-stream.d.ts +20 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-stream.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-stream.js +55 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-stream.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.d.ts +7 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.js +427 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-route-http.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-route-http.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-route-http.js +50 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant-route-http.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/assistant.d.ts +3 -3
- package/node_modules/@noodle-borg/service/dist/routes/assistant.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/assistant.js +49 -295
- package/node_modules/@noodle-borg/service/dist/routes/assistant.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/plans.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/plans.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/plans.js +92 -4
- package/node_modules/@noodle-borg/service/dist/routes/plans.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.d.ts +0 -6
- package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.js +0 -6
- package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.js +4 -10
- package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-assistant-interaction-writes.d.ts +6 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-assistant-interaction-writes.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-assistant-interaction-writes.js +36 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-assistant-interaction-writes.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-assistant-interactions.d.ts +25 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-assistant-interactions.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-assistant-interactions.js +330 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-assistant-interactions.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-assistant.d.ts +17 -3
- package/node_modules/@noodle-borg/service/dist/store/postgres-assistant.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-assistant.js +30 -37
- package/node_modules/@noodle-borg/service/dist/store/postgres-assistant.js.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +8 -1
- package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/handler.js +20 -2
- package/node_modules/@noodle-borg/transport-http/dist/handler.js.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/index.d.ts +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/transport-http/package.json +1 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts +117 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts.map +1 -1
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js +135 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js.map +1 -1
- package/package.json +1 -1
- package/node_modules/@noodle-borg/service/dist/free-tier.d.ts +0 -33
- package/node_modules/@noodle-borg/service/dist/free-tier.d.ts.map +0 -1
- package/node_modules/@noodle-borg/service/dist/free-tier.js +0 -77
- package/node_modules/@noodle-borg/service/dist/free-tier.js.map +0 -1
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import { isCredentialShapedAssistantText } from './assistant-sensitive-values.js';
|
|
2
|
+
export const DEFAULT_MAX_PENDING_INTERACTIONS_PER_SESSION = 8;
|
|
3
|
+
export const ASSISTANT_INTERACTION_OUTCOME_RETENTION_MS = 24 * 60 * 60 * 1000;
|
|
4
|
+
/** Recovery grace for an in-flight action before its outcome becomes unknowable and payload is scrubbed. */
|
|
5
|
+
export const ASSISTANT_INTERACTION_EXECUTING_GRACE_MS = 60 * 60 * 1000;
|
|
6
|
+
export const ASSISTANT_INTERACTION_UNKNOWN_OUTCOME = {
|
|
7
|
+
code: 'interaction_outcome_unknown',
|
|
8
|
+
summary: 'The action may have completed, but its outcome could not be verified.',
|
|
9
|
+
};
|
|
10
|
+
export class AssistantInteractionCapacityError extends Error {
|
|
11
|
+
code = 'pending_interaction_limit';
|
|
12
|
+
constructor() {
|
|
13
|
+
super('assistant session has too many pending interactions');
|
|
14
|
+
this.name = 'AssistantInteractionCapacityError';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function createPendingInteraction(id, input) {
|
|
18
|
+
const createdAt = validTimestamp(input.createdAt ?? new Date().toISOString(), 'createdAt');
|
|
19
|
+
const common = {
|
|
20
|
+
id,
|
|
21
|
+
sessionId: input.sessionId,
|
|
22
|
+
deploymentId: input.deploymentId,
|
|
23
|
+
...(input.context !== undefined ? { context: cloneJson(input.context, 'context') } : {}),
|
|
24
|
+
createdAt,
|
|
25
|
+
expiresAt: validTimestamp(input.expiresAt, 'expiresAt'),
|
|
26
|
+
status: 'pending',
|
|
27
|
+
};
|
|
28
|
+
return input.kind === 'confirmation'
|
|
29
|
+
? {
|
|
30
|
+
...common,
|
|
31
|
+
kind: 'confirmation',
|
|
32
|
+
tool: input.tool,
|
|
33
|
+
arguments: cloneJson(input.arguments, 'arguments'),
|
|
34
|
+
...(input.continuation !== undefined
|
|
35
|
+
? { continuation: cloneJson(input.continuation, 'continuation') }
|
|
36
|
+
: {}),
|
|
37
|
+
...(input.review !== undefined ? { review: cloneJson(input.review, 'review') } : {}),
|
|
38
|
+
}
|
|
39
|
+
: {
|
|
40
|
+
...common,
|
|
41
|
+
kind: 'input',
|
|
42
|
+
tool: input.tool,
|
|
43
|
+
message: input.message,
|
|
44
|
+
requestedSchema: cloneJson(input.requestedSchema, 'requestedSchema'),
|
|
45
|
+
continuation: cloneJson(input.continuation, 'continuation'),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export function executingInteraction(interaction, claimedAt) {
|
|
49
|
+
if (interaction.status !== 'pending')
|
|
50
|
+
throw new Error('only pending interactions can be claimed');
|
|
51
|
+
return cloneInteraction({
|
|
52
|
+
...interaction,
|
|
53
|
+
status: 'executing',
|
|
54
|
+
claimedAt: claimedAt.toISOString(),
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
export function completedInteraction(interaction, completion, completedAt) {
|
|
58
|
+
if (completion.status === 'succeeded' || completion.status === 'failed') {
|
|
59
|
+
if (interaction.status !== 'executing') {
|
|
60
|
+
throw new Error('successful or failed completion requires an executing interaction');
|
|
61
|
+
}
|
|
62
|
+
const publicOutcome = normalizePublicOutcome(completion.publicOutcome);
|
|
63
|
+
return scrubTerminalInteraction({
|
|
64
|
+
...interaction,
|
|
65
|
+
status: completion.status,
|
|
66
|
+
completedAt: completedAt.toISOString(),
|
|
67
|
+
publicOutcome,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (interaction.status !== 'pending') {
|
|
71
|
+
throw new Error('decline or cancel completion requires a pending interaction');
|
|
72
|
+
}
|
|
73
|
+
const publicOutcome = normalizePublicOutcome(completion.publicOutcome ?? defaultPublicOutcome(completion.status));
|
|
74
|
+
return scrubTerminalInteraction({
|
|
75
|
+
...interaction,
|
|
76
|
+
status: completion.status,
|
|
77
|
+
completedAt: completedAt.toISOString(),
|
|
78
|
+
publicOutcome,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
export function transitionedInteractions(interaction, input, nextId) {
|
|
82
|
+
if (interaction.status !== 'executing') {
|
|
83
|
+
throw new Error('interaction transition requires an executing interaction');
|
|
84
|
+
}
|
|
85
|
+
const nextInput = {
|
|
86
|
+
...input.next,
|
|
87
|
+
sessionId: interaction.sessionId,
|
|
88
|
+
deploymentId: interaction.deploymentId,
|
|
89
|
+
createdAt: input.now.toISOString(),
|
|
90
|
+
};
|
|
91
|
+
const next = nextInput.kind === 'confirmation'
|
|
92
|
+
? createPendingInteraction(nextId, nextInput)
|
|
93
|
+
: createPendingInteraction(nextId, nextInput);
|
|
94
|
+
const details = Object.fromEntries(Object.entries(input.publicOutcome.details ?? {}).filter(([key]) => key !== 'nextInteractionId'));
|
|
95
|
+
const completed = completedInteraction(interaction, {
|
|
96
|
+
status: 'succeeded',
|
|
97
|
+
publicOutcome: {
|
|
98
|
+
...input.publicOutcome,
|
|
99
|
+
// Reserve the replay link and put it first so bounded normalization cannot omit it.
|
|
100
|
+
details: { nextInteractionId: next.id, ...details },
|
|
101
|
+
},
|
|
102
|
+
}, input.now);
|
|
103
|
+
if (completed.status !== 'succeeded') {
|
|
104
|
+
throw new Error('assistant interaction transition did not produce a succeeded parent');
|
|
105
|
+
}
|
|
106
|
+
return { interaction: completed, next };
|
|
107
|
+
}
|
|
108
|
+
export function isTerminalInteraction(interaction) {
|
|
109
|
+
return (interaction.status === 'succeeded' ||
|
|
110
|
+
interaction.status === 'failed' ||
|
|
111
|
+
interaction.status === 'declined' ||
|
|
112
|
+
interaction.status === 'cancelled');
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Pending proposals expire at their decision deadline. Executing/unknown work keeps a tombstone, and a
|
|
116
|
+
* terminal public outcome remains replayable for a bounded reconciliation window after completion.
|
|
117
|
+
*/
|
|
118
|
+
export function isPrunableInteraction(interaction, now) {
|
|
119
|
+
if (interaction.status === 'executing')
|
|
120
|
+
return false;
|
|
121
|
+
if (interaction.status === 'pending')
|
|
122
|
+
return Date.parse(interaction.expiresAt) <= now.getTime();
|
|
123
|
+
return (Date.parse(interaction.completedAt) + ASSISTANT_INTERACTION_OUTCOME_RETENTION_MS <=
|
|
124
|
+
now.getTime());
|
|
125
|
+
}
|
|
126
|
+
export function shouldExpireStrandedExecutingInteraction(interaction, now) {
|
|
127
|
+
return (interaction.status === 'executing' &&
|
|
128
|
+
interaction.payloadScrubbedAt === undefined &&
|
|
129
|
+
Date.parse(interaction.claimedAt) + ASSISTANT_INTERACTION_EXECUTING_GRACE_MS <= now.getTime());
|
|
130
|
+
}
|
|
131
|
+
/** Preserve a non-retryable unknown outcome without retaining its exact private payload. */
|
|
132
|
+
export function expireStrandedExecutingInteraction(interaction, scrubbedAt) {
|
|
133
|
+
const completedAt = scrubbedAt.toISOString();
|
|
134
|
+
return scrubTerminalInteraction({
|
|
135
|
+
...interaction,
|
|
136
|
+
status: 'failed',
|
|
137
|
+
completedAt,
|
|
138
|
+
publicOutcome: ASSISTANT_INTERACTION_UNKNOWN_OUTCOME,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
/** Retain only replay-safe public state once no execution path needs the exact payload. */
|
|
142
|
+
function scrubTerminalInteraction(interaction) {
|
|
143
|
+
if (interaction.kind === 'confirmation') {
|
|
144
|
+
const { context: _context, payloadScrubbedAt: _payloadScrubbedAt, continuation: _continuation, review: _review, ...withoutPrivatePayload } = interaction;
|
|
145
|
+
return cloneInteraction({
|
|
146
|
+
...withoutPrivatePayload,
|
|
147
|
+
arguments: null,
|
|
148
|
+
payloadScrubbedAt: interaction.completedAt,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
const { context: _context, payloadScrubbedAt: _payloadScrubbedAt, ...withoutContext } = interaction;
|
|
152
|
+
return cloneInteraction({
|
|
153
|
+
...withoutContext,
|
|
154
|
+
continuation: null,
|
|
155
|
+
payloadScrubbedAt: interaction.completedAt,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
export function cloneInteraction(interaction) {
|
|
159
|
+
return cloneJson(interaction, 'interaction');
|
|
160
|
+
}
|
|
161
|
+
const MAX_PUBLIC_OUTCOME_CODE = 64;
|
|
162
|
+
const MAX_PUBLIC_OUTCOME_SUMMARY = 500;
|
|
163
|
+
const MAX_PUBLIC_OUTCOME_DETAILS = 16;
|
|
164
|
+
const MAX_PUBLIC_OUTCOME_DETAIL_STRING = 240;
|
|
165
|
+
const MAX_PUBLIC_OUTCOME_RESULT_BYTES = 16 * 1024;
|
|
166
|
+
const MAX_PUBLIC_OUTCOME_RESULT_DEPTH = 8;
|
|
167
|
+
const MAX_PUBLIC_OUTCOME_RESULT_ENTRIES = 128;
|
|
168
|
+
const MAX_PUBLIC_OUTCOME_RESULT_TOTAL_ENTRIES = 512;
|
|
169
|
+
const MAX_PUBLIC_OUTCOME_RESULT_STRING = 2_048;
|
|
170
|
+
const MAX_PUBLIC_OUTCOME_RESULT_KEY = 128;
|
|
171
|
+
const SAFE_DETAIL_KEY = /^[A-Za-z0-9_.-]{1,64}$/;
|
|
172
|
+
const UNSAFE_OBJECT_KEY = /^(?:__proto__|constructor|prototype)$/;
|
|
173
|
+
const SENSITIVE_KEY = /(?:authorization|bearer|token|refresh|secret|api[_-]?key|apikey|password|private[_-]?key|credential|cookie|set-cookie)/i;
|
|
174
|
+
const REDACTED = '[redacted]';
|
|
175
|
+
export function normalizePublicOutcome(input) {
|
|
176
|
+
const code = /^[A-Za-z0-9_.-]+$/.test(input.code)
|
|
177
|
+
? input.code.slice(0, MAX_PUBLIC_OUTCOME_CODE)
|
|
178
|
+
: 'interaction_outcome';
|
|
179
|
+
const summary = redactString(input.summary, MAX_PUBLIC_OUTCOME_SUMMARY);
|
|
180
|
+
const details = {};
|
|
181
|
+
for (const [key, value] of Object.entries(input.details ?? {})) {
|
|
182
|
+
if (Object.keys(details).length >= MAX_PUBLIC_OUTCOME_DETAILS)
|
|
183
|
+
break;
|
|
184
|
+
if (!SAFE_DETAIL_KEY.test(key))
|
|
185
|
+
continue;
|
|
186
|
+
details[key] = SENSITIVE_KEY.test(key) ? REDACTED : normalizePublicScalar(value);
|
|
187
|
+
}
|
|
188
|
+
return {
|
|
189
|
+
code,
|
|
190
|
+
summary,
|
|
191
|
+
...(Object.keys(details).length > 0 ? { details } : {}),
|
|
192
|
+
...(input.result !== undefined ? { result: normalizePublicResult(input.result) } : {}),
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
function normalizePublicResult(value) {
|
|
196
|
+
const result = projectPublicResult(value, 0, {
|
|
197
|
+
remainingEntries: MAX_PUBLIC_OUTCOME_RESULT_TOTAL_ENTRIES,
|
|
198
|
+
ancestors: new WeakSet(),
|
|
199
|
+
});
|
|
200
|
+
const serialized = JSON.stringify(result);
|
|
201
|
+
if (new TextEncoder().encode(serialized).byteLength <= MAX_PUBLIC_OUTCOME_RESULT_BYTES) {
|
|
202
|
+
return result;
|
|
203
|
+
}
|
|
204
|
+
return { notice: '[result omitted: exceeds 16 KiB]' };
|
|
205
|
+
}
|
|
206
|
+
function projectPublicResult(value, depth, state) {
|
|
207
|
+
if (value === null || typeof value === 'boolean')
|
|
208
|
+
return value;
|
|
209
|
+
if (typeof value === 'number')
|
|
210
|
+
return Number.isFinite(value) ? value : REDACTED;
|
|
211
|
+
if (typeof value === 'string')
|
|
212
|
+
return redactString(value, MAX_PUBLIC_OUTCOME_RESULT_STRING);
|
|
213
|
+
if (typeof value !== 'object')
|
|
214
|
+
return REDACTED;
|
|
215
|
+
if (depth >= MAX_PUBLIC_OUTCOME_RESULT_DEPTH)
|
|
216
|
+
return '[truncated: maximum depth]';
|
|
217
|
+
if (state.ancestors.has(value))
|
|
218
|
+
return '[redacted: circular reference]';
|
|
219
|
+
state.ancestors.add(value);
|
|
220
|
+
if (Array.isArray(value)) {
|
|
221
|
+
const projected = [];
|
|
222
|
+
for (const item of value.slice(0, MAX_PUBLIC_OUTCOME_RESULT_ENTRIES)) {
|
|
223
|
+
if (state.remainingEntries <= 0) {
|
|
224
|
+
projected.push('[truncated: entry limit]');
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
227
|
+
state.remainingEntries -= 1;
|
|
228
|
+
projected.push(projectPublicResult(item, depth + 1, state));
|
|
229
|
+
}
|
|
230
|
+
if (value.length > MAX_PUBLIC_OUTCOME_RESULT_ENTRIES) {
|
|
231
|
+
projected.push('[truncated: container entry limit]');
|
|
232
|
+
}
|
|
233
|
+
state.ancestors.delete(value);
|
|
234
|
+
return projected;
|
|
235
|
+
}
|
|
236
|
+
const projected = Object.create(null);
|
|
237
|
+
const entries = Object.entries(value);
|
|
238
|
+
for (const [rawKey, item] of entries.slice(0, MAX_PUBLIC_OUTCOME_RESULT_ENTRIES)) {
|
|
239
|
+
if (state.remainingEntries <= 0) {
|
|
240
|
+
projected.resultTruncated = '[truncated: entry limit]';
|
|
241
|
+
break;
|
|
242
|
+
}
|
|
243
|
+
state.remainingEntries -= 1;
|
|
244
|
+
const key = rawKey.slice(0, MAX_PUBLIC_OUTCOME_RESULT_KEY);
|
|
245
|
+
if (UNSAFE_OBJECT_KEY.test(key))
|
|
246
|
+
continue;
|
|
247
|
+
projected[key] = SENSITIVE_KEY.test(key)
|
|
248
|
+
? REDACTED
|
|
249
|
+
: projectPublicResult(item, depth + 1, state);
|
|
250
|
+
}
|
|
251
|
+
if (entries.length > MAX_PUBLIC_OUTCOME_RESULT_ENTRIES) {
|
|
252
|
+
projected.resultTruncated = '[truncated: container entry limit]';
|
|
253
|
+
}
|
|
254
|
+
state.ancestors.delete(value);
|
|
255
|
+
return projected;
|
|
256
|
+
}
|
|
257
|
+
function normalizePublicScalar(value) {
|
|
258
|
+
if (value === null || typeof value === 'boolean')
|
|
259
|
+
return value;
|
|
260
|
+
if (typeof value === 'number')
|
|
261
|
+
return Number.isFinite(value) ? value : REDACTED;
|
|
262
|
+
if (typeof value === 'string')
|
|
263
|
+
return redactString(value, MAX_PUBLIC_OUTCOME_DETAIL_STRING);
|
|
264
|
+
return REDACTED;
|
|
265
|
+
}
|
|
266
|
+
function redactString(value, limit) {
|
|
267
|
+
return isCredentialShapedAssistantText(value) ? REDACTED : value.slice(0, limit);
|
|
268
|
+
}
|
|
269
|
+
function defaultPublicOutcome(status) {
|
|
270
|
+
return {
|
|
271
|
+
code: `interaction_${status}`,
|
|
272
|
+
summary: status === 'declined' ? 'Interaction declined.' : 'Interaction cancelled.',
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
function validTimestamp(value, field) {
|
|
276
|
+
if (!Number.isFinite(Date.parse(value)))
|
|
277
|
+
throw new RangeError(`invalid interaction ${field}`);
|
|
278
|
+
return new Date(value).toISOString();
|
|
279
|
+
}
|
|
280
|
+
function cloneJson(value, field) {
|
|
281
|
+
let serialized;
|
|
282
|
+
try {
|
|
283
|
+
serialized = JSON.stringify(value);
|
|
284
|
+
}
|
|
285
|
+
catch (error) {
|
|
286
|
+
throw new TypeError(`interaction ${field} must be JSON-serializable`, { cause: error });
|
|
287
|
+
}
|
|
288
|
+
if (serialized === undefined) {
|
|
289
|
+
throw new TypeError(`interaction ${field} must be JSON-serializable`);
|
|
290
|
+
}
|
|
291
|
+
return JSON.parse(serialized);
|
|
292
|
+
}
|
|
293
|
+
//# sourceMappingURL=assistant-interaction-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assistant-interaction-state.js","sourceRoot":"","sources":["../src/assistant-interaction-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { type RuntimeArtifact } from '@noodle-borg/compiler';
|
|
2
|
+
import type { CallerIdentity, ConfirmationPreparationResult, ExecuteDeps, InteractiveExecutionResult, InvocationContext, PreparedToolContinuation, ToolContinuation, ToolPreparationContinuation } from '@noodle-borg/runtime';
|
|
3
|
+
import { type AssistantInteractionRecord, type AssistantInteractionTransitionNext, type AssistantPendingConfirmationInteractionRecord, type AssistantPendingInputInteractionRecord, type AssistantSessionRecord, type AssistantStore } from './assistant-store.js';
|
|
4
|
+
import type { AuditSink } from './store/audit.js';
|
|
5
|
+
export declare const ASSISTANT_INTERACTION_TTL_MS: number;
|
|
6
|
+
type InputRequired = Extract<InteractiveExecutionResult, {
|
|
7
|
+
readonly status: 'input_required';
|
|
8
|
+
}> | Extract<ConfirmationPreparationResult, {
|
|
9
|
+
readonly status: 'input_required';
|
|
10
|
+
}>;
|
|
11
|
+
export type AssistantToolDispatch = {
|
|
12
|
+
readonly kind: 'event';
|
|
13
|
+
readonly event: 'tool_proposed' | 'input_requested' | 'error';
|
|
14
|
+
readonly data: Readonly<Record<string, unknown>>;
|
|
15
|
+
} | {
|
|
16
|
+
readonly kind: 'tool_result';
|
|
17
|
+
readonly output: unknown;
|
|
18
|
+
};
|
|
19
|
+
/** Apply the same confirmation and suspend/resume policy to one model-proposed tool call. */
|
|
20
|
+
export declare function dispatchAssistantTool(input: {
|
|
21
|
+
readonly artifact: RuntimeArtifact;
|
|
22
|
+
readonly tool: RuntimeArtifact['tools'][number];
|
|
23
|
+
readonly arguments: unknown;
|
|
24
|
+
readonly executeDeps: ExecuteDeps;
|
|
25
|
+
readonly caller: CallerIdentity;
|
|
26
|
+
readonly context: InvocationContext;
|
|
27
|
+
readonly session: AssistantSessionRecord;
|
|
28
|
+
readonly store: AssistantStore;
|
|
29
|
+
readonly audit: AuditSink;
|
|
30
|
+
readonly now: () => Date;
|
|
31
|
+
}): Promise<AssistantToolDispatch>;
|
|
32
|
+
/** Persist a complete, reviewable proposal and its server-only prepared execution state. */
|
|
33
|
+
export declare function createAssistantConfirmationInteraction(input: {
|
|
34
|
+
readonly store: AssistantStore;
|
|
35
|
+
readonly audit: AuditSink;
|
|
36
|
+
readonly session: AssistantSessionRecord;
|
|
37
|
+
readonly context: InvocationContext;
|
|
38
|
+
readonly tool: string;
|
|
39
|
+
readonly arguments: unknown;
|
|
40
|
+
readonly review: unknown;
|
|
41
|
+
readonly continuation: PreparedToolContinuation;
|
|
42
|
+
readonly now: Date;
|
|
43
|
+
}): Promise<AssistantPendingConfirmationInteractionRecord>;
|
|
44
|
+
export declare function assistantConfirmationTransition(input: {
|
|
45
|
+
readonly context: InvocationContext;
|
|
46
|
+
readonly tool: string;
|
|
47
|
+
readonly arguments: unknown;
|
|
48
|
+
readonly review: unknown;
|
|
49
|
+
readonly continuation: PreparedToolContinuation;
|
|
50
|
+
readonly now: Date;
|
|
51
|
+
}): Extract<AssistantInteractionTransitionNext, {
|
|
52
|
+
readonly kind: 'confirmation';
|
|
53
|
+
}>;
|
|
54
|
+
export declare function assistantConfirmationProposalData(interaction: AssistantPendingConfirmationInteractionRecord): Readonly<Record<string, unknown>>;
|
|
55
|
+
/** Persist an opaque input interaction and audit only scalar metadata about the suspension. */
|
|
56
|
+
export declare function createAssistantInputInteraction(input: {
|
|
57
|
+
readonly store: AssistantStore;
|
|
58
|
+
readonly audit: AuditSink;
|
|
59
|
+
readonly session: AssistantSessionRecord;
|
|
60
|
+
readonly context: InvocationContext;
|
|
61
|
+
readonly required: InputRequired;
|
|
62
|
+
readonly now: Date;
|
|
63
|
+
}): Promise<AssistantPendingInputInteractionRecord>;
|
|
64
|
+
export declare function assistantInputTransition(input: {
|
|
65
|
+
readonly context: InvocationContext;
|
|
66
|
+
readonly required: InputRequired;
|
|
67
|
+
readonly now: Date;
|
|
68
|
+
}): Extract<AssistantInteractionTransitionNext, {
|
|
69
|
+
readonly kind: 'input';
|
|
70
|
+
}>;
|
|
71
|
+
/** Emit one tenant-scoped, scalar-only interaction audit record. */
|
|
72
|
+
export declare function auditAssistantInteraction(input: {
|
|
73
|
+
readonly audit: AuditSink;
|
|
74
|
+
readonly session: AssistantSessionRecord;
|
|
75
|
+
readonly interaction: AssistantInteractionRecord;
|
|
76
|
+
readonly eventType: 'assistant.interaction.proposed' | 'assistant.interaction.resolved' | 'assistant.interaction.execution';
|
|
77
|
+
readonly decision: 'allow' | 'deny';
|
|
78
|
+
readonly httpStatus: number;
|
|
79
|
+
readonly status: string;
|
|
80
|
+
readonly action?: 'accept' | 'decline' | 'cancel';
|
|
81
|
+
readonly reasonCode?: string;
|
|
82
|
+
}): Promise<void>;
|
|
83
|
+
export declare function assistantInteractionTool(interaction: AssistantInteractionRecord): string | undefined;
|
|
84
|
+
/** The store is the only trust boundary allowed to deserialize this runtime continuation. */
|
|
85
|
+
export declare function assistantToolContinuation(interaction: Extract<AssistantInteractionRecord, {
|
|
86
|
+
readonly kind: 'input';
|
|
87
|
+
}>): ToolContinuation | ToolPreparationContinuation;
|
|
88
|
+
export declare function assistantPreparedToolContinuation(interaction: Extract<AssistantInteractionRecord, {
|
|
89
|
+
readonly kind: 'confirmation';
|
|
90
|
+
}>): PreparedToolContinuation | undefined;
|
|
91
|
+
export {};
|
|
92
|
+
//# sourceMappingURL=assistant-interactive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assistant-interactive.d.ts","sourceRoot":"","sources":["../src/assistant-interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { requiresToolConfirmation } from '@noodle-borg/compiler';
|
|
2
|
+
import { executeToolInteractive, prepareToolForConfirmation } from '@noodle-borg/runtime';
|
|
3
|
+
import { assistantPreparedArgumentReview, assistantSafeOutput } from './assistant-presentation.js';
|
|
4
|
+
import { AssistantInteractionCapacityError, } from './assistant-store.js';
|
|
5
|
+
export const ASSISTANT_INTERACTION_TTL_MS = 10 * 60 * 1000;
|
|
6
|
+
/** Apply the same confirmation and suspend/resume policy to one model-proposed tool call. */
|
|
7
|
+
export async function dispatchAssistantTool(input) {
|
|
8
|
+
const executeDeps = {
|
|
9
|
+
...input.executeDeps,
|
|
10
|
+
caller: input.caller,
|
|
11
|
+
context: input.context,
|
|
12
|
+
};
|
|
13
|
+
if (requiresToolConfirmation(input.tool.annotations)) {
|
|
14
|
+
const prepared = await prepareToolForConfirmation(input.artifact, input.tool.name, input.arguments, executeDeps);
|
|
15
|
+
try {
|
|
16
|
+
if (prepared.status === 'input_required') {
|
|
17
|
+
const interaction = await createAssistantInputInteraction({
|
|
18
|
+
store: input.store,
|
|
19
|
+
audit: input.audit,
|
|
20
|
+
session: input.session,
|
|
21
|
+
context: input.context,
|
|
22
|
+
required: prepared,
|
|
23
|
+
now: input.now(),
|
|
24
|
+
});
|
|
25
|
+
return { kind: 'event', event: 'input_requested', data: inputRequestData(interaction) };
|
|
26
|
+
}
|
|
27
|
+
if (prepared.status === 'confirmation_required') {
|
|
28
|
+
const review = assistantPreparedArgumentReview(input.tool.inputSchema, prepared.review);
|
|
29
|
+
if (!review.ok) {
|
|
30
|
+
return {
|
|
31
|
+
kind: 'event',
|
|
32
|
+
event: 'error',
|
|
33
|
+
data: { code: review.code, retryable: false },
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const interaction = await createAssistantConfirmationInteraction({
|
|
37
|
+
store: input.store,
|
|
38
|
+
audit: input.audit,
|
|
39
|
+
session: input.session,
|
|
40
|
+
context: input.context,
|
|
41
|
+
tool: input.tool.name,
|
|
42
|
+
arguments: input.arguments,
|
|
43
|
+
review: review.value,
|
|
44
|
+
continuation: prepared.continuation,
|
|
45
|
+
now: input.now(),
|
|
46
|
+
});
|
|
47
|
+
return {
|
|
48
|
+
kind: 'event',
|
|
49
|
+
event: 'tool_proposed',
|
|
50
|
+
data: assistantConfirmationProposalData(interaction),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
kind: 'event',
|
|
55
|
+
event: 'error',
|
|
56
|
+
data: {
|
|
57
|
+
code: prepared.status === 'failed' ? prepared.error.code : `interaction_${prepared.action}`,
|
|
58
|
+
retryable: false,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
if (error instanceof AssistantInteractionCapacityError) {
|
|
64
|
+
return {
|
|
65
|
+
kind: 'event',
|
|
66
|
+
event: 'error',
|
|
67
|
+
data: { code: error.code, retryable: false },
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
const result = await executeToolInteractive(input.artifact, input.tool.name, input.arguments, executeDeps);
|
|
74
|
+
if (result.status === 'input_required') {
|
|
75
|
+
try {
|
|
76
|
+
const interaction = await createAssistantInputInteraction({
|
|
77
|
+
store: input.store,
|
|
78
|
+
audit: input.audit,
|
|
79
|
+
session: input.session,
|
|
80
|
+
context: input.context,
|
|
81
|
+
required: result,
|
|
82
|
+
now: input.now(),
|
|
83
|
+
});
|
|
84
|
+
return { kind: 'event', event: 'input_requested', data: inputRequestData(interaction) };
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
if (error instanceof AssistantInteractionCapacityError) {
|
|
88
|
+
return {
|
|
89
|
+
kind: 'event',
|
|
90
|
+
event: 'error',
|
|
91
|
+
data: { code: error.code, retryable: false },
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
throw error;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
kind: 'tool_result',
|
|
99
|
+
output: result.status === 'completed'
|
|
100
|
+
? assistantSafeOutput(input.tool.outputSchema, result.output)
|
|
101
|
+
: result.status === 'failed'
|
|
102
|
+
? { error: result.error.code }
|
|
103
|
+
: { error: `interaction_${result.action}` },
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/** Persist a complete, reviewable proposal and its server-only prepared execution state. */
|
|
107
|
+
export async function createAssistantConfirmationInteraction(input) {
|
|
108
|
+
const next = assistantConfirmationTransition(input);
|
|
109
|
+
const interaction = await input.store.createInteraction({
|
|
110
|
+
...next,
|
|
111
|
+
sessionId: input.session.id,
|
|
112
|
+
deploymentId: input.session.deploymentId,
|
|
113
|
+
createdAt: input.now.toISOString(),
|
|
114
|
+
});
|
|
115
|
+
await auditAssistantInteraction({
|
|
116
|
+
audit: input.audit,
|
|
117
|
+
session: input.session,
|
|
118
|
+
interaction,
|
|
119
|
+
eventType: 'assistant.interaction.proposed',
|
|
120
|
+
decision: 'allow',
|
|
121
|
+
httpStatus: 201,
|
|
122
|
+
status: 'pending',
|
|
123
|
+
});
|
|
124
|
+
return interaction;
|
|
125
|
+
}
|
|
126
|
+
export function assistantConfirmationTransition(input) {
|
|
127
|
+
return {
|
|
128
|
+
kind: 'confirmation',
|
|
129
|
+
tool: input.tool,
|
|
130
|
+
arguments: input.arguments,
|
|
131
|
+
review: input.review,
|
|
132
|
+
continuation: input.continuation,
|
|
133
|
+
context: input.context,
|
|
134
|
+
expiresAt: new Date(input.now.getTime() + ASSISTANT_INTERACTION_TTL_MS).toISOString(),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
export function assistantConfirmationProposalData(interaction) {
|
|
138
|
+
return {
|
|
139
|
+
id: interaction.id,
|
|
140
|
+
tool: interaction.tool,
|
|
141
|
+
arguments: interaction.review ?? {},
|
|
142
|
+
expiresAt: interaction.expiresAt,
|
|
143
|
+
requiresConfirmation: true,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
function inputRequestData(interaction) {
|
|
147
|
+
return {
|
|
148
|
+
id: interaction.id,
|
|
149
|
+
message: interaction.message,
|
|
150
|
+
requestedSchema: interaction.requestedSchema,
|
|
151
|
+
expiresAt: interaction.expiresAt,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/** Persist an opaque input interaction and audit only scalar metadata about the suspension. */
|
|
155
|
+
export async function createAssistantInputInteraction(input) {
|
|
156
|
+
const next = assistantInputTransition(input);
|
|
157
|
+
const interaction = await input.store.createInteraction({
|
|
158
|
+
...next,
|
|
159
|
+
sessionId: input.session.id,
|
|
160
|
+
deploymentId: input.session.deploymentId,
|
|
161
|
+
createdAt: input.now.toISOString(),
|
|
162
|
+
});
|
|
163
|
+
await auditAssistantInteraction({
|
|
164
|
+
audit: input.audit,
|
|
165
|
+
session: input.session,
|
|
166
|
+
interaction,
|
|
167
|
+
eventType: 'assistant.interaction.proposed',
|
|
168
|
+
decision: 'allow',
|
|
169
|
+
httpStatus: 201,
|
|
170
|
+
status: 'input_requested',
|
|
171
|
+
});
|
|
172
|
+
return interaction;
|
|
173
|
+
}
|
|
174
|
+
export function assistantInputTransition(input) {
|
|
175
|
+
return {
|
|
176
|
+
kind: 'input',
|
|
177
|
+
tool: input.required.continuation.toolName,
|
|
178
|
+
message: input.required.request.message,
|
|
179
|
+
requestedSchema: input.required.request.requestedSchema,
|
|
180
|
+
continuation: input.required.continuation,
|
|
181
|
+
context: input.context,
|
|
182
|
+
expiresAt: new Date(input.now.getTime() + ASSISTANT_INTERACTION_TTL_MS).toISOString(),
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
/** Emit one tenant-scoped, scalar-only interaction audit record. */
|
|
186
|
+
export async function auditAssistantInteraction(input) {
|
|
187
|
+
const tool = assistantInteractionTool(input.interaction);
|
|
188
|
+
await input.audit.emit({
|
|
189
|
+
eventType: input.eventType,
|
|
190
|
+
org: input.session.tenant.org,
|
|
191
|
+
app: input.session.tenant.app,
|
|
192
|
+
env: input.session.tenant.env,
|
|
193
|
+
deploymentId: input.interaction.deploymentId,
|
|
194
|
+
actorSubject: input.session.caller.subject,
|
|
195
|
+
...(input.session.caller.email ? { actorEmail: input.session.caller.email } : {}),
|
|
196
|
+
decision: input.decision,
|
|
197
|
+
status: input.httpStatus,
|
|
198
|
+
...(input.reasonCode ? { reasonCode: input.reasonCode } : {}),
|
|
199
|
+
details: {
|
|
200
|
+
interactionId: input.interaction.id,
|
|
201
|
+
kind: input.interaction.kind,
|
|
202
|
+
...(tool ? { tool } : {}),
|
|
203
|
+
...(input.action ? { action: input.action } : {}),
|
|
204
|
+
status: input.status,
|
|
205
|
+
},
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
export function assistantInteractionTool(interaction) {
|
|
209
|
+
return interaction.tool;
|
|
210
|
+
}
|
|
211
|
+
/** The store is the only trust boundary allowed to deserialize this runtime continuation. */
|
|
212
|
+
export function assistantToolContinuation(interaction) {
|
|
213
|
+
return interaction.continuation;
|
|
214
|
+
}
|
|
215
|
+
export function assistantPreparedToolContinuation(interaction) {
|
|
216
|
+
const continuation = interaction.continuation;
|
|
217
|
+
return continuation?.kind === 'prepared_confirmation' ? continuation : undefined;
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=assistant-interactive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assistant-interactive.js","sourceRoot":"","sources":["../src/assistant-interactive.ts"],"names":[],"mappings":"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"}
|