@noodleseed/one 0.152.0 → 0.154.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 (375) 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/checklist.d.ts +2 -1
  12. package/dist/checklist.d.ts.map +1 -1
  13. package/dist/commands/app-purge-reconciliation-args.d.ts +28 -0
  14. package/dist/commands/app-purge-reconciliation-args.d.ts.map +1 -0
  15. package/dist/commands/app-purge-reconciliation-args.js +124 -0
  16. package/dist/commands/app-purge-reconciliation-args.js.map +1 -0
  17. package/dist/commands/app-purge-reconciliation-files.d.ts +8 -0
  18. package/dist/commands/app-purge-reconciliation-files.d.ts.map +1 -0
  19. package/dist/commands/app-purge-reconciliation-files.js +109 -0
  20. package/dist/commands/app-purge-reconciliation-files.js.map +1 -0
  21. package/dist/commands/app-purge-reconciliation-ops.d.ts +3 -0
  22. package/dist/commands/app-purge-reconciliation-ops.d.ts.map +1 -0
  23. package/dist/commands/app-purge-reconciliation-ops.js +190 -0
  24. package/dist/commands/app-purge-reconciliation-ops.js.map +1 -0
  25. package/dist/commands/apps-ops.d.ts +0 -4
  26. package/dist/commands/apps-ops.d.ts.map +1 -1
  27. package/dist/commands/apps-ops.js +3 -3
  28. package/dist/commands/apps-ops.js.map +1 -1
  29. package/dist/commands/auth-ops.d.ts +0 -14
  30. package/dist/commands/auth-ops.d.ts.map +1 -1
  31. package/dist/commands/auth-ops.js +1 -1
  32. package/dist/commands/auth-ops.js.map +1 -1
  33. package/dist/commands/author-loop.d.ts +0 -2
  34. package/dist/commands/author-loop.d.ts.map +1 -1
  35. package/dist/commands/author-loop.js +2 -2
  36. package/dist/commands/author-loop.js.map +1 -1
  37. package/dist/commands/billing-ops.d.ts.map +1 -1
  38. package/dist/commands/billing-ops.js +7 -0
  39. package/dist/commands/billing-ops.js.map +1 -1
  40. package/dist/commands/billing-org-transfer-files.d.ts +12 -0
  41. package/dist/commands/billing-org-transfer-files.d.ts.map +1 -0
  42. package/dist/commands/billing-org-transfer-files.js +112 -0
  43. package/dist/commands/billing-org-transfer-files.js.map +1 -0
  44. package/dist/commands/billing-org-transfer-ops.d.ts +4 -0
  45. package/dist/commands/billing-org-transfer-ops.d.ts.map +1 -0
  46. package/dist/commands/billing-org-transfer-ops.js +534 -0
  47. package/dist/commands/billing-org-transfer-ops.js.map +1 -0
  48. package/dist/commands/catalog.d.ts +1 -7
  49. package/dist/commands/catalog.d.ts.map +1 -1
  50. package/dist/commands/catalog.js +3 -3
  51. package/dist/commands/catalog.js.map +1 -1
  52. package/dist/commands/config-values.d.ts +1 -47
  53. package/dist/commands/config-values.d.ts.map +1 -1
  54. package/dist/commands/config-values.js +11 -11
  55. package/dist/commands/config-values.js.map +1 -1
  56. package/dist/commands/connect-oauth.d.ts +0 -1
  57. package/dist/commands/connect-oauth.d.ts.map +1 -1
  58. package/dist/commands/connect-oauth.js +1 -1
  59. package/dist/commands/connect-oauth.js.map +1 -1
  60. package/dist/commands/connect.d.ts +0 -1
  61. package/dist/commands/connect.d.ts.map +1 -1
  62. package/dist/commands/connect.js +1 -1
  63. package/dist/commands/connect.js.map +1 -1
  64. package/dist/commands/customer-auth-smoke.d.ts +2 -1
  65. package/dist/commands/customer-auth-smoke.d.ts.map +1 -1
  66. package/dist/commands/customer-auth-smoke.js +3 -2
  67. package/dist/commands/customer-auth-smoke.js.map +1 -1
  68. package/dist/commands/deploy-ops.d.ts +0 -9
  69. package/dist/commands/deploy-ops.d.ts.map +1 -1
  70. package/dist/commands/deploy-ops.js +3 -4
  71. package/dist/commands/deploy-ops.js.map +1 -1
  72. package/dist/commands/deploy-resume.d.ts +0 -1
  73. package/dist/commands/deploy-resume.d.ts.map +1 -1
  74. package/dist/commands/deploy-resume.js +1 -1
  75. package/dist/commands/deploy-resume.js.map +1 -1
  76. package/dist/commands/deploy-version-resolution.d.ts +0 -2
  77. package/dist/commands/deploy-version-resolution.d.ts.map +1 -1
  78. package/dist/commands/deploy-version-resolution.js +1 -1
  79. package/dist/commands/deploy-version-resolution.js.map +1 -1
  80. package/dist/commands/deployments-ops.d.ts +0 -2
  81. package/dist/commands/deployments-ops.d.ts.map +1 -1
  82. package/dist/commands/deployments-ops.js +2 -2
  83. package/dist/commands/deployments-ops.js.map +1 -1
  84. package/dist/commands/envs-ops.d.ts +0 -3
  85. package/dist/commands/envs-ops.d.ts.map +1 -1
  86. package/dist/commands/envs-ops.js +3 -3
  87. package/dist/commands/envs-ops.js.map +1 -1
  88. package/dist/commands/feedback-ops.d.ts +0 -8
  89. package/dist/commands/feedback-ops.d.ts.map +1 -1
  90. package/dist/commands/feedback-ops.js +1 -1
  91. package/dist/commands/feedback-ops.js.map +1 -1
  92. package/dist/commands/github-ops.d.ts +0 -2
  93. package/dist/commands/github-ops.d.ts.map +1 -1
  94. package/dist/commands/github-ops.js +2 -2
  95. package/dist/commands/github-ops.js.map +1 -1
  96. package/dist/commands/mcp-apps.d.ts +0 -1
  97. package/dist/commands/mcp-apps.d.ts.map +1 -1
  98. package/dist/commands/org-admin.d.ts +0 -17
  99. package/dist/commands/org-admin.d.ts.map +1 -1
  100. package/dist/commands/org-admin.js +1 -2
  101. package/dist/commands/org-admin.js.map +1 -1
  102. package/dist/commands/output.d.ts +3 -12
  103. package/dist/commands/output.d.ts.map +1 -1
  104. package/dist/commands/output.js.map +1 -1
  105. package/dist/commands/platform-account-reset-files.d.ts +0 -3
  106. package/dist/commands/platform-account-reset-files.d.ts.map +1 -1
  107. package/dist/commands/platform-account-reset-files.js +1 -1
  108. package/dist/commands/platform-account-reset-files.js.map +1 -1
  109. package/dist/commands/platform-auth-rollout-acceleration-files.d.ts +0 -3
  110. package/dist/commands/platform-auth-rollout-acceleration-files.d.ts.map +1 -1
  111. package/dist/commands/platform-auth-rollout-acceleration-files.js +1 -1
  112. package/dist/commands/platform-auth-rollout-acceleration-files.js.map +1 -1
  113. package/dist/commands/project-setup.d.ts +0 -1
  114. package/dist/commands/project-setup.d.ts.map +1 -1
  115. package/dist/commands/project-setup.js +1 -1
  116. package/dist/commands/project-setup.js.map +1 -1
  117. package/dist/commands/resource-shared.d.ts +0 -6
  118. package/dist/commands/resource-shared.d.ts.map +1 -1
  119. package/dist/commands/resource-shared.js +1 -1
  120. package/dist/commands/resource-shared.js.map +1 -1
  121. package/dist/commands/service-ops.d.ts.map +1 -1
  122. package/dist/commands/service-ops.js +4 -1
  123. package/dist/commands/service-ops.js.map +1 -1
  124. package/dist/commands/session.d.ts +3 -13
  125. package/dist/commands/session.d.ts.map +1 -1
  126. package/dist/commands/session.js +2 -2
  127. package/dist/commands/session.js.map +1 -1
  128. package/dist/commands/target-picker.d.ts +0 -2
  129. package/dist/commands/target-picker.d.ts.map +1 -1
  130. package/dist/commands/target-picker.js +1 -1
  131. package/dist/commands/target-picker.js.map +1 -1
  132. package/dist/commands/update-ops.d.ts +0 -8
  133. package/dist/commands/update-ops.d.ts.map +1 -1
  134. package/dist/commands/update-ops.js +1 -1
  135. package/dist/commands/update-ops.js.map +1 -1
  136. package/dist/control-plane.d.ts +1 -1
  137. package/dist/control-plane.d.ts.map +1 -1
  138. package/dist/control-plane.js.map +1 -1
  139. package/dist/deploy.d.ts +0 -12
  140. package/dist/deploy.d.ts.map +1 -1
  141. package/dist/deploy.js +2 -2
  142. package/dist/deploy.js.map +1 -1
  143. package/dist/dev.d.ts.map +1 -1
  144. package/dist/dev.js +2 -3
  145. package/dist/dev.js.map +1 -1
  146. package/dist/devtools-auth-session.d.ts +0 -1
  147. package/dist/devtools-auth-session.d.ts.map +1 -1
  148. package/dist/devtools-auth-session.js.map +1 -1
  149. package/dist/devtools-chat.d.ts +1 -1
  150. package/dist/devtools-chat.d.ts.map +1 -1
  151. package/dist/devtools-chat.js.map +1 -1
  152. package/dist/devtools-delegated-exchange-state.d.ts +1 -1
  153. package/dist/devtools-delegated-exchange-state.d.ts.map +1 -1
  154. package/dist/devtools-design-contract.d.ts +3 -3
  155. package/dist/devtools-design-contract.d.ts.map +1 -1
  156. package/dist/devtools-design-contract.js +1 -1
  157. package/dist/devtools-design-contract.js.map +1 -1
  158. package/dist/devtools-preview.d.ts +1 -1
  159. package/dist/devtools-preview.d.ts.map +1 -1
  160. package/dist/devtools-rpc-forwarder.d.ts +2 -1
  161. package/dist/devtools-rpc-forwarder.d.ts.map +1 -1
  162. package/dist/devtools-rpc-forwarder.js +11 -12
  163. package/dist/devtools-rpc-forwarder.js.map +1 -1
  164. package/dist/gradient.d.ts +0 -3
  165. package/dist/gradient.d.ts.map +1 -1
  166. package/dist/gradient.js +1 -3
  167. package/dist/gradient.js.map +1 -1
  168. package/dist/local-compile.d.ts +2 -1
  169. package/dist/local-compile.d.ts.map +1 -1
  170. package/dist/local-target.d.ts +2 -1
  171. package/dist/local-target.d.ts.map +1 -1
  172. package/dist/node-version.d.ts +0 -2
  173. package/dist/node-version.d.ts.map +1 -1
  174. package/dist/node-version.js +2 -2
  175. package/dist/node-version.js.map +1 -1
  176. package/dist/plugin-mode/build-readiness-tools.d.ts +5 -4
  177. package/dist/plugin-mode/build-readiness-tools.d.ts.map +1 -1
  178. package/dist/plugin-mode/plugin-operation-contract.d.ts +0 -35
  179. package/dist/plugin-mode/plugin-operation-contract.d.ts.map +1 -1
  180. package/dist/plugin-mode/plugin-operation-contract.js +1 -1
  181. package/dist/plugin-mode/plugin-operation-contract.js.map +1 -1
  182. package/dist/project-entrypoint.d.ts +2 -1
  183. package/dist/project-entrypoint.d.ts.map +1 -1
  184. package/dist/project.d.ts +3 -3
  185. package/dist/project.d.ts.map +1 -1
  186. package/dist/project.js.map +1 -1
  187. package/dist/skills-update.d.ts +0 -1
  188. package/dist/skills-update.d.ts.map +1 -1
  189. package/dist/skills-update.js +1 -1
  190. package/dist/skills-update.js.map +1 -1
  191. package/dist/status.d.ts +0 -9
  192. package/dist/status.d.ts.map +1 -1
  193. package/dist/status.js +0 -16
  194. package/dist/status.js.map +1 -1
  195. package/dist/update-binary.d.ts +3 -2
  196. package/dist/update-binary.d.ts.map +1 -1
  197. package/dist/update-check.d.ts +0 -3
  198. package/dist/update-check.d.ts.map +1 -1
  199. package/dist/update-check.js +1 -1
  200. package/dist/update-check.js.map +1 -1
  201. package/dist/validate.d.ts +2 -1
  202. package/dist/validate.d.ts.map +1 -1
  203. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +5 -3
  204. package/node_modules/@noodle-borg/agent-kit/dist/plugin-bootstrap-skill.d.ts +0 -2
  205. package/node_modules/@noodle-borg/agent-kit/dist/plugin-bootstrap-skill.js +1 -1
  206. package/node_modules/@noodle-borg/agent-kit/dist/plugin-bundle.d.ts +1 -1
  207. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +5 -5
  208. package/node_modules/@noodle-borg/agent-kit/dist/skill-router.d.ts +2 -3
  209. package/node_modules/@noodle-borg/agent-kit/dist/skill-router.js +1 -1
  210. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  211. package/node_modules/@noodle-borg/agent-packaging/dist/host-package-assets.js +1 -1
  212. package/node_modules/@noodle-borg/assistant-gateway/dist/assistant-configuration.js +2 -1
  213. package/node_modules/@noodle-borg/assistant-gateway/package.json +1 -1
  214. package/node_modules/@noodle-borg/authoring/dist/assistant.d.ts +2 -1
  215. package/node_modules/@noodle-borg/authoring/dist/connections.d.ts +0 -2
  216. package/node_modules/@noodle-borg/authoring/dist/connections.js +1 -1
  217. package/node_modules/@noodle-borg/authoring/dist/load-authored.js +2 -2
  218. package/node_modules/@noodle-borg/authoring/dist/react/bridge.d.ts +3 -2
  219. package/node_modules/@noodle-borg/authoring/dist/react/form-components.d.ts +0 -8
  220. package/node_modules/@noodle-borg/authoring/dist/react/form-components.js +2 -4
  221. package/node_modules/@noodle-borg/authoring/dist/react/hooks.d.ts +2 -2
  222. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-account.js +96 -0
  223. package/node_modules/@noodle-borg/cli-catalog/dist/catalog-data-billing.js +116 -1
  224. package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +11 -11
  225. package/node_modules/@noodle-borg/compiler/dist/compile.d.ts +0 -1
  226. package/node_modules/@noodle-borg/compiler/dist/fulfilment-structural.d.ts +1 -1
  227. package/node_modules/@noodle-borg/compiler/dist/manifest/expression.d.ts +14 -14
  228. package/node_modules/@noodle-borg/compiler/dist/manifest/naming.d.ts +0 -2
  229. package/node_modules/@noodle-borg/compiler/dist/manifest/naming.js +1 -1
  230. package/node_modules/@noodle-borg/compiler/dist/manifest/website-projection.d.ts +2 -1
  231. package/node_modules/@noodle-borg/compiler/package.json +1 -4
  232. package/node_modules/@noodle-borg/connector-defs/dist/credential-profiles.js +1 -1
  233. package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts +0 -6
  234. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts +2 -2
  235. package/node_modules/@noodle-borg/connector-http/dist/http-response.d.ts +2 -1
  236. package/node_modules/@noodle-borg/connector-http/dist/mcp/config.js +1 -1
  237. package/node_modules/@noodle-borg/control-plane/dist/app-purge-reconciliation-port.d.ts +25 -0
  238. package/node_modules/@noodle-borg/control-plane/dist/app-purge-reconciliation-port.js +10 -0
  239. package/node_modules/@noodle-borg/control-plane/dist/deploy-auth.d.ts +0 -1
  240. package/node_modules/@noodle-borg/control-plane/dist/portable.d.ts +1 -0
  241. package/node_modules/@noodle-borg/control-plane/dist/portable.js +1 -0
  242. package/node_modules/@noodle-borg/control-plane/package.json +3 -1
  243. package/node_modules/@noodle-borg/developer-mcp/dist/widgets/shared.js +1 -1
  244. package/node_modules/@noodle-borg/knowledge-operations/dist/crawl-lifecycle.d.ts +2 -1
  245. package/node_modules/@noodle-borg/knowledge-operations/package.json +1 -2
  246. package/node_modules/@noodle-borg/observability/dist/request-events-postgres.js +3 -1
  247. package/node_modules/@noodle-borg/plugin-distribution/dist/openai-submission-render.js +1 -1
  248. package/node_modules/@noodle-borg/protocol/dist/index.d.ts +1 -1
  249. package/node_modules/@noodle-borg/protocol/dist/index.js +1 -1
  250. package/node_modules/@noodle-borg/protocol/dist/interaction-envelope.js +2 -2
  251. package/node_modules/@noodle-borg/protocol/dist/jsonrpc.d.ts +1 -1
  252. package/node_modules/@noodle-borg/protocol/dist/jsonrpc.js +1 -1
  253. package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts +4 -6
  254. package/node_modules/@noodle-borg/protocol/dist/mapping.js +1 -1
  255. package/node_modules/@noodle-borg/protocol/dist/observation.d.ts +0 -9
  256. package/node_modules/@noodle-borg/protocol/dist/observation.js +1 -1
  257. package/node_modules/@noodle-borg/protocol/dist/v2/handler.d.ts +2 -1
  258. package/node_modules/@noodle-borg/protocol/dist/v2/versions.d.ts +4 -0
  259. package/node_modules/@noodle-borg/protocol/dist/v2/versions.js +2 -0
  260. package/node_modules/@noodle-borg/protocol/dist/widget/domain-projection.d.ts +2 -1
  261. package/node_modules/@noodle-borg/protocol/package.json +0 -1
  262. package/node_modules/@noodle-borg/runtime/dist/broker/types.d.ts +2 -2
  263. package/node_modules/@noodle-borg/service/dist/app-package-snapshot.d.ts +1 -2
  264. package/node_modules/@noodle-borg/service/dist/app-package-snapshot.js +1 -2
  265. package/node_modules/@noodle-borg/service/dist/archive-preflight.js +1 -1
  266. package/node_modules/@noodle-borg/service/dist/assets.js +1 -1
  267. package/node_modules/@noodle-borg/service/dist/assistant-bindings.js +2 -2
  268. package/node_modules/@noodle-borg/service/dist/client-compatibility.js +1 -2
  269. package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.js +2 -2
  270. package/node_modules/@noodle-borg/service/dist/external-credential-exchange.d.ts +0 -1
  271. package/node_modules/@noodle-borg/service/dist/external-credential-exchange.js +1 -1
  272. package/node_modules/@noodle-borg/service/dist/http-util.js +1 -72
  273. package/node_modules/@noodle-borg/service/dist/managed-config-expressions.d.ts +0 -1
  274. package/node_modules/@noodle-borg/service/dist/managed-config-expressions.js +1 -1
  275. package/node_modules/@noodle-borg/service/dist/oauth/customer-bridge.js +1 -1
  276. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.js +2 -2
  277. package/node_modules/@noodle-borg/service/dist/observability-runtime.js +2 -3
  278. package/node_modules/@noodle-borg/service/dist/registry-targets.js +3 -3
  279. package/node_modules/@noodle-borg/service/dist/routes/access-mode.js +0 -4
  280. package/node_modules/@noodle-borg/service/dist/routes/access.js +1 -1
  281. package/node_modules/@noodle-borg/service/dist/routes/alerts.js +3 -2
  282. package/node_modules/@noodle-borg/service/dist/routes/analytics.js +2 -1
  283. package/node_modules/@noodle-borg/service/dist/routes/app-purge-reconciliation.js +72 -0
  284. package/node_modules/@noodle-borg/service/dist/routes/apps.js +1 -1
  285. package/node_modules/@noodle-borg/service/dist/routes/archive.js +2 -1
  286. package/node_modules/@noodle-borg/service/dist/routes/asset-control-plane.js +2 -1
  287. package/node_modules/@noodle-borg/service/dist/routes/assistant-appearance.js +2 -1
  288. package/node_modules/@noodle-borg/service/dist/routes/assistant-clients.js +2 -1
  289. package/node_modules/@noodle-borg/service/dist/routes/assistant-doctor.js +2 -1
  290. package/node_modules/@noodle-borg/service/dist/routes/assistant-elevation.js +1 -1
  291. package/node_modules/@noodle-borg/service/dist/routes/assistant-embeds.js +2 -1
  292. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-replay.js +1 -1
  293. package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.js +1 -1
  294. package/node_modules/@noodle-borg/service/dist/routes/assistant-public-configuration.js +1 -1
  295. package/node_modules/@noodle-borg/service/dist/routes/assistant-public-session.js +1 -1
  296. package/node_modules/@noodle-borg/service/dist/routes/assistant-route-http.js +4 -3
  297. package/node_modules/@noodle-borg/service/dist/routes/assistant-sandbox.js +1 -1
  298. package/node_modules/@noodle-borg/service/dist/routes/assistant-suggestions.js +1 -1
  299. package/node_modules/@noodle-borg/service/dist/routes/assistant-usage.js +2 -1
  300. package/node_modules/@noodle-borg/service/dist/routes/assistant.js +2 -1
  301. package/node_modules/@noodle-borg/service/dist/routes/auth-discovery.js +2 -2
  302. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.js +1 -1
  303. package/node_modules/@noodle-borg/service/dist/routes/config-values-paths.js +1 -1
  304. package/node_modules/@noodle-borg/service/dist/routes/config-values.js +2 -1
  305. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +17 -5
  306. package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.js +1 -1
  307. package/node_modules/@noodle-borg/service/dist/routes/deployment-activation-response.js +1 -1
  308. package/node_modules/@noodle-borg/service/dist/routes/deployment-lock.js +1 -1
  309. package/node_modules/@noodle-borg/service/dist/routes/deployment-package.js +1 -1
  310. package/node_modules/@noodle-borg/service/dist/routes/deployments.js +1 -1
  311. package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js +2 -1
  312. package/node_modules/@noodle-borg/service/dist/routes/environment-production.js +2 -1
  313. package/node_modules/@noodle-borg/service/dist/routes/envs.js +1 -1
  314. package/node_modules/@noodle-borg/service/dist/routes/google-workload-identity.js +1 -1
  315. package/node_modules/@noodle-borg/service/dist/routes/intent-capture.js +2 -1
  316. package/node_modules/@noodle-borg/service/dist/routes/logs.js +2 -1
  317. package/node_modules/@noodle-borg/service/dist/routes/openai-apps-challenge.js +1 -2
  318. package/node_modules/@noodle-borg/service/dist/routes/org-admin.js +2 -1
  319. package/node_modules/@noodle-borg/service/dist/routes/org-domains.js +2 -1
  320. package/node_modules/@noodle-borg/service/dist/routes/org-mcp-subdomain.js +1 -1
  321. package/node_modules/@noodle-borg/service/dist/routes/paths.js +0 -39
  322. package/node_modules/@noodle-borg/service/dist/routes/protected-resource-metadata.js +3 -3
  323. package/node_modules/@noodle-borg/service/dist/routes/rollback.js +2 -1
  324. package/node_modules/@noodle-borg/service/dist/routes/service-principals-dispatch.js +2 -3
  325. package/node_modules/@noodle-borg/service/dist/routes/service-principals.js +1 -1
  326. package/node_modules/@noodle-borg/service/dist/service-config.d.ts +3 -2
  327. package/node_modules/@noodle-borg/service/dist/service-config.js +1 -1
  328. package/node_modules/@noodle-borg/service/dist/service.js +29 -3
  329. package/node_modules/@noodle-borg/service/dist/store/alert-rules.js +1 -1
  330. package/node_modules/@noodle-borg/service/dist/store/audit.js +1 -1
  331. package/node_modules/@noodle-borg/service/dist/store/in-memory.js +4 -8
  332. package/node_modules/@noodle-borg/service/dist/store/json-file.js +6 -3
  333. package/node_modules/@noodle-borg/service/dist/store/records.js +21 -1
  334. package/node_modules/@noodle-borg/service/dist/store/validate.d.ts +1 -1
  335. package/node_modules/@noodle-borg/service/dist/store/validate.js +1 -1
  336. package/node_modules/@noodle-borg/service/dist/store.d.ts +5 -4
  337. package/node_modules/@noodle-borg/service/dist/store.js +1 -1
  338. package/node_modules/@noodle-borg/service/package.json +1 -1
  339. package/node_modules/@noodle-borg/transport-http/dist/client-identity.js +1 -1
  340. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +1 -2
  341. package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.d.ts +51 -0
  342. package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.js +7 -7
  343. package/node_modules/@noodle-borg/transport-http/dist/index.d.ts +4 -2
  344. package/node_modules/@noodle-borg/transport-http/dist/index.js +3 -1
  345. package/node_modules/@noodle-borg/transport-http/dist/request-body.d.ts +29 -0
  346. package/node_modules/@noodle-borg/transport-http/dist/request-body.js +64 -0
  347. package/node_modules/@noodle-borg/transport-http/dist/responses.d.ts +28 -0
  348. package/node_modules/@noodle-borg/transport-http/dist/routing.d.ts +2 -4
  349. package/node_modules/@noodle-borg/transport-http/dist/routing.js +3 -3
  350. package/node_modules/@noodle-borg/transport-http/dist/serve-request.js +2 -13
  351. package/node_modules/@noodle-borg/transport-http/package.json +0 -1
  352. package/node_modules/@noodle-borg/wire-contracts/dist/app-purge-reconciliation.d.ts +177 -0
  353. package/node_modules/@noodle-borg/wire-contracts/dist/app-purge-reconciliation.js +189 -0
  354. package/node_modules/@noodle-borg/wire-contracts/dist/assistant.d.ts +1 -1
  355. package/node_modules/@noodle-borg/wire-contracts/dist/billing-org-transfer.d.ts +629 -0
  356. package/node_modules/@noodle-borg/wire-contracts/dist/billing-org-transfer.js +259 -0
  357. package/node_modules/@noodle-borg/wire-contracts/dist/control-plane.d.ts +21 -0
  358. package/node_modules/@noodle-borg/wire-contracts/dist/control-plane.js +23 -0
  359. package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts +2 -0
  360. package/node_modules/@noodle-borg/wire-contracts/dist/index.js +2 -0
  361. package/node_modules/@noodle-borg/wire-contracts/dist/platform-account-reset.d.ts +4 -4
  362. package/node_modules/@noodleseed/assistant/package.json +2 -1
  363. package/package.json +2 -2
  364. package/dist/commands/catalog-data-billing.d.ts +0 -3
  365. package/dist/commands/catalog-data-billing.d.ts.map +0 -1
  366. package/dist/commands/catalog-data-billing.js +0 -3
  367. package/dist/commands/catalog-data-billing.js.map +0 -1
  368. package/dist/commands/catalog-data-policy.d.ts +0 -3
  369. package/dist/commands/catalog-data-policy.d.ts.map +0 -1
  370. package/dist/commands/catalog-data-policy.js +0 -3
  371. package/dist/commands/catalog-data-policy.js.map +0 -1
  372. package/node_modules/@noodle-borg/compiler/dist/artifact/catalog-emission.d.ts +0 -50
  373. package/node_modules/@noodle-borg/compiler/dist/context-compile.d.ts +0 -17
  374. package/node_modules/@noodle-borg/transport-http/dist/module-http.d.ts +0 -13
  375. package/node_modules/@noodle-borg/transport-http/dist/module-http.js +0 -28
