@noodleseed/one 0.151.1 → 0.153.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/dist/agent-product-skill-state.d.ts +2 -2
  2. package/dist/agent-product-skill-state.d.ts.map +1 -1
  3. package/dist/agent-product-skill-state.js.map +1 -1
  4. package/dist/agent-skills-state.d.ts +2 -2
  5. package/dist/agent-skills-state.d.ts.map +1 -1
  6. package/dist/agent-skills-state.js +1 -1
  7. package/dist/agent-skills-state.js.map +1 -1
  8. package/dist/agents.d.ts +2 -3
  9. package/dist/agents.d.ts.map +1 -1
  10. package/dist/agents.js.map +1 -1
  11. package/dist/assistant-embed-scaffold-template.d.ts +1 -0
  12. package/dist/assistant-embed-scaffold-template.d.ts.map +1 -1
  13. package/dist/assistant-embed-scaffold-template.js +80 -12
  14. package/dist/assistant-embed-scaffold-template.js.map +1 -1
  15. package/dist/checklist.d.ts +2 -1
  16. package/dist/checklist.d.ts.map +1 -1
  17. package/dist/commands/apps-ops.d.ts +0 -4
  18. package/dist/commands/apps-ops.d.ts.map +1 -1
  19. package/dist/commands/apps-ops.js +3 -3
  20. package/dist/commands/apps-ops.js.map +1 -1
  21. package/dist/commands/assistant-embed-ops.d.ts.map +1 -1
  22. package/dist/commands/assistant-embed-ops.js +141 -4
  23. package/dist/commands/assistant-embed-ops.js.map +1 -1
  24. package/dist/commands/assistant-ops.js +1 -1
  25. package/dist/commands/assistant-ops.js.map +1 -1
  26. package/dist/commands/auth-ops.d.ts +0 -14
  27. package/dist/commands/auth-ops.d.ts.map +1 -1
  28. package/dist/commands/auth-ops.js +1 -1
  29. package/dist/commands/auth-ops.js.map +1 -1
  30. package/dist/commands/author-loop.d.ts +0 -2
  31. package/dist/commands/author-loop.d.ts.map +1 -1
  32. package/dist/commands/author-loop.js +2 -2
  33. package/dist/commands/author-loop.js.map +1 -1
  34. package/dist/commands/catalog.d.ts +1 -7
  35. package/dist/commands/catalog.d.ts.map +1 -1
  36. package/dist/commands/catalog.js +3 -3
  37. package/dist/commands/catalog.js.map +1 -1
  38. package/dist/commands/config-values.d.ts +1 -47
  39. package/dist/commands/config-values.d.ts.map +1 -1
  40. package/dist/commands/config-values.js +11 -11
  41. package/dist/commands/config-values.js.map +1 -1
  42. package/dist/commands/connect-oauth.d.ts +0 -1
  43. package/dist/commands/connect-oauth.d.ts.map +1 -1
  44. package/dist/commands/connect-oauth.js +1 -1
  45. package/dist/commands/connect-oauth.js.map +1 -1
  46. package/dist/commands/connect.d.ts +0 -1
  47. package/dist/commands/connect.d.ts.map +1 -1
  48. package/dist/commands/connect.js +1 -1
  49. package/dist/commands/connect.js.map +1 -1
  50. package/dist/commands/customer-auth-smoke.d.ts +2 -1
  51. package/dist/commands/customer-auth-smoke.d.ts.map +1 -1
  52. package/dist/commands/customer-auth-smoke.js +3 -2
  53. package/dist/commands/customer-auth-smoke.js.map +1 -1
  54. package/dist/commands/deploy-ops.d.ts +0 -9
  55. package/dist/commands/deploy-ops.d.ts.map +1 -1
  56. package/dist/commands/deploy-ops.js +3 -4
  57. package/dist/commands/deploy-ops.js.map +1 -1
  58. package/dist/commands/deploy-resume.d.ts +0 -1
  59. package/dist/commands/deploy-resume.d.ts.map +1 -1
  60. package/dist/commands/deploy-resume.js +1 -1
  61. package/dist/commands/deploy-resume.js.map +1 -1
  62. package/dist/commands/deploy-version-resolution.d.ts +0 -2
  63. package/dist/commands/deploy-version-resolution.d.ts.map +1 -1
  64. package/dist/commands/deploy-version-resolution.js +1 -1
  65. package/dist/commands/deploy-version-resolution.js.map +1 -1
  66. package/dist/commands/deployments-ops.d.ts +0 -2
  67. package/dist/commands/deployments-ops.d.ts.map +1 -1
  68. package/dist/commands/deployments-ops.js +2 -2
  69. package/dist/commands/deployments-ops.js.map +1 -1
  70. package/dist/commands/envs-ops.d.ts +0 -3
  71. package/dist/commands/envs-ops.d.ts.map +1 -1
  72. package/dist/commands/envs-ops.js +3 -3
  73. package/dist/commands/envs-ops.js.map +1 -1
  74. package/dist/commands/feedback-ops.d.ts +0 -8
  75. package/dist/commands/feedback-ops.d.ts.map +1 -1
  76. package/dist/commands/feedback-ops.js +1 -1
  77. package/dist/commands/feedback-ops.js.map +1 -1
  78. package/dist/commands/github-ops.d.ts +0 -2
  79. package/dist/commands/github-ops.d.ts.map +1 -1
  80. package/dist/commands/github-ops.js +2 -2
  81. package/dist/commands/github-ops.js.map +1 -1
  82. package/dist/commands/mcp-apps.d.ts +0 -1
  83. package/dist/commands/mcp-apps.d.ts.map +1 -1
  84. package/dist/commands/org-admin.d.ts +0 -17
  85. package/dist/commands/org-admin.d.ts.map +1 -1
  86. package/dist/commands/org-admin.js +1 -2
  87. package/dist/commands/org-admin.js.map +1 -1
  88. package/dist/commands/output.d.ts +3 -12
  89. package/dist/commands/output.d.ts.map +1 -1
  90. package/dist/commands/output.js.map +1 -1
  91. package/dist/commands/platform-account-reset-files.d.ts +0 -3
  92. package/dist/commands/platform-account-reset-files.d.ts.map +1 -1
  93. package/dist/commands/platform-account-reset-files.js +1 -1
  94. package/dist/commands/platform-account-reset-files.js.map +1 -1
  95. package/dist/commands/platform-auth-rollout-acceleration-files.d.ts +0 -3
  96. package/dist/commands/platform-auth-rollout-acceleration-files.d.ts.map +1 -1
  97. package/dist/commands/platform-auth-rollout-acceleration-files.js +1 -1
  98. package/dist/commands/platform-auth-rollout-acceleration-files.js.map +1 -1
  99. package/dist/commands/project-setup.d.ts +0 -1
  100. package/dist/commands/project-setup.d.ts.map +1 -1
  101. package/dist/commands/project-setup.js +1 -1
  102. package/dist/commands/project-setup.js.map +1 -1
  103. package/dist/commands/resource-shared.d.ts +0 -6
  104. package/dist/commands/resource-shared.d.ts.map +1 -1
  105. package/dist/commands/resource-shared.js +1 -1
  106. package/dist/commands/resource-shared.js.map +1 -1
  107. package/dist/commands/session.d.ts +3 -13
  108. package/dist/commands/session.d.ts.map +1 -1
  109. package/dist/commands/session.js +2 -2
  110. package/dist/commands/session.js.map +1 -1
  111. package/dist/commands/target-picker.d.ts +0 -2
  112. package/dist/commands/target-picker.d.ts.map +1 -1
  113. package/dist/commands/target-picker.js +1 -1
  114. package/dist/commands/target-picker.js.map +1 -1
  115. package/dist/commands/update-ops.d.ts +0 -8
  116. package/dist/commands/update-ops.d.ts.map +1 -1
  117. package/dist/commands/update-ops.js +1 -1
  118. package/dist/commands/update-ops.js.map +1 -1
  119. package/dist/control-plane.d.ts +1 -1
  120. package/dist/control-plane.d.ts.map +1 -1
  121. package/dist/control-plane.js.map +1 -1
  122. package/dist/deploy.d.ts +0 -12
  123. package/dist/deploy.d.ts.map +1 -1
  124. package/dist/deploy.js +2 -2
  125. package/dist/deploy.js.map +1 -1
  126. package/dist/dev.d.ts.map +1 -1
  127. package/dist/dev.js +2 -3
  128. package/dist/dev.js.map +1 -1
  129. package/dist/devtools-auth-session.d.ts +0 -1
  130. package/dist/devtools-auth-session.d.ts.map +1 -1
  131. package/dist/devtools-auth-session.js.map +1 -1
  132. package/dist/devtools-chat.d.ts +1 -1
  133. package/dist/devtools-chat.d.ts.map +1 -1
  134. package/dist/devtools-chat.js.map +1 -1
  135. package/dist/devtools-delegated-exchange-state.d.ts +1 -1
  136. package/dist/devtools-delegated-exchange-state.d.ts.map +1 -1
  137. package/dist/devtools-design-contract.d.ts +3 -3
  138. package/dist/devtools-design-contract.d.ts.map +1 -1
  139. package/dist/devtools-design-contract.js +1 -1
  140. package/dist/devtools-design-contract.js.map +1 -1
  141. package/dist/devtools-preview.d.ts +1 -1
  142. package/dist/devtools-preview.d.ts.map +1 -1
  143. package/dist/devtools-rpc-forwarder.d.ts +2 -1
  144. package/dist/devtools-rpc-forwarder.d.ts.map +1 -1
  145. package/dist/devtools-rpc-forwarder.js +11 -12
  146. package/dist/devtools-rpc-forwarder.js.map +1 -1
  147. package/dist/gradient.d.ts +0 -3
  148. package/dist/gradient.d.ts.map +1 -1
  149. package/dist/gradient.js +1 -3
  150. package/dist/gradient.js.map +1 -1
  151. package/dist/local-compile.d.ts +2 -1
  152. package/dist/local-compile.d.ts.map +1 -1
  153. package/dist/local-target.d.ts +2 -1
  154. package/dist/local-target.d.ts.map +1 -1
  155. package/dist/node-version.d.ts +0 -2
  156. package/dist/node-version.d.ts.map +1 -1
  157. package/dist/node-version.js +2 -2
  158. package/dist/node-version.js.map +1 -1
  159. package/dist/plugin-mode/build-readiness-tools.d.ts +5 -4
  160. package/dist/plugin-mode/build-readiness-tools.d.ts.map +1 -1
  161. package/dist/plugin-mode/plugin-operation-contract.d.ts +0 -35
  162. package/dist/plugin-mode/plugin-operation-contract.d.ts.map +1 -1
  163. package/dist/plugin-mode/plugin-operation-contract.js +1 -1
  164. package/dist/plugin-mode/plugin-operation-contract.js.map +1 -1
  165. package/dist/project-entrypoint.d.ts +2 -1
  166. package/dist/project-entrypoint.d.ts.map +1 -1
  167. package/dist/project.d.ts +3 -3
  168. package/dist/project.d.ts.map +1 -1
  169. package/dist/project.js.map +1 -1
  170. package/dist/skills-update.d.ts +0 -1
  171. package/dist/skills-update.d.ts.map +1 -1
  172. package/dist/skills-update.js +1 -1
  173. package/dist/skills-update.js.map +1 -1
  174. package/dist/status.d.ts +0 -9
  175. package/dist/status.d.ts.map +1 -1
  176. package/dist/status.js +0 -16
  177. package/dist/status.js.map +1 -1
  178. package/dist/update-binary.d.ts +3 -2
  179. package/dist/update-binary.d.ts.map +1 -1
  180. package/dist/update-check.d.ts +0 -3
  181. package/dist/update-check.d.ts.map +1 -1
  182. package/dist/update-check.js +1 -1
  183. package/dist/update-check.js.map +1 -1
  184. package/dist/validate.d.ts +2 -1
  185. package/dist/validate.d.ts.map +1 -1
  186. package/node_modules/@noodle-borg/agent-kit/dist/behavior-skills.js +10 -10
  187. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +11 -8
  188. package/node_modules/@noodle-borg/agent-kit/dist/index.js +13 -1
  189. package/node_modules/@noodle-borg/agent-kit/dist/plugin-bootstrap-skill.d.ts +0 -2
  190. package/node_modules/@noodle-borg/agent-kit/dist/plugin-bootstrap-skill.js +1 -1
  191. package/node_modules/@noodle-borg/agent-kit/dist/plugin-bundle.d.ts +1 -1
  192. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +8 -0
  193. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +6 -6
  194. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-operations-ref.js +78 -0
  195. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +156 -135
  196. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-renderer-ref.js +109 -0
  197. package/node_modules/@noodle-borg/agent-kit/dist/skill-router.d.ts +2 -3
  198. package/node_modules/@noodle-borg/agent-kit/dist/skill-router.js +1 -1
  199. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  200. package/node_modules/@noodle-borg/agent-packaging/dist/host-package-assets.js +1 -1
  201. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-browser-fields.d.ts +3 -0
  202. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-browser-fields.js +15 -0
  203. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-configuration.d.ts +1 -1
  204. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-configuration.js +3 -2
  205. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-store.d.ts +19 -11
  206. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-store.js +24 -23
  207. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-transcript-events.d.ts +24 -0
  208. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-transcript-events.js +39 -0
  209. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-transcript.d.ts +6 -2
  210. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-transcript.js +11 -0
  211. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-view-availability.d.ts +8 -0
  212. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-view-availability.js +8 -0
  213. package/node_modules/@noodle-borg/assistant-gateway/dist/elevation-store.d.ts +3 -0
  214. package/node_modules/@noodle-borg/assistant-gateway/dist/elevation.d.ts +7 -1
  215. package/node_modules/@noodle-borg/assistant-gateway/dist/elevation.js +1 -0
  216. package/node_modules/@noodle-borg/assistant-gateway/dist/in-memory-elevation-store.d.ts +1 -0
  217. package/node_modules/@noodle-borg/assistant-gateway/dist/in-memory-elevation-store.js +1 -0
  218. package/node_modules/@noodle-borg/assistant-gateway/dist/portable.d.ts +1 -0
  219. package/node_modules/@noodle-borg/assistant-gateway/dist/portable.js +1 -0
  220. package/node_modules/@noodle-borg/assistant-gateway/package.json +2 -1
  221. package/node_modules/@noodle-borg/authoring/dist/assistant.d.ts +2 -1
  222. package/node_modules/@noodle-borg/authoring/dist/connections.d.ts +0 -2
  223. package/node_modules/@noodle-borg/authoring/dist/connections.js +1 -1
  224. package/node_modules/@noodle-borg/authoring/dist/load-authored.js +2 -2
  225. package/node_modules/@noodle-borg/authoring/dist/react/bridge.d.ts +3 -2
  226. package/node_modules/@noodle-borg/authoring/dist/react/form-components.d.ts +0 -8
  227. package/node_modules/@noodle-borg/authoring/dist/react/form-components.js +2 -4
  228. package/node_modules/@noodle-borg/authoring/dist/react/hooks.d.ts +2 -2
  229. package/node_modules/@noodle-borg/authoring/dist/server.d.ts +2 -0
  230. package/node_modules/@noodle-borg/authoring/dist/server.js +3 -0
  231. package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +12 -11
  232. package/node_modules/@noodle-borg/compiler/dist/artifact/version.d.ts +4 -1
  233. package/node_modules/@noodle-borg/compiler/dist/artifact/version.js +4 -1
  234. package/node_modules/@noodle-borg/compiler/dist/compile.d.ts +0 -1
  235. package/node_modules/@noodle-borg/compiler/dist/fulfilment-structural.d.ts +1 -1
  236. package/node_modules/@noodle-borg/compiler/dist/manifest/expression.d.ts +14 -14
  237. package/node_modules/@noodle-borg/compiler/dist/manifest/naming.d.ts +0 -2
  238. package/node_modules/@noodle-borg/compiler/dist/manifest/naming.js +1 -1
  239. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +4 -0
  240. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +20 -1
  241. package/node_modules/@noodle-borg/compiler/dist/manifest/website-projection.d.ts +2 -1
  242. package/node_modules/@noodle-borg/compiler/dist/state-handles.js +1 -0
  243. package/node_modules/@noodle-borg/compiler/package.json +1 -4
  244. package/node_modules/@noodle-borg/connector-defs/dist/credential-profiles.js +1 -1
  245. package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts +0 -6
  246. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts +2 -2
  247. package/node_modules/@noodle-borg/connector-http/dist/http-response.d.ts +2 -1
  248. package/node_modules/@noodle-borg/connector-http/dist/mcp/config.js +1 -1
  249. package/node_modules/@noodle-borg/control-plane/dist/deploy-auth.d.ts +0 -1
  250. package/node_modules/@noodle-borg/developer-mcp/dist/widgets/shared.js +1 -1
  251. package/node_modules/@noodle-borg/knowledge-operations/dist/crawl-lifecycle.d.ts +2 -1
  252. package/node_modules/@noodle-borg/knowledge-operations/package.json +1 -2
  253. package/node_modules/@noodle-borg/observability/dist/request-events-postgres.js +3 -1
  254. package/node_modules/@noodle-borg/plugin-distribution/dist/openai-submission-render.js +1 -1
  255. package/node_modules/@noodle-borg/protocol/dist/index.d.ts +1 -1
  256. package/node_modules/@noodle-borg/protocol/dist/index.js +1 -1
  257. package/node_modules/@noodle-borg/protocol/dist/interaction-envelope.js +2 -2
  258. package/node_modules/@noodle-borg/protocol/dist/jsonrpc.d.ts +1 -1
  259. package/node_modules/@noodle-borg/protocol/dist/jsonrpc.js +1 -1
  260. package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts +4 -6
  261. package/node_modules/@noodle-borg/protocol/dist/mapping.js +1 -1
  262. package/node_modules/@noodle-borg/protocol/dist/observation.d.ts +0 -9
  263. package/node_modules/@noodle-borg/protocol/dist/observation.js +1 -1
  264. package/node_modules/@noodle-borg/protocol/dist/v2/handler.d.ts +2 -1
  265. package/node_modules/@noodle-borg/protocol/dist/v2/versions.d.ts +4 -0
  266. package/node_modules/@noodle-borg/protocol/dist/v2/versions.js +2 -0
  267. package/node_modules/@noodle-borg/protocol/dist/widget/domain-projection.d.ts +2 -1
  268. package/node_modules/@noodle-borg/protocol/package.json +0 -1
  269. package/node_modules/@noodle-borg/runtime/dist/broker/types.d.ts +2 -2
  270. package/node_modules/@noodle-borg/runtime/dist/index.d.ts +1 -0
  271. package/node_modules/@noodle-borg/runtime/dist/index.js +1 -0
  272. package/node_modules/@noodle-borg/runtime/dist/state-handle-ownership.d.ts +21 -0
  273. package/node_modules/@noodle-borg/runtime/dist/state-handle-ownership.js +10 -0
  274. package/node_modules/@noodle-borg/runtime/package.json +6 -1
  275. package/node_modules/@noodle-borg/service/dist/app-package-snapshot.d.ts +1 -2
  276. package/node_modules/@noodle-borg/service/dist/app-package-snapshot.js +1 -2
  277. package/node_modules/@noodle-borg/service/dist/archive-preflight.js +1 -1
  278. package/node_modules/@noodle-borg/service/dist/assets.js +1 -1
  279. package/node_modules/@noodle-borg/service/dist/assistant-bindings.js +2 -2
  280. package/node_modules/@noodle-borg/service/dist/client-compatibility.js +1 -2
  281. package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.js +2 -2
  282. package/node_modules/@noodle-borg/service/dist/external-credential-exchange.d.ts +0 -1
  283. package/node_modules/@noodle-borg/service/dist/external-credential-exchange.js +1 -1
  284. package/node_modules/@noodle-borg/service/dist/http-util.js +1 -72
  285. package/node_modules/@noodle-borg/service/dist/managed-config-expressions.d.ts +0 -1
  286. package/node_modules/@noodle-borg/service/dist/managed-config-expressions.js +1 -1
  287. package/node_modules/@noodle-borg/service/dist/oauth/customer-bridge.js +1 -1
  288. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.js +2 -2
  289. package/node_modules/@noodle-borg/service/dist/observability-runtime.js +2 -3
  290. package/node_modules/@noodle-borg/service/dist/registry-targets.js +3 -3
  291. package/node_modules/@noodle-borg/service/dist/routes/access-mode.js +0 -4
  292. package/node_modules/@noodle-borg/service/dist/routes/access.js +1 -1
  293. package/node_modules/@noodle-borg/service/dist/routes/alerts.js +3 -2
  294. package/node_modules/@noodle-borg/service/dist/routes/analytics.js +2 -1
  295. package/node_modules/@noodle-borg/service/dist/routes/apps.js +1 -1
  296. package/node_modules/@noodle-borg/service/dist/routes/archive.js +2 -1
  297. package/node_modules/@noodle-borg/service/dist/routes/asset-control-plane.js +2 -1
  298. package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.js +7 -2
  299. package/node_modules/@noodle-borg/service/dist/routes/assistant-appearance.js +2 -1
  300. package/node_modules/@noodle-borg/service/dist/routes/assistant-clients.js +2 -1
  301. package/node_modules/@noodle-borg/service/dist/routes/assistant-doctor.js +2 -1
  302. package/node_modules/@noodle-borg/service/dist/routes/assistant-elevation.js +15 -8
  303. package/node_modules/@noodle-borg/service/dist/routes/assistant-embeds.js +2 -1
  304. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-replay.js +5 -3
  305. package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.js +5 -3
  306. package/node_modules/@noodle-borg/service/dist/routes/assistant-public-configuration.js +1 -1
  307. package/node_modules/@noodle-borg/service/dist/routes/assistant-public-session.js +1 -1
  308. package/node_modules/@noodle-borg/service/dist/routes/assistant-route-http.js +4 -3
  309. package/node_modules/@noodle-borg/service/dist/routes/assistant-sandbox.js +1 -1
  310. package/node_modules/@noodle-borg/service/dist/routes/assistant-suggestions.js +1 -1
  311. package/node_modules/@noodle-borg/service/dist/routes/assistant-transcript.js +48 -9
  312. package/node_modules/@noodle-borg/service/dist/routes/assistant-usage.js +2 -1
  313. package/node_modules/@noodle-borg/service/dist/routes/assistant.js +2 -1
  314. package/node_modules/@noodle-borg/service/dist/routes/auth-discovery.js +2 -2
  315. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.js +1 -1
  316. package/node_modules/@noodle-borg/service/dist/routes/config-values-paths.js +1 -1
  317. package/node_modules/@noodle-borg/service/dist/routes/config-values.js +2 -1
  318. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +2 -3
  319. package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.js +1 -1
  320. package/node_modules/@noodle-borg/service/dist/routes/deployment-activation-response.js +1 -1
  321. package/node_modules/@noodle-borg/service/dist/routes/deployment-lock.js +1 -1
  322. package/node_modules/@noodle-borg/service/dist/routes/deployment-package.js +1 -1
  323. package/node_modules/@noodle-borg/service/dist/routes/deployments.js +1 -1
  324. package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js +2 -1
  325. package/node_modules/@noodle-borg/service/dist/routes/environment-production.js +2 -1
  326. package/node_modules/@noodle-borg/service/dist/routes/envs.js +1 -1
  327. package/node_modules/@noodle-borg/service/dist/routes/google-workload-identity.js +1 -1
  328. package/node_modules/@noodle-borg/service/dist/routes/intent-capture.js +2 -1
  329. package/node_modules/@noodle-borg/service/dist/routes/logs.js +2 -1
  330. package/node_modules/@noodle-borg/service/dist/routes/openai-apps-challenge.js +1 -2
  331. package/node_modules/@noodle-borg/service/dist/routes/org-admin.js +2 -1
  332. package/node_modules/@noodle-borg/service/dist/routes/org-domains.js +2 -1
  333. package/node_modules/@noodle-borg/service/dist/routes/org-mcp-subdomain.js +1 -1
  334. package/node_modules/@noodle-borg/service/dist/routes/paths.js +0 -39
  335. package/node_modules/@noodle-borg/service/dist/routes/protected-resource-metadata.js +3 -3
  336. package/node_modules/@noodle-borg/service/dist/routes/rollback.js +2 -1
  337. package/node_modules/@noodle-borg/service/dist/routes/service-principals-dispatch.js +2 -3
  338. package/node_modules/@noodle-borg/service/dist/routes/service-principals.js +1 -1
  339. package/node_modules/@noodle-borg/service/dist/service-config.d.ts +3 -2
  340. package/node_modules/@noodle-borg/service/dist/service-config.js +1 -1
  341. package/node_modules/@noodle-borg/service/dist/service.js +5 -2
  342. package/node_modules/@noodle-borg/service/dist/store/alert-rules.js +1 -1
  343. package/node_modules/@noodle-borg/service/dist/store/audit.js +1 -1
  344. package/node_modules/@noodle-borg/service/dist/store/records.js +1 -1
  345. package/node_modules/@noodle-borg/service/dist/store/validate.d.ts +1 -1
  346. package/node_modules/@noodle-borg/service/dist/store/validate.js +1 -1
  347. package/node_modules/@noodle-borg/service/dist/store.d.ts +2 -2
  348. package/node_modules/@noodle-borg/service/dist/store.js +1 -1
  349. package/node_modules/@noodle-borg/service/package.json +1 -1
  350. package/node_modules/@noodle-borg/transport-http/dist/client-identity.js +1 -1
  351. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +1 -2
  352. package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.d.ts +51 -0
  353. package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.js +7 -7
  354. package/node_modules/@noodle-borg/transport-http/dist/index.d.ts +4 -2
  355. package/node_modules/@noodle-borg/transport-http/dist/index.js +3 -1
  356. package/node_modules/@noodle-borg/transport-http/dist/request-body.d.ts +29 -0
  357. package/node_modules/@noodle-borg/transport-http/dist/request-body.js +64 -0
  358. package/node_modules/@noodle-borg/transport-http/dist/responses.d.ts +28 -0
  359. package/node_modules/@noodle-borg/transport-http/dist/routing.d.ts +2 -4
  360. package/node_modules/@noodle-borg/transport-http/dist/routing.js +3 -3
  361. package/node_modules/@noodle-borg/transport-http/dist/serve-request.js +2 -13
  362. package/node_modules/@noodle-borg/transport-http/package.json +0 -1
  363. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts +19 -25
  364. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.js +20 -34
  365. package/node_modules/@noodleseed/assistant/README.md +1 -1
  366. package/node_modules/@noodleseed/assistant/package.json +2 -1
  367. package/package.json +2 -2
  368. package/dist/commands/catalog-data-billing.d.ts +0 -3
  369. package/dist/commands/catalog-data-billing.d.ts.map +0 -1
  370. package/dist/commands/catalog-data-billing.js +0 -3
  371. package/dist/commands/catalog-data-billing.js.map +0 -1
  372. package/dist/commands/catalog-data-policy.d.ts +0 -3
  373. package/dist/commands/catalog-data-policy.d.ts.map +0 -1
  374. package/dist/commands/catalog-data-policy.js +0 -3
  375. package/dist/commands/catalog-data-policy.js.map +0 -1
  376. package/node_modules/@noodle-borg/compiler/dist/artifact/catalog-emission.d.ts +0 -50
  377. package/node_modules/@noodle-borg/compiler/dist/context-compile.d.ts +0 -17
  378. package/node_modules/@noodle-borg/transport-http/dist/module-http.d.ts +0 -13
  379. package/node_modules/@noodle-borg/transport-http/dist/module-http.js +0 -28
