@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.
Files changed (346) hide show
  1. package/dist/commands/catalog-data-resources.d.ts.map +1 -1
  2. package/dist/commands/catalog-data-resources.js +2 -1
  3. package/dist/commands/catalog-data-resources.js.map +1 -1
  4. package/dist/commands/mcp-apps.d.ts.map +1 -1
  5. package/dist/commands/mcp-apps.js +15 -8
  6. package/dist/commands/mcp-apps.js.map +1 -1
  7. package/dist/commands/policy-ops.d.ts.map +1 -1
  8. package/dist/commands/policy-ops.js +57 -15
  9. package/dist/commands/policy-ops.js.map +1 -1
  10. package/dist/widget-scaffold-template.js +1 -1
  11. package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.d.ts.map +1 -1
  12. package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js +6 -1
  13. package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js.map +1 -1
  14. package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.d.ts.map +1 -1
  15. package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.js +2 -0
  16. package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.js.map +1 -1
  17. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +9 -9
  18. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
  19. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  20. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +7 -0
  21. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  22. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.d.ts.map +1 -1
  23. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +76 -8
  24. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
  25. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +2 -2
  26. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
  27. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.d.ts.map +1 -1
  28. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +90 -9
  29. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js.map +1 -1
  30. package/node_modules/@noodle-borg/auth/dist/jwt-issuer.d.ts +4 -0
  31. package/node_modules/@noodle-borg/auth/dist/jwt-issuer.d.ts.map +1 -1
  32. package/node_modules/@noodle-borg/auth/dist/jwt-issuer.js +2 -0
  33. package/node_modules/@noodle-borg/auth/dist/jwt-issuer.js.map +1 -1
  34. package/node_modules/@noodle-borg/auth/dist/verify.d.ts +4 -0
  35. package/node_modules/@noodle-borg/auth/dist/verify.d.ts.map +1 -1
  36. package/node_modules/@noodle-borg/auth/dist/verify.js +26 -0
  37. package/node_modules/@noodle-borg/auth/dist/verify.js.map +1 -1
  38. package/node_modules/@noodle-borg/authoring/dist/context.d.ts +25 -0
  39. package/node_modules/@noodle-borg/authoring/dist/context.d.ts.map +1 -0
  40. package/node_modules/@noodle-borg/authoring/dist/context.js +34 -0
  41. package/node_modules/@noodle-borg/authoring/dist/context.js.map +1 -0
  42. package/node_modules/@noodle-borg/authoring/dist/index.d.ts +2 -1
  43. package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
  44. package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
  45. package/node_modules/@noodle-borg/authoring/dist/react/bridge.d.ts +9 -0
  46. package/node_modules/@noodle-borg/authoring/dist/react/bridge.d.ts.map +1 -1
  47. package/node_modules/@noodle-borg/authoring/dist/react/bridge.js.map +1 -1
  48. package/node_modules/@noodle-borg/authoring/dist/react/hooks.d.ts +8 -2
  49. package/node_modules/@noodle-borg/authoring/dist/react/hooks.d.ts.map +1 -1
  50. package/node_modules/@noodle-borg/authoring/dist/react/hooks.js +46 -1
  51. package/node_modules/@noodle-borg/authoring/dist/react/hooks.js.map +1 -1
  52. package/node_modules/@noodle-borg/authoring/dist/react/index.d.ts +2 -2
  53. package/node_modules/@noodle-borg/authoring/dist/react/index.d.ts.map +1 -1
  54. package/node_modules/@noodle-borg/authoring/dist/react/index.js +1 -1
  55. package/node_modules/@noodle-borg/authoring/dist/react/index.js.map +1 -1
  56. package/node_modules/@noodle-borg/authoring/dist/react/model-context-validation.d.ts +4 -0
  57. package/node_modules/@noodle-borg/authoring/dist/react/model-context-validation.d.ts.map +1 -0
  58. package/node_modules/@noodle-borg/authoring/dist/react/model-context-validation.js +94 -0
  59. package/node_modules/@noodle-borg/authoring/dist/react/model-context-validation.js.map +1 -0
  60. package/node_modules/@noodle-borg/authoring/dist/recording.d.ts +19 -2
  61. package/node_modules/@noodle-borg/authoring/dist/recording.d.ts.map +1 -1
  62. package/node_modules/@noodle-borg/authoring/dist/recording.js +71 -8
  63. package/node_modules/@noodle-borg/authoring/dist/recording.js.map +1 -1
  64. package/node_modules/@noodle-borg/authoring/dist/server.d.ts +23 -0
  65. package/node_modules/@noodle-borg/authoring/dist/server.d.ts.map +1 -1
  66. package/node_modules/@noodle-borg/authoring/dist/server.js +6 -0
  67. package/node_modules/@noodle-borg/authoring/dist/server.js.map +1 -1
  68. package/node_modules/@noodle-borg/compiler/dist/artifact/config.d.ts +2 -2
  69. package/node_modules/@noodle-borg/compiler/dist/artifact/config.d.ts.map +1 -1
  70. package/node_modules/@noodle-borg/compiler/dist/artifact/config.js +4 -1
  71. package/node_modules/@noodle-borg/compiler/dist/artifact/config.js.map +1 -1
  72. package/node_modules/@noodle-borg/compiler/dist/artifact/consent.d.ts +4 -6
  73. package/node_modules/@noodle-borg/compiler/dist/artifact/consent.d.ts.map +1 -1
  74. package/node_modules/@noodle-borg/compiler/dist/artifact/consent.js +6 -6
  75. package/node_modules/@noodle-borg/compiler/dist/artifact/consent.js.map +1 -1
  76. package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +23 -6
  77. package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts.map +1 -1
  78. package/node_modules/@noodle-borg/compiler/dist/artifact/types.js +7 -1
  79. package/node_modules/@noodle-borg/compiler/dist/artifact/types.js.map +1 -1
  80. package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
  81. package/node_modules/@noodle-borg/compiler/dist/compile.js +26 -6
  82. package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
  83. package/node_modules/@noodle-borg/compiler/dist/confirmation-flow.d.ts +9 -0
  84. package/node_modules/@noodle-borg/compiler/dist/confirmation-flow.d.ts.map +1 -0
  85. package/node_modules/@noodle-borg/compiler/dist/confirmation-flow.js +36 -0
  86. package/node_modules/@noodle-borg/compiler/dist/confirmation-flow.js.map +1 -0
  87. package/node_modules/@noodle-borg/compiler/dist/context-compile.d.ts +18 -0
  88. package/node_modules/@noodle-borg/compiler/dist/context-compile.d.ts.map +1 -0
  89. package/node_modules/@noodle-borg/compiler/dist/context-compile.js +28 -0
  90. package/node_modules/@noodle-borg/compiler/dist/context-compile.js.map +1 -0
  91. package/node_modules/@noodle-borg/compiler/dist/elicitation-schema.d.ts +5 -0
  92. package/node_modules/@noodle-borg/compiler/dist/elicitation-schema.d.ts.map +1 -0
  93. package/node_modules/@noodle-borg/compiler/dist/elicitation-schema.js +108 -0
  94. package/node_modules/@noodle-borg/compiler/dist/elicitation-schema.js.map +1 -0
  95. package/node_modules/@noodle-borg/compiler/dist/errors.d.ts +1 -1
  96. package/node_modules/@noodle-borg/compiler/dist/errors.d.ts.map +1 -1
  97. package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.d.ts +3 -1
  98. package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.d.ts.map +1 -1
  99. package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.js +22 -4
  100. package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.js.map +1 -1
  101. package/node_modules/@noodle-borg/compiler/dist/fulfilment-structural.d.ts +8 -3
  102. package/node_modules/@noodle-borg/compiler/dist/fulfilment-structural.d.ts.map +1 -1
  103. package/node_modules/@noodle-borg/compiler/dist/fulfilment-structural.js +16 -3
  104. package/node_modules/@noodle-borg/compiler/dist/fulfilment-structural.js.map +1 -1
  105. package/node_modules/@noodle-borg/compiler/dist/index.d.ts +2 -2
  106. package/node_modules/@noodle-borg/compiler/dist/index.d.ts.map +1 -1
  107. package/node_modules/@noodle-borg/compiler/dist/index.js +1 -1
  108. package/node_modules/@noodle-borg/compiler/dist/index.js.map +1 -1
  109. package/node_modules/@noodle-borg/compiler/dist/manifest/expression.d.ts +1 -1
  110. package/node_modules/@noodle-borg/compiler/dist/manifest/expression.js +1 -1
  111. package/node_modules/@noodle-borg/compiler/dist/manifest/expression.js.map +1 -1
  112. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +37 -0
  113. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
  114. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +27 -4
  115. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
  116. package/node_modules/@noodle-borg/module/dist/contract.d.ts +2 -0
  117. package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
  118. package/node_modules/@noodle-borg/module/dist/contract.js.map +1 -1
  119. package/node_modules/@noodle-borg/protocol/dist/confirmation-elicitation.d.ts +20 -0
  120. package/node_modules/@noodle-borg/protocol/dist/confirmation-elicitation.d.ts.map +1 -0
  121. package/node_modules/@noodle-borg/protocol/dist/confirmation-elicitation.js +159 -0
  122. package/node_modules/@noodle-borg/protocol/dist/confirmation-elicitation.js.map +1 -0
  123. package/node_modules/@noodle-borg/protocol/dist/context-tool.d.ts +9 -0
  124. package/node_modules/@noodle-borg/protocol/dist/context-tool.d.ts.map +1 -0
  125. package/node_modules/@noodle-borg/protocol/dist/context-tool.js +76 -0
  126. package/node_modules/@noodle-borg/protocol/dist/context-tool.js.map +1 -0
  127. package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts +1 -1
  128. package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts.map +1 -1
  129. package/node_modules/@noodle-borg/protocol/dist/mapping.js +10 -22
  130. package/node_modules/@noodle-borg/protocol/dist/mapping.js.map +1 -1
  131. package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts +9 -1
  132. package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts.map +1 -1
  133. package/node_modules/@noodle-borg/protocol/dist/sdk-server.js +54 -6
  134. package/node_modules/@noodle-borg/protocol/dist/sdk-server.js.map +1 -1
  135. package/node_modules/@noodle-borg/protocol/dist/stateless.d.ts.map +1 -1
  136. package/node_modules/@noodle-borg/protocol/dist/stateless.js +8 -1
  137. package/node_modules/@noodle-borg/protocol/dist/stateless.js.map +1 -1
  138. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.d.ts +29 -0
  139. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.d.ts.map +1 -0
  140. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.js +74 -0
  141. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.js.map +1 -0
  142. package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.d.ts.map +1 -1
  143. package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.js +9 -4
  144. package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.js.map +1 -1
  145. package/node_modules/@noodle-borg/protocol/dist/widget/model-context-bootstrap.d.ts +3 -0
  146. package/node_modules/@noodle-borg/protocol/dist/widget/model-context-bootstrap.d.ts.map +1 -0
  147. package/node_modules/@noodle-borg/protocol/dist/widget/model-context-bootstrap.js +80 -0
  148. package/node_modules/@noodle-borg/protocol/dist/widget/model-context-bootstrap.js.map +1 -0
  149. package/node_modules/@noodle-borg/protocol/dist/widget/openai-bridge.d.ts.map +1 -1
  150. package/node_modules/@noodle-borg/protocol/dist/widget/openai-bridge.js +16 -4
  151. package/node_modules/@noodle-borg/protocol/dist/widget/openai-bridge.js.map +1 -1
  152. package/node_modules/@noodle-borg/protocol/dist/widget/react-bridge-bootstrap.d.ts +1 -1
  153. package/node_modules/@noodle-borg/protocol/dist/widget/react-bridge-bootstrap.d.ts.map +1 -1
  154. package/node_modules/@noodle-borg/protocol/dist/widget/react-bridge-bootstrap.js +2 -0
  155. package/node_modules/@noodle-borg/protocol/dist/widget/react-bridge-bootstrap.js.map +1 -1
  156. package/node_modules/@noodle-borg/runtime/dist/ambient-context.d.ts +10 -0
  157. package/node_modules/@noodle-borg/runtime/dist/ambient-context.d.ts.map +1 -0
  158. package/node_modules/@noodle-borg/runtime/dist/ambient-context.js +51 -0
  159. package/node_modules/@noodle-borg/runtime/dist/ambient-context.js.map +1 -0
  160. package/node_modules/@noodle-borg/runtime/dist/confirmation.d.ts +18 -0
  161. package/node_modules/@noodle-borg/runtime/dist/confirmation.d.ts.map +1 -0
  162. package/node_modules/@noodle-borg/runtime/dist/confirmation.js +263 -0
  163. package/node_modules/@noodle-borg/runtime/dist/confirmation.js.map +1 -0
  164. package/node_modules/@noodle-borg/runtime/dist/connector/types.d.ts +4 -0
  165. package/node_modules/@noodle-borg/runtime/dist/connector/types.d.ts.map +1 -1
  166. package/node_modules/@noodle-borg/runtime/dist/connector/types.js.map +1 -1
  167. package/node_modules/@noodle-borg/runtime/dist/context-bounds.d.ts +15 -0
  168. package/node_modules/@noodle-borg/runtime/dist/context-bounds.d.ts.map +1 -0
  169. package/node_modules/@noodle-borg/runtime/dist/context-bounds.js +123 -0
  170. package/node_modules/@noodle-borg/runtime/dist/context-bounds.js.map +1 -0
  171. package/node_modules/@noodle-borg/runtime/dist/elicitation-response.d.ts +13 -0
  172. package/node_modules/@noodle-borg/runtime/dist/elicitation-response.d.ts.map +1 -0
  173. package/node_modules/@noodle-borg/runtime/dist/elicitation-response.js +26 -0
  174. package/node_modules/@noodle-borg/runtime/dist/elicitation-response.js.map +1 -0
  175. package/node_modules/@noodle-borg/runtime/dist/execute.d.ts +69 -7
  176. package/node_modules/@noodle-borg/runtime/dist/execute.d.ts.map +1 -1
  177. package/node_modules/@noodle-borg/runtime/dist/execute.js +136 -33
  178. package/node_modules/@noodle-borg/runtime/dist/execute.js.map +1 -1
  179. package/node_modules/@noodle-borg/runtime/dist/index.d.ts +6 -2
  180. package/node_modules/@noodle-borg/runtime/dist/index.d.ts.map +1 -1
  181. package/node_modules/@noodle-borg/runtime/dist/index.js +5 -1
  182. package/node_modules/@noodle-borg/runtime/dist/index.js.map +1 -1
  183. package/node_modules/@noodle-borg/runtime/dist/interactive.d.ts +8 -0
  184. package/node_modules/@noodle-borg/runtime/dist/interactive.d.ts.map +1 -0
  185. package/node_modules/@noodle-borg/runtime/dist/interactive.js +138 -0
  186. package/node_modules/@noodle-borg/runtime/dist/interactive.js.map +1 -0
  187. package/node_modules/@noodle-borg/runtime/dist/invocation-context.d.ts +22 -0
  188. package/node_modules/@noodle-borg/runtime/dist/invocation-context.d.ts.map +1 -0
  189. package/node_modules/@noodle-borg/runtime/dist/invocation-context.js +2 -0
  190. package/node_modules/@noodle-borg/runtime/dist/invocation-context.js.map +1 -0
  191. package/node_modules/@noodle-borg/runtime/dist/result.d.ts +135 -3
  192. package/node_modules/@noodle-borg/runtime/dist/result.d.ts.map +1 -1
  193. package/node_modules/@noodle-borg/runtime/dist/result.js +9 -1
  194. package/node_modules/@noodle-borg/runtime/dist/result.js.map +1 -1
  195. package/node_modules/@noodle-borg/service/dist/assistant-context.d.ts +25 -0
  196. package/node_modules/@noodle-borg/service/dist/assistant-context.d.ts.map +1 -0
  197. package/node_modules/@noodle-borg/service/dist/assistant-context.js +130 -0
  198. package/node_modules/@noodle-borg/service/dist/assistant-context.js.map +1 -0
  199. package/node_modules/@noodle-borg/service/dist/assistant-interaction-state.d.ts +181 -0
  200. package/node_modules/@noodle-borg/service/dist/assistant-interaction-state.d.ts.map +1 -0
  201. package/node_modules/@noodle-borg/service/dist/assistant-interaction-state.js +293 -0
  202. package/node_modules/@noodle-borg/service/dist/assistant-interaction-state.js.map +1 -0
  203. package/node_modules/@noodle-borg/service/dist/assistant-interactive.d.ts +92 -0
  204. package/node_modules/@noodle-borg/service/dist/assistant-interactive.d.ts.map +1 -0
  205. package/node_modules/@noodle-borg/service/dist/assistant-interactive.js +219 -0
  206. package/node_modules/@noodle-borg/service/dist/assistant-interactive.js.map +1 -0
  207. package/node_modules/@noodle-borg/service/dist/assistant-presentation.d.ts +24 -0
  208. package/node_modules/@noodle-borg/service/dist/assistant-presentation.d.ts.map +1 -0
  209. package/node_modules/@noodle-borg/service/dist/assistant-presentation.js +151 -0
  210. package/node_modules/@noodle-borg/service/dist/assistant-presentation.js.map +1 -0
  211. package/node_modules/@noodle-borg/service/dist/assistant-sensitive-values.d.ts +3 -0
  212. package/node_modules/@noodle-borg/service/dist/assistant-sensitive-values.d.ts.map +1 -0
  213. package/node_modules/@noodle-borg/service/dist/assistant-sensitive-values.js +6 -0
  214. package/node_modules/@noodle-borg/service/dist/assistant-sensitive-values.js.map +1 -0
  215. package/node_modules/@noodle-borg/service/dist/assistant-store.d.ts +38 -11
  216. package/node_modules/@noodle-borg/service/dist/assistant-store.d.ts.map +1 -1
  217. package/node_modules/@noodle-borg/service/dist/assistant-store.js +111 -13
  218. package/node_modules/@noodle-borg/service/dist/assistant-store.js.map +1 -1
  219. package/node_modules/@noodle-borg/service/dist/assistant-view-availability.d.ts +23 -0
  220. package/node_modules/@noodle-borg/service/dist/assistant-view-availability.d.ts.map +1 -0
  221. package/node_modules/@noodle-borg/service/dist/assistant-view-availability.js +24 -0
  222. package/node_modules/@noodle-borg/service/dist/assistant-view-availability.js.map +1 -0
  223. package/node_modules/@noodle-borg/service/dist/commercial-plans.d.ts.map +1 -1
  224. package/node_modules/@noodle-borg/service/dist/commercial-plans.js +5 -6
  225. package/node_modules/@noodle-borg/service/dist/commercial-plans.js.map +1 -1
  226. package/node_modules/@noodle-borg/service/dist/customer-verifier.d.ts.map +1 -1
  227. package/node_modules/@noodle-borg/service/dist/customer-verifier.js +6 -0
  228. package/node_modules/@noodle-borg/service/dist/customer-verifier.js.map +1 -1
  229. package/node_modules/@noodle-borg/service/dist/index.d.ts +1 -2
  230. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  231. package/node_modules/@noodle-borg/service/dist/index.js +1 -2
  232. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  233. package/node_modules/@noodle-borg/service/dist/invocation-context.d.ts +20 -0
  234. package/node_modules/@noodle-borg/service/dist/invocation-context.d.ts.map +1 -0
  235. package/node_modules/@noodle-borg/service/dist/invocation-context.js +51 -0
  236. package/node_modules/@noodle-borg/service/dist/invocation-context.js.map +1 -0
  237. package/node_modules/@noodle-borg/service/dist/main.js +0 -9
  238. package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
  239. package/node_modules/@noodle-borg/service/dist/mcp-public-routing.d.ts +10 -0
  240. package/node_modules/@noodle-borg/service/dist/mcp-public-routing.d.ts.map +1 -1
  241. package/node_modules/@noodle-borg/service/dist/mcp-public-routing.js +16 -0
  242. package/node_modules/@noodle-borg/service/dist/mcp-public-routing.js.map +1 -1
  243. package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.d.ts +17 -0
  244. package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.d.ts.map +1 -0
  245. package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.js +14 -0
  246. package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.js.map +1 -0
  247. package/node_modules/@noodle-borg/service/dist/oauth/google.d.ts +2 -0
  248. package/node_modules/@noodle-borg/service/dist/oauth/google.d.ts.map +1 -1
  249. package/node_modules/@noodle-borg/service/dist/oauth/google.js +11 -1
  250. package/node_modules/@noodle-borg/service/dist/oauth/google.js.map +1 -1
  251. package/node_modules/@noodle-borg/service/dist/oauth/identity-preferences.d.ts +27 -0
  252. package/node_modules/@noodle-borg/service/dist/oauth/identity-preferences.d.ts.map +1 -0
  253. package/node_modules/@noodle-borg/service/dist/oauth/identity-preferences.js +34 -0
  254. package/node_modules/@noodle-borg/service/dist/oauth/identity-preferences.js.map +1 -0
  255. package/node_modules/@noodle-borg/service/dist/oauth/microsoft.d.ts.map +1 -1
  256. package/node_modules/@noodle-borg/service/dist/oauth/microsoft.js +6 -0
  257. package/node_modules/@noodle-borg/service/dist/oauth/microsoft.js.map +1 -1
  258. package/node_modules/@noodle-borg/service/dist/oauth/provider.d.ts.map +1 -1
  259. package/node_modules/@noodle-borg/service/dist/oauth/provider.js +48 -92
  260. package/node_modules/@noodle-borg/service/dist/oauth/provider.js.map +1 -1
  261. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.d.ts.map +1 -1
  262. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.js +29 -9
  263. package/node_modules/@noodle-borg/service/dist/oauth/store-postgres.js.map +1 -1
  264. package/node_modules/@noodle-borg/service/dist/oauth/store.d.ts +6 -0
  265. package/node_modules/@noodle-borg/service/dist/oauth/store.d.ts.map +1 -1
  266. package/node_modules/@noodle-borg/service/dist/oauth/store.js +4 -0
  267. package/node_modules/@noodle-borg/service/dist/oauth/store.js.map +1 -1
  268. package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.d.ts +45 -0
  269. package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.d.ts.map +1 -0
  270. package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.js +110 -0
  271. package/node_modules/@noodle-borg/service/dist/oauth/token-issuer.js.map +1 -0
  272. package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.d.ts +19 -0
  273. package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.d.ts.map +1 -0
  274. package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.js +228 -0
  275. package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.js.map +1 -0
  276. package/node_modules/@noodle-borg/service/dist/routes/assistant-dispatch.d.ts.map +1 -1
  277. package/node_modules/@noodle-borg/service/dist/routes/assistant-dispatch.js +7 -2
  278. package/node_modules/@noodle-borg/service/dist/routes/assistant-dispatch.js.map +1 -1
  279. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-replay.d.ts +8 -0
  280. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-replay.d.ts.map +1 -0
  281. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-replay.js +126 -0
  282. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-replay.js.map +1 -0
  283. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-request.d.ts +23 -0
  284. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-request.d.ts.map +1 -0
  285. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-request.js +29 -0
  286. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-request.js.map +1 -0
  287. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-resolution.d.ts +17 -0
  288. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-resolution.d.ts.map +1 -0
  289. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-resolution.js +47 -0
  290. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-resolution.js.map +1 -0
  291. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-stream.d.ts +20 -0
  292. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-stream.d.ts.map +1 -0
  293. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-stream.js +55 -0
  294. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-stream.js.map +1 -0
  295. package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.d.ts +7 -0
  296. package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.d.ts.map +1 -0
  297. package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.js +427 -0
  298. package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.js.map +1 -0
  299. package/node_modules/@noodle-borg/service/dist/routes/assistant-route-http.d.ts +8 -0
  300. package/node_modules/@noodle-borg/service/dist/routes/assistant-route-http.d.ts.map +1 -0
  301. package/node_modules/@noodle-borg/service/dist/routes/assistant-route-http.js +50 -0
  302. package/node_modules/@noodle-borg/service/dist/routes/assistant-route-http.js.map +1 -0
  303. package/node_modules/@noodle-borg/service/dist/routes/assistant.d.ts +3 -3
  304. package/node_modules/@noodle-borg/service/dist/routes/assistant.d.ts.map +1 -1
  305. package/node_modules/@noodle-borg/service/dist/routes/assistant.js +49 -295
  306. package/node_modules/@noodle-borg/service/dist/routes/assistant.js.map +1 -1
  307. package/node_modules/@noodle-borg/service/dist/routes/plans.d.ts +1 -1
  308. package/node_modules/@noodle-borg/service/dist/routes/plans.d.ts.map +1 -1
  309. package/node_modules/@noodle-borg/service/dist/routes/plans.js +92 -4
  310. package/node_modules/@noodle-borg/service/dist/routes/plans.js.map +1 -1
  311. package/node_modules/@noodle-borg/service/dist/serve.d.ts +0 -6
  312. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  313. package/node_modules/@noodle-borg/service/dist/serve.js +0 -6
  314. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  315. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  316. package/node_modules/@noodle-borg/service/dist/service.js +4 -10
  317. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  318. package/node_modules/@noodle-borg/service/dist/store/postgres-assistant-interaction-writes.d.ts +6 -0
  319. package/node_modules/@noodle-borg/service/dist/store/postgres-assistant-interaction-writes.d.ts.map +1 -0
  320. package/node_modules/@noodle-borg/service/dist/store/postgres-assistant-interaction-writes.js +36 -0
  321. package/node_modules/@noodle-borg/service/dist/store/postgres-assistant-interaction-writes.js.map +1 -0
  322. package/node_modules/@noodle-borg/service/dist/store/postgres-assistant-interactions.d.ts +25 -0
  323. package/node_modules/@noodle-borg/service/dist/store/postgres-assistant-interactions.d.ts.map +1 -0
  324. package/node_modules/@noodle-borg/service/dist/store/postgres-assistant-interactions.js +330 -0
  325. package/node_modules/@noodle-borg/service/dist/store/postgres-assistant-interactions.js.map +1 -0
  326. package/node_modules/@noodle-borg/service/dist/store/postgres-assistant.d.ts +17 -3
  327. package/node_modules/@noodle-borg/service/dist/store/postgres-assistant.d.ts.map +1 -1
  328. package/node_modules/@noodle-borg/service/dist/store/postgres-assistant.js +30 -37
  329. package/node_modules/@noodle-borg/service/dist/store/postgres-assistant.js.map +1 -1
  330. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +8 -1
  331. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts.map +1 -1
  332. package/node_modules/@noodle-borg/transport-http/dist/handler.js +20 -2
  333. package/node_modules/@noodle-borg/transport-http/dist/handler.js.map +1 -1
  334. package/node_modules/@noodle-borg/transport-http/dist/index.d.ts +1 -1
  335. package/node_modules/@noodle-borg/transport-http/dist/index.d.ts.map +1 -1
  336. package/node_modules/@noodle-borg/transport-http/dist/index.js.map +1 -1
  337. package/node_modules/@noodle-borg/transport-http/package.json +1 -0
  338. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts +117 -0
  339. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts.map +1 -1
  340. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js +135 -0
  341. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js.map +1 -1
  342. package/package.json +1 -1
  343. package/node_modules/@noodle-borg/service/dist/free-tier.d.ts +0 -33
  344. package/node_modules/@noodle-borg/service/dist/free-tier.d.ts.map +0 -1
  345. package/node_modules/@noodle-borg/service/dist/free-tier.js +0 -77
  346. package/node_modules/@noodle-borg/service/dist/free-tier.js.map +0 -1
