@noodleseed/one 0.109.0 → 0.111.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 (299) hide show
  1. package/dist/commands/analytics-ops.d.ts.map +1 -1
  2. package/dist/commands/analytics-ops.js +36 -57
  3. package/dist/commands/analytics-ops.js.map +1 -1
  4. package/dist/commands/apps-ops.d.ts.map +1 -1
  5. package/dist/commands/apps-ops.js +12 -32
  6. package/dist/commands/apps-ops.js.map +1 -1
  7. package/dist/commands/archive-ops.d.ts.map +1 -1
  8. package/dist/commands/archive-ops.js +30 -48
  9. package/dist/commands/archive-ops.js.map +1 -1
  10. package/dist/commands/audit-ops.js +17 -40
  11. package/dist/commands/audit-ops.js.map +1 -1
  12. package/dist/commands/author-loop.d.ts.map +1 -1
  13. package/dist/commands/author-loop.js +27 -51
  14. package/dist/commands/author-loop.js.map +1 -1
  15. package/dist/commands/catalog-data-tenant-admin.d.ts.map +1 -1
  16. package/dist/commands/catalog-data-tenant-admin.js +35 -0
  17. package/dist/commands/catalog-data-tenant-admin.js.map +1 -1
  18. package/dist/commands/config-values.d.ts.map +1 -1
  19. package/dist/commands/config-values.js +24 -59
  20. package/dist/commands/config-values.js.map +1 -1
  21. package/dist/commands/deploy-ops.d.ts +0 -1
  22. package/dist/commands/deploy-ops.d.ts.map +1 -1
  23. package/dist/commands/deploy-ops.js +6 -42
  24. package/dist/commands/deploy-ops.js.map +1 -1
  25. package/dist/commands/deployments-ops.d.ts.map +1 -1
  26. package/dist/commands/deployments-ops.js +11 -39
  27. package/dist/commands/deployments-ops.js.map +1 -1
  28. package/dist/commands/devtools.d.ts.map +1 -1
  29. package/dist/commands/devtools.js +19 -35
  30. package/dist/commands/devtools.js.map +1 -1
  31. package/dist/commands/envs-ops.d.ts.map +1 -1
  32. package/dist/commands/envs-ops.js +10 -35
  33. package/dist/commands/envs-ops.js.map +1 -1
  34. package/dist/commands/github-shared.d.ts +1 -1
  35. package/dist/commands/github-shared.d.ts.map +1 -1
  36. package/dist/commands/github-shared.js +11 -33
  37. package/dist/commands/github-shared.js.map +1 -1
  38. package/dist/commands/logs-ops.d.ts.map +1 -1
  39. package/dist/commands/logs-ops.js +18 -30
  40. package/dist/commands/logs-ops.js.map +1 -1
  41. package/dist/commands/org-admin.d.ts.map +1 -1
  42. package/dist/commands/org-admin.js +13 -47
  43. package/dist/commands/org-admin.js.map +1 -1
  44. package/dist/commands/org-domains.js +5 -36
  45. package/dist/commands/org-domains.js.map +1 -1
  46. package/dist/commands/org-mcp-subdomain.d.ts +9 -0
  47. package/dist/commands/org-mcp-subdomain.d.ts.map +1 -0
  48. package/dist/commands/org-mcp-subdomain.js +144 -0
  49. package/dist/commands/org-mcp-subdomain.js.map +1 -0
  50. package/dist/commands/org-member-args.d.ts.map +1 -1
  51. package/dist/commands/org-member-args.js +22 -57
  52. package/dist/commands/org-member-args.js.map +1 -1
  53. package/dist/commands/org-openai-challenge.js +9 -40
  54. package/dist/commands/org-openai-challenge.js.map +1 -1
  55. package/dist/commands/project-setup.d.ts.map +1 -1
  56. package/dist/commands/project-setup.js +0 -4
  57. package/dist/commands/project-setup.js.map +1 -1
  58. package/dist/commands/resource-shared.d.ts +1 -1
  59. package/dist/commands/resource-shared.d.ts.map +1 -1
  60. package/dist/commands/resource-shared.js +6 -31
  61. package/dist/commands/resource-shared.js.map +1 -1
  62. package/dist/commands/service-ops.js +21 -40
  63. package/dist/commands/service-ops.js.map +1 -1
  64. package/dist/commands/session.d.ts.map +1 -1
  65. package/dist/commands/session.js +21 -52
  66. package/dist/commands/session.js.map +1 -1
  67. package/dist/commands/shared.d.ts +16 -0
  68. package/dist/commands/shared.d.ts.map +1 -1
  69. package/dist/commands/shared.js +45 -33
  70. package/dist/commands/shared.js.map +1 -1
  71. package/dist/first-run.d.ts.map +1 -1
  72. package/dist/first-run.js +0 -3
  73. package/dist/first-run.js.map +1 -1
  74. package/node_modules/@noodle-borg/control-plane/dist/contracts.d.ts +249 -0
  75. package/node_modules/@noodle-borg/control-plane/dist/contracts.d.ts.map +1 -0
  76. package/node_modules/@noodle-borg/control-plane/dist/contracts.js +2 -0
  77. package/node_modules/@noodle-borg/control-plane/dist/contracts.js.map +1 -0
  78. package/node_modules/@noodle-borg/control-plane/dist/in-memory-organization-store.d.ts +116 -0
  79. package/node_modules/@noodle-borg/control-plane/dist/in-memory-organization-store.d.ts.map +1 -0
  80. package/node_modules/@noodle-borg/control-plane/dist/in-memory-organization-store.js +302 -0
  81. package/node_modules/@noodle-borg/control-plane/dist/in-memory-organization-store.js.map +1 -0
  82. package/node_modules/@noodle-borg/control-plane/dist/index.d.ts +10 -0
  83. package/node_modules/@noodle-borg/control-plane/dist/index.d.ts.map +1 -0
  84. package/node_modules/@noodle-borg/control-plane/dist/index.js +8 -0
  85. package/node_modules/@noodle-borg/control-plane/dist/index.js.map +1 -0
  86. package/node_modules/@noodle-borg/control-plane/dist/mcp-subdomain-claims.d.ts +42 -0
  87. package/node_modules/@noodle-borg/control-plane/dist/mcp-subdomain-claims.d.ts.map +1 -0
  88. package/node_modules/@noodle-borg/control-plane/dist/mcp-subdomain-claims.js +181 -0
  89. package/node_modules/@noodle-borg/control-plane/dist/mcp-subdomain-claims.js.map +1 -0
  90. package/node_modules/@noodle-borg/control-plane/dist/organization-helpers.d.ts +13 -0
  91. package/node_modules/@noodle-borg/control-plane/dist/organization-helpers.d.ts.map +1 -0
  92. package/node_modules/@noodle-borg/control-plane/dist/organization-helpers.js +41 -0
  93. package/node_modules/@noodle-borg/control-plane/dist/organization-helpers.js.map +1 -0
  94. package/node_modules/@noodle-borg/control-plane/dist/postgres-contracts.d.ts +11 -0
  95. package/node_modules/@noodle-borg/control-plane/dist/postgres-contracts.d.ts.map +1 -0
  96. package/node_modules/@noodle-borg/control-plane/dist/postgres-contracts.js +2 -0
  97. package/node_modules/@noodle-borg/control-plane/dist/postgres-contracts.js.map +1 -0
  98. package/node_modules/@noodle-borg/control-plane/dist/postgres-mcp-subdomain-claims.d.ts +18 -0
  99. package/node_modules/@noodle-borg/control-plane/dist/postgres-mcp-subdomain-claims.d.ts.map +1 -0
  100. package/node_modules/@noodle-borg/control-plane/dist/postgres-mcp-subdomain-claims.js +173 -0
  101. package/node_modules/@noodle-borg/control-plane/dist/postgres-mcp-subdomain-claims.js.map +1 -0
  102. package/node_modules/@noodle-borg/control-plane/dist/postgres-mcp-subdomain-schema.d.ts +4 -0
  103. package/node_modules/@noodle-borg/control-plane/dist/postgres-mcp-subdomain-schema.d.ts.map +1 -0
  104. package/node_modules/@noodle-borg/control-plane/dist/postgres-mcp-subdomain-schema.js +134 -0
  105. package/node_modules/@noodle-borg/control-plane/dist/postgres-mcp-subdomain-schema.js.map +1 -0
  106. package/node_modules/@noodle-borg/{service/dist/store/postgres-control-plane.d.ts → control-plane/dist/postgres-organization-store.d.ts} +4 -3
  107. package/node_modules/@noodle-borg/control-plane/dist/postgres-organization-store.d.ts.map +1 -0
  108. package/node_modules/@noodle-borg/{service/dist/store/postgres-control-plane.js → control-plane/dist/postgres-organization-store.js} +4 -5
  109. package/node_modules/@noodle-borg/control-plane/dist/postgres-organization-store.js.map +1 -0
  110. package/node_modules/@noodle-borg/control-plane/dist/postgres-schema.d.ts +4 -0
  111. package/node_modules/@noodle-borg/control-plane/dist/postgres-schema.d.ts.map +1 -0
  112. package/node_modules/@noodle-borg/control-plane/dist/postgres-schema.js +90 -0
  113. package/node_modules/@noodle-borg/control-plane/dist/postgres-schema.js.map +1 -0
  114. package/node_modules/@noodle-borg/control-plane/dist/validation.d.ts +18 -0
  115. package/node_modules/@noodle-borg/control-plane/dist/validation.d.ts.map +1 -0
  116. package/node_modules/@noodle-borg/control-plane/dist/validation.js +91 -0
  117. package/node_modules/@noodle-borg/control-plane/dist/validation.js.map +1 -0
  118. package/node_modules/@noodle-borg/control-plane/package.json +30 -0
  119. package/node_modules/@noodle-borg/module/dist/contract.d.ts +11 -3
  120. package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
  121. package/node_modules/@noodle-borg/module/dist/contract.js +61 -12
  122. package/node_modules/@noodle-borg/module/dist/contract.js.map +1 -1
  123. package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.d.ts +1 -1
  124. package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.d.ts.map +1 -1
  125. package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.js +6 -4
  126. package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.js.map +1 -1
  127. package/node_modules/@noodle-borg/service/dist/developer-mcp/inspection.d.ts +3 -6
  128. package/node_modules/@noodle-borg/service/dist/developer-mcp/inspection.d.ts.map +1 -1
  129. package/node_modules/@noodle-borg/service/dist/developer-mcp/inspection.js.map +1 -1
  130. package/node_modules/@noodle-borg/service/dist/main.js +1 -1
  131. package/node_modules/@noodle-borg/service/dist/main.js.map +1 -1
  132. package/node_modules/@noodle-borg/service/dist/mcp-public-routing.d.ts +15 -28
  133. package/node_modules/@noodle-borg/service/dist/mcp-public-routing.d.ts.map +1 -1
  134. package/node_modules/@noodle-borg/service/dist/mcp-public-routing.js +15 -51
  135. package/node_modules/@noodle-borg/service/dist/mcp-public-routing.js.map +1 -1
  136. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.d.ts.map +1 -1
  137. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js +7 -3
  138. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js.map +1 -1
  139. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-resource.d.ts +2 -1
  140. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-resource.d.ts.map +1 -1
  141. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-resource.js +7 -35
  142. package/node_modules/@noodle-borg/service/dist/oauth/service-principal-resource.js.map +1 -1
  143. package/node_modules/@noodle-borg/service/dist/operations/rollback-deployment.d.ts +2 -1
  144. package/node_modules/@noodle-borg/service/dist/operations/rollback-deployment.d.ts.map +1 -1
  145. package/node_modules/@noodle-borg/service/dist/operations/rollback-deployment.js +1 -1
  146. package/node_modules/@noodle-borg/service/dist/operations/rollback-deployment.js.map +1 -1
  147. package/node_modules/@noodle-borg/service/dist/options.d.ts +3 -3
  148. package/node_modules/@noodle-borg/service/dist/personal-workspace.d.ts +1 -3
  149. package/node_modules/@noodle-borg/service/dist/personal-workspace.d.ts.map +1 -1
  150. package/node_modules/@noodle-borg/service/dist/personal-workspace.js +2 -17
  151. package/node_modules/@noodle-borg/service/dist/personal-workspace.js.map +1 -1
  152. package/node_modules/@noodle-borg/service/dist/platform-auth-operator.d.ts +10 -10
  153. package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts +4 -2
  154. package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts.map +1 -1
  155. package/node_modules/@noodle-borg/service/dist/registry-helpers.js +8 -3
  156. package/node_modules/@noodle-borg/service/dist/registry-helpers.js.map +1 -1
  157. package/node_modules/@noodle-borg/service/dist/registry-status.d.ts +2 -3
  158. package/node_modules/@noodle-borg/service/dist/registry-status.d.ts.map +1 -1
  159. package/node_modules/@noodle-borg/service/dist/registry-status.js.map +1 -1
  160. package/node_modules/@noodle-borg/service/dist/registry.d.ts +2 -4
  161. package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
  162. package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
  163. package/node_modules/@noodle-borg/service/dist/routes/apps.d.ts +3 -3
  164. package/node_modules/@noodle-borg/service/dist/routes/apps.d.ts.map +1 -1
  165. package/node_modules/@noodle-borg/service/dist/routes/apps.js +4 -2
  166. package/node_modules/@noodle-borg/service/dist/routes/apps.js.map +1 -1
  167. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-dispatch.d.ts +2 -2
  168. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-dispatch.d.ts.map +1 -1
  169. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-dispatch.js +1 -1
  170. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-dispatch.js.map +1 -1
  171. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.d.ts +2 -3
  172. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.d.ts.map +1 -1
  173. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.js +2 -1
  174. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.js.map +1 -1
  175. package/node_modules/@noodle-borg/service/dist/routes/contracts.d.ts +29 -0
  176. package/node_modules/@noodle-borg/service/dist/routes/contracts.d.ts.map +1 -1
  177. package/node_modules/@noodle-borg/service/dist/routes/contracts.js +39 -0
  178. package/node_modules/@noodle-borg/service/dist/routes/contracts.js.map +1 -1
  179. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
  180. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +4 -6
  181. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
  182. package/node_modules/@noodle-borg/service/dist/routes/credential-auth-dispatch.d.ts +2 -2
  183. package/node_modules/@noodle-borg/service/dist/routes/credential-auth-dispatch.d.ts.map +1 -1
  184. package/node_modules/@noodle-borg/service/dist/routes/credential-auth-dispatch.js.map +1 -1
  185. package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts +3 -3
  186. package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts.map +1 -1
  187. package/node_modules/@noodle-borg/service/dist/routes/deployments.js +4 -2
  188. package/node_modules/@noodle-borg/service/dist/routes/deployments.js.map +1 -1
  189. package/node_modules/@noodle-borg/service/dist/routes/diagnostics.d.ts.map +1 -1
  190. package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js +5 -6
  191. package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js.map +1 -1
  192. package/node_modules/@noodle-borg/service/dist/routes/endpoint-enrichment.d.ts +2 -3
  193. package/node_modules/@noodle-borg/service/dist/routes/endpoint-enrichment.d.ts.map +1 -1
  194. package/node_modules/@noodle-borg/service/dist/routes/endpoint-enrichment.js.map +1 -1
  195. package/node_modules/@noodle-borg/service/dist/routes/envs.d.ts +3 -3
  196. package/node_modules/@noodle-borg/service/dist/routes/envs.d.ts.map +1 -1
  197. package/node_modules/@noodle-borg/service/dist/routes/envs.js +4 -2
  198. package/node_modules/@noodle-borg/service/dist/routes/envs.js.map +1 -1
  199. package/node_modules/@noodle-borg/service/dist/routes/openai-apps-challenge.d.ts.map +1 -1
  200. package/node_modules/@noodle-borg/service/dist/routes/openai-apps-challenge.js +1 -1
  201. package/node_modules/@noodle-borg/service/dist/routes/openai-apps-challenge.js.map +1 -1
  202. package/node_modules/@noodle-borg/service/dist/routes/org-admin-dispatch.d.ts.map +1 -1
  203. package/node_modules/@noodle-borg/service/dist/routes/org-admin-dispatch.js +13 -1
  204. package/node_modules/@noodle-borg/service/dist/routes/org-admin-dispatch.js.map +1 -1
  205. package/node_modules/@noodle-borg/service/dist/routes/org-admin.d.ts.map +1 -1
  206. package/node_modules/@noodle-borg/service/dist/routes/org-admin.js +10 -7
  207. package/node_modules/@noodle-borg/service/dist/routes/org-admin.js.map +1 -1
  208. package/node_modules/@noodle-borg/service/dist/routes/org-mcp-subdomain.d.ts +8 -0
  209. package/node_modules/@noodle-borg/service/dist/routes/org-mcp-subdomain.d.ts.map +1 -0
  210. package/node_modules/@noodle-borg/service/dist/routes/org-mcp-subdomain.js +175 -0
  211. package/node_modules/@noodle-borg/service/dist/routes/org-mcp-subdomain.js.map +1 -0
  212. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts +3 -0
  213. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts.map +1 -1
  214. package/node_modules/@noodle-borg/service/dist/routes/paths.js +11 -0
  215. package/node_modules/@noodle-borg/service/dist/routes/paths.js.map +1 -1
  216. package/node_modules/@noodle-borg/service/dist/routes/protected-resource-metadata.d.ts +2 -1
  217. package/node_modules/@noodle-borg/service/dist/routes/protected-resource-metadata.d.ts.map +1 -1
  218. package/node_modules/@noodle-borg/service/dist/routes/protected-resource-metadata.js +2 -2
  219. package/node_modules/@noodle-borg/service/dist/routes/protected-resource-metadata.js.map +1 -1
  220. package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.d.ts +3 -2
  221. package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.d.ts.map +1 -1
  222. package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.js +6 -6
  223. package/node_modules/@noodle-borg/service/dist/routes/resource-read-dispatch.js.map +1 -1
  224. package/node_modules/@noodle-borg/service/dist/routes/rollback.d.ts.map +1 -1
  225. package/node_modules/@noodle-borg/service/dist/routes/rollback.js +3 -3
  226. package/node_modules/@noodle-borg/service/dist/routes/rollback.js.map +1 -1
  227. package/node_modules/@noodle-borg/service/dist/serve-resource-auth.d.ts +3 -5
  228. package/node_modules/@noodle-borg/service/dist/serve-resource-auth.d.ts.map +1 -1
  229. package/node_modules/@noodle-borg/service/dist/serve-resource-auth.js +18 -15
  230. package/node_modules/@noodle-borg/service/dist/serve-resource-auth.js.map +1 -1
  231. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  232. package/node_modules/@noodle-borg/service/dist/service.js +24 -35
  233. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  234. package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts +4 -94
  235. package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts.map +1 -1
  236. package/node_modules/@noodle-borg/service/dist/store/control-plane.js +25 -265
  237. package/node_modules/@noodle-borg/service/dist/store/control-plane.js.map +1 -1
  238. package/node_modules/@noodle-borg/service/dist/store/postgres-deploy-records.d.ts +1 -1
  239. package/node_modules/@noodle-borg/service/dist/store/postgres-deploy-records.js +1 -1
  240. package/node_modules/@noodle-borg/service/dist/store/postgres-mcp-subdomain.d.ts +13 -0
  241. package/node_modules/@noodle-borg/service/dist/store/postgres-mcp-subdomain.d.ts.map +1 -0
  242. package/node_modules/@noodle-borg/service/dist/store/postgres-mcp-subdomain.js +40 -0
  243. package/node_modules/@noodle-borg/service/dist/store/postgres-mcp-subdomain.js.map +1 -0
  244. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
  245. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +2 -84
  246. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
  247. package/node_modules/@noodle-borg/service/dist/store/postgres-signup.d.ts.map +1 -1
  248. package/node_modules/@noodle-borg/service/dist/store/postgres-signup.js +1 -1
  249. package/node_modules/@noodle-borg/service/dist/store/postgres-signup.js.map +1 -1
  250. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts +2 -2
  251. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
  252. package/node_modules/@noodle-borg/service/dist/store/postgres.js +5 -4
  253. package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
  254. package/node_modules/@noodle-borg/service/dist/store/validate.d.ts +2 -20
  255. package/node_modules/@noodle-borg/service/dist/store/validate.d.ts.map +1 -1
  256. package/node_modules/@noodle-borg/service/dist/store/validate.js +7 -85
  257. package/node_modules/@noodle-borg/service/dist/store/validate.js.map +1 -1
  258. package/node_modules/@noodle-borg/service/dist/store.d.ts +4 -209
  259. package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
  260. package/node_modules/@noodle-borg/service/dist/store.js +1 -1
  261. package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
  262. package/node_modules/@noodle-borg/service/package.json +1 -0
  263. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +2 -0
  264. package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts.map +1 -1
  265. package/node_modules/@noodle-borg/transport-http/dist/handler.js +14 -8
  266. package/node_modules/@noodle-borg/transport-http/dist/handler.js.map +1 -1
  267. package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.d.ts +1 -1
  268. package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.d.ts.map +1 -1
  269. package/node_modules/@noodle-borg/transport-http/dist/index.d.ts +2 -1
  270. package/node_modules/@noodle-borg/transport-http/dist/index.d.ts.map +1 -1
  271. package/node_modules/@noodle-borg/transport-http/dist/index.js +1 -0
  272. package/node_modules/@noodle-borg/transport-http/dist/index.js.map +1 -1
  273. package/node_modules/@noodle-borg/transport-http/dist/public-routing.d.ts +42 -0
  274. package/node_modules/@noodle-borg/transport-http/dist/public-routing.d.ts.map +1 -1
  275. package/node_modules/@noodle-borg/transport-http/dist/public-routing.js +49 -0
  276. package/node_modules/@noodle-borg/transport-http/dist/public-routing.js.map +1 -1
  277. package/node_modules/@noodle-borg/transport-http/dist/routing.d.ts +3 -2
  278. package/node_modules/@noodle-borg/transport-http/dist/routing.d.ts.map +1 -1
  279. package/node_modules/@noodle-borg/transport-http/dist/routing.js +6 -3
  280. package/node_modules/@noodle-borg/transport-http/dist/routing.js.map +1 -1
  281. package/package.json +2 -1
  282. package/dist/banner.d.ts +0 -11
  283. package/dist/banner.d.ts.map +0 -1
  284. package/dist/banner.js +0 -183
  285. package/dist/banner.js.map +0 -1
  286. package/dist/commands/deploy-fire-progress.d.ts +0 -28
  287. package/dist/commands/deploy-fire-progress.d.ts.map +0 -1
  288. package/dist/commands/deploy-fire-progress.js +0 -64
  289. package/dist/commands/deploy-fire-progress.js.map +0 -1
  290. package/dist/fire.d.ts +0 -108
  291. package/dist/fire.d.ts.map +0 -1
  292. package/dist/fire.js +0 -511
  293. package/dist/fire.js.map +0 -1
  294. package/dist/flavor.d.ts +0 -19
  295. package/dist/flavor.d.ts.map +0 -1
  296. package/dist/flavor.js +0 -105
  297. package/dist/flavor.js.map +0 -1
  298. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts.map +0 -1
  299. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js.map +0 -1
