@noodleseed/one 0.68.0 → 0.69.1

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 (278) hide show
  1. package/dist/agents.d.ts +8 -3
  2. package/dist/agents.d.ts.map +1 -1
  3. package/dist/agents.js +20 -14
  4. package/dist/agents.js.map +1 -1
  5. package/dist/cli.js +2 -2
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/analytics-ops.d.ts +3 -1
  8. package/dist/commands/analytics-ops.d.ts.map +1 -1
  9. package/dist/commands/analytics-ops.js +31 -5
  10. package/dist/commands/analytics-ops.js.map +1 -1
  11. package/dist/commands/catalog-data-resources.d.ts.map +1 -1
  12. package/dist/commands/catalog-data-resources.js +10 -0
  13. package/dist/commands/catalog-data-resources.js.map +1 -1
  14. package/dist/commands/envs-ops.d.ts +1 -0
  15. package/dist/commands/envs-ops.d.ts.map +1 -1
  16. package/dist/commands/envs-ops.js +49 -1
  17. package/dist/commands/envs-ops.js.map +1 -1
  18. package/dist/commands/project-setup.d.ts +3 -2
  19. package/dist/commands/project-setup.d.ts.map +1 -1
  20. package/dist/commands/project-setup.js +5 -5
  21. package/dist/commands/project-setup.js.map +1 -1
  22. package/dist/commands/resource-shared.d.ts +11 -0
  23. package/dist/commands/resource-shared.d.ts.map +1 -1
  24. package/dist/commands/resource-shared.js.map +1 -1
  25. package/dist/deploy.js +1 -1
  26. package/dist/deploy.js.map +1 -1
  27. package/dist/index.d.ts +1 -1
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +1 -1
  30. package/dist/index.js.map +1 -1
  31. package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.d.ts.map +1 -1
  32. package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js +4 -0
  33. package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js.map +1 -1
  34. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.d.ts.map +1 -1
  35. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +8 -1
  36. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
  37. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  38. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +10 -0
  39. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  40. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.d.ts.map +1 -1
  41. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +7 -1
  42. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
  43. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +1 -1
  44. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js.map +1 -1
  45. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  46. package/node_modules/@noodle-borg/authoring/dist/connection-types.d.ts +52 -0
  47. package/node_modules/@noodle-borg/authoring/dist/connection-types.d.ts.map +1 -0
  48. package/node_modules/@noodle-borg/authoring/dist/connection-types.js +35 -0
  49. package/node_modules/@noodle-borg/authoring/dist/connection-types.js.map +1 -0
  50. package/node_modules/@noodle-borg/authoring/dist/connections.d.ts +26 -0
  51. package/node_modules/@noodle-borg/authoring/dist/connections.d.ts.map +1 -0
  52. package/node_modules/@noodle-borg/authoring/dist/connections.js +63 -0
  53. package/node_modules/@noodle-borg/authoring/dist/connections.js.map +1 -0
  54. package/node_modules/@noodle-borg/authoring/dist/connectors.d.ts +18 -7
  55. package/node_modules/@noodle-borg/authoring/dist/connectors.d.ts.map +1 -1
  56. package/node_modules/@noodle-borg/authoring/dist/connectors.js +26 -4
  57. package/node_modules/@noodle-borg/authoring/dist/connectors.js.map +1 -1
  58. package/node_modules/@noodle-borg/authoring/dist/gmail.d.ts +7 -0
  59. package/node_modules/@noodle-borg/authoring/dist/gmail.d.ts.map +1 -0
  60. package/node_modules/@noodle-borg/authoring/dist/gmail.js +257 -0
  61. package/node_modules/@noodle-borg/authoring/dist/gmail.js.map +1 -0
  62. package/node_modules/@noodle-borg/authoring/dist/index.d.ts +2 -0
  63. package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
  64. package/node_modules/@noodle-borg/authoring/dist/index.js +2 -0
  65. package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
  66. package/node_modules/@noodle-borg/authoring/dist/platform.d.ts +1 -1
  67. package/node_modules/@noodle-borg/authoring/dist/react/components.d.ts +2 -2
  68. package/node_modules/@noodle-borg/authoring/dist/react/native-components.d.ts +2 -2
  69. package/node_modules/@noodle-borg/authoring/dist/recording.d.ts +2 -0
  70. package/node_modules/@noodle-borg/authoring/dist/recording.d.ts.map +1 -1
  71. package/node_modules/@noodle-borg/authoring/dist/recording.js +6 -0
  72. package/node_modules/@noodle-borg/authoring/dist/recording.js.map +1 -1
  73. package/node_modules/@noodle-borg/authoring/dist/server.d.ts.map +1 -1
  74. package/node_modules/@noodle-borg/authoring/dist/server.js +4 -1
  75. package/node_modules/@noodle-borg/authoring/dist/server.js.map +1 -1
  76. package/node_modules/@noodle-borg/authoring/package.json +1 -1
  77. package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +43 -1
  78. package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts.map +1 -1
  79. package/node_modules/@noodle-borg/compiler/dist/artifact/types.js +4 -1
  80. package/node_modules/@noodle-borg/compiler/dist/artifact/types.js.map +1 -1
  81. package/node_modules/@noodle-borg/compiler/dist/catalog/types.d.ts +15 -0
  82. package/node_modules/@noodle-borg/compiler/dist/catalog/types.d.ts.map +1 -1
  83. package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
  84. package/node_modules/@noodle-borg/compiler/dist/compile.js +3 -1
  85. package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
  86. package/node_modules/@noodle-borg/compiler/dist/confirmation-flow.d.ts +3 -3
  87. package/node_modules/@noodle-borg/compiler/dist/confirmation-flow.d.ts.map +1 -1
  88. package/node_modules/@noodle-borg/compiler/dist/confirmation-flow.js +16 -17
  89. package/node_modules/@noodle-borg/compiler/dist/confirmation-flow.js.map +1 -1
  90. package/node_modules/@noodle-borg/compiler/dist/context-compile.d.ts +2 -4
  91. package/node_modules/@noodle-borg/compiler/dist/context-compile.d.ts.map +1 -1
  92. package/node_modules/@noodle-borg/compiler/dist/context-compile.js.map +1 -1
  93. package/node_modules/@noodle-borg/compiler/dist/errors.d.ts +1 -1
  94. package/node_modules/@noodle-borg/compiler/dist/errors.d.ts.map +1 -1
  95. package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.d.ts +17 -5
  96. package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.d.ts.map +1 -1
  97. package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.js +89 -0
  98. package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.js.map +1 -1
  99. package/node_modules/@noodle-borg/compiler/dist/index.d.ts +3 -2
  100. package/node_modules/@noodle-borg/compiler/dist/index.d.ts.map +1 -1
  101. package/node_modules/@noodle-borg/compiler/dist/index.js +1 -0
  102. package/node_modules/@noodle-borg/compiler/dist/index.js.map +1 -1
  103. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +66 -16
  104. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
  105. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +47 -4
  106. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
  107. package/node_modules/@noodle-borg/connector-defs/dist/compile.d.ts.map +1 -1
  108. package/node_modules/@noodle-borg/connector-defs/dist/compile.js +3 -0
  109. package/node_modules/@noodle-borg/connector-defs/dist/compile.js.map +1 -1
  110. package/node_modules/@noodle-borg/connector-defs/dist/credential-profiles.d.ts +6 -0
  111. package/node_modules/@noodle-borg/connector-defs/dist/credential-profiles.d.ts.map +1 -0
  112. package/node_modules/@noodle-borg/connector-defs/dist/credential-profiles.js +25 -0
  113. package/node_modules/@noodle-borg/connector-defs/dist/credential-profiles.js.map +1 -0
  114. package/node_modules/@noodle-borg/connector-defs/dist/index.d.ts +1 -1
  115. package/node_modules/@noodle-borg/connector-defs/dist/index.d.ts.map +1 -1
  116. package/node_modules/@noodle-borg/connector-defs/dist/index.js.map +1 -1
  117. package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts +89 -0
  118. package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts.map +1 -1
  119. package/node_modules/@noodle-borg/connector-defs/dist/schema.js +42 -1
  120. package/node_modules/@noodle-borg/connector-defs/dist/schema.js.map +1 -1
  121. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts.map +1 -1
  122. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js +5 -4
  123. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js.map +1 -1
  124. package/node_modules/@noodle-borg/external-credential-provider/README.md +18 -0
  125. package/node_modules/@noodle-borg/external-credential-provider/dist/assertion.d.ts +36 -0
  126. package/node_modules/@noodle-borg/external-credential-provider/dist/assertion.d.ts.map +1 -0
  127. package/node_modules/@noodle-borg/external-credential-provider/dist/assertion.js +72 -0
  128. package/node_modules/@noodle-borg/external-credential-provider/dist/assertion.js.map +1 -0
  129. package/node_modules/@noodle-borg/external-credential-provider/dist/contract.d.ts +82 -0
  130. package/node_modules/@noodle-borg/external-credential-provider/dist/contract.d.ts.map +1 -0
  131. package/node_modules/@noodle-borg/external-credential-provider/dist/contract.js +126 -0
  132. package/node_modules/@noodle-borg/external-credential-provider/dist/contract.js.map +1 -0
  133. package/node_modules/@noodle-borg/external-credential-provider/dist/index.d.ts +4 -0
  134. package/node_modules/@noodle-borg/external-credential-provider/dist/index.d.ts.map +1 -0
  135. package/node_modules/@noodle-borg/external-credential-provider/dist/index.js +4 -0
  136. package/node_modules/@noodle-borg/external-credential-provider/dist/index.js.map +1 -0
  137. package/node_modules/@noodle-borg/external-credential-provider/dist/provider.d.ts +15 -0
  138. package/node_modules/@noodle-borg/external-credential-provider/dist/provider.d.ts.map +1 -0
  139. package/node_modules/@noodle-borg/external-credential-provider/dist/provider.js +24 -0
  140. package/node_modules/@noodle-borg/external-credential-provider/dist/provider.js.map +1 -0
  141. package/node_modules/@noodle-borg/external-credential-provider/package.json +33 -0
  142. package/node_modules/@noodle-borg/module/dist/contract.d.ts +14 -0
  143. package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
  144. package/node_modules/@noodle-borg/module/dist/contract.js.map +1 -1
  145. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.d.ts.map +1 -1
  146. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.js +1 -8
  147. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.js.map +1 -1
  148. package/node_modules/@noodle-borg/runtime/dist/broker/map.d.ts +8 -4
  149. package/node_modules/@noodle-borg/runtime/dist/broker/map.d.ts.map +1 -1
  150. package/node_modules/@noodle-borg/runtime/dist/broker/map.js +35 -5
  151. package/node_modules/@noodle-borg/runtime/dist/broker/map.js.map +1 -1
  152. package/node_modules/@noodle-borg/runtime/dist/broker/types.d.ts +34 -1
  153. package/node_modules/@noodle-borg/runtime/dist/broker/types.d.ts.map +1 -1
  154. package/node_modules/@noodle-borg/runtime/dist/broker/types.js +38 -0
  155. package/node_modules/@noodle-borg/runtime/dist/broker/types.js.map +1 -1
  156. package/node_modules/@noodle-borg/runtime/dist/confirmation-analysis.d.ts +28 -0
  157. package/node_modules/@noodle-borg/runtime/dist/confirmation-analysis.d.ts.map +1 -0
  158. package/node_modules/@noodle-borg/runtime/dist/confirmation-analysis.js +143 -0
  159. package/node_modules/@noodle-borg/runtime/dist/confirmation-analysis.js.map +1 -0
  160. package/node_modules/@noodle-borg/runtime/dist/confirmation-continuation.d.ts +6 -0
  161. package/node_modules/@noodle-borg/runtime/dist/confirmation-continuation.d.ts.map +1 -0
  162. package/node_modules/@noodle-borg/runtime/dist/confirmation-continuation.js +56 -0
  163. package/node_modules/@noodle-borg/runtime/dist/confirmation-continuation.js.map +1 -0
  164. package/node_modules/@noodle-borg/runtime/dist/confirmation.d.ts.map +1 -1
  165. package/node_modules/@noodle-borg/runtime/dist/confirmation.js +71 -74
  166. package/node_modules/@noodle-borg/runtime/dist/confirmation.js.map +1 -1
  167. package/node_modules/@noodle-borg/runtime/dist/connector/types.d.ts +3 -1
  168. package/node_modules/@noodle-borg/runtime/dist/connector/types.d.ts.map +1 -1
  169. package/node_modules/@noodle-borg/runtime/dist/connector/types.js.map +1 -1
  170. package/node_modules/@noodle-borg/runtime/dist/connector-snapshot.d.ts +8 -0
  171. package/node_modules/@noodle-borg/runtime/dist/connector-snapshot.d.ts.map +1 -0
  172. package/node_modules/@noodle-borg/runtime/dist/connector-snapshot.js +89 -0
  173. package/node_modules/@noodle-borg/runtime/dist/connector-snapshot.js.map +1 -0
  174. package/node_modules/@noodle-borg/runtime/dist/execute.d.ts +2 -0
  175. package/node_modules/@noodle-borg/runtime/dist/execute.d.ts.map +1 -1
  176. package/node_modules/@noodle-borg/runtime/dist/execute.js +24 -0
  177. package/node_modules/@noodle-borg/runtime/dist/execute.js.map +1 -1
  178. package/node_modules/@noodle-borg/runtime/dist/index.d.ts +1 -1
  179. package/node_modules/@noodle-borg/runtime/dist/index.d.ts.map +1 -1
  180. package/node_modules/@noodle-borg/runtime/dist/index.js +1 -1
  181. package/node_modules/@noodle-borg/runtime/dist/index.js.map +1 -1
  182. package/node_modules/@noodle-borg/runtime/dist/result.d.ts +8 -0
  183. package/node_modules/@noodle-borg/runtime/dist/result.d.ts.map +1 -1
  184. package/node_modules/@noodle-borg/runtime/dist/result.js.map +1 -1
  185. package/node_modules/@noodle-borg/service/dist/credential-binding-index.d.ts +15 -0
  186. package/node_modules/@noodle-borg/service/dist/credential-binding-index.d.ts.map +1 -0
  187. package/node_modules/@noodle-borg/service/dist/credential-binding-index.js +66 -0
  188. package/node_modules/@noodle-borg/service/dist/credential-binding-index.js.map +1 -0
  189. package/node_modules/@noodle-borg/service/dist/credential-broker-options.d.ts +13 -0
  190. package/node_modules/@noodle-borg/service/dist/credential-broker-options.d.ts.map +1 -0
  191. package/node_modules/@noodle-borg/service/dist/credential-broker-options.js +26 -0
  192. package/node_modules/@noodle-borg/service/dist/credential-broker-options.js.map +1 -0
  193. package/node_modules/@noodle-borg/service/dist/credential-broker.d.ts +5 -0
  194. package/node_modules/@noodle-borg/service/dist/credential-broker.d.ts.map +1 -1
  195. package/node_modules/@noodle-borg/service/dist/credential-broker.js +43 -45
  196. package/node_modules/@noodle-borg/service/dist/credential-broker.js.map +1 -1
  197. package/node_modules/@noodle-borg/service/dist/credential-probes.d.ts +13 -0
  198. package/node_modules/@noodle-borg/service/dist/credential-probes.d.ts.map +1 -0
  199. package/node_modules/@noodle-borg/service/dist/credential-probes.js +88 -0
  200. package/node_modules/@noodle-borg/service/dist/credential-probes.js.map +1 -0
  201. package/node_modules/@noodle-borg/service/dist/external-credential-binding-broker.d.ts +12 -0
  202. package/node_modules/@noodle-borg/service/dist/external-credential-binding-broker.d.ts.map +1 -0
  203. package/node_modules/@noodle-borg/service/dist/external-credential-binding-broker.js +111 -0
  204. package/node_modules/@noodle-borg/service/dist/external-credential-binding-broker.js.map +1 -0
  205. package/node_modules/@noodle-borg/service/dist/external-credential-exchange.d.ts +82 -0
  206. package/node_modules/@noodle-borg/service/dist/external-credential-exchange.d.ts.map +1 -0
  207. package/node_modules/@noodle-borg/service/dist/external-credential-exchange.js +184 -0
  208. package/node_modules/@noodle-borg/service/dist/external-credential-exchange.js.map +1 -0
  209. package/node_modules/@noodle-borg/service/dist/index.d.ts +1 -0
  210. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  211. package/node_modules/@noodle-borg/service/dist/index.js +1 -0
  212. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  213. package/node_modules/@noodle-borg/service/dist/registry-state.d.ts +3 -1
  214. package/node_modules/@noodle-borg/service/dist/registry-state.d.ts.map +1 -1
  215. package/node_modules/@noodle-borg/service/dist/registry-state.js +27 -2
  216. package/node_modules/@noodle-borg/service/dist/registry-state.js.map +1 -1
  217. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts +7 -0
  218. package/node_modules/@noodle-borg/service/dist/registry-types.d.ts.map +1 -1
  219. package/node_modules/@noodle-borg/service/dist/registry.d.ts +2 -1
  220. package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
  221. package/node_modules/@noodle-borg/service/dist/registry.js +23 -27
  222. package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
  223. package/node_modules/@noodle-borg/service/dist/routes/contracts.d.ts +16 -0
  224. package/node_modules/@noodle-borg/service/dist/routes/contracts.d.ts.map +1 -1
  225. package/node_modules/@noodle-borg/service/dist/routes/contracts.js +16 -0
  226. package/node_modules/@noodle-borg/service/dist/routes/contracts.js.map +1 -1
  227. package/node_modules/@noodle-borg/service/dist/routes/environment-mutation-dispatch.d.ts +19 -0
  228. package/node_modules/@noodle-borg/service/dist/routes/environment-mutation-dispatch.d.ts.map +1 -0
  229. package/node_modules/@noodle-borg/service/dist/routes/environment-mutation-dispatch.js +16 -0
  230. package/node_modules/@noodle-borg/service/dist/routes/environment-mutation-dispatch.js.map +1 -0
  231. package/node_modules/@noodle-borg/service/dist/routes/environment-production.d.ts +8 -0
  232. package/node_modules/@noodle-borg/service/dist/routes/environment-production.d.ts.map +1 -0
  233. package/node_modules/@noodle-borg/service/dist/routes/environment-production.js +46 -0
  234. package/node_modules/@noodle-borg/service/dist/routes/environment-production.js.map +1 -0
  235. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts +1 -0
  236. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts.map +1 -1
  237. package/node_modules/@noodle-borg/service/dist/routes/paths.js +3 -0
  238. package/node_modules/@noodle-borg/service/dist/routes/paths.js.map +1 -1
  239. package/node_modules/@noodle-borg/service/dist/serve-options.d.ts +8 -0
  240. package/node_modules/@noodle-borg/service/dist/serve-options.d.ts.map +1 -1
  241. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  242. package/node_modules/@noodle-borg/service/dist/serve.js +3 -0
  243. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  244. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  245. package/node_modules/@noodle-borg/service/dist/service.js +13 -0
  246. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  247. package/node_modules/@noodle-borg/service/dist/store/environment-production.d.ts +9 -0
  248. package/node_modules/@noodle-borg/service/dist/store/environment-production.d.ts.map +1 -0
  249. package/node_modules/@noodle-borg/service/dist/store/environment-production.js +2 -0
  250. package/node_modules/@noodle-borg/service/dist/store/environment-production.js.map +1 -0
  251. package/node_modules/@noodle-borg/service/dist/store/in-memory.d.ts +2 -1
  252. package/node_modules/@noodle-borg/service/dist/store/in-memory.d.ts.map +1 -1
  253. package/node_modules/@noodle-borg/service/dist/store/in-memory.js +31 -2
  254. package/node_modules/@noodle-borg/service/dist/store/in-memory.js.map +1 -1
  255. package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts +2 -1
  256. package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts.map +1 -1
  257. package/node_modules/@noodle-borg/service/dist/store/json-file.js +64 -2
  258. package/node_modules/@noodle-borg/service/dist/store/json-file.js.map +1 -1
  259. package/node_modules/@noodle-borg/service/dist/store/postgres-envs.d.ts +2 -1
  260. package/node_modules/@noodle-borg/service/dist/store/postgres-envs.d.ts.map +1 -1
  261. package/node_modules/@noodle-borg/service/dist/store/postgres-envs.js +53 -7
  262. package/node_modules/@noodle-borg/service/dist/store/postgres-envs.js.map +1 -1
  263. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
  264. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +48 -0
  265. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
  266. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts +2 -1
  267. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
  268. package/node_modules/@noodle-borg/service/dist/store/postgres.js +8 -2
  269. package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
  270. package/node_modules/@noodle-borg/service/dist/store/records.d.ts +5 -2
  271. package/node_modules/@noodle-borg/service/dist/store/records.d.ts.map +1 -1
  272. package/node_modules/@noodle-borg/service/dist/store/records.js +18 -4
  273. package/node_modules/@noodle-borg/service/dist/store/records.js.map +1 -1
  274. package/node_modules/@noodle-borg/service/dist/store.d.ts +8 -2
  275. package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
  276. package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
  277. package/node_modules/@noodle-borg/service/package.json +1 -0
  278. package/package.json +2 -1