@@ -0,0 +1,263 @@
1
+ import { validateElicitationContent } from './elicitation-response.js';
2
+ import { ExpressionEvalError, evaluateCondition } from './eval/evaluate.js';
3
+ import { attachResultMeta, createHost, evalExprMap, prepareOperationAction, resolveEnv, runOperation, scopeFor, splitResultMeta, } from './execute.js';
4
+ import { AllowAllPolicy } from './policy/allow-all.js';
5
+ /**
6
+ * Evaluate the pure prefix of a confirmable tool. Connector operations are an absolute suspension
7
+ * boundary: this function either requests input, returns a prepared confirmation, or fails before
8
+ * invoking one.
9
+ */
10
+ export async function prepareToolForConfirmation(artifact, toolName, input, deps) {
11
+ if (artifact.resolution !== 'resolved') {
12
+ return failPreparation('shape_only_artifact', 'runtime refuses to serve a shape-only artifact');
13
+ }
14
+ const tool = artifact.tools.find((candidate) => candidate.name === toolName);
15
+ if (!tool)
16
+ return failPreparation('unknown_tool', `no tool named "${toolName}"`);
17
+ if (tool.fulfilment.kind === 'flow') {
18
+ const invalid = invalidConfirmationFlow(tool.fulfilment);
19
+ if (invalid)
20
+ return invalid;
21
+ }
22
+ const env = await resolveEnv(deps);
23
+ if (tool.fulfilment.kind === 'operation') {
24
+ const prepared = prepareOperationAction(tool.fulfilment.operationRef, tool.fulfilment.args, scopeFor(input, {}, env, deps), deps, 'args');
25
+ if (!prepared.ok)
26
+ return { status: 'failed', error: prepared.error };
27
+ return confirmationRequired(artifact, toolName, input, 0, {}, {}, env, prepared.action);
28
+ }
29
+ return runPreparation(artifact, toolName, tool.fulfilment, input, 0, {}, {}, env, deps);
30
+ }
31
+ /** Resume the pure preparation prefix with one accepted, declined, or cancelled input response. */
32
+ export async function resumeToolPreparation(artifact, continuation, response, deps) {
33
+ if (artifact.resolution !== 'resolved') {
34
+ return failPreparation('shape_only_artifact', 'runtime refuses to serve a shape-only artifact');
35
+ }
36
+ if (continuation.kind !== 'confirmation_preparation' ||
37
+ continuation.version !== 1 ||
38
+ !sameArtifact(artifact, continuation)) {
39
+ return failPreparation('invalid_continuation', 'tool continuation does not match the artifact');
40
+ }
41
+ if (response.action !== 'accept')
42
+ return { status: 'stopped', action: response.action };
43
+ const validated = validateElicitationContent(response.content ?? {}, continuation.pending.requestedSchema, `steps.${continuation.pending.id}`);
44
+ if (!validated.ok)
45
+ return { status: 'failed', error: validated.error };
46
+ const tool = artifact.tools.find((candidate) => candidate.name === continuation.toolName);
47
+ if (tool?.fulfilment.kind !== 'flow') {
48
+ return failPreparation('invalid_continuation', 'continued tool is unavailable');
49
+ }
50
+ const invalid = invalidConfirmationFlow(tool.fulfilment);
51
+ if (invalid)
52
+ return invalid;
53
+ const responseContent = validated.value;
54
+ return runPreparation(artifact, continuation.toolName, tool.fulfilment, continuation.input, continuation.nextStepIndex, { ...continuation.completedSteps, [continuation.pending.id]: responseContent }, { ...continuation.elicited, [continuation.pending.id]: responseContent }, { ...continuation.env }, deps);
55
+ }
56
+ /**
57
+ * Execute a previously prepared tool after approval. The whole flow is checked again before the
58
+ * first operation; a forged or drifted continuation can therefore never reach a late elicitation
59
+ * after performing a side effect.
60
+ */
61
+ export async function executePreparedTool(artifact, continuation, deps) {
62
+ if (artifact.resolution !== 'resolved') {
63
+ return failInteractive('shape_only_artifact', 'runtime refuses to serve a shape-only artifact');
64
+ }
65
+ if (continuation.kind !== 'prepared_confirmation' ||
66
+ continuation.version !== 1 ||
67
+ !sameArtifact(artifact, continuation)) {
68
+ return failInteractive('invalid_continuation', 'tool continuation does not match the artifact');
69
+ }
70
+ const tool = artifact.tools.find((candidate) => candidate.name === continuation.toolName);
71
+ if (!tool)
72
+ return failInteractive('invalid_continuation', 'continued tool is unavailable');
73
+ if (tool.fulfilment.kind === 'operation') {
74
+ if (continuation.nextStepIndex !== 0 || Object.keys(continuation.completedSteps).length > 0) {
75
+ return failInteractive('invalid_continuation', 'prepared tool state is invalid');
76
+ }
77
+ if (continuation.reviewedAction === undefined) {
78
+ return failInteractive('invalid_continuation', 'prepared action review is missing');
79
+ }
80
+ const env = { ...continuation.env };
81
+ const policy = deps.policy ?? new AllowAllPolicy();
82
+ const result = await runOperation(tool.fulfilment.operationRef, tool.fulfilment.args, scopeFor(continuation.input, {}, env, deps), tool.name, deps, policy, createHost(tool.name, deps, policy, env, []), env, 'args', 'output', continuation.reviewedAction);
83
+ return result.ok
84
+ ? { status: 'completed', output: result.output }
85
+ : { status: 'failed', error: result.error };
86
+ }
87
+ const invalid = invalidConfirmationFlow(tool.fulfilment);
88
+ if (invalid)
89
+ return invalid;
90
+ if (continuation.nextStepIndex < 0 ||
91
+ continuation.nextStepIndex > tool.fulfilment.steps.length ||
92
+ tool.fulfilment.steps.slice(continuation.nextStepIndex).some((step) => step.kind === 'elicit')) {
93
+ return failInteractive('invalid_continuation', 'prepared tool state crosses an elicitation boundary');
94
+ }
95
+ const hasPreparedOperation = tool.fulfilment.steps
96
+ .slice(continuation.nextStepIndex)
97
+ .some((step) => step.kind === 'operation');
98
+ if (hasPreparedOperation !== (continuation.reviewedAction !== undefined)) {
99
+ return failInteractive('invalid_continuation', 'prepared action review does not match the flow');
100
+ }
101
+ return runPreparedFlow(continuation.toolName, tool.fulfilment, continuation.input, continuation.nextStepIndex, { ...continuation.completedSteps }, { ...continuation.env }, deps, continuation.reviewedAction);
102
+ }
103
+ async function runPreparation(artifact, toolName, flow, input, startIndex, steps, elicited, env, deps) {
104
+ try {
105
+ for (let index = startIndex; index < flow.steps.length; index += 1) {
106
+ const step = flow.steps[index];
107
+ if (!step)
108
+ continue;
109
+ const scope = scopeFor(input, steps, env, deps);
110
+ if (step.if && !evaluateCondition(step.if, scope, `steps.${step.id}.if`))
111
+ continue;
112
+ if (step.kind === 'operation') {
113
+ const prepared = prepareOperationAction(step.operationRef, step.args, scope, deps, `steps.${step.id}.args`, flow.steps.slice(index + 1).filter((candidate) => candidate.kind === 'operation').length);
114
+ if (!prepared.ok)
115
+ return { status: 'failed', error: prepared.error };
116
+ return confirmationRequired(artifact, toolName, input, index, steps, elicited, env, prepared.action);
117
+ }
118
+ if (step.kind === 'map') {
119
+ steps[step.id] = evalExprMap(step.value, scope, `steps.${step.id}`);
120
+ continue;
121
+ }
122
+ const request = {
123
+ id: step.id,
124
+ message: step.message,
125
+ requestedSchema: step.requestedSchema,
126
+ };
127
+ return {
128
+ status: 'input_required',
129
+ request,
130
+ continuation: {
131
+ kind: 'confirmation_preparation',
132
+ version: 1,
133
+ artifact: artifactIdentity(artifact),
134
+ toolName,
135
+ input,
136
+ nextStepIndex: index + 1,
137
+ completedSteps: { ...steps },
138
+ elicited: { ...elicited },
139
+ env: { ...env },
140
+ pending: request,
141
+ },
142
+ };
143
+ }
144
+ return confirmationRequired(artifact, toolName, input, flow.steps.length, steps, elicited, env);
145
+ }
146
+ catch (error) {
147
+ if (error instanceof ExpressionEvalError) {
148
+ return failPreparation('expression_error', error.message, error.path);
149
+ }
150
+ throw error;
151
+ }
152
+ }
153
+ async function runPreparedFlow(toolName, flow, input, startIndex, steps, env, deps, reviewedAction) {
154
+ const policy = deps.policy ?? new AllowAllPolicy();
155
+ const host = createHost(toolName, deps, policy, env, []);
156
+ const resultMetas = [];
157
+ try {
158
+ for (let index = startIndex; index < flow.steps.length; index += 1) {
159
+ const step = flow.steps[index];
160
+ if (!step)
161
+ continue;
162
+ const scope = scopeFor(input, steps, env, deps);
163
+ if (step.if && !evaluateCondition(step.if, scope, `steps.${step.id}.if`))
164
+ continue;
165
+ if (step.kind === 'elicit') {
166
+ return failInteractive('invalid_confirmation_flow', 'confirmable flows must collect all elicited input before the first operation');
167
+ }
168
+ if (step.kind === 'map') {
169
+ steps[step.id] = evalExprMap(step.value, scope, `steps.${step.id}`);
170
+ continue;
171
+ }
172
+ const result = await runOperation(step.operationRef, step.args, scope, toolName, deps, policy, host, env, `steps.${step.id}.args`, `steps.${step.id}.output`, reviewedAction);
173
+ reviewedAction = undefined;
174
+ if (!result.ok)
175
+ return { status: 'failed', error: result.error };
176
+ const split = splitResultMeta(result.output);
177
+ steps[step.id] = split.visible;
178
+ if (split.meta !== undefined)
179
+ resultMetas.push(split.meta);
180
+ }
181
+ const output = evalExprMap(flow.output, scopeFor(input, steps, env, deps), 'output');
182
+ if (reviewedAction !== undefined) {
183
+ return failInteractive('invalid_continuation', 'reviewed action was not executed');
184
+ }
185
+ return { status: 'completed', output: attachResultMeta(output, resultMetas) };
186
+ }
187
+ catch (error) {
188
+ if (error instanceof ExpressionEvalError) {
189
+ return failInteractive('expression_error', error.message, error.path);
190
+ }
191
+ throw error;
192
+ }
193
+ }
194
+ function confirmationRequired(artifact, toolName, input, nextStepIndex, completedSteps, elicited, env, action) {
195
+ const reviewedAction = action === undefined
196
+ ? undefined
197
+ : {
198
+ connectorId: action.connectorId,
199
+ connectorVersion: action.connectorVersion,
200
+ operation: action.operation,
201
+ arguments: action.arguments,
202
+ };
203
+ return {
204
+ status: 'confirmation_required',
205
+ review: { input, elicited: { ...elicited }, ...(action !== undefined ? { action } : {}) },
206
+ continuation: {
207
+ kind: 'prepared_confirmation',
208
+ version: 1,
209
+ artifact: artifactIdentity(artifact),
210
+ toolName,
211
+ input,
212
+ nextStepIndex,
213
+ completedSteps: { ...completedSteps },
214
+ env: { ...env },
215
+ ...(reviewedAction !== undefined ? { reviewedAction } : {}),
216
+ },
217
+ };
218
+ }
219
+ function invalidConfirmationFlow(flow) {
220
+ let operationSeen = false;
221
+ let operationCount = 0;
222
+ for (const step of flow.steps) {
223
+ if (step.kind === 'operation') {
224
+ operationSeen = true;
225
+ operationCount += 1;
226
+ if (operationCount > 1) {
227
+ return failPreparation('invalid_confirmation_flow', 'confirmable flows may contain at most one connector operation', `steps.${step.id}`);
228
+ }
229
+ }
230
+ if (step.kind === 'elicit' && operationSeen) {
231
+ return failPreparation('invalid_elicitation_flow', 'interactive flows must collect all elicited input before the first operation', `steps.${step.id}`);
232
+ }
233
+ }
234
+ return null;
235
+ }
236
+ function artifactIdentity(artifact) {
237
+ return {
238
+ manifestName: artifact.source.manifestName,
239
+ manifestVersion: artifact.source.manifestVersion,
240
+ serverName: artifact.server.name,
241
+ serverVersion: artifact.server.version,
242
+ };
243
+ }
244
+ function sameArtifact(artifact, continuation) {
245
+ const expected = artifactIdentity(artifact);
246
+ return (expected.manifestName === continuation.artifact.manifestName &&
247
+ expected.manifestVersion === continuation.artifact.manifestVersion &&
248
+ expected.serverName === continuation.artifact.serverName &&
249
+ expected.serverVersion === continuation.artifact.serverVersion);
250
+ }
251
+ function failPreparation(code, message, path) {
252
+ return {
253
+ status: 'failed',
254
+ error: path === undefined ? { code, message } : { code, message, path },
255
+ };
256
+ }
257
+ function failInteractive(code, message, path) {
258
+ return {
259
+ status: 'failed',
260
+ error: path === undefined ? { code, message } : { code, message, path },
261
+ };
262
+ }
263
+ //# sourceMappingURL=confirmation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmation.js","sourceRoot":"","sources":["../src/confirmation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EACL,gBAAgB,EAChB,UAAU,EAEV,WAAW,EACX,sBAAsB,EACtB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAcvD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,QAAyB,EACzB,QAAgB,EAChB,KAAc,EACd,IAAiB;IAEjB,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACvC,OAAO,eAAe,CAAC,qBAAqB,EAAE,gDAAgD,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC7E,IAAI,CAAC,IAAI;QAAE,OAAO,eAAe,CAAC,cAAc,EAAE,kBAAkB,QAAQ,GAAG,CAAC,CAAC;IACjF,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;IAC9B,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,sBAAsB,CACrC,IAAI,CAAC,UAAU,CAAC,YAAY,EAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,EACpB,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,EAC9B,IAAI,EACJ,MAAM,CACP,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;QACrE,OAAO,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC1F,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAAyB,EACzB,YAAyC,EACzC,QAA6B,EAC7B,IAAiB;IAEjB,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACvC,OAAO,eAAe,CAAC,qBAAqB,EAAE,gDAAgD,CAAC,CAAC;IAClG,CAAC;IACD,IACE,YAAY,CAAC,IAAI,KAAK,0BAA0B;QAChD,YAAY,CAAC,OAAO,KAAK,CAAC;QAC1B,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,EACrC,CAAC;QACD,OAAO,eAAe,CAAC,sBAAsB,EAAE,+CAA+C,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IACxF,MAAM,SAAS,GAAG,0BAA0B,CAC1C,QAAQ,CAAC,OAAO,IAAI,EAAE,EACtB,YAAY,CAAC,OAAO,CAAC,eAAe,EACpC,SAAS,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,CACnC,CAAC;IACF,IAAI,CAAC,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;IACvE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1F,IAAI,IAAI,EAAE,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACrC,OAAO,eAAe,CAAC,sBAAsB,EAAE,+BAA+B,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC;IACxC,OAAO,cAAc,CACnB,QAAQ,EACR,YAAY,CAAC,QAAQ,EACrB,IAAI,CAAC,UAAU,EACf,YAAY,CAAC,KAAK,EAClB,YAAY,CAAC,aAAa,EAC1B,EAAE,GAAG,YAAY,CAAC,cAAc,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAC9E,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EACxE,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,EACvB,IAAI,CACL,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAyB,EACzB,YAAsC,EACtC,IAAiB;IAEjB,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACvC,OAAO,eAAe,CAAC,qBAAqB,EAAE,gDAAgD,CAAC,CAAC;IAClG,CAAC;IACD,IACE,YAAY,CAAC,IAAI,KAAK,uBAAuB;QAC7C,YAAY,CAAC,OAAO,KAAK,CAAC;QAC1B,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,EACrC,CAAC;QACD,OAAO,eAAe,CAAC,sBAAsB,EAAE,+CAA+C,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC1F,IAAI,CAAC,IAAI;QAAE,OAAO,eAAe,CAAC,sBAAsB,EAAE,+BAA+B,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACzC,IAAI,YAAY,CAAC,aAAa,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5F,OAAO,eAAe,CAAC,sBAAsB,EAAE,gCAAgC,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,YAAY,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO,eAAe,CAAC,sBAAsB,EAAE,mCAAmC,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,GAAG,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,IAAI,CAAC,UAAU,CAAC,YAAY,EAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,EACpB,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,EAC3C,IAAI,CAAC,IAAI,EACT,IAAI,EACJ,MAAM,EACN,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,EAC5C,GAAG,EACH,MAAM,EACN,QAAQ,EACR,YAAY,CAAC,cAAc,CAC5B,CAAC;QACF,OAAO,MAAM,CAAC,EAAE;YACd,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;YAChD,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;IACD,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,IACE,YAAY,CAAC,aAAa,GAAG,CAAC;QAC9B,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM;QACzD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,EAC9F,CAAC;QACD,OAAO,eAAe,CACpB,sBAAsB,EACtB,qDAAqD,CACtD,CAAC;IACJ,CAAC;IACD,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;SAC/C,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC;SACjC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAC7C,IAAI,oBAAoB,KAAK,CAAC,YAAY,CAAC,cAAc,KAAK,SAAS,CAAC,EAAE,CAAC;QACzE,OAAO,eAAe,CACpB,sBAAsB,EACtB,gDAAgD,CACjD,CAAC;IACJ,CAAC;IACD,OAAO,eAAe,CACpB,YAAY,CAAC,QAAQ,EACrB,IAAI,CAAC,UAAU,EACf,YAAY,CAAC,KAAK,EAClB,YAAY,CAAC,aAAa,EAC1B,EAAE,GAAG,YAAY,CAAC,cAAc,EAAE,EAClC,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,EACvB,IAAI,EACJ,YAAY,CAAC,cAAc,CAC5B,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,QAAyB,EACzB,QAAgB,EAChB,IAAoB,EACpB,KAAc,EACd,UAAkB,EAClB,KAA8B,EAC9B,QAAiC,EACjC,GAA2B,EAC3B,IAAiB;IAEjB,IAAI,CAAC;QACH,KAAK,IAAI,KAAK,GAAG,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,EAAE,KAAK,CAAC;gBAAE,SAAS;YACnF,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,sBAAsB,CACrC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,IAAI,EACT,KAAK,EACL,IAAI,EACJ,SAAS,IAAI,CAAC,EAAE,OAAO,EACvB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,MAAM,CACzF,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,EAAE;oBAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACrE,OAAO,oBAAoB,CACzB,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,GAAG,EACH,QAAQ,CAAC,MAAM,CAChB,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpE,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG;gBACd,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,eAAe,EAAE,IAAI,CAAC,eAAe;aAC7B,CAAC;YACX,OAAO;gBACL,MAAM,EAAE,gBAAgB;gBACxB,OAAO;gBACP,YAAY,EAAE;oBACZ,IAAI,EAAE,0BAA0B;oBAChC,OAAO,EAAE,CAAC;oBACV,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC;oBACpC,QAAQ;oBACR,KAAK;oBACL,aAAa,EAAE,KAAK,GAAG,CAAC;oBACxB,cAAc,EAAE,EAAE,GAAG,KAAK,EAAE;oBAC5B,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE;oBACzB,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE;oBACf,OAAO,EAAE,OAAO;iBACjB;aACF,CAAC;QACJ,CAAC;QACD,OAAO,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAClG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;YACzC,OAAO,eAAe,CAAC,kBAAkB,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,QAAgB,EAChB,IAAoB,EACpB,KAAc,EACd,UAAkB,EAClB,KAA8B,EAC9B,GAA2B,EAC3B,IAAiB,EACjB,cAAwC;IAExC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,WAAW,GAA8B,EAAE,CAAC;IAClD,IAAI,CAAC;QACH,KAAK,IAAI,KAAK,GAAG,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,EAAE,KAAK,CAAC;gBAAE,SAAS;YACnF,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO,eAAe,CACpB,2BAA2B,EAC3B,8EAA8E,CAC/E,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpE,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,YAAY,CAC/B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,IAAI,EACT,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,GAAG,EACH,SAAS,IAAI,CAAC,EAAE,OAAO,EACvB,SAAS,IAAI,CAAC,EAAE,SAAS,EACzB,cAAc,CACf,CAAC;YACF,cAAc,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;YACjE,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;gBAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QACrF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,eAAe,CAAC,sBAAsB,EAAE,kCAAkC,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;IAChF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;YACzC,OAAO,eAAe,CAAC,kBAAkB,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,QAAyB,EACzB,QAAgB,EAChB,KAAc,EACd,aAAqB,EACrB,cAAuC,EACvC,QAAiC,EACjC,GAA2B,EAC3B,MAAiC;IAEjC,MAAM,cAAc,GAClB,MAAM,KAAK,SAAS;QAClB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC;YACE,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;IACR,OAAO;QACL,MAAM,EAAE,uBAAuB;QAC/B,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QACzF,YAAY,EAAE;YACZ,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC;YACpC,QAAQ;YACR,KAAK;YACL,aAAa;YACb,cAAc,EAAE,EAAE,GAAG,cAAc,EAAE;YACrC,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE;YACf,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D;KACF,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,IAAoB;IAEpB,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,aAAa,GAAG,IAAI,CAAC;YACrB,cAAc,IAAI,CAAC,CAAC;YACpB,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,eAAe,CACpB,2BAA2B,EAC3B,+DAA+D,EAC/D,SAAS,IAAI,CAAC,EAAE,EAAE,CACnB,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,aAAa,EAAE,CAAC;YAC5C,OAAO,eAAe,CACpB,0BAA0B,EAC1B,8EAA8E,EAC9E,SAAS,IAAI,CAAC,EAAE,EAAE,CACnB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAyB;IACjD,OAAO;QACL,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY;QAC1C,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,eAAe;QAChD,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;QAChC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,QAAyB,EACzB,YAAoE;IAEpE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO,CACL,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC,QAAQ,CAAC,YAAY;QAC5D,QAAQ,CAAC,eAAe,KAAK,YAAY,CAAC,QAAQ,CAAC,eAAe;QAClE,QAAQ,CAAC,UAAU,KAAK,YAAY,CAAC,QAAQ,CAAC,UAAU;QACxD,QAAQ,CAAC,aAAa,KAAK,YAAY,CAAC,QAAQ,CAAC,aAAa,CAC/D,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,IAA4B,EAC5B,OAAe,EACf,IAAa;IAEb,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KACxE,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,IAA4B,EAC5B,OAAe,EACf,IAAa;IAEb,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KACxE,CAAC;AACJ,CAAC"}
@@ -6,6 +6,10 @@ export interface CallerIdentity {
6
6
  readonly email?: string;
7
7
  /** Verified display name from the embedding application's authenticated exchange. */
8
8
  readonly name?: string;
9
+ /** Backend-verified BCP 47 locale preference, available as `${user.locale}`. */
10
+ readonly locale?: string;
11
+ /** Backend-verified IANA time-zone preference, available as `${user.timeZone}`. */
12
+ readonly timeZone?: string;
9
13
  readonly scopes?: readonly string[];
10
14
  readonly audience?: string;
11
15
  readonly identityKind?: 'platform' | 'customer';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/connector/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/connector/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/connector/types.ts"],"names":[],"mappings":"AA8CA,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACxC,MAAM,CAAU;IAChB,QAAQ,CAA4B;IACpC,QAAQ,CAAU;IAClB,SAAS,CAAW;IACpB,YAAY,CAAU;IACtB,eAAe,CAAU;IAElC,YACE,OAAe,EACf,UAOI,EAAE;QAEN,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/D,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACrE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACrE,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACxE,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACjF,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAC5F,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/connector/types.ts"],"names":[],"mappings":"AAkDA,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACxC,MAAM,CAAU;IAChB,QAAQ,CAA4B;IACpC,QAAQ,CAAU;IAClB,SAAS,CAAW;IACpB,YAAY,CAAU;IACtB,eAAe,CAAU;IAElC,YACE,OAAe,EACf,UAOI,EAAE;QAEN,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/D,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACrE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACrE,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACxE,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACjF,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS;YAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAC5F,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ interface ContextBoundsIssue {
2
+ readonly path: string;
3
+ readonly message: string;
4
+ }
5
+ type CanonicalContextResult = {
6
+ readonly ok: true;
7
+ readonly value: unknown;
8
+ } | {
9
+ readonly ok: false;
10
+ readonly issue: ContextBoundsIssue;
11
+ };
12
+ /** Canonicalize application context once before schema validation, prompting, or client exposure. */
13
+ export declare function canonicalizeContext(value: unknown, rootPath?: string): CanonicalContextResult;
14
+ export {};
15
+ //# sourceMappingURL=context-bounds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-bounds.d.ts","sourceRoot":"","sources":["../src/context-bounds.ts"],"names":[],"mappings":"AAOA,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,KAAK,sBAAsB,GACvB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAI/D,qGAAqG;AACrG,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,QAAQ,SAAoB,GAC3B,sBAAsB,CAoBxB"}
@@ -0,0 +1,123 @@
1
+ const MAX_CONTEXT_BYTES = 16 * 1024;
2
+ const MAX_CONTEXT_DEPTH = 8;
3
+ const MAX_CONTAINER_ENTRIES = 128;
4
+ const SENSITIVE_KEY = /(?:secret|token|api[-_]?key|password|credential|authorization|cookie)/i;
5
+ const CREDENTIAL_SHAPED_TEXT = /(?:-----BEGIN [A-Z ]*PRIVATE KEY-----|\bsk-[A-Za-z0-9_-]{12,}\b|\b(?:bearer|basic)\s+[A-Za-z0-9._~+/=-]{12,}\b|\b[A-Za-z0-9_-]{16,}\.[A-Za-z0-9_-]{16,}\.[A-Za-z0-9_-]{16,}\b)/i;
6
+ /** Canonicalize application context once before schema validation, prompting, or client exposure. */
7
+ export function canonicalizeContext(value, rootPath = 'context.ambient') {
8
+ const canonical = canonicalize(value, rootPath, 0, new Set());
9
+ if (!canonical.ok)
10
+ return canonical;
11
+ let encoded;
12
+ try {
13
+ encoded = JSON.stringify(canonical.value);
14
+ }
15
+ catch {
16
+ return {
17
+ ok: false,
18
+ issue: { path: rootPath, message: 'ambient context must be JSON serializable' },
19
+ };
20
+ }
21
+ if (new TextEncoder().encode(encoded).byteLength > MAX_CONTEXT_BYTES) {
22
+ return {
23
+ ok: false,
24
+ issue: { path: rootPath, message: 'ambient context must not exceed 16 KiB' },
25
+ };
26
+ }
27
+ return canonical;
28
+ }
29
+ function canonicalize(value, path, depth, ancestors) {
30
+ if (depth > MAX_CONTEXT_DEPTH) {
31
+ return fail(path, 'ambient context exceeds the maximum nesting depth');
32
+ }
33
+ if (value === null ||
34
+ typeof value === 'boolean' ||
35
+ (typeof value === 'number' && Number.isFinite(value))) {
36
+ return { ok: true, value };
37
+ }
38
+ if (typeof value === 'string') {
39
+ return CREDENTIAL_SHAPED_TEXT.test(value)
40
+ ? fail(path, 'ambient context contains credential-shaped text')
41
+ : { ok: true, value };
42
+ }
43
+ if (typeof value !== 'object') {
44
+ return fail(path, 'ambient context contains a non-JSON value');
45
+ }
46
+ if (ancestors.has(value))
47
+ return fail(path, 'ambient context contains a cycle');
48
+ try {
49
+ if (hasToJsonProperty(value)) {
50
+ return fail(path, 'ambient context must not define or inherit toJSON');
51
+ }
52
+ const prototype = Object.getPrototypeOf(value);
53
+ if (Array.isArray(value)) {
54
+ if (prototype !== Array.prototype) {
55
+ return fail(path, 'ambient context arrays must use the standard JSON prototype');
56
+ }
57
+ return canonicalizeArray(value, path, depth, ancestors);
58
+ }
59
+ if (prototype !== Object.prototype && prototype !== null) {
60
+ return fail(path, 'ambient context objects must be plain records');
61
+ }
62
+ return canonicalizeRecord(value, path, depth, ancestors);
63
+ }
64
+ catch {
65
+ return fail(path, 'ambient context must be safely inspectable JSON data');
66
+ }
67
+ }
68
+ function canonicalizeArray(value, path, depth, ancestors) {
69
+ if (value.length > MAX_CONTAINER_ENTRIES) {
70
+ return fail(path, 'ambient context has more than 128 entries in one container');
71
+ }
72
+ const result = [];
73
+ ancestors.add(value);
74
+ for (let index = 0; index < value.length; index += 1) {
75
+ const entry = Object.hasOwn(value, index) ? value[index] : null;
76
+ const canonical = canonicalize(entry, `${path}.${index}`, depth + 1, ancestors);
77
+ if (!canonical.ok) {
78
+ ancestors.delete(value);
79
+ return canonical;
80
+ }
81
+ result.push(canonical.value);
82
+ }
83
+ ancestors.delete(value);
84
+ return { ok: true, value: result };
85
+ }
86
+ function canonicalizeRecord(value, path, depth, ancestors) {
87
+ const entries = Object.entries(value);
88
+ if (entries.length > MAX_CONTAINER_ENTRIES) {
89
+ return fail(path, 'ambient context has more than 128 entries in one container');
90
+ }
91
+ const result = Object.create(null);
92
+ ancestors.add(value);
93
+ for (const [key, entry] of entries) {
94
+ const entryPath = `${path}.${key}`;
95
+ if (SENSITIVE_KEY.test(key)) {
96
+ ancestors.delete(value);
97
+ return fail(entryPath, 'ambient context contains a credential-shaped key');
98
+ }
99
+ const canonical = canonicalize(entry, entryPath, depth + 1, ancestors);
100
+ if (!canonical.ok) {
101
+ ancestors.delete(value);
102
+ return canonical;
103
+ }
104
+ result[key] = canonical.value;
105
+ }
106
+ ancestors.delete(value);
107
+ return { ok: true, value: result };
108
+ }
109
+ function hasToJsonProperty(value) {
110
+ let current = value;
111
+ const visited = new Set();
112
+ while (current !== null && !visited.has(current)) {
113
+ visited.add(current);
114
+ if (Object.getOwnPropertyDescriptor(current, 'toJSON') !== undefined)
115
+ return true;
116
+ current = Object.getPrototypeOf(current);
117
+ }
118
+ return false;
119
+ }
120
+ function fail(path, message) {
121
+ return { ok: false, issue: { path, message } };
122
+ }
123
+ //# sourceMappingURL=context-bounds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-bounds.js","sourceRoot":"","sources":["../src/context-bounds.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC;AACpC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,aAAa,GAAG,wEAAwE,CAAC;AAC/F,MAAM,sBAAsB,GAC1B,iLAAiL,CAAC;AAapL,qGAAqG;AACrG,MAAM,UAAU,mBAAmB,CACjC,KAAc,EACd,QAAQ,GAAG,iBAAiB;IAE5B,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;IACtE,IAAI,CAAC,SAAS,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAEpC,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,2CAA2C,EAAE;SAChF,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,GAAG,iBAAiB,EAAE,CAAC;QACrE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,wCAAwC,EAAE;SAC7E,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CACnB,KAAc,EACd,IAAY,EACZ,KAAa,EACb,SAAsB;IAEtB,IAAI,KAAK,GAAG,iBAAiB,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,IAAI,EAAE,mDAAmD,CAAC,CAAC;IACzE,CAAC;IACD,IACE,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,SAAS;QAC1B,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EACrD,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC;YACvC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,iDAAiD,CAAC;YAC/D,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,IAAI,EAAE,2CAA2C,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,EAAE,kCAAkC,CAAC,CAAC;IAEhF,IAAI,CAAC;QACH,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,IAAI,EAAE,mDAAmD,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC,IAAI,EAAE,6DAA6D,CAAC,CAAC;YACnF,CAAC;YACD,OAAO,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,IAAI,EAAE,+CAA+C,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,kBAAkB,CAAC,KAAgC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,IAAI,EAAE,sDAAsD,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAyB,EACzB,IAAY,EACZ,KAAa,EACb,SAAsB;IAEtB,IAAI,KAAK,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC,IAAI,EAAE,4DAA4D,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChE,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,KAAK,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;QAChF,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAClB,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IACD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACrC,CAAC;AAED,SAAS,kBAAkB,CACzB,KAA8B,EAC9B,IAAY,EACZ,KAAa,EACb,SAAsB;IAEtB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC,IAAI,EAAE,4DAA4D,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,MAAM,GAA4B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5D,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;QACnC,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC,SAAS,EAAE,kDAAkD,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAClB,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC;IAChC,CAAC;IACD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACrC,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,IAAI,OAAO,GAAkB,KAAK,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,OAAO,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,IAAI,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAClF,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,IAAI,CAAC,IAAY,EAAE,OAAe;IACzC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;AACjD,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { JsonSchema } from '@noodle-borg/compiler';
2
+ import type { ExecutionError } from './result.js';
3
+ type ElicitationContentResult = {
4
+ readonly ok: true;
5
+ readonly value: unknown;
6
+ } | {
7
+ readonly ok: false;
8
+ readonly error: ExecutionError;
9
+ };
10
+ /** Validate one accepted portable-form response as a closed set of declared fields. */
11
+ export declare function validateElicitationContent(value: unknown, schema: JsonSchema, pathPrefix: string): ElicitationContentResult;
12
+ export {};
13
+ //# sourceMappingURL=elicitation-response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elicitation-response.d.ts","sourceRoot":"","sources":["../src/elicitation-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,KAAK,wBAAwB,GACzB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAE3D,uFAAuF;AACvF,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,MAAM,GACjB,wBAAwB,CAmB1B"}
@@ -0,0 +1,26 @@
1
+ import { validateAgainstSchemaWithDefaults } from './execute.js';
2
+ /** Validate one accepted portable-form response as a closed set of declared fields. */
3
+ export function validateElicitationContent(value, schema, pathPrefix) {
4
+ const undeclared = firstUndeclaredKey(value, schema);
5
+ if (undeclared !== undefined) {
6
+ return {
7
+ ok: false,
8
+ error: {
9
+ code: 'arg_invalid',
10
+ path: `${pathPrefix}.${undeclared}`,
11
+ message: `elicitation field "${undeclared}" is not declared in the requested schema`,
12
+ },
13
+ };
14
+ }
15
+ return validateAgainstSchemaWithDefaults(value, schema, pathPrefix, 'arg_invalid', 'elicitation field');
16
+ }
17
+ function firstUndeclaredKey(value, schema) {
18
+ if (value === null || typeof value !== 'object' || Array.isArray(value))
19
+ return undefined;
20
+ const properties = schema.properties;
21
+ const declared = properties !== null && typeof properties === 'object' && !Array.isArray(properties)
22
+ ? properties
23
+ : undefined;
24
+ return Object.keys(value).find((key) => declared === undefined || !Object.hasOwn(declared, key));
25
+ }
26
+ //# sourceMappingURL=elicitation-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elicitation-response.js","sourceRoot":"","sources":["../src/elicitation-response.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iCAAiC,EAAE,MAAM,cAAc,CAAC;AAOjE,uFAAuF;AACvF,MAAM,UAAU,0BAA0B,CACxC,KAAc,EACd,MAAkB,EAClB,UAAkB;IAElB,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,GAAG,UAAU,IAAI,UAAU,EAAE;gBACnC,OAAO,EAAE,sBAAsB,UAAU,2CAA2C;aACrF;SACF,CAAC;IACJ,CAAC;IACD,OAAO,iCAAiC,CACtC,KAAK,EACL,MAAM,EACN,UAAU,EACV,aAAa,EACb,mBAAmB,CACpB,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc,EAAE,MAAkB;IAC5D,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1F,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACrC,MAAM,QAAQ,GACZ,UAAU,KAAK,IAAI,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QACjF,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AACnG,CAAC"}
@@ -1,8 +1,10 @@
1
- import { type RuntimeArtifact } from '@noodle-borg/compiler';
1
+ import { type ArtifactFulfilment, type ExprMap, type JsonSchema, type OperationSignature, type ResolvedOperationRef, type RuntimeArtifact } from '@noodle-borg/compiler';
2
2
  import type { CredentialBroker } from './broker/types.js';
3
- import { type CallerIdentity, type ConnectorRegistry, type ExecutionTraceSink } from './connector/types.js';
3
+ import { type CallerIdentity, type ConnectorCallHost, type ConnectorRegistry, type ExecutionTraceSink } from './connector/types.js';
4
+ import { type EvalScope } from './eval/evaluate.js';
5
+ import type { InvocationContext } from './invocation-context.js';
4
6
  import type { PolicyGate } from './policy/types.js';
5
- import type { ExecutionError, ExecutionResult } from './result.js';
7
+ import type { ConfirmationActionReview, ExecutionError, ExecutionResult, PreparedOperationAction } from './result.js';
6
8
  /**
7
9
  * The collaborators the runtime needs to fulfil a tool call. Note there is deliberately no inbound
8
10
  * token here: the execution plane never sees or forwards an MCP/OAuth bearer token — downstream
@@ -15,15 +17,17 @@ export interface ExecuteDeps {
15
17
  readonly policy?: PolicyGate;
16
18
  readonly env?: Record<string, string> | (() => Promise<Record<string, string>>);
17
19
  readonly caller?: CallerIdentity;
20
+ /** Immutable facts resolved once for this invocation and exposed only through `${context...}`. */
21
+ readonly context?: InvocationContext;
18
22
  readonly trace?: ExecutionTraceSink;
19
23
  }