@@ -1,5 +1,8 @@
1
+ import { type InMemoryOrganizationOperations } from '@noodle-borg/control-plane';
1
2
  import { InMemoryBillingAccountStore } from '../billing/in-memory.js';
2
- import type { ControlPlaneStore, CreateOrgWithOwnerInput, OrgDomainRecord, OrgInvitationRecord, OrgMemberRecord, OrgOpenAIAppsChallengeRecord, OrgRecord, OrgRole, PersonalWorkspaceProvisionInput, PersonalWorkspaceProvisionResult, SignupAllowlistKind, SignupAllowlistRecord, WelcomeEmailRecord } from '../store.js';
3
+ import type { ControlPlaneStore, CreateOrgWithOwnerInput, OrgRecord, PersonalWorkspaceProvisionInput, PersonalWorkspaceProvisionResult, WelcomeEmailRecord } from '../store.js';
4
+ export interface InMemoryControlPlaneStore extends InMemoryOrganizationOperations {
5
+ }
3
6
  export declare class InMemoryControlPlaneStore extends InMemoryBillingAccountStore implements ControlPlaneStore {
4
7
  #private;
5
8
  constructor(options?: {
@@ -21,99 +24,6 @@ export declare class InMemoryControlPlaneStore extends InMemoryBillingAccountSto
21
24
  nextAttemptAt: Date;
22
25
  }): Promise<void>;
23
26
  getWelcomeEmail(subject: string): Promise<WelcomeEmailRecord | undefined>;
24
- createOrg(input: {
25
- slug: string;
26
- displayName?: string;
27
- }): Promise<OrgRecord>;
28
27
  createOrgWithOwner(input: CreateOrgWithOwnerInput): Promise<OrgRecord>;
29
- updateOrg(input: {
30
- slug: string;
31
- displayName: string;
32
- }): Promise<OrgRecord | undefined>;
33
- getOrg(org: string): Promise<OrgRecord | undefined>;
34
- listOrgs(): Promise<readonly OrgRecord[]>;
35
- listOrgsForSubject(subject: string): Promise<readonly OrgRecord[]>;
36
- addOrgMember(input: {
37
- org: string;
38
- subject: string;
39
- email: string;
40
- role: OrgRole;
41
- }): Promise<OrgMemberRecord>;
42
- removeOrgMember(input: {
43
- org: string;
44
- subject: string;
45
- }): Promise<boolean>;
46
- updateOrgMemberRole(input: {
47
- org: string;
48
- subject: string;
49
- role: OrgRole;
50
- }): Promise<OrgMemberRecord | undefined>;
51
- getOrgMember(input: {
52
- org: string;
53
- subject: string;
54
- }): Promise<OrgMemberRecord | undefined>;
55
- listOrgMembers(org: string): Promise<readonly OrgMemberRecord[]>;
56
- isOrgMember(input: {
57
- org: string;
58
- subject: string;
59
- }): Promise<boolean>;
60
- addOrgDomain(input: {
61
- org: string;
62
- domain: string;
63
- challenge?: string;
64
- }): Promise<OrgDomainRecord>;
65
- removeOrgDomain(input: {
66
- org: string;
67
- domain: string;
68
- }): Promise<boolean>;
69
- markOrgDomainVerification(input: {
70
- org: string;
71
- domain: string;
72
- verified: boolean;
73
- }): Promise<OrgDomainRecord | undefined>;
74
- listOrgDomains(org: string): Promise<readonly OrgDomainRecord[]>;
75
- setOrgOpenAIAppsChallenge(input: {
76
- org: string;
77
- challenge: string;
78
- updatedBySubject?: string;
79
- updatedByEmail?: string;
80
- }): Promise<OrgOpenAIAppsChallengeRecord>;
81
- getOrgOpenAIAppsChallenge(org: string): Promise<OrgOpenAIAppsChallengeRecord | undefined>;
82
- clearOrgOpenAIAppsChallenge(org: string): Promise<boolean>;
83
- isDataPlaneOrgMember(input: {
84
- org: string;
85
- subject: string;
86
- email?: string;
87
- }): Promise<boolean>;
88
- allowSignup(input: {
89
- kind: SignupAllowlistKind;
90
- value: string;
91
- createdBySubject?: string;
92
- }): Promise<SignupAllowlistRecord>;
93
- listSignupAllowlist(): Promise<readonly SignupAllowlistRecord[]>;
94
- isSignupAllowed(input: {
95
- subject: string;
96
- email: string;
97
- }): Promise<boolean>;
98
- createOrgInvitation(input: {
99
- org: string;
100
- email: string;
101
- role: OrgRole;
102
- tokenHash: string;
103
- createdBySubject: string;
104
- createdByEmail?: string;
105
- expiresAt: Date;
106
- }): Promise<OrgInvitationRecord>;
107
- getOrgInvitation(input: {
108
- tokenHash: string;
109
- }): Promise<OrgInvitationRecord | undefined>;
110
- consumeOrgInvitation(input: {
111
- tokenHash: string;
112
- }): Promise<OrgInvitationRecord | undefined>;
113
- listOrgInvitations(org: string): Promise<readonly OrgInvitationRecord[]>;
114
- revokeOrgInvitation(input: {
115
- org: string;
116
- email: string;
117
- }): Promise<number>;
118
28
  }
