@noodleseed/one 0.46.0 → 0.48.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 (334) hide show
  1. package/dist/commands/assistant-ops.d.ts.map +1 -1
  2. package/dist/commands/assistant-ops.js +65 -1
  3. package/dist/commands/assistant-ops.js.map +1 -1
  4. package/dist/commands/auth-ops.d.ts.map +1 -1
  5. package/dist/commands/auth-ops.js +28 -4
  6. package/dist/commands/auth-ops.js.map +1 -1
  7. package/dist/commands/billing-enforcement-ops.d.ts +2 -0
  8. package/dist/commands/billing-enforcement-ops.d.ts.map +1 -0
  9. package/dist/commands/billing-enforcement-ops.js +312 -0
  10. package/dist/commands/billing-enforcement-ops.js.map +1 -0
  11. package/dist/commands/billing-metering-ops.d.ts +2 -0
  12. package/dist/commands/billing-metering-ops.d.ts.map +1 -0
  13. package/dist/commands/billing-metering-ops.js +128 -0
  14. package/dist/commands/billing-metering-ops.js.map +1 -0
  15. package/dist/commands/billing-metering-validation-ops.d.ts +2 -0
  16. package/dist/commands/billing-metering-validation-ops.d.ts.map +1 -0
  17. package/dist/commands/billing-metering-validation-ops.js +186 -0
  18. package/dist/commands/billing-metering-validation-ops.js.map +1 -0
  19. package/dist/commands/billing-ops.d.ts.map +1 -1
  20. package/dist/commands/billing-ops.js +6 -0
  21. package/dist/commands/billing-ops.js.map +1 -1
  22. package/dist/commands/catalog-data-resources.d.ts.map +1 -1
  23. package/dist/commands/catalog-data-resources.js +25 -4
  24. package/dist/commands/catalog-data-resources.js.map +1 -1
  25. package/dist/commands/catalog-render.d.ts.map +1 -1
  26. package/dist/commands/catalog-render.js +7 -5
  27. package/dist/commands/catalog-render.js.map +1 -1
  28. package/dist/commands/deploy-ops.d.ts.map +1 -1
  29. package/dist/commands/deploy-ops.js +10 -1
  30. package/dist/commands/deploy-ops.js.map +1 -1
  31. package/dist/commands/deploy-output.d.ts.map +1 -1
  32. package/dist/commands/deploy-output.js +4 -0
  33. package/dist/commands/deploy-output.js.map +1 -1
  34. package/dist/commands/deploy-version-resolution.d.ts +1 -0
  35. package/dist/commands/deploy-version-resolution.d.ts.map +1 -1
  36. package/dist/commands/deploy-version-resolution.js +8 -0
  37. package/dist/commands/deploy-version-resolution.js.map +1 -1
  38. package/dist/commands/mcp-apps-chatgpt.d.ts +7 -0
  39. package/dist/commands/mcp-apps-chatgpt.d.ts.map +1 -0
  40. package/dist/commands/mcp-apps-chatgpt.js +143 -0
  41. package/dist/commands/mcp-apps-chatgpt.js.map +1 -0
  42. package/dist/commands/mcp-apps.d.ts.map +1 -1
  43. package/dist/commands/mcp-apps.js +2 -114
  44. package/dist/commands/mcp-apps.js.map +1 -1
  45. package/dist/deploy-payload-size.d.ts +3 -0
  46. package/dist/deploy-payload-size.d.ts.map +1 -0
  47. package/dist/deploy-payload-size.js +29 -0
  48. package/dist/deploy-payload-size.js.map +1 -0
  49. package/dist/deploy.d.ts.map +1 -1
  50. package/dist/deploy.js +19 -8
  51. package/dist/deploy.js.map +1 -1
  52. package/dist/sdk-version-skew.d.ts +3 -0
  53. package/dist/sdk-version-skew.d.ts.map +1 -0
  54. package/dist/sdk-version-skew.js +34 -0
  55. package/dist/sdk-version-skew.js.map +1 -0
  56. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +3 -3
  57. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
  58. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +1 -1
  59. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
  60. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +1 -1
  61. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
  62. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.d.ts.map +1 -1
  63. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js +10 -2
  64. package/node_modules/@noodle-borg/agent-kit/dist/skill-embedded-assistant-ref.js.map +1 -1
  65. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  66. package/node_modules/@noodle-borg/authoring/dist/server.d.ts +5 -0
  67. package/node_modules/@noodle-borg/authoring/dist/server.d.ts.map +1 -1
  68. package/node_modules/@noodle-borg/authoring/dist/server.js +1 -0
  69. package/node_modules/@noodle-borg/authoring/dist/server.js.map +1 -1
  70. package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +7 -1
  71. package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts.map +1 -1
  72. package/node_modules/@noodle-borg/compiler/dist/artifact/types.js +4 -1
  73. package/node_modules/@noodle-borg/compiler/dist/artifact/types.js.map +1 -1
  74. package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
  75. package/node_modules/@noodle-borg/compiler/dist/compile.js +3 -0
  76. package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
  77. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +12 -0
  78. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
  79. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +7 -0
  80. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
  81. package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts.map +1 -1
  82. package/node_modules/@noodle-borg/protocol/dist/mapping.js +40 -1
  83. package/node_modules/@noodle-borg/protocol/dist/mapping.js.map +1 -1
  84. package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts.map +1 -1
  85. package/node_modules/@noodle-borg/protocol/dist/sdk-server.js +109 -1
  86. package/node_modules/@noodle-borg/protocol/dist/sdk-server.js.map +1 -1
  87. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.d.ts +10 -3
  88. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.d.ts.map +1 -1
  89. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.js +69 -5
  90. package/node_modules/@noodle-borg/protocol/dist/tool-interaction.js.map +1 -1
  91. package/node_modules/@noodle-borg/protocol/dist/widget/action-wiring-bootstrap.d.ts +3 -0
  92. package/node_modules/@noodle-borg/protocol/dist/widget/action-wiring-bootstrap.d.ts.map +1 -0
  93. package/node_modules/@noodle-borg/protocol/dist/widget/action-wiring-bootstrap.js +17 -0
  94. package/node_modules/@noodle-borg/protocol/dist/widget/action-wiring-bootstrap.js.map +1 -0
  95. package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.d.ts.map +1 -1
  96. package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.js +8 -16
  97. package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.js.map +1 -1
  98. package/node_modules/@noodle-borg/protocol/dist/widget/interaction-bootstrap.d.ts +3 -0
  99. package/node_modules/@noodle-borg/protocol/dist/widget/interaction-bootstrap.d.ts.map +1 -0
  100. package/node_modules/@noodle-borg/protocol/dist/widget/interaction-bootstrap.js +177 -0
  101. package/node_modules/@noodle-borg/protocol/dist/widget/interaction-bootstrap.js.map +1 -0
  102. package/node_modules/@noodle-borg/service/dist/billing/enforcement-profile.d.ts +96 -0
  103. package/node_modules/@noodle-borg/service/dist/billing/enforcement-profile.d.ts.map +1 -0
  104. package/node_modules/@noodle-borg/service/dist/billing/enforcement-profile.js +198 -0
  105. package/node_modules/@noodle-borg/service/dist/billing/enforcement-profile.js.map +1 -0
  106. package/node_modules/@noodle-borg/service/dist/billing/integration.d.ts +25 -2
  107. package/node_modules/@noodle-borg/service/dist/billing/integration.d.ts.map +1 -1
  108. package/node_modules/@noodle-borg/service/dist/billing/integration.js +51 -5
  109. package/node_modules/@noodle-borg/service/dist/billing/integration.js.map +1 -1
  110. package/node_modules/@noodle-borg/service/dist/billing/meter-capacity.d.ts +77 -0
  111. package/node_modules/@noodle-borg/service/dist/billing/meter-capacity.d.ts.map +1 -0
  112. package/node_modules/@noodle-borg/service/dist/billing/meter-capacity.js +202 -0
  113. package/node_modules/@noodle-borg/service/dist/billing/meter-capacity.js.map +1 -0
  114. package/node_modules/@noodle-borg/service/dist/billing/meter-live-validation-contract.d.ts +8 -0
  115. package/node_modules/@noodle-borg/service/dist/billing/meter-live-validation-contract.d.ts.map +1 -0
  116. package/node_modules/@noodle-borg/service/dist/billing/meter-live-validation-contract.js +93 -0
  117. package/node_modules/@noodle-borg/service/dist/billing/meter-live-validation-contract.js.map +1 -0
  118. package/node_modules/@noodle-borg/service/dist/billing/meter-live-validation.d.ts +76 -0
  119. package/node_modules/@noodle-borg/service/dist/billing/meter-live-validation.d.ts.map +1 -0
  120. package/node_modules/@noodle-borg/service/dist/billing/meter-live-validation.js +233 -0
  121. package/node_modules/@noodle-borg/service/dist/billing/meter-live-validation.js.map +1 -0
  122. package/node_modules/@noodle-borg/service/dist/billing/meter-readiness-health.d.ts +89 -0
  123. package/node_modules/@noodle-borg/service/dist/billing/meter-readiness-health.d.ts.map +1 -0
  124. package/node_modules/@noodle-borg/service/dist/billing/meter-readiness-health.js +191 -0
  125. package/node_modules/@noodle-borg/service/dist/billing/meter-readiness-health.js.map +1 -0
  126. package/node_modules/@noodle-borg/service/dist/billing/meter-readiness.d.ts +99 -0
  127. package/node_modules/@noodle-borg/service/dist/billing/meter-readiness.d.ts.map +1 -0
  128. package/node_modules/@noodle-borg/service/dist/billing/meter-readiness.js +136 -0
  129. package/node_modules/@noodle-borg/service/dist/billing/meter-readiness.js.map +1 -0
  130. package/node_modules/@noodle-borg/service/dist/billing/meter-runtime-config.d.ts +9 -0
  131. package/node_modules/@noodle-borg/service/dist/billing/meter-runtime-config.d.ts.map +1 -0
  132. package/node_modules/@noodle-borg/service/dist/billing/meter-runtime-config.js +24 -0
  133. package/node_modules/@noodle-borg/service/dist/billing/meter-runtime-config.js.map +1 -0
  134. package/node_modules/@noodle-borg/service/dist/billing/meter-validation-epoch.d.ts +75 -0
  135. package/node_modules/@noodle-borg/service/dist/billing/meter-validation-epoch.d.ts.map +1 -0
  136. package/node_modules/@noodle-borg/service/dist/billing/meter-validation-epoch.js +127 -0
  137. package/node_modules/@noodle-borg/service/dist/billing/meter-validation-epoch.js.map +1 -0
  138. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile-schema.d.ts +4 -0
  139. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile-schema.d.ts.map +1 -0
  140. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile-schema.js +107 -0
  141. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile-schema.js.map +1 -0
  142. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile.d.ts +18 -0
  143. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile.d.ts.map +1 -0
  144. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile.js +341 -0
  145. package/node_modules/@noodle-borg/service/dist/billing/postgres-enforcement-profile.js.map +1 -0
  146. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-clock.d.ts +3 -0
  147. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-clock.d.ts.map +1 -0
  148. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-clock.js +9 -0
  149. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-clock.js.map +1 -0
  150. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epoch-fixtures.d.ts +13 -0
  151. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epoch-fixtures.d.ts.map +1 -0
  152. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epoch-fixtures.js +102 -0
  153. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epoch-fixtures.js.map +1 -0
  154. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epochs.d.ts +41 -0
  155. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epochs.d.ts.map +1 -0
  156. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epochs.js +289 -0
  157. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-epochs.js.map +1 -0
  158. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-evidence-retention.d.ts +16 -0
  159. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-evidence-retention.d.ts.map +1 -0
  160. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-evidence-retention.js +126 -0
  161. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-evidence-retention.js.map +1 -0
  162. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-live-validation.d.ts +33 -0
  163. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-live-validation.d.ts.map +1 -0
  164. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-live-validation.js +436 -0
  165. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-live-validation.js.map +1 -0
  166. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-maintenance.d.ts +26 -0
  167. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-maintenance.d.ts.map +1 -0
  168. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-maintenance.js +146 -0
  169. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-maintenance.js.map +1 -0
  170. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-partition.d.ts +8 -0
  171. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-partition.d.ts.map +1 -0
  172. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-partition.js +42 -0
  173. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-partition.js.map +1 -0
  174. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-prepare-preflight.d.ts +8 -0
  175. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-prepare-preflight.d.ts.map +1 -0
  176. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-prepare-preflight.js +44 -0
  177. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-prepare-preflight.js.map +1 -0
  178. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness-live.d.ts +13 -0
  179. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness-live.d.ts.map +1 -0
  180. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness-live.js +189 -0
  181. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness-live.js.map +1 -0
  182. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness.d.ts +18 -0
  183. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness.d.ts.map +1 -0
  184. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness.js +342 -0
  185. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-readiness.js.map +1 -0
  186. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-reconciliation.d.ts +27 -0
  187. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-reconciliation.d.ts.map +1 -0
  188. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-reconciliation.js +304 -0
  189. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-reconciliation.js.map +1 -0
  190. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-retention.d.ts +22 -0
  191. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-retention.d.ts.map +1 -0
  192. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-retention.js +224 -0
  193. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-retention.js.map +1 -0
  194. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-runtime.d.ts +33 -0
  195. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-runtime.d.ts.map +1 -0
  196. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-runtime.js +173 -0
  197. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-runtime.js.map +1 -0
  198. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-schema.d.ts +7 -0
  199. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-schema.d.ts.map +1 -0
  200. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-schema.js +50 -0
  201. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-schema.js.map +1 -0
  202. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-store.d.ts +34 -0
  203. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-store.d.ts.map +1 -0
  204. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-store.js +157 -0
  205. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler-store.js.map +1 -0
  206. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler.d.ts +56 -0
  207. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler.d.ts.map +1 -0
  208. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler.js +264 -0
  209. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-scheduler.js.map +1 -0
  210. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.d.ts +6 -0
  211. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.d.ts.map +1 -0
  212. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.js +414 -0
  213. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-schema.js.map +1 -0
  214. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-validation.d.ts +43 -0
  215. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-validation.d.ts.map +1 -0
  216. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-validation.js +321 -0
  217. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-validation.js.map +1 -0
  218. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-window-lock.d.ts +10 -0
  219. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-window-lock.d.ts.map +1 -0
  220. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-window-lock.js +13 -0
  221. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-window-lock.js.map +1 -0
  222. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-window-schema.d.ts +6 -0
  223. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-window-schema.d.ts.map +1 -0
  224. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-window-schema.js +248 -0
  225. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-window-schema.js.map +1 -0
  226. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-writer-compaction.d.ts +29 -0
  227. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-writer-compaction.d.ts.map +1 -0
  228. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-writer-compaction.js +240 -0
  229. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-writer-compaction.js.map +1 -0
  230. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-writer-health-schema.d.ts +4 -0
  231. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-writer-health-schema.d.ts.map +1 -0
  232. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-writer-health-schema.js +140 -0
  233. package/node_modules/@noodle-borg/service/dist/billing/postgres-meter-writer-health-schema.js.map +1 -0
  234. package/node_modules/@noodle-borg/service/dist/billing/postgres-migration.d.ts.map +1 -1
  235. package/node_modules/@noodle-borg/service/dist/billing/postgres-migration.js +4 -0
  236. package/node_modules/@noodle-borg/service/dist/billing/postgres-migration.js.map +1 -1
  237. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.d.ts.map +1 -1
  238. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js +6 -0
  239. package/node_modules/@noodle-borg/service/dist/billing/postgres-schema.js.map +1 -1
  240. package/node_modules/@noodle-borg/service/dist/billing/postgres.d.ts.map +1 -1
  241. package/node_modules/@noodle-borg/service/dist/billing/postgres.js +3 -0
  242. package/node_modules/@noodle-borg/service/dist/billing/postgres.js.map +1 -1
  243. package/node_modules/@noodle-borg/service/dist/billing/service-meter-runtime.d.ts +7 -0
  244. package/node_modules/@noodle-borg/service/dist/billing/service-meter-runtime.d.ts.map +1 -0
  245. package/node_modules/@noodle-borg/service/dist/billing/service-meter-runtime.js +19 -0
  246. package/node_modules/@noodle-borg/service/dist/billing/service-meter-runtime.js.map +1 -0
  247. package/node_modules/@noodle-borg/service/dist/billing/shadow-meter.d.ts +9 -4
  248. package/node_modules/@noodle-borg/service/dist/billing/shadow-meter.d.ts.map +1 -1
  249. package/node_modules/@noodle-borg/service/dist/billing/shadow-meter.js +34 -95
  250. package/node_modules/@noodle-borg/service/dist/billing/shadow-meter.js.map +1 -1
  251. package/node_modules/@noodle-borg/service/dist/billing/usage-identity.d.ts +14 -0
  252. package/node_modules/@noodle-borg/service/dist/billing/usage-identity.d.ts.map +1 -0
  253. package/node_modules/@noodle-borg/service/dist/billing/usage-identity.js +87 -0
  254. package/node_modules/@noodle-borg/service/dist/billing/usage-identity.js.map +1 -0
  255. package/node_modules/@noodle-borg/service/dist/billing/usage-observer.d.ts +6 -0
  256. package/node_modules/@noodle-borg/service/dist/billing/usage-observer.d.ts.map +1 -0
  257. package/node_modules/@noodle-borg/service/dist/billing/usage-observer.js +26 -0
  258. package/node_modules/@noodle-borg/service/dist/billing/usage-observer.js.map +1 -0
  259. package/node_modules/@noodle-borg/service/dist/billing-public.d.ts +16 -0
  260. package/node_modules/@noodle-borg/service/dist/billing-public.d.ts.map +1 -0
  261. package/node_modules/@noodle-borg/service/dist/billing-public.js +15 -0
  262. package/node_modules/@noodle-borg/service/dist/billing-public.js.map +1 -0
  263. package/node_modules/@noodle-borg/service/dist/customer-verifier.d.ts +1 -0
  264. package/node_modules/@noodle-borg/service/dist/customer-verifier.d.ts.map +1 -1
  265. package/node_modules/@noodle-borg/service/dist/customer-verifier.js +15 -0
  266. package/node_modules/@noodle-borg/service/dist/customer-verifier.js.map +1 -1
  267. package/node_modules/@noodle-borg/service/dist/http-util.d.ts +13 -0
  268. package/node_modules/@noodle-borg/service/dist/http-util.d.ts.map +1 -1
  269. package/node_modules/@noodle-borg/service/dist/http-util.js +42 -2
  270. package/node_modules/@noodle-borg/service/dist/http-util.js.map +1 -1
  271. package/node_modules/@noodle-borg/service/dist/index.d.ts +2 -7
  272. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  273. package/node_modules/@noodle-borg/service/dist/index.js +1 -6
  274. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  275. package/node_modules/@noodle-borg/service/dist/main.js +3 -0
  276. package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
  277. package/node_modules/@noodle-borg/service/dist/options.d.ts +18 -0
  278. package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
  279. package/node_modules/@noodle-borg/service/dist/persistence-options.d.ts +4 -0
  280. package/node_modules/@noodle-borg/service/dist/persistence-options.d.ts.map +1 -0
  281. package/node_modules/@noodle-borg/service/dist/persistence-options.js +22 -0
  282. package/node_modules/@noodle-borg/service/dist/persistence-options.js.map +1 -0
  283. package/node_modules/@noodle-borg/service/dist/routes/assistant-dispatch.d.ts.map +1 -1
  284. package/node_modules/@noodle-borg/service/dist/routes/assistant-dispatch.js +10 -1
  285. package/node_modules/@noodle-borg/service/dist/routes/assistant-dispatch.js.map +1 -1
  286. package/node_modules/@noodle-borg/service/dist/routes/assistant.d.ts +2 -0
  287. package/node_modules/@noodle-borg/service/dist/routes/assistant.d.ts.map +1 -1
  288. package/node_modules/@noodle-borg/service/dist/routes/assistant.js +85 -0
  289. package/node_modules/@noodle-borg/service/dist/routes/assistant.js.map +1 -1
  290. package/node_modules/@noodle-borg/service/dist/routes/billing-enforcement-cohort.d.ts +17 -0
  291. package/node_modules/@noodle-borg/service/dist/routes/billing-enforcement-cohort.d.ts.map +1 -0
  292. package/node_modules/@noodle-borg/service/dist/routes/billing-enforcement-cohort.js +145 -0
  293. package/node_modules/@noodle-borg/service/dist/routes/billing-enforcement-cohort.js.map +1 -0
  294. package/node_modules/@noodle-borg/service/dist/routes/billing-meter-readiness.d.ts +15 -0
  295. package/node_modules/@noodle-borg/service/dist/routes/billing-meter-readiness.d.ts.map +1 -0
  296. package/node_modules/@noodle-borg/service/dist/routes/billing-meter-readiness.js +78 -0
  297. package/node_modules/@noodle-borg/service/dist/routes/billing-meter-readiness.js.map +1 -0
  298. package/node_modules/@noodle-borg/service/dist/routes/billing-meter-validation.d.ts +15 -0
  299. package/node_modules/@noodle-borg/service/dist/routes/billing-meter-validation.d.ts.map +1 -0
  300. package/node_modules/@noodle-borg/service/dist/routes/billing-meter-validation.js +108 -0
  301. package/node_modules/@noodle-borg/service/dist/routes/billing-meter-validation.js.map +1 -0
  302. package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.d.ts +6 -0
  303. package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.d.ts.map +1 -1
  304. package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.js +99 -0
  305. package/node_modules/@noodle-borg/service/dist/routes/commercial-dispatch.js.map +1 -1
  306. package/node_modules/@noodle-borg/service/dist/routes/commercial-service-deps.d.ts +25 -0
  307. package/node_modules/@noodle-borg/service/dist/routes/commercial-service-deps.d.ts.map +1 -0
  308. package/node_modules/@noodle-borg/service/dist/routes/commercial-service-deps.js +35 -0
  309. package/node_modules/@noodle-borg/service/dist/routes/commercial-service-deps.js.map +1 -0
  310. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +3 -3
  311. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
  312. package/node_modules/@noodle-borg/service/dist/serve-options.d.ts +93 -0
  313. package/node_modules/@noodle-borg/service/dist/serve-options.d.ts.map +1 -0
  314. package/node_modules/@noodle-borg/service/dist/serve-options.js +2 -0
  315. package/node_modules/@noodle-borg/service/dist/serve-options.js.map +1 -0
  316. package/node_modules/@noodle-borg/service/dist/serve.d.ts +2 -92
  317. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  318. package/node_modules/@noodle-borg/service/dist/serve.js +64 -59
  319. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  320. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.d.ts +22 -0
  321. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.d.ts.map +1 -0
  322. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.js +51 -0
  323. package/node_modules/@noodle-borg/service/dist/service-resource-cleanup.js.map +1 -0
  324. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  325. package/node_modules/@noodle-borg/service/dist/service.js +10 -21
  326. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  327. package/node_modules/@noodle-borg/service/dist/store/cloudsql-pool.d.ts.map +1 -1
  328. package/node_modules/@noodle-borg/service/dist/store/cloudsql-pool.js +7 -1
  329. package/node_modules/@noodle-borg/service/dist/store/cloudsql-pool.js.map +1 -1
  330. package/node_modules/@noodle-borg/service/dist/store/postgres-billing.d.ts +6 -2
  331. package/node_modules/@noodle-borg/service/dist/store/postgres-billing.d.ts.map +1 -1
  332. package/node_modules/@noodle-borg/service/dist/store/postgres-billing.js +11 -1
  333. package/node_modules/@noodle-borg/service/dist/store/postgres-billing.js.map +1 -1
  334. package/package.json +1 -1
