@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
@@ -0,0 +1,29 @@
1
+ import type { Pool, PoolClient } from 'pg';
2
+ export declare const BILLING_METER_WRITER_CLEAN_SESSION_RETENTION_DAYS: 7;
3
+ export declare const BILLING_METER_WRITER_UNCLEAN_SESSION_STALE_DAYS = 30;
4
+ export interface BillingMeterWriterCompactionResult {
5
+ readonly sessionsCompacted: number;
6
+ readonly baselinesFolded: number;
7
+ readonly cleanSessionsCompacted: number;
8
+ readonly uncleanSessionsCompacted: number;
9
+ }
10
+ export interface BillingMeterWriterCompactionOptions {
11
+ readonly limit?: number;
12
+ readonly lockTimeoutMs?: number;
13
+ readonly statementTimeoutMs?: number;
14
+ }
15
+ export interface BillingMeterWriterCompactionOnClientOptions {
16
+ readonly decisionAt: string;
17
+ readonly limit?: number;
18
+ }
19
+ /**
20
+ * Fold eligible writer-session evidence into per-epoch deltas, then prune the detailed rows atomically.
21
+ * Receipt references always win: a session is not eligible until every detailed receipt is gone.
22
+ */
23
+ export declare function compactBillingMeterWriterSessions(pool: Pool, options?: BillingMeterWriterCompactionOptions): Promise<BillingMeterWriterCompactionResult>;
24
+ /**
25
+ * Fold and prune eligible sessions inside a transaction owned by the caller.
26
+ * The caller supplies its database decision timestamp so maintenance decisions share one cutoff.
27
+ */
28
+ export declare function compactBillingMeterWriterSessionsOnClient(client: PoolClient, options: BillingMeterWriterCompactionOnClientOptions): Promise<BillingMeterWriterCompactionResult>;
29
+ //# sourceMappingURL=postgres-meter-writer-compaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-meter-writer-compaction.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-meter-writer-compaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAK3C,eAAO,MAAM,iDAAiD,GACxB,CAAC;AACvC,eAAO,MAAM,+CAA+C,KAAK,CAAC;AAMlE,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,2CAA2C;IAC1D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAOD;;;GAGG;AACH,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,mCAAwC,GAChD,OAAO,CAAC,kCAAkC,CAAC,CAsC7C;AAED;;;GAGG;AACH,wBAAsB,yCAAyC,CAC7D,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,2CAA2C,GACnD,OAAO,CAAC,kCAAkC,CAAC,CAoD7C"}
@@ -0,0 +1,240 @@
1
+ import { BILLING_METER_RECEIPT_RETENTION_DAYS } from './meter-readiness.js';
2
+ import { readBillingMeterTransactionTime } from './postgres-meter-clock.js';
3
+ import { normalizeBillingUsageInstant } from './usage-window.js';
4
+ export const BILLING_METER_WRITER_CLEAN_SESSION_RETENTION_DAYS = BILLING_METER_RECEIPT_RETENTION_DAYS;
5
+ export const BILLING_METER_WRITER_UNCLEAN_SESSION_STALE_DAYS = 30;
6
+ const DEFAULT_COMPACTION_LIMIT = 100;
7
+ const DEFAULT_LOCK_TIMEOUT_MS = 1_000;
8
+ const DEFAULT_STATEMENT_TIMEOUT_MS = 5_000;
9
+ /**
10
+ * Fold eligible writer-session evidence into per-epoch deltas, then prune the detailed rows atomically.
11
+ * Receipt references always win: a session is not eligible until every detailed receipt is gone.
12
+ */
13
+ export async function compactBillingMeterWriterSessions(pool, options = {}) {
14
+ const limit = boundedInteger('billing meter writer compaction limit', options.limit ?? DEFAULT_COMPACTION_LIMIT, 1, 1_000);
15
+ const lockTimeoutMs = boundedInteger('billing meter writer compaction lock timeout', options.lockTimeoutMs ?? DEFAULT_LOCK_TIMEOUT_MS, 1, 30_000);
16
+ const statementTimeoutMs = boundedInteger('billing meter writer compaction statement timeout', options.statementTimeoutMs ?? DEFAULT_STATEMENT_TIMEOUT_MS, 1, 30_000);
17
+ const client = await pool.connect();
18
+ try {
19
+ await client.query('BEGIN');
20
+ await client.query(`SELECT set_config('lock_timeout', $1, true), set_config('statement_timeout', $2, true)`, [`${lockTimeoutMs}ms`, `${statementTimeoutMs}ms`]);
21
+ const result = await compactBillingMeterWriterSessionsOnClient(client, {
22
+ decisionAt: await readBillingMeterTransactionTime(client),
23
+ limit,
24
+ });
25
+ await client.query('COMMIT');
26
+ return result;
27
+ }
28
+ catch (error) {
29
+ await rollbackQuietly(client);
30
+ throw error;
31
+ }
32
+ finally {
33
+ client.release();
34
+ }
35
+ }
36
+ /**
37
+ * Fold and prune eligible sessions inside a transaction owned by the caller.
38
+ * The caller supplies its database decision timestamp so maintenance decisions share one cutoff.
39
+ */
40
+ export async function compactBillingMeterWriterSessionsOnClient(client, options) {
41
+ const decisionAt = normalizeBillingUsageInstant('billing meter writer compaction decision timestamp', options.decisionAt);
42
+ const limit = boundedInteger('billing meter writer compaction limit', options.limit ?? DEFAULT_COMPACTION_LIMIT, 1, 1_000);
43
+ const eligible = await selectEligibleWriterSessions(client, decisionAt, limit);
44
+ let baselinesFolded = 0;
45
+ let cleanSessionsCompacted = 0;
46
+ let uncleanSessionsCompacted = 0;
47
+ for (const session of eligible) {
48
+ const baselines = await client.query(`SELECT epoch_id
49
+ FROM billing_meter_writer_epoch_baselines
50
+ WHERE session_id = $1
51
+ ORDER BY attachment_sequence
52
+ FOR UPDATE`, [session.session_id]);
53
+ for (const [index, baseline] of baselines.rows.entries()) {
54
+ const nextEpochId = baselines.rows[index + 1]?.epoch_id ?? null;
55
+ await foldWriterSessionBaseline(client, {
56
+ epochId: baseline.epoch_id,
57
+ nextEpochId,
58
+ sessionId: session.session_id,
59
+ compactedAt: decisionAt,
60
+ uncleanStop: !session.clean_stop && nextEpochId === null,
61
+ });
62
+ baselinesFolded += 1;
63
+ }
64
+ await client.query('DELETE FROM billing_meter_writer_epoch_baselines WHERE session_id = $1', [
65
+ session.session_id,
66
+ ]);
67
+ const deleted = await client.query('DELETE FROM billing_meter_writer_sessions WHERE session_id = $1', [session.session_id]);
68
+ if (deleted.rowCount !== 1)
69
+ throw new Error('billing meter writer session disappeared');
70
+ if (session.clean_stop)
71
+ cleanSessionsCompacted += 1;
72
+ else
73
+ uncleanSessionsCompacted += 1;
74
+ }
75
+ return {
76
+ sessionsCompacted: eligible.length,
77
+ baselinesFolded,
78
+ cleanSessionsCompacted,
79
+ uncleanSessionsCompacted,
80
+ };
81
+ }
82
+ async function selectEligibleWriterSessions(client, now, limit) {
83
+ const result = await client.query(`SELECT session.session_id, session.clean_stop
84
+ FROM billing_meter_writer_sessions AS session
85
+ WHERE (
86
+ (
87
+ session.clean_stop AND session.closed_at IS NOT NULL AND
88
+ session.closed_at <=
89
+ $1::timestamptz - interval '${BILLING_METER_WRITER_CLEAN_SESSION_RETENTION_DAYS} days'
90
+ ) OR (
91
+ NOT session.clean_stop AND session.closed_at IS NULL AND
92
+ session.last_heartbeat_at <=
93
+ $1::timestamptz - interval '${BILLING_METER_WRITER_UNCLEAN_SESSION_STALE_DAYS} days'
94
+ )
95
+ )
96
+ AND NOT EXISTS (
97
+ SELECT 1 FROM billing_meter_usage_events AS event
98
+ WHERE event.writer_session_id = session.session_id
99
+ )
100
+ AND NOT EXISTS (
101
+ SELECT 1
102
+ FROM billing_meter_epochs AS epoch
103
+ WHERE epoch.state = 'prepared'
104
+ AND NOT EXISTS (
105
+ SELECT 1
106
+ FROM billing_meter_writer_epoch_baselines AS baseline
107
+ WHERE baseline.epoch_id = epoch.id
108
+ AND baseline.session_id = session.session_id
109
+ )
110
+ AND (
111
+ session.started_at >= epoch.prepared_at OR
112
+ session.last_heartbeat_at >= epoch.prepared_at OR
113
+ session.closed_at >= epoch.prepared_at
114
+ )
115
+ )
116
+ AND NOT EXISTS (
117
+ SELECT 1
118
+ FROM billing_meter_writer_epoch_baselines AS baseline
119
+ JOIN billing_meter_epochs AS epoch ON epoch.id = baseline.epoch_id
120
+ WHERE baseline.session_id = session.session_id
121
+ AND baseline.armed_at IS NULL
122
+ AND epoch.state = 'prepared'
123
+ )
124
+ ORDER BY COALESCE(session.closed_at, session.last_heartbeat_at), session.session_id
125
+ LIMIT $2
126
+ FOR UPDATE OF session SKIP LOCKED`, [now, limit]);
127
+ return result.rows;
128
+ }
129
+ async function foldWriterSessionBaseline(client, input) {
130
+ const folded = await client.query(`INSERT INTO billing_meter_writer_epoch_rollups
131
+ (epoch_id, schema_version, compacted_sessions, unclean_stop_count,
132
+ observed_calls_delta, attempted_writes_delta, recorded_writes_delta,
133
+ duplicate_writes_delta, final_failures_delta, no_epoch_skips_delta,
134
+ circuit_open_skips_delta, saturation_skips_delta, derivation_failures_delta,
135
+ epoch_identity_failures_delta, timeout_unknown_outcomes_delta, in_flight_writes,
136
+ first_compacted_at, last_compacted_at)
137
+ SELECT baseline.epoch_id, 1, 1, CASE WHEN $3::boolean THEN 1 ELSE 0 END,
138
+ COALESCE(endpoint.observed_calls, session.observed_calls) - baseline.observed_calls,
139
+ COALESCE(endpoint.attempted_writes, session.attempted_writes) -
140
+ baseline.attempted_writes,
141
+ COALESCE(endpoint.recorded_writes, session.recorded_writes) -
142
+ baseline.recorded_writes,
143
+ COALESCE(endpoint.duplicate_writes, session.duplicate_writes) -
144
+ baseline.duplicate_writes,
145
+ COALESCE(endpoint.final_failures, session.final_failures) - baseline.final_failures,
146
+ COALESCE(endpoint.no_epoch_skips, session.no_epoch_skips) - baseline.no_epoch_skips,
147
+ COALESCE(endpoint.circuit_open_skips, session.circuit_open_skips) -
148
+ baseline.circuit_open_skips,
149
+ COALESCE(endpoint.saturation_skips, session.saturation_skips) -
150
+ baseline.saturation_skips,
151
+ COALESCE(endpoint.derivation_failures, session.derivation_failures) -
152
+ baseline.derivation_failures,
153
+ COALESCE(endpoint.epoch_identity_failures, session.epoch_identity_failures) -
154
+ baseline.epoch_identity_failures,
155
+ COALESCE(endpoint.timeout_unknown_outcomes, session.timeout_unknown_outcomes) -
156
+ baseline.timeout_unknown_outcomes,
157
+ COALESCE(endpoint.in_flight_writes, session.in_flight_writes), $4, $4
158
+ FROM billing_meter_writer_epoch_baselines AS baseline
159
+ JOIN billing_meter_writer_sessions AS session ON session.session_id = baseline.session_id
160
+ LEFT JOIN billing_meter_writer_epoch_baselines AS endpoint
161
+ ON endpoint.epoch_id = $5 AND endpoint.session_id = baseline.session_id
162
+ WHERE baseline.epoch_id = $1 AND baseline.session_id = $2
163
+ AND ($5::text IS NULL OR endpoint.epoch_id IS NOT NULL)
164
+ AND COALESCE(endpoint.observed_calls, session.observed_calls) >= baseline.observed_calls
165
+ AND COALESCE(endpoint.attempted_writes, session.attempted_writes) >=
166
+ baseline.attempted_writes
167
+ AND COALESCE(endpoint.recorded_writes, session.recorded_writes) >=
168
+ baseline.recorded_writes
169
+ AND COALESCE(endpoint.duplicate_writes, session.duplicate_writes) >=
170
+ baseline.duplicate_writes
171
+ AND COALESCE(endpoint.final_failures, session.final_failures) >= baseline.final_failures
172
+ AND COALESCE(endpoint.no_epoch_skips, session.no_epoch_skips) >= baseline.no_epoch_skips
173
+ AND COALESCE(endpoint.circuit_open_skips, session.circuit_open_skips) >=
174
+ baseline.circuit_open_skips
175
+ AND COALESCE(endpoint.saturation_skips, session.saturation_skips) >=
176
+ baseline.saturation_skips
177
+ AND COALESCE(endpoint.derivation_failures, session.derivation_failures) >=
178
+ baseline.derivation_failures
179
+ AND COALESCE(endpoint.epoch_identity_failures, session.epoch_identity_failures) >=
180
+ baseline.epoch_identity_failures
181
+ AND COALESCE(endpoint.timeout_unknown_outcomes, session.timeout_unknown_outcomes) >=
182
+ baseline.timeout_unknown_outcomes
183
+ ON CONFLICT (epoch_id) DO UPDATE SET
184
+ compacted_sessions = billing_meter_writer_epoch_rollups.compacted_sessions + 1,
185
+ unclean_stop_count = billing_meter_writer_epoch_rollups.unclean_stop_count +
186
+ EXCLUDED.unclean_stop_count,
187
+ observed_calls_delta = billing_meter_writer_epoch_rollups.observed_calls_delta +
188
+ EXCLUDED.observed_calls_delta,
189
+ attempted_writes_delta = billing_meter_writer_epoch_rollups.attempted_writes_delta +
190
+ EXCLUDED.attempted_writes_delta,
191
+ recorded_writes_delta = billing_meter_writer_epoch_rollups.recorded_writes_delta +
192
+ EXCLUDED.recorded_writes_delta,
193
+ duplicate_writes_delta = billing_meter_writer_epoch_rollups.duplicate_writes_delta +
194
+ EXCLUDED.duplicate_writes_delta,
195
+ final_failures_delta = billing_meter_writer_epoch_rollups.final_failures_delta +
196
+ EXCLUDED.final_failures_delta,
197
+ no_epoch_skips_delta = billing_meter_writer_epoch_rollups.no_epoch_skips_delta +
198
+ EXCLUDED.no_epoch_skips_delta,
199
+ circuit_open_skips_delta = billing_meter_writer_epoch_rollups.circuit_open_skips_delta +
200
+ EXCLUDED.circuit_open_skips_delta,
201
+ saturation_skips_delta = billing_meter_writer_epoch_rollups.saturation_skips_delta +
202
+ EXCLUDED.saturation_skips_delta,
203
+ derivation_failures_delta = billing_meter_writer_epoch_rollups.derivation_failures_delta +
204
+ EXCLUDED.derivation_failures_delta,
205
+ epoch_identity_failures_delta =
206
+ billing_meter_writer_epoch_rollups.epoch_identity_failures_delta +
207
+ EXCLUDED.epoch_identity_failures_delta,
208
+ timeout_unknown_outcomes_delta =
209
+ billing_meter_writer_epoch_rollups.timeout_unknown_outcomes_delta +
210
+ EXCLUDED.timeout_unknown_outcomes_delta,
211
+ in_flight_writes = billing_meter_writer_epoch_rollups.in_flight_writes +
212
+ EXCLUDED.in_flight_writes,
213
+ first_compacted_at = LEAST(
214
+ billing_meter_writer_epoch_rollups.first_compacted_at,
215
+ EXCLUDED.first_compacted_at
216
+ ),
217
+ last_compacted_at = GREATEST(
218
+ billing_meter_writer_epoch_rollups.last_compacted_at,
219
+ EXCLUDED.last_compacted_at
220
+ )
221
+ RETURNING 1`, [input.epochId, input.sessionId, input.uncleanStop, input.compactedAt, input.nextEpochId]);
222
+ if (folded.rowCount !== 1) {
223
+ throw new Error('billing meter writer counters regressed below their epoch baseline');
224
+ }
225
+ }
226
+ function boundedInteger(name, value, minimum, maximum) {
227
+ if (!Number.isSafeInteger(value) || value < minimum || value > maximum) {
228
+ throw new Error(`${name} must be between ${minimum} and ${maximum}`);
229
+ }
230
+ return value;
231
+ }
232
+ async function rollbackQuietly(client) {
233
+ try {
234
+ await client.query('ROLLBACK');
235
+ }
236
+ catch {
237
+ // Preserve the original transaction failure.
238
+ }
239
+ }
240
+ //# sourceMappingURL=postgres-meter-writer-compaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-meter-writer-compaction.js","sourceRoot":"","sources":["../../src/billing/postgres-meter-writer-compaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Pool } from 'pg';
2
+ /** Additive live-validation writer health schema. It does not prepare or activate a meter epoch. */
3
+ export declare function ensureBillingMeterWriterHealthSchema(pool: Pool): Promise<void>;
4
+ //# sourceMappingURL=postgres-meter-writer-health-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-meter-writer-health-schema.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-meter-writer-health-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/B,oGAAoG;AACpG,wBAAsB,oCAAoC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAyIpF"}
@@ -0,0 +1,140 @@
1
+ /** Additive live-validation writer health schema. It does not prepare or activate a meter epoch. */
2
+ export async function ensureBillingMeterWriterHealthSchema(pool) {
3
+ await pool.query(`
4
+ CREATE TABLE IF NOT EXISTS billing_meter_writer_sessions (
5
+ session_id text PRIMARY KEY,
6
+ schema_version integer NOT NULL DEFAULT 1 CHECK (schema_version = 1),
7
+ release_sha text NOT NULL CHECK (release_sha ~ '^[0-9a-f]{40}$'),
8
+ key_generation text NOT NULL CHECK (key_generation ~ '^[0-9a-f]{64}$'),
9
+ retry_identity_version integer NOT NULL CHECK (retry_identity_version > 0),
10
+ writer_contract_version integer NOT NULL CHECK (writer_contract_version > 0),
11
+ started_at timestamptz NOT NULL,
12
+ last_heartbeat_at timestamptz NOT NULL,
13
+ closed_at timestamptz,
14
+ clean_stop boolean NOT NULL DEFAULT false,
15
+ report_version bigint NOT NULL DEFAULT 0 CHECK (report_version >= 0),
16
+ observed_calls bigint NOT NULL DEFAULT 0 CHECK (observed_calls >= 0),
17
+ attempted_writes bigint NOT NULL DEFAULT 0 CHECK (attempted_writes >= 0),
18
+ recorded_writes bigint NOT NULL DEFAULT 0 CHECK (recorded_writes >= 0),
19
+ duplicate_writes bigint NOT NULL DEFAULT 0 CHECK (duplicate_writes >= 0),
20
+ final_failures bigint NOT NULL DEFAULT 0 CHECK (final_failures >= 0),
21
+ no_epoch_skips bigint NOT NULL DEFAULT 0 CHECK (no_epoch_skips >= 0),
22
+ circuit_open_skips bigint NOT NULL DEFAULT 0 CHECK (circuit_open_skips >= 0),
23
+ saturation_skips bigint NOT NULL DEFAULT 0 CHECK (saturation_skips >= 0),
24
+ derivation_failures bigint NOT NULL DEFAULT 0 CHECK (derivation_failures >= 0),
25
+ epoch_identity_failures bigint NOT NULL DEFAULT 0 CHECK (epoch_identity_failures >= 0),
26
+ timeout_unknown_outcomes bigint NOT NULL DEFAULT 0 CHECK (timeout_unknown_outcomes >= 0),
27
+ in_flight_writes bigint NOT NULL DEFAULT 0 CHECK (in_flight_writes >= 0),
28
+ CHECK (
29
+ (closed_at IS NULL AND NOT clean_stop) OR
30
+ (closed_at IS NOT NULL AND clean_stop AND in_flight_writes = 0)
31
+ )
32
+ )
33
+ `);
34
+ await pool.query(`
35
+ CREATE INDEX IF NOT EXISTS billing_meter_writer_sessions_heartbeat_idx
36
+ ON billing_meter_writer_sessions (last_heartbeat_at DESC)
37
+ WHERE closed_at IS NULL
38
+ `);
39
+ await pool.query(`
40
+ CREATE INDEX IF NOT EXISTS billing_meter_writer_sessions_closed_idx
41
+ ON billing_meter_writer_sessions (closed_at)
42
+ WHERE clean_stop
43
+ `);
44
+ await pool.query(`
45
+ CREATE TABLE IF NOT EXISTS billing_meter_writer_epoch_baselines (
46
+ attachment_sequence bigint GENERATED ALWAYS AS IDENTITY,
47
+ epoch_id text NOT NULL REFERENCES billing_meter_epochs(id) ON DELETE RESTRICT,
48
+ session_id text NOT NULL REFERENCES billing_meter_writer_sessions(session_id)
49
+ ON DELETE RESTRICT,
50
+ attached_at timestamptz NOT NULL,
51
+ report_version bigint NOT NULL CHECK (report_version >= 0),
52
+ observed_calls bigint NOT NULL CHECK (observed_calls >= 0),
53
+ attempted_writes bigint NOT NULL CHECK (attempted_writes >= 0),
54
+ recorded_writes bigint NOT NULL CHECK (recorded_writes >= 0),
55
+ duplicate_writes bigint NOT NULL CHECK (duplicate_writes >= 0),
56
+ final_failures bigint NOT NULL CHECK (final_failures >= 0),
57
+ no_epoch_skips bigint NOT NULL CHECK (no_epoch_skips >= 0),
58
+ circuit_open_skips bigint NOT NULL CHECK (circuit_open_skips >= 0),
59
+ saturation_skips bigint NOT NULL CHECK (saturation_skips >= 0),
60
+ derivation_failures bigint NOT NULL CHECK (derivation_failures >= 0),
61
+ epoch_identity_failures bigint NOT NULL CHECK (epoch_identity_failures >= 0),
62
+ timeout_unknown_outcomes bigint NOT NULL CHECK (timeout_unknown_outcomes >= 0),
63
+ in_flight_writes bigint NOT NULL CHECK (in_flight_writes >= 0),
64
+ armed_at timestamptz,
65
+ PRIMARY KEY (epoch_id, session_id)
66
+ )
67
+ `);
68
+ await pool.query(`
69
+ ALTER TABLE billing_meter_writer_epoch_baselines
70
+ ADD COLUMN IF NOT EXISTS attachment_sequence bigint GENERATED ALWAYS AS IDENTITY,
71
+ ADD COLUMN IF NOT EXISTS armed_at timestamptz
72
+ `);
73
+ await pool.query(`
74
+ CREATE UNIQUE INDEX IF NOT EXISTS billing_meter_writer_epoch_baselines_sequence_idx
75
+ ON billing_meter_writer_epoch_baselines (attachment_sequence)
76
+ `);
77
+ await pool.query(`
78
+ CREATE TABLE IF NOT EXISTS billing_meter_writer_epoch_rollups (
79
+ epoch_id text PRIMARY KEY
80
+ REFERENCES billing_meter_epochs(id) ON DELETE RESTRICT,
81
+ schema_version integer NOT NULL DEFAULT 1 CHECK (schema_version = 1),
82
+ compacted_sessions bigint NOT NULL DEFAULT 0 CHECK (compacted_sessions >= 0),
83
+ unclean_stop_count bigint NOT NULL DEFAULT 0 CHECK (unclean_stop_count >= 0),
84
+ observed_calls_delta bigint NOT NULL DEFAULT 0 CHECK (observed_calls_delta >= 0),
85
+ attempted_writes_delta bigint NOT NULL DEFAULT 0 CHECK (attempted_writes_delta >= 0),
86
+ recorded_writes_delta bigint NOT NULL DEFAULT 0 CHECK (recorded_writes_delta >= 0),
87
+ duplicate_writes_delta bigint NOT NULL DEFAULT 0 CHECK (duplicate_writes_delta >= 0),
88
+ final_failures_delta bigint NOT NULL DEFAULT 0 CHECK (final_failures_delta >= 0),
89
+ no_epoch_skips_delta bigint NOT NULL DEFAULT 0 CHECK (no_epoch_skips_delta >= 0),
90
+ circuit_open_skips_delta bigint NOT NULL DEFAULT 0 CHECK (circuit_open_skips_delta >= 0),
91
+ saturation_skips_delta bigint NOT NULL DEFAULT 0 CHECK (saturation_skips_delta >= 0),
92
+ derivation_failures_delta bigint NOT NULL DEFAULT 0 CHECK (derivation_failures_delta >= 0),
93
+ epoch_identity_failures_delta bigint NOT NULL DEFAULT 0
94
+ CHECK (epoch_identity_failures_delta >= 0),
95
+ timeout_unknown_outcomes_delta bigint NOT NULL DEFAULT 0
96
+ CHECK (timeout_unknown_outcomes_delta >= 0),
97
+ in_flight_writes bigint NOT NULL DEFAULT 0 CHECK (in_flight_writes >= 0),
98
+ first_compacted_at timestamptz NOT NULL,
99
+ last_compacted_at timestamptz NOT NULL,
100
+ CHECK (last_compacted_at >= first_compacted_at)
101
+ )
102
+ `);
103
+ await pool.query(`
104
+ ALTER TABLE billing_meter_usage_events
105
+ ADD COLUMN IF NOT EXISTS writer_session_id text
106
+ `);
107
+ await pool.query(`
108
+ CREATE INDEX IF NOT EXISTS billing_meter_usage_events_epoch_writer_idx
109
+ ON billing_meter_usage_events (epoch_id, writer_session_id, recorded_at DESC)
110
+ WHERE writer_session_id IS NOT NULL
111
+ `);
112
+ await pool.query(`
113
+ DO $billing_meter_writer_health$
114
+ BEGIN
115
+ IF NOT EXISTS (
116
+ SELECT 1 FROM pg_constraint
117
+ WHERE conname = 'billing_meter_usage_events_writer_session_fk'
118
+ AND conrelid = 'billing_meter_usage_events'::regclass
119
+ ) THEN
120
+ ALTER TABLE billing_meter_usage_events
121
+ ADD CONSTRAINT billing_meter_usage_events_writer_session_fk
122
+ FOREIGN KEY (writer_session_id)
123
+ REFERENCES billing_meter_writer_sessions(session_id) ON DELETE RESTRICT;
124
+ END IF;
125
+ IF NOT EXISTS (
126
+ SELECT 1 FROM pg_constraint
127
+ WHERE conname = 'billing_meter_usage_events_writer_baseline_fk'
128
+ AND conrelid = 'billing_meter_usage_events'::regclass
129
+ ) THEN
130
+ ALTER TABLE billing_meter_usage_events
131
+ ADD CONSTRAINT billing_meter_usage_events_writer_baseline_fk
132
+ FOREIGN KEY (epoch_id, writer_session_id)
133
+ REFERENCES billing_meter_writer_epoch_baselines(epoch_id, session_id)
134
+ ON DELETE RESTRICT;
135
+ END IF;
136
+ END
137
+ $billing_meter_writer_health$
138
+ `);
139
+ }
140
+ //# sourceMappingURL=postgres-meter-writer-health-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-meter-writer-health-schema.js","sourceRoot":"","sources":["../../src/billing/postgres-meter-writer-health-schema.ts"],"names":[],"mappings":"AAEA,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,oCAAoC,CAAC,IAAU;IACnE,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;GAIhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;GAIhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;GAuBhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;GAIhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;GAGhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;GAGhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;GAIhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BhB,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-migration.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-migration.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,IAAI,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAMnE,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,EAOvC,MAAM,sBAAsB,CAAC;AAqD9B,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,IAAI,EACV,KAAK,EAAE;IACL,QAAQ,CAAC,OAAO,EAAE,kCAAkC,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,EACD,GAAG,EAAE,MAAM,IAAI,GACd,OAAO,CAAC,iCAAiC,CAAC,CAgQ5C"}
1
+ {"version":3,"file":"postgres-migration.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-migration.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,IAAI,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAMnE,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,EAOvC,MAAM,sBAAsB,CAAC;AAyD9B,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,IAAI,EACV,KAAK,EAAE;IACL,QAAQ,CAAC,OAAO,EAAE,kCAAkC,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,EACD,GAAG,EAAE,MAAM,IAAI,GACd,OAAO,CAAC,iCAAiC,CAAC,CAgQ5C"}
@@ -21,6 +21,10 @@ const TABLE_LOCKS = [
21
21
  'billing_account_active_snapshots',
22
22
  'org_billing_home_accounts',
23
23
  'org_billing_links',
24
+ 'billing_enforcement_cohort_seals',
25
+ 'billing_account_enforcement_profiles',
26
+ 'billing_account_active_enforcement_profiles',
27
+ 'billing_enforcement_cohort_operations',
24
28
  'billing_legacy_migration_preparations',
25
29
  'billing_legacy_migration_accounts',
26
30
  'billing_legacy_migration_organizations',
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-migration.js","sourceRoot":"","sources":["../../src/billing/postgres-migration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-migration.js","sourceRoot":"","sources":["../../src/billing/postgres-migration.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-schema.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAI/B,2FAA2F;AAC3F,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAiSnE"}
1
+ {"version":3,"file":"postgres-schema.d.ts","sourceRoot":"","sources":["../../src/billing/postgres-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAO/B,2FAA2F;AAC3F,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAoSnE"}
@@ -1,4 +1,7 @@
1
1
  import { FREE_PLAN_VERSION } from './model.js';
2
+ import { ensureBillingEnforcementProfileSchema } from './postgres-enforcement-profile-schema.js';
3
+ import { ensureAuthoritativeMeterSchema } from './postgres-meter-schema.js';
4
+ import { ensureBillingMeterWriterHealthSchema } from './postgres-meter-writer-health-schema.js';
2
5
  import { planVersionRowToRecord } from './postgres-records.js';
3
6
  /** Additive BA-1 schema. No existing organization is linked or otherwise migrated here. */
4
7
  export async function ensureBillingSchema(pool) {
@@ -196,6 +199,9 @@ export async function ensureBillingSchema(pool) {
196
199
  PRIMARY KEY (billing_account_id, org_slug, window_start)
197
200
  )
198
201
  `);
202
+ await ensureAuthoritativeMeterSchema(pool);
203
+ await ensureBillingMeterWriterHealthSchema(pool);
204
+ await ensureBillingEnforcementProfileSchema(pool);
199
205
  await pool.query(`
200
206
  CREATE TABLE IF NOT EXISTS billing_legacy_migration_preparations (
201
207
  id text PRIMARY KEY,
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-schema.js","sourceRoot":"","sources":["../../src/billing/postgres-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-schema.js","sourceRoot":"","sources":["../../src/billing/postgres-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,qCAAqC,EAAE,MAAM,0CAA0C,CAAC;AACjG,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,oCAAoC,EAAE,MAAM,0CAA0C,CAAC;AAChG,OAAO,EAAuB,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEpF,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAU;IAClD,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;GAWhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;GAOhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;GAOhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;GAUhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;GAGhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;GAGhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;GAqBhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;GAkBhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;GAOhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;GAWhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;GAehB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;GAGhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;GAKhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;GAIhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;GAGhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;GAWhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;GAYhB,CAAC,CAAC;IACH,MAAM,8BAA8B,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,oCAAoC,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,qCAAqC,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;GAiBhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;GAYhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;GAGhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;GAWhB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;GAShB,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,CAAC;;;;;;;;;GAShB,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,KAAK,CACd;;;iCAG6B,EAC7B;QACE,iBAAiB,CAAC,EAAE;QACpB,iBAAiB,CAAC,QAAQ;QAC1B,iBAAiB,CAAC,OAAO;QACzB,iBAAiB,CAAC,aAAa;QAC/B,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,YAAY,CAAC;QAC9C,iBAAiB,CAAC,eAAe;QACjC,iBAAiB,CAAC,SAAS;KAC5B,CACF,CAAC;IACF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAC/B,mDAAmD,EACnD,CAAC,iBAAiB,CAAC,EAAE,CAAC,CACvB,CAAC;IACF,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,IACE,aAAa,KAAK,SAAS;QAC3B,aAAa,CAAC,eAAe,KAAK,iBAAiB,CAAC,eAAe,EACnE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/billing/postgres.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/billing/postgres.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { validateSlug } from '../store/validate.js';
2
2
  import { createDefaultFreeBillingRecords, GOOGLE_CONTROL_PLANE_ISSUER, normalizeBillingEmail, normalizeBillingIdentity, validateBillingAccountId, validateBillingLinkReason, } from './model.js';
3
+ import { ensurePostSealBillingAccountEnforcementProfileTx, requireBillingAccountEnforcementProfileIfSealedTx, } from './postgres-enforcement-profile.js';
3
4
  import { accountRowToRecord, entitlementSnapshotRowToRecord, memberRowToRecord, orgBillingLinkRowToRecord, planVersionRowToRecord, validateScalarId, } from './postgres-records.js';
4
5
  export function ensureDefaultBillingAccountRow(pool, input, now) {
5
6
  return withBillingTransaction(pool, (client) => ensureDefaultBillingAccountTx(client, input, now()));
@@ -26,6 +27,7 @@ async function ensureDefaultBillingAccountAfterSerializationTx(client, input, cr
26
27
  if (updated.rows[0]?.role !== 'owner' || activeSnapshot === undefined) {
27
28
  throw new Error('default billing account is incomplete');
28
29
  }
30
+ await requireBillingAccountEnforcementProfileIfSealedTx(client, existing.id);
29
31
  return existing;
30
32
  }
31
33
  const created = createDefaultFreeBillingRecords({
@@ -44,6 +46,7 @@ async function ensureDefaultBillingAccountAfterSerializationTx(client, input, cr
44
46
  created.account.state,
45
47
  created.account.createdAt,
46
48
  ]);
49
+ await ensurePostSealBillingAccountEnforcementProfileTx(client, created.account.id);
47
50
  await client.query(`INSERT INTO billing_account_members
48
51
  (billing_account_id, identity_issuer, subject, email, role, created_at)
49
52
  VALUES ($1, $2, $3, $4, $5, $6)`, [