119
29
  //# sourceMappingURL=control-plane.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"control-plane.d.ts","sourceRoot":"","sources":["../../src/store/control-plane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control-plane.d.ts","sourceRoot":"","sources":["../../src/store/control-plane.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,8BAA8B,EAIpC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAGtE,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EAEvB,SAAS,EACT,+BAA+B,EAC/B,gCAAgC,EAChC,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,yBAA0B,SAAQ,8BAA8B;CAAG;AAEpF,qBAAa,yBACX,SAAQ,2BACR,YAAW,iBAAiB;;gBAc1B,OAAO,GAAE;QACP,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;QACjB,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,yBAAyB,CAAC,EAAE,MAAM,CAAC;KAC/B;IAyBF,0BAA0B,CAC9B,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAAC,gCAAgC,CAAC;IA8F5C,iBAAiB,CAAC,KAAK,EAAE;QACvB,GAAG,EAAE,IAAI,CAAC;QACV,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAoB3C,oBAAoB,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1F,sBAAsB,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAatF,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAInE,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,SAAS,CAAC;CAoC7E"}
@@ -1,16 +1,12 @@
1
- import { randomUUID } from 'node:crypto';
1
+ import { bindInMemoryOrganizationStore, InMemoryOrganizationStore, memberKey, personalOrgSlugSuffix, } from '@noodle-borg/control-plane';
2
2
  import { InMemoryBillingAccountStore } from '../billing/in-memory.js';