@@ -1,10 +1,25 @@
1
- const SEP = '\u0000';
1
+ import { CredentialUnavailableError, credentialBindingDescriptorFromRequest, } from './types.js';
2
2
  /**
3
3
  * Build the lookup key for a connector operation. With `operation`, it keys an exact
4
4
  * `(connectorId, operation)` entry; without, it keys the connector-level default.
5
5
  */
6
6
  function entryKey(connectorId, operation) {
7
- return operation === undefined ? connectorId : `${connectorId}${SEP}${operation}`;
7
+ return JSON.stringify(['legacy', connectorId, operation ?? null]);
8
+ }
9
+ function bindingEntryKey(input) {
10
+ return JSON.stringify([
11
+ 'binding',
12
+ input.connectorId,
13
+ input.connectorVersion,
14
+ input.operation,
15
+ input.bindingId,
16
+ input.connectionId,
17
+ input.connectionConfigRevision,
18
+ input.profile,
19
+ input.presentation.kind === 'bearer' ? ['bearer'] : ['apiKey', input.presentation.header],
20
+ [...input.requiredScopes].sort(),
21
+ input.requiredAudience ?? null,
22
+ ]);
8
23
  }
9
24
  /**
10
25
  * A service-credential broker backed by a resolved map. It resolves a {@link DownstreamCredential} by
@@ -14,10 +29,11 @@ function entryKey(connectorId, operation) {
14
29
  *
15
30
  * It holds only already-resolved `{token}` values — it has no knowledge of auth schemes or secret names.
16
31
  * Managed deployments use a tenant-aware broker instead; this map broker remains useful for tests/static
17
- * embeddings. It never rejects: an unbound operation simply gets the empty-token fallback.
32
+ * embeddings. Legacy unbound operations get the empty-token fallback. Binding-scoped requests require
33
+ * the complete compiled descriptor and fail closed; they never fall back to legacy connector keys.
18
34
  *
19
- * The {@link CredentialBroker} port is unchanged, so managed config and tenant scoping layer on top by
20
- * changing the broker implementation not the port the runtime depends on.
35
+ * The broker method boundary remains `getCredential(request)`, so managed config and tenant scoping layer
36
+ * on top through the broker implementation rather than a separate runtime credential path.
21
37
  */