@@ -1,4 +1,4 @@
1
- export { BOOTSTRAP_SKILL_DESCRIPTION, PLUGIN_NAME } from './plugin-bootstrap-skill.js';
1
+ export { PLUGIN_NAME } from './plugin-bootstrap-skill.js';
2
2
  /** The public marketplace identifier (`/plugin install noodle-seed@noodleseed`). */
3
3
  export declare const MARKETPLACE_NAME = "noodleseed";
4
4
  /** Where the plugin lives inside the marketplace repo (relative sources must start with "./"). */
@@ -23,7 +23,7 @@ import { APP_DIRECTORY_COMPLIANCE_REFERENCE } from './skill-router.js';
23
23
  import { renderBuildAnMcpServerReference } from './skill-server-playbook-ref.js';
24
24
  import { renderToolDesignReference } from './skill-tool-design-ref.js';
25
25
  import { renderVerifyAndRecoverReference } from './skill-verification-ref.js';
26
- export { REFERENCE_INDEX_LINES, SKILL_DESCRIPTION, SKILL_ROUTES, skillRouterBody, } from './skill-router.js';
26
+ export { skillRouterBody } from './skill-router.js';
27
27
  // ----------------------------------------------------------------------------
28
28
  // references/sdk-surface.md (GENERATED from SDK_EXPORTS + curated recipes)