3
3
  import { InMemorySerialQueue } from '../billing/in-memory-serialization.js';
4
4
  import { GOOGLE_CONTROL_PLANE_ISSUER } from '../billing/model.js';
5
- import { personalOrgSlugSuffix } from '../personal-workspace.js';
6
- import { validateDomain, validateOpenAIAppsChallenge, validateOrgMembershipDomain, validateOrgRole, validateSignupAllowlistKind, validateSlug, validateUserOwnedOrgSlug, } from '../store.js';
5
+ import { validateUserOwnedOrgSlug } from '../store.js';
7
6
  export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
8
7
  #orgs;
9
8
  #members;
10
- #domains = new Map();
11
- #openAIAppsChallenges = new Map();
12
- #signup = new Map();
13
- #invitations = new Map();
9
+ #organizations;
14
10
  #welcomeEmails = new Map();
15
11
  #personalWorkspaces = new Map();
16
12
  #billingBootstrapQueue = new InMemorySerialQueue();
@@ -19,20 +15,23 @@ export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
19
15
  const now = options.now ?? (() => new Date());
20
16
  const orgs = new Map();
21
17
  const members = new Map();
18
+ const organizations = new InMemoryOrganizationStore({ now, orgs, members });
22
19
  super({
23
20
  now,
24
- orgExists: (org) => orgs.has(org),
25
- isOrgOwner: (org, subject) => members.get(memberKey(org, subject))?.role === 'owner',
26
- ...(options.billingUsageRetryWindowMs !== undefined
27
- ? { billingUsageRetryWindowMs: options.billingUsageRetryWindowMs }
28
- : {}),
29
- ...(options.billingUsageObservedSince !== undefined
30
- ? { billingUsageObservedSince: options.billingUsageObservedSince }
31
- : {}),
21
+ orgExists: (org) => organizations.hasOrg(org),
22
+ isOrgOwner: (org, subject) => organizations.isExactOwner(org, subject),
23
+ ...(options.billingUsageRetryWindowMs === undefined
24
+ ? {}
25
+ : { billingUsageRetryWindowMs: options.billingUsageRetryWindowMs }),
26
+ ...(options.billingUsageObservedSince === undefined
27
+ ? {}
28
+ : { billingUsageObservedSince: options.billingUsageObservedSince }),
32
29
  });