22
38
  export class MapServiceBroker {
23
39
  #byKey;
@@ -27,11 +43,25 @@ export class MapServiceBroker {
27
43
  this.#fallback = fallback;
28
44
  }
29
45
  getCredential(request) {
46
+ let descriptor;
47
+ try {
48
+ descriptor = credentialBindingDescriptorFromRequest(request);
49
+ }
50
+ catch (error) {
51
+ return Promise.reject(error);
52
+ }
53
+ if (descriptor !== undefined) {
54
+ const exactBinding = this.#byKey.get(bindingEntryKey(descriptor));
55
+ return exactBinding === undefined
56
+ ? Promise.reject(new CredentialUnavailableError('credential_not_configured'))
57
+ : Promise.resolve(exactBinding);
58
+ }
30
59
  const exact = this.#byKey.get(entryKey(request.connectorId, request.operation));
31
60
  const connectorDefault = this.#byKey.get(entryKey(request.connectorId));
32
61
  return Promise.resolve(exact ?? connectorDefault ?? this.#fallback);
33
62
  }
34
63
  /** Build the map key for `(connectorId, operation?)`; exported so callers can populate the entries. */
35
64
  static key = entryKey;
65
+ static bindingKey = bindingEntryKey;
36
66
  }
37
67
  //# sourceMappingURL=map.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/broker/map.ts"],"names":[],"mappings":"AAEA,MAAM,GAAG,GAAG,QAAQ,CAAC;AAErB;;;GAGG;AACH,SAAS,QAAQ,CAAC,WAAmB,EAAE,SAAkB;IACvD,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,GAAG,GAAG,SAAS,EAAE,CAAC;AACpF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,gBAAgB;IAClB,MAAM,CAA4C;IAClD,SAAS,CAAuB;IAEzC,YACE,OAAkD,EAClD,WAAiC,EAAE,KAAK,EAAE,EAAE,EAAE;QAE9C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,aAAa,CAAC,OAA0B;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAChF,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACxE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;IAED,uGAAuG;IACvG,MAAM,CAAC,GAAG,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../src/broker/map.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,0BAA0B,EAC1B,sCAAsC,GAEvC,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,SAAS,QAAQ,CAAC,WAAmB,EAAE,SAAkB;IACvD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC;AACpE,CAAC;AAID,SAAS,eAAe,CAAC,KAAsB;IAC7C,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,SAAS;QACT,KAAK,CAAC,WAAW;QACjB,KAAK,CAAC,gBAAgB;QACtB,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,wBAAwB;QAC9B,KAAK,CAAC,OAAO;QACb,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;QACzF,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE;QAChC,KAAK,CAAC,gBAAgB,IAAI,IAAI;KAC/B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,gBAAgB;IAClB,MAAM,CAA4C;IAClD,SAAS,CAAuB;IAEzC,YACE,OAAkD,EAClD,WAAiC,EAAE,KAAK,EAAE,EAAE,EAAE;QAE9C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,aAAa,CAAC,OAA0B;QACtC,IAAI,UAAmD,CAAC;QACxD,IAAI,CAAC;YACH,UAAU,GAAG,sCAAsC,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;YAClE,OAAO,YAAY,KAAK,SAAS;gBAC/B,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,0BAA0B,CAAC,2BAA2B,CAAC,CAAC;gBAC7E,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAChF,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACxE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;IAED,uGAAuG;IACvG,MAAM,CAAC,GAAG,GAAG,QAAQ,CAAC;IACtB,MAAM,CAAC,UAAU,GAAG,eAAe,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { CredentialProfile } from '@noodle-borg/compiler';
1
2
  import type { CallerIdentity } from '../connector/types.js';
2
3
  /** Stable, non-secret reasons a credential lookup can fail. */
3
4
  export type CredentialUnavailableReason = 'caller_identity_not_customer' | 'caller_audience_missing' | 'caller_subject_missing' | 'credential_not_configured' | 'credential_exchange_failed';
@@ -41,13 +42,45 @@ export interface CredentialRequest {
41
42
  readonly connectorId: string;
42
43
  readonly connectorVersion: string;
43
44
  readonly operation: string;
45
+ readonly bindingId?: string;
46
+ readonly connectionId?: string;
47
+ readonly connectionConfigRevision?: string;
48
+ readonly profile?: string;
49
+ readonly presentation?: CredentialProfile;
50
+ readonly requiredScopes?: readonly string[];
51
+ readonly requiredAudience?: string;
52
+ /** Optional hosted execution identity; local and legacy invocation paths omit it. */
53
+ readonly tenantId?: string;
54
+ readonly deploymentId?: string;
44
55
  /** Verified end-user identity when the deployment authenticates a caller. */
45
56
  readonly caller?: CallerIdentity;
46
57
  }
58
+ /** Complete immutable authorization descriptor for a compiled connector binding operation. */
59
+ export interface CredentialBindingDescriptor {
60
+ readonly connectorId: string;
61
+ readonly connectorVersion: string;
62
+ readonly operation: string;
63
+ readonly bindingId: string;
64
+ readonly connectionId: string;
65
+ readonly connectionConfigRevision: string;
66
+ readonly profile: string;
67
+ readonly presentation: CredentialProfile;
68
+ readonly requiredScopes: readonly string[];
69
+ readonly requiredAudience?: string;
70
+ }
71
+ /**
72
+ * Return the complete immutable binding descriptor carried by a credential request.
73
+ * Requests with no binding metadata are legacy requests. If any binding metadata is present, every
74
+ * required field must be present so malformed binding calls can never fall through to legacy secrets.
75
+ */
76
+ export declare function credentialBindingDescriptorFromRequest(request: CredentialRequest): CredentialBindingDescriptor | undefined;
47
77
  export interface DelegatedCredentialProbe {
48
78
  readonly connectorId: string;
49
79
  readonly operation?: string;
50
- readonly authKind: 'delegatedOAuth' | 'delegatedSessionCookie' | 'delegatedTokenExchange';
80
+ readonly bindingId?: string;
81
+ readonly connectionId?: string;
82
+ readonly profile?: string;
83
+ readonly authKind: 'delegatedOAuth' | 'delegatedSessionCookie' | 'delegatedTokenExchange' | 'externalExchange';
51
84
  readonly ok: boolean;
52
85
  readonly reason?: CredentialUnavailableReason;
53
86
  readonly fix?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/broker/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,+DAA+D;AAC/D,MAAM,MAAM,2BAA2B,GACnC,8BAA8B,GAC9B,yBAAyB,GACzB,wBAAwB,GACxB,2BAA2B,GAC3B,4BAA4B,CAAC;AAEjC,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC;IAC7C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;gBAGhC,MAAM,EAAE,2BAA2B,EACnC,OAAO,GAAE,iCAAsC;CAQlD;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,0BAA0B,GAAG,0BAA0B,CAAC;AAE3F,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,GAAG,wBAAwB,GAAG,wBAAwB,CAAC;IAC1F,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACzE;;;OAGG;IACH,yBAAyB,CAAC,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,wBAAwB,EAAE,CAAC,CAAC;CAClG"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/broker/types.ts"],"names":[],"mappings":"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"}