20
24
  /**
21
25
  * Execute a tool call against a resolved runtime artifact.
22
26
  *
23
- * Phase 1 executes single-operation fulfilment and **non-suspending flows** (ordered `operation`
24
- * and `map` steps with `if` skipping). A flow containing an `elicit` step would suspend, which is a
25
- * later slice such a flow is declined up front (`unsupported_fulfilment`) rather than run partway
26
- * and abandoned. `input` is assumed already validated against the tool's input schema by the
27
+ * This non-interactive entry point executes single-operation fulfilment and non-suspending flows
28
+ * (ordered `operation` and `map` steps with `if` skipping). It declines a flow containing `elicit`
29
+ * before any step runs; adapters that support suspension use `executeToolInteractive` and
30
+ * `resumeTool`. `input` is assumed already validated against the tool's input schema by the
27
31
  * protocol adapter; the runtime independently validates evaluated connector arguments against the
28
32
  * operation signature as defense in depth.
29
33
  */
@@ -41,10 +45,68 @@ export declare function executeResource(artifact: RuntimeArtifact, resourceName:
41
45
  * returned value to MCP prompt `messages`.
42
46
  */
43
47
  export declare function executePrompt(artifact: RuntimeArtifact, promptName: string, args: unknown, deps: ExecuteDeps): Promise<ExecutionResult>;
48
+ /**
49
+ * Run a normalized fulfilment (single operation or non-suspending flow) against an `input` scope. Shared
50
+ * by {@link executeTool}, {@link executeResource}, and {@link executePrompt}: the execution semantics are
51
+ * identical across all three primitives; only where `input` comes from and how the output is mapped differ
52
+ * (the latter at the protocol layer). `label` names the invoker for the policy context.
53
+ */
54
+ /** @internal Shared with the ambient-context executor; not exported from the package barrel. */
55
+ export declare function runFulfilment(fulfilment: ArtifactFulfilment, input: unknown, label: string, deps: ExecuteDeps): Promise<ExecutionResult>;
56
+ /** @internal Shared with suspension-aware execution and surface adapters. */
57
+ export declare function splitResultMeta(output: unknown): {
58
+ readonly visible: unknown;
59
+ readonly meta?: Record<string, unknown>;
60
+ };
61
+ /** @internal Shared with the suspension-aware flow executor. */
62
+ export declare function attachResultMeta(output: Record<string, unknown>, metas: readonly Record<string, unknown>[]): Record<string, unknown>;
63
+ /** @internal Shared with the suspension-aware flow executor. */
64
+ export declare function scopeFor(input: unknown, steps: Record<string, unknown>, env: Record<string, string>, deps: ExecuteDeps): EvalScope;
65
+ /** @internal Shared with the suspension-aware flow executor. */
66
+ export declare function resolveEnv(deps: ExecuteDeps): Promise<Record<string, string>>;
67
+ /**
68
+ * Run one connector operation end to end: resolve the connector, verify the signature has not
69
+ * drifted, gate with policy, evaluate + validate arguments, mint a downstream credential, invoke,
70
+ * redact, and validate the output. Shared by single-operation fulfilment and flow operation steps.
71
+ */
72
+ /** @internal Shared with the suspension-aware flow executor. */
73
+ export declare function runOperation(ref: ResolvedOperationRef | {
74
+ resolved: false;
75
+ }, argsAst: ExprMap, scope: EvalScope, toolName: string, deps: ExecuteDeps, policy: PolicyGate, host: ConnectorCallHost, env: Record<string, string>, argsPath: string, outputPath: string, reviewedAction?: PreparedOperationAction): Promise<ExecutionResult>;
76
+ type PreparedOperationActionResult = {
77
+ readonly ok: true;
78
+ readonly action: ConfirmationActionReview;
79
+ readonly signature: OperationSignature;
80
+ } | {
81
+ readonly ok: false;
82
+ readonly error: ExecutionError;
83
+ };
84
+ /** Resolve and validate an operation without policy, credentials, connector I/O, or side effects. */
85
+ export declare function prepareOperationAction(ref: ResolvedOperationRef | {
86
+ resolved: false;
87
+ }, argsAst: ExprMap, scope: EvalScope, deps: ExecuteDeps, argsPath: string, additionalOperationCount?: number): PreparedOperationActionResult;
88
+ /** @internal Shared with the suspension-aware flow executor. */
89
+ export declare function createHost(toolName: string, deps: ExecuteDeps, policy: PolicyGate, env: Record<string, string>, callStack: string[]): ConnectorCallHost;
44
90
  /** Internal control-flow error used to carry normalized runtime failures into host-call callbacks. */
45
91
  export declare class HostCallError extends Error {
46
92
  readonly code: ExecutionError['code'];
47
93
  readonly path: string | undefined;
48
94
  constructor(code: ExecutionError['code'], message: string, path?: string);
49
95
  }
96
+ /** Evaluate every value in an expression map; omit any key that resolves to `undefined`. */
97
+ /** @internal Shared with the suspension-aware flow executor. */
98
+ export declare function evalExprMap(map: ExprMap, scope: EvalScope, prefix: string): Record<string, unknown>;
99
+ /** Validate operation I/O with the same complete JSON Schema contract advertised to clients. */
100
+ /** @internal Shared with the ambient-context executor; not exported from the package barrel. */
101
+ export declare function validateAgainstSchema(value: unknown, schema: JsonSchema, pathPrefix: string, code: 'arg_invalid' | 'output_invalid', noun: string): ExecutionError | null;
102
+ /** Validate accepted interactive input and apply schema defaults on a defensive copy. */
103
+ /** @internal Shared by both confirmation and non-confirmation continuation kernels. */
104
+ export declare function validateAgainstSchemaWithDefaults(value: unknown, schema: JsonSchema, pathPrefix: string, code: 'arg_invalid' | 'output_invalid', noun: string): {
105
+ readonly ok: true;
106
+ readonly value: unknown;
107
+ } | {
108
+ readonly ok: false;
109
+ readonly error: ExecutionError;
110
+ };
111
+ export {};
50
112
  //# sourceMappingURL=execute.d.ts.map