33
30
  this.#orgs = orgs;
34
31
  this.#members = members;
32
+ this.#organizations = organizations;
35
33
  this.#now = now;
34
+ Object.assign(this, bindInMemoryOrganizationStore(organizations));
36
35
  }
37
36
  async provisionPersonalWorkspace(input) {
38
37
  const requestedSlug = validateUserOwnedOrgSlug(input.slug);
@@ -46,6 +45,7 @@ export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
46
45
  const org = this.#orgs.get(binding.org);
47
46
  if (org === undefined)
48
47
  throw new Error('personal workspace binding lost org');
48
+ this.#organizations.ensureDefaultMcpSubdomain(binding.org);
49
49
  this.#assertPersonalOwner(binding.org, input.subject);
50
50
  this.#ensurePersonalOwner(binding.org, input);
51
51
  this.ensureDefaultAccountAndOrgLinkAtomic({ org: binding.org, owner: input, reason: 'personal-workspace-created' }, this.#now().toISOString());
@@ -55,7 +55,7 @@ export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
55
55
  const suffixCandidates = [...this.#orgs.values()].filter((org) => org.slug.startsWith('u-') && org.slug.endsWith(suffix));
56
56
  const candidates = [];
57
57
  for (const candidate of suffixCandidates) {
58
- if (this.#members.get(memberKey(candidate.slug, input.subject))?.role !== 'owner')
58
+ if (!this.#organizations.isExactOwner(candidate.slug, input.subject))
59
59
  continue;
60
60
  const billing = await this.getOrgBillingLink(candidate.slug);
61
61
  if (billing !== undefined &&
@@ -68,6 +68,7 @@ export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
68
68
  throw new Error('personal workspace legacy mapping is ambiguous');
69
69
  const legacy = candidates[0];
70
70
  if (legacy !== undefined) {
71
+ this.#organizations.ensureDefaultMcpSubdomain(legacy.slug);
71
72
  this.#ensurePersonalOwner(legacy.slug, input);
72
73
  this.ensureDefaultAccountAndOrgLinkAtomic({ org: legacy.slug, owner: input, reason: 'personal-workspace-created' }, this.#now().toISOString());
73
74
  this.#personalWorkspaces.set(input.subject, { org: legacy.slug, identityIssuer });
@@ -88,12 +89,13 @@ export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
88
89
  const welcome = {
89
90
  subject: input.subject,
90
91
  email: input.email.toLowerCase(),
91
- ...(input.firstName !== undefined ? { firstName: input.firstName } : {}),
92
+ ...(input.firstName === undefined ? {} : { firstName: input.firstName }),
92
93
  createdAt,
93
94
  attemptCount: 0,
94
95
  nextAttemptAt: createdAt,
95
96
  };
96
97
  this.ensureDefaultAccountAndOrgLinkAtomic({ org: requestedSlug, owner: input, reason: 'personal-workspace-created' }, createdAt);
98
+ this.#organizations.ensureDefaultMcpSubdomain(requestedSlug);
97
99
  this.#orgs.set(requestedSlug, org);
98
100
  this.#members.set(memberKey(requestedSlug, input.subject), member);
99
101
  this.#welcomeEmails.set(input.subject, welcome);
@@ -109,7 +111,7 @@ export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
109
111
  this.#members.set(key, { ...existing, email: input.email.toLowerCase() });
110
112
  }
111
113
  #assertPersonalOwner(org, subject) {
112
- if (this.#members.get(memberKey(org, subject))?.role !== 'owner') {
114
+ if (!this.#organizations.isExactOwner(org, subject)) {
113
115
  throw new Error('personal workspace legacy ownership mismatch');
114
116
  }
115
117
  }
@@ -157,31 +159,20 @@ export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
157
159
  getWelcomeEmail(subject) {
158
160
  return Promise.resolve(this.#welcomeEmails.get(subject));
159
161
  }
160
- createOrg(input) {
161
- const slug = validateSlug('org', input.slug);
162
- const existing = this.#orgs.get(slug);
163
- if (existing)
164
- return Promise.resolve(existing);
165
- const org = {
166
- slug,
167
- ...(input.displayName !== undefined ? { displayName: input.displayName } : {}),
168
- createdAt: this.#now().toISOString(),
169
- };
170
- this.#orgs.set(slug, org);
171
- return Promise.resolve(org);
172
- }
173
162
  async createOrgWithOwner(input) {
174
163
  const slug = validateUserOwnedOrgSlug(input.slug);
175
164
  return this.#billingBootstrapQueue.run(slug, () => {
176
165
  const existing = this.#orgs.get(slug);
177
166
  const hasOwner = existing !== undefined &&
178
167
  [...this.#members.values()].some((member) => member.orgSlug === slug && member.role === 'owner');
179
- if (existing !== undefined && hasOwner)
168
+ if (existing !== undefined && hasOwner) {
169
+ this.#organizations.ensureDefaultMcpSubdomain(slug);
180
170
  return existing;
171
+ }
181
172
  const createdAt = this.#now().toISOString();
182
173
  const org = existing ?? {
183
174
  slug,
184
- ...(input.displayName !== undefined ? { displayName: input.displayName } : {}),
175
+ ...(input.displayName === undefined ? {} : { displayName: input.displayName }),
185
176
  createdAt,
186
177
  };
187
178
  const member = {
@@ -192,243 +183,12 @@ export class InMemoryControlPlaneStore extends InMemoryBillingAccountStore {
192
183
  createdAt,
193
184
  };
194
185
  this.ensureDefaultAccountAndOrgLinkAtomic({ org: slug, owner: input.owner, reason: 'organization-created' }, createdAt);
186
+ this.#organizations.ensureDefaultMcpSubdomain(slug);
195
187
  if (existing === undefined)
196
188
  this.#orgs.set(slug, org);
197
189
  this.#members.set(memberKey(slug, input.owner.subject), member);
198
190
  return org;
199
191
  });
200
192
  }
201
- updateOrg(input) {
202
- const slug = validateSlug('org', input.slug);
203
- const existing = this.#orgs.get(slug);
204
- if (existing === undefined)
205
- return Promise.resolve(undefined);
206
- const updated = { ...existing, displayName: input.displayName };
207
- this.#orgs.set(slug, updated);
208
- return Promise.resolve(updated);
209
- }
210
- getOrg(org) {
211
- return Promise.resolve(this.#orgs.get(validateSlug('org', org)));
212
- }
213
- listOrgs() {
214
- return Promise.resolve([...this.#orgs.values()].sort((a, b) => a.slug.localeCompare(b.slug)));
215
- }
216
- listOrgsForSubject(subject) {
217
- const slugs = new Set([...this.#members.values()]
218
- .filter((member) => member.subject === subject)
219
- .map((member) => member.orgSlug));
220
- return Promise.resolve([...this.#orgs.values()]
221
- .filter((org) => slugs.has(org.slug))
222
- .sort((a, b) => a.slug.localeCompare(b.slug)));
223
- }
224
- async addOrgMember(input) {
225
- const org = validateSlug('org', input.org);
226
- await this.createOrg({ slug: org });
227
- const member = {
228
- orgSlug: org,
229
- subject: input.subject,
230
- email: input.email.toLowerCase(),
231
- role: validateOrgRole(input.role),
232
- createdAt: this.#now().toISOString(),
233
- };
234
- this.#members.set(memberKey(org, input.subject), member);
235
- return member;
236
- }
237
- removeOrgMember(input) {
238
- return Promise.resolve(this.#members.delete(memberKey(validateSlug('org', input.org), input.subject)));
239
- }
240
- updateOrgMemberRole(input) {
241
- const org = validateSlug('org', input.org);
242
- const role = validateOrgRole(input.role);
243
- const key = memberKey(org, input.subject);
244
- const existing = this.#members.get(key);
245
- if (existing === undefined)
246
- return Promise.resolve(undefined);
247
- const updated = { ...existing, role };
248
- this.#members.set(key, updated);
249
- return Promise.resolve(updated);
250
- }
251
- getOrgMember(input) {
252
- return Promise.resolve(this.#members.get(memberKey(validateSlug('org', input.org), input.subject)));
253
- }
254
- listOrgMembers(org) {
255
- const safe = validateSlug('org', org);
256
- return Promise.resolve([...this.#members.values()]
257
- .filter((member) => member.orgSlug === safe)
258
- .sort((a, b) => a.email.localeCompare(b.email)));
259
- }
260
- isOrgMember(input) {
261
- return Promise.resolve(this.#members.has(memberKey(validateSlug('org', input.org), input.subject)));
262
- }
263
- async addOrgDomain(input) {
264
- const org = validateSlug('org', input.org);
265
- const domain = validateOrgMembershipDomain(input.domain);
266
- await this.createOrg({ slug: org });
267
- const key = domainKey(org, domain);
268
- const existing = this.#domains.get(key);
269
- if (existing !== undefined)
270
- return existing;
271
- const record = {
272
- orgSlug: org,
273
- domain,
274
- challenge: input.challenge ?? `noodle-${randomUUID()}`,
275
- createdAt: this.#now().toISOString(),
276
- };
277
- this.#domains.set(key, record);
278
- return record;
279
- }
280
- removeOrgDomain(input) {
281
- const org = validateSlug('org', input.org);
282
- const domain = validateDomain(input.domain);
283
- return Promise.resolve(this.#domains.delete(domainKey(org, domain)));
284
- }
285
- markOrgDomainVerification(input) {
286
- const org = validateSlug('org', input.org);
287
- const domain = validateDomain(input.domain);
288
- const key = domainKey(org, domain);
289
- const existing = this.#domains.get(key);
290
- if (existing === undefined)
291
- return Promise.resolve(undefined);
292
- const checked = this.#now().toISOString();
293
- const { verifiedAt: _oldVerifiedAt, ...withoutVerifiedAt } = existing;
294
- const updated = {
295
- ...withoutVerifiedAt,
296
- lastCheckedAt: checked,
297
- ...(input.verified ? { verifiedAt: existing.verifiedAt ?? checked } : {}),
298
- };
299
- this.#domains.set(key, updated);
300
- return Promise.resolve(updated);
301
- }
302
- listOrgDomains(org) {
303
- const safe = validateSlug('org', org);
304
- return Promise.resolve([...this.#domains.values()]
305
- .filter((record) => record.orgSlug === safe)
306
- .sort((a, b) => a.domain.localeCompare(b.domain)));
307
- }
308
- async setOrgOpenAIAppsChallenge(input) {
309
- const org = validateSlug('org', input.org);
310
- await this.createOrg({ slug: org });
311
- const record = {
312
- orgSlug: org,
313
- challenge: validateOpenAIAppsChallenge(input.challenge),
314
- updatedAt: this.#now().toISOString(),
315
- ...(input.updatedBySubject !== undefined ? { updatedBySubject: input.updatedBySubject } : {}),
316
- ...(input.updatedByEmail !== undefined ? { updatedByEmail: input.updatedByEmail } : {}),
317
- };
318
- this.#openAIAppsChallenges.set(org, record);
319
- return record;
320
- }
321
- getOrgOpenAIAppsChallenge(org) {
322
- return Promise.resolve(this.#openAIAppsChallenges.get(validateSlug('org', org)));
323
- }
324
- clearOrgOpenAIAppsChallenge(org) {
325
- return Promise.resolve(this.#openAIAppsChallenges.delete(validateSlug('org', org)));
326
- }
327
- async isDataPlaneOrgMember(input) {
328
- if (await this.isOrgMember({ org: input.org, subject: input.subject }))
329
- return true;
330
- if (input.email === undefined)
331
- return false;
332
- const domain = domainFromEmail(input.email);
333
- if (domain === undefined)
334
- return false;
335
- const domains = await this.listOrgDomains(input.org);
336
- return domains.some((record) => record.domain === domain);
337
- }
338
- allowSignup(input) {
339
- const record = {
340
- kind: validateSignupAllowlistKind(input.kind),
341
- value: normalizeSignupAllowlistValue(input.kind, input.value),
342
- createdAt: this.#now().toISOString(),
343
- ...(input.createdBySubject !== undefined ? { createdBySubject: input.createdBySubject } : {}),
344
- };
345
- this.#signup.set(signupKey(record.kind, record.value), record);
346
- return Promise.resolve(record);
347
- }
348
- listSignupAllowlist() {
349
- return Promise.resolve([...this.#signup.values()].sort((a, b) => `${a.kind}:${a.value}`.localeCompare(`${b.kind}:${b.value}`)));
350
- }
351
- isSignupAllowed(input) {
352
- const subject = input.subject.toLowerCase();
353
- if (this.#signup.has(signupKey('subject', subject)))
354
- return Promise.resolve(true);
355
- const domain = domainFromEmail(input.email);
356
- return Promise.resolve(domain !== undefined && this.#signup.has(signupKey('domain', domain)));
357
- }
358
- async createOrgInvitation(input) {
359
- const org = validateSlug('org', input.org);
360
- await this.createOrg({ slug: org });
361
- const record = {
362
- orgSlug: org,
363
- email: input.email.toLowerCase(),
364
- role: validateOrgRole(input.role),
365
- tokenHash: input.tokenHash,
366
- createdAt: this.#now().toISOString(),
367
- expiresAt: input.expiresAt.toISOString(),
368
- createdBySubject: input.createdBySubject,
369
- ...(input.createdByEmail !== undefined ? { createdByEmail: input.createdByEmail } : {}),
370
- };
371
- this.#invitations.set(input.tokenHash, record);
372
- return record;
373
- }
374
- getOrgInvitation(input) {
375
- const record = this.#invitations.get(input.tokenHash);
376
- if (record === undefined || record.acceptedAt !== undefined)
377
- return Promise.resolve(undefined);
378
- if (Date.parse(record.expiresAt) <= this.#now().getTime())
379
- return Promise.resolve(undefined);
380
- return Promise.resolve(record);
381
- }
382
- consumeOrgInvitation(input) {
383
- const record = this.#invitations.get(input.tokenHash);
384
- if (record === undefined || record.acceptedAt !== undefined)
385
- return Promise.resolve(undefined);
386
- if (Date.parse(record.expiresAt) <= this.#now().getTime())
387
- return Promise.resolve(undefined);
388
- const accepted = { ...record, acceptedAt: this.#now().toISOString() };
389
- this.#invitations.set(input.tokenHash, accepted);
390
- return Promise.resolve(accepted);
391
- }
392
- listOrgInvitations(org) {
393
- const safe = validateSlug('org', org);
394
- return Promise.resolve([...this.#invitations.values()]
395
- .filter((record) => record.orgSlug === safe)
396
- .sort((a, b) => Date.parse(b.createdAt) - Date.parse(a.createdAt) || a.email.localeCompare(b.email)));
397
- }
398
- revokeOrgInvitation(input) {
399
- const org = validateSlug('org', input.org);
400
- const email = input.email.toLowerCase();
401
- let revoked = 0;
402
- for (const [tokenHash, record] of this.#invitations) {
403
- if (record.orgSlug === org && record.email === email && record.acceptedAt === undefined) {
404
- this.#invitations.delete(tokenHash);
405
- revoked += 1;
406
- }
407
- }
408
- return Promise.resolve(revoked);
409
- }
410
- }
411
- function memberKey(org, subject) {
412
- return `${org}/${subject}`;
413
- }
414
- function domainKey(org, domain) {
415
- return `${org}/${domain}`;
416
- }
417
- function domainFromEmail(email) {
418
- const at = email.lastIndexOf('@');
419
- if (at < 0)
420
- return undefined;
421
- try {
422
- return validateDomain(email.slice(at + 1));
423
- }
424
- catch {
425
- return undefined;
426
- }
427
- }
428
- function normalizeSignupAllowlistValue(kind, value) {
429
- return kind === 'domain' ? validateDomain(value) : value.trim().toLowerCase();
430
- }
431
- function signupKey(kind, value) {
432
- return `${kind}/${value}`;
433
193
  }
434
194
  //# sourceMappingURL=control-plane.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"control-plane.js","sourceRoot":"","sources":["../../src/store/control-plane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control-plane.js","sourceRoot":"","sources":["../../src/store/control-plane.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { DeployRecord } from '../store.js';
3
3
  /**
4
4
  * Persist one deploy record and its parent app/environment rows in a single transaction. Extracted from
5
5
  * `PostgresArtifactStore.append` so the deploy-record write SQL has its own home, mirroring the
6
- * `postgres-control-plane.ts` split.
6
+ * extracted control-plane row module.
7
7
  */
8
8
  export declare function appendDeployRecordRows(pool: Pool, record: DeployRecord): Promise<void>;
9
9
  //# sourceMappingURL=postgres-deploy-records.d.ts.map
@@ -7,7 +7,7 @@ import { deployRecordParams, rowToRecord } from './postgres-rows.js';
7
7
  /**
8
8
  * Persist one deploy record and its parent app/environment rows in a single transaction. Extracted from
9
9
  * `PostgresArtifactStore.append` so the deploy-record write SQL has its own home, mirroring the
10
- * `postgres-control-plane.ts` split.
10
+ * extracted control-plane row module.
11
11
  */
12
12
  export async function appendDeployRecordRows(pool, record) {
13
13
  // Defence in depth (mirrors the file store): `deploymentId` is always minted as `[a-z0-9-]`.
@@ -0,0 +1,13 @@
1
+ import type { Pool } from 'pg';
2
+ import type { ActiveMcpSubdomainClaim, ChangeMcpSubdomainInput, McpSubdomainMutationResult, McpSubdomainSetting } from '../store.js';
3
+ import { PostgresBillingStore } from './postgres-billing.js';
4
+ /** PostgreSQL adapter for organization MCP claims and their transactionally committed audit event. */
5
+ export declare abstract class PostgresMcpSubdomainStore extends PostgresBillingStore {
6
+ #private;
7
+ constructor(pool: Pool, now: () => Date, billingUsageRetryWindowMs?: number);
8
+ getActiveMcpSubdomain(org: string): Promise<ActiveMcpSubdomainClaim | undefined>;
9
+ resolveActiveMcpSubdomain(mcpSubdomain: string): Promise<ActiveMcpSubdomainClaim | undefined>;
10
+ getMcpSubdomainSetting(org: string): Promise<McpSubdomainSetting | undefined>;
11
+ changeMcpSubdomain(input: ChangeMcpSubdomainInput): Promise<McpSubdomainMutationResult>;
12
+ }
13
+ //# sourceMappingURL=postgres-mcp-subdomain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-mcp-subdomain.d.ts","sourceRoot":"","sources":["../../src/store/postgres-mcp-subdomain.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,sGAAsG;AACtG,8BAAsB,yBAA0B,SAAQ,oBAAoB;;gBAI9D,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,IAAI,EAAE,yBAAyB,CAAC,EAAE,MAAM;IAM3E,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAIhF,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAI7F,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAI7E,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,0BAA0B,CAAC;CAsBxF"}
@@ -0,0 +1,40 @@
1
+ import * as controlPlaneRows from '@noodle-borg/control-plane';
2
+ import { insertAuditEvent } from '@noodle-borg/module-audit';
3
+ import { PostgresBillingStore } from './postgres-billing.js';
4
+ /** PostgreSQL adapter for organization MCP claims and their transactionally committed audit event. */
5
+ export class PostgresMcpSubdomainStore extends PostgresBillingStore {
6
+ #mcpSubdomainPool;
7
+ #mcpSubdomainNow;
8
+ constructor(pool, now, billingUsageRetryWindowMs) {
9
+ super(pool, now, billingUsageRetryWindowMs);
10
+ this.#mcpSubdomainPool = pool;
11
+ this.#mcpSubdomainNow = now;
12
+ }
13
+ getActiveMcpSubdomain(org) {
14
+ return controlPlaneRows.getActiveMcpSubdomainRow(this.#mcpSubdomainPool, org);
15
+ }
16
+ resolveActiveMcpSubdomain(mcpSubdomain) {
17
+ return controlPlaneRows.resolveActiveMcpSubdomainRow(this.#mcpSubdomainPool, mcpSubdomain);
18
+ }
19
+ getMcpSubdomainSetting(org) {
20
+ return controlPlaneRows.getMcpSubdomainSettingRow(this.#mcpSubdomainPool, org);
21
+ }
22
+ changeMcpSubdomain(input) {
23
+ return controlPlaneRows.changeMcpSubdomainRow(this.#mcpSubdomainPool, input, {
24
+ now: this.#mcpSubdomainNow,
25
+ recordAudit: (client, result, mutation) => insertAuditEvent(client, {
26
+ eventType: 'org.mcp_subdomain.changed',
27
+ org: result.orgSlug,
28
+ actorSubject: mutation.actor.subject,
29
+ ...(mutation.actor.email === undefined ? {} : { actorEmail: mutation.actor.email }),
30
+ decision: 'allow',
31
+ status: 200,
32
+ details: {
33
+ previousMcpSubdomain: result.previousMcpSubdomain,
34
+ mcpSubdomain: result.mcpSubdomain,
35
+ },
36
+ }, { now: () => new Date(result.changedAt) }),
37
+ });
38
+ }
39
+ }
40
+ //# sourceMappingURL=postgres-mcp-subdomain.js.map