29
29
  // ----------------------------------------------------------------------------
@@ -251,7 +251,7 @@ const SDK_AUTHORING_SIGNATURES = [
251
251
  '- `customerAuth.*(...)` belongs in `server` options when deployed customer callers need verified identity; inspect `examples/customer-auth` or `examples/sharepoint` before using it.',
252
252
  '- `state` defines durable widget state handles; handle schemas may use `.optional()`/`.default()` — defaulted fields are optional on write, so a save that omits them still validates. Add `claimOnAuthentication: true` only to an explicitly caller-scoped handle with a finite TTL when a mixed public assistant should atomically adopt that expiring draft on sign-in-ticket spend. `handoff` declares allowed external domains for safe host handoff.',
253
253
  ];
254
- export function renderSdkSurfaceReference() {
254
+ function renderSdkSurfaceReference() {
255
255
  const remaining = new Set(SDK_EXPORTS);
256
256
  const sections = [];
257
257
  for (const group of SDK_GROUPS) {
@@ -290,7 +290,7 @@ export function renderSdkSurfaceReference() {
290
290
  // ----------------------------------------------------------------------------
291
291
  // references/cli-commands.md (GENERATED from CLI_COMMANDS + curated groups)
292
292
  // ----------------------------------------------------------------------------
293
- export function renderCliCommandsReference() {
293
+ function renderCliCommandsReference() {
294
294
  const groupOrder = [...COMMAND_GROUP_ORDER, 'Other'];
295
295
  const byGroup = new Map();
296
296
  for (const name of CLI_COMMANDS) {
@@ -327,7 +327,7 @@ export function renderCliCommandsReference() {
327
327
  // ----------------------------------------------------------------------------
328
328
  // references/agent-contract.md (CURATED)
329
329
  // ----------------------------------------------------------------------------
330
- export function renderAgentContractReference() {
330
+ function renderAgentContractReference() {
331
331
  return [
332
332
  '# Agent contract: --json, exit codes, output modes',
333
333
  '',
@@ -378,7 +378,7 @@ export function renderAgentContractReference() {
378
378
  // ----------------------------------------------------------------------------
379
379
  // references/compile-errors.md (GENERATED codes + curated fixes)
380
380
  // ----------------------------------------------------------------------------
381
- export function renderCompileErrorsReference() {
381
+ function renderCompileErrorsReference() {
382
382
  const rows = COMPILE_ERROR_CODES.map((code) => [`\`${code}\``, ERROR_FIXES[code] ?? '—']);
383
383
  return [
384
384
  '# Fixing noodle validate errors',
@@ -3,7 +3,7 @@ import type { AgentTarget } from './index.js';
3
3
  export declare const SKILL_DESCRIPTION: string;
4
4
  export type SkillReferencePath = `references/${string}.md`;
5
5
  export declare const APP_DIRECTORY_COMPLIANCE_REFERENCE: SkillReferencePath;
6
- export type SkillRouteId = 'design-product' | 'create-product-guide' | 'wrap-existing-app' | 'build-server' | 'connect-api' | 'build-app' | 'verify-recover' | 'debug-recover' | 'inspect-hosted' | 'deploy-hosted' | 'embed-assistant' | 'publish' | 'feedback';
6
+ type SkillRouteId = 'design-product' | 'create-product-guide' | 'wrap-existing-app' | 'build-server' | 'connect-api' | 'build-app' | 'verify-recover' | 'debug-recover' | 'inspect-hosted' | 'deploy-hosted' | 'embed-assistant' | 'publish' | 'feedback';
7
7
  export interface SkillRoute {
8
8
  readonly id: SkillRouteId;
9
9
  readonly intent: string;
@@ -11,7 +11,6 @@ export interface SkillRoute {
11
11
  readonly exitCondition: string;
12
12
  }
13
13
  export declare const SKILL_ROUTES: readonly SkillRoute[];
14
- /** Complete lookup catalog. Routes above, not this inventory, own discovery. */
15
- export declare const REFERENCE_INDEX_LINES: readonly string[];
16
14
  export declare function skillRouterBody(_target: AgentTarget): string;
15
+ export {};
17
16
  //# sourceMappingURL=skill-router.d.ts.map
@@ -86,7 +86,7 @@ export const SKILL_ROUTES = [
86
86
  },
87
87
  ];
88
88
  /** Complete lookup catalog. Routes above, not this inventory, own discovery. */
89
- export const REFERENCE_INDEX_LINES = [
89
+ const REFERENCE_INDEX_LINES = [
90
90
  '- `references/agent-contract.md` — the `--json` envelope, exit codes, and the three output modes.',
91
91
  '- `references/product-agent-guides.md` — decide, interview, propose, prove, preview, and explicitly install one host-neutral product guide.',
92
92
  '- `references/sdk-surface.md` — what to import from `@noodleseed/one` and which builder to use.',
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noodle-borg/agent-kit",
3
- "version": "0.91.0",
3
+ "version": "0.93.0",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "engines": {
@@ -163,7 +163,7 @@ export function resolveHostPackageAssets(distribution, inputs, target) {
163
163
  issues,
164
164
  };
165
165
  }
166
- export function normalizeHostAssetPath(value) {
166
+ function normalizeHostAssetPath(value) {
167
167
  const normalized = value.replace(/\\/g, '/').replace(/^\.\/+/, '');
168
168
  return safeRelativePath(normalized) ? normalized : undefined;
169
169
  }
@@ -41,7 +41,8 @@ export function assistantBrowserConfiguration(server, boundSurface) {
41
41
  function surfaceOfMode(assistant, mode) {
42
42
  if (mode === undefined || !Array.isArray(assistant?.surfaces))
43
43
  return undefined;
44
- return assistant.surfaces.find((surface) => surface.mode === mode);
44
+ // A `mixed` surface mints `public` sessions (ADR 0220): it is the public binding's surface.
45
+ return assistant.surfaces.find((surface) => surface.mode === mode || (mode === 'public' && surface.mode === 'mixed'));
45
46
  }
46
47
  /** Resolve environment operator state above the immutable deployment projection. */
47
48
  export async function effectiveAssistantBrowserConfiguration(server, tenant, store, boundSurface) {
@@ -42,7 +42,7 @@
42
42
  "@noodle-borg/module-audit": "0.0.0",
43
43
  "@noodle-borg/protocol": "0.0.0",
44
44
  "@noodle-borg/runtime": "0.0.0",
45
- "@noodleseed/assistant": "1.31.0",
45
+ "@noodleseed/assistant": "1.33.0",
46
46
  "zod": "^4.4.3"
47
47
  },
48
48
  "devDependencies": {
@@ -134,7 +134,7 @@ export type AssistantModel = OpenAICompatibleModel | NoodleManagedModel;
134
134
  * `${user.claims.<key>}` in tool fulfilment; `exposeToModel: true` additionally places the value
135
135
  * in the assistant's identity system line so the model can use it directly.
136
136
  */
137
- export interface SessionClaimDeclaration {
137
+ interface SessionClaimDeclaration {
138
138
  readonly exposeToModel?: boolean;
139
139
  }
140
140
  /**
@@ -275,4 +275,5 @@ export declare function openAICompatible(input: OpenAICompatibleModelInput): Ope
275
275
  /** Use Noodle Seed Cloud's operator-selected model. Provider details never enter authored source. */
276
276
  export declare function noodleManaged(): NoodleManagedModel;
277
277
  export declare function embeddedAssistant(input: EmbeddedAssistantOptions): EmbeddedAssistantConfig;
278
+ export {};
278
279
  //# sourceMappingURL=assistant.d.ts.map
@@ -15,8 +15,6 @@ export type { ConnectionBinding, ConnectionRef, ConnectionSource, GoogleWorkload
15
15
  type ManifestV2ConnectorBinding = NonNullable<NonNullable<Extract<Manifest, {
16
16
  manifestVersion: '2';
17
17
  }>['connectors']>[string]['binding']>;
18
- /** Internal manifest projection: clone readonly author inputs to the mutable generated schema shape. */
19
- export declare function toManifestConnectionBinding(binding: ConnectionBinding): ManifestV2ConnectorBinding;
20
18
  export declare function toManifestConnectorRef(connector: ConnectorRef): {
21
19
  readonly id: string;
22
20
  readonly version: string;
@@ -25,7 +25,7 @@ export function bind(connector, options) {
25
25
  };
26
26
  }
27
27
  /** Internal manifest projection: clone readonly author inputs to the mutable generated schema shape. */
28
- export function toManifestConnectionBinding(binding) {
28
+ function toManifestConnectionBinding(binding) {
29
29
  const source = binding.connection.source;
30
30
  return {
31
31
  profile: binding.profile,
@@ -33,9 +33,9 @@ export function prepareAuthoringRuntimeDir(dir, options) {
33
33
  './react': './react.mjs',
34
34
  },
35
35
  }));
36
- writeFileSync(join(self, 'index.mjs'), "export { annotations, asset, authenticatedWebsite, bind, clientCredentials, connector, connection, customerAuth, customerEndpoint, embeddedAssistant, externalExchange, file, gmailConnector, googleWorkloadIdentity, handoffSession, knowledge, managedSecret, noodleManaged, openAICompatible, prompt, publicWebsite, resource, secret, server, site, tool, variable, when, z } from '@noodle-borg/authoring';\n");
36
+ writeFileSync(join(self, 'index.mjs'), "export { algolia, annotations, asset, authenticatedWebsite, bind, clientCredentials, connector, connection, customerAuth, customerEndpoint, embeddedAssistant, externalExchange, file, firecrawl, gmailConnector, googleWorkloadIdentity, handoffSession, knowledge, managedSecret, meilisearch, noodleManaged, openAICompatible, prompt, publicWebsite, resource, secret, server, site, tavily, tool, variable, when, z } from '@noodle-borg/authoring';\n");
37
37
  writeFileSync(join(self, 'platform.mjs'), "export { noodlePlatform, noodlePlatformCatalog } from '@noodle-borg/authoring';\n");
38
- writeFileSync(join(self, 'react.mjs'), "export { generateHelpers } from '@noodle-borg/authoring/react';\n");
38
+ writeFileSync(join(self, 'react.mjs'), "export * from '@noodle-borg/authoring/react';\n");
39
39
  }
40
40
  function pathExists(path) {
41
41
  try {
@@ -44,12 +44,12 @@ export type ModelContextUpdate = {
44
44
  }[];
45
45
  readonly structuredContent?: Readonly<Record<string, unknown>>;
46
46
  };
47
- export type RuntimeBrandAsset = {
47
+ type RuntimeBrandAsset = {
48
48
  readonly uri: string;
49
49
  readonly darkUri?: string;
50
50
  readonly alt: string;
51
51
  };
52
- export type RuntimeBrandTheme = {
52
+ type RuntimeBrandTheme = {
53
53
  readonly surface?: string;
54
54
  readonly surfaceRaised?: string;
55
55
  readonly surfaceMuted?: string;
@@ -108,4 +108,5 @@ export declare function globalViewState(): Record<string, unknown>;
108
108
  export declare function setGlobalViewState(value: Record<string, unknown>): void;
109
109
  export declare function globalLayout(): LayoutState;
110
110
  export declare function globalBranding(): RuntimeBranding;
111
+ export {};
111
112
  //# sourceMappingURL=bridge.d.ts.map
@@ -58,8 +58,6 @@ export type RadioGroupProps = Omit<HTMLAttributes<HTMLDivElement>, 'defaultValue
58
58
  readonly options: readonly RadioOption[];
59
59
  readonly value?: string;
60
60
  readonly defaultValue?: string;
61
- /** @deprecated Use `onValueChange`; retained for source compatibility. */
62
- readonly onChange?: (value: string) => void;
63
61
  readonly onValueChange?: (value: string) => void;
64
62
  /** Shared radio `name`; defaults to a stable generated id. */
65
63
  readonly name?: string;
@@ -71,8 +69,6 @@ export declare const RadioGroup: import("react").ForwardRefExoticComponent<Omit<
71
69
  readonly options: readonly RadioOption[];
72
70
  readonly value?: string;
73
71
  readonly defaultValue?: string;
74
- /** @deprecated Use `onValueChange`; retained for source compatibility. */
75
- readonly onChange?: (value: string) => void;
76
72
  readonly onValueChange?: (value: string) => void;
77
73
  /** Shared radio `name`; defaults to a stable generated id. */
78
74
  readonly name?: string;
@@ -101,8 +97,6 @@ export type SegmentedControlProps = Omit<HTMLAttributes<HTMLDivElement>, 'defaul
101
97
  readonly options: readonly SegmentedOption[];
102
98
  readonly value?: string;
103
99
  readonly defaultValue?: string;
104
- /** @deprecated Use `onValueChange`; retained for source compatibility. */
105
- readonly onChange?: (value: string) => void;
106
100
  readonly onValueChange?: (value: string) => void;
107
101
  readonly name?: string;
108
102
  readonly disabled?: boolean;
@@ -113,8 +107,6 @@ export declare const SegmentedControl: import("react").ForwardRefExoticComponent
113
107
  readonly options: readonly SegmentedOption[];
114
108
  readonly value?: string;
115
109
  readonly defaultValue?: string;
116
- /** @deprecated Use `onValueChange`; retained for source compatibility. */
117
- readonly onChange?: (value: string) => void;
118
110
  readonly onValueChange?: (value: string) => void;
119
111
  readonly name?: string;
120
112
  readonly disabled?: boolean;
@@ -152,7 +152,7 @@ export const Checkbox = forwardRef(function Checkbox({ label, className, onChang
152
152
  ? box
153
153
  : createElement('label', { className: 'nsr-check' }, box, createElement('span', null, label));
154
154
  });
155
- export const RadioGroup = forwardRef(function RadioGroup({ options, value, defaultValue, onChange, onValueChange, name, direction = 'column', disabled, required, className, ...props }, ref) {
155
+ export const RadioGroup = forwardRef(function RadioGroup({ options, value, defaultValue, onValueChange, name, direction = 'column', disabled, required, className, ...props }, ref) {
156
156
  const fallbackName = useId();
157
157
  const groupName = name ?? fallbackName;
158
158
  const field = useFieldControlProps({ ...props, required }, 'group');
@@ -174,7 +174,6 @@ export const RadioGroup = forwardRef(function RadioGroup({ options, value, defau
174
174
  required: field.required,
175
175
  disabled: disabled || option.disabled,
176
176
  onChange: () => {
177
- onChange?.(option.value);
178
177
  onValueChange?.(option.value);
179
178
  },
180
179
  }), createElement('span', null, option.label))));
@@ -208,7 +207,7 @@ export const Slider = forwardRef(function Slider({ className, ...props }, ref) {
208
207
  });
209
208
  });
210
209
  /** Single-select value picker implemented with native radios for keyboard and form behavior. */
211
- export const SegmentedControl = forwardRef(function SegmentedControl({ options, value, defaultValue, onChange, onValueChange, name, disabled, required, className, ...props }, ref) {
210
+ export const SegmentedControl = forwardRef(function SegmentedControl({ options, value, defaultValue, onValueChange, name, disabled, required, className, ...props }, ref) {
212
211
  const fallbackName = useId();
213
212
  const groupName = name ?? fallbackName;
214
213
  const field = useFieldControlProps({ ...props, required }, 'group');
@@ -234,7 +233,6 @@ export const SegmentedControl = forwardRef(function SegmentedControl({ options,
234
233
  required: field.required,
235
234
  disabled: disabled || option.disabled,
236
235
  onChange: () => {
237
- onChange?.(option.value);
238
236
  onValueChange?.(option.value);
239
237
  },
240
238
  }), createElement('span', { className: 'nsr-segmented-label' }, option.label))));
@@ -1,7 +1,7 @@
1
1
  import { type AppFlow, type AppFlowConfig } from './app-flow.js';
2
2
  import { type DisplayMode, type LayoutState, type ModelContextUpdate, type NoodleReactBridge, type RuntimeBranding, type ToolResult } from './bridge.js';
3
3
  import { type HandoffController } from './handoff.js';
4
- import { createViewStore, type StoreHookResult } from './store.js';
4
+ import { createViewStore } from './store.js';
5
5
  export type ToolStatus = 'idle' | 'pending' | 'success' | 'error';
6
6
  export type CallToolState = {
7
7
  readonly status: ToolStatus;
@@ -54,5 +54,5 @@ export declare function useSendFollowUpMessage(): (message: {
54
54
  export declare function useUpdateModelContext(): (update: ModelContextUpdate) => Promise<void>;
55
55
  /** Publish a portable, structured widget lifecycle summary through the standard model-context path. */
56
56
  export declare function useWidgetLifecycle(widgetName: string): (lifecycle: 'mounted' | 'submitted' | 'cancelled' | 'dismissed', summary?: Readonly<Record<string, unknown>>) => Promise<void>;
57
- export type { DisplayMode, LayoutState, ModelContextUpdate, NoodleReactBridge, RuntimeBranding, StoreHookResult, ToolResult, };
57
+ export type { DisplayMode, LayoutState, ModelContextUpdate, NoodleReactBridge, RuntimeBranding, ToolResult, };
58
58
  //# sourceMappingURL=hooks.d.ts.map
@@ -26,6 +26,11 @@ const JSON_FLAG = {
26
26
  type: 'boolean',
27
27
  summary: 'Emit JSON output.',
28
28
  };
29
+ const REQUIRED_STRING_FLAG = {
30
+ ...OPTIONAL_FLAG,
31
+ type: 'string',
32
+ required: true,
33
+ };
29
34
  const CAPABILITY_NAMES = [
30
35
  'identity',
31
36
  'access',
@@ -190,6 +195,97 @@ export const CATALOG_ACCOUNT = [
190
195
  ],
191
196
  jsonOutput: { mode: 'single' },
192
197
  },
198
+ {
199
+ name: 'app-purge',
200
+ summary: 'Reconcile historical app anchors after an already-recorded retention purge.',
201
+ arguments: [],
202
+ flags: [],
203
+ subcommands: [
204
+ {
205
+ name: 'preview',
206
+ summary: 'Write a bounded exact-set reconciliation preview artifact.',
207
+ arguments: [],
208
+ flags: [
209
+ {
210
+ ...REQUIRED_STRING_FLAG,
211
+ name: 'output',
212
+ value: '<absolute-path>',
213
+ summary: 'New absolute path for the exclusive 0600 preview artifact.',
214
+ sensitive: false,
215
+ },
216
+ SERVICE,
217
+ AUTH_TOKEN,
218
+ JSON_FLAG,
219
+ ],
220
+ jsonOutput: { mode: 'single' },
221
+ },
222
+ {
223
+ name: 'apply',
224
+ summary: 'Apply one approved exact preview with recovery and approval evidence.',
225
+ arguments: [],
226
+ flags: [
227
+ {
228
+ ...REQUIRED_STRING_FLAG,
229
+ name: 'approved-preview',
230
+ value: '<absolute-path>',
231
+ summary: 'Absolute path to the approved exact 0600 preview artifact.',
232
+ sensitive: true,
233
+ },
234
+ {
235
+ ...REQUIRED_STRING_FLAG,
236
+ name: 'release-sha',
237
+ value: '<sha>',
238
+ summary: 'Exact deployed System Release SHA.',
239
+ sensitive: false,
240
+ constraints: { minLength: 40, maxLength: 40 },
241
+ },
242
+ {
243
+ ...REQUIRED_STRING_FLAG,
244
+ name: 'approval-reference',
245
+ value: '<reference>',
246
+ summary: 'Restricted founder or product-owner approval reference.',
247
+ sensitive: true,
248
+ constraints: { minLength: 1, maxLength: 256 },
249
+ },
250
+ {
251
+ ...REQUIRED_STRING_FLAG,
252
+ name: 'recovery-checkpoint',
253
+ value: '<reference>',
254
+ summary: 'Verified backup or point-in-time recovery checkpoint reference.',
255
+ sensitive: true,
256
+ constraints: { minLength: 1, maxLength: 256 },
257
+ },
258
+ {
259
+ ...REQUIRED_STRING_FLAG,
260
+ name: 'reason',
261
+ value: '<reason>',
262
+ summary: 'Bounded reconciliation reason.',
263
+ sensitive: true,
264
+ constraints: { minLength: 1, maxLength: 500 },
265
+ },
266
+ {
267
+ ...REQUIRED_STRING_FLAG,
268
+ name: 'idempotency-key',
269
+ value: '<key>',
270
+ summary: 'Private key for exact replay.',
271
+ sensitive: true,
272
+ constraints: { minLength: 8, maxLength: 256 },
273
+ },
274
+ {
275
+ ...OPTIONAL_FLAG,
276
+ name: 'yes',
277
+ type: 'boolean',
278
+ summary: 'Confirm the approved destructive operation.',
279
+ required: true,
280
+ },
281
+ SERVICE,
282
+ AUTH_TOKEN,
283
+ JSON_FLAG,
284
+ ],
285
+ jsonOutput: { mode: 'single' },
286
+ },
287
+ ],
288
+ },
193
289
  ],
194
290
  },
195
291
  {
@@ -62,6 +62,75 @@ const IDEMPOTENCY_FLAG = flag({
62
62
  required: true,
63
63
  sensitive: true,
64
64
  });
65
+ const TRANSFER_ACCOUNT_FLAG = flag({
66
+ ...FLAG_FIELDS,
67
+ name: 'account',
68
+ type: 'string',
69
+ value: '<destination-id>',
70
+ summary: 'Destination billing account identifier.',
71
+ required: true,
72
+ });
73
+ const TRANSFER_ORG_FLAG = flag({
74
+ ...FLAG_FIELDS,
75
+ name: 'org',
76
+ type: 'string',
77
+ value: '<org>',
78
+ summary: 'Organization slug to transfer.',
79
+ required: true,
80
+ });
81
+ const TRANSFER_QUERY_FLAG = flag({
82
+ ...FLAG_FIELDS,
83
+ name: 'query',
84
+ type: 'string',
85
+ value: '<text>',
86
+ summary: 'Filter owned organizations by name or slug.',
87
+ constraints: { minLength: 1, maxLength: 100 },
88
+ });
89
+ const TRANSFER_CURSOR_FLAG = flag({
90
+ ...FLAG_FIELDS,
91
+ name: 'cursor',
92
+ type: 'string',
93
+ value: '<cursor>',
94
+ summary: 'Opaque continuation cursor.',
95
+ constraints: { maxLength: 512 },
96
+ });
97
+ const TRANSFER_LIMIT_FLAG = flag({
98
+ ...FLAG_FIELDS,
99
+ name: 'limit',
100
+ type: 'integer',
101
+ value: '<n>',
102
+ summary: 'Maximum organization candidates returned.',
103
+ constraints: { default: 50, minimum: 1, maximum: 100 },
104
+ });
105
+ const TRANSFER_OUT_FLAG = flag({
106
+ ...FLAG_FIELDS,
107
+ name: 'out',
108
+ type: 'string',
109
+ value: '<reviewed-preview.json>',
110
+ summary: 'New private path for the reviewed preview artifact.',
111
+ required: true,
112
+ sensitive: true,
113
+ });
114
+ const TRANSFER_PREVIEW_FILE_FLAG = flag({
115
+ ...FLAG_FIELDS,
116
+ name: 'preview-file',
117
+ type: 'string',
118
+ value: '<reviewed-preview.json>',
119
+ summary: 'Private reviewed billing transfer preview artifact.',
120
+ required: true,
121
+ sensitive: true,
122
+ });
123
+ const TRANSFER_IDEMPOTENCY_FLAG = flag({
124
+ ...IDEMPOTENCY_FLAG,
125
+ constraints: { minLength: 8, maxLength: 256 },
126
+ });
127
+ const TRANSFER_YES_FLAG = flag({ ...YES_FLAG, required: true });
128
+ const TRANSFER_ADMIN_REASON_FLAG = flag({
129
+ ...REASON_FLAG,
130
+ summary: 'Restricted administrative reason recorded with the transfer.',
131
+ sensitive: true,
132
+ constraints: { minLength: 1, maxLength: 256 },
133
+ });
65
134
  function leaf(name, summary, options) {
66
135
  return subcommand({
67
136
  ...SUBCOMMAND_FIELDS,
@@ -281,6 +350,50 @@ const MIGRATION = branch('migration', 'Run the super-admin-only legacy shadow-mi
281
350
  ],
282
351
  }),
283
352
  ]);
353
+ const CUSTOMER_TRANSFER = branch('transfer', 'Move an owned organization to an eligible billing account.', [
354
+ leaf('candidates', 'List owned organizations with billing transfer status and eligibility.', {
355
+ ...LEAF_FIELDS,
356
+ flags: [
357
+ TRANSFER_ACCOUNT_FLAG,
358
+ TRANSFER_QUERY_FLAG,
359
+ TRANSFER_CURSOR_FLAG,
360
+ TRANSFER_LIMIT_FLAG,
361
+ ],
362
+ }),
363
+ leaf('preview', 'Preview an exact customer billing transfer without changing state.', {
364
+ arguments: [
365
+ argument({
366
+ ...ARGUMENT_FIELDS,
367
+ name: 'org-slug',
368
+ type: 'string',
369
+ summary: 'Owned organization slug to transfer.',
370
+ required: true,
371
+ }),
372
+ ],
373
+ flags: [TRANSFER_ACCOUNT_FLAG, TRANSFER_OUT_FLAG],
374
+ }),
375
+ leaf('apply', 'Apply an exact reviewed customer billing transfer.', {
376
+ ...LEAF_FIELDS,
377
+ flags: [TRANSFER_PREVIEW_FILE_FLAG, TRANSFER_IDEMPOTENCY_FLAG, TRANSFER_YES_FLAG],
378
+ }),
379
+ ]);
380
+ const ADMINISTRATION = branch('administration', 'Perform restricted super-admin billing operations on behalf of users.', [
381
+ branch('transfer', 'Move organization billing with explicit super-admin authority.', [
382
+ leaf('preview', 'Preview an exact administrative billing transfer.', {
383
+ ...LEAF_FIELDS,
384
+ flags: [
385
+ TRANSFER_ORG_FLAG,
386
+ TRANSFER_ACCOUNT_FLAG,
387
+ TRANSFER_ADMIN_REASON_FLAG,
388
+ TRANSFER_OUT_FLAG,
389
+ ],
390
+ }),
391
+ leaf('apply', 'Apply an exact reviewed administrative billing transfer.', {
392
+ ...LEAF_FIELDS,
393
+ flags: [TRANSFER_PREVIEW_FILE_FLAG, TRANSFER_IDEMPOTENCY_FLAG, TRANSFER_YES_FLAG],
394
+ }),
395
+ ]),
396
+ ]);
284
397
  export const BILLING_COMMAND = {
285
398
  name: 'billing',
286
399
  section: 'operate',
@@ -289,7 +402,7 @@ export const BILLING_COMMAND = {
289
402
  arguments: [],
290
403
  subcommands: [
291
404
  ACCOUNTS,
292
- branch('org', 'Inspect an organization’s effective billing entitlements.', [
405
+ branch('org', 'Inspect or transfer an organization’s effective billing.', [
293
406
  leaf('inspect', 'Inspect effective billing entitlements for one organization.', {
294
407
  ...LEAF_FIELDS,
295
408
  arguments: [
@@ -302,7 +415,9 @@ export const BILLING_COMMAND = {
302
415
  }),
303
416
  ],
304
417
  }),
418
+ CUSTOMER_TRANSFER,
305
419
  ]),
420
+ ADMINISTRATION,
306
421
  ENFORCEMENT,
307
422
  METERING,
308
423
  MIGRATION,
@@ -74,8 +74,8 @@ export interface WidgetUiMeta {
74
74
  */
75
75
  readonly visibility?: readonly ('model' | 'app')[];
76
76
  }
77
- export type WidgetPermissionGrant = Readonly<Record<string, never>>;
78
- export interface WidgetPermissions {
77
+ type WidgetPermissionGrant = Readonly<Record<string, never>>;
78
+ interface WidgetPermissions {
79
79
  readonly camera?: WidgetPermissionGrant;
80
80
  readonly microphone?: WidgetPermissionGrant;
81
81
  readonly geolocation?: WidgetPermissionGrant;
@@ -165,14 +165,14 @@ export interface ArtifactServerContext {
165
165
  readonly fulfilment: ArtifactFulfilment;
166
166
  };
167
167
  }
168
- export interface ArtifactOidcAuth {
168
+ interface ArtifactOidcAuth {
169
169
  readonly kind?: 'oidc' | undefined;
170
170
  readonly issuer: string;
171
171
  readonly audience: string;
172
172
  readonly claims?: ArtifactAuthClaimMap | undefined;
173
173
  readonly routing?: ArtifactCustomerAuthRouting | undefined;
174
174
  }
175
- export interface ArtifactFederatedOidcAuth {
175
+ interface ArtifactFederatedOidcAuth {
176
176
  readonly kind: 'federatedOidc';
177
177
  readonly issuers: readonly {
178
178
  readonly issuer: string;
@@ -186,7 +186,7 @@ export interface ArtifactCustomerAuthRouting {
186
186
  readonly claim: string;
187
187
  }>>;
188
188
  }
189
- export interface ArtifactBridgeAuth {
189
+ interface ArtifactBridgeAuth {
190
190
  readonly kind: 'bridge';
191
191
  readonly provider: string;
192
192
  readonly verifyUrl?: string | undefined;
@@ -204,8 +204,8 @@ export interface ArtifactBridgeAuth {
204
204
  readonly authMethod?: 'client_secret_basic' | 'client_secret_post' | undefined;
205
205
  readonly user?: ArtifactAuthClaimMap | undefined;
206
206
  }
207
- export type ArtifactAuth = ArtifactOidcAuth | ArtifactFederatedOidcAuth | ArtifactBridgeAuth;
208
- export interface ArtifactAuthClaimMap {
207
+ type ArtifactAuth = ArtifactOidcAuth | ArtifactFederatedOidcAuth | ArtifactBridgeAuth;
208
+ interface ArtifactAuthClaimMap {
209
209
  readonly id?: string | undefined;
210
210
  readonly email?: string | undefined;
211
211
  readonly name?: string | undefined;
@@ -285,7 +285,7 @@ export interface ArtifactServer {
285
285
  };
286
286
  readonly state?: ArtifactState;
287
287
  }
288
- export interface ArtifactBrandTheme {
288
+ interface ArtifactBrandTheme {
289
289
  readonly surface?: string | undefined;
290
290
  readonly surfaceRaised?: string | undefined;
291
291
  readonly surfaceMuted?: string | undefined;
@@ -302,19 +302,19 @@ export interface ArtifactBrandTheme {
302
302
  readonly danger?: string | undefined;
303
303
  readonly code?: string | undefined;
304
304
  }
305
- export interface ArtifactSource {
305
+ interface ArtifactSource {
306
306
  readonly manifestName: string;
307
307
  /** Application version retained for artifact compatibility. */
308
308
  readonly manifestVersion: string;
309
309
  /** Core manifest language version that produced this internal artifact. */
310
310
  readonly coreVersion?: '1' | '2';
311
311
  }
312
- export interface ArtifactCapabilities {
312
+ interface ArtifactCapabilities {
313
313
  readonly tools: readonly string[];
314
314
  readonly resources?: readonly string[];
315
315
  readonly prompts?: readonly string[];
316
316
  }
317
- export interface ArtifactRequirements {
317
+ interface ArtifactRequirements {
318
318
  readonly capabilities?: readonly CapabilityRequirementName[];
319
319
  }
320
320
  export type ArtifactConnectionSource = {
@@ -1,7 +1,6 @@
1
1
  import { type HostedAssetOptions, type LocalAssetOptions } from './assets.js';
2
2
  import type { ConnectorCatalog } from './catalog/types.js';
3
3
  import type { CompileError, CompileResult } from './errors.js';
4
- export type { StructuralTool } from './artifact/catalog-emission.js';
5
4
  export interface CompileOptions {
6
5
  /**
7
6
  * Connector catalog used to resolve operation references. When supplied, the compiler resolves
@@ -14,7 +14,7 @@ export interface StructOp {
14
14
  * A structurally-validated flow step with parsed expressions; connector refs resolve later. The Core v1
15
15
  * verb set is `operation` + `map` + portable `elicit`; `compute` remains reserved (ADR 0150).
16
16
  */
17
- export type StructStep = {
17
+ type StructStep = {
18
18
  readonly id: string;
19
19
  readonly kind: 'operation';
20
20
  readonly cond?: CondNode;