@@ -1,6 +1,6 @@
1
- import { AssistantInteractionCapacityError, assistantConfirmationReview, assistantConfirmationTransition, assistantInputTransition, assistantInteractionTool, assistantPreparedArgumentReview, assistantPreparedToolContinuation, assistantSafeOutput, assistantToolContinuation, assistantViewAvailableData, auditAssistantInteraction, withAssistantSessionExecutionAuthority, } from '@noodle-borg/assistant-gateway/portable';
1
+ import { AssistantInteractionCapacityError, assistantConfirmationReview, assistantConfirmationTransition, assistantInputTransition, assistantInteractionTool, assistantPreparedArgumentReview, assistantPreparedToolContinuation, assistantSafeOutput, assistantToolContinuation, assistantViewAvailableData, auditAssistantInteraction, recoverableAssistantView, withAssistantSessionExecutionAuthority, } from '@noodle-borg/assistant-gateway/portable';
2
2
  import { executePreparedTool, executeToolInteractive, resumeTool, resumeToolPreparation, } from '@noodle-borg/runtime';
3
- import { readJsonBody, sendJson } from '../http-util.js';
3
+ import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
4
4
  import { applyBrowserCors, authenticateSession, now, } from './assistant.js';
5
5
  import { replayOrConflict, writeUnknownOutcome } from './assistant-interaction-replay.js';