@@ -16,4 +16,42 @@ export class CredentialUnavailableError extends Error {
16
16
  this.next = [...options.next];
17
17
  }
18
18
  }
19
+ /**
20
+ * Return the complete immutable binding descriptor carried by a credential request.
21
+ * Requests with no binding metadata are legacy requests. If any binding metadata is present, every
22
+ * required field must be present so malformed binding calls can never fall through to legacy secrets.
23
+ */
24
+ export function credentialBindingDescriptorFromRequest(request) {
25
+ const hasBindingMetadata = request.bindingId !== undefined ||
26
+ request.connectionId !== undefined ||
27
+ request.connectionConfigRevision !== undefined ||
28
+ request.profile !== undefined ||
29
+ request.presentation !== undefined ||
30
+ request.requiredScopes !== undefined ||
31
+ request.requiredAudience !== undefined;
32
+ if (!hasBindingMetadata)
33
+ return undefined;
34
+ if (request.bindingId === undefined ||
35
+ request.connectionId === undefined ||
36
+ request.connectionConfigRevision === undefined ||
37
+ request.profile === undefined ||
38
+ request.presentation === undefined ||
39
+ request.requiredScopes === undefined) {
40
+ throw new CredentialUnavailableError('credential_not_configured');
41
+ }
42
+ return {
43
+ connectorId: request.connectorId,
44
+ connectorVersion: request.connectorVersion,
45
+ operation: request.operation,
46
+ bindingId: request.bindingId,
47
+ connectionId: request.connectionId,
48
+ connectionConfigRevision: request.connectionConfigRevision,
49
+ profile: request.profile,
50
+ presentation: request.presentation,
51
+ requiredScopes: request.requiredScopes,
52
+ ...(request.requiredAudience === undefined
53
+ ? {}
54
+ : { requiredAudience: request.requiredAudience }),
55
+ };
56
+ }
19
57
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/broker/types.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC1C,MAAM,CAA8B;IACpC,GAAG,CAAU;IACb,IAAI,CAAqB;IAElC,YACE,MAAmC,EACnC,UAA6C,EAAE;QAE/C,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACtD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/broker/types.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IAC1C,MAAM,CAA8B;IACpC,GAAG,CAAU;IACb,IAAI,CAAqB;IAElC,YACE,MAAmC,EACnC,UAA6C,EAAE;QAE/C,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACtD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;CACF;AA2DD;;;;GAIG;AACH,MAAM,UAAU,sCAAsC,CACpD,OAA0B;IAE1B,MAAM,kBAAkB,GACtB,OAAO,CAAC,SAAS,KAAK,SAAS;QAC/B,OAAO,CAAC,YAAY,KAAK,SAAS;QAClC,OAAO,CAAC,wBAAwB,KAAK,SAAS;QAC9C,OAAO,CAAC,OAAO,KAAK,SAAS;QAC7B,OAAO,CAAC,YAAY,KAAK,SAAS;QAClC,OAAO,CAAC,cAAc,KAAK,SAAS;QACpC,OAAO,CAAC,gBAAgB,KAAK,SAAS,CAAC;IACzC,IAAI,CAAC,kBAAkB;QAAE,OAAO,SAAS,CAAC;IAC1C,IACE,OAAO,CAAC,SAAS,KAAK,SAAS;QAC/B,OAAO,CAAC,YAAY,KAAK,SAAS;QAClC,OAAO,CAAC,wBAAwB,KAAK,SAAS;QAC9C,OAAO,CAAC,OAAO,KAAK,SAAS;QAC7B,OAAO,CAAC,YAAY,KAAK,SAAS;QAClC,OAAO,CAAC,cAAc,KAAK,SAAS,EACpC,CAAC;QACD,MAAM,IAAI,0BAA0B,CAAC,2BAA2B,CAAC,CAAC;IACpE,CAAC;IACD,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,wBAAwB,EAAE,OAAO,CAAC,wBAAwB;QAC1D,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { ArtifactFulfilment } from '@noodle-borg/compiler';
2
+ import type { EvalScope } from './eval/evaluate.js';
3
+ import type { ExecuteToolDeps } from './execute.js';
4
+ import type { ExecutionError } from './result.js';
5
+ type FlowFulfilment = Extract<ArtifactFulfilment, {
6
+ kind: 'flow';
7
+ }>;
8
+ export type EligibleActionAnalysis = {
9
+ readonly ok: true;
10
+ readonly flowHasActions: boolean;
11
+ readonly eligibleIndexes: readonly number[];
12
+ } | {
13
+ readonly ok: false;
14
+ readonly error: ExecutionError;
15
+ };
16
+ export type AdditionalOperationAnalysis = {
17
+ readonly ok: true;
18
+ readonly count: number;
19
+ } | {
20
+ readonly ok: false;
21
+ readonly error: ExecutionError;
22
+ };
23
+ export declare function validateConfirmationFlow(flow: FlowFulfilment, deps: ExecuteToolDeps): ExecutionError | null;
24
+ export declare function countTrailingEligibleOperations(flow: FlowFulfilment, selectedIndex: number, completedSteps: Readonly<Record<string, unknown>>, scope: EvalScope): AdditionalOperationAnalysis;
25
+ /** Prove action cardinality without connector I/O before proposing or dispatching an action. */
26
+ export declare function analyzeEligibleActions(flow: FlowFulfilment, startIndex: number, completedSteps: Readonly<Record<string, unknown>>, scope: EvalScope, deps: ExecuteToolDeps): EligibleActionAnalysis;
27
+ export {};
28
+ //# sourceMappingURL=confirmation-analysis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmation-analysis.d.ts","sourceRoot":"","sources":["../src/confirmation-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAY,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,KAAK,cAAc,GAAG,OAAO,CAAC,kBAAkB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEpE,MAAM,MAAM,sBAAsB,GAC9B;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C,GACD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAE3D,MAAM,MAAM,2BAA2B,GACnC;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAE3D,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,eAAe,GACpB,cAAc,GAAG,IAAI,CA+BvB;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,cAAc,EACpB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACjD,KAAK,EAAE,SAAS,GACf,2BAA2B,CAiB7B;AAED,gGAAgG;AAChG,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACjD,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,eAAe,GACpB,sBAAsB,CA6CxB"}
@@ -0,0 +1,143 @@
1
+ import { ExpressionEvalError, evaluateCondition } from './eval/evaluate.js';
2
+ export function validateConfirmationFlow(flow, deps) {
3
+ let operationSeen = false;
4
+ let unconditionalActionSeen = false;
5
+ for (const step of flow.steps) {
6
+ if (step.kind === 'operation') {
7
+ operationSeen = true;
8
+ if (step.if === undefined && step.operationRef.resolved === true) {
9
+ const signature = deps.connectors
10
+ .resolve(step.operationRef)
11
+ ?.signature(step.operationRef.operation);
12
+ if (signature?.type === 'action') {
13
+ if (unconditionalActionSeen) {
14
+ return {
15
+ code: 'invalid_confirmation_flow',
16
+ message: 'confirmable flows cannot contain more than one unconditional action',
17
+ path: `steps.${step.id}`,
18
+ };
19
+ }
20
+ unconditionalActionSeen = true;
21
+ }
22
+ }
23
+ }
24
+ if (step.kind === 'elicit' && operationSeen) {
25
+ return {
26
+ code: 'invalid_elicitation_flow',
27
+ message: 'interactive flows must collect all elicited input before the first operation',
28
+ path: `steps.${step.id}`,
29
+ };
30
+ }
31
+ }
32
+ return null;
33
+ }
34
+ export function countTrailingEligibleOperations(flow, selectedIndex, completedSteps, scope) {
35
+ let count = 0;
36
+ for (let index = selectedIndex + 1; index < flow.steps.length; index += 1) {
37
+ const step = flow.steps[index];
38
+ if (step?.kind !== 'operation')
39
+ continue;
40
+ if (step.if === undefined || conditionUsesIncompleteStep(step.if, completedSteps)) {
41
+ count += 1;
42
+ continue;
43
+ }
44
+ try {
45
+ if (evaluateCondition(step.if, scope, `steps.${step.id}.if`))
46
+ count += 1;
47
+ }
48
+ catch (error) {
49
+ if (error instanceof ExpressionEvalError)
50
+ return expressionFailure(error);
51
+ throw error;
52
+ }
53
+ }
54
+ return { ok: true, count };
55
+ }
56
+ /** Prove action cardinality without connector I/O before proposing or dispatching an action. */
57
+ export function analyzeEligibleActions(flow, startIndex, completedSteps, scope, deps) {
58
+ let flowHasActions = false;
59
+ const operationTypes = new Map();
60
+ for (const [index, step] of flow.steps.entries()) {
61
+ if (step.kind !== 'operation' || step.operationRef.resolved !== true)
62
+ continue;
63
+ const connector = deps.connectors.resolve(step.operationRef);
64
+ const signature = connector?.signature(step.operationRef.operation);
65
+ if (signature === undefined) {
66
+ return {
67
+ ok: false,
68
+ error: {
69
+ code: 'signature_drift',
70
+ message: `cannot prove confirmation safety for operation "${step.operationRef.operation}"`,
71
+ path: `steps.${step.id}`,
72
+ },
73
+ };
74
+ }
75
+ operationTypes.set(index, signature.type);
76
+ if (signature.type === 'action')
77
+ flowHasActions = true;
78
+ }
79
+ const eligibleIndexes = [];
80
+ for (let index = startIndex; index < flow.steps.length; index += 1) {
81
+ const step = flow.steps[index];
82
+ if (step?.kind !== 'operation' || operationTypes.get(index) !== 'action')
83
+ continue;
84
+ if (step.if !== undefined && conditionUsesIncompleteStep(step.if, completedSteps)) {
85
+ return {
86
+ ok: false,
87
+ error: {
88
+ code: 'invalid_confirmation_flow',
89
+ message: 'a later action condition depends on an unreviewed operation result',
90
+ path: `steps.${step.id}.if`,
91
+ },
92
+ };
93
+ }
94
+ try {
95
+ if (step.if === undefined || evaluateCondition(step.if, scope, `steps.${step.id}.if`)) {
96
+ eligibleIndexes.push(index);
97
+ }
98
+ }
99
+ catch (error) {
100
+ if (error instanceof ExpressionEvalError)
101
+ return expressionFailure(error);
102
+ throw error;
103
+ }
104
+ }
105
+ return { ok: true, flowHasActions, eligibleIndexes };
106
+ }
107
+ function expressionFailure(error) {
108
+ return {
109
+ ok: false,
110
+ error: {
111
+ code: 'expression_error',
112
+ message: error.message,
113
+ ...(error.path === undefined ? {} : { path: error.path }),
114
+ },
115
+ };
116
+ }
117
+ function conditionUsesIncompleteStep(condition, completedSteps) {
118
+ if (condition.kind === 'truthy') {
119
+ return pathUsesIncompleteStep(condition.operand, completedSteps);
120
+ }
121
+ if (condition.op === 'not') {
122
+ return conditionUsesIncompleteStep(condition.operand, completedSteps);
123
+ }
124
+ if (condition.op === 'and' || condition.op === 'or') {
125
+ return (conditionUsesIncompleteStep(condition.left, completedSteps) ||
126
+ conditionUsesIncompleteStep(condition.right, completedSteps));
127
+ }
128
+ return (pathUsesIncompleteStep(condition.left, completedSteps) ||
129
+ pathUsesIncompleteStep(condition.right, completedSteps));
130
+ }
131
+ function pathUsesIncompleteStep(node, completedSteps) {
132
+ if (node.kind !== 'path' || node.root !== 'steps')
133
+ return false;
134
+ const first = node.segments?.[0];
135
+ return (typeof first !== 'object' ||
136
+ first === null ||
137
+ !('kind' in first) ||
138
+ first.kind !== 'prop' ||
139
+ !('name' in first) ||
140
+ typeof first.name !== 'string' ||
141
+ !Object.hasOwn(completedSteps, first.name));
142
+ }
143
+ //# sourceMappingURL=confirmation-analysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmation-analysis.js","sourceRoot":"","sources":["../src/confirmation-analysis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { RuntimeArtifact } from '@noodle-borg/compiler';
2
+ import type { ConfirmationActionReview, ConfirmationPreparationResult, PreparedToolContinuation, ToolPreparationContinuation } from './result.js';
3
+ export declare function confirmationRequired(artifact: RuntimeArtifact, toolName: string, input: unknown, nextStepIndex: number, completedSteps: Record<string, unknown>, elicited: Record<string, unknown>, env: Record<string, string>, action?: ConfirmationActionReview): ConfirmationPreparationResult;
4
+ export declare function sameArtifact(artifact: RuntimeArtifact, continuation: ToolPreparationContinuation | PreparedToolContinuation): boolean;
5
+ export declare function artifactIdentity(artifact: RuntimeArtifact): ToolPreparationContinuation['artifact'];
6
+ //# sourceMappingURL=confirmation-continuation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmation-continuation.d.ts","sourceRoot":"","sources":["../src/confirmation-continuation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EACV,wBAAwB,EACxB,6BAA6B,EAC7B,wBAAwB,EACxB,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AAErB,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,MAAM,CAAC,EAAE,wBAAwB,GAChC,6BAA6B,CAwC/B;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,2BAA2B,GAAG,wBAAwB,GACnE,OAAO,CAQT;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,eAAe,GACxB,2BAA2B,CAAC,UAAU,CAAC,CAOzC"}
@@ -0,0 +1,56 @@
1
+ export function confirmationRequired(artifact, toolName, input, nextStepIndex, completedSteps, elicited, env, action) {
2
+ const reviewedAction = action === undefined
3
+ ? undefined
4
+ : {
5
+ connectorId: action.connectorId,
6
+ connectorVersion: action.connectorVersion,
7
+ operation: action.operation,
8
+ ...(action.bindingId !== undefined ? { bindingId: action.bindingId } : {}),
9
+ ...(action.connectionId !== undefined ? { connectionId: action.connectionId } : {}),
10
+ ...(action.connectionConfigRevision !== undefined
11
+ ? { connectionConfigRevision: action.connectionConfigRevision }
12
+ : {}),
13
+ ...(action.profile !== undefined ? { profile: action.profile } : {}),
14
+ ...(action.presentation !== undefined
15
+ ? { presentation: structuredClone(action.presentation) }
16
+ : {}),
17
+ ...(action.requiredScopes !== undefined
18
+ ? { requiredScopes: [...action.requiredScopes] }
19
+ : {}),
20
+ ...(action.requiredAudience !== undefined
21
+ ? { requiredAudience: action.requiredAudience }
22
+ : {}),
23
+ arguments: action.arguments,
24
+ };
25
+ return {
26
+ status: 'confirmation_required',
27
+ review: { input, elicited: { ...elicited }, ...(action !== undefined ? { action } : {}) },
28
+ continuation: {
29
+ kind: 'prepared_confirmation',
30
+ version: 1,
31
+ artifact: artifactIdentity(artifact),
32
+ toolName,
33
+ input,
34
+ nextStepIndex,
35
+ completedSteps: { ...completedSteps },
36
+ env: { ...env },
37
+ ...(reviewedAction !== undefined ? { reviewedAction } : {}),
38
+ },
39
+ };
40
+ }
41
+ export function sameArtifact(artifact, continuation) {
42
+ const expected = artifactIdentity(artifact);
43
+ return (expected.manifestName === continuation.artifact.manifestName &&
44
+ expected.manifestVersion === continuation.artifact.manifestVersion &&
45
+ expected.serverName === continuation.artifact.serverName &&
46
+ expected.serverVersion === continuation.artifact.serverVersion);
47
+ }
48
+ export function artifactIdentity(artifact) {
49
+ return {
50
+ manifestName: artifact.source.manifestName,
51
+ manifestVersion: artifact.source.manifestVersion,
52
+ serverName: artifact.server.name,
53
+ serverVersion: artifact.server.version,
54
+ };
55
+ }
56
+ //# sourceMappingURL=confirmation-continuation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmation-continuation.js","sourceRoot":"","sources":["../src/confirmation-continuation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"confirmation.d.ts","sourceRoot":"","sources":["../src/confirmation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGjF,OAAO,EAEL,KAAK,eAAe,EAMrB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAEV,6BAA6B,EAC7B,mBAAmB,EAEnB,0BAA0B,EAE1B,wBAAwB,EACxB,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AAMrB;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,6BAA6B,CAAC,CAuBxC;AAED,mGAAmG;AACnG,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,2BAA2B,EACzC,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,6BAA6B,CAAC,CAoCxC;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,wBAAwB,EACtC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,0BAA0B,CAAC,CAwErC"}
1
+ {"version":3,"file":"confirmation.d.ts","sourceRoot":"","sources":["../src/confirmation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAcjF,OAAO,EAEL,KAAK,eAAe,EAOrB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EACV,6BAA6B,EAC7B,mBAAmB,EAEnB,0BAA0B,EAE1B,wBAAwB,EACxB,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AAMrB;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,6BAA6B,CAAC,CA0BxC;AAED,mGAAmG;AACnG,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,2BAA2B,EACzC,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,6BAA6B,CAAC,CAuCxC;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,wBAAwB,EACtC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,0BAA0B,CAAC,CA0GrC"}