@@ -138,6 +138,88 @@ export async function handleAssistantClients(req, res, tenant, id, action, deps)
138
138
  }
139
139
  sendJson(res, 405, { error: 'method not allowed' });
140
140
  }
141
+ /** Validate the customer backend ↔ active embedded-assistant boundary without invoking a tool. */
142
+ export async function handleAssistantDoctor(req, res, tenant, deps) {
143
+ if (req.method !== 'POST')
144
+ return sendJson(res, 405, { error: 'method not allowed' });
145
+ const identity = await authorizeControlPlane(req, res, deps.gate, { requireIdentity: false });
146
+ if (identity === false)
147
+ return;
148
+ if (identity && !identity.superAdmin) {
149
+ const member = await deps.controlPlane.isOrgMember({
150
+ org: tenant.org,
151
+ subject: identity.subject,
152
+ });
153
+ if (!member)
154
+ return sendForbidden(res, 'forbidden');
155
+ }
156
+ const body = await readJsonBody(req, deps.maxBody);
157
+ if (!body.ok)
158
+ return sendJson(res, body.status, { error: body.error });
159
+ if (!isRecord(body.value))
160
+ return sendJson(res, 400, { error: 'invalid doctor request' });
161
+ const { clientId, clientSecret, origin, userId } = body.value;
162
+ if (typeof clientId !== 'string' ||
163
+ clientId.length < 1 ||
164
+ typeof clientSecret !== 'string' ||
165
+ clientSecret.length < 1 ||
166
+ typeof origin !== 'string' ||
167
+ origin.length < 1 ||
168
+ (userId !== undefined &&
169
+ (typeof userId !== 'string' || userId.length < 1 || userId.length > 240))) {
170
+ return sendJson(res, 400, { error: 'clientId, clientSecret, and origin are required' });
171
+ }
172
+ const target = await deps.registry.getActiveByTenant(tenant);
173
+ const assistant = target?.served.artifact.server.assistant;
174
+ const deploymentOk = Boolean(target?.deploymentId && assistant);
175
+ const client = await deps.store.authenticateClient(clientId, clientSecret);
176
+ const clientOk = client !== undefined && sameTenant(client.tenant, tenant);
177
+ const originOk = assistant?.allowedOrigins.includes(origin) === true;
178
+ let delegatedCredentials;
179
+ if (!deploymentOk || !clientOk || !originOk || !target) {
180
+ delegatedCredentials = {
181
+ ok: false,
182
+ skipped: true,
183
+ reason: 'deployment, client, and origin checks must pass first',
184
+ };
185
+ }
186
+ else if (target.served.deps.broker.probeDelegatedCredentials === undefined) {
187
+ delegatedCredentials = {
188
+ ok: false,
189
+ skipped: true,
190
+ reason: 'deployment credential broker does not support diagnostics',
191
+ };
192
+ }
193
+ else {
194
+ const probes = await target.served.deps.broker.probeDelegatedCredentials({
195
+ subject: typeof userId === 'string' ? userId : 'noodle-assistant-doctor',
196
+ identityKind: 'customer',
197
+ audience: tenantMcpUrl(deps.serviceBase(req), tenant),
198
+ });
199
+ delegatedCredentials = { ok: probes.every((probe) => probe.ok), probes };
200
+ }
201
+ const checks = {
202
+ deployment: {
203
+ ok: deploymentOk,
204
+ ...(target?.deploymentId ? { deploymentId: target.deploymentId } : {}),
205
+ },
206
+ client: {
207
+ ok: clientOk,
208
+ ...(clientOk && client ? { createdAgainstDeploymentId: client.deploymentId } : {}),
209
+ },
210
+ origin: {
211
+ ok: originOk,
212
+ origin,
213
+ ...(assistant ? { allowedOrigins: assistant.allowedOrigins } : {}),
214
+ },
215
+ delegatedCredentials,
216
+ };
217
+ return sendJson(res, 200, {
218
+ ok: Object.values(checks).every((check) => check.ok),
219
+ ...(target?.deploymentId ? { deploymentId: target.deploymentId } : {}),
220
+ checks,
221
+ });
222
+ }
141
223
  export async function handleAssistantSession(req, res, deps) {
142
224
  const credentials = basicCredentials(req);
143
225
  if (!credentials)
@@ -388,6 +470,9 @@ export async function handleAssistantAppRequest(req, res, deps) {
388
470
  function isRecord(value) {
389
471
  return typeof value === 'object' && value !== null && !Array.isArray(value);
390
472
  }
473
+ function sameTenant(a, b) {
474
+ return a.org === b.org && a.app === b.app && a.env === b.env;
475
+ }
391
476
  function assistantConfiguration(server) {
392
477
  if (!server.assistant)
393
478
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"assistant.js","sourceRoot":"","sources":["../../src/routes/assistant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assistant.js","sourceRoot":"","sources":["../../src/routes/assistant.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ import type { DeployAuthGate } from '../auth/deploy-gate.js';
3
+ import { type BillingEnforcementProfileStore } from '../billing/enforcement-profile.js';
4
+ import { type AuditSink } from '../store/audit.js';
5
+ interface CohortRouteDeps {
6
+ readonly gate: DeployAuthGate;
7
+ readonly store?: BillingEnforcementProfileStore;
8
+ readonly serviceUrl?: string;
9
+ readonly audit: AuditSink;
10
+ readonly maxBody: number;
11
+ }
12
+ /** Aggregate-only operator status. It reveals no account, organization, app, or owner identity. */
13
+ export declare function handleBillingEnforcementCohortStatus(req: IncomingMessage, res: ServerResponse, deps: CohortRouteDeps): Promise<void>;
14
+ /** Classify the immutable launch cohort without activating usage or footprint enforcement. */
15
+ export declare function handleBillingEnforcementCohortSeal(req: IncomingMessage, res: ServerResponse, deps: CohortRouteDeps): Promise<void>;
16
+ export {};
17
+ //# sourceMappingURL=billing-enforcement-cohort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-enforcement-cohort.d.ts","sourceRoot":"","sources":["../../src/routes/billing-enforcement-cohort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAwB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAOL,KAAK,8BAA8B,EAGpC,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,mBAAmB,CAAC;AAErE,UAAU,eAAe;IACvB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,8BAA8B,CAAC;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,mGAAmG;AACnG,wBAAsB,oCAAoC,CACxD,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED,8FAA8F;AAC9F,wBAAsB,kCAAkC,CACtD,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC,CA8Df"}
@@ -0,0 +1,145 @@
1
+ import { BillingEnforcementCohortConflictError, BillingEnforcementCohortSealResponseSchema, BillingEnforcementCohortStatusResponseSchema, billingEnforcementCohortSuccessAudit, parseBillingEnforcementCohortSealRequest, } from '../billing/enforcement-profile.js';
2
+ import { readJsonBody, sendForbidden, sendJson, sendUnauthorized } from '../http-util.js';
3
+ import { emitAuditMirrors } from '../store/audit.js';
4
+ /** Aggregate-only operator status. It reveals no account, organization, app, or owner identity. */
5
+ export async function handleBillingEnforcementCohortStatus(req, res, deps) {
6
+ const identity = await authorizeCohortOperator(req, res, deps, 'read');
7
+ if (identity === undefined)
8
+ return;
9
+ if (deps.store === undefined) {
10
+ await emitDenial(deps.audit, 409, 'store_required', 'read', identity);
11
+ return sendJson(res, 409, {
12
+ ok: false,
13
+ code: 'billing_enforcement_profile_store_required',
14
+ error: 'billing enforcement cohort status requires the configured PostgreSQL profile store',
15
+ });
16
+ }
17
+ let status;
18
+ try {
19
+ status = BillingEnforcementCohortStatusResponseSchema.parse(await deps.store.getEnforcementCohortStatus());
20
+ }
21
+ catch (error) {
22
+ await emitDenial(deps.audit, 500, 'internal_error', 'read', identity);
23
+ throw error;
24
+ }
25
+ await deps.audit.emit({
26
+ eventType: 'billing.enforcement.cohort.read',
27
+ org: 'platform',
28
+ actorSubject: identity.subject,
29
+ ...(identity.email !== undefined ? { actorEmail: identity.email } : {}),
30
+ decision: 'allow',
31
+ status: 200,
32
+ details: {
33
+ cohortKind: status.cohortKind,
34
+ state: status.state,
35
+ legacyAccountProfile: status.legacyAccountProfile,
36
+ postSealAccountProfile: status.postSealAccountProfile,
37
+ billingAccountCount: status.billingAccountCount,
38
+ profiledAccountCount: status.profiledAccountCount,
39
+ legacyInternalExemptAccountCount: status.legacyInternalExemptAccountCount,
40
+ enforcedAccountCount: status.enforcedAccountCount,
41
+ unprofiledAccountCount: status.unprofiledAccountCount,
42
+ billingAttributionComplete: status.billingAttributionComplete,
43
+ attributionBlockerCount: status.attributionBlockerCount,
44
+ },
45
+ });
46
+ sendJson(res, 200, { ok: true, data: status });
47
+ }
48
+ /** Classify the immutable launch cohort without activating usage or footprint enforcement. */
49
+ export async function handleBillingEnforcementCohortSeal(req, res, deps) {
50
+ const identity = await authorizeCohortOperator(req, res, deps, 'seal');
51
+ if (identity === undefined)
52
+ return;
53
+ if (deps.store === undefined) {
54
+ await emitDenial(deps.audit, 409, 'store_required', 'seal', identity);
55
+ return sendJson(res, 409, {
56
+ ok: false,
57
+ code: 'billing_enforcement_profile_store_required',
58
+ error: 'billing enforcement cohort seal requires the configured PostgreSQL profile store',
59
+ });
60
+ }
61
+ if (deps.serviceUrl === undefined) {
62
+ await emitDenial(deps.audit, 409, 'service_required', 'seal', identity);
63
+ return sendJson(res, 409, {
64
+ ok: false,
65
+ code: 'billing_enforcement_service_required',
66
+ error: 'billing enforcement cohort seal requires the configured public service URL',
67
+ });
68
+ }
69
+ const body = await readJsonBody(req, deps.maxBody);
70
+ if (!body.ok) {
71
+ await emitDenial(deps.audit, body.status, 'invalid_request', 'seal', identity);
72
+ return sendJson(res, body.status, { ok: false, error: body.error });
73
+ }
74
+ let request;
75
+ try {
76
+ request = parseBillingEnforcementCohortSealRequest(body.value);
77
+ }
78
+ catch (error) {
79
+ await emitDenial(deps.audit, 400, 'invalid_request', 'seal', identity);
80
+ return sendJson(res, 400, {
81
+ ok: false,
82
+ error: error instanceof Error ? error.message : String(error),
83
+ });
84
+ }
85
+ let result;
86
+ try {
87
+ result = BillingEnforcementCohortSealResponseSchema.parse(await deps.store.sealEnforcementCohort({
88
+ request,
89
+ actor: identity,
90
+ service: deps.serviceUrl,
91
+ }));
92
+ }
93
+ catch (error) {
94
+ if (error instanceof BillingEnforcementCohortConflictError) {
95
+ await emitDenial(deps.audit, 409, error.code, 'seal', identity);
96
+ return sendJson(res, 409, { ok: false, code: error.code, error: error.message });
97
+ }
98
+ await emitDenial(deps.audit, 500, 'internal_error', 'seal', identity);
99
+ throw error;
100
+ }
101
+ const status = result.replayed ? 200 : 201;
102
+ const successAudit = billingEnforcementCohortSuccessAudit(result, identity);
103
+ if (deps.store.successAuditMode === 'transactional') {
104
+ await emitAuditMirrors(deps.audit, successAudit);
105
+ }
106
+ else {
107
+ await deps.audit.emit(successAudit);
108
+ }
109
+ sendJson(res, status, { ok: true, data: result });
110
+ }
111
+ async function authorizeCohortOperator(req, res, deps, action) {
112
+ const auth = await deps.gate.authorize(req);
113
+ if (!auth.ok) {
114
+ await emitDenial(deps.audit, auth.status, 'authorization_failed', action);
115
+ if (auth.status === 401)
116
+ sendUnauthorized(res, auth.message);
117
+ else
118
+ sendForbidden(res, auth.message);
119
+ return undefined;
120
+ }
121
+ if (auth.identity === undefined) {
122
+ await emitDenial(deps.audit, 401, 'identity_required', action);
123
+ sendUnauthorized(res, 'identity required');
124
+ return undefined;
125
+ }
126
+ if (!auth.identity.superAdmin) {
127
+ await emitDenial(deps.audit, 403, 'super_admin_required', action, auth.identity);
128
+ sendForbidden(res, 'super-admin required');
129
+ return undefined;
130
+ }
131
+ return auth.identity;
132
+ }
133
+ function emitDenial(audit, status, reasonCode, action, identity) {
134
+ return audit.emit({
135
+ eventType: action === 'read' ? 'billing.enforcement.cohort.read' : 'billing.enforcement.cohort.sealed',
136
+ org: 'platform',
137
+ decision: 'deny',
138
+ status,
139
+ reasonCode,
140
+ ...(identity === undefined
141
+ ? {}
142
+ : { actorSubject: identity.subject, actorEmail: identity.email }),
143
+ });
144
+ }
145
+ //# sourceMappingURL=billing-enforcement-cohort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-enforcement-cohort.js","sourceRoot":"","sources":["../../src/routes/billing-enforcement-cohort.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ import type { DeployAuthGate } from '../auth/deploy-gate.js';
3
+ import { type BillingMeterReadinessStore } from '../billing/meter-readiness.js';
4
+ import type { AuditSink } from '../store/audit.js';
5
+ interface BillingMeterReadinessDeps {
6
+ readonly gate: DeployAuthGate;
7
+ readonly store?: BillingMeterReadinessStore;
8
+ readonly billingUsageEnabled?: boolean;
9
+ readonly clock?: () => Date;
10
+ readonly audit: AuditSink;
11
+ }
12
+ /** Read-only operator diagnostic. It does not activate, enforce, or mutate metering state. */
13
+ export declare function handleBillingMeterReadiness(req: IncomingMessage, res: ServerResponse, deps: BillingMeterReadinessDeps): Promise<void>;
14
+ export {};
15
+ //# sourceMappingURL=billing-meter-readiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-meter-readiness.d.ts","sourceRoot":"","sources":["../../src/routes/billing-meter-readiness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAwB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAGL,KAAK,0BAA0B,EAEhC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,UAAU,yBAAyB;IACjC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;CAC3B;AAED,8FAA8F;AAC9F,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAoCf"}
@@ -0,0 +1,78 @@
1
+ import { BillingMeterReadinessReportSchema, unavailableBillingMeterReadinessReport, } from '../billing/meter-readiness.js';
2
+ import { sendForbidden, sendJson, sendUnauthorized } from '../http-util.js';
3
+ /** Read-only operator diagnostic. It does not activate, enforce, or mutate metering state. */
4
+ export async function handleBillingMeterReadiness(req, res, deps) {
5
+ const auth = await deps.gate.authorize(req);
6
+ if (!auth.ok) {
7
+ await emitReadinessDenial(deps.audit, auth.status, 'authorization_failed');
8
+ if (auth.status === 401)
9
+ sendUnauthorized(res, auth.message);
10
+ else
11
+ sendForbidden(res, auth.message);
12
+ return;
13
+ }
14
+ if (auth.identity === undefined) {
15
+ await emitReadinessDenial(deps.audit, 401, 'identity_required');
16
+ return sendUnauthorized(res, 'identity required');
17
+ }
18
+ if (!auth.identity.superAdmin) {
19
+ await emitReadinessDenial(deps.audit, 403, 'super_admin_required', auth.identity);
20
+ return sendForbidden(res, 'super-admin required');
21
+ }
22
+ const report = BillingMeterReadinessReportSchema.parse(await readReadinessReport(deps));
23
+ const states = { pass: 0, fail: 0, unknown: 0 };
24
+ for (const check of report.checks)
25
+ states[check.state]++;
26
+ await deps.audit.emit({
27
+ eventType: 'billing.metering.readiness.read',
28
+ org: 'platform',
29
+ actorSubject: auth.identity.subject,
30
+ ...(auth.identity.email !== undefined ? { actorEmail: auth.identity.email } : {}),
31
+ decision: 'allow',
32
+ status: 200,
33
+ details: {
34
+ technicalReadiness: report.technicalReadiness,
35
+ meteringMode: report.metering.mode,
36
+ checksPassed: states.pass,
37
+ checksFailed: states.fail,
38
+ checksUnknown: states.unknown,
39
+ },
40
+ });
41
+ sendJson(res, 200, { ok: true, data: report });
42
+ }
43
+ async function readReadinessReport(deps) {
44
+ if (deps.store !== undefined) {
45
+ try {
46
+ const report = BillingMeterReadinessReportSchema.parse(await deps.store.getMeterReadiness());
47
+ if (report.technicalReadiness !== 'unavailable')
48
+ return report;
49
+ return withCurrentMetering(report, deps.billingUsageEnabled === true);
50
+ }
51
+ catch {
52
+ // Health reads are represented as typed unavailable data. They never expose backend errors.
53
+ }
54
+ }
55
+ const unavailable = unavailableBillingMeterReadinessReport((deps.clock ?? (() => new Date()))().toISOString());
56
+ return withCurrentMetering(unavailable, deps.billingUsageEnabled === true);
57
+ }
58
+ function withCurrentMetering(report, billingUsageEnabled) {
59
+ return BillingMeterReadinessReportSchema.parse({
60
+ ...report,
61
+ metering: billingUsageEnabled
62
+ ? { mode: 'shadow', coverage: 'partial' }
63
+ : { mode: 'not_started', coverage: null },
64
+ });
65
+ }
66
+ function emitReadinessDenial(audit, status, reasonCode, identity) {
67
+ return audit.emit({
68
+ eventType: 'billing.metering.readiness.read',
69
+ org: 'platform',
70
+ decision: 'deny',
71
+ status,
72
+ reasonCode,
73
+ ...(identity !== undefined
74
+ ? { actorSubject: identity.subject, actorEmail: identity.email }
75
+ : {}),
76
+ });
77
+ }
78
+ //# sourceMappingURL=billing-meter-readiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-meter-readiness.js","sourceRoot":"","sources":["../../src/routes/billing-meter-readiness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ import type { DeployAuthGate } from '../auth/deploy-gate.js';
3
+ import { type BillingMeterValidationEpochStore } from '../billing/meter-validation-epoch.js';
4
+ import { type AuditSink } from '../store/audit.js';
5
+ interface ValidationEpochRouteDeps {
6
+ readonly gate: DeployAuthGate;
7
+ readonly store?: BillingMeterValidationEpochStore;
8
+ readonly serviceUrl?: string;
9
+ readonly audit: AuditSink;
10
+ readonly maxBody: number;
11
+ }
12
+ export declare function handleBillingMeterValidationEpochPrepare(req: IncomingMessage, res: ServerResponse, deps: ValidationEpochRouteDeps): Promise<void>;
13
+ export declare function handleBillingMeterValidationEpochRetire(req: IncomingMessage, res: ServerResponse, deps: ValidationEpochRouteDeps): Promise<void>;
14
+ export {};
15
+ //# sourceMappingURL=billing-meter-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-meter-validation.d.ts","sourceRoot":"","sources":["../../src/routes/billing-meter-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAwB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAKL,KAAK,gCAAgC,EAItC,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,mBAAmB,CAAC;AAErE,UAAU,wBAAwB;IAChC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,gCAAgC,CAAC;IAClD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,wCAAwC,CACtD,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -0,0 +1,108 @@
1
+ import { BillingMeterValidationEpochConflictError, billingMeterValidationEpochSuccessAudit, parseBillingMeterValidationEpochPrepareRequest, parseBillingMeterValidationEpochRetireRequest, } from '../billing/meter-validation-epoch.js';
2
+ import { readJsonBody, sendForbidden, sendJson, sendUnauthorized } from '../http-util.js';
3
+ import { emitAuditMirrors } from '../store/audit.js';
4
+ export function handleBillingMeterValidationEpochPrepare(req, res, deps) {
5
+ return handleValidationEpochMutation(req, res, deps, 'validation_prepare');
6
+ }
7
+ export function handleBillingMeterValidationEpochRetire(req, res, deps) {
8
+ return handleValidationEpochMutation(req, res, deps, 'validation_retire');
9
+ }
10
+ async function handleValidationEpochMutation(req, res, deps, action) {
11
+ const auth = await deps.gate.authorize(req);
12
+ if (!auth.ok) {
13
+ await emitDenial(deps.audit, auth.status, 'authorization_failed', action);
14
+ if (auth.status === 401)
15
+ sendUnauthorized(res, auth.message);
16
+ else
17
+ sendForbidden(res, auth.message);
18
+ return;
19
+ }
20
+ if (auth.identity === undefined) {
21
+ await emitDenial(deps.audit, 401, 'identity_required', action);
22
+ return sendUnauthorized(res, 'identity required');
23
+ }
24
+ if (!auth.identity.superAdmin) {
25
+ await emitDenial(deps.audit, 403, 'super_admin_required', action, auth.identity);
26
+ return sendForbidden(res, 'super-admin required');
27
+ }
28
+ if (deps.store === undefined) {
29
+ await emitDenial(deps.audit, 409, 'store_required', action, auth.identity);
30
+ return sendJson(res, 409, {
31
+ ok: false,
32
+ code: 'billing_meter_validation_epoch_store_required',
33
+ error: 'validation epoch operations require the configured PostgreSQL lifecycle store',
34
+ });
35
+ }
36
+ if (deps.serviceUrl === undefined) {
37
+ await emitDenial(deps.audit, 409, 'service_required', action, auth.identity);
38
+ return sendJson(res, 409, {
39
+ ok: false,
40
+ code: 'billing_meter_validation_epoch_service_required',
41
+ error: 'validation epoch operations require the configured public service URL',
42
+ });
43
+ }
44
+ const body = await readJsonBody(req, deps.maxBody);
45
+ if (!body.ok) {
46
+ await emitDenial(deps.audit, body.status, 'invalid_request', action, auth.identity);
47
+ return sendJson(res, body.status, { ok: false, error: body.error });
48
+ }
49
+ let result;
50
+ try {
51
+ if (action === 'validation_prepare') {
52
+ const request = parseBillingMeterValidationEpochPrepareRequest(body.value);
53
+ result = await deps.store.prepareValidationEpoch({
54
+ request,
55
+ actor: auth.identity,
56
+ service: deps.serviceUrl,
57
+ });
58
+ }
59
+ else {
60
+ const request = parseBillingMeterValidationEpochRetireRequest(body.value);
61
+ result = await deps.store.retireValidationEpoch({
62
+ request,
63
+ actor: auth.identity,
64
+ service: deps.serviceUrl,
65
+ });
66
+ }
67
+ }
68
+ catch (error) {
69
+ if (isInvalidRequest(error)) {
70
+ await emitDenial(deps.audit, 400, 'invalid_request', action, auth.identity);
71
+ return sendJson(res, 400, { ok: false, error: error.message });
72
+ }
73
+ if (error instanceof BillingMeterValidationEpochConflictError) {
74
+ await emitDenial(deps.audit, 409, error.code, action, auth.identity);
75
+ return sendJson(res, 409, { ok: false, code: error.code, error: error.message });
76
+ }
77
+ await emitDenial(deps.audit, 500, 'internal_error', action, auth.identity);
78
+ throw error;
79
+ }
80
+ const status = action === 'validation_prepare' && !result.replayed ? 201 : 200;
81
+ const successAudit = billingMeterValidationEpochSuccessAudit(action, result, auth.identity);
82
+ if (deps.store.successAuditMode === 'transactional') {
83
+ await emitAuditMirrors(deps.audit, successAudit);
84
+ }
85
+ else {
86
+ await deps.audit.emit(successAudit);
87
+ }
88
+ sendJson(res, status, { ok: true, data: result });
89
+ }
90
+ function emitDenial(audit, status, reasonCode, action, identity) {
91
+ return audit.emit({
92
+ eventType: 'billing.metering.validation_epoch',
93
+ org: 'platform',
94
+ decision: 'deny',
95
+ status,
96
+ reasonCode,
97
+ ...(identity !== undefined
98
+ ? { actorSubject: identity.subject, actorEmail: identity.email }
99
+ : {}),
100
+ details: { action },
101
+ });
102
+ }
103
+ function isInvalidRequest(error) {
104
+ return (error instanceof Error &&
105
+ (error.message.startsWith('invalid billing meter validation epoch prepare:') ||
106
+ error.message.startsWith('invalid billing meter validation epoch retire:')));
107
+ }
108
+ //# sourceMappingURL=billing-meter-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing-meter-validation.js","sourceRoot":"","sources":["../../src/routes/billing-meter-validation.ts"],"names":[],"mappings":"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"}