6
6
  import { parseInteractionResponse, validateInputContent } from './assistant-interaction-request.js';
@@ -364,8 +364,10 @@ async function finishExecution(res, deps, session, interaction, context, result,
364
364
  tool: toolName,
365
365
  result: safeOutput,
366
366
  }, (failure) => deps.logger?.warn('assistant.view.unresolved', { ...failure }));
367
- if (view)
367
+ if (view) {
368
+ await deps.store.replaceLatestView(session.id, recoverableAssistantView(view));
368
369
  writeViewAvailable(res, view);
370
+ }
369
371
  await narrateResolvedInteraction(res, deps, target, session, toolName, 'accept', safeOutput, context, suggestions);
370
372
  return endInteractionSse(res);
371
373
  }
@@ -1,5 +1,5 @@
1
1
  import { authorizePublicConfiguration, effectiveAssistantBrowserConfiguration, publicEmbedTenant, publicSurfaceOf, } from '@noodle-borg/assistant-gateway/portable';
2
- import { sendJson } from '../http-util.js';
2
+ import { sendJson } from '@noodle-borg/transport-http';
3
3
  import { applyBrowserCors } from './assistant-route-http.js';
4
4
  /** Browser-safe first paint for a public launcher; never mints a session or spends admission. */
5
5
  export async function handlePublicAssistantConfiguration(req, res, embedId, deps) {
@@ -2,8 +2,8 @@ import { randomBytes } from 'node:crypto';
2
2
  import { ADMISSION_DEFAULTS, clientAddressBucket } from '@noodle-borg/admission-limits/portable';
3
3
  import { effectiveAssistantBrowserConfiguration, mintPublicSession, publicEmbedTenant, publicSurfaceOf, } from '@noodle-borg/assistant-gateway/portable';
4
4
  import { assistantSessionUsageRequestEvent, captureAssistantUsage, captureRefusedAssistantSession, } from '@noodle-borg/observability';
5
+ import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
5
6
  import { assistantSessionResponseSchema } from '@noodle-borg/wire-contracts';
6
- import { readJsonBody, sendJson } from '../http-util.js';
7
7
  import { applyBrowserCors, assistantSessionEndpoints, now } from './assistant-route-http.js';
8
8
  /**
9
9
  * The transport half of anonymous session minting. Every decision — which refusal, in which order, and
@@ -1,3 +1,4 @@
1
+ import { bearerToken } from '@noodle-borg/transport-http';
1
2
  import { sendForbidden, sendUnauthorized } from '../http-util.js';
2
3
  export function handleAssistantPreflight(req, res) {
3
4
  const origin = typeof req.headers.origin === 'string' ? req.headers.origin : 'null';
@@ -11,13 +12,13 @@ export function handleAssistantPreflight(req, res) {
11
12
  res.end();
12
13
  }
13
14
  export async function authenticateSession(req, res, deps) {
14
- const match = /^Bearer\s+(.+)$/i.exec(req.headers.authorization ?? '');
15
- if (!match?.[1]) {
15
+ const token = bearerToken(req.headers.authorization);
16
+ if (token === null) {
16
17
  applyBrowserCors(req, res);
17
18
  sendUnauthorized(res, 'invalid assistant session');
18
19
  return undefined;
19
20
  }
20
- const session = await deps.store.getSession(match[1], now(deps));
21
+ const session = await deps.store.getSession(token, now(deps));
21
22
  if (!session) {
22
23
  applyBrowserCors(req, res);
23
24
  sendUnauthorized(res, 'invalid assistant session');
@@ -7,7 +7,7 @@
7
7
  * `contract/v1/assistant-sandbox-document.html` and to the published client's srcdoc fallback; any
8
8
  * relay-protocol change is a coordinated contract event, never a local edit.
9
9
  */
10
- export const ASSISTANT_SANDBOX_DOCUMENT = `<!doctype html><meta charset="utf-8"><style>html,body,iframe{border:0;margin:0;width:100%;height:100%;overflow:hidden}body{background:transparent}</style><script>
10
+ const ASSISTANT_SANDBOX_DOCUMENT = `<!doctype html><meta charset="utf-8"><style>html,body,iframe{border:0;margin:0;width:100%;height:100%;overflow:hidden}body{background:transparent}</style><script>
11
11
  let inner;
12
12
  const ready={jsonrpc:'2.0',method:'ui/notifications/sandbox-proxy-ready',params:{}};
13
13
  // Re-announce until the host acknowledges with the resource: when this document is hosted
@@ -1,7 +1,7 @@
1
1
  import { ADMISSION_DEFAULTS } from '@noodle-borg/admission-limits/portable';
2
2
  import { parseAssistantContextPreferences, resolveInvocationContextSnapshot, surfaceEnvelope, withAssistantSessionExecutionAuthority, } from '@noodle-borg/assistant-gateway/portable';
3
+ import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
3
4
  import { assistantSuggestionsRequestSchema } from '@noodle-borg/wire-contracts';
4
- import { readJsonBody, sendJson } from '../http-util.js';
5
5
  import { generateInitialAssistantSuggestions } from './assistant-agent.js';
6
6
  import { applyBrowserCors, authenticateSession, now } from './assistant-route-http.js';
7
7
  import { sessionScopedTarget } from './assistant-session-target.js';
@@ -1,7 +1,7 @@
1
- import { visibleTranscript } from '@noodle-borg/assistant-gateway/portable';
2
- import { assistantTranscriptResponseSchema } from '@noodle-borg/wire-contracts';
3
- import { sendJson } from '../http-util.js';
1
+ import { assistantConfirmationProposal, assistantTranscriptEvents, assistantViewAvailableData, visibleTranscript, } from '@noodle-borg/assistant-gateway/portable';
2
+ import { assistantWireEventSchema } from '@noodle-borg/wire-contracts';
4
3
  import { applyBrowserCors, authenticateSession } from './assistant-route-http.js';
4
+ import { sessionScopedTarget } from './assistant-session-target.js';
5
5
  /**
6
6
  * The bounded visible-transcript read (ADR 0141/0201 amendments 2026-08-26), in its own module for
7
7
  * the same reason `assistant-elevation.ts` is: `assistant.ts` is at its size limit, and this is a
@@ -18,15 +18,54 @@ export async function handleAssistantTranscript(req, res, deps) {
18
18
  if (!session)
19
19
  return;
20
20
  applyBrowserCors(req, res, session.origin);
21
- const body = {
21
+ const target = await sessionScopedTarget(deps.registry, session);
22
+ const latestView = target && session.latestView
23
+ ? assistantViewAvailableData(target.served.artifact, { ...session.latestView, replayed: true }, (failure) => deps.logger?.warn('assistant.view.unresolved', { ...failure }))
24
+ : undefined;
25
+ const pending = await deps.store.findPendingInteraction({
26
+ sessionId: session.id,
27
+ deploymentId: session.deploymentId,
28
+ now: deps.clock?.() ?? new Date(),
29
+ });
30
+ const pendingInteraction = target && pending && target.served.artifact.tools.some((tool) => tool.name === pending.tool)
31
+ ? pending.kind === 'confirmation'
32
+ ? {
33
+ event: 'tool_proposed',
34
+ data: {
35
+ id: pending.id,
36
+ tool: pending.tool,
37
+ ...assistantConfirmationProposal(pending.review),
38
+ expiresAt: pending.expiresAt,
39
+ requiresConfirmation: true,
40
+ },
41
+ }
42
+ : {
43
+ event: 'input_requested',
44
+ data: {
45
+ id: pending.id,
46
+ message: pending.message,
47
+ requestedSchema: pending.requestedSchema,
48
+ expiresAt: pending.expiresAt,
49
+ },
50
+ }
51
+ : undefined;
52
+ const events = assistantTranscriptEvents({
22
53
  entries: visibleTranscript(session.history),
23
54
  ...(session.latestSuggestions?.phase === 'follow_up'
24
55
  ? { suggestions: session.latestSuggestions }
25
56
  : {}),
26
- };
27
- // Parse before sending, like the session exchange: a contract break fails loudly here rather than
28
- // stranding deployed widgets (ADR 0151).
29
- assistantTranscriptResponseSchema.parse(body);
30
- return sendJson(res, 200, body);
57
+ ...(latestView === undefined ? {} : { latestView }),
58
+ ...(pendingInteraction === undefined ? {} : { pendingInteraction }),
59
+ });
60
+ res.writeHead(200, {
61
+ 'content-type': 'text/event-stream; charset=utf-8',
62
+ 'cache-control': 'no-store',
63
+ });
64
+ for (const event of events) {
65
+ // Parse before sending, like every assistant stream: contract drift fails at the service seam.
66
+ assistantWireEventSchema.parse(event);
67
+ res.write(`event: ${event.event}\ndata: ${JSON.stringify(event.data)}\n\n`);
68
+ }
69
+ res.end();
31
70
  }
32
71
  //# sourceMappingURL=assistant-transcript.js.map
@@ -1,5 +1,6 @@
1
1
  import { ASSISTANT_USAGE_METHOD, aggregateAssistantUsage } from '@noodle-borg/observability';
2
- import { normalizedTimestamps, sendJson } from '../http-util.js';
2
+ import { sendJson } from '@noodle-borg/transport-http';
3
+ import { normalizedTimestamps } from '../http-util.js';
3
4
  import { authorizeTenantControl, developerGrantRouteAccess } from './control-plane.js';
4
5
  const WINDOWS_MS = new Map([
5
6
  ['24h', 24 * 60 * 60 * 1000],
@@ -6,8 +6,9 @@ import { tenantMcpUrl } from '@noodle-borg/module';
6
6
  import { assistantAppToolCallRecorder, assistantRefusedTurnUsageRequestEvent, assistantSessionUsageRequestEvent, assistantTurnNumber, assistantTurnUsageRequestEvent, captureAssistantUsage, } from '@noodle-borg/observability';
7
7
  import { mapExecutionError, mapResourceContents, mapResourcesList, mapToolOutput, mapToolsList, } from '@noodle-borg/protocol';
8
8
  import { executeResource } from '@noodle-borg/runtime';
9
+ import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
9
10
  import { assistantMessageTurnRequestSchema, assistantResumeTurnRequestSchema, assistantSessionResponseSchema, } from '@noodle-borg/wire-contracts';
10
- import { readJsonBody, sendForbidden, sendJson, sendUnauthorized } from '../http-util.js';
11
+ import { sendForbidden, sendUnauthorized } from '../http-util.js';
11
12
  import { createAssistantTurnStats, runAgentTurn } from './assistant-agent.js';
12
13
  import { elevateAssistantSession } from './assistant-elevation.js';
13
14
  import { executeAssistantKnowledgeSearch, findAssistantKnowledgeComponent, resolveAssistantKnowledge, } from './assistant-knowledge.js';
@@ -1,5 +1,5 @@
1
- import { applySecurityHeaders, enforceHttps } from '@noodle-borg/transport-http';
2
- import { baseFromRequest, normalizeServiceBase, sendJson } from '../http-util.js';
1
+ import { applySecurityHeaders, enforceHttps, sendJson, } from '@noodle-borg/transport-http';
2
+ import { baseFromRequest, normalizeServiceBase } from '../http-util.js';
3
3
  /** Provider-neutral discovery and its shipped Google-named compatibility route share exact bytes. */
4
4
  export function dispatchAuthDiscoveryRoute(req, res, url, options, tls) {
5
5
  if (req.method !== 'GET' || (url.pathname !== '/v1/auth' && url.pathname !== '/v1/auth/google')) {
@@ -1,7 +1,7 @@
1
1
  import { bearerToken } from '@noodle-borg/control-plane/portable';
2
2
  import { normalizeServerVersion, tenantMcpUrl } from '@noodle-borg/module';
3
3
  import { freezeCustomerRoutes, resolveCustomerRouteBinding, } from '@noodle-borg/runtime';
4
- import { sendJson } from '../http-util.js';
4
+ import { sendJson } from '@noodle-borg/transport-http';
5
5
  /** Verify one real customer identity and probe delegated bindings without calling business APIs. */
6
6
  export async function handleLiveAuthDoctor(req, res, registry, tenant, options) {
7
7
  let serverVersion;
@@ -54,7 +54,7 @@ function encodedConfigRouteRef(kind, encodedScope, encodedName, searchParams, re
54
54
  return invalidConfigRouteRef(kind, encodedName, reveal);
55
55
  }
56
56
  }
57
- export function configRouteRef(kind, scope, encodedName, searchParams, reveal = false) {
57
+ function configRouteRef(kind, scope, encodedName, searchParams, reveal = false) {
58
58
  let safeScope;
59
59
  try {
60
60
  safeScope = validateConfigScope(scope);
@@ -1,7 +1,8 @@
1
1
  import { DEVELOPER_CLI_PATH } from '@noodle-borg/developer-mcp';
2
+ import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
2
3
  import { configValueSetRequestSchema, EffectiveConfigResponseSchema, formatWireError, RevealSecretResponseSchema, } from '@noodle-borg/wire-contracts';
3
4
  import { projectEffectiveConfig, } from '../config-value-projection.js';
4
- import { readJsonBody, sendForbidden, sendJson } from '../http-util.js';
5
+ import { sendForbidden } from '../http-util.js';
5
6
  import { authorizeControlPlane } from './control-plane.js';
6
7
  export async function handleConfigValues(req, res, gate, controlPlane, configStore, registry, maxBody, ref, audit, developerGrants) {
7
8
  const identity = await authorizeControlPlane(req, res, gate, {
@@ -2,10 +2,10 @@ import { cspFaultsInManifest } from '@noodle-borg/compiler';
2
2
  import { ensurePersonalWorkspace } from '@noodle-borg/control-plane/portable';
3
3
  import { DEVELOPER_ASSISTANT_PATH, DEVELOPER_CLI_PATH, } from '@noodle-borg/developer-mcp';
4
4
  import { normalizeServerVersion } from '@noodle-borg/module';
5
- import { noopLogger } from '@noodle-borg/transport-http';
5
+ import { noopLogger, readDeployBody, sendJson } from '@noodle-borg/transport-http';
6
6
  import { deployRequestSchema, formatWireError, } from '@noodle-borg/wire-contracts';
7
7
  import { authorizeDeveloperGrant, } from '../auth/developer-grant-guard.js';
8
- import { baseFromRequest, readDeployBody, sendForbidden, sendJson, sendUnauthorized, } from '../http-util.js';
8
+ import { baseFromRequest, sendForbidden, sendUnauthorized } from '../http-util.js';
9
9
  import { endpointUrlOptionsForOrg } from '../mcp-public-routing.js';
10
10
  import { manifestUsesUserRoot } from '../registry-access.js';
11
11
  import { isIdentityAccessMode } from './access-mode.js';
@@ -14,7 +14,6 @@ import { provisionPublicEmbed } from './deploy-public-embed.js';
14
14
  import { respondDeploymentActivationError } from './deployment-activation-response.js';
15
15
  import { tenantMcpUrl } from './endpoint-enrichment.js';
16
16
  import { canManageMembers } from './org-admin.js';
17
- export { handleConfigValues } from './config-values.js';
18
17
  export async function handleDeploy(req, res, registry, options, maxBody, tenant, gate, controlPlane, audit) {
19
18
  // GHD-3: a GitHub run deploys with a run-scoped token on x-noodle-run-token — NOT a control-plane
20
19
  // identity. When that header is present the human control-plane auth (bearer + org membership) is
@@ -1,6 +1,6 @@
1
1
  import { cspFaultsInManifest } from '@noodle-borg/compiler';
2
+ import { readDeployBody, sendJson } from '@noodle-borg/transport-http';
2
3
  import { deployPreflightRequestSchema, formatWireError } from '@noodle-borg/wire-contracts';
3
- import { readDeployBody, sendJson } from '../http-util.js';
4
4
  import { manifestUsesUserRoot } from '../registry-access.js';
5
5
  import { isIdentityAccessMode } from './access-mode.js';
6
6
  import { authorizeDeploymentOwnerSelection, authorizeTenantControl, developerGrantRouteAccess, } from './control-plane.js';
@@ -1,5 +1,5 @@
1
1
  import { DeploymentActivationError } from '@noodle-borg/module';
2
- import { sendJson } from '../http-util.js';
2
+ import { sendJson } from '@noodle-borg/transport-http';
3
3
  /** Translate provider-neutral activation failures without exposing commercial account details. */
4
4
  export async function respondDeploymentActivationError(res, error, context) {
5
5
  if (!(error instanceof DeploymentActivationError))
@@ -1,6 +1,6 @@
1
1
  import { normalizeServerVersion } from '@noodle-borg/module';
2
+ import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
2
3
  import { deploymentLockRequestSchema } from '@noodle-borg/wire-contracts';
3
- import { readJsonBody, sendJson } from '../http-util.js';
4
4
  import { authorizeControlPlane } from './control-plane.js';
5
5
  import { canManageMembers } from './org-admin.js';
6
6
  export async function handleDeploymentLockUpdate(req, res, registry, gate, controlPlane, audit, maxBody, tenant) {
@@ -1,7 +1,7 @@
1
1
  import { sha256Canonical } from '@noodle-borg/app-package';
2
+ import { sendJson } from '@noodle-borg/transport-http';
2
3
  import { DeploymentPackageResponseShapeSchema } from '@noodle-borg/wire-contracts';
3
4
  import { parseAppPackageSnapshot } from '../app-package-snapshot.js';
4
- import { sendJson } from '../http-util.js';
5
5
  import { authorizeTenantControl, developerGrantRouteAccess } from './control-plane.js';
6
6
  const PACKAGE_UNAVAILABLE = {
7
7
  code: 'package_unavailable',
@@ -1,5 +1,5 @@
1
+ import { sendJson } from '@noodle-borg/transport-http';
1
2
  import { DeploymentResponseSchema } from '@noodle-borg/wire-contracts';
2
- import { sendJson } from '../http-util.js';
3
3
  import { sendContract } from './apps.js';
4
4
  import { authorizeTenantControl, developerGrantRouteAccess } from './control-plane.js';
5
5
  import { withEndpointUrl } from './endpoint-enrichment.js';
@@ -1,5 +1,6 @@
1
+ import { sendJson } from '@noodle-borg/transport-http';
1
2
  import { inspectServiceDeployment } from '../developer-mcp/inspection.js';
2
- import { baseFromRequest, sendJson } from '../http-util.js';
3
+ import { baseFromRequest } from '../http-util.js';
3
4
  import { endpointUrlOptionsForOrg } from '../mcp-public-routing.js';
4
5
  import { authorizeTenantControl, developerGrantRouteAccess } from './control-plane.js';
5
6
  export async function handleInspect(req, res, registry, gate, controlPlane, tenant, options) {
@@ -1,5 +1,6 @@
1
+ import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
1
2
  import { ProductionEnvironmentRequestSchema, ProductionEnvironmentResponseSchema, } from '@noodle-borg/wire-contracts';
2
- import { readJsonBody, sendForbidden, sendJson } from '../http-util.js';
3
+ import { sendForbidden } from '../http-util.js';
3
4
  import { sendContract } from './apps.js';
4
5
  import { authorizeControlPlane } from './control-plane.js';
5
6
  import { canManageMembers } from './org-admin.js';
@@ -1,5 +1,5 @@
1
+ import { sendJson } from '@noodle-borg/transport-http';
1
2
  import { EnvResponseSchema, EnvsListResponseSchema } from '@noodle-borg/wire-contracts';
2
- import { sendJson } from '../http-util.js';
3
3
  import { sendContract } from './apps.js';
4
4
  import { authorizeTenantControl, developerGrantRouteAccess } from './control-plane.js';
5
5
  import { envWithEndpointUrl } from './endpoint-enrichment.js';
@@ -1,4 +1,4 @@
1
- import { sendJson } from '../http-util.js';
1
+ import { sendJson } from '@noodle-borg/transport-http';
2
2
  import { authorizeTenantControl } from './control-plane.js';
3
3
  export async function handleGoogleWorkloadIdentityDoctor(req, res, tenant, deps) {
4
4
  const identity = await authorizeTenantControl(req, res, deps.gate, deps.controlPlane, tenant.org);
@@ -1,4 +1,5 @@
1
- import { readJsonBody, sendForbidden, sendJson } from '../http-util.js';
1
+ import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
2
+ import { sendForbidden } from '../http-util.js';
2
3
  import { authorizeControlPlane, authorizeTenantControl } from './control-plane.js';
3
4
  import { canManageMembers } from './org-admin.js';
4
5
  const RETENTION_DAYS = 14;
@@ -1,4 +1,5 @@
1
- import { normalizedTimestamps, sendJson } from '../http-util.js';
1
+ import { sendJson } from '@noodle-borg/transport-http';
2
+ import { normalizedTimestamps } from '../http-util.js';
2
3
  import { authorizeTenantControl, developerGrantRouteAccess } from './control-plane.js';
3
4
  /**
4
5
  * `GET /v1/orgs/{org}/apps/{app}/envs/{env}/logs` — the tenant-safe developer log surface (M3, ADR 0101).
@@ -1,6 +1,5 @@
1
1
  import { OPENAI_APPS_CHALLENGE_PATH } from '@noodle-borg/module';
2
- import { applySecurityHeaders, enforceHttps } from '@noodle-borg/transport-http';
3
- import { sendJson } from '../http-util.js';
2
+ import { applySecurityHeaders, enforceHttps, sendJson, } from '@noodle-borg/transport-http';
4
3
  import { trustedPublicOrgWellKnownFromRequest } from '../mcp-public-routing.js';
5
4
  export function handlePublicOpenAIAppsChallenge(req, res, options, tls, controlPlane) {
6
5
  applySecurityHeaders(res, tls);
@@ -1,7 +1,8 @@
1
1
  import { mcpSubdomainEndpointOptions } from '@noodle-borg/control-plane/portable';
2
2
  import { normalizePublicBaseDomain, OPENAI_APPS_CHALLENGE_PATH } from '@noodle-borg/module';
3
+ import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
3
4
  import { OrgSummarySchema } from '@noodle-borg/wire-contracts';
4
- import { readJsonBody, sendForbidden, sendJson } from '../http-util.js';
5
+ import { sendForbidden } from '../http-util.js';
5
6
  import { hashToken, randomToken } from '../oauth/tokens.js';
6
7
  import { validateOrgRole, } from '../store.js';
7
8
  import { authorizeControlPlane, authorizeTenantControl } from './control-plane.js';
@@ -1,4 +1,5 @@
1
- import { readJsonBody, sendForbidden, sendJson } from '../http-util.js';
1
+ import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
2
+ import { sendForbidden } from '../http-util.js';
2
3
  import { validateOrgMembershipDomain, } from '../store.js';
3
4
  import { authorizeControlPlane } from './control-plane.js';
4
5
  import { canManageMembers, canViewMembers, emitOrgAudit } from './org-admin.js';
@@ -1,7 +1,7 @@
1
1
  import { McpSubdomainCooldownError, McpSubdomainIdempotencyConflictError, McpSubdomainOwnerRequiredError, McpSubdomainUnavailableError, validateMcpSubdomain, } from '@noodle-borg/control-plane/portable';
2
2
  import { normalizePublicBaseDomain } from '@noodle-borg/module';
3
+ import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
3
4
  import { McpSubdomainMutationRequestSchema, McpSubdomainMutationResponseSchema, McpSubdomainSettingResponseSchema, } from '@noodle-borg/wire-contracts';
4
- import { readJsonBody, sendJson } from '../http-util.js';
5
5
  import { emitAuditMirrors } from '../store/audit.js';
6
6
  import { authorizeControlPlane } from './control-plane.js';
7
7
  const IDEMPOTENCY_KEY = /^[A-Za-z0-9._:-]{8,256}$/;
@@ -1,6 +1,5 @@
1
1
  import { isAlertRuleId } from '../store/alert-rules.js';
2
2
  import { DEPLOYMENT_ID_PATTERN, validateDomain, validateSlug, validateTenantRef, } from '../store.js';
3
- export { configRouteRef, parseConfigPath, } from './config-values-paths.js';
4
3
  function matchPath(pathname, pattern, decode) {
5
4
  const match = pattern.exec(pathname);
6
5
  if (!match)
@@ -208,44 +207,6 @@ export function parseTenantSessionPath(pathname) {
208
207
  export function parseTenantAssistantUsagePath(pathname) {
209
208
  return matchPath(pathname, /^\/v1\/orgs\/([^/]+)\/apps\/([^/]+)\/envs\/([^/]+)\/assistant\/usage$/, tenantRef);
210
209
  }
211
- /** Match `/v1/orgs/{org}/apps/{app}/github/connection` (GHD-1 repository connection, GET/POST/DELETE). */
212
- export function parseGithubConnectionPath(pathname) {
213
- return matchPath(pathname, /^\/v1\/orgs\/([^/]+)\/apps\/([^/]+)\/github\/connection$/, appRef);
214
- }
215
- /** Parse `/v1/orgs/{org}/apps/{app}/github/runs` (GHD-2, the deploy-runs read surface). */
216
- export function parseGithubRunsPath(pathname) {
217
- return matchPath(pathname, /^\/v1\/orgs\/([^/]+)\/apps\/([^/]+)\/github\/runs$/, appRef);
218
- }
219
- /** Match the fixed path `/v1/github/install-url` (GHD-1). */
220
- export function isGithubInstallUrlPath(pathname) {
221
- return pathname === '/v1/github/install-url';
222
- }
223
- /** Match the fixed path `/v1/github/installations/claim` (GHD-1). */
224
- export function isGithubInstallationClaimPath(pathname) {
225
- return pathname === '/v1/github/installations/claim';
226
- }
227
- /** Parse `/v1/github/runs/{runId}/status` (GHD-C1, the trusted runner's transition report). */
228
- export function parseGithubRunStatusPath(pathname) {
229
- const match = /^\/v1\/github\/runs\/([A-Za-z0-9_-]+)\/status$/.exec(pathname);
230
- return match ? match[1] : undefined;
231
- }
232
- /** Parse `/v1/github/runs/{runId}/claim` (GHD-C3, Cloud Run builder credential claim). */
233
- export function parseGithubRunClaimPath(pathname) {
234
- const match = /^\/v1\/github\/runs\/([A-Za-z0-9_-]+)\/claim$/.exec(pathname);
235
- return match ? match[1] : undefined;
236
- }
237
- /** Match the fixed path `/v1/github/webhook` (GHD-2, the GitHub App's webhook receiver). */
238
- export function isGithubWebhookPath(pathname) {
239
- return pathname === '/v1/github/webhook';
240
- }
241
- /** Match the fixed path `/v1/github/setup` (GHD-1.4, the GitHub App's configured Setup URL). */
242
- export function isGithubSetupPath(pathname) {
243
- return pathname === '/v1/github/setup';
244
- }
245
- /** Match the fixed path `/v1/github/installations/pending` (GHD-1.4, the CLI's install poll target). */
246
- export function isGithubInstallationPendingPath(pathname) {
247
- return pathname === '/v1/github/installations/pending';
248
- }
249
210
  export function parseTenantActionPath(pathname, action) {
250
211
  return matchPath(pathname, new RegExp(`^/v1/orgs/([^/]+)/apps/([^/]+)/envs/([^/]+)/${action}$`), tenantRef);
251
212
  }
@@ -1,12 +1,12 @@
1
1
  import { protectedResourceMetadata } from '@noodle-borg/auth';
2
2
  import { parseLegacyTenantMcpPath } from '@noodle-borg/module';
3
- import { applySecurityHeaders, enforceHttps } from '@noodle-borg/transport-http';
3
+ import { applySecurityHeaders, enforceHttps, sendJson, } from '@noodle-borg/transport-http';
4
4
  import { DEVELOPER_MCP_PATH, developerMcpScopes } from '../developer-mcp/mount.js';
5
- import { baseFromRequest, sendJson } from '../http-util.js';
5
+ import { baseFromRequest } from '../http-util.js';
6
6
  import { trustedMcpResourceFromRequest } from '../mcp-public-routing.js';
7
7
  import { authorizationMetadataForTenant } from '../registry-targets.js';
8
8
  /** Well-known prefix for OAuth 2.0 Protected Resource Metadata (RFC 9728). */
9
- export const PROTECTED_RESOURCE_METADATA_PREFIX = '/.well-known/oauth-protected-resource';
9
+ const PROTECTED_RESOURCE_METADATA_PREFIX = '/.well-known/oauth-protected-resource';
10
10
  export function dispatchProtectedResourceMetadata(req, res, url, registry, controlPlane, options, tls) {
11
11
  if (req.method !== 'GET' || !url.pathname.startsWith(PROTECTED_RESOURCE_METADATA_PREFIX)) {
12
12
  return false;
@@ -1,5 +1,6 @@
1
1
  import { rollbackDeploymentOperation } from '@noodle-borg/control-plane/portable';
2
- import { baseFromRequest, readJsonBody, sendForbidden, sendJson } from '../http-util.js';
2
+ import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
3
+ import { baseFromRequest, sendForbidden } from '../http-util.js';
3
4
  import { endpointUrlOptionsForOrg } from '../mcp-public-routing.js';
4
5
  import { authorizeTenantControl, developerGrantRouteAccess } from './control-plane.js';
5
6
  export async function handleRollback(req, res, registry, gate, controlPlane, audit, maxBody, tenant, options) {
@@ -1,5 +1,4 @@
1
- import { applySecurityHeaders, enforceHttps, } from '@noodle-borg/transport-http';
2
- import { sendJson } from '../http-util.js';
1
+ import { applySecurityHeaders, enforceHttps, sendJson, } from '@noodle-borg/transport-http';
3
2
  import { parseServicePrincipalPath } from './service-principal-paths.js';
4
3
  import { handleServicePrincipalRequest } from './service-principals.js';
5
4
  /** Bind the shared security front door when the optional service-principal runtime is configured. */
@@ -16,7 +15,7 @@ export function createServicePrincipalDispatcher(registry, runtime, deps) {
16
15
  });
17
16
  }
18
17
  /** Dispatch the exact service-principal route family before generic MCP/tenant fallback. */
19
- export function dispatchServicePrincipalRoutes(req, res, url, deps) {
18
+ function dispatchServicePrincipalRoutes(req, res, url, deps) {
20
19
  const path = parseServicePrincipalPath(url.pathname);
21
20
  if (path === undefined)
22
21
  return false;
@@ -1,4 +1,4 @@
1
- import { readJsonBody, sendJson } from '../http-util.js';
1
+ import { readJsonBody, sendJson } from '@noodle-borg/transport-http';
2
2
  import { createClientSecret, digestClientSecret } from '../oauth/service-principal-credentials.js';
3
3
  import { authorizeControlPlane } from './control-plane.js';
4
4
  import { createServicePrincipalCredentialSchema, createServicePrincipalGrantSchema, createServicePrincipalSchema, } from './service-principal-contracts.js';
@@ -60,8 +60,8 @@ export interface ObservabilityConfig {
60
60
  readonly maxEventsPerExecution?: number;
61
61
  };
62
62
  }
63
- export declare const AGENCY_ORG_TEMPLATES: readonly ["small-business", "mid-market", "enterprise"];
64
- export type AgencyOrgTemplate = (typeof AGENCY_ORG_TEMPLATES)[number];
63
+ declare const AGENCY_ORG_TEMPLATES: readonly ["small-business", "mid-market", "enterprise"];
64
+ type AgencyOrgTemplate = (typeof AGENCY_ORG_TEMPLATES)[number];
65
65
  export type ServiceConfigSource = {
66
66
  readonly kind: 'none';
67
67
  } | {
@@ -92,4 +92,5 @@ export declare function resolveServiceConfigSource(input: {
92
92
  readonly ok: false;
93
93
  readonly error: string;
94
94
  };
95
+ export {};
95
96
  //# sourceMappingURL=service-config.d.ts.map
@@ -2,7 +2,7 @@ import { existsSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
3
  import { CAPABILITY_NAMES, isServiceProfileName, SERVICE_PROFILE_NAMES, } from '@noodle-borg/capabilities';
4
4
  import { parse as parseYaml } from 'yaml';
5
- export const AGENCY_ORG_TEMPLATES = ['small-business', 'mid-market', 'enterprise'];
5
+ const AGENCY_ORG_TEMPLATES = ['small-business', 'mid-market', 'enterprise'];
6
6
  export function defineNoodleService(config) {
7
7
  return config;
8
8
  }
@@ -2,7 +2,7 @@ import { InMemoryAssistantAppearanceSettingsStore, InMemoryAssistantStore, } fro
2
2
  import { allowAllGate, InMemoryControlPlaneStore } from '@noodle-borg/control-plane/portable';
3
3
  import { dispatchKnowledgeRequest } from '@noodle-borg/knowledge-operations/portable';
4
4
  import { OPENAI_APPS_CHALLENGE_PATH } from '@noodle-borg/module';
5
- import { applySecurityHeaders, createMcpRouter, enforceHttps, noopLogger, } from '@noodle-borg/transport-http';
5
+ import { applySecurityHeaders, createMcpRouter, enforceHttps, noopLogger, sendJson, } from '@noodle-borg/transport-http';
6
6
  import { AnonymousConsumerLimiter, createAdmissionGate } from './admission.js';
7
7
  import { createArchivePreflight } from './archive-preflight.js';
8
8
  import { ArchiveSweeper, resolveArchiveRetentionDays } from './archive-sweeper.js';
@@ -13,7 +13,7 @@ import { rejectIncompatibleCli } from './client-compatibility.js';
13
13
  import { createDataPlaneMembershipAuthorizer } from './data-plane-membership.js';
14
14
  import { DEVELOPER_MCP_PATH, handleDeveloperMcpRequest } from './developer-mcp/mount.js';
15
15
  import { createDeveloperMcpMountOptions } from './developer-mcp/service-options.js';
16
- import { baseFromRequest, respondRouteError, sendJson } from './http-util.js';
16
+ import { baseFromRequest, respondRouteError } from './http-util.js';
17
17
  import { createMcpInvocationContextResolver } from './invocation-context.js';
18
18
  import { wireServiceKnowledge } from './knowledge-wiring.js';
19
19
  import * as mcp from './mcp-public-routing.js';
@@ -241,6 +241,9 @@ export function createServiceHandler(registry, options = {}) {
241
241
  appearance: assistantAppearance,
242
242
  ...(options.publicEmbeds !== undefined ? { publicEmbeds: options.publicEmbeds } : {}),
243
243
  ...(options.elevations !== undefined ? { elevations: options.elevations } : {}),
244
+ ...(options.elevationCoordinator !== undefined
245
+ ? { elevationCoordinator: options.elevationCoordinator }
246
+ : {}),
244
247
  ...(options.admissionCounters !== undefined
245
248
  ? { admissionCounters: options.admissionCounters }
246
249
  : {}),
@@ -34,7 +34,7 @@ export function isAlertRuleId(id) {
34
34
  * validation of the webhook URL (https-only, loopback carve-out, private-IP rejection) is the
35
35
  * route's job (`validateAlertWebhookUrl`); the store only rejects structurally broken values.
36
36
  */
37
- export function validateCreateAlertRuleInput(input) {
37
+ function validateCreateAlertRuleInput(input) {
38
38
  const orgSlug = validateSlug('org', input.orgSlug);
39
39
  const appSlug = validateSlug('app', input.appSlug);
40
40
  const environment = validateSlug('env', input.environment);
@@ -10,7 +10,7 @@ export { AUDIT_SCHEMA_VERSION, redactDetails } from '@noodle-borg/module';
10
10
  * to a marker, so a stray token-bearing object can never reach a stored row or a log line.
11
11
  */
12
12
  /** Build the canonical stored event from an input, stamping id, schema version, and timestamp. */
13
- export function toAuditEvent(input, id, createdAt) {
13
+ function toAuditEvent(input, id, createdAt) {
14
14
  const details = redactDetails(input.details);
15
15
  return {
16
16
  id,
@@ -223,7 +223,7 @@ function compareAppSummaries(a, b) {
223
223
  return a.appSlug.localeCompare(b.appSlug);
224
224
  }
225
225
  /** Default + hard cap for a single `apps` list page (the route surfaces `truncated`, never drops silently). */
226
- export const DEFAULT_APPS_LIMIT = 200;
226
+ const DEFAULT_APPS_LIMIT = 200;
227
227
  /** Cap an already-sorted {@link AppSummary} list at `limit` (default {@link DEFAULT_APPS_LIMIT}). */
228
228
  export function paginateAppSummaries(apps, limit) {
229
229
  const safeLimit = limit ?? DEFAULT_APPS_LIMIT;
@@ -1,5 +1,5 @@
1
1
  import type { ConfigScope, TenantRef } from '../store.js';
2
- export { DOMAIN_PATTERN, isSystemOwnedOrgSlug, OPENAI_APPS_CHALLENGE_MAX_LENGTH, SLUG_PATTERN, validateDomain, validateMcpSubdomain, validateOpenAIAppsChallenge, validateOrgMembershipDomain, validateOrgRole, validateSignupAllowlistKind, validateSlug, validateUserOwnedOrgSlug, } from '@noodle-borg/control-plane/portable';
2
+ export { DOMAIN_PATTERN, SLUG_PATTERN, validateDomain, validateOrgMembershipDomain, validateOrgRole, validateSignupAllowlistKind, validateSlug, } from '@noodle-borg/control-plane/portable';
3
3
  /** Minted deployment id shape (`mintDeploymentId`): a slug plus a short hex suffix; safe as a filename. */
4
4
  export declare const DEPLOYMENT_ID_PATTERN: RegExp;
5
5
  export declare const CONFIG_NAME_PATTERN: RegExp;
@@ -4,7 +4,7 @@
4
4
  * import cycle through the store aggregate.
5
5
  */
6
6
  import { validateSlug } from '@noodle-borg/control-plane/portable';
7
- export { DOMAIN_PATTERN, isSystemOwnedOrgSlug, OPENAI_APPS_CHALLENGE_MAX_LENGTH, SLUG_PATTERN, validateDomain, validateMcpSubdomain, validateOpenAIAppsChallenge, validateOrgMembershipDomain, validateOrgRole, validateSignupAllowlistKind, validateSlug, validateUserOwnedOrgSlug, } from '@noodle-borg/control-plane/portable';
7
+ export { DOMAIN_PATTERN, SLUG_PATTERN, validateDomain, validateOrgMembershipDomain, validateOrgRole, validateSignupAllowlistKind, validateSlug, } from '@noodle-borg/control-plane/portable';
8
8
  /** Minted deployment id shape (`mintDeploymentId`): a slug plus a short hex suffix; safe as a filename. */
9
9
  export const DEPLOYMENT_ID_PATTERN = /^[a-z0-9-]+$/;
10
10
  export const CONFIG_NAME_PATTERN = /^[A-Za-z0-9_]+$/;